@usine/expression 0.2.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.
@@ -1,13 +1,19 @@
1
- import { Environment as CelEnvironment, ParseError as CelParseError, TypeError as CelTypeError, parse, } from "@marcbachmann/cel-js";
2
- import { Effect, Layer, Option, Schema } from "effect";
1
+ import { Environment as CelEnvironment, ParseError as CelParseError, TypeError as CelTypeError, } from "@marcbachmann/cel-js";
2
+ import { Effect, Layer, Option, Predicate, Result, Schema } from "effect";
3
3
  import { TypeReference } from "./environment.js";
4
4
  import { ExpressionEngine, ExpressionCheckError, ExpressionEvaluationError, Scalar, } from "./expression-engine.js";
5
5
  const decodeTypeReference = Schema.decodeUnknownSync(TypeReference);
6
+ const ENVIRONMENT_OPTIONS = {
7
+ unlistedVariablesAreDyn: false,
8
+ enableOptionalTypes: true,
9
+ };
10
+ /** Parser for {@link relatedStringLiterals}, with the checking options so that it accepts `.?`. */
11
+ const parser = new CelEnvironment(ENVIRONMENT_OPTIONS);
6
12
  const acceptedScalarTypes = new Set([
7
13
  "bool",
8
14
  "double",
9
15
  "int",
10
- "null_type",
16
+ "null",
11
17
  "string",
12
18
  "uint",
13
19
  ]);
@@ -19,7 +25,7 @@ const checkFailure = (source, error) => error === undefined
19
25
  ? new ExpressionCheckError({
20
26
  source,
21
27
  code: "check_failed",
22
- message: "CEL check failed without an error detail",
28
+ message: "The CEL check failed and returned no error details",
23
29
  position: Option.none(),
24
30
  })
25
31
  : new ExpressionCheckError({
@@ -67,7 +73,7 @@ const MACROS_WITH_BINDINGS = new Set([
67
73
  "filter",
68
74
  "map",
69
75
  ]);
70
- /** The member path a node reads from, followed back through macro bindings and collection transformations. */
76
+ /** Returns the member path that a node reads, resolved through macro bindings and `filter`/`map` receivers, or `undefined`. */
71
77
  const lineagePathOf = (node, bindings) => {
72
78
  const path = pathOf(node);
73
79
  if (path !== undefined) {
@@ -91,12 +97,7 @@ const lineagePathOf = (node, bindings) => {
91
97
  return lineagePathOf(projection, new Map(bindings).set(binding.args, receiverPath));
92
98
  };
93
99
  const startsWithPath = (path, prefix) => prefix.every((part, index) => path[index] === part);
94
- /**
95
- * The string literals an operand can evaluate to. Only result positions count:
96
- * a conditional contributes its branches and not its test, a list its
97
- * elements. `item.state == "OPEN" ? "ready" : "review"` yields the two labels
98
- * and not the state.
99
- */
100
+ /** Returns the string literals an operand can evaluate to: a literal, both branches of `?:`, and list elements. */
100
101
  const resultStringLiterals = (node) => {
101
102
  switch (node.op) {
102
103
  case "value":
@@ -133,7 +134,7 @@ const comparisonLiterals = (node, memberPath, bindings) => {
133
134
  return [];
134
135
  }
135
136
  };
136
- /** Collects the literals compared against `name` on members bound by macros over the watched collection. */
137
+ /** Returns the literals compared with `name` on values under `memberPath`, including through macro variables. */
137
138
  const scanRelatedLiterals = (node, memberPath, bindings) => {
138
139
  const related = comparisonLiterals(node, memberPath, bindings);
139
140
  if (node.op !== "rcall" || !MACROS_WITH_BINDINGS.has(node.args[0])) {
@@ -162,7 +163,7 @@ const relatedStringLiterals = Effect.fn("ExpressionEngine.relatedStringLiterals"
162
163
  if (memberPath.length === 0)
163
164
  return [];
164
165
  const ast = yield* Effect.try({
165
- try: () => parse(source).ast,
166
+ try: () => parser.parse(source).ast,
166
167
  catch: (cause) => cause instanceof CelParseError
167
168
  ? checkFailure(source, cause)
168
169
  : new ExpressionCheckError({
@@ -174,53 +175,173 @@ const relatedStringLiterals = Effect.fn("ExpressionEngine.relatedStringLiterals"
174
175
  });
175
176
  return [...new Set(scanRelatedLiterals(ast, memberPath, new Map()))];
176
177
  });
177
- const makeEnvironment = (descriptor) => {
178
- const environment = new CelEnvironment({ unlistedVariablesAreDyn: false });
178
+ /**
179
+ * Creates the cel-js environment for checking or evaluating `descriptor`. Because cel-js rejects
180
+ * `null` in a typed field and can't index `dyn<T>`, evaluation declares nullable fields as `dyn`.
181
+ * Both register `T == null`; cel-js derives `!=` and the reversed operand order from it.
182
+ */
183
+ const makeEnvironment = (descriptor, purpose) => {
184
+ const environment = new CelEnvironment(ENVIRONMENT_OPTIONS);
185
+ const nullableTypes = new Set();
179
186
  for (const objectType of descriptor.types) {
180
187
  environment.registerType(objectType.name, {
181
- fields: Object.fromEntries(objectType.fields.map((field) => [field.name, field.type])),
188
+ fields: Object.fromEntries(objectType.fields.map((field) => {
189
+ if (!field.nullable)
190
+ return [field.name, field.type];
191
+ nullableTypes.add(field.type);
192
+ return [field.name, purpose === "check" ? field.type : "dyn"];
193
+ })),
182
194
  });
183
195
  }
196
+ for (const type of nullableTypes) {
197
+ environment.registerOperator(`${type} == null`, (left, right) => left === right);
198
+ }
184
199
  for (const variable of descriptor.variables) {
185
200
  environment.registerVariable(variable.name, variable.type);
186
201
  }
187
202
  return environment;
188
203
  };
189
- const normalizeValue = (value, type, objectTypes) => {
190
- if ((type === "int" || type === "uint") &&
191
- Schema.is(Schema.Number)(value) &&
192
- Number.isInteger(value)) {
193
- return BigInt(value);
204
+ /** Returns whether `value` is a JSON object, checking only the top level because the context is already `Schema.Json` (#464). */
205
+ const isJsonObject = (value) => Predicate.isObject(value);
206
+ /** The identity normalizer, compared by reference to skip types that need no normalization. */
207
+ const unchanged = (value) => value;
208
+ /** Sets `name` as an own property, including `__proto__`. */
209
+ const setField = (target, name, value) => {
210
+ if (name === "__proto__") {
211
+ Object.defineProperty(target, name, {
212
+ value,
213
+ enumerable: true,
214
+ writable: true,
215
+ configurable: true,
216
+ });
194
217
  }
195
- if (type.startsWith("list<") && type.endsWith(">") && Array.isArray(value)) {
196
- const itemType = decodeTypeReference(type.slice(5, -1));
197
- return value.map((item) => normalizeValue(item, itemType, objectTypes));
218
+ else {
219
+ target[name] = value;
198
220
  }
199
- const objectType = objectTypes.get(type);
200
- if (objectType !== undefined && Schema.is(Schema.JsonObject)(value)) {
201
- return Object.fromEntries(Object.entries(value).map(([key, fieldValue]) => {
202
- const field = objectType.fields.find(({ name }) => name === key);
203
- return [
204
- key,
205
- field === undefined ? fieldValue : normalizeValue(fieldValue, field.type, objectTypes),
206
- ];
207
- }));
221
+ };
222
+ /**
223
+ * Returns the context normalizer for `descriptor`, which converts `int` and `uint` numbers to
224
+ * `bigint` and sets absent nullable fields to `null`, recursing into `list<T>` items and declared
225
+ * object fields. Returns unchanged values as is, and shallow-copies changed objects.
226
+ */
227
+ const contextNormalizer = (descriptor) => {
228
+ const objectTypes = new Map(descriptor.types.map((type) => [type.name, type]));
229
+ const compiled = new Map();
230
+ // Can't recurse forever: the Environment declares each type before any type that references it.
231
+ const normalizerOf = (type) => {
232
+ const existing = compiled.get(type);
233
+ if (existing !== undefined)
234
+ return existing;
235
+ const normalize = compile(type);
236
+ compiled.set(type, normalize);
237
+ return normalize;
238
+ };
239
+ const compile = (type) => {
240
+ if (type === "int" || type === "uint") {
241
+ return (value) => Predicate.isNumber(value) && Number.isInteger(value) ? BigInt(value) : value;
242
+ }
243
+ if (type.startsWith("list<") && type.endsWith(">")) {
244
+ const normalizeItem = normalizerOf(decodeTypeReference(type.slice(5, -1)));
245
+ if (normalizeItem === unchanged)
246
+ return unchanged;
247
+ return (value) => (Array.isArray(value) ? value.map(normalizeItem) : value);
248
+ }
249
+ const objectType = objectTypes.get(type);
250
+ if (objectType === undefined)
251
+ return unchanged;
252
+ const fields = objectType.fields.flatMap(({ name, type: fieldType }) => {
253
+ const normalize = normalizerOf(fieldType);
254
+ return normalize === unchanged ? [] : [[name, normalize]];
255
+ });
256
+ const nullable = objectType.fields.filter((field) => field.nullable).map(({ name }) => name);
257
+ if (fields.length === 0 && nullable.length === 0)
258
+ return unchanged;
259
+ return (value) => {
260
+ if (!isJsonObject(value))
261
+ return value;
262
+ const normalized = { ...value };
263
+ for (const [name, normalize] of fields) {
264
+ const fieldValue = value[name];
265
+ if (fieldValue !== undefined && Object.hasOwn(value, name)) {
266
+ setField(normalized, name, normalize(fieldValue));
267
+ }
268
+ }
269
+ for (const name of nullable) {
270
+ if (!Object.hasOwn(value, name))
271
+ setField(normalized, name, null);
272
+ }
273
+ return normalized;
274
+ };
275
+ };
276
+ const variables = new Map(descriptor.variables.map((variable) => [variable.name, normalizerOf(variable.type)]));
277
+ return (context) => {
278
+ const normalized = { ...context };
279
+ for (const [name, normalize] of variables) {
280
+ const value = context[name];
281
+ if (value !== undefined && Object.hasOwn(context, name)) {
282
+ setField(normalized, name, normalize(value));
283
+ }
284
+ }
285
+ return normalized;
286
+ };
287
+ };
288
+ /** The maximum number of cached check results, and of parse results, per environment. */
289
+ const KEPT_EXPRESSIONS = 256;
290
+ /** Stores `value` under `key` and returns it, evicting the oldest entry if the map is full. */
291
+ const keep = (kept, key, value) => {
292
+ if (kept.size >= KEPT_EXPRESSIONS) {
293
+ const oldest = kept.keys().next();
294
+ if (oldest.done !== true)
295
+ kept.delete(oldest.value);
208
296
  }
297
+ kept.set(key, value);
209
298
  return value;
210
299
  };
211
- const normalizeContext = (context, descriptor) => {
212
- const objectTypes = new Map(descriptor.types.map((type) => [type.name, type]));
213
- return Object.fromEntries(Object.entries(context).map(([key, value]) => {
214
- const variable = descriptor.variables.find(({ name }) => name === key);
215
- return [
216
- key,
217
- variable === undefined ? value : normalizeValue(value, variable.type, objectTypes),
218
- ];
219
- }));
300
+ /**
301
+ * Creates a cache of cel-js environments, check results, and parse results, keyed by descriptor
302
+ * in a `WeakMap` (#464). Doesn't cache a build or parse that throws, and keeps the
303
+ * {@link KEPT_EXPRESSIONS} newest entries per cache. A cached parse result retains the last
304
+ * evaluated context until the next evaluation.
305
+ */
306
+ const celRuntimes = () => {
307
+ const runtimes = new WeakMap();
308
+ const runtimeOf = (descriptor) => {
309
+ const existing = runtimes.get(descriptor);
310
+ if (existing !== undefined)
311
+ return existing;
312
+ const runtime = {
313
+ normalize: contextNormalizer(descriptor),
314
+ check: Option.none(),
315
+ evaluate: Option.none(),
316
+ checked: new Map(),
317
+ parsed: new Map(),
318
+ };
319
+ runtimes.set(descriptor, runtime);
320
+ return runtime;
321
+ };
322
+ const environmentOf = (runtime, descriptor, purpose) => Option.getOrElse(runtime[purpose], () => {
323
+ const environment = makeEnvironment(descriptor, purpose);
324
+ runtime[purpose] = Option.some(environment);
325
+ return environment;
326
+ });
327
+ return {
328
+ check: (descriptor, source) => {
329
+ const runtime = runtimeOf(descriptor);
330
+ return (runtime.checked.get(source) ??
331
+ keep(runtime.checked, source, environmentOf(runtime, descriptor, "check").check(source)));
332
+ },
333
+ evaluate: (descriptor, source, context) => {
334
+ const runtime = runtimeOf(descriptor);
335
+ const parsed = runtime.parsed.get(source) ??
336
+ keep(runtime.parsed, source, environmentOf(runtime, descriptor, "evaluate").parse(source));
337
+ // SAFETY: CEL returns values of the context's types, and callers decode the result type.
338
+ return parsed(runtime.normalize(context));
339
+ },
340
+ };
220
341
  };
221
- const checkExpected = (source, environment, accepts, expected) => Effect.gen(function* () {
342
+ const checkExpected = (runtimes, source, environment, accepts, expected) => Effect.gen(function* () {
222
343
  const result = yield* Effect.try({
223
- try: () => makeEnvironment(environment).check(source),
344
+ try: () => runtimes.check(environment, source),
224
345
  catch: (cause) => new ExpressionCheckError({
225
346
  source,
226
347
  code: "check_failed",
@@ -240,11 +361,8 @@ const checkExpected = (source, environment, accepts, expected) => Effect.gen(fun
240
361
  });
241
362
  }
242
363
  });
243
- const evaluateRaw = (source, environment, context) => Effect.try({
244
- try: () =>
245
- // SAFETY: CEL evaluates to the same value vocabulary the context is built
246
- // from, and every caller decodes the expected result type before use.
247
- makeEnvironment(environment).evaluate(source, normalizeContext(context, environment)),
364
+ const evaluated = (runtimes, source, environment, context) => Result.try({
365
+ try: () => runtimes.evaluate(environment, source, context),
248
366
  catch: (cause) => new ExpressionEvaluationError({
249
367
  source,
250
368
  message: messageFromCause(cause, "CEL evaluation failed"),
@@ -254,26 +372,55 @@ const unexpectedResult = (source, expected) => () => new ExpressionEvaluationErr
254
372
  source,
255
373
  message: `CEL evaluation returned a value that is not ${expected}`,
256
374
  });
257
- const checkBoolean = Effect.fn("ExpressionEngine.checkBoolean")((source, environment) => checkExpected(source, environment, (resultType) => resultType === "bool", "bool"));
258
- const checkScalar = Effect.fn("ExpressionEngine.checkScalar")((source, environment) => checkExpected(source, environment, (resultType) => acceptedScalarTypes.has(resultType), "a scalar value"));
259
- const decodeBoolean = Schema.decodeUnknownEffect(Schema.Boolean);
375
+ const isBooleanType = (resultType) => resultType === "bool";
260
376
  const decodeScalar = Schema.decodeUnknownEffect(Scalar);
261
- const evaluateBoolean = Effect.fn("ExpressionEngine.evaluateBoolean")(function* (source, environment, context) {
262
- yield* checkBoolean(source, environment);
263
- const value = yield* evaluateRaw(source, environment, context);
264
- return yield* decodeBoolean(value).pipe(Effect.mapError(unexpectedResult(source, "a boolean")));
265
- });
266
- const evaluateScalar = Effect.fn("ExpressionEngine.evaluateScalar")(function* (source, environment, context) {
267
- yield* checkScalar(source, environment);
268
- const value = yield* evaluateRaw(source, environment, context);
269
- return yield* decodeScalar(value).pipe(Effect.mapError(unexpectedResult(source, "a scalar value")));
270
- });
271
- /** The ExpressionEngine implementation on @marcbachmann/cel-js. */
272
- export const MarcbachmannCelLayer = Layer.succeed(ExpressionEngine, {
273
- relatedStringLiterals,
274
- checkBoolean,
275
- checkScalar,
276
- evaluateBoolean,
277
- evaluateScalar,
278
- });
377
+ const makeExpressionEngine = () => {
378
+ const runtimes = celRuntimes();
379
+ const checkBoolean = Effect.fn("ExpressionEngine.checkBoolean")((source, environment) => checkExpected(runtimes, source, environment, isBooleanType, "bool"));
380
+ const checkScalar = Effect.fn("ExpressionEngine.checkScalar")((source, environment) => checkExpected(runtimes, source, environment, (resultType) => acceptedScalarTypes.has(resultType), "a scalar value"));
381
+ /** Evaluates an already checked condition on `context`. Fails if the result isn't a boolean. */
382
+ const booleanOn = (source, environment, context) => Result.flatMap(evaluated(runtimes, source, environment, context), (value) => Predicate.isBoolean(value)
383
+ ? Result.succeed(value)
384
+ : Result.fail(unexpectedResult(source, "a boolean")()));
385
+ const evaluateBoolean = Effect.fn("ExpressionEngine.evaluateBoolean")(function* (source, environment, context) {
386
+ yield* checkBoolean(source, environment);
387
+ return yield* Effect.fromResult(booleanOn(source, environment, context));
388
+ });
389
+ // One span and one check for all contexts; per-context Effects cost several times more (#464).
390
+ const evaluateBooleanEach = Effect.fn("ExpressionEngine.evaluateBooleanEach")(function* (source, environment, contexts) {
391
+ yield* Effect.annotateCurrentSpan({ contexts: contexts.length });
392
+ yield* checkBoolean(source, environment);
393
+ return contexts.map((context) => booleanOn(source, environment, context));
394
+ });
395
+ const evaluateScalar = Effect.fn("ExpressionEngine.evaluateScalar")(function* (source, environment, context) {
396
+ yield* checkScalar(source, environment);
397
+ const value = yield* Effect.fromResult(evaluated(runtimes, source, environment, context));
398
+ return yield* decodeScalar(value).pipe(Effect.mapError(unexpectedResult(source, "a scalar value")));
399
+ });
400
+ return ExpressionEngine.of({
401
+ relatedStringLiterals,
402
+ checkBoolean,
403
+ checkScalar,
404
+ evaluateBoolean,
405
+ evaluateBooleanEach,
406
+ evaluateScalar,
407
+ });
408
+ };
409
+ /**
410
+ * Provides {@link ExpressionEngine} with `@marcbachmann/cel-js` 8.0.0
411
+ * ([ADR 0004](../../../docs/adr/0004-loop-files-markdown-cel-frontmatter.md)).
412
+ *
413
+ * Expressions can use CEL optional values, such as `item.?milestone.?title.orValue("none")`. A
414
+ * nullable field that holds `null` counts as present, so `item.?milestone` holds `null` and
415
+ * `item.?milestone.?title` is empty.
416
+ *
417
+ * Before evaluation, converts JSON integers to `bigint` wherever the {@link Environment}
418
+ * declares `int`, at any depth, and sets absent nullable fields to `null`. Values inside a
419
+ * `map<K,V>` aren't converted, so declare integer map values as `double`.
420
+ *
421
+ * `uint` isn't supported in `context`; declare such values as `int`. An expression that reads a
422
+ * non-nullable `uint` value type-checks but fails evaluation. On a nullable field, comparing with a
423
+ * `uint` literal works but `uint` arithmetic fails. A `uint` result fails `evaluateScalar`.
424
+ */
425
+ export const MarcbachmannCelLayer = Layer.sync(ExpressionEngine)(makeExpressionEngine);
279
426
  //# sourceMappingURL=marcbachmann-cel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marcbachmann-cel.js","sourceRoot":"","sources":["../src/marcbachmann-cel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marcbachmann-cel.js","sourceRoot":"","sources":["../src/marcbachmann-cel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@usine/expression",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "CEL expression seam for usine: check and evaluate the selection expressions loop files use.",
5
- "license": "MIT",
5
+ "license": "AGPL-3.0-only",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/basaltbytes/usine.git",
9
9
  "directory": "packages/expression"
10
10
  },
11
11
  "files": [
12
- "dist"
12
+ "dist",
13
+ "!dist/tsconfig.tsbuildinfo"
13
14
  ],
14
15
  "type": "module",
15
16
  "sideEffects": false,
@@ -30,14 +31,14 @@
30
31
  "@marcbachmann/cel-js": "8.0.0"
31
32
  },
32
33
  "devDependencies": {
33
- "@effect/vitest": "4.0.0-rc.111",
34
- "effect": "4.0.0-rc.111",
34
+ "@effect/vitest": "4.0.6",
35
+ "effect": "4.0.6",
35
36
  "typescript": "7.0.2",
36
- "vitest": "4.1.11",
37
+ "vitest": "5.0.5",
37
38
  "@usine/tsconfig": "0.0.0"
38
39
  },
39
40
  "peerDependencies": {
40
- "effect": "4.0.0-rc.111"
41
+ "effect": "4.0.6"
41
42
  },
42
43
  "engines": {
43
44
  "node": ">=22"