@cavelang/core 0.28.1 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Authors.md ADDED
@@ -0,0 +1,5 @@
1
+ # Authors
2
+
3
+ By adding their name to this file, all listed authors confirm they have copyright over their contributions to this project and are waiving these rights, placing their work in the public domain in accordance with the CC0 1.0 Universal Public Domain Dedication.
4
+
5
+ - Mirek Rusin (Switzerland)
package/README.md CHANGED
@@ -28,15 +28,17 @@ Uuidv7.next() // '01977b6e-…' — monotonic transaction id
28
28
  |---|---|---|
29
29
  | `Claim` | §2.1, §3.1 | Canonical claim shape: subject/verb/payload/negated + metadata. Payloads: `relation`, `attribute`, `metric`. Terms: `entity`, `text` (double-quoted), `code` (backticked). |
30
30
  | `Key` | §9.2 | Stable claim keys computed on the canonical form. Values excluded; contexts as a sorted set; negation included. |
31
- | `Value` | §7.1 | Value parsing: numbers, glued units (`30ms`), multipliers (`20B` → 2×10¹⁰), compound units (`USD/yr`), `~` approximation, date-likes (`2026-H2`), atoms. Raw text always preserved. |
31
+ | `Value` | §7.1 | Value parsing: numbers, glued units (`30ms`), multipliers (`20B` → 2×10¹⁰), compound units (`USD/yr`), `~` approximation, calendar-valid date-likes (`2026-H2`), atoms. Raw text always preserved. |
32
32
  | `Uncertainty` | §7.2 | Aleatory `+/- Δ (kσ)` semantics: σ = Δ/k, default 2σ. |
33
33
  | `Confidence` | §6.3 | Epistemic `@ N%` in [0, 1]; omitted means 1. |
34
34
  | `Tag` | §6.2 | Flat `#tag` and scoped `#key:value`; flat ≡ value `undefined`. |
35
35
  | `Context` | §6.1 | `@ctx` contexts and the recommended `src:`/`time:`/`loc:`/`scope:` prefixes. |
36
+ | `SourceSpan` | §9.8 | Percent-escaped `@src:<source>#Lx-Ly` formatting/parsing, decoded source identity, inclusive line ranges, and HTTP(S) links. |
36
37
  | `Entity` | §4.1 | Name normalization (whitespace → `-`, casing preserved) and advisory checks. |
37
- | `Verb` | §5 | Standard vocabulary, qualifier verbs, `REVERSE`, lexical shape of verbs. |
38
+ | `Verb` | §5 | Standard vocabulary, qualifier verbs, `REVERSE`, `RENAMED-TO`, lexical shape of verbs. |
38
39
  | `Multiplier` | §7.1 | `T`/`B`/`M`/`K` scale factors. |
39
- | `Uuidv7` | §9.1 | Monotonic UUIDv7 transaction ids — lexicographic order ⇒ transaction order, so `MAX(tx)` resolves current belief. |
40
+ | `Uuidv7` | §9.1 | Monotonic UUIDv7 transaction ids — lexicographic order ⇒ transaction order, so `MAX(tx)` resolves current belief; `withStatePreserved` isolates synchronous speculative work. |
41
+ | `Time` | §32 | Shared UTC query-boundary and date-like range parsing, valid-time coverage, and exact trajectory interpolation helpers. Offset-less timestamps mean UTC. |
40
42
 
41
43
  ## Design decisions
42
44
 
@@ -58,10 +60,20 @@ Decisions this package pins down where the spec leaves latitude:
58
60
  attribute rule "the value may change over time; the key stays about the
59
61
  same property".
60
62
  - **Claim classification** (relation vs metric) is the parser's job; core
61
- only defines the shapes. `IS` + numeric/date value metric, anything
62
- else relation.
63
+ only defines the shapes. A numeric, date-like, or trajectory value after
64
+ any verb is a metric payload; other objects are relations.
65
+ - **Comparison condition verbs** are ordinary standard verbs after
66
+ canonicalization: `EXCEEDS`, `IS-BELOW`, `IS-AT-LEAST`, `IS-AT-MOST`,
67
+ `EQUALS`, and `DIFFERS-FROM`. Symbolic operators remain qualifier input
68
+ syntax and CAVE-Q filter syntax.
63
69
  - **`Value.parse` never fails** — unparseable text degrades to an `atom`
64
70
  value with raw text preserved, honoring the LLM-friendliness goal (§1.6).
71
+ - **Uncertainty is positive and finite** — `+/-` deltas, `(Nσ)` levels, and
72
+ directly supplied σ values share `Uncertainty` validation. `Claim.of`
73
+ enforces the invariant for programmatic callers as well as parsed text.
74
+ - **Date classification uses `Time.parsePeriod`** — leap days, month lengths,
75
+ ISO week-years, quarters, halves, and partial periods have one shared
76
+ structural and calendar validator. Invalid date-shaped values stay atoms.
65
77
  - **UUIDv7 monotonicity**: same-millisecond calls increment a 12-bit
66
78
  sequence in `rand_a`; a backwards clock reuses the last timestamp. Strictly
67
79
  increasing ids within a process, random `rand_b` across processes.
@@ -1 +1 @@
1
- {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/claim.ts"],"names":[],"mappings":"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"}
package/dist/src/claim.js CHANGED
@@ -14,6 +14,7 @@ import * as Value from "./value.js";
14
14
  import * as Tag from "./tag.js";
15
15
  import * as Context from "./context.js";
16
16
  import * as Confidence from "./confidence.js";
17
+ import * as Uncertainty from "./uncertainty.js";
17
18
  /** @returns entity term. */
18
19
  export const entity = (text) => ({ kind: 'entity', text });
19
20
  /** @returns double-quoted natural-language literal term. */
@@ -32,20 +33,26 @@ export const formatTerm = (term) => {
32
33
  }
33
34
  };
34
35
  /** @returns claim with defaults applied (spec §6: all suffixes optional). */
35
- export const of = (init) => ({
36
- subject: init.subject,
37
- verb: init.verb,
38
- negated: init.negated ?? false,
39
- payload: init.payload,
40
- contexts: Context.dedupe(init.contexts ?? []),
41
- tags: init.tags ?? [],
42
- conf: init.conf ?? Confidence.defaultConfidence,
43
- importance: init.importance ?? false,
44
- ...init.delta !== undefined ? { delta: init.delta } : {},
45
- ...init.sigmaLevel !== undefined ? { sigmaLevel: init.sigmaLevel } : {},
46
- ...init.comment !== undefined ? { comment: init.comment } : {},
47
- raw: init.raw ?? ''
48
- });
36
+ export const of = (init) => {
37
+ if (init.delta !== undefined)
38
+ Uncertainty.validateDelta(init.delta.num);
39
+ if (init.sigmaLevel !== undefined)
40
+ Uncertainty.validateSigmaLevel(init.sigmaLevel);
41
+ return {
42
+ subject: init.subject,
43
+ verb: init.verb,
44
+ negated: init.negated ?? false,
45
+ payload: init.payload,
46
+ contexts: Context.dedupe(init.contexts ?? []),
47
+ tags: init.tags ?? [],
48
+ conf: init.conf ?? Confidence.defaultConfidence,
49
+ importance: init.importance ?? false,
50
+ ...init.delta !== undefined ? { delta: init.delta } : {},
51
+ ...init.sigmaLevel !== undefined ? { sigmaLevel: init.sigmaLevel } : {},
52
+ ...init.comment !== undefined ? { comment: init.comment } : {},
53
+ raw: init.raw ?? ''
54
+ };
55
+ };
49
56
  /** @returns relational claim payload. */
50
57
  export const relation = (object) => ({ kind: 'relation', object });
51
58
  /** @returns attribute/value claim payload. */
@@ -61,5 +68,5 @@ export const none = { kind: 'none' };
61
68
  */
62
69
  export const sigmaOf = (claim) => claim.delta?.num === undefined ?
63
70
  undefined :
64
- claim.delta.num / (claim.sigmaLevel ?? 2);
71
+ Uncertainty.sigma(claim.delta.num, claim.sigmaLevel);
65
72
  //# sourceMappingURL=claim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/claim.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export * as Context from './context.ts';
15
15
  export * as Entity from './entity.ts';
16
16
  export * as Key from './key.ts';
17
17
  export * as Multiplier from './multiplier.ts';
18
+ export * as SourceSpan from './source-span.ts';
18
19
  export * as Tag from './tag.ts';
19
20
  export * as Time from './time.ts';
20
21
  export * as Uncertainty from './uncertainty.ts';
@@ -22,4 +23,5 @@ export * as Uuidv7 from './uuidv7.ts';
22
23
  export * as Value from './value.ts';
23
24
  export * as Verb from './verb.ts';
24
25
  export * as Version from './version.ts';
26
+ export type { LineSpan, Reference as SourceReference } from './source-span.ts';
25
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,YAAY,EAAE,QAAQ,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/src/index.js CHANGED
@@ -15,6 +15,7 @@ export * as Context from "./context.js";
15
15
  export * as Entity from "./entity.js";
16
16
  export * as Key from "./key.js";
17
17
  export * as Multiplier from "./multiplier.js";
18
+ export * as SourceSpan from "./source-span.js";
18
19
  export * as Tag from "./tag.js";
19
20
  export * as Time from "./time.js";
20
21
  export * as Uncertainty from "./uncertainty.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
@@ -0,0 +1,30 @@
1
+ /** Stable source-line provenance carried by `src:` contexts (spec §9.8). */
2
+ import type { Context } from './context.ts';
3
+ export type LineSpan = {
4
+ /** One-based first source line. */
5
+ readonly startLine: number;
6
+ /** One-based inclusive last source line. */
7
+ readonly endLine: number;
8
+ };
9
+ export type Reference = {
10
+ /** Canonical stored context, without the leading `@`. */
11
+ readonly context: Context;
12
+ /** Decoded underlying source identity, without the line fragment. */
13
+ readonly source: string;
14
+ readonly span?: LineSpan;
15
+ /** Human-facing source plus line fragment. */
16
+ readonly location: string;
17
+ /** Navigable location when the source is an HTTP(S) URL. */
18
+ readonly href?: string;
19
+ };
20
+ /** Percent-escape a source while keeping readable path and URL separators. */
21
+ export declare const escape: (source: string) => string;
22
+ /** Reverse {@link escape}; malformed percent encodings are rejected. */
23
+ export declare const unescape: (source: string) => undefined | string;
24
+ /** Build a canonical `src:` context from a source and optional line span. */
25
+ export declare const context: (source: string, span?: LineSpan) => Context;
26
+ /** Parse one canonical source context, preserving an unspanned source too. */
27
+ export declare const parse: (value: Context) => undefined | Reference;
28
+ /** Parse every valid `src:` context, in authored order. */
29
+ export declare const ofContexts: (contexts: readonly Context[]) => Reference[];
30
+ //# sourceMappingURL=source-span.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-span.d.ts","sourceRoot":"","sources":["../../src/source-span.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,MAAM,QAAQ,GAAG;IACrB,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AASD,8EAA8E;AAC9E,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,KAAG,MAIb,CAAA;AAE3B,wEAAwE;AACxE,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,KAAG,SAAS,GAAG,MAMrD,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,OAAO,QAAQ,KAAG,OAQzD,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,KAAK,GAAI,OAAO,OAAO,KAAG,SAAS,GAAG,SAgClD,CAAA;AAED,2DAA2D;AAC3D,eAAO,MAAM,UAAU,GAAI,UAAU,SAAS,OAAO,EAAE,KAAG,SAAS,EAI/D,CAAA"}
@@ -0,0 +1,68 @@
1
+ /** Stable source-line provenance carried by `src:` contexts (spec §9.8). */
2
+ const lineFragment = (span) => span.startLine === span.endLine ? `L${span.startLine}` : `L${span.startLine}-L${span.endLine}`;
3
+ const validSpan = (span) => Number.isInteger(span.startLine) && Number.isInteger(span.endLine) &&
4
+ span.startLine >= 1 && span.endLine >= span.startLine;
5
+ /** Percent-escape a source while keeping readable path and URL separators. */
6
+ export const escape = (source) => encodeURIComponent(source)
7
+ .replace(/[!'()*]/g, char => `%${char.charCodeAt(0).toString(16).toUpperCase()}`)
8
+ .replaceAll('%2F', '/')
9
+ .replaceAll('%3A', ':');
10
+ /** Reverse {@link escape}; malformed percent encodings are rejected. */
11
+ export const unescape = (source) => {
12
+ try {
13
+ return decodeURIComponent(source);
14
+ }
15
+ catch {
16
+ return undefined;
17
+ }
18
+ };
19
+ /** Build a canonical `src:` context from a source and optional line span. */
20
+ export const context = (source, span) => {
21
+ if (source === '') {
22
+ throw new Error('source must not be empty');
23
+ }
24
+ if (span !== undefined && !validSpan(span)) {
25
+ throw new Error(`invalid source line span ${JSON.stringify(span)}`);
26
+ }
27
+ return `src:${escape(source)}${span === undefined ? '' : `#${lineFragment(span)}`}`;
28
+ };
29
+ /** Parse one canonical source context, preserving an unspanned source too. */
30
+ export const parse = (value) => {
31
+ if (!value.startsWith('src:')) {
32
+ return undefined;
33
+ }
34
+ const payload = value.slice(4);
35
+ const hashAt = payload.indexOf('#');
36
+ const encodedSource = hashAt === -1 ? payload : payload.slice(0, hashAt);
37
+ const fragment = hashAt === -1 ? undefined : payload.slice(hashAt + 1);
38
+ const match = fragment === undefined ? undefined : /^L([1-9]\d*)(?:-L([1-9]\d*))?$/.exec(fragment);
39
+ if (encodedSource === '' || (fragment !== undefined && match === null)) {
40
+ return undefined;
41
+ }
42
+ const source = unescape(encodedSource);
43
+ if (source === undefined || escape(source) !== encodedSource) {
44
+ return undefined;
45
+ }
46
+ const start = match == null ? undefined : Number(match[1]);
47
+ const end = start === undefined || match == null ? undefined : Number(match[2] ?? match[1]);
48
+ const span = start === undefined ? undefined : { startLine: start, endLine: end };
49
+ if (span !== undefined && !validSpan(span)) {
50
+ return undefined;
51
+ }
52
+ const location = `${source}${span === undefined ? '' : `#${lineFragment(span)}`}`;
53
+ const href = /^https?:\/\//i.test(source) && !source.includes('#') ?
54
+ `${encodeURI(source)}${span === undefined ? '' : `#${lineFragment(span)}`}` : undefined;
55
+ return {
56
+ context: value,
57
+ source,
58
+ ...span === undefined ? {} : { span },
59
+ location,
60
+ ...href === undefined ? {} : { href }
61
+ };
62
+ };
63
+ /** Parse every valid `src:` context, in authored order. */
64
+ export const ofContexts = (contexts) => contexts.flatMap(value => {
65
+ const reference = parse(value);
66
+ return reference === undefined ? [] : [reference];
67
+ });
68
+ //# sourceMappingURL=source-span.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-span.js","sourceRoot":"","sources":["../../src/source-span.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAuB5E,MAAM,YAAY,GAAG,CAAC,IAAc,EAAU,EAAE,CAC9C,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA;AAEhG,MAAM,SAAS,GAAG,CAAC,IAAc,EAAW,EAAE,CAC5C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;IAClE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAA;AAEvD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAU,EAAE,CAC/C,kBAAkB,CAAC,MAAM,CAAC;KACvB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;KAChF,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;KACtB,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAE3B,wEAAwE;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAsB,EAAE;IAC7D,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,IAAe,EAAW,EAAE;IAClE,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;AACrF,CAAC,CAAA;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAc,EAAyB,EAAE;IAC7D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACtE,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClG,IAAI,aAAa,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;IACtC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,aAAa,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3F,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAI,EAAE,CAAA;IAClF,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA;IACjF,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACzF,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM;QACN,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;QACrC,QAAQ;QACR,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;KACtC,CAAA;AACH,CAAC,CAAA;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAA4B,EAAe,EAAE,CACtE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AACnD,CAAC,CAAC,CAAA"}
@@ -21,6 +21,8 @@ export type Period = {
21
21
  readonly end: number;
22
22
  };
23
23
  export type t = Period;
24
+ /** A query boundary as a UTC half-open interval. */
25
+ export type Boundary = Period;
24
26
  /** How a context reads as time: a point period, or a `..` range. */
25
27
  export type TimeContext = {
26
28
  readonly kind: 'point';
@@ -58,6 +60,18 @@ export declare const parseRange: (text: string) => undefined | {
58
60
  * robust-extraction default (spec §1.6).
59
61
  */
60
62
  export declare const ofContext: (context: string) => undefined | TimeContext;
63
+ /**
64
+ * Parses an ISO timestamp into a UTC instant. An omitted offset means UTC,
65
+ * never the host's local timezone; explicit `Z` and numeric offsets retain
66
+ * their usual ISO meaning. Date and clock fields are validated before the
67
+ * platform parser can normalize them.
68
+ */
69
+ export declare const parseTimestamp: (text: string) => undefined | number;
70
+ /**
71
+ * Parses the shared query-time boundary: a date-like period keeps its whole
72
+ * UTC interval, while a timestamp covers one second from its exact instant.
73
+ */
74
+ export declare const parseBoundary: (text: string) => undefined | Boundary;
61
75
  /**
62
76
  * Parses a query anchor into an instant (ms since epoch): a date-like
63
77
  * period reads as its *start* instant (`2026` is 2026-01-01T00:00:00Z —
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,MAAM,CAAA;AAEtB,oEAAoE;AACpE,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAgB9E;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,MAwCtD,CAAA;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAiCnF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,SAAS,GAAG,WAQvD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,MAUvD,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,MAAM,GAAI,SAAS,WAAW,EAAE,SAAS,MAAM,KAAG,OAIH,CAAA;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,OAaxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAanG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,MAAM,KAAG,MAMnF,CAAA"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,MAAM,CAAA;AAEtB,oDAAoD;AACpD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B,oEAAoE;AACpE,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAsB9E;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,MA4CtD,CAAA;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAiCnF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,SAAS,GAAG,WAQvD,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,MAazD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,QAKxD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,SAAS,GAAG,MAEvD,CAAA;AAED,uEAAuE;AACvE,eAAO,MAAM,MAAM,GAAI,SAAS,WAAW,EAAE,SAAS,MAAM,KAAG,OAIH,CAAA;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,OAaxE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,SAAS,MAAM,EAAE,KAAG,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAanG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,MAAM,KAAG,MAMnF,CAAA"}
package/dist/src/time.js CHANGED
@@ -16,7 +16,14 @@
16
16
  * §12.3). `cave query --at` filters and interpolates on this axis.
17
17
  */
18
18
  const dayMs = 86_400_000;
19
- const utcDay = (year, month, day) => Date.UTC(year, month - 1, day);
19
+ const utcDay = (year, month, day) => {
20
+ // Date.UTC treats years 0..99 as 1900..1999. Setting the full year on an
21
+ // existing date preserves the four-digit year written in the CAVE value.
22
+ const date = new Date(0);
23
+ date.setUTCHours(0, 0, 0, 0);
24
+ date.setUTCFullYear(year, month - 1, day);
25
+ return date.getTime();
26
+ };
20
27
  /** Monday starting ISO week `week` of `year` (ISO 8601: week 1 contains Jan 4). */
21
28
  const isoWeekStart = (year, week) => {
22
29
  const jan4 = utcDay(year, 1, 4);
@@ -51,6 +58,10 @@ export const parsePeriod = (text) => {
51
58
  return undefined;
52
59
  }
53
60
  const start = isoWeekStart(year, w);
61
+ // Only years whose next ISO week-year starts after week 53 have one.
62
+ if (start >= isoWeekStart(year + 1, 1)) {
63
+ return undefined;
64
+ }
54
65
  return { start, end: start + 7 * dayMs };
55
66
  }
56
67
  if (month !== undefined) {
@@ -131,6 +142,40 @@ export const ofContext = (context) => {
131
142
  const period = parsePeriod(body);
132
143
  return period === undefined ? undefined : { kind: 'point', period };
133
144
  };
145
+ const timestampRe = /^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?([zZ]|[+-]\d{2}:\d{2})?$/;
146
+ /**
147
+ * Parses an ISO timestamp into a UTC instant. An omitted offset means UTC,
148
+ * never the host's local timezone; explicit `Z` and numeric offsets retain
149
+ * their usual ISO meaning. Date and clock fields are validated before the
150
+ * platform parser can normalize them.
151
+ */
152
+ export const parseTimestamp = (text) => {
153
+ const match = timestampRe.exec(text);
154
+ if (match === null)
155
+ return undefined;
156
+ const [, date, hour, minute, second, , zone] = match;
157
+ if (parsePeriod(date) === undefined || Number(hour) > 23 || Number(minute) > 59 || Number(second) > 59) {
158
+ return undefined;
159
+ }
160
+ if (zone !== undefined && zone !== 'Z' && zone !== 'z') {
161
+ const [offsetHour, offsetMinute] = zone.slice(1).split(':').map(Number);
162
+ if (offsetHour > 23 || offsetMinute > 59)
163
+ return undefined;
164
+ }
165
+ const parsed = Date.parse(zone === undefined ? `${text}Z` : text);
166
+ return Number.isNaN(parsed) ? undefined : parsed;
167
+ };
168
+ /**
169
+ * Parses the shared query-time boundary: a date-like period keeps its whole
170
+ * UTC interval, while a timestamp covers one second from its exact instant.
171
+ */
172
+ export const parseBoundary = (text) => {
173
+ const period = parsePeriod(text);
174
+ if (period !== undefined)
175
+ return period;
176
+ const start = parseTimestamp(text);
177
+ return start === undefined ? undefined : { start, end: start + 1_000 };
178
+ };
134
179
  /**
135
180
  * Parses a query anchor into an instant (ms since epoch): a date-like
136
181
  * period reads as its *start* instant (`2026` is 2026-01-01T00:00:00Z —
@@ -138,15 +183,7 @@ export const ofContext = (context) => {
138
183
  * exactly. @returns `undefined` when `text` is neither.
139
184
  */
140
185
  export const parseInstant = (text) => {
141
- const period = parsePeriod(text);
142
- if (period !== undefined) {
143
- return period.start;
144
- }
145
- if (!text.includes('T')) {
146
- return undefined;
147
- }
148
- const parsed = Date.parse(text);
149
- return Number.isNaN(parsed) ? undefined : parsed;
186
+ return parseBoundary(text)?.start;
150
187
  };
151
188
  /** @returns whether a time context covers the instant (spec §32.4). */
152
189
  export const covers = (context, instant) => context.kind === 'point' ?
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/time.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,19 @@
14
14
  */
15
15
  /** Default σ level when `(Nσ)` is omitted (spec §7.2). */
16
16
  export declare const defaultSigmaLevel = 2;
17
+ export type Field = 'uncertainty delta' | 'sigma level' | 'sigma';
18
+ /** Typed failure for uncertainty values that cannot define a finite distribution. */
19
+ export declare class InvalidUncertaintyError extends RangeError {
20
+ readonly field: Field;
21
+ readonly value: unknown;
22
+ constructor(field: Field, value: unknown);
23
+ }
24
+ /** Validates a `+/-` interval half-width. */
25
+ export declare const validateDelta: (value: unknown) => number;
26
+ /** Validates the `N` in an `(Nσ)` override. */
27
+ export declare const validateSigmaLevel: (value: unknown) => number;
28
+ /** Validates a directly supplied standard deviation. */
29
+ export declare const validateSigma: (value: unknown) => number;
17
30
  /** @returns σ from an interval `delta` given at `level`σ: σ = Δ / k. */
18
31
  export declare const sigma: (delta: number, level?: number) => number;
19
32
  /** @returns symmetric `[low, high]` interval around `mean`. */
@@ -1 +1 @@
1
- {"version":3,"file":"uncertainty.d.ts","sourceRoot":"","sources":["../../src/uncertainty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC,wEAAwE;AACxE,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,QAAO,MAA0B,KAAG,MAKxE,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CACxC,CAAA"}
1
+ {"version":3,"file":"uncertainty.d.ts","sourceRoot":"","sources":["../../src/uncertainty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC,MAAM,MAAM,KAAK,GAAG,mBAAmB,GAAG,aAAa,GAAG,OAAO,CAAA;AAEjE,qFAAqF;AACrF,qBAAa,uBAAwB,SAAQ,UAAU;IACrD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;gBAEX,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;CAMzC;AASD,6CAA6C;AAC7C,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MACH,CAAA;AAE5C,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,MACd,CAAA;AAEtC,wDAAwD;AACxD,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MACf,CAAA;AAEhC,wEAAwE;AACxE,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,QAAO,MAA0B,KAAG,MAExE,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CACxC,CAAA"}
@@ -14,12 +14,32 @@
14
14
  */
15
15
  /** Default σ level when `(Nσ)` is omitted (spec §7.2). */
16
16
  export const defaultSigmaLevel = 2;
17
+ /** Typed failure for uncertainty values that cannot define a finite distribution. */
18
+ export class InvalidUncertaintyError extends RangeError {
19
+ field;
20
+ value;
21
+ constructor(field, value) {
22
+ super(`Expected positive finite ${field}, got ${String(value)}.`);
23
+ this.name = 'InvalidUncertaintyError';
24
+ this.field = field;
25
+ this.value = value;
26
+ }
27
+ }
28
+ const positiveFinite = (field, value) => {
29
+ if (typeof value !== 'number' || !Number.isFinite(value) || !(value > 0)) {
30
+ throw new InvalidUncertaintyError(field, value);
31
+ }
32
+ return value;
33
+ };
34
+ /** Validates a `+/-` interval half-width. */
35
+ export const validateDelta = (value) => positiveFinite('uncertainty delta', value);
36
+ /** Validates the `N` in an `(Nσ)` override. */
37
+ export const validateSigmaLevel = (value) => positiveFinite('sigma level', value);
38
+ /** Validates a directly supplied standard deviation. */
39
+ export const validateSigma = (value) => positiveFinite('sigma', value);
17
40
  /** @returns σ from an interval `delta` given at `level`σ: σ = Δ / k. */
18
41
  export const sigma = (delta, level = defaultSigmaLevel) => {
19
- if (!(level > 0)) {
20
- throw new Error(`Expected positive sigma level, got ${level}.`);
21
- }
22
- return delta / level;
42
+ return validateSigma(validateDelta(delta) / validateSigmaLevel(level));
23
43
  };
24
44
  /** @returns symmetric `[low, high]` interval around `mean`. */
25
45
  export const interval = (mean, delta) => [mean - delta, mean + delta];
@@ -1 +1 @@
1
- {"version":3,"file":"uncertainty.js","sourceRoot":"","sources":["../../src/uncertainty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAElC,wEAAwE;AACxE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,QAAgB,iBAAiB,EAAU,EAAE;IAChF,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,GAAG,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,KAAK,GAAG,KAAK,CAAA;AACtB,CAAC,CAAA;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAa,EAAoB,EAAE,CACxE,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"uncertainty.js","sourceRoot":"","sources":["../../src/uncertainty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAIlC,qFAAqF;AACrF,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IAC5C,KAAK,CAAO;IACZ,KAAK,CAAS;IAEvB,YAAY,KAAY,EAAE,KAAc;QACtC,KAAK,CAAC,4BAA4B,KAAK,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjE,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF;AAED,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,KAAc,EAAU,EAAE;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CACtD,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;AAE5C,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAU,EAAE,CAC3D,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AAEtC,wDAAwD;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CACtD,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAEhC,wEAAwE;AACxE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,QAAgB,iBAAiB,EAAU,EAAE;IAChF,OAAO,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;AACxE,CAAC,CAAA;AAED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAa,EAAoB,EAAE,CACxE,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,CAAC,CAAA"}
@@ -38,4 +38,10 @@ export declare const is: (s: string) => boolean;
38
38
  * origin machine's clock read. Non-v7 ids are ignored.
39
39
  */
40
40
  export declare const observe: (id: string) => void;
41
+ /**
42
+ * Runs synchronous speculative work without retaining UUID generator state.
43
+ * Database dry-runs use this alongside transaction rollback so explicit-id
44
+ * observations and locally minted rows are both absent after the preview.
45
+ */
46
+ export declare const withStatePreserved: <T>(body: () => T) => T;
41
47
  //# sourceMappingURL=uuidv7.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"uuidv7.d.ts","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;;;;;;GAOG;AACH,eAAO,MAAM,EAAE,GAAI,IAAI,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,KAAG,MAmB9D,CAAA;AAKD;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,MAAK,MAAM,MAAiB,KAAG,MAkBnD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,KAAG,MACqB,CAAA;AAIvD,6DAA6D;AAC7D,eAAO,MAAM,EAAE,GAAI,GAAG,MAAM,KAAG,OACf,CAAA;AAMhB;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,KAAG,IAUpC,CAAA"}
1
+ {"version":3,"file":"uuidv7.d.ts","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;;;;;;GAOG;AACH,eAAO,MAAM,EAAE,GAAI,IAAI,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,KAAG,MAmB9D,CAAA;AAKD;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,MAAK,MAAM,MAAiB,KAAG,MAkBnD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,KAAG,MACqB,CAAA;AAIvD,6DAA6D;AAC7D,eAAO,MAAM,EAAE,GAAI,GAAG,MAAM,KAAG,OACf,CAAA;AAMhB;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,KAAG,IAUpC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,MAAM,MAAM,CAAC,KAAG,CASrD,CAAA"}
@@ -92,4 +92,20 @@ export const observe = (id) => {
92
92
  lastSeq = seq;
93
93
  }
94
94
  };
95
+ /**
96
+ * Runs synchronous speculative work without retaining UUID generator state.
97
+ * Database dry-runs use this alongside transaction rollback so explicit-id
98
+ * observations and locally minted rows are both absent after the preview.
99
+ */
100
+ export const withStatePreserved = (body) => {
101
+ const savedMs = lastMs;
102
+ const savedSeq = lastSeq;
103
+ try {
104
+ return body();
105
+ }
106
+ finally {
107
+ lastMs = savedMs;
108
+ lastSeq = savedSeq;
109
+ }
110
+ };
95
111
  //# sourceMappingURL=uuidv7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,8 @@ export type t = Value;
44
44
  export declare const isUnit: (s: string) => boolean;
45
45
  /**
46
46
  * @returns `true` if `s` is date-like (spec §16 `date_like`): `2026-H2`,
47
- * `2026-Q1`, `2026-04`, `2026-04-10`. A bare year parses as a number instead.
47
+ * `2026-Q1`, `2026-04`, `2026-04-10`. Calendar validity is shared with
48
+ * {@link parsePeriod}; a bare year parses as a number instead.
48
49
  */
49
50
  export declare const isDateLike: (s: string) => boolean;
50
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../src/value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,yCAAyC;AACzC,MAAM,MAAM,IAAI,GACZ,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAA;AAEV,MAAM,MAAM,KAAK,GAAG;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,KAAK,CAAA;AAMrB,+EAA+E;AAC/E,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,OACnB,CAAA;AAEhB;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,OACvB,CAAA;AA8EhB;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,KAoBnC,CAAA;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,KAAG,MAcxC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,UAAU,MAAM,KAAG,SAAS,GAAG,MAGI,CAAA;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,UAAU,MAAM,KAAG,SAAS,GAAG,MAqBrE,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,KACQ,CAAA;AAE9C,sEAAsE;AACtE,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,KACQ,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,KAAG,MASrC,CAAA"}
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../src/value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,yCAAyC;AACzC,MAAM,MAAM,IAAI,GACZ,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAA;AAEV,MAAM,MAAM,KAAK,GAAG;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,KAAK,CAAA;AAIrB,+EAA+E;AAC/E,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,KAAG,OACnB,CAAA;AAEhB;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,OACU,CAAA;AA8EjD;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,KAoBnC,CAAA;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,KAAG,MAcxC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,UAAU,MAAM,KAAG,SAAS,GAAG,MAGI,CAAA;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,UAAU,MAAM,KAAG,SAAS,GAAG,MAqBrE,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,KACQ,CAAA;AAE9C,sEAAsE;AACtE,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,KAAG,KACQ,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,KAAG,MASrC,CAAA"}