@gabrielbryk/jq-ts 1.3.1 → 1.3.2

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.cjs CHANGED
@@ -3046,18 +3046,6 @@ var LimitTracker = class {
3046
3046
  const getVar = (env, name) => {
3047
3047
  for (let i = env.length - 1; i >= 0; i--) if (env[i].vars.has(name)) return env[i].vars.get(name);
3048
3048
  };
3049
- /**
3050
- * Bounds a value to a variable name in the current scope frame.
3051
- */
3052
- const pushBinding = (env, name, value) => {
3053
- env[env.length - 1].vars.set(name, value);
3054
- };
3055
- /**
3056
- * Removes a variable binding from the current scope frame.
3057
- */
3058
- const popBinding = (env, name) => {
3059
- env[env.length - 1].vars.delete(name);
3060
- };
3061
3049
 
3062
3050
  //#endregion
3063
3051
  //#region src/eval/common.ts
@@ -3206,14 +3194,14 @@ const evalReduce = function* (node, input, env, tracker, evaluate$1) {
3206
3194
  let acc = initValues[0];
3207
3195
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3208
3196
  tracker.step(node.span);
3209
- pushBinding(env, node.var, item);
3210
- try {
3211
- const updates = Array.from(evaluate$1(node.update, acc, env, tracker));
3212
- if (updates.length !== 1) throw new RuntimeError("Reduce update must produce single value", node.update.span);
3213
- acc = updates[0];
3214
- } finally {
3215
- popBinding(env, node.var);
3216
- }
3197
+ const newFrame = {
3198
+ vars: new Map([[node.var, item]]),
3199
+ funcs: /* @__PURE__ */ new Map()
3200
+ };
3201
+ const newEnv = [...env, newFrame];
3202
+ const updates = Array.from(evaluate$1(node.update, acc, newEnv, tracker));
3203
+ if (updates.length !== 1) throw new RuntimeError("Reduce update must produce single value", node.update.span);
3204
+ acc = updates[0];
3217
3205
  }
3218
3206
  yield emit(acc, node.span, tracker);
3219
3207
  };
@@ -3234,16 +3222,16 @@ const evalForeach = function* (node, input, env, tracker, evaluate$1) {
3234
3222
  let acc = initValues[0];
3235
3223
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3236
3224
  tracker.step(node.span);
3237
- pushBinding(env, node.var, item);
3238
- try {
3239
- const updates = Array.from(evaluate$1(node.update, acc, env, tracker));
3240
- if (updates.length !== 1) throw new RuntimeError("Foreach update must produce single value", node.update.span);
3241
- acc = updates[0];
3242
- if (node.extract) for (const extracted of evaluate$1(node.extract, acc, env, tracker)) yield emit(extracted, node.span, tracker);
3243
- else yield emit(acc, node.span, tracker);
3244
- } finally {
3245
- popBinding(env, node.var);
3246
- }
3225
+ const newFrame = {
3226
+ vars: new Map([[node.var, item]]),
3227
+ funcs: /* @__PURE__ */ new Map()
3228
+ };
3229
+ const newEnv = [...env, newFrame];
3230
+ const updates = Array.from(evaluate$1(node.update, acc, newEnv, tracker));
3231
+ if (updates.length !== 1) throw new RuntimeError("Foreach update must produce single value", node.update.span);
3232
+ acc = updates[0];
3233
+ if (node.extract) for (const extracted of evaluate$1(node.extract, acc, newEnv, tracker)) yield emit(extracted, node.span, tracker);
3234
+ else yield emit(acc, node.span, tracker);
3247
3235
  }
3248
3236
  };
3249
3237
  /**
@@ -3564,7 +3552,7 @@ const evalLabel = function* (node, input, env, tracker, evaluate$1) {
3564
3552
  const runAst = (ast, input, options = {}) => {
3565
3553
  const tracker = new LimitTracker(resolveLimits(options.limits));
3566
3554
  const env = [{
3567
- vars: /* @__PURE__ */ new Map(),
3555
+ vars: new Map(Object.entries(options.vars ?? {})),
3568
3556
  funcs: /* @__PURE__ */ new Map()
3569
3557
  }];
3570
3558
  return Array.from(evaluate(ast, input, env, tracker));
package/dist/index.d.cts CHANGED
@@ -403,6 +403,11 @@ interface ValueObject {
403
403
  */
404
404
  interface EvalOptions {
405
405
  limits?: LimitsConfig;
406
+ /**
407
+ * Predefined variables to seed the global environment.
408
+ * Keys are variable names without the '$' prefix.
409
+ */
410
+ vars?: Record<string, Value>;
406
411
  }
407
412
  //#endregion
408
413
  //#region src/eval/dispatch.d.ts
@@ -414,6 +419,11 @@ interface EvalOptions$1 {
414
419
  * Limit configuration to prevent infinite loops or excessive resource usage.
415
420
  */
416
421
  limits?: LimitsConfig;
422
+ /**
423
+ * Predefined variables to seed the global environment.
424
+ * Keys are variable names without the '$' prefix.
425
+ */
426
+ vars?: Record<string, Value>;
417
427
  }
418
428
  /**
419
429
  * Runs a jq AST against an input value.
@@ -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/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -403,6 +403,11 @@ interface ValueObject {
403
403
  */
404
404
  interface EvalOptions {
405
405
  limits?: LimitsConfig;
406
+ /**
407
+ * Predefined variables to seed the global environment.
408
+ * Keys are variable names without the '$' prefix.
409
+ */
410
+ vars?: Record<string, Value>;
406
411
  }
407
412
  //#endregion
408
413
  //#region src/eval/dispatch.d.ts
@@ -414,6 +419,11 @@ interface EvalOptions$1 {
414
419
  * Limit configuration to prevent infinite loops or excessive resource usage.
415
420
  */
416
421
  limits?: LimitsConfig;
422
+ /**
423
+ * Predefined variables to seed the global environment.
424
+ * Keys are variable names without the '$' prefix.
425
+ */
426
+ vars?: Record<string, Value>;
417
427
  }
418
428
  /**
419
429
  * Runs a jq AST against an input value.
@@ -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/index.ts"],"sourcesContent":[],"mappings":";;AAGA;;UAAiB,IAAA;;ECGL,GAAA,EAAA,MAAA;AAMZ;;;ADTA;;;;ACGY,KAAA,YAAA,GAAY,IAAA,GAAA,OAAA,GAAA,MAAA,GAAA,MAAA;AAMxB;AASA;AASA;AASA;AAUiB,UArCA,YAAA,CAqCe;EAEtB,IAAA,EAAA,UAAA;EACD,IAAA,EAtCD,IAsCC;;;AAQT;AASA;AASA;AAQiB,UAjEA,WAAA,CAmEN;EAQC,IAAA,EAAA,SAAS;EAC4B,KAAA,EA1ExC,YA0EwC;EACH,IAAA,EA1EtC,IA0EsC;;;;AAO9C;AAEQ,UA7ES,OAAA,CA6ET;EACC,IAAA,EAAA,KAAA;EACD,IAAA,EAAA,MAAA;EAAI,IAAA,EA5EJ,IA4EI;AAOZ;;;;AAIY,UAjFK,eAAA,CAiFL;EAOK,IAAA,EAAA,aAAO;EAEhB,MAAA,EAxFE,UAwFF;EACC,KAAA,EAAA,MAAA;EACD,IAAA,EAxFA,IAwFA;;AAMR;AAUA;;AAIS,UAtGQ,eAAA,CAsGR;EACD,IAAA,EAAA,aAAA;EAAI,MAAA,EArGF,UAqGE;EAOK,KAAA,EA3GR,UA2GgB;EAGjB,IAAA,EA7GA,IA6GA;;;;AAKR;AASA;AAEY,UAtHK,WAAA,CAsHL;EACJ,IAAA,EAAA,SAAA;EACA,MAAA,EAtHE,UAsHF;EAAI,IAAA,EArHJ,IAqHI;AAOZ;;;;AAKY,UA3HK,SAAA,CA2HL;EAOK,IAAA,EAAA,OAAQ;EAWR,KAAA,EA3IR,UA2IkB,EAAA;EAEjB,IAAA,EA5IF,IA4IE;;;;;AAWO,UAjJA,WAAA,CAiJW;EAElB,GAAA,EAlJH,SAkJG;EAEF,KAAA,EAnJC,UAmJD;;;;;AAUS,UAvJA,UAAA,CAuJO;EAEhB,IAAA,EAAA,QAAA;EACI,OAAA,EAxJD,WAwJC,EAAA;EACJ,IAAA,EAxJA,IAwJA;;AAOR;AAQA;;;AAKQ,KArKI,SAAA,GAqKJ;EAAI,IAAA,EAAA,eAAA;EAOK,IAAA,EAAA,MAAO;EAIhB,IAAA,EA/KyC,IA+KzC;CACA,GAAA;EACA,IAAA,EAAA,WAAA;EAAI,KAAA,EAAA,MAAA;EAOK,IAAA,EAvL6B,IAuL7B;AAWjB,CAAA,GAAiB;EAUA,IAAA,EAAA,SAAS;EAEhB,IAAA,EA7MmB,UA6MnB;EACD,IAAA,EA9MsC,IA8MtC;CACF;;;AAOP;;AAEI,UAlNa,QAAA,CAkNb;EACA,IAAA,EAAA,MAAA;EACA,IAAA,EAlNI,UAkNJ;EACA,KAAA,EAlNK,UAkNL;EACA,IAAA,EAlNI,IAkNJ;;;;;;AAMA,UAjNa,SAAA,CAiNb;EACA,IAAA,EAAA,OAAA;EACA,IAAA,EAjNI,UAiNJ;EACA,KAAA,EAjNK,UAiNL;EACA,IAAA,EAjNI,IAiNJ;;;;;;AAMA,UAhNa,OAAA,CAgNb;EACA,IAAA,EAAA,KAAA;EACA,IAAA,EAhNI,UAgNJ;EACA,KAAA,EAhNK,UAgNL;EACA,IAAA,EAhNI,IAgNJ;;;;;ACzTS,UD+GI,SAAA,CC/GsB;;;QDkH/B;EEjIK,IAAA,EFkIL,IElIK;;;;ACJb;AAYiB,UHgIA,UAAA,CGhIc;EAkBlB,IAAA,EAAA,QAAA;EAUA,EAAA,EAAA,GAAA,GAAA,GAAA,GAAY,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,GAAA,KAAA,GAAA,IAAA,GAAA,KAAA,GAAA,IAAA,GAAA,KAAA;EAKc,IAAA,EHkG/B,UGlG+B;EAM1B,KAAA,EH6FJ,UG7FI;EAWC,IAAA,EHmFN,IGnFM;;;;;;AChEF,UJ0JK,QAAA,CI1JsC;EAMtC,IAAA,EAAA,MAAA;EAKA,EAAA,EAAA,KAAA,GAAA,IAAW;QJkJpB;SACC;QACD;AKjIR;AACW,ULmIM,QAAA,CKnIN;EAKa,IAAA,EL+HhB,UK/HgB;EAAf,IAAA,ELgID,UKhIC;;;;;ACnBT;AAIW,UNsJM,MAAA,CMtJN;EAKa,IAAA,EAAA,IAAA;EAAf,QAAA,ENmJG,QMnJH,EAAA;EAAM,IAAA,ENoJP,UMpJO;EAWF,IAAA,EN0IL,IMrIP;;;;;;UN4IgB,MAAA;;QAET;EOpLI,IAAA,EAAA,MAAS;EAKJ,IAAA,EPiLT,UOjLmB;EAEnB,IAAA,EPgLA,IOhLA;;;;AAGP;;AAIO,UPgLS,QAAA,COhLT;EAEY,IAAA,EAAA,MAAA;EAAkC,IAAA,EAAA,MAAA;EAJ9B,IAAA,EPqLhB,UOrLgB,EAAA;EAAiB,IAAA,EPsLjC,IOtLiC;;AAgBzC;AASA;AASA;AASA;UPkJiB,UAAA;;UAEP;EQ7LG,GAAA,EAAA,MAIZ;EAJ0C,IAAA,ER+LnC,UQ/LmC;EAAgB,MAAA,ERgMjD,UQhMiD;EAAmB,IAAA,ERiMtE,IQjMsE;;;;;;URwM7D,WAAA;;UAEP;;QAEF;UACE;YACE;QACJ;;;;;;UAOS,OAAA;;QAET;YACI;QACJ;;;;;;UAOS,WAAA;;QAET;;;;;UAMS,cAAA;;;QAGT;SACC;QACD;;;;;;UAOS,OAAA;;;;QAIT;QACA;QACA;;;;;;UAOS,SAAA;;;QAGT;QACA;;;;;;UAOS,SAAA;;;QAGT;;;;;;UAOS,SAAA;;UAEP;SACD;OACF;QACC;;;;;KAMI,UAAA,GACR,eACA,cACA,UACA,kBACA,kBACA,cACA,YACA,aACA,WACA,YACA,UACA,YACA,aACA,WACA,SACA,SACA,iBACA,WACA,aACA,cACA,UACA,cACA,UACA,YACA,YACA;;;ADhVJ;;;;ACGA;AAMA;AASA;AASA;AASiB,cCbJ,KDamB,EAAA,CAAA,MAEtB,EAAA,MAAA,EAAA,GCf6B,UDiB3B;;;ADxCZ;;;;ACGA;AAMA;AASA;AASiB,cEnBJ,QFsBL,EAAI,CAAA,IAAA,EEtBmB,UFsBnB,EAAA,GAAA,IAAA;;;AD9BZ;;;;ACGY,UGCK,YAAA,CHDO;EAMP;EASA,QAAA,CAAA,EAAA,MAAW;EASX;EASA,QAAA,CAAA,EAAA,MAAA;EAUA;EAEP,UAAA,CAAA,EAAA,MAAA;;;;AASV;AASiB,UGlDA,cAAA,CHoDR;EAOQ,QAAA,EAAA,MAAW;EAQX,QAAA,EAAA,MAAU;EAUf,UAAA,EAAS,MAAA;;;;;;AASrB;;AAGS,cGvEI,aHuEJ,EAAA,CAAA,MAAA,CAAA,EGvE6B,YHuE7B,EAAA,GGvEiD,cHuEjD;;;AAQT;;AAGS,cGxEI,YAAA,CHwEJ;EACD,iBAAA,MAAA;EAAI,QAAA,KAAA;EAOK,QAAA,KAAO;EAEhB,QAAA,OAAA;EACC,WAAA,CAAA,MAAA,EG9E8B,cH8E9B;EACD;;AAMR;AAUA;EAGQ,IAAA,CAAA,IAAA,EG5FK,IH4FL,CAAA,EAAA,IAAA;EACC;;;AAQT;EAGQ,KAAA,CAAA,IAAA,EG7FM,IH6FN,CAAA,EAAA,IAAA;EACC;;;EAIQ,IAAA,CAAA,CAAA,EAAA,IAAQ;EASR;;;;EAIL,IAAA,CAAA,IAAA,EG7FC,IH6FD,CAAA,EAAA,IAAA;AAOZ;;;;ADxLA;;;KKEY,KAAA,sCAA2C,aAAa;AJCpE;AAMA;AASA;AASiB,UInBA,UAAA,SAAmB,KJsBxB,CItB8B,KJsB9B,CAAA,CAAA,CAMZ;AAUA;;;AAIQ,UIrCS,WAAA,CJqCT;EAAI,CAAA,GAAA,EAAA,MAAA,CAAA,EIpCK,KJoCL;AAOZ;;;;;;AAwDiB,UKjFA,WAAA,CLiFS;EAElB,MAAA,CAAA,EKlFG,YLkFH;EACC;;;AAQT;EAEQ,IAAA,CAAA,EKxFC,MLwFD,CAAA,MAAA,EKxFgB,KLwFhB,CAAA;;;;;;AA3HR;AAMiB,UMUA,aAAA,CNVY;EASZ;AASjB;AASA;EAUiB,MAAA,CAAA,EMvBN,YNuBqB;EAEtB;;;;EASO,IAAA,CAAA,EM7BR,MN6BQ,CAAW,MAAA,EM7BJ,KN+Bd,CAAA;AAOV;AASA;AAQA;AAUA;;;;;;AASiB,cM/DJ,MN+DY,EAAA,CAAA,GAAA,EM/DG,UN+DH,EAAA,KAAA,EM/DsB,KN+DtB,EAAA,OAAA,CAAA,EM/DsC,aN+DtC,EAAA,GM/DyD,KN+DzD,EAAA;;;ADtGzB;;;;ACGA;AAMA;AASA;AASiB,KOrBL,SAAA,GPqBY,KAGhB,GAAI,OAAA,GAAA,UAAA,GAAA,SAAA;AAMZ;AAUA;;AAGS,UOtCQ,SAAA,SAAkB,KPsC1B,CAAA;EACD;EAAI,IAAA,EOrCJ,SPqCI;EAOK;EASA,IAAA,EOnDT,IPmDS;AASjB;AAQA,cOjEM,SAAA,SAAkB,KAAA,YAAiB,SPoE7B,CAAA;EAOA,IAAA,EO1EJ,SP0Ea;EAC4B,IAAA,EO1EzC,IP0EyC;EACH,WAAA,CAAA,IAAA,EOzE1B,SPyE0B,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EOzEQ,IPyER;;;;AAO9C;AAEQ,cOtEK,QAAA,SAAiB,SAAA,CPsEtB;EACC,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EOtE4B,IPsE5B;;;AAQT;;AAGS,cOzEI,UAAA,SAAmB,SAAA,CPyEvB;EACD,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EOzE6B,IPyE7B;;AAOR;;;AAIQ,cO5EK,eAAA,SAAwB,SAAA,CP4E7B;EAAI,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EO3EyB,IP2EzB;AAMZ;AAUA;;;AAKQ,cOxFK,YAAA,SAAqB,SAAA,CPwF1B;EAAI,WAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EOvFyB,IPuFzB;AAOZ;;;AAxHA;AAUA;;;;;AAWA;AASA;AASA;AAQA;AAUA;;AAE8C,cQ3EjC,GR2EiC,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EQ3EH,KR2EG,EAAA,OAAA,CAAA,EQ3Ea,WR2Eb,EAAA,GQ3EgC,KR2EhC,EAAA"}
package/dist/index.mjs CHANGED
@@ -3045,18 +3045,6 @@ var LimitTracker = class {
3045
3045
  const getVar = (env, name) => {
3046
3046
  for (let i = env.length - 1; i >= 0; i--) if (env[i].vars.has(name)) return env[i].vars.get(name);
3047
3047
  };
3048
- /**
3049
- * Bounds a value to a variable name in the current scope frame.
3050
- */
3051
- const pushBinding = (env, name, value) => {
3052
- env[env.length - 1].vars.set(name, value);
3053
- };
3054
- /**
3055
- * Removes a variable binding from the current scope frame.
3056
- */
3057
- const popBinding = (env, name) => {
3058
- env[env.length - 1].vars.delete(name);
3059
- };
3060
3048
 
3061
3049
  //#endregion
3062
3050
  //#region src/eval/common.ts
@@ -3205,14 +3193,14 @@ const evalReduce = function* (node, input, env, tracker, evaluate$1) {
3205
3193
  let acc = initValues[0];
3206
3194
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3207
3195
  tracker.step(node.span);
3208
- pushBinding(env, node.var, item);
3209
- try {
3210
- const updates = Array.from(evaluate$1(node.update, acc, env, tracker));
3211
- if (updates.length !== 1) throw new RuntimeError("Reduce update must produce single value", node.update.span);
3212
- acc = updates[0];
3213
- } finally {
3214
- popBinding(env, node.var);
3215
- }
3196
+ const newFrame = {
3197
+ vars: new Map([[node.var, item]]),
3198
+ funcs: /* @__PURE__ */ new Map()
3199
+ };
3200
+ const newEnv = [...env, newFrame];
3201
+ const updates = Array.from(evaluate$1(node.update, acc, newEnv, tracker));
3202
+ if (updates.length !== 1) throw new RuntimeError("Reduce update must produce single value", node.update.span);
3203
+ acc = updates[0];
3216
3204
  }
3217
3205
  yield emit(acc, node.span, tracker);
3218
3206
  };
@@ -3233,16 +3221,16 @@ const evalForeach = function* (node, input, env, tracker, evaluate$1) {
3233
3221
  let acc = initValues[0];
3234
3222
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3235
3223
  tracker.step(node.span);
3236
- pushBinding(env, node.var, item);
3237
- try {
3238
- const updates = Array.from(evaluate$1(node.update, acc, env, tracker));
3239
- if (updates.length !== 1) throw new RuntimeError("Foreach update must produce single value", node.update.span);
3240
- acc = updates[0];
3241
- if (node.extract) for (const extracted of evaluate$1(node.extract, acc, env, tracker)) yield emit(extracted, node.span, tracker);
3242
- else yield emit(acc, node.span, tracker);
3243
- } finally {
3244
- popBinding(env, node.var);
3245
- }
3224
+ const newFrame = {
3225
+ vars: new Map([[node.var, item]]),
3226
+ funcs: /* @__PURE__ */ new Map()
3227
+ };
3228
+ const newEnv = [...env, newFrame];
3229
+ const updates = Array.from(evaluate$1(node.update, acc, newEnv, tracker));
3230
+ if (updates.length !== 1) throw new RuntimeError("Foreach update must produce single value", node.update.span);
3231
+ acc = updates[0];
3232
+ if (node.extract) for (const extracted of evaluate$1(node.extract, acc, newEnv, tracker)) yield emit(extracted, node.span, tracker);
3233
+ else yield emit(acc, node.span, tracker);
3246
3234
  }
3247
3235
  };
3248
3236
  /**
@@ -3563,7 +3551,7 @@ const evalLabel = function* (node, input, env, tracker, evaluate$1) {
3563
3551
  const runAst = (ast, input, options = {}) => {
3564
3552
  const tracker = new LimitTracker(resolveLimits(options.limits));
3565
3553
  const env = [{
3566
- vars: /* @__PURE__ */ new Map(),
3554
+ vars: new Map(Object.entries(options.vars ?? {})),
3567
3555
  funcs: /* @__PURE__ */ new Map()
3568
3556
  }];
3569
3557
  return Array.from(evaluate(ast, input, env, tracker));