@kici-dev/engine 0.0.0 → 0.1.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 (129) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +1 -6
  3. package/dist/audit/access-log-policy.d.ts +97 -0
  4. package/dist/audit/access-log-policy.js +195 -0
  5. package/dist/audit/activity.d.ts +156 -0
  6. package/dist/audit/activity.js +175 -0
  7. package/dist/audit/retention-policy.d.ts +157 -0
  8. package/dist/audit/retention-policy.js +364 -0
  9. package/dist/bundler/index.d.ts +3 -0
  10. package/dist/bundler/index.js +3 -0
  11. package/dist/bundler/rolldown-config.d.ts +41 -0
  12. package/dist/bundler/rolldown-config.js +40 -0
  13. package/dist/chunk-gOLHoazu.js +4 -0
  14. package/dist/env/environment-allowlist.d.ts +45 -0
  15. package/dist/env/environment-allowlist.js +69 -0
  16. package/dist/environment/index.d.ts +3 -0
  17. package/dist/environment/index.js +3 -0
  18. package/dist/environment/scope-resolver.d.ts +35 -0
  19. package/dist/environment/scope-resolver.js +77 -0
  20. package/dist/environment/types.d.ts +98 -0
  21. package/dist/environment/types.js +2 -0
  22. package/dist/index.d.ts +54 -0
  23. package/dist/index.js +45 -0
  24. package/dist/labels.d.ts +106 -0
  25. package/dist/labels.js +162 -0
  26. package/dist/metrics/metric-catalog.generated.d.ts +400 -0
  27. package/dist/metrics/metric-catalog.generated.js +510 -0
  28. package/dist/protocol/dashboard-global-workflows.d.ts +9 -0
  29. package/dist/protocol/dashboard-global-workflows.js +3 -0
  30. package/dist/protocol/event-log-payload.d.ts +16 -0
  31. package/dist/protocol/event-log-payload.js +21 -0
  32. package/dist/protocol/messages/access-log.d.ts +545 -0
  33. package/dist/protocol/messages/access-log.js +175 -0
  34. package/dist/protocol/messages/actor.d.ts +100 -0
  35. package/dist/protocol/messages/actor.js +139 -0
  36. package/dist/protocol/messages/auth.d.ts +25 -0
  37. package/dist/protocol/messages/auth.js +36 -0
  38. package/dist/protocol/messages/browser.d.ts +369 -0
  39. package/dist/protocol/messages/browser.js +225 -0
  40. package/dist/protocol/messages/capabilities.d.ts +46 -0
  41. package/dist/protocol/messages/capabilities.js +42 -0
  42. package/dist/protocol/messages/common.d.ts +53 -0
  43. package/dist/protocol/messages/common.js +55 -0
  44. package/dist/protocol/messages/dashboard-global-workflows.d.ts +166 -0
  45. package/dist/protocol/messages/dashboard-global-workflows.js +80 -0
  46. package/dist/protocol/messages/dashboard.d.ts +4068 -0
  47. package/dist/protocol/messages/dashboard.js +1237 -0
  48. package/dist/protocol/messages/event-log.d.ts +49 -0
  49. package/dist/protocol/messages/event-log.js +45 -0
  50. package/dist/protocol/messages/execution-status.d.ts +164 -0
  51. package/dist/protocol/messages/execution-status.js +166 -0
  52. package/dist/protocol/messages/join.d.ts +18 -0
  53. package/dist/protocol/messages/join.js +28 -0
  54. package/dist/protocol/messages/log-pull.d.ts +27 -0
  55. package/dist/protocol/messages/log-pull.js +36 -0
  56. package/dist/protocol/messages/observe.d.ts +75 -0
  57. package/dist/protocol/messages/observe.js +70 -0
  58. package/dist/protocol/messages/orchestrator-agent.d.ts +606 -0
  59. package/dist/protocol/messages/orchestrator-agent.js +481 -0
  60. package/dist/protocol/messages/peer.d.ts +795 -0
  61. package/dist/protocol/messages/peer.js +372 -0
  62. package/dist/protocol/messages/platform-orchestrator.d.ts +1888 -0
  63. package/dist/protocol/messages/platform-orchestrator.js +379 -0
  64. package/dist/protocol/messages/run-events.d.ts +155 -0
  65. package/dist/protocol/messages/run-events.js +115 -0
  66. package/dist/protocol/messages/saas-orchestrator.d.ts +2179 -0
  67. package/dist/protocol/messages/source-registration.d.ts +103 -0
  68. package/dist/protocol/messages/source-registration.js +109 -0
  69. package/dist/protocol/messages/test-run.d.ts +59 -0
  70. package/dist/protocol/messages/test-run.js +52 -0
  71. package/dist/protocol/version.d.ts +12 -0
  72. package/dist/protocol/version.js +17 -0
  73. package/dist/provider/changed-files-fetcher.d.ts +24 -0
  74. package/dist/provider/changed-files-fetcher.js +2 -0
  75. package/dist/provider/check-run-conclusion.d.ts +15 -0
  76. package/dist/provider/check-run-conclusion.js +19 -0
  77. package/dist/provider/check-status-poster.d.ts +15 -0
  78. package/dist/provider/check-status-poster.js +2 -0
  79. package/dist/provider/clone-token-provider.d.ts +58 -0
  80. package/dist/provider/clone-token-provider.js +2 -0
  81. package/dist/provider/contributor-resolver.d.ts +22 -0
  82. package/dist/provider/contributor-resolver.js +2 -0
  83. package/dist/provider/index.d.ts +23 -0
  84. package/dist/provider/index.js +3 -0
  85. package/dist/provider/lock-file-fetcher.d.ts +24 -0
  86. package/dist/provider/lock-file-fetcher.js +2 -0
  87. package/dist/provider/repo-url-builder.d.ts +35 -0
  88. package/dist/provider/repo-url-builder.js +2 -0
  89. package/dist/provider/types.d.ts +9 -0
  90. package/dist/provider/types.js +2 -0
  91. package/dist/provider/webhook-normalizer.d.ts +163 -0
  92. package/dist/provider/webhook-normalizer.js +2 -0
  93. package/dist/registration/registerable-trigger-type.d.ts +52 -0
  94. package/dist/registration/registerable-trigger-type.js +56 -0
  95. package/dist/scaler/resource-types.d.ts +90 -0
  96. package/dist/scaler/resource-types.js +99 -0
  97. package/dist/scaler/scaler-backend-type.d.ts +16 -0
  98. package/dist/scaler/scaler-backend-type.js +20 -0
  99. package/dist/secrets/index.d.ts +7 -0
  100. package/dist/secrets/index.js +2 -0
  101. package/dist/secrets/types.d.ts +138 -0
  102. package/dist/secrets/types.js +2 -0
  103. package/dist/state-machine/index.d.ts +2 -0
  104. package/dist/state-machine/index.js +3 -0
  105. package/dist/state-machine/machine.d.ts +34 -0
  106. package/dist/state-machine/machine.js +103 -0
  107. package/dist/state-machine/types.d.ts +34 -0
  108. package/dist/state-machine/types.js +15 -0
  109. package/dist/trigger/decision-trace.d.ts +41 -0
  110. package/dist/trigger/decision-trace.js +30 -0
  111. package/dist/trigger/jsonpath-matcher.d.ts +27 -0
  112. package/dist/trigger/jsonpath-matcher.js +92 -0
  113. package/dist/trigger/matcher.d.ts +29 -0
  114. package/dist/trigger/matcher.js +704 -0
  115. package/dist/trigger/trigger-event-type.d.ts +14 -0
  116. package/dist/trigger/trigger-event-type.js +66 -0
  117. package/dist/trigger/types.d.ts +524 -0
  118. package/dist/trigger/types.js +48 -0
  119. package/dist/webhook/signature.d.ts +15 -0
  120. package/dist/webhook/signature.js +32 -0
  121. package/dist/ws/close-codes.d.ts +28 -0
  122. package/dist/ws/close-codes.js +33 -0
  123. package/dist/ws/rate-limiter.d.ts +86 -0
  124. package/dist/ws/rate-limiter.js +136 -0
  125. package/dist/ws/ws-like.d.ts +12 -0
  126. package/dist/ws/ws-like.js +2 -0
  127. package/package.json +54 -6
  128. package/sbom.spdx.json +202 -0
  129. package/index.js +0 -3
@@ -0,0 +1,34 @@
1
+ import type { ExecutionState, ExecutionEvent } from './types.js';
2
+ /**
3
+ * Error thrown when an invalid state transition is attempted.
4
+ */
5
+ export declare class InvalidTransitionError extends Error {
6
+ readonly state: ExecutionState;
7
+ readonly event: ExecutionEvent;
8
+ constructor(state: ExecutionState, event: ExecutionEvent);
9
+ }
10
+ /**
11
+ * Attempt a state transition. Returns the new state or throws InvalidTransitionError.
12
+ *
13
+ * Pure function - no internal state.
14
+ */
15
+ export declare function transition(state: ExecutionState, event: ExecutionEvent): ExecutionState;
16
+ /**
17
+ * Check whether a transition is valid without throwing.
18
+ *
19
+ * Pure function - no internal state.
20
+ */
21
+ export declare function canTransition(state: ExecutionState, event: ExecutionEvent): boolean;
22
+ /**
23
+ * Check whether a state is terminal (no further transitions possible).
24
+ *
25
+ * Pure function - no internal state.
26
+ */
27
+ export declare function isTerminal(state: ExecutionState): boolean;
28
+ /**
29
+ * Get the list of valid events for a given state.
30
+ *
31
+ * Pure function - no internal state.
32
+ */
33
+ export declare function validEvents(state: ExecutionState): ExecutionEvent[];
34
+ //# sourceMappingURL=machine.d.ts.map
@@ -0,0 +1,103 @@
1
+ import "../chunk-gOLHoazu.js";
2
+ import { TERMINAL_STATES } from "./types.js";
3
+ //#region src/state-machine/machine.ts
4
+ /**
5
+ * Runtime transition table mapping each state to its valid event->nextState pairs.
6
+ * Terminal states have no entries (empty objects).
7
+ */
8
+ const TRANSITIONS = {
9
+ pending: {
10
+ ENQUEUE: "queued",
11
+ CANCEL: "cancelled",
12
+ SKIP: "skipped",
13
+ HOLD: "held",
14
+ WAIT: "waiting"
15
+ },
16
+ queued: {
17
+ START: "running",
18
+ FAIL: "failed",
19
+ CANCEL: "cancelled"
20
+ },
21
+ running: {
22
+ SUCCEED: "success",
23
+ FAIL: "failed",
24
+ CANCEL: "cancelled",
25
+ CANCEL_GRACEFUL: "cancelling",
26
+ RECOVER: "recovering"
27
+ },
28
+ recovering: {
29
+ START: "running",
30
+ FAIL: "failed",
31
+ CANCEL: "cancelled"
32
+ },
33
+ cancelling: {
34
+ CANCEL_FORCE: "cancelled",
35
+ COMPLETE: "cancelled",
36
+ FAIL: "failed"
37
+ },
38
+ held: {
39
+ APPROVE: "queued",
40
+ REJECT: "cancelled",
41
+ EXPIRE: "cancelled",
42
+ CANCEL: "cancelled"
43
+ },
44
+ waiting: {
45
+ TIMER_DONE: "queued",
46
+ CANCEL: "cancelled"
47
+ },
48
+ success: {},
49
+ failed: {},
50
+ cancelled: {},
51
+ skipped: {}
52
+ };
53
+ /**
54
+ * Error thrown when an invalid state transition is attempted.
55
+ */
56
+ var InvalidTransitionError = class extends Error {
57
+ state;
58
+ event;
59
+ constructor(state, event) {
60
+ super(`Invalid transition: cannot apply event '${event}' in state '${state}'`);
61
+ this.name = "InvalidTransitionError";
62
+ this.state = state;
63
+ this.event = event;
64
+ }
65
+ };
66
+ /**
67
+ * Attempt a state transition. Returns the new state or throws InvalidTransitionError.
68
+ *
69
+ * Pure function - no internal state.
70
+ */
71
+ function transition(state, event) {
72
+ const nextState = TRANSITIONS[state][event];
73
+ if (nextState === void 0) throw new InvalidTransitionError(state, event);
74
+ return nextState;
75
+ }
76
+ /**
77
+ * Check whether a transition is valid without throwing.
78
+ *
79
+ * Pure function - no internal state.
80
+ */
81
+ function canTransition(state, event) {
82
+ return TRANSITIONS[state][event] !== void 0;
83
+ }
84
+ /**
85
+ * Check whether a state is terminal (no further transitions possible).
86
+ *
87
+ * Pure function - no internal state.
88
+ */
89
+ function isTerminal(state) {
90
+ return TERMINAL_STATES.includes(state);
91
+ }
92
+ /**
93
+ * Get the list of valid events for a given state.
94
+ *
95
+ * Pure function - no internal state.
96
+ */
97
+ function validEvents(state) {
98
+ return Object.keys(TRANSITIONS[state]);
99
+ }
100
+ //#endregion
101
+ export { InvalidTransitionError, canTransition, isTerminal, transition, validEvents };
102
+
103
+ //# sourceMappingURL=machine.js.map
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Execution states for workflow, job, and step lifecycle tracking.
3
+ *
4
+ * State flow:
5
+ * pending -> queued -> running -> recovering -> running (reconnect)
6
+ * \ \ \-> failed (timeout)
7
+ * \ \ \-> cancelled
8
+ * \ \-> success
9
+ * \ \-> failed
10
+ * \ \-> cancelled (direct, no hooks)
11
+ * \ \-> cancelling (graceful, with hooks)
12
+ * \ \-> cancelled (CANCEL_FORCE or COMPLETE)
13
+ * \ \-> failed (hook failure)
14
+ * \-> failed
15
+ * \-> cancelled
16
+ * pending -> skipped
17
+ * pending -> cancelled
18
+ * pending -> held (protection: reviewer required)
19
+ * pending -> waiting (protection: wait timer)
20
+ * held -> queued (approved)
21
+ * held -> cancelled (rejected / expired)
22
+ * waiting -> queued (timer done)
23
+ * waiting -> cancelled
24
+ */
25
+ export type ExecutionState = 'pending' | 'queued' | 'running' | 'recovering' | 'cancelling' | 'held' | 'waiting' | 'success' | 'failed' | 'cancelled' | 'skipped';
26
+ /**
27
+ * Events that trigger state transitions.
28
+ */
29
+ export type ExecutionEvent = 'ENQUEUE' | 'START' | 'SUCCEED' | 'FAIL' | 'CANCEL' | 'CANCEL_GRACEFUL' | 'CANCEL_FORCE' | 'COMPLETE' | 'SKIP' | 'RECOVER' | 'HOLD' | 'APPROVE' | 'REJECT' | 'EXPIRE' | 'WAIT' | 'TIMER_DONE';
30
+ /**
31
+ * States from which no further transitions are possible.
32
+ */
33
+ export declare const TERMINAL_STATES: readonly ExecutionState[];
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,15 @@
1
+ import "../chunk-gOLHoazu.js";
2
+ //#region src/state-machine/types.ts
3
+ /**
4
+ * States from which no further transitions are possible.
5
+ */
6
+ const TERMINAL_STATES = [
7
+ "success",
8
+ "failed",
9
+ "cancelled",
10
+ "skipped"
11
+ ];
12
+ //#endregion
13
+ export { TERMINAL_STATES };
14
+
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Decision trace recording for debugging trigger matching.
3
+ * Records every check performed during trigger evaluation.
4
+ */
5
+ /**
6
+ * Individual trace entry for a single check.
7
+ */
8
+ export interface TraceEntry {
9
+ /** What was checked (e.g., "branch pattern", "path filter", "event type") */
10
+ check: string;
11
+ /** The pattern/condition that was evaluated */
12
+ pattern: string;
13
+ /** The value being tested against */
14
+ value: string;
15
+ /** Whether the check passed */
16
+ passed: boolean;
17
+ /** Optional explanation */
18
+ reason?: string;
19
+ }
20
+ /**
21
+ * Decision trace for a workflow's trigger evaluation.
22
+ */
23
+ export interface WorkflowDecision {
24
+ workflowName: string;
25
+ matched: boolean;
26
+ /** Which trigger matched (if any) */
27
+ matchedTrigger?: number;
28
+ /** All checks performed */
29
+ checks: TraceEntry[];
30
+ /** Summary reason */
31
+ summary: string;
32
+ }
33
+ /**
34
+ * Create a new trace entry.
35
+ */
36
+ export declare function createTraceEntry(check: string, pattern: string, value: string, passed: boolean, reason?: string): TraceEntry;
37
+ /**
38
+ * Create a workflow decision record.
39
+ */
40
+ export declare function createWorkflowDecision(workflowName: string, matched: boolean, checks: TraceEntry[], matchedTrigger?: number, summary?: string): WorkflowDecision;
41
+ //# sourceMappingURL=decision-trace.d.ts.map
@@ -0,0 +1,30 @@
1
+ import "../chunk-gOLHoazu.js";
2
+ //#region src/trigger/decision-trace.ts
3
+ /**
4
+ * Create a new trace entry.
5
+ */
6
+ function createTraceEntry(check, pattern, value, passed, reason) {
7
+ return {
8
+ check,
9
+ pattern,
10
+ value,
11
+ passed,
12
+ reason
13
+ };
14
+ }
15
+ /**
16
+ * Create a workflow decision record.
17
+ */
18
+ function createWorkflowDecision(workflowName, matched, checks, matchedTrigger, summary) {
19
+ return {
20
+ workflowName,
21
+ matched,
22
+ matchedTrigger,
23
+ checks,
24
+ summary: summary ?? (matched ? "Trigger conditions met" : "No matching trigger")
25
+ };
26
+ }
27
+ //#endregion
28
+ export { createTraceEntry, createWorkflowDecision };
29
+
30
+ //# sourceMappingURL=decision-trace.js.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Match all JSONPath expressions in `match` against `payload`.
3
+ *
4
+ * Each key in `match` is a JSONPath expression (e.g. `$.env`).
5
+ * Each value is the expected match: exact value, regex string (wrapped in /.../ or /..../flags),
6
+ * or array of acceptable values.
7
+ *
8
+ * ALL expressions must match for the overall result to be true.
9
+ * An empty `match` object matches everything.
10
+ *
11
+ * @param payload - The event payload to match against
12
+ * @param match - Map of JSONPath expressions to expected values
13
+ * @returns true if all expressions match
14
+ */
15
+ export declare function matchJsonPath(payload: Record<string, unknown>, match: Record<string, unknown>): boolean;
16
+ /**
17
+ * Negative JSONPath filter.
18
+ *
19
+ * Returns true if NONE of the `not` expressions match against `payload`.
20
+ * If `not` is undefined or empty, returns true (no negative filter = pass).
21
+ *
22
+ * @param payload - The event payload to match against
23
+ * @param not - Map of JSONPath expressions that should NOT match
24
+ * @returns true if none of the expressions match
25
+ */
26
+ export declare function matchJsonPathNot(payload: Record<string, unknown>, not: Record<string, unknown> | undefined): boolean;
27
+ //# sourceMappingURL=jsonpath-matcher.d.ts.map
@@ -0,0 +1,92 @@
1
+ import "../chunk-gOLHoazu.js";
2
+ import { JSONPath } from "jsonpath-plus";
3
+ //#region src/trigger/jsonpath-matcher.ts
4
+ /**
5
+ * JSONPath payload matching utility for trigger evaluation.
6
+ *
7
+ * Evaluates JSONPath expressions against webhook/event payloads for
8
+ * kici_event and generic_webhook trigger types.
9
+ *
10
+ * Uses jsonpath-plus for JSONPath evaluation.
11
+ */
12
+ /**
13
+ * Match all JSONPath expressions in `match` against `payload`.
14
+ *
15
+ * Each key in `match` is a JSONPath expression (e.g. `$.env`).
16
+ * Each value is the expected match: exact value, regex string (wrapped in /.../ or /..../flags),
17
+ * or array of acceptable values.
18
+ *
19
+ * ALL expressions must match for the overall result to be true.
20
+ * An empty `match` object matches everything.
21
+ *
22
+ * @param payload - The event payload to match against
23
+ * @param match - Map of JSONPath expressions to expected values
24
+ * @returns true if all expressions match
25
+ */
26
+ function matchJsonPath(payload, match) {
27
+ const entries = Object.entries(match);
28
+ if (entries.length === 0) return true;
29
+ for (const [path, expected] of entries) {
30
+ const results = JSONPath({
31
+ path,
32
+ json: payload,
33
+ wrap: true
34
+ });
35
+ if (results.length === 0) return false;
36
+ if (!matchValue(results, expected)) return false;
37
+ }
38
+ return true;
39
+ }
40
+ /**
41
+ * Negative JSONPath filter.
42
+ *
43
+ * Returns true if NONE of the `not` expressions match against `payload`.
44
+ * If `not` is undefined or empty, returns true (no negative filter = pass).
45
+ *
46
+ * @param payload - The event payload to match against
47
+ * @param not - Map of JSONPath expressions that should NOT match
48
+ * @returns true if none of the expressions match
49
+ */
50
+ function matchJsonPathNot(payload, not) {
51
+ if (!not) return true;
52
+ const entries = Object.entries(not);
53
+ if (entries.length === 0) return true;
54
+ for (const [path, expected] of entries) {
55
+ const results = JSONPath({
56
+ path,
57
+ json: payload,
58
+ wrap: true
59
+ });
60
+ if (results.length === 0) continue;
61
+ if (matchValue(results, expected)) return false;
62
+ }
63
+ return true;
64
+ }
65
+ /**
66
+ * Check if any element in JSONPath results matches the expected value.
67
+ *
68
+ * Supports:
69
+ * - Exact value comparison (primitives)
70
+ * - Array of acceptable values (any match = pass)
71
+ * - Regex string matching (for string results, wrapped in /pattern/ or /pattern/flags)
72
+ */
73
+ function matchValue(results, expected) {
74
+ if (Array.isArray(expected)) return results.some((r) => expected.some((e) => valueEquals(r, e)));
75
+ return results.some((r) => valueEquals(r, expected));
76
+ }
77
+ /**
78
+ * Compare a single result to an expected value.
79
+ * For string expected values, supports regex patterns wrapped in /.../ or /.../flags.
80
+ */
81
+ function valueEquals(result, expected) {
82
+ if (typeof expected === "string" && typeof result === "string") {
83
+ const regexMatch = /^\/(.+)\/([gimsuy]*)$/.exec(expected);
84
+ if (regexMatch) return new RegExp(regexMatch[1], regexMatch[2]).test(result);
85
+ return result === expected;
86
+ }
87
+ return result === expected;
88
+ }
89
+ //#endregion
90
+ export { matchJsonPath, matchJsonPathNot };
91
+
92
+ //# sourceMappingURL=jsonpath-matcher.js.map
@@ -0,0 +1,29 @@
1
+ import type { LockWorkflow, LockBranchPattern, SimulatedEvent } from './types.js';
2
+ import { type WorkflowDecision } from './decision-trace.js';
3
+ /**
4
+ * Match a branch pattern against a branch name.
5
+ */
6
+ export declare function matchBranchPattern(pattern: LockBranchPattern, branch: string): boolean;
7
+ /**
8
+ * Match path patterns against changed files.
9
+ * Patterns prefixed with ! are exclusions. Remaining patterns are inclusions.
10
+ * An all-negation array has implicit match-all semantics for non-excluded files.
11
+ */
12
+ export declare function matchPathPatterns(paths: readonly string[], changedFiles: string[]): boolean;
13
+ /**
14
+ * Match repo patterns against a source repository identifier.
15
+ * Patterns with ! prefix in the pattern string are exclusions.
16
+ * An all-negation array has implicit match-all semantics for non-excluded repos.
17
+ * Empty array = no filtering (matches all repos).
18
+ */
19
+ export declare function matchRepoPatterns(repos: readonly LockBranchPattern[], sourceRepo: string): boolean;
20
+ /**
21
+ * Match all triggers for a workflow against an event.
22
+ * Returns WorkflowDecision with full trace.
23
+ */
24
+ export declare function matchWorkflowTriggers(workflow: LockWorkflow, event: SimulatedEvent): WorkflowDecision;
25
+ /**
26
+ * Match all workflows against an event.
27
+ */
28
+ export declare function matchAllWorkflows(workflows: readonly LockWorkflow[], event: SimulatedEvent): WorkflowDecision[];
29
+ //# sourceMappingURL=matcher.d.ts.map