@rytass/bpm-core-nestjs-module 0.19.0 → 0.20.1

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.
Files changed (151) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/package.json +3 -2
  3. package/src/index.d.ts +1 -0
  4. package/src/index.js +1 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/bpm/bpm-root-options.d.ts +13 -0
  7. package/src/lib/bpm/bpm-root-options.js.map +1 -1
  8. package/src/lib/bpm/bpm-root.module.d.ts +12 -0
  9. package/src/lib/bpm/bpm-root.module.js +5 -0
  10. package/src/lib/bpm/bpm-root.module.js.map +1 -1
  11. package/src/lib/condition/adapters/cel-legacy.adapter.d.ts +62 -0
  12. package/src/lib/condition/adapters/cel-legacy.adapter.js +141 -0
  13. package/src/lib/condition/adapters/cel-legacy.adapter.js.map +1 -0
  14. package/src/lib/condition/adapters/cel-v2.adapter.d.ts +76 -0
  15. package/src/lib/condition/adapters/cel-v2.adapter.js +371 -0
  16. package/src/lib/condition/adapters/cel-v2.adapter.js.map +1 -0
  17. package/src/lib/condition/condition.service.d.ts +90 -5
  18. package/src/lib/condition/condition.service.js +287 -71
  19. package/src/lib/condition/condition.service.js.map +1 -1
  20. package/src/lib/condition/expression-ast.d.ts +176 -0
  21. package/src/lib/condition/expression-ast.js +1254 -0
  22. package/src/lib/condition/expression-ast.js.map +1 -0
  23. package/src/lib/condition/expression-budget.d.ts +44 -0
  24. package/src/lib/condition/expression-budget.js +61 -0
  25. package/src/lib/condition/expression-budget.js.map +1 -0
  26. package/src/lib/condition/expression-dialect.d.ts +29 -0
  27. package/src/lib/condition/expression-dialect.js +44 -0
  28. package/src/lib/condition/expression-dialect.js.map +1 -0
  29. package/src/lib/condition/expression-differential.corpus.d.ts +34 -0
  30. package/src/lib/condition/expression-differential.corpus.js +995 -0
  31. package/src/lib/condition/expression-differential.corpus.js.map +1 -0
  32. package/src/lib/condition/expression-differential.d.ts +33 -0
  33. package/src/lib/condition/expression-differential.js +48 -0
  34. package/src/lib/condition/expression-differential.js.map +1 -0
  35. package/src/lib/condition/expression-engine-failure.d.ts +15 -0
  36. package/src/lib/condition/expression-engine-failure.js +22 -0
  37. package/src/lib/condition/expression-engine-failure.js.map +1 -0
  38. package/src/lib/condition/expression-errors.d.ts +40 -0
  39. package/src/lib/condition/expression-errors.js +121 -0
  40. package/src/lib/condition/expression-errors.js.map +1 -0
  41. package/src/lib/condition/expression-function-invocation.d.ts +50 -0
  42. package/src/lib/condition/expression-function-invocation.js +290 -0
  43. package/src/lib/condition/expression-function-invocation.js.map +1 -0
  44. package/src/lib/condition/expression-result.walker.d.ts +18 -0
  45. package/src/lib/condition/expression-result.walker.js +152 -0
  46. package/src/lib/condition/expression-result.walker.js.map +1 -0
  47. package/src/lib/condition/expression-runtime.d.ts +70 -0
  48. package/src/lib/condition/expression-runtime.js +134 -0
  49. package/src/lib/condition/expression-runtime.js.map +1 -0
  50. package/src/lib/condition/index.d.ts +4 -0
  51. package/src/lib/condition/index.js +8 -0
  52. package/src/lib/condition/index.js.map +1 -1
  53. package/src/lib/delegation/delegation-rule.entity.d.ts +7 -0
  54. package/src/lib/delegation/delegation-rule.entity.js +10 -0
  55. package/src/lib/delegation/delegation-rule.entity.js.map +1 -1
  56. package/src/lib/delegation/delegation.service.d.ts +7 -1
  57. package/src/lib/delegation/delegation.service.js +22 -5
  58. package/src/lib/delegation/delegation.service.js.map +1 -1
  59. package/src/lib/delegation/dto/delegation-rule.input.d.ts +2 -0
  60. package/src/lib/delegation/dto/delegation-rule.input.js +10 -0
  61. package/src/lib/delegation/dto/delegation-rule.input.js.map +1 -1
  62. package/src/lib/expression-function/expression-function.built-ins.d.ts +9 -0
  63. package/src/lib/expression-function/expression-function.built-ins.js +117 -0
  64. package/src/lib/expression-function/expression-function.built-ins.js.map +1 -0
  65. package/src/lib/expression-function/expression-function.module.d.ts +19 -0
  66. package/src/lib/expression-function/expression-function.module.js +34 -0
  67. package/src/lib/expression-function/expression-function.module.js.map +1 -0
  68. package/src/lib/expression-function/expression-function.provider.d.ts +17 -0
  69. package/src/lib/expression-function/expression-function.provider.js +39 -0
  70. package/src/lib/expression-function/expression-function.provider.js.map +1 -0
  71. package/src/lib/expression-function/expression-function.registry.d.ts +36 -0
  72. package/src/lib/expression-function/expression-function.registry.js +231 -0
  73. package/src/lib/expression-function/expression-function.registry.js.map +1 -0
  74. package/src/lib/expression-function/expression-function.types.d.ts +30 -0
  75. package/src/lib/expression-function/expression-function.types.js +8 -0
  76. package/src/lib/expression-function/expression-function.types.js.map +1 -0
  77. package/src/lib/expression-function/index.d.ts +5 -0
  78. package/src/lib/expression-function/index.js +9 -0
  79. package/src/lib/expression-function/index.js.map +1 -0
  80. package/src/lib/form/form-schema.validator.js +53 -6
  81. package/src/lib/form/form-schema.validator.js.map +1 -1
  82. package/src/lib/form-data-source/form-data-source-value-resolver.service.d.ts +12 -1
  83. package/src/lib/form-data-source/form-data-source-value-resolver.service.js +45 -26
  84. package/src/lib/form-data-source/form-data-source-value-resolver.service.js.map +1 -1
  85. package/src/lib/form-data-source/form-data-source.expression.d.ts +95 -0
  86. package/src/lib/form-data-source/form-data-source.expression.js +267 -0
  87. package/src/lib/form-data-source/form-data-source.expression.js.map +1 -0
  88. package/src/lib/form-data-source/form-data-source.module.js +4 -0
  89. package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
  90. package/src/lib/form-data-source/form-data-source.service.d.ts +22 -3
  91. package/src/lib/form-data-source/form-data-source.service.js +78 -18
  92. package/src/lib/form-data-source/form-data-source.service.js.map +1 -1
  93. package/src/lib/form-data-source/form-data-source.validation.d.ts +47 -4
  94. package/src/lib/form-data-source/form-data-source.validation.js +151 -23
  95. package/src/lib/form-data-source/form-data-source.validation.js.map +1 -1
  96. package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.d.ts +22 -0
  97. package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.js +76 -0
  98. package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.js.map +1 -0
  99. package/src/lib/migrations/index.d.ts +1 -0
  100. package/src/lib/migrations/index.js +3 -0
  101. package/src/lib/migrations/index.js.map +1 -1
  102. package/src/lib/notification/notification.service.d.ts +1 -1
  103. package/src/lib/notification/notification.service.js +7 -3
  104. package/src/lib/notification/notification.service.js.map +1 -1
  105. package/src/lib/template/dto/expression-designer.dto.d.ts +107 -0
  106. package/src/lib/template/dto/expression-designer.dto.js +415 -0
  107. package/src/lib/template/dto/expression-designer.dto.js.map +1 -0
  108. package/src/lib/template/expression-designer.queries.d.ts +16 -0
  109. package/src/lib/template/expression-designer.queries.js +66 -0
  110. package/src/lib/template/expression-designer.queries.js.map +1 -0
  111. package/src/lib/template/expression-designer.service.d.ts +72 -0
  112. package/src/lib/template/expression-designer.service.js +543 -0
  113. package/src/lib/template/expression-designer.service.js.map +1 -0
  114. package/src/lib/template/index.d.ts +2 -0
  115. package/src/lib/template/index.js +2 -0
  116. package/src/lib/template/index.js.map +1 -1
  117. package/src/lib/template/template.module.js +4 -0
  118. package/src/lib/template/template.module.js.map +1 -1
  119. package/src/lib/template/template.service.d.ts +37 -1
  120. package/src/lib/template/template.service.js +317 -29
  121. package/src/lib/template/template.service.js.map +1 -1
  122. package/src/lib/template/workflow-definition.validator.d.ts +7 -0
  123. package/src/lib/template/workflow-definition.validator.js +26 -2
  124. package/src/lib/template/workflow-definition.validator.js.map +1 -1
  125. package/src/lib/workflow-engine/time-budget.d.ts +13 -0
  126. package/src/lib/workflow-engine/time-budget.js +58 -0
  127. package/src/lib/workflow-engine/time-budget.js.map +1 -0
  128. package/src/lib/workflow-engine/workflow-condition-evaluator.js +12 -12
  129. package/src/lib/workflow-engine/workflow-condition-evaluator.js.map +1 -1
  130. package/src/lib/workflow-engine/workflow-engine.service.d.ts +24 -0
  131. package/src/lib/workflow-engine/workflow-engine.service.js +311 -88
  132. package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
  133. package/src/lib/workflow-engine/workflow-form-value.d.ts +11 -0
  134. package/src/lib/workflow-engine/workflow-form-value.js +33 -0
  135. package/src/lib/workflow-engine/workflow-form-value.js.map +1 -0
  136. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +4 -0
  137. package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +1 -1
  138. package/src/lib/workflow-webhook/workflow-webhook-delivery.service.d.ts +3 -1
  139. package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js +11 -2
  140. package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js.map +1 -1
  141. package/src/lib/workflow-webhook/workflow-webhook-enqueue.d.ts +8 -1
  142. package/src/lib/workflow-webhook/workflow-webhook-enqueue.js +70 -27
  143. package/src/lib/workflow-webhook/workflow-webhook-enqueue.js.map +1 -1
  144. package/src/lib/workflow-webhook/workflow-webhook-expression.d.ts +57 -0
  145. package/src/lib/workflow-webhook/workflow-webhook-expression.js +123 -0
  146. package/src/lib/workflow-webhook/workflow-webhook-expression.js.map +1 -0
  147. package/src/lib/workflow-webhook/workflow-webhook.module.js +4 -0
  148. package/src/lib/workflow-webhook/workflow-webhook.module.js.map +1 -1
  149. package/src/lib/workflow-webhook/workflow-webhook.validator.d.ts +7 -0
  150. package/src/lib/workflow-webhook/workflow-webhook.validator.js +29 -6
  151. package/src/lib/workflow-webhook/workflow-webhook.validator.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-differential.corpus.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/expression-differential.corpus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { ConditionService } from './condition.service';
2
+ import type { ExpressionDialect } from './expression-dialect';
3
+ /**
4
+ * Differential testing of the two dialects (Phase 23 P1, ADR 22 §3.3): the
5
+ * same expression and the same context, evaluated once per dialect, compared
6
+ * by result and by error code. Used by the real-engine suite to pin every
7
+ * known difference, and meant for the dialect upgrade check (P4), which must
8
+ * list the expressions whose behaviour would change.
9
+ */
10
+ export interface ExpressionDifferentialCase {
11
+ readonly expression: string;
12
+ /** Every root the expression may read; the same object goes to both dialects. */
13
+ readonly context: Readonly<Record<string, unknown>>;
14
+ }
15
+ /**
16
+ * One evaluation, reduced to what a caller can observe: `ok:` and the JSON of
17
+ * the normalized result, or `err:` and the error code. Never engine text, so
18
+ * the outcome is safe to log or show.
19
+ */
20
+ export type ExpressionOutcome = `ok:${string}` | `err:${string}`;
21
+ export interface ExpressionDifferentialResult {
22
+ readonly legacy: ExpressionOutcome;
23
+ readonly v2: ExpressionOutcome;
24
+ readonly same: boolean;
25
+ }
26
+ /**
27
+ * Evaluates one expression with one dialect (`undefined` passes none, which
28
+ * is how a definition saved before dialects existed is read), under a fresh
29
+ * budget of its own so one slow case cannot fail the cases after it. Only an `ExpressionRuntimeError`
30
+ * becomes an outcome; anything else is a bug in the runtime and is rethrown.
31
+ */
32
+ export declare const readExpressionOutcome: (service: ConditionService, testCase: ExpressionDifferentialCase, dialect: ExpressionDialect | undefined) => ExpressionOutcome;
33
+ export declare const runExpressionDifferential: (testCase: ExpressionDifferentialCase, service?: ConditionService) => ExpressionDifferentialResult;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runExpressionDifferential = exports.readExpressionOutcome = void 0;
4
+ const condition_service_1 = require("./condition.service");
5
+ const expression_budget_1 = require("./expression-budget");
6
+ const expression_errors_1 = require("./expression-errors");
7
+ /** JSON with object keys sorted, so two engines' maps compare by content. */
8
+ const stableStringify = (value) => {
9
+ if (Array.isArray(value)) {
10
+ return `[${value.map(stableStringify).join(',')}]`;
11
+ }
12
+ if (value !== null && typeof value === 'object') {
13
+ const record = value;
14
+ return `{${Object.keys(record)
15
+ .sort()
16
+ .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)
17
+ .join(',')}}`;
18
+ }
19
+ return JSON.stringify(value);
20
+ };
21
+ /**
22
+ * Evaluates one expression with one dialect (`undefined` passes none, which
23
+ * is how a definition saved before dialects existed is read), under a fresh
24
+ * budget of its own so one slow case cannot fail the cases after it. Only an `ExpressionRuntimeError`
25
+ * becomes an outcome; anything else is a bug in the runtime and is rethrown.
26
+ */
27
+ const readExpressionOutcome = (service, testCase, dialect) => {
28
+ try {
29
+ return `ok:${stableStringify(service.evaluateValue(testCase.expression, testCase.context, 'differential', {
30
+ budget: (0, expression_budget_1.createExpressionBudget)(),
31
+ ...(dialect === undefined ? {} : { dialect }),
32
+ }))}`;
33
+ }
34
+ catch (error) {
35
+ if (error instanceof expression_errors_1.ExpressionRuntimeError) {
36
+ return `err:${error.code}`;
37
+ }
38
+ throw error;
39
+ }
40
+ };
41
+ exports.readExpressionOutcome = readExpressionOutcome;
42
+ const runExpressionDifferential = (testCase, service = new condition_service_1.ConditionService()) => {
43
+ const legacy = (0, exports.readExpressionOutcome)(service, testCase, 'cel-legacy');
44
+ const v2 = (0, exports.readExpressionOutcome)(service, testCase, 'cel-v2');
45
+ return { legacy, same: legacy === v2, v2 };
46
+ };
47
+ exports.runExpressionDifferential = runExpressionDifferential;
48
+ //# sourceMappingURL=expression-differential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-differential.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/expression-differential.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AACvD,2DAA6D;AAE7D,2DAA6D;AA8B7D,6EAA6E;AAC7E,MAAM,eAAe,GAAG,CAAC,KAAgB,EAAU,EAAE;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACrD,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,KAA8C,CAAC;QAE9D,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,qBAAqB,GAAG,CACnC,OAAyB,EACzB,QAAoC,EACpC,OAAsC,EACnB,EAAE;IACrB,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAC1B,OAAO,CAAC,aAAa,CACnB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,OAAO,EAChB,cAAc,EACd;YACE,MAAM,EAAE,IAAA,0CAAsB,GAAE;YAChC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAC9C,CACF,CACF,EAAE,CAAC;IACN,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,0CAAsB,EAAE,CAAC;YAC5C,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAxBW,QAAA,qBAAqB,yBAwBhC;AAEK,MAAM,yBAAyB,GAAG,CACvC,QAAoC,EACpC,UAA4B,IAAI,oCAAgB,EAAE,EACpB,EAAE;IAChC,MAAM,MAAM,GAAG,IAAA,6BAAqB,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,EAAE,GAAG,IAAA,6BAAqB,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;AAC7C,CAAC,CAAC;AARW,QAAA,yBAAyB,6BAQpC"}
@@ -0,0 +1,15 @@
1
+ import type { ExpressionErrorCode } from './expression-errors';
2
+ /**
3
+ * A failure an engine adapter has already classified. Adapters for engines
4
+ * that report a machine-readable code (cel-v2) throw this instead of the
5
+ * engine's own error, so `toExpressionRuntimeError` never reads engine text.
6
+ *
7
+ * `keyNameCandidate` is only a candidate: it is shown nowhere until
8
+ * `toExpressionRuntimeError` has checked that the author wrote it.
9
+ * The message is fixed so nothing reaches a log by accident.
10
+ */
11
+ export declare class ExpressionEngineFailure extends Error {
12
+ readonly code: ExpressionErrorCode;
13
+ readonly keyNameCandidate: string | null;
14
+ constructor(code: ExpressionErrorCode, keyNameCandidate?: string | null);
15
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionEngineFailure = void 0;
4
+ /**
5
+ * A failure an engine adapter has already classified. Adapters for engines
6
+ * that report a machine-readable code (cel-v2) throw this instead of the
7
+ * engine's own error, so `toExpressionRuntimeError` never reads engine text.
8
+ *
9
+ * `keyNameCandidate` is only a candidate: it is shown nowhere until
10
+ * `toExpressionRuntimeError` has checked that the author wrote it.
11
+ * The message is fixed so nothing reaches a log by accident.
12
+ */
13
+ class ExpressionEngineFailure extends Error {
14
+ constructor(code, keyNameCandidate = null) {
15
+ super(code);
16
+ this.name = 'ExpressionEngineFailure';
17
+ this.code = code;
18
+ this.keyNameCandidate = keyNameCandidate;
19
+ }
20
+ }
21
+ exports.ExpressionEngineFailure = ExpressionEngineFailure;
22
+ //# sourceMappingURL=expression-engine-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-engine-failure.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/expression-engine-failure.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAIhD,YACE,IAAyB,EACzB,mBAAkC,IAAI;QAEtC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AAdD,0DAcC"}
@@ -0,0 +1,40 @@
1
+ import { BadRequestException } from '@nestjs/common';
2
+ /**
3
+ * The only runtime error codes an expression may surface (ADR 22 §3.2). They
4
+ * are part of the public contract: do not add to or rename them without an ADR
5
+ * update.
6
+ */
7
+ export declare const EXPRESSION_ERROR_CODES: readonly ["EXPRESSION_SYNTAX_ERROR", "EXPRESSION_MISSING_KEY", "EXPRESSION_TYPE_ERROR", "EXPRESSION_BUDGET_EXCEEDED", "EXPRESSION_INVALID_RESULT", "EXPRESSION_FUNCTION_FAILED"];
8
+ export type ExpressionErrorCode = (typeof EXPRESSION_ERROR_CODES)[number];
9
+ interface ExpressionRuntimeErrorOptions {
10
+ /** Short fixed phrase inserted between the label and the code. Never engine text. */
11
+ readonly detail?: string;
12
+ /**
13
+ * The missing root-level key, if the engine said so in a known shape. Only the
14
+ * dry run shows it; the case runtime never reads it.
15
+ */
16
+ readonly keyName?: string | null;
17
+ }
18
+ /**
19
+ * The one error an expression can raise to a caller. The message is only the
20
+ * label and the code, so neither the engine text nor a context value can reach
21
+ * an HTTP response, an activity log or a notification. It extends
22
+ * `BadRequestException` so the HTTP status stays 400, as before.
23
+ */
24
+ export declare class ExpressionRuntimeError extends BadRequestException {
25
+ readonly code: ExpressionErrorCode;
26
+ readonly label: string;
27
+ readonly keyName: string | null;
28
+ constructor(code: ExpressionErrorCode, label: string, options?: ExpressionRuntimeErrorOptions);
29
+ }
30
+ /**
31
+ * Converts anything an evaluation threw into an {@link ExpressionRuntimeError}.
32
+ * Unknown failures become `EXPRESSION_TYPE_ERROR`: the message is dropped rather
33
+ * than guessed at, so a new engine message can never leak.
34
+ *
35
+ * `keyName` is kept only when `expression` is given and writes that name as an
36
+ * identifier outside string literals; otherwise it is `null`. Without the
37
+ * expression there is no way to tell a key name from a context value.
38
+ */
39
+ export declare function toExpressionRuntimeError(error: unknown, label: string, expression?: string): ExpressionRuntimeError;
40
+ export {};
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpressionRuntimeError = exports.EXPRESSION_ERROR_CODES = void 0;
4
+ exports.toExpressionRuntimeError = toExpressionRuntimeError;
5
+ const common_1 = require("@nestjs/common");
6
+ const time_budget_1 = require("../workflow-engine/time-budget");
7
+ const expression_engine_failure_1 = require("./expression-engine-failure");
8
+ /**
9
+ * The only runtime error codes an expression may surface (ADR 22 §3.2). They
10
+ * are part of the public contract: do not add to or rename them without an ADR
11
+ * update.
12
+ */
13
+ exports.EXPRESSION_ERROR_CODES = [
14
+ 'EXPRESSION_SYNTAX_ERROR',
15
+ 'EXPRESSION_MISSING_KEY',
16
+ 'EXPRESSION_TYPE_ERROR',
17
+ 'EXPRESSION_BUDGET_EXCEEDED',
18
+ 'EXPRESSION_INVALID_RESULT',
19
+ 'EXPRESSION_FUNCTION_FAILED',
20
+ ];
21
+ /**
22
+ * The one error an expression can raise to a caller. The message is only the
23
+ * label and the code, so neither the engine text nor a context value can reach
24
+ * an HTTP response, an activity log or a notification. It extends
25
+ * `BadRequestException` so the HTTP status stays 400, as before.
26
+ */
27
+ class ExpressionRuntimeError extends common_1.BadRequestException {
28
+ constructor(code, label, options = {}) {
29
+ super(`${label}${options.detail ? ` ${options.detail}` : ''}: ${code}`);
30
+ this.code = code;
31
+ this.label = label;
32
+ this.keyName = options.keyName ?? null;
33
+ }
34
+ }
35
+ exports.ExpressionRuntimeError = ExpressionRuntimeError;
36
+ const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/u;
37
+ /*
38
+ * Allowlist of engine message shapes that identify a missing key. Matching is
39
+ * anchored at the start and only the captured name is kept. Anything that does
40
+ * not match is classified by the fallback below and no fragment of it is kept.
41
+ */
42
+ const MISSING_KEY_PATTERNS = [
43
+ /^Identifier "([^"]*)" not found in context: /u,
44
+ /^Cannot obtain "([^"]*)" from non-object context/u,
45
+ ];
46
+ /*
47
+ * CEL string and bytes literals, prefix included (`r`, `b`, `rb` ...) when it
48
+ * starts a token, so the tail of an identifier is never removed with it. Triple
49
+ * quotes come first so `"""a"""` is one literal, not three. Escapes are skipped
50
+ * even in raw strings: a raw literal ending in a backslash then swallows more of
51
+ * the source than it should, which only removes candidate names, never adds one.
52
+ */
53
+ const STRING_LITERAL_PATTERN = /(?:(?<![A-Za-z0-9_])[rRbB]{1,2})?(?:"""[\s\S]*?"""|'''[\s\S]*?'''|"(?:\\.|[^"\\\n])*"|'(?:\\.|[^'\\\n])*')/gu;
54
+ /*
55
+ * A `[...]` whose content, string literals removed, still holds an identifier:
56
+ * an index or list element read from the context.
57
+ */
58
+ const COMPUTED_INDEX_PATTERN = /\[[^\]]*[A-Za-z_]/u;
59
+ /**
60
+ * Whether `name` is written in the expression as an identifier, outside every
61
+ * string literal. The engine reports the key it failed to find, and with a
62
+ * computed index (`form.a[form.b]`) that key is a value read from the context,
63
+ * not something the author wrote. Only a name the author wrote may be shown.
64
+ * `name` has already passed {@link IDENTIFIER_PATTERN}, so it is safe in a regex.
65
+ */
66
+ const isWrittenIdentifier = (expression, name) => {
67
+ const source = expression.replace(STRING_LITERAL_PATTERN, ' ');
68
+ // A computed index (`form.rates[form.currency]`) can make the engine report a
69
+ // context value as the missing key, and that value may happen to equal a name
70
+ // the author wrote (`rates`). No name is shown for such an expression. An
71
+ // index that holds only literals (`form["a-b"]`, `["a", "b"]`, `[0]`) is
72
+ // written by the author and does not count.
73
+ if (COMPUTED_INDEX_PATTERN.test(source)) {
74
+ return false;
75
+ }
76
+ return new RegExp(`(?<![A-Za-z0-9_])${name}(?![A-Za-z0-9_])`, 'u').test(source);
77
+ };
78
+ /**
79
+ * Converts anything an evaluation threw into an {@link ExpressionRuntimeError}.
80
+ * Unknown failures become `EXPRESSION_TYPE_ERROR`: the message is dropped rather
81
+ * than guessed at, so a new engine message can never leak.
82
+ *
83
+ * `keyName` is kept only when `expression` is given and writes that name as an
84
+ * identifier outside string literals; otherwise it is `null`. Without the
85
+ * expression there is no way to tell a key name from a context value.
86
+ */
87
+ function toExpressionRuntimeError(error, label, expression) {
88
+ if (error instanceof ExpressionRuntimeError) {
89
+ return error;
90
+ }
91
+ if (error instanceof time_budget_1.TimeBudgetExceededError) {
92
+ return new ExpressionRuntimeError('EXPRESSION_BUDGET_EXCEEDED', label);
93
+ }
94
+ if (error instanceof expression_engine_failure_1.ExpressionEngineFailure) {
95
+ const name = error.keyNameCandidate ?? '';
96
+ return new ExpressionRuntimeError(error.code, label, {
97
+ keyName: error.code === 'EXPRESSION_MISSING_KEY' &&
98
+ expression !== undefined &&
99
+ IDENTIFIER_PATTERN.test(name) &&
100
+ isWrittenIdentifier(expression, name)
101
+ ? name
102
+ : null,
103
+ });
104
+ }
105
+ const message = error instanceof Error ? error.message : '';
106
+ for (const pattern of MISSING_KEY_PATTERNS) {
107
+ const match = pattern.exec(message);
108
+ if (match) {
109
+ const name = match[1] ?? '';
110
+ return new ExpressionRuntimeError('EXPRESSION_MISSING_KEY', label, {
111
+ keyName: expression !== undefined &&
112
+ IDENTIFIER_PATTERN.test(name) &&
113
+ isWrittenIdentifier(expression, name)
114
+ ? name
115
+ : null,
116
+ });
117
+ }
118
+ }
119
+ return new ExpressionRuntimeError('EXPRESSION_TYPE_ERROR', label);
120
+ }
121
+ //# sourceMappingURL=expression-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression-errors.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/condition/expression-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { BPMExpressionFunction, BPMExpressionFunctionRegistry } from '../expression-function/expression-function.types';
2
+ import type { ExpressionDialect } from './expression-dialect';
3
+ /**
4
+ * Runs one engine evaluation and fails it with `EXPRESSION_FUNCTION_FAILED`
5
+ * when any function it called failed, even if the engine absorbed that error.
6
+ */
7
+ export declare const runWithExpressionFunctionFrame: <TResult>(work: () => TResult) => TResult;
8
+ /**
9
+ * Wraps a registered function for one dialect's engine. The wrapper is what
10
+ * the engine calls; the handler only ever sees checked, frozen arguments.
11
+ */
12
+ export declare const createExpressionFunctionInvoker: (fn: BPMExpressionFunction, dialect: ExpressionDialect) => (...rawArgs: readonly unknown[]) => unknown;
13
+ /** The functions of one registry, read once. */
14
+ export interface ExpressionFunctionTable {
15
+ readonly functions: readonly BPMExpressionFunction[];
16
+ readonly names: ReadonlySet<string>;
17
+ }
18
+ /**
19
+ * Reads every function a registry lists, through `get`, once per registry.
20
+ *
21
+ * The registry is host code (a host may provide its own under
22
+ * `BPM_EXPRESSION_FUNCTION_REGISTRY`). If `list` or `get` throws, or answers
23
+ * out of shape — not a list, a name that is not a function name or is listed
24
+ * twice, `null` for a listed name, an object without a handler or with an
25
+ * unknown type — the evaluation fails with `EXPRESSION_FUNCTION_FAILED`. The
26
+ * host's message is never kept: only a fixed reason is logged. A failure is
27
+ * not cached, so the next evaluation asks the registry again.
28
+ */
29
+ export declare const readExpressionFunctionTable: (registry: BPMExpressionFunctionRegistry) => ExpressionFunctionTable;
30
+ /**
31
+ * Whether a called name is one a registry decides: shaped like a host function
32
+ * (`…_vN`) or one of the nine built-ins. The engine's own functions (`size`,
33
+ * `int`, `matches`, …) never are, and neither is any other unknown name, which
34
+ * keeps the engine's own error (`EXPRESSION_TYPE_ERROR`) at evaluation and is
35
+ * refused outright by the publish lint (docs/24 §2.1, 2026-11-07).
36
+ *
37
+ * The publish lint, the rollback check and {@link callsUnavailableFunction}
38
+ * all read this one rule.
39
+ */
40
+ export declare const isRegistryFunctionName: (name: string) => boolean;
41
+ /**
42
+ * Whether an expression calls a function the registry does not have — a host
43
+ * function withdrawn after the version was published, or a built-in a custom
44
+ * registry left out. Only names {@link isRegistryFunctionName} accepts count:
45
+ * any other unknown name keeps the engine's own error, as before functions
46
+ * existed. The caller fails the evaluation with `EXPRESSION_FUNCTION_FAILED`
47
+ * before the engine runs, so the outcome does not depend on which branch the
48
+ * engine would have reached.
49
+ */
50
+ export declare const callsUnavailableFunction: (calledNames: readonly string[], table: ExpressionFunctionTable) => boolean;