@gabrielbryk/jq-ts 1.3.6 → 1.5.0

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/dist/index.d.cts CHANGED
@@ -179,14 +179,36 @@ interface IfNode {
179
179
  else: FilterNode;
180
180
  span: Span;
181
181
  }
182
+ /**
183
+ * Represents a variable binding pattern used by `as`.
184
+ * Supports jq-style scalar, array, object, and `{$name}` shorthand patterns.
185
+ */
186
+ type BindingPattern = {
187
+ kind: 'VariablePattern';
188
+ name: string;
189
+ span: Span;
190
+ } | {
191
+ kind: 'ArrayPattern';
192
+ items: BindingPattern[];
193
+ span: Span;
194
+ } | {
195
+ kind: 'ObjectPattern';
196
+ entries: ObjectPatternEntry[];
197
+ span: Span;
198
+ };
199
+ interface ObjectPatternEntry {
200
+ key: string;
201
+ pattern: BindingPattern;
202
+ span: Span;
203
+ }
182
204
  /**
183
205
  * Represents a variable binding expression.
184
- * `expression as $var | body`
206
+ * `expression as $var | body` or `expression as [$a, {b: $b}] | body`
185
207
  */
186
208
  interface AsNode {
187
209
  kind: 'As';
188
210
  bind: FilterNode;
189
- name: string;
211
+ pattern: BindingPattern;
190
212
  body: FilterNode;
191
213
  span: Span;
192
214
  }
@@ -207,7 +229,7 @@ interface CallNode {
207
229
  interface ReduceNode {
208
230
  kind: 'Reduce';
209
231
  source: FilterNode;
210
- var: string;
232
+ pattern: BindingPattern;
211
233
  init: FilterNode;
212
234
  update: FilterNode;
213
235
  span: Span;
@@ -219,7 +241,7 @@ interface ReduceNode {
219
241
  interface ForeachNode {
220
242
  kind: 'Foreach';
221
243
  source: FilterNode;
222
- var: string;
244
+ pattern: BindingPattern;
223
245
  init: FilterNode;
224
246
  update: FilterNode;
225
247
  extract?: FilterNode;
@@ -355,10 +377,26 @@ declare const resolveLimits: (config?: LimitsConfig) => ResolvedLimits;
355
377
  */
356
378
  declare class LimitTracker {
357
379
  private readonly limits;
380
+ private readonly nowSeconds?;
358
381
  private steps;
359
382
  private depth;
360
383
  private outputs;
361
- constructor(limits: ResolvedLimits);
384
+ /**
385
+ * @param limits - Resolved execution limits.
386
+ * @param nowSeconds - The wall-clock instant exposed to the `now` builtin, as
387
+ * seconds since the Unix epoch (may be fractional). When `undefined`, the
388
+ * `now` builtin throws rather than reading the host clock — jq-ts never
389
+ * reads the real clock on its own, so date programs stay deterministic
390
+ * unless the caller injects a clock via `options.now`.
391
+ */
392
+ constructor(limits: ResolvedLimits, nowSeconds?: number | undefined);
393
+ /**
394
+ * Returns the injected wall-clock instant (seconds since the Unix epoch) for
395
+ * the `now` builtin.
396
+ * @param span - The source span for error reporting.
397
+ * @throws {RuntimeError} If no clock was injected (`options.now` was unset).
398
+ */
399
+ now(span: Span): number;
362
400
  /**
363
401
  * Records a single execution step (AST node visit).
364
402
  * @param span - The source span for error reporting.
@@ -408,6 +446,13 @@ interface EvalOptions {
408
446
  * Keys are variable names without the '$' prefix.
409
447
  */
410
448
  vars?: Record<string, Value>;
449
+ /**
450
+ * The wall-clock instant the `now` builtin resolves to — a `Date` or seconds
451
+ * since the Unix epoch. When omitted, `now` throws (jq-ts never reads the
452
+ * host clock on its own). Pure date builtins (`gmtime`, `strftime`, `todate`,
453
+ * …) are unaffected.
454
+ */
455
+ now?: Date | number;
411
456
  }
412
457
  //#endregion
413
458
  //#region src/eval/dispatch.d.ts
@@ -424,6 +469,15 @@ interface EvalOptions$1 {
424
469
  * Keys are variable names without the '$' prefix.
425
470
  */
426
471
  vars?: Record<string, Value>;
472
+ /**
473
+ * The wall-clock instant the `now` builtin resolves to. Accepts a `Date` or
474
+ * a number of seconds since the Unix epoch (may be fractional). When omitted,
475
+ * `now` throws — jq-ts never reads the host clock on its own, so date
476
+ * programs stay deterministic unless a clock is explicitly injected. Pure
477
+ * date builtins that take an explicit epoch (`gmtime`, `strftime`, `todate`,
478
+ * …) work regardless of this option.
479
+ */
480
+ now?: Date | number;
427
481
  }
428
482
  /**
429
483
  * Runs a jq AST against an input value.
@@ -483,6 +537,64 @@ declare class RuntimeError extends BaseError {
483
537
  constructor(message: string, span: Span);
484
538
  }
485
539
  //#endregion
540
+ //#region src/compat.d.ts
541
+ type CompatibilityStage = 'lex' | 'parse' | 'validate' | 'runtime' | 'compare';
542
+ type CompatibilityFindingSeverity = 'error' | 'warning';
543
+ type CompatibilityFindingCategory = 'unsupported-syntax' | 'unsupported-builtin' | 'arity-mismatch' | 'intentional-exclusion' | 'semantic-deviation' | 'input-dependent' | 'runtime-error' | 'jq-error' | 'output-mismatch';
544
+ interface CompatibilityFinding {
545
+ severity: CompatibilityFindingSeverity;
546
+ stage?: CompatibilityStage;
547
+ category: CompatibilityFindingCategory;
548
+ message: string;
549
+ span?: {
550
+ start: number;
551
+ end: number;
552
+ };
553
+ }
554
+ interface CompatibilityCheckResult {
555
+ compatible: boolean;
556
+ findings: CompatibilityFinding[];
557
+ }
558
+ interface CompatibilityAnalysisResult extends CompatibilityCheckResult {
559
+ warnings: CompatibilityFinding[];
560
+ }
561
+ type ExecutionResult = {
562
+ ok: true;
563
+ outputs: Value[];
564
+ } | {
565
+ ok: false;
566
+ error: string;
567
+ stage?: CompatibilityStage;
568
+ };
569
+ interface CompareWithJqResult {
570
+ compatible: boolean;
571
+ equivalent: boolean | null;
572
+ analysis: CompatibilityAnalysisResult;
573
+ jqTs: ExecutionResult;
574
+ jq: ExecutionResult;
575
+ findings: CompatibilityFinding[];
576
+ }
577
+ type JqRunner = (source: string, input: Value) => Value[] | ExecutionResult;
578
+ /**
579
+ * Checks whether a jq expression can be parsed and statically validated by jq-ts.
580
+ *
581
+ * This is a syntax/subset check only. It does not prove that runtime behavior
582
+ * matches the jq binary for every possible input.
583
+ */
584
+ declare const checkCompatibility: (source: string) => CompatibilityCheckResult;
585
+ /**
586
+ * Checks jq-ts compatibility and reports known semantic differences from jq.
587
+ */
588
+ declare const analyzeCompatibility: (source: string) => CompatibilityAnalysisResult;
589
+ /**
590
+ * Compares jq-ts execution against a caller-provided jq runner or jq result.
591
+ *
592
+ * The function is safe to export from the isolate-safe library because it does
593
+ * not spawn the jq binary itself. Tests and development tools can pass a runner
594
+ * that shells out to jq.
595
+ */
596
+ declare const compareWithJq: (source: string, input: Value, jq: JqRunner | ExecutionResult, options?: EvalOptions) => CompareWithJqResult;
597
+ //#endregion
486
598
  //#region src/index.d.ts
487
599
  /**
488
600
  * Runs a jq query against a JSON input.
@@ -498,5 +610,5 @@ declare class RuntimeError extends BaseError {
498
610
  */
499
611
  declare const run: (source: string, input: Value, options?: EvalOptions) => Value[];
500
612
  //#endregion
501
- export { type EvalOptions, LexError, LimitTracker, type LimitsConfig, ParseError, type ResolvedLimits, RuntimeError, ValidationError, type Value, parse, resolveLimits, run, runAst, validate };
613
+ export { type CompareWithJqResult, type CompatibilityAnalysisResult, type CompatibilityCheckResult, type CompatibilityFinding, type CompatibilityFindingCategory, type CompatibilityFindingSeverity, type CompatibilityStage, type EvalOptions, type ExecutionResult, type JqRunner, LexError, LimitTracker, type LimitsConfig, ParseError, type ResolvedLimits, RuntimeError, ValidationError, type Value, analyzeCompatibility, checkCompatibility, compareWithJq, parse, resolveLimits, run, runAst, validate };
502
614
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/span.ts","../src/ast.ts","../src/parser.ts","../src/validate.ts","../src/limits.ts","../src/value.ts","../src/eval/types.ts","../src/eval/dispatch.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/span.ts","../src/ast.ts","../src/parser.ts","../src/validate.ts","../src/limits.ts","../src/value.ts","../src/eval/types.ts","../src/eval/dispatch.ts","../src/errors.ts","../src/compat.ts","../src/index.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -179,14 +179,36 @@ interface IfNode {
179
179
  else: FilterNode;
180
180
  span: Span;
181
181
  }
182
+ /**
183
+ * Represents a variable binding pattern used by `as`.
184
+ * Supports jq-style scalar, array, object, and `{$name}` shorthand patterns.
185
+ */
186
+ type BindingPattern = {
187
+ kind: 'VariablePattern';
188
+ name: string;
189
+ span: Span;
190
+ } | {
191
+ kind: 'ArrayPattern';
192
+ items: BindingPattern[];
193
+ span: Span;
194
+ } | {
195
+ kind: 'ObjectPattern';
196
+ entries: ObjectPatternEntry[];
197
+ span: Span;
198
+ };
199
+ interface ObjectPatternEntry {
200
+ key: string;
201
+ pattern: BindingPattern;
202
+ span: Span;
203
+ }
182
204
  /**
183
205
  * Represents a variable binding expression.
184
- * `expression as $var | body`
206
+ * `expression as $var | body` or `expression as [$a, {b: $b}] | body`
185
207
  */
186
208
  interface AsNode {
187
209
  kind: 'As';
188
210
  bind: FilterNode;
189
- name: string;
211
+ pattern: BindingPattern;
190
212
  body: FilterNode;
191
213
  span: Span;
192
214
  }
@@ -207,7 +229,7 @@ interface CallNode {
207
229
  interface ReduceNode {
208
230
  kind: 'Reduce';
209
231
  source: FilterNode;
210
- var: string;
232
+ pattern: BindingPattern;
211
233
  init: FilterNode;
212
234
  update: FilterNode;
213
235
  span: Span;
@@ -219,7 +241,7 @@ interface ReduceNode {
219
241
  interface ForeachNode {
220
242
  kind: 'Foreach';
221
243
  source: FilterNode;
222
- var: string;
244
+ pattern: BindingPattern;
223
245
  init: FilterNode;
224
246
  update: FilterNode;
225
247
  extract?: FilterNode;
@@ -355,10 +377,26 @@ declare const resolveLimits: (config?: LimitsConfig) => ResolvedLimits;
355
377
  */
356
378
  declare class LimitTracker {
357
379
  private readonly limits;
380
+ private readonly nowSeconds?;
358
381
  private steps;
359
382
  private depth;
360
383
  private outputs;
361
- constructor(limits: ResolvedLimits);
384
+ /**
385
+ * @param limits - Resolved execution limits.
386
+ * @param nowSeconds - The wall-clock instant exposed to the `now` builtin, as
387
+ * seconds since the Unix epoch (may be fractional). When `undefined`, the
388
+ * `now` builtin throws rather than reading the host clock — jq-ts never
389
+ * reads the real clock on its own, so date programs stay deterministic
390
+ * unless the caller injects a clock via `options.now`.
391
+ */
392
+ constructor(limits: ResolvedLimits, nowSeconds?: number | undefined);
393
+ /**
394
+ * Returns the injected wall-clock instant (seconds since the Unix epoch) for
395
+ * the `now` builtin.
396
+ * @param span - The source span for error reporting.
397
+ * @throws {RuntimeError} If no clock was injected (`options.now` was unset).
398
+ */
399
+ now(span: Span): number;
362
400
  /**
363
401
  * Records a single execution step (AST node visit).
364
402
  * @param span - The source span for error reporting.
@@ -408,6 +446,13 @@ interface EvalOptions {
408
446
  * Keys are variable names without the '$' prefix.
409
447
  */
410
448
  vars?: Record<string, Value>;
449
+ /**
450
+ * The wall-clock instant the `now` builtin resolves to — a `Date` or seconds
451
+ * since the Unix epoch. When omitted, `now` throws (jq-ts never reads the
452
+ * host clock on its own). Pure date builtins (`gmtime`, `strftime`, `todate`,
453
+ * …) are unaffected.
454
+ */
455
+ now?: Date | number;
411
456
  }
412
457
  //#endregion
413
458
  //#region src/eval/dispatch.d.ts
@@ -424,6 +469,15 @@ interface EvalOptions$1 {
424
469
  * Keys are variable names without the '$' prefix.
425
470
  */
426
471
  vars?: Record<string, Value>;
472
+ /**
473
+ * The wall-clock instant the `now` builtin resolves to. Accepts a `Date` or
474
+ * a number of seconds since the Unix epoch (may be fractional). When omitted,
475
+ * `now` throws — jq-ts never reads the host clock on its own, so date
476
+ * programs stay deterministic unless a clock is explicitly injected. Pure
477
+ * date builtins that take an explicit epoch (`gmtime`, `strftime`, `todate`,
478
+ * …) work regardless of this option.
479
+ */
480
+ now?: Date | number;
427
481
  }
428
482
  /**
429
483
  * Runs a jq AST against an input value.
@@ -483,6 +537,64 @@ declare class RuntimeError extends BaseError {
483
537
  constructor(message: string, span: Span);
484
538
  }
485
539
  //#endregion
540
+ //#region src/compat.d.ts
541
+ type CompatibilityStage = 'lex' | 'parse' | 'validate' | 'runtime' | 'compare';
542
+ type CompatibilityFindingSeverity = 'error' | 'warning';
543
+ type CompatibilityFindingCategory = 'unsupported-syntax' | 'unsupported-builtin' | 'arity-mismatch' | 'intentional-exclusion' | 'semantic-deviation' | 'input-dependent' | 'runtime-error' | 'jq-error' | 'output-mismatch';
544
+ interface CompatibilityFinding {
545
+ severity: CompatibilityFindingSeverity;
546
+ stage?: CompatibilityStage;
547
+ category: CompatibilityFindingCategory;
548
+ message: string;
549
+ span?: {
550
+ start: number;
551
+ end: number;
552
+ };
553
+ }
554
+ interface CompatibilityCheckResult {
555
+ compatible: boolean;
556
+ findings: CompatibilityFinding[];
557
+ }
558
+ interface CompatibilityAnalysisResult extends CompatibilityCheckResult {
559
+ warnings: CompatibilityFinding[];
560
+ }
561
+ type ExecutionResult = {
562
+ ok: true;
563
+ outputs: Value[];
564
+ } | {
565
+ ok: false;
566
+ error: string;
567
+ stage?: CompatibilityStage;
568
+ };
569
+ interface CompareWithJqResult {
570
+ compatible: boolean;
571
+ equivalent: boolean | null;
572
+ analysis: CompatibilityAnalysisResult;
573
+ jqTs: ExecutionResult;
574
+ jq: ExecutionResult;
575
+ findings: CompatibilityFinding[];
576
+ }
577
+ type JqRunner = (source: string, input: Value) => Value[] | ExecutionResult;
578
+ /**
579
+ * Checks whether a jq expression can be parsed and statically validated by jq-ts.
580
+ *
581
+ * This is a syntax/subset check only. It does not prove that runtime behavior
582
+ * matches the jq binary for every possible input.
583
+ */
584
+ declare const checkCompatibility: (source: string) => CompatibilityCheckResult;
585
+ /**
586
+ * Checks jq-ts compatibility and reports known semantic differences from jq.
587
+ */
588
+ declare const analyzeCompatibility: (source: string) => CompatibilityAnalysisResult;
589
+ /**
590
+ * Compares jq-ts execution against a caller-provided jq runner or jq result.
591
+ *
592
+ * The function is safe to export from the isolate-safe library because it does
593
+ * not spawn the jq binary itself. Tests and development tools can pass a runner
594
+ * that shells out to jq.
595
+ */
596
+ declare const compareWithJq: (source: string, input: Value, jq: JqRunner | ExecutionResult, options?: EvalOptions) => CompareWithJqResult;
597
+ //#endregion
486
598
  //#region src/index.d.ts
487
599
  /**
488
600
  * Runs a jq query against a JSON input.
@@ -498,5 +610,5 @@ declare class RuntimeError extends BaseError {
498
610
  */
499
611
  declare const run: (source: string, input: Value, options?: EvalOptions) => Value[];
500
612
  //#endregion
501
- export { type EvalOptions, LexError, LimitTracker, type LimitsConfig, ParseError, type ResolvedLimits, RuntimeError, ValidationError, type Value, parse, resolveLimits, run, runAst, validate };
613
+ export { type CompareWithJqResult, type CompatibilityAnalysisResult, type CompatibilityCheckResult, type CompatibilityFinding, type CompatibilityFindingCategory, type CompatibilityFindingSeverity, type CompatibilityStage, type EvalOptions, type ExecutionResult, type JqRunner, LexError, LimitTracker, type LimitsConfig, ParseError, type ResolvedLimits, RuntimeError, ValidationError, type Value, analyzeCompatibility, checkCompatibility, compareWithJq, parse, resolveLimits, run, runAst, validate };
502
614
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/span.ts","../src/ast.ts","../src/parser.ts","../src/validate.ts","../src/limits.ts","../src/value.ts","../src/eval/types.ts","../src/eval/dispatch.ts","../src/errors.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/span.ts","../src/ast.ts","../src/parser.ts","../src/validate.ts","../src/limits.ts","../src/value.ts","../src/eval/types.ts","../src/eval/dispatch.ts","../src/errors.ts","../src/compat.ts","../src/index.ts"],"mappings":"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"}