wasm-cel 0.3.0 → 0.4.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/README.md CHANGED
@@ -776,9 +776,6 @@ pnpm run build:all
776
776
 
777
777
  # Run tests
778
778
  pnpm test
779
-
780
- # Run example
781
- pnpm run example
782
779
  ```
783
780
 
784
781
  ## Requirements
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAKpB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAE7D;AA+ID;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,SAAS,EAAE,MAAM;IAQ7B;;;;;OAKG;IACG,IAAI,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBjE;;;;;;OAMG;IACH,OAAO,IAAI,IAAI;CAyBhB;AAED;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO;IAQP;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;WACU,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IA6CpD;;;;;;;;;;;;;;;OAeG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B7C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,YAAY,EAAE,iBAAiB,CAAC;IAsDlD;;;;;;;;;;;;;;;;;OAiBG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA+BvD;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,oBAAoB,EAAE,cAAc,EAAE,GACrD,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;OAIG;YACW,kBAAkB;IAyFhC;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI;CAyBhB"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AAKpB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAE7D;AA6ND;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,SAAS,EAAE,MAAM;IAQ7B;;;;;OAKG;IACG,IAAI,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IA0BjE;;;;;;OAMG;IACH,OAAO,IAAI,IAAI;CAyBhB;AAED;;GAEG;AACH,qBAAa,GAAG;IACd,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO;IAQP;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;WACU,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IA6CpD;;;;;;;;;;;;;;;OAeG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B7C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,YAAY,EAAE,iBAAiB,CAAC;IAsDlD;;;;;;;;;;;;;;;;;OAiBG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA+BvD;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CACV,OAAO,EAAE,OAAO,oBAAoB,EAAE,cAAc,EAAE,GACrD,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;OAIG;YACW,kBAAkB;IAyFhC;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI;CAyBhB"}
package/dist/core.js CHANGED
@@ -17,6 +17,77 @@ async function init() {
17
17
  }
18
18
  await initFn();
19
19
  }
20
+ // Base64 encoding/decoding helpers for bytes support
21
+ const base64Encode = typeof Buffer !== "undefined"
22
+ ? (bytes) => Buffer.from(bytes).toString("base64")
23
+ : (bytes) => btoa(String.fromCharCode(...bytes));
24
+ const base64Decode = typeof Buffer !== "undefined"
25
+ ? (str) => new Uint8Array(Buffer.from(str, "base64"))
26
+ : (str) => {
27
+ const binary = atob(str);
28
+ const bytes = new Uint8Array(binary.length);
29
+ for (let i = 0; i < binary.length; i++) {
30
+ bytes[i] = binary.charCodeAt(i);
31
+ }
32
+ return bytes;
33
+ };
34
+ /**
35
+ * Recursively prepare variables for serialization to WASM.
36
+ * Converts Uint8Array/Buffer values to tagged bytes objects.
37
+ * @internal
38
+ */
39
+ function prepareVarsForWasm(vars) {
40
+ const result = {};
41
+ for (const [key, value] of Object.entries(vars)) {
42
+ result[key] = encodeBytes(value);
43
+ }
44
+ return result;
45
+ }
46
+ function encodeBytes(value) {
47
+ if (value instanceof Uint8Array) {
48
+ return { $bytes: base64Encode(value) };
49
+ }
50
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer(value)) {
51
+ return { $bytes: value.toString("base64") };
52
+ }
53
+ if (Array.isArray(value)) {
54
+ return value.map(encodeBytes);
55
+ }
56
+ if (value !== null && typeof value === "object") {
57
+ const result = {};
58
+ for (const [k, v] of Object.entries(value)) {
59
+ result[k] = encodeBytes(v);
60
+ }
61
+ return result;
62
+ }
63
+ return value;
64
+ }
65
+ /**
66
+ * Recursively decode tagged bytes objects in WASM results to Uint8Array.
67
+ * @internal
68
+ */
69
+ function decodeBytes(value) {
70
+ if (value === null || value === undefined) {
71
+ return value;
72
+ }
73
+ if (typeof value === "object" && !Array.isArray(value)) {
74
+ // Detect tagged bytes: { $bytes: "<base64>" }
75
+ const keys = Object.keys(value);
76
+ if (keys.length === 1 && keys[0] === "$bytes" && typeof value.$bytes === "string") {
77
+ return base64Decode(value.$bytes);
78
+ }
79
+ // Recursively decode map values
80
+ const result = {};
81
+ for (const [k, v] of Object.entries(value)) {
82
+ result[k] = decodeBytes(v);
83
+ }
84
+ return result;
85
+ }
86
+ if (Array.isArray(value)) {
87
+ return value.map(decodeBytes);
88
+ }
89
+ return value;
90
+ }
20
91
  /**
21
92
  * Serialize a CEL type definition to a format that can be sent to Go
22
93
  */
@@ -147,12 +218,13 @@ export class Program {
147
218
  return new Promise((resolve, reject) => {
148
219
  try {
149
220
  const globalObj = typeof globalThis !== "undefined" ? globalThis : global;
150
- const result = globalObj.evalProgram(this.programID, vars || {});
221
+ const preparedVars = vars ? prepareVarsForWasm(vars) : {};
222
+ const result = globalObj.evalProgram(this.programID, preparedVars);
151
223
  if (result.error) {
152
224
  reject(new Error(result.error));
153
225
  }
154
226
  else {
155
- resolve(result.result);
227
+ resolve(decodeBytes(result.result));
156
228
  }
157
229
  }
158
230
  catch (err) {
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"AAOA,yEAAyE;AACzE,IAAI,MAAM,GAAiC,IAAI,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAuB;IACrD,MAAM,GAAG,EAAE,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,uKAAuK,CACxK,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,EAAE,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAgB;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;iBAChD,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACxB,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;oBACvC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC5C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,2BAA2B;AAC3C,CAAC;AAED;;GAEG;AACH,mDAAmD;AACnD,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,SAAS,yBAAyB,CAChC,SAAkC;IAElC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,MAAM,KAAK,GAAG,CAAC,EAAyB,EAAQ,EAAE;QAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,QAAQ,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;gBACpC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAkC;IAM/D,MAAM,SAAS,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAEvD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QACjC,sCAAsC;QACtC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEpH,kDAAkD;QAClD,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1E,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,+BAA+B,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;YACH,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC,UAAU,CAAC;YAC3C,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6CAA6C;AAC7C,uEAAuE;AACvE,MAAM,eAAe,GACnB,OAAO,oBAAoB,KAAK,WAAW;IACzC,CAAC,CAAC,IAAI,oBAAoB,CAAS,CAAC,SAAiB,EAAE,EAAE;QACrD,wDAAwD;QACxD,IAAI,CAAC;YACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,IAAI,OAAO,SAAS,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBACnD,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+DAA+D;QACjE,CAAC;IACH,CAAC,CAAC;IACJ,CAAC,CAAC,IAAI,CAAC;AAEX,MAAM,WAAW,GACf,OAAO,oBAAoB,KAAK,WAAW;IACzC,CAAC,CAAC,IAAI,oBAAoB,CAAS,CAAC,KAAa,EAAE,EAAE;QACjD,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC/C,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+DAA+D;QACjE,CAAC;IACH,CAAC,CAAC;IACJ,CAAC,CAAC,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,OAAO;IAIlB,YAAY,SAAiB;QAFrB,cAAS,GAAY,KAAK,CAAC;QAGjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,0DAA0D;QAC1D,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,OAAmC,IAAI;QAChD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;QAEb,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAEjE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,2BAA2B;QACrC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1E,IAAI,OAAO,SAAS,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,sDAAsD;oBACtD,OAAO,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sDAAsD;YACtD,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,yEAAyE;YACzE,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,GAAG;IAId,YAAoB,KAAa;QAFzB,cAAS,GAAY,KAAK,CAAC;QAGjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,0DAA0D;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAoB;QACnC,MAAM,IAAI,EAAE,CAAC;QAEb,kCAAkC;QAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;SAC/B,CAAC,CAAC,CAAC;QAEJ,6CAA6C;QAC7C,IAAI,kBAAkB,GAAQ,IAAI,CAAC;QACnC,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;QAED,4EAA4E;QAC5E,oFAAoF;QACpF,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;gBAEjE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,oFAAoF;QACpF,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;QAEb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAEvD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,eAAe,CACnB,IAAY;QAEZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;QAEb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAyC,CAAC,OAAO,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,MAAM,GAAI,SAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAExE,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACtC,gCAAgC;oBAChC,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;wBAC3B,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC5B,iDAAiD;oBACjD,OAAO,CAAC;wBACN,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,SAAS;wBAChB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;wBAC3B,OAAO,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;qBACvC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,mBAAmB;oBACnB,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,2CAA2C;wBAClD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;wBAC3B,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,qBAAqB,KAAK,CAAC,OAAO,EAAE;oBAC3C,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,SAAS;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;QAEb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAEzD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,MAAM,CACV,OAAsD;QAEtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAC9B,OAAsD;QAEtD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;QAEb,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,oBAAoB;QAC9B,CAAC;QAED,uEAAuE;QACvE,MAAM,gBAAgB,GAAmD,EAAE,CAAC;QAE5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,kDAAkD;YAClD,IACE,iBAAiB,IAAI,MAAM;gBAC3B,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAC5C,CAAC;gBACD,yDAAyD;gBACzD,MAAM,QAAQ,GAAwD;oBACpE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;oBACzB,gBAAgB,EAAE,KAAK,EACrB,IAAY,EACZ,IAA6B,EACZ,EAAE;wBACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;wBACpD,CAAC;wBAED,wDAAwD;wBACxD,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBAEnG,kDAAkD;wBAClD,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC1D,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;4BACxD,MAAM,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAClD,MAAM,EACN,IAAI,CACL,CAAC;4BACF,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gCACzB,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE,CAC/D,CAAC;4BACJ,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;wBACJ,CAAC;wBAED,0DAA0D;wBAC1D,OAAO,MAAM,CAAC;oBAChB,CAAC;iBACF,CAAC;gBACF,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC/D,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,gBAAgB,CAAC,IAAI,CACnB,MAAsD,CACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAE3D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;gBAElE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,2BAA2B;QACrC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1E,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,sDAAsD;oBACtD,OAAO,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sDAAsD;YACtD,OAAO,CAAC,IAAI,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,yEAAyE;YACzE,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,15 @@ export type EnvOptionConfig = {
43
43
  } | {
44
44
  type: "CrossTypeNumericComparisons";
45
45
  params?: import("./crossTypeNumericComparisons.js").CrossTypeNumericComparisonsConfig;
46
+ } | {
47
+ type: "StringsExt";
48
+ params?: import("./strings.js").StringsExtConfig;
49
+ } | {
50
+ type: "MathExt";
51
+ params?: import("./math.js").MathExtConfig;
52
+ } | {
53
+ type: "EncodersExt";
54
+ params?: import("./encoders.js").EncodersExtConfig;
46
55
  };
47
56
  /**
48
57
  * Union type of all available option inputs (simple configs or complex options with setup)
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../lib/options/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,IAAI,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,mBAAmB,CAAC;CAC3D,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,2BAA2B,CAAC;CACnE,GACD;IACE,IAAI,EAAE,6BAA6B,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,kCAAkC,EAAE,iCAAiC,CAAC;CACvF,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../lib/options/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,IAAI,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,eAAe,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,mBAAmB,CAAC;CAC3D,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,2BAA2B,CAAC;CACnE,GACD;IACE,IAAI,EAAE,6BAA6B,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,kCAAkC,EAAE,iCAAiC,CAAC;CACvF,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,cAAc,EAAE,gBAAgB,CAAC;CAClD,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,WAAW,EAAE,aAAa,CAAC;CAC5C,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,eAAe,EAAE,iBAAiB,CAAC;CACpD,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * EncodersExt CEL environment option
3
+ */
4
+ import type { EnvOptionConfig } from "./base.js";
5
+ /**
6
+ * Configuration for the CEL encoders extension library.
7
+ *
8
+ * Enables encoding/decoding functions including:
9
+ * - `base64.encode` - encodes bytes to a base64-encoded string
10
+ * - `base64.decode` - decodes a base64-encoded string to bytes
11
+ */
12
+ export interface EncodersExtConfig {
13
+ /**
14
+ * The version of the encoders extension library to enable.
15
+ * Only functions introduced at or below the given version are included.
16
+ * If not set, all functions are available.
17
+ */
18
+ version?: number;
19
+ }
20
+ /**
21
+ * Create an EncodersExt option configuration to enable the CEL encoders extension library.
22
+ *
23
+ * @param config - Optional configuration for the encoders extension
24
+ * @returns An option configuration for enabling CEL encoder extensions
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Enable all encoder extension functions
29
+ * const env = await Env.new({
30
+ * options: [Options.encoders()]
31
+ * });
32
+ *
33
+ * const program = await env.compile("base64.encode(b'hello')");
34
+ * const result = await program.eval(); // "aGVsbG8="
35
+ * ```
36
+ */
37
+ export declare function encoders(config?: EncodersExtConfig): EnvOptionConfig;
38
+ //# sourceMappingURL=encoders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoders.d.ts","sourceRoot":"","sources":["../../lib/options/encoders.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,GAAE,iBAAsB,GAAG,eAAe,CAWxE"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * EncodersExt CEL environment option
3
+ */
4
+ /**
5
+ * Create an EncodersExt option configuration to enable the CEL encoders extension library.
6
+ *
7
+ * @param config - Optional configuration for the encoders extension
8
+ * @returns An option configuration for enabling CEL encoder extensions
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Enable all encoder extension functions
13
+ * const env = await Env.new({
14
+ * options: [Options.encoders()]
15
+ * });
16
+ *
17
+ * const program = await env.compile("base64.encode(b'hello')");
18
+ * const result = await program.eval(); // "aGVsbG8="
19
+ * ```
20
+ */
21
+ export function encoders(config = {}) {
22
+ const params = {};
23
+ if (config.version !== undefined) {
24
+ params.version = config.version;
25
+ }
26
+ return {
27
+ type: "EncodersExt",
28
+ params,
29
+ };
30
+ }
31
+ //# sourceMappingURL=encoders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoders.js","sourceRoot":"","sources":["../../lib/options/encoders.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ,CAAC,SAA4B,EAAE;IACrD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -7,5 +7,8 @@ export type { OptionSetupEnvironment, OptionWithSetup, EnvOptionConfig, EnvOptio
7
7
  export type { OptionalTypesConfig } from "./optionalTypes.js";
8
8
  export type { ValidationIssue, ValidationContext, ValidatorResult, ASTValidatorFunction, ASTValidatorsConfig, } from "./astValidators.js";
9
9
  export type { CrossTypeNumericComparisonsConfig } from "./crossTypeNumericComparisons.js";
10
+ export type { StringsExtConfig } from "./strings.js";
11
+ export type { MathExtConfig } from "./math.js";
12
+ export type { EncodersExtConfig } from "./encoders.js";
10
13
  export { Options } from "./options.js";
11
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/options/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAG1F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/options/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/options/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH,sCAAsC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/options/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,sCAAsC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * MathExt CEL environment option
3
+ */
4
+ import type { EnvOptionConfig } from "./base.js";
5
+ /**
6
+ * Configuration for the CEL math extension library.
7
+ *
8
+ * Enables namespaced math helper macros and functions including:
9
+ * - `math.greatest`, `math.least` - min/max across arguments or lists
10
+ * - `math.ceil`, `math.floor`, `math.round`, `math.trunc` (v1+) - rounding
11
+ * - `math.abs`, `math.sign` (v1+) - absolute value and sign
12
+ * - `math.isNaN`, `math.isInf`, `math.isFinite` (v1+) - floating point checks
13
+ * - `math.bitAnd`, `math.bitOr`, `math.bitXor`, `math.bitNot` (v1+) - bitwise ops
14
+ * - `math.bitShiftLeft`, `math.bitShiftRight` (v1+) - bit shifting
15
+ * - `math.sqrt` (v2+) - square root
16
+ */
17
+ export interface MathExtConfig {
18
+ /**
19
+ * The version of the math extension library to enable.
20
+ * Only functions introduced at or below the given version are included.
21
+ * If not set, all functions are available.
22
+ *
23
+ * - Version 0: math.greatest, math.least
24
+ * - Version 1: adds ceil, floor, round, trunc, abs, sign, isNaN, isInf, isFinite, bitwise ops
25
+ * - Version 2: adds sqrt
26
+ */
27
+ version?: number;
28
+ }
29
+ /**
30
+ * Create a MathExt option configuration to enable the CEL math extension library.
31
+ *
32
+ * @param config - Optional configuration for the math extension
33
+ * @returns An option configuration for enabling CEL math extensions
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // Enable all math extension functions
38
+ * const env = await Env.new({
39
+ * options: [Options.math()]
40
+ * });
41
+ *
42
+ * const program = await env.compile("math.greatest(1, 2, 3)");
43
+ * const result = await program.eval(); // 3
44
+ * ```
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // Enable with specific version
49
+ * const env = await Env.new({
50
+ * options: [Options.math({ version: 1 })]
51
+ * });
52
+ *
53
+ * // Now ceil/floor/round etc. are available
54
+ * const program = await env.compile("math.ceil(1.2)");
55
+ * const result = await program.eval(); // 2.0
56
+ * ```
57
+ */
58
+ export declare function math(config?: MathExtConfig): EnvOptionConfig;
59
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../lib/options/math.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,MAAM,GAAE,aAAkB,GAAG,eAAe,CAWhE"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * MathExt CEL environment option
3
+ */
4
+ /**
5
+ * Create a MathExt option configuration to enable the CEL math extension library.
6
+ *
7
+ * @param config - Optional configuration for the math extension
8
+ * @returns An option configuration for enabling CEL math extensions
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Enable all math extension functions
13
+ * const env = await Env.new({
14
+ * options: [Options.math()]
15
+ * });
16
+ *
17
+ * const program = await env.compile("math.greatest(1, 2, 3)");
18
+ * const result = await program.eval(); // 3
19
+ * ```
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // Enable with specific version
24
+ * const env = await Env.new({
25
+ * options: [Options.math({ version: 1 })]
26
+ * });
27
+ *
28
+ * // Now ceil/floor/round etc. are available
29
+ * const program = await env.compile("math.ceil(1.2)");
30
+ * const result = await program.eval(); // 2.0
31
+ * ```
32
+ */
33
+ export function math(config = {}) {
34
+ const params = {};
35
+ if (config.version !== undefined) {
36
+ params.version = config.version;
37
+ }
38
+ return {
39
+ type: "MathExt",
40
+ params,
41
+ };
42
+ }
43
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../lib/options/math.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6BH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,IAAI,CAAC,SAAwB,EAAE;IAC7C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -4,6 +4,9 @@
4
4
  import { optionalTypes } from "./optionalTypes.js";
5
5
  import { astValidators } from "./astValidators.js";
6
6
  import { crossTypeNumericComparisons } from "./crossTypeNumericComparisons.js";
7
+ import { strings } from "./strings.js";
8
+ import { math } from "./math.js";
9
+ import { encoders } from "./encoders.js";
7
10
  /**
8
11
  * Helper object containing functions for creating CEL environment option configurations
9
12
  */
@@ -101,5 +104,76 @@ export declare const Options: {
101
104
  * ```
102
105
  */
103
106
  readonly crossTypeNumericComparisons: typeof crossTypeNumericComparisons;
107
+ /**
108
+ * Create a StringsExt option configuration to enable the CEL string extension library.
109
+ *
110
+ * This option provides additional string manipulation functions including
111
+ * charAt, indexOf, join, lowerAscii, upperAscii, replace, split, substring,
112
+ * trim, format, quote, reverse, and more.
113
+ *
114
+ * @param config - Optional configuration for the string extension
115
+ * @returns An option configuration for enabling CEL string extensions
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const env = await Env.new({
120
+ * options: [Options.strings()]
121
+ * });
122
+ *
123
+ * const program = await env.compile("'hello world'.upperAscii()");
124
+ * const result = await program.eval(); // "HELLO WORLD"
125
+ * ```
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * // Enable with specific version for format support
130
+ * const env = await Env.new({
131
+ * options: [Options.strings({ version: 1 })]
132
+ * });
133
+ * ```
134
+ */
135
+ readonly strings: typeof strings;
136
+ /**
137
+ * Create a MathExt option configuration to enable the CEL math extension library.
138
+ *
139
+ * This option provides namespaced math helper macros and functions including
140
+ * math.greatest, math.least, math.ceil, math.floor, math.round, math.trunc,
141
+ * math.abs, math.sign, math.isNaN, math.isInf, math.isFinite, bitwise operations,
142
+ * and math.sqrt.
143
+ *
144
+ * @param config - Optional configuration for the math extension
145
+ * @returns An option configuration for enabling CEL math extensions
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const env = await Env.new({
150
+ * options: [Options.math()]
151
+ * });
152
+ *
153
+ * const program = await env.compile("math.greatest(1, 2, 3)");
154
+ * const result = await program.eval(); // 3
155
+ * ```
156
+ */
157
+ readonly math: typeof math;
158
+ /**
159
+ * Create an EncodersExt option configuration to enable the CEL encoders extension library.
160
+ *
161
+ * This option provides encoding/decoding functions including
162
+ * base64.encode and base64.decode.
163
+ *
164
+ * @param config - Optional configuration for the encoders extension
165
+ * @returns An option configuration for enabling CEL encoder extensions
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const env = await Env.new({
170
+ * options: [Options.encoders()]
171
+ * });
172
+ *
173
+ * const program = await env.compile("base64.encode(b'hello')");
174
+ * const result = await program.eval(); // "aGVsbG8="
175
+ * ```
176
+ */
177
+ readonly encoders: typeof encoders;
104
178
  };
105
179
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../lib/options/options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;;CAEK,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../lib/options/options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;;IAGH;;;;;;;;;;;;;;;;;;;;OAoBG;;IAGH;;;;;;;;;;;;;;;;;;OAkBG;;CAEK,CAAC"}
@@ -4,6 +4,9 @@
4
4
  import { optionalTypes } from "./optionalTypes.js";
5
5
  import { astValidators } from "./astValidators.js";
6
6
  import { crossTypeNumericComparisons } from "./crossTypeNumericComparisons.js";
7
+ import { strings } from "./strings.js";
8
+ import { math } from "./math.js";
9
+ import { encoders } from "./encoders.js";
7
10
  /**
8
11
  * Helper object containing functions for creating CEL environment option configurations
9
12
  */
@@ -101,5 +104,76 @@ export const Options = {
101
104
  * ```
102
105
  */
103
106
  crossTypeNumericComparisons,
107
+ /**
108
+ * Create a StringsExt option configuration to enable the CEL string extension library.
109
+ *
110
+ * This option provides additional string manipulation functions including
111
+ * charAt, indexOf, join, lowerAscii, upperAscii, replace, split, substring,
112
+ * trim, format, quote, reverse, and more.
113
+ *
114
+ * @param config - Optional configuration for the string extension
115
+ * @returns An option configuration for enabling CEL string extensions
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const env = await Env.new({
120
+ * options: [Options.strings()]
121
+ * });
122
+ *
123
+ * const program = await env.compile("'hello world'.upperAscii()");
124
+ * const result = await program.eval(); // "HELLO WORLD"
125
+ * ```
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * // Enable with specific version for format support
130
+ * const env = await Env.new({
131
+ * options: [Options.strings({ version: 1 })]
132
+ * });
133
+ * ```
134
+ */
135
+ strings,
136
+ /**
137
+ * Create a MathExt option configuration to enable the CEL math extension library.
138
+ *
139
+ * This option provides namespaced math helper macros and functions including
140
+ * math.greatest, math.least, math.ceil, math.floor, math.round, math.trunc,
141
+ * math.abs, math.sign, math.isNaN, math.isInf, math.isFinite, bitwise operations,
142
+ * and math.sqrt.
143
+ *
144
+ * @param config - Optional configuration for the math extension
145
+ * @returns An option configuration for enabling CEL math extensions
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const env = await Env.new({
150
+ * options: [Options.math()]
151
+ * });
152
+ *
153
+ * const program = await env.compile("math.greatest(1, 2, 3)");
154
+ * const result = await program.eval(); // 3
155
+ * ```
156
+ */
157
+ math,
158
+ /**
159
+ * Create an EncodersExt option configuration to enable the CEL encoders extension library.
160
+ *
161
+ * This option provides encoding/decoding functions including
162
+ * base64.encode and base64.decode.
163
+ *
164
+ * @param config - Optional configuration for the encoders extension
165
+ * @returns An option configuration for enabling CEL encoder extensions
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const env = await Env.new({
170
+ * options: [Options.encoders()]
171
+ * });
172
+ *
173
+ * const program = await env.compile("base64.encode(b'hello')");
174
+ * const result = await program.eval(); // "aGVsbG8="
175
+ * ```
176
+ */
177
+ encoders,
104
178
  };
105
179
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../lib/options/options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB;;;;;;;;;;OAUG;IACH,aAAa;IAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,aAAa;IAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,2BAA2B;CACnB,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../lib/options/options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB;;;;;;;;;;OAUG;IACH,aAAa;IAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,aAAa;IAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,2BAA2B;IAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,OAAO;IAEP;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI;IAEJ;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ;CACA,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * StringsExt CEL environment option
3
+ */
4
+ import type { EnvOptionConfig } from "./base.js";
5
+ /**
6
+ * Configuration for the CEL string extension library.
7
+ *
8
+ * Enables additional string manipulation functions including:
9
+ * - `charAt`, `indexOf`, `lastIndexOf` - character/substring searching
10
+ * - `join` - list-to-string joining
11
+ * - `lowerAscii`, `upperAscii` - ASCII case conversion
12
+ * - `replace` - substring replacement
13
+ * - `split` - string splitting
14
+ * - `substring` - substring extraction
15
+ * - `trim` - whitespace trimming
16
+ * - `format` (v1+) - printf-style string formatting
17
+ * - `quote` (v1+) - safe string quoting
18
+ * - `reverse` (v3+) - string reversal
19
+ */
20
+ export interface StringsExtConfig {
21
+ /**
22
+ * The version of the string extension library to enable.
23
+ * Only functions introduced at or below the given version are included.
24
+ * If not set, all functions are available.
25
+ *
26
+ * - Version 0: charAt, indexOf, join, lastIndexOf, lowerAscii, replace, split, substring, trim, upperAscii
27
+ * - Version 1: adds format, quote
28
+ * - Version 3: adds reverse
29
+ */
30
+ version?: number;
31
+ /**
32
+ * The locale to use for locale-sensitive string operations.
33
+ */
34
+ locale?: string;
35
+ /**
36
+ * Whether to validate format calls at compile time.
37
+ * When enabled, format string arguments are checked for correctness during compilation.
38
+ */
39
+ validateFormatCalls?: boolean;
40
+ }
41
+ /**
42
+ * Create a StringsExt option configuration to enable the CEL string extension library.
43
+ *
44
+ * @param config - Optional configuration for the string extension
45
+ * @returns An option configuration for enabling CEL string extensions
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * // Enable all string extension functions
50
+ * const env = await Env.new({
51
+ * options: [Options.strings()]
52
+ * });
53
+ *
54
+ * const program = await env.compile("'hello world'.upperAscii()");
55
+ * const result = await program.eval(); // "HELLO WORLD"
56
+ * ```
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Enable with specific version
61
+ * const env = await Env.new({
62
+ * options: [Options.strings({ version: 1 })]
63
+ * });
64
+ *
65
+ * // Now format is available (v1+)
66
+ * const program = await env.compile("'Hello %s, you are %d'.format(['World', 42])");
67
+ * ```
68
+ */
69
+ export declare function strings(config?: StringsExtConfig): EnvOptionConfig;
70
+ //# sourceMappingURL=strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../lib/options/strings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,OAAO,CAAC,MAAM,GAAE,gBAAqB,GAAG,eAAe,CAiBtE"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * StringsExt CEL environment option
3
+ */
4
+ /**
5
+ * Create a StringsExt option configuration to enable the CEL string extension library.
6
+ *
7
+ * @param config - Optional configuration for the string extension
8
+ * @returns An option configuration for enabling CEL string extensions
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Enable all string extension functions
13
+ * const env = await Env.new({
14
+ * options: [Options.strings()]
15
+ * });
16
+ *
17
+ * const program = await env.compile("'hello world'.upperAscii()");
18
+ * const result = await program.eval(); // "HELLO WORLD"
19
+ * ```
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // Enable with specific version
24
+ * const env = await Env.new({
25
+ * options: [Options.strings({ version: 1 })]
26
+ * });
27
+ *
28
+ * // Now format is available (v1+)
29
+ * const program = await env.compile("'Hello %s, you are %d'.format(['World', 42])");
30
+ * ```
31
+ */
32
+ export function strings(config = {}) {
33
+ const params = {};
34
+ if (config.version !== undefined) {
35
+ params.version = config.version;
36
+ }
37
+ if (config.locale !== undefined) {
38
+ params.locale = config.locale;
39
+ }
40
+ if (config.validateFormatCalls !== undefined) {
41
+ params.validateFormatCalls = config.validateFormatCalls;
42
+ }
43
+ return {
44
+ type: "StringsExt",
45
+ params,
46
+ };
47
+ }
48
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../lib/options/strings.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2CH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,OAAO,CAAC,SAA2B,EAAE;IACnD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,MAAM;KACP,CAAC;AACJ,CAAC"}
package/main.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wasm-cel",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "WebAssembly module for evaluating CEL (Common Expression Language) expressions in Node.js and browsers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -53,16 +53,23 @@
53
53
  ],
54
54
  "devDependencies": {
55
55
  "@types/node": "24.10.1",
56
- "jest": "30.2.0",
57
- "typescript": "5.9.3"
56
+ "@vitest/browser": "4.0.14",
57
+ "@vitest/browser-playwright": "4.0.14",
58
+ "@vitest/coverage-v8": "4.0.14",
59
+ "@vitest/ui": "4.0.14",
60
+ "playwright": "1.57.0",
61
+ "typescript": "5.9.3",
62
+ "vitest": "4.0.14"
58
63
  },
59
64
  "scripts": {
60
65
  "build": "GOOS=js GOARCH=wasm go build -ldflags '-s -w' -o main.wasm ./cmd/wasm",
61
66
  "build:copy-wasm-exec": "node scripts/copy-wasm-exec.js",
62
67
  "build:ts": "tsc",
63
68
  "build:all": "pnpm run build && pnpm run build:copy-wasm-exec && pnpm run build:ts",
64
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
65
- "test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
66
- "test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage"
69
+ "test": "vitest run",
70
+ "test:watch": "vitest",
71
+ "test:coverage": "vitest run --coverage",
72
+ "test:browser": "vitest run --browser.enabled",
73
+ "test:browser:ui": "vitest --browser.enabled --ui"
67
74
  }
68
75
  }