@almadar/core 10.31.0 → 10.32.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,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-07-21T09:54:57.379Z",
3
+ "exportedAt": "2026-07-23T14:32:35.644Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -3499,7 +3499,8 @@
3499
3499
  "types": [
3500
3500
  "string"
3501
3501
  ],
3502
- "description": "Event name to dispatch on search (schema metadata, wired by trait) This is metadata used by the trait generator, not by the component."
3502
+ "description": "Declarative search event emits UI:{event} via eventBus on query submit (alongside canonical UI:SEARCH)",
3503
+ "kind": "event"
3503
3504
  },
3504
3505
  "entity": {
3505
3506
  "types": [
@@ -3658,6 +3659,20 @@
3658
3659
  "inline-column-header"
3659
3660
  ],
3660
3661
  "default": "toolbar"
3662
+ },
3663
+ "event": {
3664
+ "types": [
3665
+ "string"
3666
+ ],
3667
+ "description": "Declarative filter event — emits UI:{event} via eventBus on filter change (alongside canonical UI:FILTER)",
3668
+ "kind": "event"
3669
+ },
3670
+ "clearEvent": {
3671
+ "types": [
3672
+ "string"
3673
+ ],
3674
+ "description": "Declarative clear event — emits UI:{clearEvent} via eventBus on clear-all (alongside canonical UI:CLEAR_FILTERS)",
3675
+ "kind": "event"
3661
3676
  }
3662
3677
  }
3663
3678
  },
@@ -5721,9 +5736,9 @@
5721
5736
  },
5722
5737
  "title": {
5723
5738
  "types": [
5724
- "string"
5739
+ "node"
5725
5740
  ],
5726
- "description": "Drawer title"
5741
+ "description": "Drawer title (text or any node, e.g. a brand logo + name)."
5727
5742
  },
5728
5743
  "children": {
5729
5744
  "types": [
@@ -9733,8 +9748,9 @@
9733
9748
  "types": [
9734
9749
  "string"
9735
9750
  ],
9736
- "description": "Font weight override",
9751
+ "description": "Font weight override — `none` = no override, the variant's baked weight applies",
9737
9752
  "enumValues": [
9753
+ "none",
9738
9754
  "light",
9739
9755
  "normal",
9740
9756
  "medium",
@@ -9748,6 +9764,7 @@
9748
9764
  ],
9749
9765
  "description": "Font size override",
9750
9766
  "enumValues": [
9767
+ "none",
9751
9768
  "xs",
9752
9769
  "sm",
9753
9770
  "md",
@@ -15219,37 +15236,7 @@
15219
15236
  "types": [
15220
15237
  "string"
15221
15238
  ],
15222
- "description": "Programming language for syntax highlighting",
15223
- "enumValues": [
15224
- "text",
15225
- "json",
15226
- "javascript",
15227
- "js",
15228
- "typescript",
15229
- "ts",
15230
- "jsx",
15231
- "tsx",
15232
- "css",
15233
- "markdown",
15234
- "md",
15235
- "bash",
15236
- "shell",
15237
- "sh",
15238
- "yaml",
15239
- "yml",
15240
- "rust",
15241
- "python",
15242
- "py",
15243
- "sql",
15244
- "diff",
15245
- "toml",
15246
- "go",
15247
- "graphql",
15248
- "html",
15249
- "xml",
15250
- "orb",
15251
- "lolo"
15252
- ],
15239
+ "description": "Programming language for syntax highlighting (any Prism id; loaded on demand if not pre-registered)",
15253
15240
  "default": "text"
15254
15241
  },
15255
15242
  "showCopyButton": {
@@ -15450,6 +15437,58 @@
15450
15437
  "graphql",
15451
15438
  "html",
15452
15439
  "xml",
15440
+ "clojure",
15441
+ "clj",
15442
+ "edn",
15443
+ "haskell",
15444
+ "hs",
15445
+ "lisp",
15446
+ "scheme",
15447
+ "scala",
15448
+ "elixir",
15449
+ "ex",
15450
+ "exs",
15451
+ "erlang",
15452
+ "erl",
15453
+ "elm",
15454
+ "fsharp",
15455
+ "fs",
15456
+ "fsx",
15457
+ "ocaml",
15458
+ "ml",
15459
+ "java",
15460
+ "c",
15461
+ "cpp",
15462
+ "c++",
15463
+ "cc",
15464
+ "cxx",
15465
+ "hpp",
15466
+ "h",
15467
+ "csharp",
15468
+ "cs",
15469
+ "objectivec",
15470
+ "objc",
15471
+ "php",
15472
+ "ruby",
15473
+ "rb",
15474
+ "swift",
15475
+ "kotlin",
15476
+ "kt",
15477
+ "lua",
15478
+ "r",
15479
+ "dart",
15480
+ "julia",
15481
+ "fortran",
15482
+ "f90",
15483
+ "f95",
15484
+ "perl",
15485
+ "pl",
15486
+ "powershell",
15487
+ "ps1",
15488
+ "makefile",
15489
+ "make",
15490
+ "nginx",
15491
+ "ini",
15453
15492
  "orb",
15454
15493
  "lolo"
15455
15494
  ]
@@ -17101,6 +17140,11 @@
17101
17140
  "string"
17102
17141
  ]
17103
17142
  },
17143
+ "navigatesTo": {
17144
+ "types": [
17145
+ "string"
17146
+ ]
17147
+ },
17104
17148
  "icon": {
17105
17149
  "types": [
17106
17150
  "icon",
@@ -17261,7 +17305,7 @@
17261
17305
  "types": [
17262
17306
  "function"
17263
17307
  ],
17264
- "description": "Render prop for custom per-card content. When provided, `fields` and `itemActions` are ignored.",
17308
+ "description": "Render prop for custom per-card content. When provided, `fields` are ignored; `itemActions` render as a footer beneath the custom content.",
17265
17309
  "kind": "callback",
17266
17310
  "callbackArgs": [
17267
17311
  {
@@ -34016,22 +34060,6 @@
34016
34060
  "items": {
34017
34061
  "types": [
34018
34062
  "object"
34019
- ],
34020
- "properties": {
34021
- "type": {
34022
- "types": [
34023
- "unknown"
34024
- ]
34025
- },
34026
- "content": {
34027
- "types": [
34028
- "string"
34029
- ]
34030
- }
34031
- },
34032
- "required": [
34033
- "type",
34034
- "content"
34035
34063
  ]
34036
34064
  }
34037
34065
  },
@@ -34051,34 +34079,7 @@
34051
34079
  "types": [
34052
34080
  "object"
34053
34081
  ],
34054
- "description": "User progress for restoring activation/reflection state",
34055
- "properties": {
34056
- "activationResponse": {
34057
- "types": [
34058
- "string"
34059
- ]
34060
- },
34061
- "reflectionNotes": {
34062
- "types": [
34063
- "array"
34064
- ],
34065
- "items": {
34066
- "types": [
34067
- "string"
34068
- ]
34069
- }
34070
- },
34071
- "bloomAnswered": {
34072
- "types": [
34073
- "object"
34074
- ],
34075
- "mapValue": {
34076
- "types": [
34077
- "boolean"
34078
- ]
34079
- }
34080
- }
34081
- }
34082
+ "description": "User progress for restoring activation/reflection state"
34082
34083
  },
34083
34084
  "onRunCodeSimulation": {
34084
34085
  "types": [
@@ -34107,7 +34108,7 @@
34107
34108
  "callbackArgs": [
34108
34109
  {
34109
34110
  "name": "type",
34110
- "type": "string"
34111
+ "type": "object"
34111
34112
  },
34112
34113
  {
34113
34114
  "name": "description",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-07-21T09:54:57.379Z",
3
+ "exportedAt": "2026-07-23T14:32:35.644Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -3499,7 +3499,8 @@
3499
3499
  "types": [
3500
3500
  "string"
3501
3501
  ],
3502
- "description": "Event name to dispatch on search (schema metadata, wired by trait) This is metadata used by the trait generator, not by the component."
3502
+ "description": "Declarative search event emits UI:{event} via eventBus on query submit (alongside canonical UI:SEARCH)",
3503
+ "kind": "event"
3503
3504
  },
3504
3505
  "entity": {
3505
3506
  "types": [
@@ -3658,6 +3659,20 @@
3658
3659
  "inline-column-header"
3659
3660
  ],
3660
3661
  "default": "toolbar"
3662
+ },
3663
+ "event": {
3664
+ "types": [
3665
+ "string"
3666
+ ],
3667
+ "description": "Declarative filter event — emits UI:{event} via eventBus on filter change (alongside canonical UI:FILTER)",
3668
+ "kind": "event"
3669
+ },
3670
+ "clearEvent": {
3671
+ "types": [
3672
+ "string"
3673
+ ],
3674
+ "description": "Declarative clear event — emits UI:{clearEvent} via eventBus on clear-all (alongside canonical UI:CLEAR_FILTERS)",
3675
+ "kind": "event"
3661
3676
  }
3662
3677
  }
3663
3678
  },
@@ -5721,9 +5736,9 @@
5721
5736
  },
5722
5737
  "title": {
5723
5738
  "types": [
5724
- "string"
5739
+ "node"
5725
5740
  ],
5726
- "description": "Drawer title"
5741
+ "description": "Drawer title (text or any node, e.g. a brand logo + name)."
5727
5742
  },
5728
5743
  "children": {
5729
5744
  "types": [
@@ -9733,8 +9748,9 @@
9733
9748
  "types": [
9734
9749
  "string"
9735
9750
  ],
9736
- "description": "Font weight override",
9751
+ "description": "Font weight override — `none` = no override, the variant's baked weight applies",
9737
9752
  "enumValues": [
9753
+ "none",
9738
9754
  "light",
9739
9755
  "normal",
9740
9756
  "medium",
@@ -9748,6 +9764,7 @@
9748
9764
  ],
9749
9765
  "description": "Font size override",
9750
9766
  "enumValues": [
9767
+ "none",
9751
9768
  "xs",
9752
9769
  "sm",
9753
9770
  "md",
@@ -15219,37 +15236,7 @@
15219
15236
  "types": [
15220
15237
  "string"
15221
15238
  ],
15222
- "description": "Programming language for syntax highlighting",
15223
- "enumValues": [
15224
- "text",
15225
- "json",
15226
- "javascript",
15227
- "js",
15228
- "typescript",
15229
- "ts",
15230
- "jsx",
15231
- "tsx",
15232
- "css",
15233
- "markdown",
15234
- "md",
15235
- "bash",
15236
- "shell",
15237
- "sh",
15238
- "yaml",
15239
- "yml",
15240
- "rust",
15241
- "python",
15242
- "py",
15243
- "sql",
15244
- "diff",
15245
- "toml",
15246
- "go",
15247
- "graphql",
15248
- "html",
15249
- "xml",
15250
- "orb",
15251
- "lolo"
15252
- ],
15239
+ "description": "Programming language for syntax highlighting (any Prism id; loaded on demand if not pre-registered)",
15253
15240
  "default": "text"
15254
15241
  },
15255
15242
  "showCopyButton": {
@@ -15450,6 +15437,58 @@
15450
15437
  "graphql",
15451
15438
  "html",
15452
15439
  "xml",
15440
+ "clojure",
15441
+ "clj",
15442
+ "edn",
15443
+ "haskell",
15444
+ "hs",
15445
+ "lisp",
15446
+ "scheme",
15447
+ "scala",
15448
+ "elixir",
15449
+ "ex",
15450
+ "exs",
15451
+ "erlang",
15452
+ "erl",
15453
+ "elm",
15454
+ "fsharp",
15455
+ "fs",
15456
+ "fsx",
15457
+ "ocaml",
15458
+ "ml",
15459
+ "java",
15460
+ "c",
15461
+ "cpp",
15462
+ "c++",
15463
+ "cc",
15464
+ "cxx",
15465
+ "hpp",
15466
+ "h",
15467
+ "csharp",
15468
+ "cs",
15469
+ "objectivec",
15470
+ "objc",
15471
+ "php",
15472
+ "ruby",
15473
+ "rb",
15474
+ "swift",
15475
+ "kotlin",
15476
+ "kt",
15477
+ "lua",
15478
+ "r",
15479
+ "dart",
15480
+ "julia",
15481
+ "fortran",
15482
+ "f90",
15483
+ "f95",
15484
+ "perl",
15485
+ "pl",
15486
+ "powershell",
15487
+ "ps1",
15488
+ "makefile",
15489
+ "make",
15490
+ "nginx",
15491
+ "ini",
15453
15492
  "orb",
15454
15493
  "lolo"
15455
15494
  ]
@@ -17101,6 +17140,11 @@
17101
17140
  "string"
17102
17141
  ]
17103
17142
  },
17143
+ "navigatesTo": {
17144
+ "types": [
17145
+ "string"
17146
+ ]
17147
+ },
17104
17148
  "icon": {
17105
17149
  "types": [
17106
17150
  "icon",
@@ -17261,7 +17305,7 @@
17261
17305
  "types": [
17262
17306
  "function"
17263
17307
  ],
17264
- "description": "Render prop for custom per-card content. When provided, `fields` and `itemActions` are ignored.",
17308
+ "description": "Render prop for custom per-card content. When provided, `fields` are ignored; `itemActions` render as a footer beneath the custom content.",
17265
17309
  "kind": "callback",
17266
17310
  "callbackArgs": [
17267
17311
  {
@@ -34016,22 +34060,6 @@
34016
34060
  "items": {
34017
34061
  "types": [
34018
34062
  "object"
34019
- ],
34020
- "properties": {
34021
- "type": {
34022
- "types": [
34023
- "unknown"
34024
- ]
34025
- },
34026
- "content": {
34027
- "types": [
34028
- "string"
34029
- ]
34030
- }
34031
- },
34032
- "required": [
34033
- "type",
34034
- "content"
34035
34063
  ]
34036
34064
  }
34037
34065
  },
@@ -34051,34 +34079,7 @@
34051
34079
  "types": [
34052
34080
  "object"
34053
34081
  ],
34054
- "description": "User progress for restoring activation/reflection state",
34055
- "properties": {
34056
- "activationResponse": {
34057
- "types": [
34058
- "string"
34059
- ]
34060
- },
34061
- "reflectionNotes": {
34062
- "types": [
34063
- "array"
34064
- ],
34065
- "items": {
34066
- "types": [
34067
- "string"
34068
- ]
34069
- }
34070
- },
34071
- "bloomAnswered": {
34072
- "types": [
34073
- "object"
34074
- ],
34075
- "mapValue": {
34076
- "types": [
34077
- "boolean"
34078
- ]
34079
- }
34080
- }
34081
- }
34082
+ "description": "User progress for restoring activation/reflection state"
34082
34083
  },
34083
34084
  "onRunCodeSimulation": {
34084
34085
  "types": [
@@ -34107,7 +34108,7 @@
34107
34108
  "callbackArgs": [
34108
34109
  {
34109
34110
  "name": "type",
34110
- "type": "string"
34111
+ "type": "object"
34111
34112
  },
34112
34113
  {
34113
34114
  "name": "description",
@@ -1,4 +1,4 @@
1
- import { E as EventPayload, S as SExpr } from '../expression-CB9R3KWk.js';
1
+ import { c as EventPayload, S as SExpr } from '../expression-BlFrxmNB.js';
2
2
  import 'zod';
3
3
 
4
4
  /**
@@ -216,6 +216,17 @@ declare function walkStatePairs(transitions: GraphTransition[], initialState: st
216
216
  * extractPayloadFieldRef('@user.name'); // returns null
217
217
  */
218
218
  declare function extractPayloadFieldRef(ref: unknown): string | null;
219
+ /**
220
+ * Full dotted path of a payload reference — `'@payload.data.providerName'`
221
+ * → `['data', 'providerName']`. `extractPayloadFieldRef` keeps only the
222
+ * first segment, which made every guard on a NESTED payload field
223
+ * unsatisfiable by synthesis: `when ?data.providerName` was seeded as
224
+ * `{data: 'mock-test-value'}`, the runtime read `.providerName` off a
225
+ * string, and the pass-case dispatch was correctly rejected (std-booking
226
+ * BookingWizard NEXT — the whole step chain became unwalkable). Returns
227
+ * `null` for non-payload references.
228
+ */
229
+ declare function extractPayloadFieldPath(ref: unknown): string[] | null;
219
230
  /**
220
231
  * Builds test payloads that satisfy or violate guard conditions.
221
232
  *
@@ -344,4 +355,4 @@ declare function buildReplayPaths(transitions: ReplayTransition[], initialState:
344
355
  */
345
356
  declare function buildEdgeCoveringWalk(transitions: EdgeWalkTransition[], initialState: string): WalkStep[];
346
357
 
347
- export { type BFSNode, type BFSPathNode, type EdgeWalkTransition, type GraphTransition, type GuardPayload, type PayloadFieldSchema, type ReplayStep, type ReplayTransition, type StateEdge, type WalkStep, buildEdgeCoveringWalk, buildGuardPayloads, buildReplayPaths, buildStateGraph, collectReachableStates, constTruth, extractPayloadFieldRef, walkStatePairs };
358
+ export { type BFSNode, type BFSPathNode, type EdgeWalkTransition, type GraphTransition, type GuardPayload, type PayloadFieldSchema, type ReplayStep, type ReplayTransition, type StateEdge, type WalkStep, buildEdgeCoveringWalk, buildGuardPayloads, buildReplayPaths, buildStateGraph, collectReachableStates, constTruth, extractPayloadFieldPath, extractPayloadFieldRef, walkStatePairs };
@@ -59,6 +59,29 @@ function extractPayloadFieldRef(ref) {
59
59
  const match = ref.match(/^@payload\.([A-Za-z0-9_]+)/);
60
60
  return match ? match[1] : null;
61
61
  }
62
+ function extractPayloadFieldPath(ref) {
63
+ if (typeof ref !== "string") return null;
64
+ const match = ref.match(/^@payload\.([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)/);
65
+ return match ? match[1].split(".") : null;
66
+ }
67
+ function nestedPayload(path, leaf) {
68
+ let value = leaf;
69
+ for (let i = path.length - 1; i >= 1; i--) {
70
+ value = { [path[i]]: value };
71
+ }
72
+ return { [path[0]]: value };
73
+ }
74
+ function isPayloadObject(v) {
75
+ return typeof v === "object" && v !== null && !Array.isArray(v) && !(v instanceof Date);
76
+ }
77
+ function mergePayloads(a, b) {
78
+ const out = { ...a };
79
+ for (const [k, v] of Object.entries(b)) {
80
+ const prev = out[k];
81
+ out[k] = prev !== void 0 && isPayloadObject(prev) && v !== void 0 && isPayloadObject(v) ? mergePayloads(prev, v) : v;
82
+ }
83
+ return out;
84
+ }
62
85
  function constTruth(guard) {
63
86
  if (typeof guard === "boolean") return guard;
64
87
  if (typeof guard === "string") {
@@ -97,62 +120,64 @@ function buildGuardPayloads(guard) {
97
120
  return { pass: {}, fail: {} };
98
121
  }
99
122
  if (typeof guard === "string") {
100
- const field = extractPayloadFieldRef(guard);
101
- if (field) return { pass: { [field]: { id: "mock-test-id", name: "mock-test-name" } }, fail: { [field]: null } };
123
+ const path = extractPayloadFieldPath(guard);
124
+ if (path) {
125
+ return path.length === 1 ? { pass: { [path[0]]: { id: "mock-test-id", name: "mock-test-name" } }, fail: { [path[0]]: null } } : { pass: nestedPayload(path, "mock-test-value"), fail: nestedPayload(path, null) };
126
+ }
102
127
  }
103
128
  if (!Array.isArray(guard) || guard.length === 0) {
104
129
  return { pass: {}, fail: {} };
105
130
  }
106
131
  const op = String(guard[0]);
107
132
  if (op === "not-nil" || op === "not_nil") {
108
- const field = extractPayloadFieldRef(guard[1]);
109
- if (field) return { pass: { [field]: "mock-test-value" }, fail: { [field]: null } };
133
+ const path = extractPayloadFieldPath(guard[1]);
134
+ if (path) return { pass: nestedPayload(path, "mock-test-value"), fail: nestedPayload(path, null) };
110
135
  }
111
136
  if (op === "nil") {
112
- const field = extractPayloadFieldRef(guard[1]);
113
- if (field) return { pass: {}, fail: { [field]: "mock-test-value" } };
137
+ const path = extractPayloadFieldPath(guard[1]);
138
+ if (path) return { pass: {}, fail: nestedPayload(path, "mock-test-value") };
114
139
  }
115
140
  if (op === "eq" || op === "==" || op === "=") {
116
- const field = extractPayloadFieldRef(guard[1]);
141
+ const path = extractPayloadFieldPath(guard[1]);
117
142
  const val = guard[2];
118
- if (field && val !== void 0) {
143
+ if (path && val !== void 0) {
119
144
  const failVal = typeof val === "number" ? val + 1 : typeof val === "string" ? `not-${val}` : null;
120
- return { pass: { [field]: val }, fail: { [field]: failVal } };
145
+ return { pass: nestedPayload(path, val), fail: nestedPayload(path, failVal) };
121
146
  }
122
147
  }
123
148
  if (op === "not-eq" || op === "!=" || op === "neq") {
124
- const field = extractPayloadFieldRef(guard[1]);
149
+ const path = extractPayloadFieldPath(guard[1]);
125
150
  const val = guard[2];
126
- if (field && val !== void 0) {
151
+ if (path && val !== void 0) {
127
152
  const passVal = typeof val === "number" ? val + 1 : typeof val === "string" ? `not-${val}` : "other";
128
- return { pass: { [field]: passVal }, fail: { [field]: val } };
153
+ return { pass: nestedPayload(path, passVal), fail: nestedPayload(path, val) };
129
154
  }
130
155
  }
131
156
  if (op === "gt" || op === ">") {
132
- const field = extractPayloadFieldRef(guard[1]);
157
+ const path = extractPayloadFieldPath(guard[1]);
133
158
  const n = typeof guard[2] === "number" ? guard[2] : 0;
134
- if (field) return { pass: { [field]: n + 1 }, fail: { [field]: n - 1 } };
159
+ if (path) return { pass: nestedPayload(path, n + 1), fail: nestedPayload(path, n - 1) };
135
160
  }
136
161
  if (op === "gte" || op === ">=") {
137
- const field = extractPayloadFieldRef(guard[1]);
162
+ const path = extractPayloadFieldPath(guard[1]);
138
163
  const n = typeof guard[2] === "number" ? guard[2] : 0;
139
- if (field) return { pass: { [field]: n }, fail: { [field]: n - 1 } };
164
+ if (path) return { pass: nestedPayload(path, n), fail: nestedPayload(path, n - 1) };
140
165
  }
141
166
  if (op === "lt" || op === "<") {
142
- const field = extractPayloadFieldRef(guard[1]);
167
+ const path = extractPayloadFieldPath(guard[1]);
143
168
  const n = typeof guard[2] === "number" ? guard[2] : 0;
144
- if (field) return { pass: { [field]: n - 1 }, fail: { [field]: n + 1 } };
169
+ if (path) return { pass: nestedPayload(path, n - 1), fail: nestedPayload(path, n + 1) };
145
170
  }
146
171
  if (op === "lte" || op === "<=") {
147
- const field = extractPayloadFieldRef(guard[1]);
172
+ const path = extractPayloadFieldPath(guard[1]);
148
173
  const n = typeof guard[2] === "number" ? guard[2] : 0;
149
- if (field) return { pass: { [field]: n }, fail: { [field]: n + 1 } };
174
+ if (path) return { pass: nestedPayload(path, n), fail: nestedPayload(path, n + 1) };
150
175
  }
151
176
  if (op === "and") {
152
177
  const subs = guard.slice(1);
153
178
  if (subs.length >= 2) {
154
179
  const built = subs.map(buildGuardPayloads);
155
- const pass = built.reduce((acc, b) => ({ ...acc, ...b.pass }), {});
180
+ const pass = built.reduce((acc, b) => mergePayloads(acc, b.pass), {});
156
181
  return { pass, fail: built[0].fail };
157
182
  }
158
183
  if (subs.length === 1) return buildGuardPayloads(subs[0]);
@@ -163,7 +188,7 @@ function buildGuardPayloads(guard) {
163
188
  const s1 = buildGuardPayloads(subs[0]);
164
189
  const s2 = buildGuardPayloads(subs[1]);
165
190
  const combinedPass = Object.keys(s1.pass).length > 0 ? s1.pass : s2.pass;
166
- return { pass: combinedPass, fail: { ...s1.fail, ...s2.fail } };
191
+ return { pass: combinedPass, fail: mergePayloads(s1.fail, s2.fail) };
167
192
  }
168
193
  if (subs.length === 1) return buildGuardPayloads(subs[0]);
169
194
  }
@@ -385,6 +410,6 @@ function buildPayloadForEdge(transition, guardCase) {
385
410
  return {};
386
411
  }
387
412
 
388
- export { buildEdgeCoveringWalk, buildGuardPayloads, buildReplayPaths, buildStateGraph, collectReachableStates, constTruth, extractPayloadFieldRef, walkStatePairs };
413
+ export { buildEdgeCoveringWalk, buildGuardPayloads, buildReplayPaths, buildStateGraph, collectReachableStates, constTruth, extractPayloadFieldPath, extractPayloadFieldRef, walkStatePairs };
389
414
  //# sourceMappingURL=index.js.map
390
415
  //# sourceMappingURL=index.js.map