[BUG] timestamp(int) treats its argument as milliseconds instead of seconds
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- backend-api-design
Direzione di ricerca
Inizia da packages/cel/src/std/cast.ts, in corrispondenza della registrazione di timestamp(int), e confrontala con il controllo dell’intervallo esistente createTimestamp(x, 0). Esegui i casi di conformità del timestamp timestamp_range/from_int_under e from_int_over, quindi verifica che i secondi vengano convertiti correttamente e che i valori fuori intervallo vengano rifiutati. L’issue non indica il file di test locale, quindi individua dove vengono eseguiti questi casi di conformità.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
timestamp(int) interprets the integer as milliseconds since the Unix epoch. cel-go and cel-java (int64_to_timestamp) and the conformance tests timestamp_range/from_int_under and from_int_over treat it as seconds, and int(timestamp) in cel-es itself returns seconds, so int(timestamp(x)) does not round trip. Out-of-range values are also not rejected.
Steps to Reproduce
import { run } from "@bufbuild/cel";
for (const e of [
"string(timestamp(1700000000))",
"int(timestamp(1700000000))",
'timestamp(1) == timestamp("1970-01-01T00:00:01Z")',
"string(timestamp(-62135596801))",
]) {
try {
console.log(e, "=>", run(e, {}));
} catch (x) {
console.log(e, "THROWS", x.message);
}
}
node ts.mjs
Expected Behavior
string(timestamp(1700000000)) => 2023-11-14T22:13:20Z
int(timestamp(1700000000)) => 1700000000n
timestamp(1) == timestamp("1970-01-01T00:00:01Z") => true
string(timestamp(-62135596801)) => (error: timestamp out of range)
Actual Behavior
string(timestamp(1700000000)) => 1970-01-20T16:13:20Z
int(timestamp(1700000000)) => 1700000n
timestamp(1) == timestamp("1970-01-01T00:00:01Z") => false
string(timestamp(-62135596801)) => 1968-01-12T20:06:43.199Z
Screenshots/Logs
See above.
Environment
- @bufbuild/cel version: 0.6.2 (also
mainat 34f0bee) - @bufbuild/cel-spec version: not used
- Node.js version: v26.13.0
Possible Solution
packages/cel/src/std/cast.ts:122 registers timestamp(int) as timestampFromMs(Number(x)); building it from seconds with the existing range check (as createTimestamp(x, 0) does) would match the other implementations.
Additional Context
Conformance cases: https://github.com/google/cel-spec/blob/master/tests/simple/testdata/timestamps.textproto
Credit: https://ucsbplse.github.io/
- Lingua principale
- TypeScript
- Stelle
- 42
- Fork
- 8
- Merge medio
- 1g 12h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bufbuild/cel-es
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 56/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Iterating the result of map() or filter() is quadratic, and overflows the stack at about 8,000 itemsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
I maintainer di solito rispondono entro 1 giorno
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bufbuild/cel-es
Issue simili
-
Language request: NixApertaenhancement language
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
pngwn/twinkleplop#178 ·
-
Type: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
resend/react-email#3889 ·
I maintainer di solito rispondono entro 1 giorno
-
build P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
maniator/verticopolis#1945 ·
I maintainer di solito rispondono entro 1 giorno
-
Admin users page number stays stale after filteringForse già presa @matthewxkong l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
feature request needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100