@gabrielbryk/jq-ts 1.3.1 → 1.3.3

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
@@ -2567,9 +2567,8 @@ function compare(a, b) {
2567
2567
  return 0;
2568
2568
  }
2569
2569
  function add(left, right, span) {
2570
- if (left === null && right === null) return null;
2571
- if (left === null && typeof right === "number") return right;
2572
- if (typeof left === "number" && right === null) return left;
2570
+ if (left === null) return right;
2571
+ if (right === null) return left;
2573
2572
  if (typeof left === "number" && typeof right === "number") return left + right;
2574
2573
  if (typeof left === "string" && typeof right === "string") return left + right;
2575
2574
  if (Array.isArray(left) && Array.isArray(right)) return [...left, ...right];
@@ -3046,18 +3045,6 @@ var LimitTracker = class {
3046
3045
  const getVar = (env, name) => {
3047
3046
  for (let i = env.length - 1; i >= 0; i--) if (env[i].vars.has(name)) return env[i].vars.get(name);
3048
3047
  };
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
3048
 
3062
3049
  //#endregion
3063
3050
  //#region src/eval/common.ts
@@ -3206,14 +3193,14 @@ const evalReduce = function* (node, input, env, tracker, evaluate$1) {
3206
3193
  let acc = initValues[0];
3207
3194
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3208
3195
  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
- }
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];
3217
3204
  }
3218
3205
  yield emit(acc, node.span, tracker);
3219
3206
  };
@@ -3234,16 +3221,16 @@ const evalForeach = function* (node, input, env, tracker, evaluate$1) {
3234
3221
  let acc = initValues[0];
3235
3222
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3236
3223
  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
- }
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);
3247
3234
  }
3248
3235
  };
3249
3236
  /**
@@ -3564,7 +3551,7 @@ const evalLabel = function* (node, input, env, tracker, evaluate$1) {
3564
3551
  const runAst = (ast, input, options = {}) => {
3565
3552
  const tracker = new LimitTracker(resolveLimits(options.limits));
3566
3553
  const env = [{
3567
- vars: /* @__PURE__ */ new Map(),
3554
+ vars: new Map(Object.entries(options.vars ?? {})),
3568
3555
  funcs: /* @__PURE__ */ new Map()
3569
3556
  }];
3570
3557
  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":";;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;ULoIiB,QAAA;QACT;QACA;AMnJR;AAeA;;;;AAAkF,UN2IjE,MAAA,CM3IiE;EAAK,IAAA,EAAA,IAAA;YN6I3E;QACJ;QACA;AO3KR;AAKA;;;;AAAwC,UP6KvB,MAAA,CO7KuB;EAOlC,IAAA,EAAA,IAAA;EACE,IAAA,EPuKA,UOvKA;EACA,IAAA,EAAA,MAAA;EAEY,IAAA,EPsKZ,UOtKY;EAAkC,IAAA,EPuK9C,IOvK8C;;;;AAYtD;AASA;AASa,UPgJI,QAAA,COhJY;EAShB,IAAA,EAAA,MAAA;;QP0IL;QACA;AQpLR;;;;;UR2LiB,UAAA;;UAEP;;QAEF;UACE;QACF;;;;;;UAOS,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;;;;;;AAhHR;AAMiB,UMUA,aAAA,CNVY;EASZ;AASjB;AASA;EAUiB,MAAA,CAAA,EMvBN,YNuBqB;;;;;AAWhC;AASA;AASA;AAQA;AAUA;AACiD,cM5DpC,MN4DoC,EAAA,CAAA,GAAA,EM5DrB,UN4DqB,EAAA,KAAA,EM5DF,KN4DE,EAAA,OAAA,CAAA,EM5Dc,aN4Dd,EAAA,GM5DiC,KN4DjC,EAAA;;;AD9FjD;;;;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"}
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":"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"}
package/dist/index.mjs CHANGED
@@ -2566,9 +2566,8 @@ function compare(a, b) {
2566
2566
  return 0;
2567
2567
  }
2568
2568
  function add(left, right, span) {
2569
- if (left === null && right === null) return null;
2570
- if (left === null && typeof right === "number") return right;
2571
- if (typeof left === "number" && right === null) return left;
2569
+ if (left === null) return right;
2570
+ if (right === null) return left;
2572
2571
  if (typeof left === "number" && typeof right === "number") return left + right;
2573
2572
  if (typeof left === "string" && typeof right === "string") return left + right;
2574
2573
  if (Array.isArray(left) && Array.isArray(right)) return [...left, ...right];
@@ -3045,18 +3044,6 @@ var LimitTracker = class {
3045
3044
  const getVar = (env, name) => {
3046
3045
  for (let i = env.length - 1; i >= 0; i--) if (env[i].vars.has(name)) return env[i].vars.get(name);
3047
3046
  };
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
3047
 
3061
3048
  //#endregion
3062
3049
  //#region src/eval/common.ts
@@ -3205,14 +3192,14 @@ const evalReduce = function* (node, input, env, tracker, evaluate$1) {
3205
3192
  let acc = initValues[0];
3206
3193
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3207
3194
  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
- }
3195
+ const newFrame = {
3196
+ vars: new Map([[node.var, item]]),
3197
+ funcs: /* @__PURE__ */ new Map()
3198
+ };
3199
+ const newEnv = [...env, newFrame];
3200
+ const updates = Array.from(evaluate$1(node.update, acc, newEnv, tracker));
3201
+ if (updates.length !== 1) throw new RuntimeError("Reduce update must produce single value", node.update.span);
3202
+ acc = updates[0];
3216
3203
  }
3217
3204
  yield emit(acc, node.span, tracker);
3218
3205
  };
@@ -3233,16 +3220,16 @@ const evalForeach = function* (node, input, env, tracker, evaluate$1) {
3233
3220
  let acc = initValues[0];
3234
3221
  for (const item of evaluate$1(node.source, input, env, tracker)) {
3235
3222
  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
- }
3223
+ const newFrame = {
3224
+ vars: new Map([[node.var, item]]),
3225
+ funcs: /* @__PURE__ */ new Map()
3226
+ };
3227
+ const newEnv = [...env, newFrame];
3228
+ const updates = Array.from(evaluate$1(node.update, acc, newEnv, tracker));
3229
+ if (updates.length !== 1) throw new RuntimeError("Foreach update must produce single value", node.update.span);
3230
+ acc = updates[0];
3231
+ if (node.extract) for (const extracted of evaluate$1(node.extract, acc, newEnv, tracker)) yield emit(extracted, node.span, tracker);
3232
+ else yield emit(acc, node.span, tracker);
3246
3233
  }
3247
3234
  };
3248
3235
  /**
@@ -3563,7 +3550,7 @@ const evalLabel = function* (node, input, env, tracker, evaluate$1) {
3563
3550
  const runAst = (ast, input, options = {}) => {
3564
3551
  const tracker = new LimitTracker(resolveLimits(options.limits));
3565
3552
  const env = [{
3566
- vars: /* @__PURE__ */ new Map(),
3553
+ vars: new Map(Object.entries(options.vars ?? {})),
3567
3554
  funcs: /* @__PURE__ */ new Map()
3568
3555
  }];
3569
3556
  return Array.from(evaluate(ast, input, env, tracker));