wasm-cel 0.4.0 → 0.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/browser.d.ts CHANGED
@@ -36,6 +36,7 @@ declare function init(wasmBytes: Uint8Array | string | URL | Promise<Uint8Array>
36
36
  export { Program, Env } from "./core.js";
37
37
  export type { CELType, CELTypeDef, CELListType, CELMapType, CELFunctionDefinition, CELFunctionParam, EnvOptions, VariableDeclaration, TypeCheckResult, CompilationIssue, CompilationResult, } from "./types.js";
38
38
  export { listType, mapType, CELFunction } from "./functions.js";
39
+ export type { CELTypeToTS, ExtractParamTypes } from "./functions.js";
39
40
  export { Options } from "./options/index.js";
40
41
  export type { EnvOptionConfig, OptionalTypesConfig, ValidationIssue, ValidationContext, ValidatorResult, ASTValidatorFunction, ASTValidatorsConfig, } from "./options/index.js";
41
42
  export { init };
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../lib/browser.ts"],"names":[],"mappings":"AA0EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAe,IAAI,CACjB,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,EACrE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GACzB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAMD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGzC,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../lib/browser.ts"],"names":[],"mappings":"AA0EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAe,IAAI,CACjB,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,EACrE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GACzB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAMD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGzC,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../lib/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../lib/browser.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { EnvOptions, TypeCheckResult } from "./types.js";
1
+ import { _envExtensions } from "./types.js";
2
+ import type { EnvOptions, EnvWithExtensions, InferExtensions, TypeCheckResult, TypeExtensionHKT } from "./types.js";
2
3
  /**
3
4
  * Set the initialization function (called by node.ts or browser.ts)
4
5
  * @internal
@@ -30,9 +31,10 @@ export declare class Program {
30
31
  /**
31
32
  * A CEL environment that holds variable declarations and function definitions
32
33
  */
33
- export declare class Env {
34
+ export declare class Env<Exts extends TypeExtensionHKT[] = []> implements EnvWithExtensions<Exts> {
34
35
  private envID;
35
36
  private destroyed;
37
+ readonly [_envExtensions]?: Exts;
36
38
  private constructor();
37
39
  /**
38
40
  * Get the environment ID (useful for debugging or advanced use cases)
@@ -64,7 +66,9 @@ export declare class Env {
64
66
  * });
65
67
  * ```
66
68
  */
67
- static new(options?: EnvOptions): Promise<Env>;
69
+ static new<Opts extends readonly import("./options/index.js").EnvOptionInput<any>[] = []>(options?: Omit<EnvOptions<InferExtensions<Opts>>, "options"> & {
70
+ options?: Opts;
71
+ }): Promise<Env<InferExtensions<Opts>>>;
68
72
  /**
69
73
  * Compile a CEL expression in this environment
70
74
  * @param expr - The CEL expression to compile
@@ -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;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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAGV,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAE7D;AAmOD;;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,CAAC,IAAI,SAAS,gBAAgB,EAAE,GAAG,EAAE,CACnD,YAAW,iBAAiB,CAAC,IAAI,CAAC;IAElC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAkB;IACnC,SAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;IAEzC,OAAO;IAQP;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;WACU,GAAG,CAAC,IAAI,SAAS,SAAS,OAAO,oBAAoB,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAC5F,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;QAC7D,OAAO,CAAC,EAAE,IAAI,CAAC;KAChB,GACA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IA6CtC;;;;;;;;;;;;;;;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
@@ -110,6 +110,12 @@ function serializeTypeDef(type) {
110
110
  valueType: serializeTypeDef(type.valueType),
111
111
  };
112
112
  }
113
+ if (type.kind === "optional") {
114
+ return {
115
+ kind: "optional",
116
+ innerType: serializeTypeDef(type.innerType),
117
+ };
118
+ }
113
119
  }
114
120
  }
115
121
  return "dyn"; // Fallback to dynamic type
@@ -347,7 +353,7 @@ export class Env {
347
353
  // INTERNAL: If options were provided, extend the environment
348
354
  // This allows options to perform JavaScript-side setup (like registering functions)
349
355
  if (options?.options && options.options.length > 0) {
350
- await env._extendWithOptions(options.options);
356
+ await env._extendWithOptions([...options.options]);
351
357
  }
352
358
  return env;
353
359
  }
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../lib/core.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,55 @@
1
1
  /**
2
2
  * Type-safe builder for CEL function definitions
3
3
  */
4
- import type { CELFunctionDefinition, CELFunctionParam, CELTypeDef } from "./types.js";
4
+ import type { CELFunctionDefinition, CELFunctionParam, CELTypeDef, EnvWithExtensions, TypeExtensionHKT } from "./types.js";
5
+ import type { CELOptionalType } from "./options/optionalTypes.js";
6
+ type CELFunctionContext = TypeExtensionHKT[] | EnvWithExtensions<any>;
7
+ type ResolveFunctionExtensions<Context> = Context extends TypeExtensionHKT[] ? Context : Context extends EnvWithExtensions<infer Exts> ? Exts : [];
5
8
  /**
6
- * Maps CEL types to TypeScript types
7
- * Uses a depth counter to limit recursion and avoid "excessively deep" errors
9
+ * Maps a CEL type definition to its corresponding TypeScript type.
10
+ *
11
+ * Useful for deriving the TS type that a CEL value will have at runtime,
12
+ * e.g. when building wrappers or utilities on top of {@link CELFunction}.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import type { CELTypeToTS } from "wasm-cel";
17
+ *
18
+ * type N = CELTypeToTS<"int">; // number
19
+ * type S = CELTypeToTS<"string">; // string
20
+ * type L = CELTypeToTS<{ kind: "list"; elementType: "bool" }>; // boolean[]
21
+ * ```
8
22
  */
9
- type CELTypeToTS<T extends CELTypeDef, Depth extends readonly unknown[] = []> = Depth["length"] extends 5 ? any : T extends "bool" ? boolean : T extends "int" | "uint" | "double" ? number : T extends "string" ? string : T extends "bytes" ? string : T extends {
23
+ export type CELTypeToTS<T extends CELTypeDef<any>, Depth extends readonly unknown[] = []> = Depth["length"] extends 5 ? any : T extends "bool" ? boolean : T extends "int" | "uint" | "double" ? number : T extends "string" ? string : T extends "bytes" ? string : T extends {
10
24
  kind: "list";
11
25
  elementType: infer E;
12
26
  } ? E extends CELTypeDef ? Array<CELTypeToTS<E, [...Depth, unknown]>> : never : T extends {
13
27
  kind: "map";
14
28
  keyType: infer K;
15
29
  valueType: infer V;
16
- } ? V extends CELTypeDef ? Record<string, CELTypeToTS<V, [...Depth, unknown]>> : never : T extends "dyn" ? any : T extends "null" ? null : T extends "timestamp" ? Date : T extends "duration" ? string : never;
30
+ } ? V extends CELTypeDef ? Record<string, CELTypeToTS<V, [...Depth, unknown]>> : never : T extends CELOptionalType<infer Inner> ? CELTypeToTS<Inner, [...Depth, unknown]> | null : T extends "dyn" ? any : T extends "null" ? null : T extends "timestamp" ? Date : T extends "duration" ? string : never;
17
31
  /**
18
- * Extracts TypeScript parameter types from a tuple of CEL function parameters
32
+ * Extracts a TypeScript parameter-type tuple from CEL function parameter definitions.
33
+ *
34
+ * Given a tuple of {@link CELFunctionParam} entries (as accumulated by the builder),
35
+ * produces the matching tuple of TypeScript types — the same tuple used for the
36
+ * `impl` callback signature in {@link CELFunction.implement}.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * import type { ExtractParamTypes, CELFunctionParam } from "wasm-cel";
41
+ *
42
+ * type Params = readonly [
43
+ * { name: "a"; type: "int"; optional: false },
44
+ * { name: "b"; type: "string"; optional: false },
45
+ * { name: "c"; type: "bool"; optional: true },
46
+ * ];
47
+ *
48
+ * type Args = ExtractParamTypes<Params>; // [number, string, boolean | undefined]
49
+ * ```
19
50
  */
20
- type ExtractParamTypes<P extends readonly CELFunctionParam[]> = {
21
- [K in keyof P]: P[K] extends CELFunctionParam ? CELTypeToTS<P[K]["type"]> : never;
51
+ export type ExtractParamTypes<P extends readonly CELFunctionParam<any>[]> = {
52
+ [K in keyof P]: P[K] extends CELFunctionParam ? P[K]["optional"] extends true ? CELTypeToTS<P[K]["type"]> | undefined : CELTypeToTS<P[K]["type"]> : never;
22
53
  };
23
54
  /**
24
55
  * Builder class for creating type-safe CEL function definitions
@@ -33,7 +64,7 @@ type ExtractParamTypes<P extends readonly CELFunctionParam[]> = {
33
64
  * ```
34
65
  */
35
66
  type BuilderStage = "params" | "returns";
36
- export declare class CELFunction<Stage extends BuilderStage = "params", Params extends readonly CELFunctionParam[] = readonly [], ReturnType extends CELTypeDef = "dyn"> {
67
+ export declare class CELFunction<Context extends CELFunctionContext | [] = [], Stage extends BuilderStage = "params", Params extends readonly CELFunctionParam<ResolveFunctionExtensions<Context>>[] = readonly [], ReturnType extends CELTypeDef<ResolveFunctionExtensions<Context>> = "dyn"> {
37
68
  private readonly stageMarker;
38
69
  private name;
39
70
  private readonly params;
@@ -54,34 +85,34 @@ export declare class CELFunction<Stage extends BuilderStage = "params", Params e
54
85
  * .implement((a, b) => a + b);
55
86
  * ```
56
87
  */
57
- static new(name: string): CELFunction<"params", readonly [], "dyn">;
88
+ static new<Context extends CELFunctionContext | [] = []>(name: string): CELFunction<Context, "params", readonly [], "dyn">;
58
89
  /**
59
90
  * Add a parameter to the function
60
91
  */
61
- param<T extends CELTypeDef>(this: CELFunction<"params", Params, ReturnType>, name: string, type: T, optional?: boolean): CELFunction<"params", readonly [...Params, {
92
+ param<T extends CELTypeDef<ResolveFunctionExtensions<Context>>, Optional extends boolean = false>(this: CELFunction<Context, "params", Params, ReturnType>, name: string, type: T, optional?: Optional): CELFunction<Context, "params", readonly [...Params, {
62
93
  name: string;
63
94
  type: T;
64
- optional: boolean;
95
+ optional: Optional;
65
96
  }], ReturnType>;
66
97
  /**
67
98
  * Set the return type of the function
68
99
  */
69
- returns<T extends CELTypeDef>(this: CELFunction<"params", Params, ReturnType>, type: T): CELFunction<"returns", Params, T>;
100
+ returns<T extends CELTypeDef<ResolveFunctionExtensions<Context>>>(this: CELFunction<Context, "params", Params, ReturnType>, type: T): CELFunction<Context, "returns", Params, T>;
70
101
  /**
71
102
  * Set the implementation function and return the final definition
72
103
  */
73
- implement(this: CELFunction<"returns", Params, ReturnType>, impl: (...args: ExtractParamTypes<Params>) => CELTypeToTS<ReturnType>): CELFunctionDefinition;
104
+ implement(this: CELFunction<Context, "returns", Params, ReturnType>, impl: (...args: ExtractParamTypes<Params>) => CELTypeToTS<ReturnType>): CELFunctionDefinition;
74
105
  /**
75
106
  * Add an overload variant of this function
76
107
  */
77
- overload(this: CELFunction<"returns", Params, ReturnType>, overload: CELFunctionDefinition): CELFunction<"returns", Params, ReturnType>;
108
+ overload(this: CELFunction<Context, "returns", Params, ReturnType>, overload: CELFunctionDefinition): CELFunction<Context, "returns", Params, ReturnType>;
78
109
  }
79
110
  /**
80
111
  * Helper function to create a list type
81
112
  */
82
- export declare function listType(elementType: CELTypeDef): {
113
+ export declare function listType<Exts extends TypeExtensionHKT[] = []>(elementType: CELTypeDef<Exts>): {
83
114
  kind: "list";
84
- elementType: CELTypeDef;
115
+ elementType: CELTypeDef<Exts>;
85
116
  };
86
117
  /**
87
118
  * Helper function to create a map type
@@ -91,5 +122,6 @@ export declare function mapType(keyType: CELTypeDef, valueType: CELTypeDef): {
91
122
  keyType: CELTypeDef;
92
123
  valueType: CELTypeDef;
93
124
  };
125
+ export declare function optionalType<const T extends CELTypeDef<any>>(innerType: T): CELOptionalType<T>;
94
126
  export {};
95
127
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../lib/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,KAAK,WAAW,CACd,CAAC,SAAS,UAAU,EACpB,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,IACnC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GACzB,GAAG,GACH,CAAC,SAAS,MAAM,GACd,OAAO,GACP,CAAC,SAAS,KAAK,GAAG,MAAM,GAAG,QAAQ,GACjC,MAAM,GACN,CAAC,SAAS,QAAQ,GAChB,MAAM,GACN,CAAC,SAAS,OAAO,GACf,MAAM,GACN,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9C,CAAC,SAAS,UAAU,GAClB,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAC1C,KAAK,GACP,CAAC,SAAS;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,CAAA;CAAE,GAC7D,CAAC,SAAS,UAAU,GAClB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GACnD,KAAK,GACP,CAAC,SAAS,KAAK,GACb,GAAG,GACH,CAAC,SAAS,MAAM,GACd,IAAI,GACJ,CAAC,SAAS,WAAW,GACnB,IAAI,GACJ,CAAC,SAAS,UAAU,GAClB,MAAM,GACN,KAAK,CAAC;AAE9B;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,SAAS,gBAAgB,EAAE,IAAI;KAC7D,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,GACzC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GACzB,KAAK;CACV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,KAAK,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzC,qBAAa,WAAW,CACtB,KAAK,SAAS,YAAY,GAAG,QAAQ,EACrC,MAAM,SAAS,SAAS,gBAAgB,EAAE,GAAG,SAAS,EAAE,EACxD,UAAU,SAAS,UAAU,GAAG,KAAK;IAErC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAA+B;IAEhD,OAAO;IAiBP;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC;IAInE;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,UAAU,EACxB,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAC/C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,QAAQ,UAAQ,GACf,WAAW,CACZ,QAAQ,EACR,SAAS,CAAC,GAAG,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,EAClE,UAAU,CACX;IAYD;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,UAAU,EAC1B,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAC/C,IAAI,EAAE,CAAC,GACN,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IASpC;;OAEG;IACH,SAAS,CACP,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAChD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,UAAU,CAAC,GACpE,qBAAqB;IAexB;;OAEG;IACH,QAAQ,CACN,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAChD,QAAQ,EAAE,qBAAqB,GAC9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;CAS9C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,CAAC;CACzB,CAEA;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,GACpB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,CAE7D"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../lib/functions.ts"],"names":[],"mappings":"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"}
package/dist/functions.js CHANGED
@@ -32,10 +32,10 @@ export class CELFunction {
32
32
  /**
33
33
  * Add a parameter to the function
34
34
  */
35
- param(name, type, optional = false) {
35
+ param(name, type, optional) {
36
36
  const newParams = [
37
37
  ...this.params,
38
- { name, type, optional },
38
+ { name, type, optional: (optional ?? false) },
39
39
  ];
40
40
  return new CELFunction(this.name, newParams, this.returnType, this.overloads);
41
41
  }
@@ -83,4 +83,7 @@ export function listType(elementType) {
83
83
  export function mapType(keyType, valueType) {
84
84
  return { kind: "map", keyType, valueType };
85
85
  }
86
+ export function optionalType(innerType) {
87
+ return { kind: "optional", innerType };
88
+ }
86
89
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../lib/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkEH,MAAM,OAAO,WAAW;IAWtB,YACE,IAAY,EACZ,SAA6B,EAAE,EAC/B,aAAyB,KAAK,EAC9B,YAAqC,EAAE;QANjC,cAAS,GAA4B,EAAE,CAAC;QAQ9C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,mCAAmC,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,WAAW,CAA+B,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAEH,IAAY,EACZ,IAAO,EACP,QAAQ,GAAG,KAAK;QAMhB,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI,CAAC,MAAM;YACd,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;SACH,CAAC;QACxB,OAAO,IAAI,WAAW,CAIpB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,OAAO,CAEL,IAAO;QAEP,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAEP,IAAqE;QAErE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAA+B;SACb,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,QAAQ,CAEN,QAA+B;QAE/B,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,IAAI,SAAS,QAAQ,CAAC,IAAI,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,WAAuB;IAI9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,OAAmB,EACnB,SAAqB;IAErB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../lib/functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6GH,MAAM,OAAO,WAAW;IAYtB,YACE,IAAY,EACZ,SAAiE,EAAE,EACnE,aAA6D,KAAK,EAClE,YAAqC,EAAE;QANjC,cAAS,GAA4B,EAAE,CAAC;QAQ9C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,mCAAmC,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,CACR,IAAY;QAEZ,OAAO,IAAI,WAAW,CAAwC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAKH,IAAY,EACZ,IAAO,EACP,QAAmB;QAOnB,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI,CAAC,MAAM;YACd,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAa,EAAE;SACA,CAAC;QAC5D,OAAO,IAAI,WAAW,CAKpB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,OAAO,CAEL,IAAO;QAEP,OAAO,IAAI,WAAW,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAEP,IAAqE;QAErE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAA+B;SACb,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,QAAQ,CAEN,QAA+B;QAE/B,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,IAAI,SAAS,QAAQ,CAAC,IAAI,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,WAA6B;IAK7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,OAAmB,EACnB,SAAqB;IAErB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,SAAY;IAEZ,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export declare const Program: typeof import("./core.js").Program, Env: typeof import("./core.js").Env, init: typeof import("./browser.js").init;
2
- export { listType, mapType, CELFunction } from "./functions.js";
2
+ export { listType, mapType, optionalType, CELFunction } from "./functions.js";
3
+ export type { CELTypeToTS, ExtractParamTypes } from "./functions.js";
3
4
  export { Options } from "./options/index.js";
4
- export type { CELType, CELTypeDef, CELListType, CELMapType, CELFunctionDefinition, CELFunctionParam, EnvOptions, VariableDeclaration, TypeCheckResult, CompilationIssue, CompilationResult, } from "./types.js";
5
- export type { EnvOptionConfig, OptionalTypesConfig, ValidationIssue, ValidationContext, ValidatorResult, ASTValidatorFunction, ASTValidatorsConfig, } from "./options/index.js";
5
+ export type { CELType, CELTypeDef, CELListType, CELMapType, EnvExtensions, InferExtensions, TypeExtensionHKT, CELFunctionDefinition, CELFunctionParam, EnvOptions, VariableDeclaration, TypeCheckResult, CompilationIssue, CompilationResult, } from "./types.js";
6
+ export type { EnvOptionConfig, CELOptionalType, OptionalTypesExt, OptionalTypesConfig, ValidationIssue, ValidationContext, ValidatorResult, ASTValidatorFunction, ASTValidatorsConfig, } from "./options/index.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAQ,OAAO,sCAAE,GAAG,kCAAE,IAAI,oCAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAQ,OAAO,sCAAE,GAAG,kCAAE,IAAI,oCAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -15,6 +15,6 @@ const module = isBrowser
15
15
  : await import("./node.js");
16
16
  // Re-export everything
17
17
  export const { Program, Env, init } = module;
18
- export { listType, mapType, CELFunction } from "./functions.js";
18
+ export { listType, mapType, optionalType, CELFunction } from "./functions.js";
19
19
  export { Options } from "./options/index.js";
20
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,kBAAkB;AAClB,yFAAyF;AACzF,mEAAmE;AACnE,EAAE;AACF,qEAAqE;AACrE,6EAA6E;AAE7E,yCAAyC;AACzC,MAAM,SAAS,GACb,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,CAAC;AAEnE,gCAAgC;AAChC,6DAA6D;AAC7D,MAAM,MAAM,GAAG,SAAS;IACtB,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC;IAC9B,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAE9B,uBAAuB;AACvB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,kBAAkB;AAClB,yFAAyF;AACzF,mEAAmE;AACnE,EAAE;AACF,qEAAqE;AACrE,6EAA6E;AAE7E,yCAAyC;AACzC,MAAM,SAAS,GACb,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,CAAC;AAEnE,gCAAgC;AAChC,6DAA6D;AAC7D,MAAM,MAAM,GAAG,SAAS;IACtB,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC;IAC9B,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAE9B,uBAAuB;AACvB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/node.d.ts CHANGED
@@ -6,6 +6,7 @@ declare function init(): Promise<void>;
6
6
  export { Program, Env } from "./core.js";
7
7
  export type { CELType, CELTypeDef, CELListType, CELMapType, CELFunctionDefinition, CELFunctionParam, EnvOptions, VariableDeclaration, TypeCheckResult, CompilationIssue, CompilationResult, } from "./types.js";
8
8
  export { listType, mapType, CELFunction } from "./functions.js";
9
+ export type { CELTypeToTS, ExtractParamTypes } from "./functions.js";
9
10
  export { Options } from "./options/index.js";
10
11
  export type { EnvOptionConfig, OptionalTypesConfig, ValidationIssue, ValidationContext, ValidatorResult, ASTValidatorFunction, ASTValidatorsConfig, } from "./options/index.js";
11
12
  export { init };
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../lib/node.ts"],"names":[],"mappings":"AAuCA;;;GAGG;AACH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuCnC;AAMD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGzC,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../lib/node.ts"],"names":[],"mappings":"AAuCA;;;GAGG;AACH,iBAAe,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuCnC;AAMD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGzC,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../lib/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../lib/node.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Base types and interfaces for CEL environment options
3
3
  */
4
+ import type { TypedEnvOption, TypeExtensionHKT } from "../types.js";
4
5
  /**
5
6
  * Interface representing the environment capabilities available to options during setup
6
7
  */
@@ -56,5 +57,5 @@ export type EnvOptionConfig = {
56
57
  /**
57
58
  * Union type of all available option inputs (simple configs or complex options with setup)
58
59
  */
59
- export type EnvOptionInput = EnvOptionConfig | OptionWithSetup;
60
+ export type EnvOptionInput<Exts extends TypeExtensionHKT[] = any> = (EnvOptionConfig & TypedEnvOption<Exts>) | OptionWithSetup;
60
61
  //# sourceMappingURL=base.d.ts.map
@@ -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,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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../lib/options/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE;;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,CAAC,IAAI,SAAS,gBAAgB,EAAE,GAAG,GAAG,IAC5D,CAAC,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GACxC,eAAe,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * This module contains TypeScript definitions for configurable CEL environment options.
5
5
  */
6
6
  export type { OptionSetupEnvironment, OptionWithSetup, EnvOptionConfig, EnvOptionInput, } from "./base.js";
7
- export type { OptionalTypesConfig } from "./optionalTypes.js";
7
+ export type { CELOptionalType, OptionalTypesConfig, OptionalTypesExt, } from "./optionalTypes.js";
8
8
  export type { ValidationIssue, ValidationContext, ValidatorResult, ASTValidatorFunction, ASTValidatorsConfig, } from "./astValidators.js";
9
9
  export type { CrossTypeNumericComparisonsConfig } from "./crossTypeNumericComparisons.js";
10
10
  export type { StringsExtConfig } from "./strings.js";
@@ -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;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
+ {"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,EACV,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,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;AAwBH,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;AA4BH,sCAAsC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1,7 +1,16 @@
1
1
  /**
2
2
  * OptionalTypes CEL environment option
3
3
  */
4
+ import type { _types, CELTypeDef, TypeExtensionHKT, TypedEnvOption } from "../types.js";
4
5
  import type { EnvOptionConfig } from "./base.js";
6
+ type Cast<T, U> = T extends U ? T : U;
7
+ export interface CELOptionalType<T = CELTypeDef<any>> {
8
+ kind: "optional";
9
+ innerType: T;
10
+ }
11
+ export interface OptionalTypesExt extends TypeExtensionHKT {
12
+ fn: (types: Cast<this[typeof _types], CELTypeDef<any>>) => CELOptionalType<typeof types>;
13
+ }
5
14
  /**
6
15
  * Configuration for OptionalTypes CEL environment option
7
16
  *
@@ -24,5 +33,6 @@ export interface OptionalTypesConfig {
24
33
  * });
25
34
  * ```
26
35
  */
27
- export declare function optionalTypes(): EnvOptionConfig;
36
+ export declare function optionalTypes(): EnvOptionConfig & TypedEnvOption<[OptionalTypesExt]>;
37
+ export {};
28
38
  //# sourceMappingURL=optionalTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"optionalTypes.d.ts","sourceRoot":"","sources":["../../lib/options/optionalTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;CAEnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,eAAe,CAK/C"}
1
+ {"version":3,"file":"optionalTypes.d.ts","sourceRoot":"","sources":["../../lib/options/optionalTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtC,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;IAClD,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,CAAC,CAAC;CACd;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,eAAe,CAAC,OAAO,KAAK,CAAC,CAAC;CAC1F;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;CAEnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,eAAe,GAAG,cAAc,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAKpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"optionalTypes.js","sourceRoot":"","sources":["../../lib/options/optionalTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"optionalTypes.js","sourceRoot":"","sources":["../../lib/options/optionalTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkCH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -2,6 +2,39 @@
2
2
  * CEL type system definitions
3
3
  * These types correspond to CEL's type system and will be used for type checking
4
4
  */
5
+ export declare const _types: unique symbol;
6
+ type TypeExtensionFn = (...args: never[]) => unknown;
7
+ /**
8
+ * Base higher-kinded type for CEL type extensions.
9
+ *
10
+ * Extensions implement this to declare what CEL types they contribute
11
+ * to the type universe. The {@link _types} slot receives the full resolved
12
+ * type universe at the point of use (filled via intersection), enabling
13
+ * recursive types like `optional(optional(T))`.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * interface MyExtension extends TypeExtensionHKT {
18
+ * // `this[typeof _types]` is the full type universe including all extensions
19
+ * provided: { kind: "myType"; inner: this[typeof _types] };
20
+ * }
21
+ * ```
22
+ */
23
+ export declare abstract class TypeExtensionHKT {
24
+ [_types]: unknown;
25
+ abstract fn: TypeExtensionFn;
26
+ }
27
+ type ResolveExtensionType<Ext extends TypeExtensionHKT, Universe> = (Ext & {
28
+ [_types]: Universe;
29
+ }) extends infer T extends TypeExtensionHKT ? ReturnType<T["fn"]> : never;
30
+ type AnyCELTypeDef = CELType | {
31
+ kind: "list";
32
+ elementType: AnyCELTypeDef;
33
+ } | {
34
+ kind: "map";
35
+ keyType: CELType;
36
+ valueType: AnyCELTypeDef;
37
+ } | Record<string, unknown>;
5
38
  /**
6
39
  * Base CEL types
7
40
  */
@@ -9,30 +42,48 @@ export type CELType = "bool" | "int" | "uint" | "double" | "string" | "bytes" |
9
42
  /**
10
43
  * CEL list type with element type
11
44
  */
12
- export interface CELListType {
45
+ export interface CELListType<Exts extends TypeExtensionHKT[] = []> {
13
46
  kind: "list";
14
- elementType: CELType | CELListType | CELMapType;
47
+ elementType: CELTypeDef<Exts>;
15
48
  }
16
49
  /**
17
50
  * CEL map type with key and value types
18
51
  */
19
- export interface CELMapType {
52
+ export interface CELMapType<Exts extends TypeExtensionHKT[] = []> {
20
53
  kind: "map";
21
54
  keyType: CELType;
22
- valueType: CELType | CELListType | CELMapType;
55
+ valueType: CELTypeDef<Exts>;
23
56
  }
24
57
  /**
25
- * Union of all possible CEL type representations
58
+ * Full CEL type definition, parameterized by active extensions.
59
+ *
60
+ * With no extensions (`CELTypeDef<[]>`), this is equivalent to the base
61
+ * type union. When extensions are provided, their contributed types are
62
+ * included in the union.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * // Base types only:
67
+ * type Basic = CELTypeDef; // "bool" | "int" | ... | CELListType | CELMapType
68
+ *
69
+ * // With optional types:
70
+ * type WithOpt = CELTypeDef<[OptionalTypesExt]>;
71
+ * // also includes { kind: "optional"; innerType: WithOpt }
72
+ * ```
26
73
  */
27
- export type CELTypeDef = CELType | CELListType | CELMapType;
74
+ type BaseCELTypeDef<Exts extends TypeExtensionHKT[] = []> = CELType | CELListType<Exts> | CELMapType<Exts>;
75
+ type ProvidedCELTypes<Exts extends TypeExtensionHKT[] = [], Universe = AnyCELTypeDef> = {
76
+ [K in keyof Exts]: Exts[K] extends TypeExtensionHKT ? ResolveExtensionType<Exts[K], Universe> : never;
77
+ }[number];
78
+ export type CELTypeDef<Exts extends TypeExtensionHKT[] = []> = BaseCELTypeDef<Exts> | ProvidedCELTypes<Exts>;
28
79
  /**
29
80
  * Parameter definition for a CEL function
30
81
  */
31
- export interface CELFunctionParam {
82
+ export interface CELFunctionParam<Exts extends TypeExtensionHKT[] = []> {
32
83
  /** Parameter name */
33
84
  name: string;
34
85
  /** Parameter type */
35
- type: CELTypeDef;
86
+ type: CELTypeDef<Exts>;
36
87
  /** Whether the parameter is optional */
37
88
  optional?: boolean;
38
89
  }
@@ -42,9 +93,9 @@ export interface CELFunctionDefinition {
42
93
  /** Function name (must be a valid CEL identifier) */
43
94
  name: string;
44
95
  /** Function parameters */
45
- params: CELFunctionParam[];
96
+ params: CELFunctionParam<any>[];
46
97
  /** Return type */
47
- returnType: CELTypeDef;
98
+ returnType: CELTypeDef<any>;
48
99
  /** Implementation function that will be called when the CEL function is invoked */
49
100
  impl: (...args: any[]) => any;
50
101
  /** Whether the function accepts variable arguments (overloads) */
@@ -55,18 +106,18 @@ export interface CELFunctionDefinition {
55
106
  /**
56
107
  * Variable declaration for an environment
57
108
  */
58
- export interface VariableDeclaration {
109
+ export interface VariableDeclaration<Exts extends TypeExtensionHKT[] = []> {
59
110
  /** Variable name */
60
111
  name: string;
61
112
  /** Variable type */
62
- type: CELTypeDef;
113
+ type: CELTypeDef<Exts>;
63
114
  }
64
115
  /**
65
116
  * Options for creating a CEL environment
66
117
  */
67
- export interface EnvOptions {
118
+ export interface EnvOptions<Exts extends TypeExtensionHKT[] = []> {
68
119
  /** Variable declarations (name and type) */
69
- variables?: VariableDeclaration[];
120
+ variables?: VariableDeclaration<Exts>[];
70
121
  /** Custom functions to register */
71
122
  functions?: CELFunctionDefinition[];
72
123
  /** Environment options (like OptionalTypes) */
@@ -77,7 +128,7 @@ export interface EnvOptions {
77
128
  */
78
129
  export interface TypeCheckResult {
79
130
  /** The inferred type of the expression */
80
- type: CELTypeDef;
131
+ type: CELTypeDef<any>;
81
132
  }
82
133
  /**
83
134
  * Represents a compilation issue (error, warning, or info)
@@ -110,5 +161,55 @@ export interface CompilationResult {
110
161
  /** The compiled program if compilation succeeded */
111
162
  program?: import("./core.js").Program;
112
163
  }
164
+ /** Phantom brand for carrying extension type info on option values */
165
+ declare const _ext: unique symbol;
166
+ export type _ext = typeof _ext;
167
+ export declare const _envExtensions: unique symbol;
168
+ export type _envExtensions = typeof _envExtensions;
169
+ /**
170
+ * Marker interface for env options that carry extension type info.
171
+ * The phantom {@link _ext} field encodes which extensions an option provides.
172
+ */
173
+ export interface TypedEnvOption<Exts extends TypeExtensionHKT[] = []> {
174
+ readonly [_ext]?: Exts;
175
+ }
176
+ export interface EnvWithExtensions<Exts extends TypeExtensionHKT[] = []> {
177
+ readonly [_envExtensions]?: Exts;
178
+ }
179
+ /** Flatten a tuple of extension tuples into a single extension tuple */
180
+ type Flatten<T extends readonly any[]> = T extends readonly [
181
+ infer Head extends readonly any[],
182
+ ...infer Rest extends readonly any[]
183
+ ] ? [...Head, ...Flatten<Rest>] : [];
184
+ /**
185
+ * Infer the combined extension tuple from an array of env options.
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * type Exts = InferExtensions<[
190
+ * TypedEnvOption<[OptionalTypesExt]>,
191
+ * TypedEnvOption<[]>,
192
+ * ]>;
193
+ * // Exts = [OptionalTypesExt]
194
+ * ```
195
+ */
196
+ export type InferExtensions<Opts extends readonly any[]> = Flatten<{
197
+ [K in keyof Opts]: Opts[K] extends TypedEnvOption<infer E> ? E : [];
198
+ }>;
199
+ /**
200
+ * Extract the extension tuple from an Env instance type.
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * const env = await Env.new({ options: [Options.optionalTypes()] });
205
+ * type Exts = EnvExtensions<typeof env>; // [OptionalTypesExt]
206
+ *
207
+ * const fn = CELFunction.new<Exts>("wrap")
208
+ * .param("x", { kind: "optional", innerType: "string" })
209
+ * .returns("string")
210
+ * .implement((x) => x ?? "");
211
+ * ```
212
+ */
213
+ export type EnvExtensions<E> = E extends EnvWithExtensions<infer Exts extends TypeExtensionHKT[]> ? Exts : [];
113
214
  export {};
114
215
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -2,5 +2,22 @@
2
2
  * CEL type system definitions
3
3
  * These types correspond to CEL's type system and will be used for type checking
4
4
  */
5
- export {};
5
+ /**
6
+ * Base higher-kinded type for CEL type extensions.
7
+ *
8
+ * Extensions implement this to declare what CEL types they contribute
9
+ * to the type universe. The {@link _types} slot receives the full resolved
10
+ * type universe at the point of use (filled via intersection), enabling
11
+ * recursive types like `optional(optional(T))`.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * interface MyExtension extends TypeExtensionHKT {
16
+ * // `this[typeof _types]` is the full type universe including all extensions
17
+ * provided: { kind: "myType"; inner: this[typeof _types] };
18
+ * }
19
+ * ```
20
+ */
21
+ export class TypeExtensionHKT {
22
+ }
6
23
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAgB,gBAAgB;CAGrC"}
package/main.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wasm-cel",
3
- "version": "0.4.0",
3
+ "version": "0.5.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",
@@ -52,20 +52,21 @@
52
52
  "README.md"
53
53
  ],
54
54
  "devDependencies": {
55
- "@types/node": "24.10.1",
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",
55
+ "@types/node": "24.12.0",
56
+ "@vitest/browser": "4.0.18",
57
+ "@vitest/browser-playwright": "4.0.18",
58
+ "@vitest/coverage-v8": "4.0.18",
59
+ "@vitest/ui": "4.0.18",
60
+ "playwright": "1.58.2",
61
61
  "typescript": "5.9.3",
62
- "vitest": "4.0.14"
62
+ "vitest": "4.0.18"
63
63
  },
64
64
  "scripts": {
65
65
  "build": "GOOS=js GOARCH=wasm go build -ldflags '-s -w' -o main.wasm ./cmd/wasm",
66
66
  "build:copy-wasm-exec": "node scripts/copy-wasm-exec.js",
67
67
  "build:ts": "tsc",
68
68
  "build:all": "pnpm run build && pnpm run build:copy-wasm-exec && pnpm run build:ts",
69
+ "test:types": "pnpm run build:ts && tsc -p tsconfig.type-tests.json",
69
70
  "test": "vitest run",
70
71
  "test:watch": "vitest",
71
72
  "test:coverage": "vitest run --coverage",