footprintjs 0.1.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.
Files changed (251) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +658 -0
  3. package/dist/advanced.js +84 -0
  4. package/dist/esm/advanced.js +26 -0
  5. package/dist/esm/index.js +30 -0
  6. package/dist/esm/lib/builder/FlowChartBuilder.js +809 -0
  7. package/dist/esm/lib/builder/index.js +12 -0
  8. package/dist/esm/lib/builder/types.js +9 -0
  9. package/dist/esm/lib/engine/graph/StageNode.js +38 -0
  10. package/dist/esm/lib/engine/graph/index.js +2 -0
  11. package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +116 -0
  12. package/dist/esm/lib/engine/handlers/ContinuationResolver.js +121 -0
  13. package/dist/esm/lib/engine/handlers/DeciderHandler.js +78 -0
  14. package/dist/esm/lib/engine/handlers/ExtractorRunner.js +117 -0
  15. package/dist/esm/lib/engine/handlers/NodeResolver.js +72 -0
  16. package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +154 -0
  17. package/dist/esm/lib/engine/handlers/SelectorHandler.js +79 -0
  18. package/dist/esm/lib/engine/handlers/StageRunner.js +86 -0
  19. package/dist/esm/lib/engine/handlers/SubflowExecutor.js +322 -0
  20. package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +113 -0
  21. package/dist/esm/lib/engine/handlers/index.js +23 -0
  22. package/dist/esm/lib/engine/index.js +18 -0
  23. package/dist/esm/lib/engine/narrative/CombinedNarrativeBuilder.js +158 -0
  24. package/dist/esm/lib/engine/narrative/ControlFlowNarrativeGenerator.js +90 -0
  25. package/dist/esm/lib/engine/narrative/NullControlFlowNarrativeGenerator.js +24 -0
  26. package/dist/esm/lib/engine/narrative/index.js +4 -0
  27. package/dist/esm/lib/engine/narrative/types.js +11 -0
  28. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +419 -0
  29. package/dist/esm/lib/engine/traversal/index.js +2 -0
  30. package/dist/esm/lib/engine/types.js +16 -0
  31. package/dist/esm/lib/memory/DiagnosticCollector.js +44 -0
  32. package/dist/esm/lib/memory/EventLog.js +44 -0
  33. package/dist/esm/lib/memory/SharedMemory.js +53 -0
  34. package/dist/esm/lib/memory/StageContext.js +221 -0
  35. package/dist/esm/lib/memory/TransactionBuffer.js +66 -0
  36. package/dist/esm/lib/memory/index.js +16 -0
  37. package/dist/esm/lib/memory/types.js +7 -0
  38. package/dist/esm/lib/memory/utils.js +155 -0
  39. package/dist/esm/lib/runner/ExecutionRuntime.js +64 -0
  40. package/dist/esm/lib/runner/FlowChartExecutor.js +108 -0
  41. package/dist/esm/lib/runner/index.js +3 -0
  42. package/dist/esm/lib/scope/ScopeFacade.js +175 -0
  43. package/dist/esm/lib/scope/index.js +19 -0
  44. package/dist/esm/lib/scope/protection/createProtectedScope.js +59 -0
  45. package/dist/esm/lib/scope/protection/index.js +3 -0
  46. package/dist/esm/lib/scope/protection/types.js +8 -0
  47. package/dist/esm/lib/scope/providers/baseStateCompatible.js +29 -0
  48. package/dist/esm/lib/scope/providers/guards.js +43 -0
  49. package/dist/esm/lib/scope/providers/index.js +7 -0
  50. package/dist/esm/lib/scope/providers/providers.js +18 -0
  51. package/dist/esm/lib/scope/providers/registry.js +36 -0
  52. package/dist/esm/lib/scope/providers/resolve.js +11 -0
  53. package/dist/esm/lib/scope/providers/types.js +8 -0
  54. package/dist/esm/lib/scope/recorders/DebugRecorder.js +81 -0
  55. package/dist/esm/lib/scope/recorders/MetricRecorder.js +81 -0
  56. package/dist/esm/lib/scope/recorders/NarrativeRecorder.js +167 -0
  57. package/dist/esm/lib/scope/recorders/index.js +4 -0
  58. package/dist/esm/lib/scope/state/installResolvers.js +15 -0
  59. package/dist/esm/lib/scope/state/zod/defineScopeFromZod.js +14 -0
  60. package/dist/esm/lib/scope/state/zod/index.js +5 -0
  61. package/dist/esm/lib/scope/state/zod/resolver.js +28 -0
  62. package/dist/esm/lib/scope/state/zod/schema/builder.js +16 -0
  63. package/dist/esm/lib/scope/state/zod/scopeFactory.js +156 -0
  64. package/dist/esm/lib/scope/state/zod/utils/validateHelper.js +97 -0
  65. package/dist/esm/lib/scope/types.js +9 -0
  66. package/dist/esm/types/advanced.d.ts +35 -0
  67. package/dist/esm/types/index.d.ts +22 -0
  68. package/dist/esm/types/lib/builder/FlowChartBuilder.d.ts +121 -0
  69. package/dist/esm/types/lib/builder/index.d.ts +9 -0
  70. package/dist/esm/types/lib/builder/types.d.ts +152 -0
  71. package/dist/esm/types/lib/engine/graph/StageNode.d.ts +78 -0
  72. package/dist/esm/types/lib/engine/graph/index.d.ts +2 -0
  73. package/dist/esm/types/lib/engine/handlers/ChildrenExecutor.d.ts +33 -0
  74. package/dist/esm/types/lib/engine/handlers/ContinuationResolver.d.ts +57 -0
  75. package/dist/esm/types/lib/engine/handlers/DeciderHandler.d.ts +34 -0
  76. package/dist/esm/types/lib/engine/handlers/ExtractorRunner.d.ts +41 -0
  77. package/dist/esm/types/lib/engine/handlers/NodeResolver.d.ts +26 -0
  78. package/dist/esm/types/lib/engine/handlers/RuntimeStructureManager.d.ts +36 -0
  79. package/dist/esm/types/lib/engine/handlers/SelectorHandler.d.ts +26 -0
  80. package/dist/esm/types/lib/engine/handlers/StageRunner.d.ts +17 -0
  81. package/dist/esm/types/lib/engine/handlers/SubflowExecutor.d.ts +57 -0
  82. package/dist/esm/types/lib/engine/handlers/SubflowInputMapper.d.ts +40 -0
  83. package/dist/esm/types/lib/engine/handlers/index.d.ts +15 -0
  84. package/dist/esm/types/lib/engine/index.d.ts +16 -0
  85. package/dist/esm/types/lib/engine/narrative/CombinedNarrativeBuilder.d.ts +33 -0
  86. package/dist/esm/types/lib/engine/narrative/ControlFlowNarrativeGenerator.d.ts +29 -0
  87. package/dist/esm/types/lib/engine/narrative/NullControlFlowNarrativeGenerator.d.ts +21 -0
  88. package/dist/esm/types/lib/engine/narrative/index.d.ts +5 -0
  89. package/dist/esm/types/lib/engine/narrative/types.d.ts +33 -0
  90. package/dist/esm/types/lib/engine/traversal/FlowchartTraverser.d.ts +87 -0
  91. package/dist/esm/types/lib/engine/traversal/index.d.ts +2 -0
  92. package/dist/esm/types/lib/engine/types.d.ts +208 -0
  93. package/dist/esm/types/lib/memory/DiagnosticCollector.d.ts +33 -0
  94. package/dist/esm/types/lib/memory/EventLog.d.ts +27 -0
  95. package/dist/esm/types/lib/memory/SharedMemory.d.ts +34 -0
  96. package/dist/esm/types/lib/memory/StageContext.d.ts +74 -0
  97. package/dist/esm/types/lib/memory/TransactionBuffer.d.ts +38 -0
  98. package/dist/esm/types/lib/memory/index.d.ts +13 -0
  99. package/dist/esm/types/lib/memory/types.d.ts +60 -0
  100. package/dist/esm/types/lib/memory/utils.d.ts +67 -0
  101. package/dist/esm/types/lib/runner/ExecutionRuntime.d.ts +39 -0
  102. package/dist/esm/types/lib/runner/FlowChartExecutor.d.ts +34 -0
  103. package/dist/esm/types/lib/runner/index.d.ts +3 -0
  104. package/dist/esm/types/lib/scope/ScopeFacade.d.ts +47 -0
  105. package/dist/esm/types/lib/scope/index.d.ts +23 -0
  106. package/dist/esm/types/lib/scope/protection/createProtectedScope.d.ts +9 -0
  107. package/dist/esm/types/lib/scope/protection/index.d.ts +2 -0
  108. package/dist/esm/types/lib/scope/protection/types.d.ts +13 -0
  109. package/dist/esm/types/lib/scope/providers/baseStateCompatible.d.ts +26 -0
  110. package/dist/esm/types/lib/scope/providers/guards.d.ts +14 -0
  111. package/dist/esm/types/lib/scope/providers/index.d.ts +6 -0
  112. package/dist/esm/types/lib/scope/providers/providers.d.ts +8 -0
  113. package/dist/esm/types/lib/scope/providers/registry.d.ts +11 -0
  114. package/dist/esm/types/lib/scope/providers/resolve.d.ts +8 -0
  115. package/dist/esm/types/lib/scope/providers/types.d.ts +40 -0
  116. package/dist/esm/types/lib/scope/recorders/DebugRecorder.d.ts +35 -0
  117. package/dist/esm/types/lib/scope/recorders/MetricRecorder.d.ts +36 -0
  118. package/dist/esm/types/lib/scope/recorders/NarrativeRecorder.d.ts +45 -0
  119. package/dist/esm/types/lib/scope/recorders/index.d.ts +7 -0
  120. package/dist/esm/types/lib/scope/state/installResolvers.d.ts +4 -0
  121. package/dist/esm/types/lib/scope/state/zod/defineScopeFromZod.d.ts +9 -0
  122. package/dist/esm/types/lib/scope/state/zod/index.d.ts +5 -0
  123. package/dist/esm/types/lib/scope/state/zod/resolver.d.ts +5 -0
  124. package/dist/esm/types/lib/scope/state/zod/schema/builder.d.ts +12 -0
  125. package/dist/esm/types/lib/scope/state/zod/scopeFactory.d.ts +9 -0
  126. package/dist/esm/types/lib/scope/state/zod/utils/validateHelper.d.ts +10 -0
  127. package/dist/esm/types/lib/scope/types.d.ts +53 -0
  128. package/dist/index.js +42 -0
  129. package/dist/lib/builder/FlowChartBuilder.js +817 -0
  130. package/dist/lib/builder/index.js +20 -0
  131. package/dist/lib/builder/types.js +10 -0
  132. package/dist/lib/engine/graph/StageNode.js +42 -0
  133. package/dist/lib/engine/graph/index.js +6 -0
  134. package/dist/lib/engine/handlers/ChildrenExecutor.js +120 -0
  135. package/dist/lib/engine/handlers/ContinuationResolver.js +125 -0
  136. package/dist/lib/engine/handlers/DeciderHandler.js +82 -0
  137. package/dist/lib/engine/handlers/ExtractorRunner.js +121 -0
  138. package/dist/lib/engine/handlers/NodeResolver.js +76 -0
  139. package/dist/lib/engine/handlers/RuntimeStructureManager.js +159 -0
  140. package/dist/lib/engine/handlers/SelectorHandler.js +83 -0
  141. package/dist/lib/engine/handlers/StageRunner.js +90 -0
  142. package/dist/lib/engine/handlers/SubflowExecutor.js +326 -0
  143. package/dist/lib/engine/handlers/SubflowInputMapper.js +121 -0
  144. package/dist/lib/engine/handlers/index.js +42 -0
  145. package/dist/lib/engine/index.js +40 -0
  146. package/dist/lib/engine/narrative/CombinedNarrativeBuilder.js +162 -0
  147. package/dist/lib/engine/narrative/ControlFlowNarrativeGenerator.js +94 -0
  148. package/dist/lib/engine/narrative/NullControlFlowNarrativeGenerator.js +28 -0
  149. package/dist/lib/engine/narrative/index.js +10 -0
  150. package/dist/lib/engine/narrative/types.js +12 -0
  151. package/dist/lib/engine/traversal/FlowchartTraverser.js +423 -0
  152. package/dist/lib/engine/traversal/index.js +6 -0
  153. package/dist/lib/engine/types.js +19 -0
  154. package/dist/lib/memory/DiagnosticCollector.js +48 -0
  155. package/dist/lib/memory/EventLog.js +48 -0
  156. package/dist/lib/memory/SharedMemory.js +60 -0
  157. package/dist/lib/memory/StageContext.js +225 -0
  158. package/dist/lib/memory/TransactionBuffer.js +73 -0
  159. package/dist/lib/memory/index.js +34 -0
  160. package/dist/lib/memory/types.js +8 -0
  161. package/dist/lib/memory/utils.js +170 -0
  162. package/dist/lib/runner/ExecutionRuntime.js +68 -0
  163. package/dist/lib/runner/FlowChartExecutor.js +112 -0
  164. package/dist/lib/runner/index.js +8 -0
  165. package/dist/lib/scope/ScopeFacade.js +179 -0
  166. package/dist/lib/scope/index.js +44 -0
  167. package/dist/lib/scope/protection/createProtectedScope.js +64 -0
  168. package/dist/lib/scope/protection/index.js +8 -0
  169. package/dist/lib/scope/protection/types.js +9 -0
  170. package/dist/lib/scope/providers/baseStateCompatible.js +33 -0
  171. package/dist/lib/scope/providers/guards.js +49 -0
  172. package/dist/lib/scope/providers/index.js +21 -0
  173. package/dist/lib/scope/providers/providers.js +23 -0
  174. package/dist/lib/scope/providers/registry.js +42 -0
  175. package/dist/lib/scope/providers/resolve.js +16 -0
  176. package/dist/lib/scope/providers/types.js +9 -0
  177. package/dist/lib/scope/recorders/DebugRecorder.js +85 -0
  178. package/dist/lib/scope/recorders/MetricRecorder.js +85 -0
  179. package/dist/lib/scope/recorders/NarrativeRecorder.js +171 -0
  180. package/dist/lib/scope/recorders/index.js +10 -0
  181. package/dist/lib/scope/state/installResolvers.js +19 -0
  182. package/dist/lib/scope/state/zod/defineScopeFromZod.js +18 -0
  183. package/dist/lib/scope/state/zod/index.js +13 -0
  184. package/dist/lib/scope/state/zod/resolver.js +31 -0
  185. package/dist/lib/scope/state/zod/schema/builder.js +21 -0
  186. package/dist/lib/scope/state/zod/scopeFactory.js +160 -0
  187. package/dist/lib/scope/state/zod/utils/validateHelper.js +104 -0
  188. package/dist/lib/scope/types.js +10 -0
  189. package/dist/types/advanced.d.ts +35 -0
  190. package/dist/types/index.d.ts +22 -0
  191. package/dist/types/lib/builder/FlowChartBuilder.d.ts +121 -0
  192. package/dist/types/lib/builder/index.d.ts +9 -0
  193. package/dist/types/lib/builder/types.d.ts +152 -0
  194. package/dist/types/lib/engine/graph/StageNode.d.ts +78 -0
  195. package/dist/types/lib/engine/graph/index.d.ts +2 -0
  196. package/dist/types/lib/engine/handlers/ChildrenExecutor.d.ts +33 -0
  197. package/dist/types/lib/engine/handlers/ContinuationResolver.d.ts +57 -0
  198. package/dist/types/lib/engine/handlers/DeciderHandler.d.ts +34 -0
  199. package/dist/types/lib/engine/handlers/ExtractorRunner.d.ts +41 -0
  200. package/dist/types/lib/engine/handlers/NodeResolver.d.ts +26 -0
  201. package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +36 -0
  202. package/dist/types/lib/engine/handlers/SelectorHandler.d.ts +26 -0
  203. package/dist/types/lib/engine/handlers/StageRunner.d.ts +17 -0
  204. package/dist/types/lib/engine/handlers/SubflowExecutor.d.ts +57 -0
  205. package/dist/types/lib/engine/handlers/SubflowInputMapper.d.ts +40 -0
  206. package/dist/types/lib/engine/handlers/index.d.ts +15 -0
  207. package/dist/types/lib/engine/index.d.ts +16 -0
  208. package/dist/types/lib/engine/narrative/CombinedNarrativeBuilder.d.ts +33 -0
  209. package/dist/types/lib/engine/narrative/ControlFlowNarrativeGenerator.d.ts +29 -0
  210. package/dist/types/lib/engine/narrative/NullControlFlowNarrativeGenerator.d.ts +21 -0
  211. package/dist/types/lib/engine/narrative/index.d.ts +5 -0
  212. package/dist/types/lib/engine/narrative/types.d.ts +33 -0
  213. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +87 -0
  214. package/dist/types/lib/engine/traversal/index.d.ts +2 -0
  215. package/dist/types/lib/engine/types.d.ts +208 -0
  216. package/dist/types/lib/memory/DiagnosticCollector.d.ts +33 -0
  217. package/dist/types/lib/memory/EventLog.d.ts +27 -0
  218. package/dist/types/lib/memory/SharedMemory.d.ts +34 -0
  219. package/dist/types/lib/memory/StageContext.d.ts +74 -0
  220. package/dist/types/lib/memory/TransactionBuffer.d.ts +38 -0
  221. package/dist/types/lib/memory/index.d.ts +13 -0
  222. package/dist/types/lib/memory/types.d.ts +60 -0
  223. package/dist/types/lib/memory/utils.d.ts +67 -0
  224. package/dist/types/lib/runner/ExecutionRuntime.d.ts +39 -0
  225. package/dist/types/lib/runner/FlowChartExecutor.d.ts +34 -0
  226. package/dist/types/lib/runner/index.d.ts +3 -0
  227. package/dist/types/lib/scope/ScopeFacade.d.ts +47 -0
  228. package/dist/types/lib/scope/index.d.ts +23 -0
  229. package/dist/types/lib/scope/protection/createProtectedScope.d.ts +9 -0
  230. package/dist/types/lib/scope/protection/index.d.ts +2 -0
  231. package/dist/types/lib/scope/protection/types.d.ts +13 -0
  232. package/dist/types/lib/scope/providers/baseStateCompatible.d.ts +26 -0
  233. package/dist/types/lib/scope/providers/guards.d.ts +14 -0
  234. package/dist/types/lib/scope/providers/index.d.ts +6 -0
  235. package/dist/types/lib/scope/providers/providers.d.ts +8 -0
  236. package/dist/types/lib/scope/providers/registry.d.ts +11 -0
  237. package/dist/types/lib/scope/providers/resolve.d.ts +8 -0
  238. package/dist/types/lib/scope/providers/types.d.ts +40 -0
  239. package/dist/types/lib/scope/recorders/DebugRecorder.d.ts +35 -0
  240. package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +36 -0
  241. package/dist/types/lib/scope/recorders/NarrativeRecorder.d.ts +45 -0
  242. package/dist/types/lib/scope/recorders/index.d.ts +7 -0
  243. package/dist/types/lib/scope/state/installResolvers.d.ts +4 -0
  244. package/dist/types/lib/scope/state/zod/defineScopeFromZod.d.ts +9 -0
  245. package/dist/types/lib/scope/state/zod/index.d.ts +5 -0
  246. package/dist/types/lib/scope/state/zod/resolver.d.ts +5 -0
  247. package/dist/types/lib/scope/state/zod/schema/builder.d.ts +12 -0
  248. package/dist/types/lib/scope/state/zod/scopeFactory.d.ts +9 -0
  249. package/dist/types/lib/scope/state/zod/utils/validateHelper.d.ts +10 -0
  250. package/dist/types/lib/scope/types.d.ts +53 -0
  251. package/package.json +148 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * NarrativeRecorder — Captures per-stage scope reads/writes for narrative enrichment
3
+ *
4
+ * Bridges the gap between flow-level narrative (NarrativeGenerator) and data-level
5
+ * detail. Produces structured per-stage data and text sentences that can be merged
6
+ * with NarrativeGenerator output for the full picture: what happened AND what was produced.
7
+ */
8
+ export class NarrativeRecorder {
9
+ constructor(options) {
10
+ var _a, _b, _c;
11
+ this.stages = new Map();
12
+ this.stageOrder = [];
13
+ this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : `narrative-recorder-${Date.now()}`;
14
+ this.detail = (_b = options === null || options === void 0 ? void 0 : options.detail) !== null && _b !== void 0 ? _b : 'full';
15
+ this.maxValueLength = (_c = options === null || options === void 0 ? void 0 : options.maxValueLength) !== null && _c !== void 0 ? _c : 80;
16
+ }
17
+ onRead(event) {
18
+ var _a;
19
+ const stageData = this.getOrCreateStageData(event.stageName);
20
+ const op = {
21
+ type: 'read',
22
+ key: (_a = event.key) !== null && _a !== void 0 ? _a : '',
23
+ valueSummary: summarizeValue(event.value, this.maxValueLength),
24
+ stepNumber: stageData.operations.length + 1,
25
+ };
26
+ stageData.reads.push(op);
27
+ stageData.operations.push(op);
28
+ }
29
+ onWrite(event) {
30
+ const stageData = this.getOrCreateStageData(event.stageName);
31
+ const op = {
32
+ type: 'write',
33
+ key: event.key,
34
+ valueSummary: summarizeValue(event.value, this.maxValueLength),
35
+ operation: event.operation,
36
+ stepNumber: stageData.operations.length + 1,
37
+ };
38
+ stageData.writes.push(op);
39
+ stageData.operations.push(op);
40
+ }
41
+ getStageData() {
42
+ const copy = new Map();
43
+ for (const [name, data] of this.stages) {
44
+ copy.set(name, {
45
+ stageName: data.stageName,
46
+ reads: [...data.reads],
47
+ writes: [...data.writes],
48
+ operations: [...data.operations],
49
+ });
50
+ }
51
+ return copy;
52
+ }
53
+ getStageDataFor(stageName) {
54
+ const data = this.stages.get(stageName);
55
+ if (!data)
56
+ return undefined;
57
+ return {
58
+ stageName: data.stageName,
59
+ reads: [...data.reads],
60
+ writes: [...data.writes],
61
+ operations: [...data.operations],
62
+ };
63
+ }
64
+ toSentences() {
65
+ const result = new Map();
66
+ for (const stageName of this.stageOrder) {
67
+ const data = this.stages.get(stageName);
68
+ if (!data)
69
+ continue;
70
+ const lines = [];
71
+ if (this.detail === 'summary') {
72
+ const parts = [];
73
+ if (data.reads.length > 0) {
74
+ parts.push(`read ${data.reads.length} value${data.reads.length > 1 ? 's' : ''}`);
75
+ }
76
+ if (data.writes.length > 0) {
77
+ parts.push(`wrote ${data.writes.length} value${data.writes.length > 1 ? 's' : ''}`);
78
+ }
79
+ if (parts.length > 0) {
80
+ lines.push(` - ${capitalize(parts.join(', '))}`);
81
+ }
82
+ }
83
+ else {
84
+ for (const op of data.operations) {
85
+ const stepPrefix = op.stepNumber ? `Step ${op.stepNumber}: ` : '';
86
+ if (op.type === 'read') {
87
+ lines.push(op.valueSummary
88
+ ? ` - ${stepPrefix}Read: ${op.key} = ${op.valueSummary}`
89
+ : ` - ${stepPrefix}Read: ${op.key}`);
90
+ }
91
+ else if (op.operation === 'delete') {
92
+ lines.push(` - ${stepPrefix}Delete: ${op.key}`);
93
+ }
94
+ else if (op.operation === 'update') {
95
+ lines.push(` - ${stepPrefix}Update: ${op.key} = ${op.valueSummary}`);
96
+ }
97
+ else {
98
+ lines.push(` - ${stepPrefix}Write: ${op.key} = ${op.valueSummary}`);
99
+ }
100
+ }
101
+ }
102
+ if (lines.length > 0) {
103
+ result.set(stageName, lines);
104
+ }
105
+ }
106
+ return result;
107
+ }
108
+ toFlatSentences() {
109
+ const result = [];
110
+ const perStage = this.toSentences();
111
+ for (const [stageName, lines] of perStage) {
112
+ for (const line of lines) {
113
+ const cleaned = line.replace(/^\s+-\s+/, '');
114
+ result.push(`${stageName}: ${cleaned}`);
115
+ }
116
+ }
117
+ return result;
118
+ }
119
+ clear() {
120
+ this.stages.clear();
121
+ this.stageOrder = [];
122
+ }
123
+ setDetail(level) {
124
+ this.detail = level;
125
+ }
126
+ getDetail() {
127
+ return this.detail;
128
+ }
129
+ getOrCreateStageData(stageName) {
130
+ let data = this.stages.get(stageName);
131
+ if (!data) {
132
+ data = { stageName, reads: [], writes: [], operations: [] };
133
+ this.stages.set(stageName, data);
134
+ this.stageOrder.push(stageName);
135
+ }
136
+ return data;
137
+ }
138
+ }
139
+ // ── Private Helpers ──────────────────────────────────────────────────────────
140
+ function summarizeValue(value, maxLen) {
141
+ if (value === undefined)
142
+ return 'undefined';
143
+ if (value === null)
144
+ return 'null';
145
+ if (typeof value === 'string') {
146
+ return value.length <= maxLen ? `"${value}"` : `"${value.slice(0, maxLen - 3)}..."`;
147
+ }
148
+ if (typeof value === 'number' || typeof value === 'boolean')
149
+ return String(value);
150
+ if (Array.isArray(value)) {
151
+ return value.length === 0 ? '[]' : `(${value.length} item${value.length > 1 ? 's' : ''})`;
152
+ }
153
+ if (typeof value === 'object') {
154
+ const keys = Object.keys(value);
155
+ if (keys.length === 0)
156
+ return '{}';
157
+ const preview = keys.slice(0, 4).join(', ');
158
+ const suffix = keys.length > 4 ? `, ... (${keys.length} keys)` : '';
159
+ const result = `{${preview}${suffix}}`;
160
+ return result.length <= maxLen ? result : `{${keys.length} keys}`;
161
+ }
162
+ return String(value);
163
+ }
164
+ function capitalize(s) {
165
+ return s.length === 0 ? s : s.charAt(0).toUpperCase() + s.slice(1);
166
+ }
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFycmF0aXZlUmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9OYXJyYXRpdmVSZWNvcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUEyQkgsTUFBTSxPQUFPLGlCQUFpQjtJQU81QixZQUFZLE9BQWtDOztRQUx0QyxXQUFNLEdBQW9DLElBQUksR0FBRyxFQUFFLENBQUM7UUFDcEQsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUtoQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUUsbUNBQUksc0JBQXNCLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSxtQ0FBSSxNQUFNLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLG1DQUFJLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdCOztRQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sRUFBRSxHQUF1QjtZQUM3QixJQUFJLEVBQUUsTUFBTTtZQUNaLEdBQUcsRUFBRSxNQUFBLEtBQUssQ0FBQyxHQUFHLG1DQUFJLEVBQUU7WUFDcEIsWUFBWSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDOUQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUM7U0FDNUMsQ0FBQztRQUNGLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxD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LENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLFFBQVEsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7SUFDNUYsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFnQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLFFBQVEsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLENBQVM7SUFDM0IsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTmFycmF0aXZlUmVjb3JkZXIg4oCUIENhcHR1cmVzIHBlci1zdGFnZSBzY29wZSByZWFkcy93cml0ZXMgZm9yIG5hcnJhdGl2ZSBlbnJpY2htZW50XG4gKlxuICogQnJpZGdlcyB0aGUgZ2FwIGJldHdlZW4gZmxvdy1sZXZlbCBuYXJyYXRpdmUgKE5hcnJhdGl2ZUdlbmVyYXRvcikgYW5kIGRhdGEtbGV2ZWxcbiAqIGRldGFpbC4gUHJvZHVjZXMgc3RydWN0dXJlZCBwZXItc3RhZ2UgZGF0YSBhbmQgdGV4dCBzZW50ZW5jZXMgdGhhdCBjYW4gYmUgbWVyZ2VkXG4gKiB3aXRoIE5hcnJhdGl2ZUdlbmVyYXRvciBvdXRwdXQgZm9yIHRoZSBmdWxsIHBpY3R1cmU6IHdoYXQgaGFwcGVuZWQgQU5EIHdoYXQgd2FzIHByb2R1Y2VkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVhZEV2ZW50LCBSZWNvcmRlciwgV3JpdGVFdmVudCB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgTmFycmF0aXZlRGV0YWlsID0gJ3N1bW1hcnknIHwgJ2Z1bGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hcnJhdGl2ZU9wZXJhdGlvbiB7XG4gIHR5cGU6ICdyZWFkJyB8ICd3cml0ZSc7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZVN1bW1hcnk6IHN0cmluZztcbiAgb3BlcmF0aW9uPzogJ3NldCcgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICBzdGVwTnVtYmVyPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlTmFycmF0aXZlRGF0YSB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICByZWFkczogTmFycmF0aXZlT3BlcmF0aW9uW107XG4gIHdyaXRlczogTmFycmF0aXZlT3BlcmF0aW9uW107XG4gIG9wZXJhdGlvbnM6IE5hcnJhdGl2ZU9wZXJhdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hcnJhdGl2ZVJlY29yZGVyT3B0aW9ucyB7XG4gIGlkPzogc3RyaW5nO1xuICBkZXRhaWw/OiBOYXJyYXRpdmVEZXRhaWw7XG4gIG1heFZhbHVlTGVuZ3RoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgTmFycmF0aXZlUmVjb3JkZXIgaW1wbGVtZW50cyBSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgc3RhZ2VzOiBNYXA8c3RyaW5nLCBTdGFnZU5hcnJhdGl2ZURhdGE+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHN0YWdlT3JkZXI6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgZGV0YWlsOiBOYXJyYXRpdmVEZXRhaWw7XG4gIHByaXZhdGUgbWF4VmFsdWVMZW5ndGg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogTmFycmF0aXZlUmVjb3JkZXJPcHRpb25zKSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkID8/IGBuYXJyYXRpdmUtcmVjb3JkZXItJHtEYXRlLm5vdygpfWA7XG4gICAgdGhpcy5kZXRhaWwgPSBvcHRpb25zPy5kZXRhaWwgPz8gJ2Z1bGwnO1xuICAgIHRoaXMubWF4VmFsdWVMZW5ndGggPSBvcHRpb25zPy5tYXhWYWx1ZUxlbmd0aCA/PyA4MDtcbiAgfVxuXG4gIG9uUmVhZChldmVudDogUmVhZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhZ2VEYXRhID0gdGhpcy5nZXRPckNyZWF0ZVN0YWdlRGF0YShldmVudC5zdGFnZU5hbWUpO1xuICAgIGNvbnN0IG9wOiBOYXJyYXRpdmVPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiAncmVhZCcsXG4gICAgICBrZXk6IGV2ZW50LmtleSA/PyAnJyxcbiAgICAgIHZhbHVlU3VtbWFyeTogc3VtbWFyaXplVmFsdWUoZXZlbnQudmFsdWUsIHRoaXMubWF4VmFsdWVMZW5ndGgpLFxuICAgICAgc3RlcE51bWJlcjogc3RhZ2VEYXRhLm9wZXJhdGlvbnMubGVuZ3RoICsgMSxcbiAgICB9O1xuICAgIHN0YWdlRGF0YS5yZWFkcy5wdXNoKG9wKTtcbiAgICBzdGFnZURhdGEub3BlcmF0aW9ucy5wdXNoKG9wKTtcbiAgfVxuXG4gIG9uV3JpdGUoZXZlbnQ6IFdyaXRlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnZURhdGEgPSB0aGlzLmdldE9yQ3JlYXRlU3RhZ2VEYXRhKGV2ZW50LnN0YWdlTmFtZSk7XG4gICAgY29uc3Qgb3A6IE5hcnJhdGl2ZU9wZXJhdGlvbiA9IHtcbiAgICAgIHR5cGU6ICd3cml0ZScsXG4gICAgICBrZXk6IGV2ZW50LmtleSxcbiAgICAgIHZhbHVlU3VtbWFyeTogc3VtbWFyaXplVmFsdWUoZXZlbnQudmFsdWUsIHRoaXMubWF4VmFsdWVMZW5ndGgpLFxuICAgICAgb3BlcmF0aW9uOiBldmVudC5vcGVyYXRpb24sXG4gICAgICBzdGVwTnVtYmVyOiBzdGFnZURhdGEub3BlcmF0aW9ucy5sZW5ndGggKyAxLFxuICAgIH07XG4gICAgc3RhZ2VEYXRhLndyaXRlcy5wdXNoKG9wKTtcbiAgICBzdGFnZURhdGEub3BlcmF0aW9ucy5wdXNoKG9wKTtcbiAgfVxuXG4gIGdldFN0YWdlRGF0YSgpOiBNYXA8c3RyaW5nLCBTdGFnZU5hcnJhdGl2ZURhdGE+IHtcbiAgICBjb25zdCBjb3B5ID0gbmV3IE1hcDxzdHJpbmcsIFN0YWdlTmFycmF0aXZlRGF0YT4oKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBkYXRhXSBvZiB0aGlzLnN0YWdlcykge1xuICAgICAgY29weS5zZXQobmFtZSwge1xuICAgICAgICBzdGFnZU5hbWU6IGRhdGEuc3RhZ2VOYW1lLFxuICAgICAgICByZWFkczogWy4uLmRhdGEucmVhZHNdLFxuICAgICAgICB3cml0ZXM6IFsuLi5kYXRhLndyaXRlc10sXG4gICAgICAgIG9wZXJhdGlvbnM6IFsuLi5kYXRhLm9wZXJhdGlvbnNdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjb3B5O1xuICB9XG5cbiAgZ2V0U3RhZ2VEYXRhRm9yKHN0YWdlTmFtZTogc3RyaW5nKTogU3RhZ2VOYXJyYXRpdmVEYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5zdGFnZXMuZ2V0KHN0YWdlTmFtZSk7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBzdGFnZU5hbWU6IGRhdGEuc3RhZ2VOYW1lLFxuICAgICAgcmVhZHM6IFsuLi5kYXRhLnJlYWRzXSxcbiAgICAgIHdyaXRlczogWy4uLmRhdGEud3JpdGVzXSxcbiAgICAgIG9wZXJhdGlvbnM6IFsuLi5kYXRhLm9wZXJhdGlvbnNdLFxuICAgIH07XG4gIH1cblxuICB0b1NlbnRlbmNlcygpOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcblxuICAgIGZvciAoY29uc3Qgc3RhZ2VOYW1lIG9mIHRoaXMuc3RhZ2VPcmRlcikge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuc3RhZ2VzLmdldChzdGFnZU5hbWUpO1xuICAgICAgaWYgKCFkYXRhKSBjb250aW51ZTtcblxuICAgICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGlmICh0aGlzLmRldGFpbCA9PT0gJ3N1bW1hcnknKSB7XG4gICAgICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoZGF0YS5yZWFkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGFydHMucHVzaChgcmVhZCAke2RhdGEucmVhZHMubGVuZ3RofSB2YWx1ZSR7ZGF0YS5yZWFkcy5sZW5ndGggPiAxID8gJ3MnIDogJyd9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEud3JpdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXJ0cy5wdXNoKGB3cm90ZSAke2RhdGEud3JpdGVzLmxlbmd0aH0gdmFsdWUke2RhdGEud3JpdGVzLmxlbmd0aCA+IDEgPyAncycgOiAnJ31gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFydHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGxpbmVzLnB1c2goYCAgLSAke2NhcGl0YWxpemUocGFydHMuam9pbignLCAnKSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qgb3Agb2YgZGF0YS5vcGVyYXRpb25zKSB7XG4gICAgICAgICAgY29uc3Qgc3RlcFByZWZpeCA9IG9wLnN0ZXBOdW1iZXIgPyBgU3RlcCAke29wLnN0ZXBOdW1iZXJ9OiBgIDogJyc7XG4gICAgICAgICAgaWYgKG9wLnR5cGUgPT09ICdyZWFkJykge1xuICAgICAgICAgICAgbGluZXMucHVzaChcbiAgICAgICAgICAgICAgb3AudmFsdWVTdW1tYXJ5XG4gICAgICAgICAgICAgICAgPyBgICAtICR7c3RlcFByZWZpeH1SZWFkOiAke29wLmtleX0gPSAke29wLnZhbHVlU3VtbWFyeX1gXG4gICAgICAgICAgICAgICAgOiBgICAtICR7c3RlcFByZWZpeH1SZWFkOiAke29wLmtleX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wLm9wZXJhdGlvbiA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgLSAke3N0ZXBQcmVmaXh9RGVsZXRlOiAke29wLmtleX1gKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wLm9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYCAgLSAke3N0ZXBQcmVmaXh9VXBkYXRlOiAke29wLmtleX0gPSAke29wLnZhbHVlU3VtbWFyeX1gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGluZXMucHVzaChgICAtICR7c3RlcFByZWZpeH1Xcml0ZTogJHtvcC5rZXl9ID0gJHtvcC52YWx1ZVN1bW1hcnl9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdC5zZXQoc3RhZ2VOYW1lLCBsaW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHRvRmxhdFNlbnRlbmNlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHBlclN0YWdlID0gdGhpcy50b1NlbnRlbmNlcygpO1xuICAgIGZvciAoY29uc3QgW3N0YWdlTmFtZSwgbGluZXNdIG9mIHBlclN0YWdlKSB7XG4gICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgY29uc3QgY2xlYW5lZCA9IGxpbmUucmVwbGFjZSgvXlxccystXFxzKy8sICcnKTtcbiAgICAgICAgcmVzdWx0LnB1c2goYCR7c3RhZ2VOYW1lfTogJHtjbGVhbmVkfWApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGFnZXMuY2xlYXIoKTtcbiAgICB0aGlzLnN0YWdlT3JkZXIgPSBbXTtcbiAgfVxuXG4gIHNldERldGFpbChsZXZlbDogTmFycmF0aXZlRGV0YWlsKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhaWwgPSBsZXZlbDtcbiAgfVxuXG4gIGdldERldGFpbCgpOiBOYXJyYXRpdmVEZXRhaWwge1xuICAgIHJldHVybiB0aGlzLmRldGFpbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JDcmVhdGVTdGFnZURhdGEoc3RhZ2VOYW1lOiBzdHJpbmcpOiBTdGFnZU5hcnJhdGl2ZURhdGEge1xuICAgIGxldCBkYXRhID0gdGhpcy5zdGFnZXMuZ2V0KHN0YWdlTmFtZSk7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICBkYXRhID0geyBzdGFnZU5hbWUsIHJlYWRzOiBbXSwgd3JpdGVzOiBbXSwgb3BlcmF0aW9uczogW10gfTtcbiAgICAgIHRoaXMuc3RhZ2VzLnNldChzdGFnZU5hbWUsIGRhdGEpO1xuICAgICAgdGhpcy5zdGFnZU9yZGVyLnB1c2goc3RhZ2VOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn1cblxuLy8g4pSA4pSAIFByaXZhdGUgSGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZnVuY3Rpb24gc3VtbWFyaXplVmFsdWUodmFsdWU6IHVua25vd24sIG1heExlbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiAndW5kZWZpbmVkJztcbiAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJ251bGwnO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPD0gbWF4TGVuID8gYFwiJHt2YWx1ZX1cImAgOiBgXCIke3ZhbHVlLnNsaWNlKDAsIG1heExlbiAtIDMpfS4uLlwiYDtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPT09IDAgPyAnW10nIDogYCgke3ZhbHVlLmxlbmd0aH0gaXRlbSR7dmFsdWUubGVuZ3RoID4gMSA/ICdzJyA6ICcnfSlgO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHJldHVybiAne30nO1xuICAgIGNvbnN0IHByZXZpZXcgPSBrZXlzLnNsaWNlKDAsIDQpLmpvaW4oJywgJyk7XG4gICAgY29uc3Qgc3VmZml4ID0ga2V5cy5sZW5ndGggPiA0ID8gYCwgLi4uICgke2tleXMubGVuZ3RofSBrZXlzKWAgOiAnJztcbiAgICBjb25zdCByZXN1bHQgPSBgeyR7cHJldmlld30ke3N1ZmZpeH19YDtcbiAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCA8PSBtYXhMZW4gPyByZXN1bHQgOiBgeyR7a2V5cy5sZW5ndGh9IGtleXN9YDtcbiAgfVxuICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gY2FwaXRhbGl6ZShzOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcy5sZW5ndGggPT09IDAgPyBzIDogcy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHMuc2xpY2UoMSk7XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export { DebugRecorder } from './DebugRecorder';
2
+ export { MetricRecorder } from './MetricRecorder';
3
+ export { NarrativeRecorder } from './NarrativeRecorder';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3JlY29yZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBT2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbmV4cG9ydCB0eXBlIHsgQ29tbWl0RXZlbnQsIEVycm9yRXZlbnQsIFJlYWRFdmVudCwgUmVjb3JkZXIsIFJlY29yZGVyQ29udGV4dCwgU3RhZ2VFdmVudCwgV3JpdGVFdmVudCB9IGZyb20gJy4uL3R5cGVzJztcbmV4cG9ydCB0eXBlIHsgRGVidWdFbnRyeSwgRGVidWdSZWNvcmRlck9wdGlvbnMsIERlYnVnVmVyYm9zaXR5IH0gZnJvbSAnLi9EZWJ1Z1JlY29yZGVyJztcbmV4cG9ydCB7IERlYnVnUmVjb3JkZXIgfSBmcm9tICcuL0RlYnVnUmVjb3JkZXInO1xuZXhwb3J0IHR5cGUgeyBBZ2dyZWdhdGVkTWV0cmljcywgU3RhZ2VNZXRyaWNzIH0gZnJvbSAnLi9NZXRyaWNSZWNvcmRlcic7XG5leHBvcnQgeyBNZXRyaWNSZWNvcmRlciB9IGZyb20gJy4vTWV0cmljUmVjb3JkZXInO1xuZXhwb3J0IHR5cGUge1xuICBOYXJyYXRpdmVEZXRhaWwsXG4gIE5hcnJhdGl2ZU9wZXJhdGlvbixcbiAgTmFycmF0aXZlUmVjb3JkZXJPcHRpb25zLFxuICBTdGFnZU5hcnJhdGl2ZURhdGEsXG59IGZyb20gJy4vTmFycmF0aXZlUmVjb3JkZXInO1xuZXhwb3J0IHsgTmFycmF0aXZlUmVjb3JkZXIgfSBmcm9tICcuL05hcnJhdGl2ZVJlY29yZGVyJztcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /* istanbul ignore file */
2
+ /**
3
+ * installResolvers — Auto-registers the Zod scope resolver
4
+ */
5
+ import { registerScopeResolver } from '../providers/resolve';
6
+ import { ZodScopeResolver } from './zod';
7
+ let installed = false;
8
+ export function installDefaultResolvers() {
9
+ if (installed)
10
+ return;
11
+ registerScopeResolver(ZodScopeResolver);
12
+ installed = true;
13
+ }
14
+ installDefaultResolvers();
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbFJlc29sdmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2NvcGUvc3RhdGUvaW5zdGFsbFJlc29sdmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUI7O0dBRUc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFekMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsSUFBSSxTQUFTO1FBQUUsT0FBTztJQUN0QixxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hDLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDbkIsQ0FBQztBQUVELHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBpbnN0YWxsUmVzb2x2ZXJzIOKAlCBBdXRvLXJlZ2lzdGVycyB0aGUgWm9kIHNjb3BlIHJlc29sdmVyXG4gKi9cblxuaW1wb3J0IHsgcmVnaXN0ZXJTY29wZVJlc29sdmVyIH0gZnJvbSAnLi4vcHJvdmlkZXJzL3Jlc29sdmUnO1xuaW1wb3J0IHsgWm9kU2NvcGVSZXNvbHZlciB9IGZyb20gJy4vem9kJztcblxubGV0IGluc3RhbGxlZCA9IGZhbHNlO1xuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGxEZWZhdWx0UmVzb2x2ZXJzKCkge1xuICBpZiAoaW5zdGFsbGVkKSByZXR1cm47XG4gIHJlZ2lzdGVyU2NvcGVSZXNvbHZlcihab2RTY29wZVJlc29sdmVyKTtcbiAgaW5zdGFsbGVkID0gdHJ1ZTtcbn1cblxuaW5zdGFsbERlZmF1bHRSZXNvbHZlcnMoKTtcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ /**
2
+ * defineScopeFromZod — Build a ScopeFactory from a Zod object schema
3
+ */
4
+ import { attachScopeMethods } from '../../providers/baseStateCompatible';
5
+ import { createScopeProxyFromZod } from './scopeFactory';
6
+ export function defineScopeFromZod(schema, opts) {
7
+ var _a;
8
+ const strict = (_a = opts === null || opts === void 0 ? void 0 : opts.strict) !== null && _a !== void 0 ? _a : 'warn';
9
+ return (ctx, stageName, readOnly) => {
10
+ const proxy = createScopeProxyFromZod(ctx, schema, strict, readOnly);
11
+ return attachScopeMethods(proxy, ctx, stageName, readOnly);
12
+ };
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lU2NvcGVGcm9tWm9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2QvZGVmaW5lU2NvcGVGcm9tWm9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNekQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxNQUFTLEVBQ1QsSUFBeUI7O0lBRXpCLE1BQU0sTUFBTSxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sbUNBQUksTUFBTSxDQUFDO0lBQ3RDLE9BQU8sQ0FBQyxHQUFxQixFQUFFLFNBQWlCLEVBQUUsUUFBa0IsRUFBRSxFQUFFO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVmaW5lU2NvcGVGcm9tWm9kIOKAlCBCdWlsZCBhIFNjb3BlRmFjdG9yeSBmcm9tIGEgWm9kIG9iamVjdCBzY2hlbWFcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgYXR0YWNoU2NvcGVNZXRob2RzIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2Jhc2VTdGF0ZUNvbXBhdGlibGUnO1xuaW1wb3J0IHR5cGUgeyBTY29wZUZhY3RvcnksIFN0YWdlQ29udGV4dExpa2UsIFN0cmljdE1vZGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlU2NvcGVQcm94eUZyb21ab2QgfSBmcm9tICcuL3Njb3BlRmFjdG9yeSc7XG5cbmV4cG9ydCB0eXBlIERlZmluZVNjb3BlT3B0aW9ucyA9IHtcbiAgc3RyaWN0PzogU3RyaWN0TW9kZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVTY29wZUZyb21ab2Q8UyBleHRlbmRzIHouWm9kT2JqZWN0PGFueT4+KFxuICBzY2hlbWE6IFMsXG4gIG9wdHM/OiBEZWZpbmVTY29wZU9wdGlvbnMsXG4pOiBTY29wZUZhY3Rvcnk8YW55PiB7XG4gIGNvbnN0IHN0cmljdCA9IG9wdHM/LnN0cmljdCA/PyAnd2Fybic7XG4gIHJldHVybiAoY3R4OiBTdGFnZUNvbnRleHRMaWtlLCBzdGFnZU5hbWU6IHN0cmluZywgcmVhZE9ubHk/OiB1bmtub3duKSA9PiB7XG4gICAgY29uc3QgcHJveHkgPSBjcmVhdGVTY29wZVByb3h5RnJvbVpvZChjdHgsIHNjaGVtYSwgc3RyaWN0LCByZWFkT25seSk7XG4gICAgcmV0dXJuIGF0dGFjaFNjb3BlTWV0aG9kcyhwcm94eSwgY3R4LCBzdGFnZU5hbWUsIHJlYWRPbmx5KTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { defineScopeFromZod } from './defineScopeFromZod';
2
+ export { ZodScopeResolver } from './resolver';
3
+ export { defineScopeSchema, isScopeSchema } from './schema/builder';
4
+ export { createScopeProxyFromZod } from './scopeFactory';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbmV4cG9ydCB0eXBlIHsgRGVmaW5lU2NvcGVPcHRpb25zIH0gZnJvbSAnLi9kZWZpbmVTY29wZUZyb21ab2QnO1xuZXhwb3J0IHsgZGVmaW5lU2NvcGVGcm9tWm9kIH0gZnJvbSAnLi9kZWZpbmVTY29wZUZyb21ab2QnO1xuZXhwb3J0IHsgWm9kU2NvcGVSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXInO1xuZXhwb3J0IHsgZGVmaW5lU2NvcGVTY2hlbWEsIGlzU2NvcGVTY2hlbWEgfSBmcm9tICcuL3NjaGVtYS9idWlsZGVyJztcbmV4cG9ydCB7IGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kIH0gZnJvbSAnLi9zY29wZUZhY3RvcnknO1xuIl19
@@ -0,0 +1,28 @@
1
+ /**
2
+ * ZodScopeResolver — ProviderResolver for Zod-branded scope schemas
3
+ */
4
+ import { attachScopeMethods } from '../../providers/baseStateCompatible';
5
+ import { isScopeSchema } from './schema/builder';
6
+ import { createScopeProxyFromZod } from './scopeFactory';
7
+ function makeZodProvider(schema, strict = 'warn') {
8
+ return {
9
+ kind: 'zod',
10
+ create: (ctx, stageName, ro) => {
11
+ const proxy = createScopeProxyFromZod(ctx, schema, strict, ro);
12
+ return attachScopeMethods(proxy, ctx, stageName, ro);
13
+ },
14
+ };
15
+ }
16
+ export const ZodScopeResolver = {
17
+ name: 'zod',
18
+ canHandle(input) {
19
+ return isScopeSchema(input);
20
+ },
21
+ makeProvider(input, options) {
22
+ var _a, _b;
23
+ const schema = input;
24
+ const strict = (_b = (_a = options === null || options === void 0 ? void 0 : options.zod) === null || _a === void 0 ? void 0 : _a.strict) !== null && _b !== void 0 ? _b : 'warn';
25
+ return makeZodProvider(schema, strict);
26
+ },
27
+ };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC9yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxTQUFTLGVBQWUsQ0FBQyxNQUF3QixFQUFFLFNBQXFCLE1BQU07SUFDNUUsT0FBTztRQUNMLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLENBQUMsR0FBcUIsRUFBRSxTQUFpQixFQUFFLEVBQVksRUFBRSxFQUFFO1lBQ2pFLE1BQU0sS0FBSyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFCO0lBQ2hELElBQUksRUFBRSxLQUFLO0lBQ1gsU0FBUyxDQUFDLEtBQWM7UUFDdEIsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFjLEVBQUUsT0FBMkM7O1FBQ3RFLE1BQU0sTUFBTSxHQUFHLEtBQW9DLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxHQUFHLDBDQUFFLE1BQU0sbUNBQUksTUFBTSxDQUFDO1FBQzlDLE9BQU8sZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWm9kU2NvcGVSZXNvbHZlciDigJQgUHJvdmlkZXJSZXNvbHZlciBmb3IgWm9kLWJyYW5kZWQgc2NvcGUgc2NoZW1hc1xuICovXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBhdHRhY2hTY29wZU1ldGhvZHMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYmFzZVN0YXRlQ29tcGF0aWJsZSc7XG5pbXBvcnQgdHlwZSB7IFByb3ZpZGVyUmVzb2x2ZXIsIFNjb3BlUHJvdmlkZXIsIFN0YWdlQ29udGV4dExpa2UsIFN0cmljdE1vZGUgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvdHlwZXMnO1xuaW1wb3J0IHsgaXNTY29wZVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hL2J1aWxkZXInO1xuaW1wb3J0IHsgY3JlYXRlU2NvcGVQcm94eUZyb21ab2QgfSBmcm9tICcuL3Njb3BlRmFjdG9yeSc7XG5cbmZ1bmN0aW9uIG1ha2Vab2RQcm92aWRlcihzY2hlbWE6IHouWm9kT2JqZWN0PGFueT4sIHN0cmljdDogU3RyaWN0TW9kZSA9ICd3YXJuJyk6IFNjb3BlUHJvdmlkZXI8YW55PiB7XG4gIHJldHVybiB7XG4gICAga2luZDogJ3pvZCcsXG4gICAgY3JlYXRlOiAoY3R4OiBTdGFnZUNvbnRleHRMaWtlLCBzdGFnZU5hbWU6IHN0cmluZywgcm8/OiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBwcm94eSA9IGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kKGN0eCwgc2NoZW1hLCBzdHJpY3QsIHJvKTtcbiAgICAgIHJldHVybiBhdHRhY2hTY29wZU1ldGhvZHMocHJveHksIGN0eCwgc3RhZ2VOYW1lLCBybyk7XG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IFpvZFNjb3BlUmVzb2x2ZXI6IFByb3ZpZGVyUmVzb2x2ZXIgPSB7XG4gIG5hbWU6ICd6b2QnLFxuICBjYW5IYW5kbGUoaW5wdXQ6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNTY29wZVNjaGVtYShpbnB1dCk7XG4gIH0sXG4gIG1ha2VQcm92aWRlcihpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IHsgem9kPzogeyBzdHJpY3Q/OiBTdHJpY3RNb2RlIH0gfSk6IFNjb3BlUHJvdmlkZXI8YW55PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gaW5wdXQgYXMgdW5rbm93biBhcyB6LlpvZE9iamVjdDxhbnk+O1xuICAgIGNvbnN0IHN0cmljdCA9IG9wdGlvbnM/LnpvZD8uc3RyaWN0ID8/ICd3YXJuJztcbiAgICByZXR1cm4gbWFrZVpvZFByb3ZpZGVyKHNjaGVtYSwgc3RyaWN0KTtcbiAgfSxcbn07XG4iXX0=
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Scope Schema Builder — Brand-based schema factory
3
+ */
4
+ import { z } from 'zod';
5
+ export const SCOPE_SCHEMA_BRAND = Symbol.for('ScopeSchemaBrand@v1');
6
+ /** Define a scope shape (object only). Branded so only our builder mints valid scope schemas. */
7
+ export function defineScopeSchema(ext) {
8
+ const merged = z.object(ext).strict().describe('ScopeSchema@v1');
9
+ Object.defineProperty(merged, SCOPE_SCHEMA_BRAND, { value: true });
10
+ return merged;
11
+ }
12
+ /** Runtime guard */
13
+ export function isScopeSchema(x) {
14
+ return !!x && typeof x === 'object' && x[SCOPE_SCHEMA_BRAND] === true;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2NvcGUvc3RhdGUvem9kL3NjaGVtYS9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFJcEUsaUdBQWlHO0FBQ2pHLE1BQU0sVUFBVSxpQkFBaUIsQ0FBNEIsR0FBUTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsT0FBTyxNQUEwQixDQUFDO0FBQ3BDLENBQUM7QUFFRCxvQkFBb0I7QUFDcEIsTUFBTSxVQUFVLGFBQWEsQ0FBQyxDQUFVO0lBQ3RDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUssQ0FBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ2pGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjb3BlIFNjaGVtYSBCdWlsZGVyIOKAlCBCcmFuZC1iYXNlZCBzY2hlbWEgZmFjdG9yeVxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuXG5leHBvcnQgY29uc3QgU0NPUEVfU0NIRU1BX0JSQU5EID0gU3ltYm9sLmZvcignU2NvcGVTY2hlbWFCcmFuZEB2MScpO1xuXG5leHBvcnQgdHlwZSBTY29wZVNjaGVtYTxUIGV4dGVuZHMgei5ab2RSYXdTaGFwZSA9IGFueT4gPSB6LlpvZE9iamVjdDxUPiAmIHsgW1NDT1BFX1NDSEVNQV9CUkFORF06IHRydWUgfTtcblxuLyoqIERlZmluZSBhIHNjb3BlIHNoYXBlIChvYmplY3Qgb25seSkuIEJyYW5kZWQgc28gb25seSBvdXIgYnVpbGRlciBtaW50cyB2YWxpZCBzY29wZSBzY2hlbWFzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVNjb3BlU2NoZW1hPEV4dCBleHRlbmRzIHouWm9kUmF3U2hhcGU+KGV4dDogRXh0KSB7XG4gIGNvbnN0IG1lcmdlZCA9IHoub2JqZWN0KGV4dCkuc3RyaWN0KCkuZGVzY3JpYmUoJ1Njb3BlU2NoZW1hQHYxJyk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtZXJnZWQsIFNDT1BFX1NDSEVNQV9CUkFORCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIG1lcmdlZCBhcyBTY29wZVNjaGVtYTxFeHQ+O1xufVxuXG4vKiogUnVudGltZSBndWFyZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVTY2hlbWEoeDogdW5rbm93bik6IHggaXMgU2NvcGVTY2hlbWEge1xuICByZXR1cm4gISF4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAoeCBhcyBhbnkpW1NDT1BFX1NDSEVNQV9CUkFORF0gPT09IHRydWU7XG59XG4iXX0=
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Scope Proxy Factory — Build lazy, copy-on-write scope from a Zod object schema
3
+ */
4
+ import { z } from 'zod';
5
+ import { getRecordValueType, isZodNode, parseWithThis, unwrap } from './utils/validateHelper';
6
+ function validateOnWrite(schema, value, ctx, strict = 'warn', tag) {
7
+ var _a, _b;
8
+ if (strict === 'off')
9
+ return true;
10
+ try {
11
+ parseWithThis(schema, value);
12
+ return true;
13
+ }
14
+ catch (err) {
15
+ const msg = `[schema] invalid value in ${tag !== null && tag !== void 0 ? tag : 'set'}: ${(_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : 'zod error'}`;
16
+ (_b = ctx === null || ctx === void 0 ? void 0 : ctx.addError) === null || _b === void 0 ? void 0 : _b.call(ctx, 'schema', msg);
17
+ if (strict === 'warn')
18
+ return false;
19
+ throw err;
20
+ }
21
+ }
22
+ function analyze(schema) {
23
+ var _a;
24
+ const base = (_a = unwrap(schema)) !== null && _a !== void 0 ? _a : schema;
25
+ if (base instanceof z.ZodObject) {
26
+ const def = base._def;
27
+ const shapeOrFn = def === null || def === void 0 ? void 0 : def.shape;
28
+ const shapeObj = typeof shapeOrFn === 'function' ? shapeOrFn() : shapeOrFn !== null && shapeOrFn !== void 0 ? shapeOrFn : {};
29
+ const fields = {};
30
+ for (const [k, v] of Object.entries(shapeObj))
31
+ fields[k] = analyze(v);
32
+ return { kind: 'object', schema: base, fields };
33
+ }
34
+ if (base instanceof z.ZodRecord) {
35
+ const valueType = getRecordValueType(base);
36
+ return { kind: 'record', schema: base, value: analyze((valueType !== null && valueType !== void 0 ? valueType : z.any())) };
37
+ }
38
+ if (base instanceof z.ZodArray) {
39
+ const def = base._def;
40
+ const elemType = def === null || def === void 0 ? void 0 : def.type;
41
+ return { kind: 'array', schema: base, element: analyze((elemType !== null && elemType !== void 0 ? elemType : z.any())) };
42
+ }
43
+ return { kind: 'scalar', schema: base };
44
+ }
45
+ const join = (path, key) => (key ? [...path, key].join('.') : path.join('.'));
46
+ const readAt = (ctx, path, key) => ctx.getValue(path, key);
47
+ function makeProxy(ctx, node, path, key, strict) {
48
+ switch (node.kind) {
49
+ case 'scalar':
50
+ return {
51
+ get: () => readAt(ctx, path, key),
52
+ exists: () => typeof readAt(ctx, path, key) !== 'undefined',
53
+ set: (v) => {
54
+ if (!validateOnWrite(node.schema, v, ctx, strict, `set:${join(path, key)}`))
55
+ return;
56
+ ctx.setObject(path, key !== null && key !== void 0 ? key : '__', v);
57
+ },
58
+ };
59
+ case 'array': {
60
+ const base = makeProxy(ctx, { ...node, kind: 'scalar' }, path, key, strict);
61
+ base.push = (item) => {
62
+ var _a;
63
+ const cur = (_a = readAt(ctx, path, key)) !== null && _a !== void 0 ? _a : [];
64
+ const next = [...cur, item];
65
+ if (!validateOnWrite(node.schema, next, ctx, strict, `push:${join(path, key)}`))
66
+ return;
67
+ ctx.setObject(path, key !== null && key !== void 0 ? key : '__', next);
68
+ };
69
+ return base;
70
+ }
71
+ case 'record': {
72
+ const get = () => readAt(ctx, path, key);
73
+ const set = (v) => {
74
+ if (!validateOnWrite(node.schema, v, ctx, strict, `set:${join(path, key)}`))
75
+ return;
76
+ ctx.setObject(path, key !== null && key !== void 0 ? key : '__', v);
77
+ };
78
+ const merge = (p) => {
79
+ var _a;
80
+ const cur = (_a = get()) !== null && _a !== void 0 ? _a : {};
81
+ const next = { ...cur, ...p };
82
+ if (!validateOnWrite(node.schema, next, ctx, strict, `merge:${join(path, key)}`))
83
+ return;
84
+ ctx.updateObject(path, key !== null && key !== void 0 ? key : '__', p);
85
+ };
86
+ return {
87
+ at: (dynKey) => {
88
+ const parentPath = typeof key === 'string' ? [...path, key] : path;
89
+ return makeProxy(ctx, node.value, parentPath, dynKey, strict);
90
+ },
91
+ keys: () => { var _a; return Object.keys((_a = get()) !== null && _a !== void 0 ? _a : {}); },
92
+ get,
93
+ set,
94
+ merge,
95
+ exists: () => typeof get() !== 'undefined',
96
+ };
97
+ }
98
+ case 'object': {
99
+ const cache = new Map();
100
+ return new Proxy({}, {
101
+ get(target, prop) {
102
+ if (Object.prototype.hasOwnProperty.call(target, prop))
103
+ return Reflect.get(target, prop);
104
+ if (prop === 'then')
105
+ return undefined;
106
+ if (prop === 'asymmetricMatch')
107
+ return undefined;
108
+ if (prop === 'constructor')
109
+ return Object;
110
+ if (prop === Symbol.toStringTag)
111
+ return 'ScopeProxy';
112
+ if (prop === 'get')
113
+ return () => readAt(ctx, path, key);
114
+ if (prop === 'exists')
115
+ return () => {
116
+ const direct = readAt(ctx, path, key);
117
+ if (typeof direct !== 'undefined')
118
+ return true;
119
+ if (node.fields) {
120
+ const parentPath = typeof key === 'string' ? [...path, key] : path;
121
+ for (const childKey of Object.keys(node.fields)) {
122
+ if (typeof readAt(ctx, parentPath, childKey) !== 'undefined')
123
+ return true;
124
+ }
125
+ }
126
+ return false;
127
+ };
128
+ if (prop === 'toJSON')
129
+ return () => readAt(ctx, path, key);
130
+ if (typeof prop !== 'string')
131
+ return undefined;
132
+ if (!node.fields || !Object.prototype.hasOwnProperty.call(node.fields, prop)) {
133
+ throw new Error(`Unknown field '${String(prop)}' under ${join(path, key) || '<root>'} `);
134
+ }
135
+ if (cache.has(prop))
136
+ return cache.get(prop);
137
+ const child = node.fields[prop];
138
+ const parentPath = typeof key === 'string' ? [...path, key] : path;
139
+ const childProxy = makeProxy(ctx, child, parentPath, prop, strict);
140
+ cache.set(prop, childProxy);
141
+ return childProxy;
142
+ },
143
+ });
144
+ }
145
+ }
146
+ }
147
+ /** Build lazy, copy-on-write scope from a Zod object schema */
148
+ export function createScopeProxyFromZod(ctx, schema, strict = 'warn', readOnly) {
149
+ if (!isZodNode(schema))
150
+ throw new TypeError('createScopeProxyFromZod: expected a Zod object schema');
151
+ const root = analyze(schema);
152
+ const proxy = makeProxy(ctx, root, [], undefined, strict);
153
+ Object.defineProperty(proxy, 'ro', { value: readOnly, enumerable: false });
154
+ return proxy;
155
+ }
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGVGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zY29wZS9zdGF0ZS96b2Qvc2NvcGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFtQixDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFHekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUYsU0FBUyxlQUFlLENBQ3RCLE1BQWtCLEVBQ2xCLEtBQWMsRUFDZCxHQUFzQixFQUN0QixTQUFxQixNQUFNLEVBQzNCLEdBQVk7O0lBRVosSUFBSSxNQUFNLEtBQUssS0FBSztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2xDLElBQUksQ0FBQztRQUNILGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyxHQUFHLDZCQUE2QixHQUFHLGFBQUgsR0FBRyxjQUFILEdBQUcsR0FBSSxLQUFLLEtBQUssTUFBQyxHQUFXLGFBQVgsR0FBRyx1QkFBSCxHQUFHLENBQVUsT0FBTyxtQ0FBSSxXQUFXLEVBQUUsQ0FBQztRQUNqRyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLG9EQUFHLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEMsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDO0FBQ0gsQ0FBQztBQVdELFNBQVMsT0FBTyxDQUFDLE1BQWtCOztJQUNqQyxNQUFNLElBQUksR0FBRyxNQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUNBQUksTUFBTSxDQUFDO0lBRXRD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QUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjb3BlIFByb3h5IEZhY3Rvcnkg4oCUIEJ1aWxkIGxhenksIGNvcHktb24td3JpdGUgc2NvcGUgZnJvbSBhIFpvZCBvYmplY3Qgc2NoZW1hXG4gKi9cblxuaW1wb3J0IHsgdHlwZSBab2RUeXBlQW55LCB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHR5cGUgeyBTdGFnZUNvbnRleHRMaWtlLCBTdHJpY3RNb2RlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL3R5cGVzJztcbmltcG9ydCB7IGdldFJlY29yZFZhbHVlVHlwZSwgaXNab2ROb2RlLCBwYXJzZVdpdGhUaGlzLCB1bndyYXAgfSBmcm9tICcuL3V0aWxzL3ZhbGlkYXRlSGVscGVyJztcblxuZnVuY3Rpb24gdmFsaWRhdGVPbldyaXRlKFxuICBzY2hlbWE6IFpvZFR5cGVBbnksXG4gIHZhbHVlOiB1bmtub3duLFxuICBjdHg/OiBTdGFnZUNvbnRleHRMaWtlLFxuICBzdHJpY3Q6IFN0cmljdE1vZGUgPSAnd2FybicsXG4gIHRhZz86IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoc3RyaWN0ID09PSAnb2ZmJykgcmV0dXJuIHRydWU7XG4gIHRyeSB7XG4gICAgcGFyc2VXaXRoVGhpcyhzY2hlbWEsIHZhbHVlKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbXNnID0gYFtzY2hlbWFdIGludmFsaWQgdmFsdWUgaW4gJHt0YWcgPz8gJ3NldCd9OiAkeyhlcnIgYXMgYW55KT8ubWVzc2FnZSA/PyAnem9kIGVycm9yJ31gO1xuICAgIGN0eD8uYWRkRXJyb3I/Lignc2NoZW1hJywgbXNnKTtcbiAgICBpZiAoc3RyaWN0ID09PSAnd2FybicpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxudHlwZSBOb2RlS2luZCA9ICdvYmplY3QnIHwgJ3JlY29yZCcgfCAnYXJyYXknIHwgJ3NjYWxhcic7XG50eXBlIE5vZGUgPSB7XG4gIGtpbmQ6IE5vZGVLaW5kO1xuICBzY2hlbWE6IFpvZFR5cGVBbnk7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIE5vZGU+O1xuICB2YWx1ZT86IE5vZGU7XG4gIGVsZW1lbnQ/OiBOb2RlO1xufTtcblxuZnVuY3Rpb24gYW5hbHl6ZShzY2hlbWE6IFpvZFR5cGVBbnkpOiBOb2RlIHtcbiAgY29uc3QgYmFzZSA9IHVud3JhcChzY2hlbWEpID8/IHNjaGVtYTtcblxuICBpZiAoYmFzZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0KSB7XG4gICAgY29uc3QgZGVmID0gKGJhc2UgYXMgYW55KS5fZGVmO1xuICAgIGNvbnN0IHNoYXBlT3JGbiA9IGRlZj8uc2hhcGU7XG4gICAgY29uc3Qgc2hhcGVPYmo6IFJlY29yZDxzdHJpbmcsIFpvZFR5cGVBbnk+ID0gdHlwZW9mIHNoYXBlT3JGbiA9PT0gJ2Z1bmN0aW9uJyA/IHNoYXBlT3JGbigpIDogc2hhcGVPckZuID8/IHt9O1xuICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgTm9kZT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhzaGFwZU9iaikpIGZpZWxkc1trXSA9IGFuYWx5emUodiBhcyBab2RUeXBlQW55KTtcbiAgICByZXR1cm4geyBraW5kOiAnb2JqZWN0Jywgc2NoZW1hOiBiYXNlLCBmaWVsZHMgfTtcbiAgfVxuXG4gIGlmIChiYXNlIGluc3RhbmNlb2Ygei5ab2RSZWNvcmQpIHtcbiAgICBjb25zdCB2YWx1ZVR5cGUgPSBnZXRSZWNvcmRWYWx1ZVR5cGUoYmFzZSk7XG4gICAgcmV0dXJuIHsga2luZDogJ3JlY29yZCcsIHNjaGVtYTogYmFzZSwgdmFsdWU6IGFuYWx5emUoKHZhbHVlVHlwZSA/PyB6LmFueSgpKSBhcyBab2RUeXBlQW55KSB9O1xuICB9XG5cbiAgaWYgKGJhc2UgaW5zdGFuY2VvZiB6LlpvZEFycmF5KSB7XG4gICAgY29uc3QgZGVmID0gKGJhc2UgYXMgYW55KS5fZGVmO1xuICAgIGNvbnN0IGVsZW1UeXBlID0gZGVmPy50eXBlIGFzIFpvZFR5cGVBbnk7XG4gICAgcmV0dXJuIHsga2luZDogJ2FycmF5Jywgc2NoZW1hOiBiYXNlLCBlbGVtZW50OiBhbmFseXplKChlbGVtVHlwZSA/PyB6LmFueSgpKSBhcyBab2RUeXBlQW55KSB9O1xuICB9XG5cbiAgcmV0dXJuIHsga2luZDogJ3NjYWxhcicsIHNjaGVtYTogYmFzZSB9O1xufVxuXG5jb25zdCBqb2luID0gKHBhdGg6IHN0cmluZ1tdLCBrZXk/OiBzdHJpbmcpID0+IChrZXkgPyBbLi4ucGF0aCwga2V5XS5qb2luKCcuJykgOiBwYXRoLmpvaW4oJy4nKSk7XG5jb25zdCByZWFkQXQgPSA8VD4oY3R4OiBTdGFnZUNvbnRleHRMaWtlLCBwYXRoOiBzdHJpbmdbXSwga2V5Pzogc3RyaW5nKSA9PiBjdHguZ2V0VmFsdWUocGF0aCwga2V5KSBhcyBUIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBtYWtlUHJveHkoXG4gIGN0eDogU3RhZ2VDb250ZXh0TGlrZSxcbiAgbm9kZTogTm9kZSxcbiAgcGF0aDogc3RyaW5nW10sXG4gIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBzdHJpY3Q6IFN0cmljdE1vZGUsXG4pOiBhbnkge1xuICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgIGNhc2UgJ3NjYWxhcic6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQ6ICgpID0+IHJlYWRBdChjdHgsIHBhdGgsIGtleSksXG4gICAgICAgIGV4aXN0czogKCkgPT4gdHlwZW9mIHJlYWRBdChjdHgsIHBhdGgsIGtleSkgIT09ICd1bmRlZmluZWQnLFxuICAgICAgICBzZXQ6ICh2OiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgaWYgKCF2YWxpZGF0ZU9uV3JpdGUobm9kZS5zY2hlbWEsIHYsIGN0eCwgc3RyaWN0LCBgc2V0OiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgICAgY3R4LnNldE9iamVjdChwYXRoLCBrZXkgPz8gJ19fJywgdik7XG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCBiYXNlID0gbWFrZVByb3h5KGN0eCwgeyAuLi5ub2RlLCBraW5kOiAnc2NhbGFyJyB9LCBwYXRoLCBrZXksIHN0cmljdCk7XG4gICAgICBiYXNlLnB1c2ggPSAoaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBjb25zdCBjdXIgPSByZWFkQXQ8YW55W10+KGN0eCwgcGF0aCwga2V5KSA/PyBbXTtcbiAgICAgICAgY29uc3QgbmV4dCA9IFsuLi5jdXIsIGl0ZW1dO1xuICAgICAgICBpZiAoIXZhbGlkYXRlT25Xcml0ZShub2RlLnNjaGVtYSwgbmV4dCwgY3R4LCBzdHJpY3QsIGBwdXNoOiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC5zZXRPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIG5leHQpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBiYXNlO1xuICAgIH1cblxuICAgIGNhc2UgJ3JlY29yZCc6IHtcbiAgICAgIGNvbnN0IGdldCA9ICgpID0+IHJlYWRBdDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oY3R4LCBwYXRoLCBrZXkpO1xuICAgICAgY29uc3Qgc2V0ID0gKHY6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCB2LCBjdHgsIHN0cmljdCwgYHNldDoke2pvaW4ocGF0aCwga2V5KX1gKSkgcmV0dXJuO1xuICAgICAgICBjdHguc2V0T2JqZWN0KHBhdGgsIGtleSA/PyAnX18nLCB2KTtcbiAgICAgIH07XG4gICAgICBjb25zdCBtZXJnZSA9IChwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgICBjb25zdCBjdXIgPSBnZXQoKSA/PyB7fTtcbiAgICAgICAgY29uc3QgbmV4dCA9IHsgLi4uY3VyLCAuLi5wIH07XG4gICAgICAgIGlmICghdmFsaWRhdGVPbldyaXRlKG5vZGUuc2NoZW1hLCBuZXh0LCBjdHgsIHN0cmljdCwgYG1lcmdlOiR7am9pbihwYXRoLCBrZXkpfWApKSByZXR1cm47XG4gICAgICAgIGN0eC51cGRhdGVPYmplY3QocGF0aCwga2V5ID8/ICdfXycsIHApO1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF0OiAoZHluS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRQYXRoID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyBbLi4ucGF0aCwga2V5XSA6IHBhdGg7XG4gICAgICAgICAgcmV0dXJuIG1ha2VQcm94eShjdHgsIG5vZGUudmFsdWUhLCBwYXJlbnRQYXRoLCBkeW5LZXksIHN0cmljdCk7XG4gICAgICAgIH0sXG4gICAgICAgIGtleXM6ICgpID0+IE9iamVjdC5rZXlzKGdldCgpID8/IHt9KSxcbiAgICAgICAgZ2V0LFxuICAgICAgICBzZXQsXG4gICAgICAgIG1lcmdlLFxuICAgICAgICBleGlzdHM6ICgpID0+IHR5cGVvZiBnZXQoKSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgJ29iamVjdCc6IHtcbiAgICAgIGNvbnN0IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgZ2V0KHRhcmdldCwgcHJvcDogc3RyaW5nIHwgc3ltYm9sKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgcHJvcCkpIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQgYXMgYW55LCBwcm9wIGFzIGFueSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAndGhlbicpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2FzeW1tZXRyaWNNYXRjaCcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2NvbnN0cnVjdG9yJykgcmV0dXJuIE9iamVjdDtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSBTeW1ib2wudG9TdHJpbmdUYWcpIHJldHVybiAnU2NvcGVQcm94eSc7XG5cbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnZ2V0JykgcmV0dXJuICgpID0+IHJlYWRBdChjdHgsIHBhdGgsIGtleSk7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2V4aXN0cycpXG4gICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlyZWN0ID0gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRpcmVjdCAhPT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChub2RlLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gWy4uLnBhdGgsIGtleV0gOiBwYXRoO1xuICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZEtleSBvZiBPYmplY3Qua2V5cyhub2RlLmZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWFkQXQoY3R4LCBwYXJlbnRQYXRoLCBjaGlsZEtleSkgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0b0pTT04nKSByZXR1cm4gKCkgPT4gcmVhZEF0KGN0eCwgcGF0aCwga2V5KTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wICE9PSAnc3RyaW5nJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICghbm9kZS5maWVsZHMgfHwgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChub2RlLmZpZWxkcywgcHJvcCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGZpZWxkICcke1N0cmluZyhwcm9wKX0nIHVuZGVyICR7am9pbihwYXRoLCBrZXkpIHx8ICc8cm9vdD4nfSBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYWNoZS5oYXMocHJvcCkpIHJldHVybiBjYWNoZS5nZXQocHJvcCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5maWVsZHNbcHJvcF0hO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gWy4uLnBhdGgsIGtleV0gOiBwYXRoO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRQcm94eSA9IG1ha2VQcm94eShjdHgsIGNoaWxkLCBwYXJlbnRQYXRoLCBwcm9wLCBzdHJpY3QpO1xuICAgICAgICAgICAgY2FjaGUuc2V0KHByb3AsIGNoaWxkUHJveHkpO1xuICAgICAgICAgICAgcmV0dXJuIGNoaWxkUHJveHk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKiBCdWlsZCBsYXp5LCBjb3B5LW9uLXdyaXRlIHNjb3BlIGZyb20gYSBab2Qgb2JqZWN0IHNjaGVtYSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlUHJveHlGcm9tWm9kPFMgZXh0ZW5kcyB6LlpvZE9iamVjdDxhbnk+PihcbiAgY3R4OiBTdGFnZUNvbnRleHRMaWtlLFxuICBzY2hlbWE6IFMsXG4gIHN0cmljdDogU3RyaWN0TW9kZSA9ICd3YXJuJyxcbiAgcmVhZE9ubHk/OiB1bmtub3duLFxuKTogei5pbmZlcjxTPiAmIHsgcm8/OiB1bmtub3duIH0ge1xuICBpZiAoIWlzWm9kTm9kZShzY2hlbWEpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdjcmVhdGVTY29wZVByb3h5RnJvbVpvZDogZXhwZWN0ZWQgYSBab2Qgb2JqZWN0IHNjaGVtYScpO1xuICBjb25zdCByb290ID0gYW5hbHl6ZShzY2hlbWEgYXMgdW5rbm93biBhcyBab2RUeXBlQW55KTtcbiAgY29uc3QgcHJveHkgPSBtYWtlUHJveHkoY3R4LCByb290LCBbXSwgdW5kZWZpbmVkLCBzdHJpY3QpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHksICdybycsIHsgdmFsdWU6IHJlYWRPbmx5LCBlbnVtZXJhYmxlOiBmYWxzZSB9KTtcbiAgcmV0dXJuIHByb3h5O1xufVxuIl19
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Zod Validation Helpers — Cross-version compatible Zod utilities
3
+ */
4
+ import { z } from 'zod';
5
+ export function isZodNode(x) {
6
+ return !!(x &&
7
+ typeof x === 'object' &&
8
+ (x._def !== undefined ||
9
+ typeof x.parse === 'function' ||
10
+ typeof x.safeParse === 'function'));
11
+ }
12
+ /** Peel wrappers; returns the underlying base Zod node (or null). */
13
+ export function unwrap(schema) {
14
+ var _a;
15
+ let s = schema !== null && schema !== void 0 ? schema : null;
16
+ while (isZodNode(s)) {
17
+ const def = (_a = s._def) !== null && _a !== void 0 ? _a : {};
18
+ if (isZodNode(def.innerType)) {
19
+ s = def.innerType;
20
+ continue;
21
+ }
22
+ if (isZodNode(def.schema)) {
23
+ s = def.schema;
24
+ continue;
25
+ }
26
+ if (isZodNode(def.type)) {
27
+ s = def.type;
28
+ continue;
29
+ }
30
+ break;
31
+ }
32
+ return isZodNode(s) ? s : null;
33
+ }
34
+ /** Version-tolerant access to ZodRecord value schema. */
35
+ export function getRecordValueType(rec) {
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
37
+ const r = rec;
38
+ const def = (_a = r._def) !== null && _a !== void 0 ? _a : {};
39
+ return ((_j = (_g = (_e = (_d = (_c = (_b = r.valueSchema) !== null && _b !== void 0 ? _b : r.valueType) !== null && _c !== void 0 ? _c : def.valueType) !== null && _d !== void 0 ? _d : def.value) !== null && _e !== void 0 ? _e : (def.schema && ((_f = def.schema.valueType) !== null && _f !== void 0 ? _f : def.schema.value))) !== null && _g !== void 0 ? _g : (def.innerType && ((_h = def.innerType.valueType) !== null && _h !== void 0 ? _h : def.innerType.value))) !== null && _j !== void 0 ? _j : null);
40
+ }
41
+ function looksLikeBindingError(err) {
42
+ var _a;
43
+ const msg = (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : '';
44
+ return msg.includes('_zod') || msg.includes('inst._zod') || msg.includes('Cannot read properties of undefined');
45
+ }
46
+ const WRAPPER_CACHE = new WeakMap();
47
+ export function parseWithThis(schema, value) {
48
+ var _a;
49
+ const anySchema = schema;
50
+ if (typeof anySchema.safeParse === 'function') {
51
+ try {
52
+ const res = anySchema.safeParse(value);
53
+ if (res && typeof res === 'object' && Object.prototype.hasOwnProperty.call(res, 'success')) {
54
+ if (res.success)
55
+ return res.data;
56
+ throw res.error;
57
+ }
58
+ }
59
+ catch (err) {
60
+ if (!looksLikeBindingError(err))
61
+ throw err;
62
+ }
63
+ }
64
+ if (typeof anySchema.safeParse === 'function') {
65
+ try {
66
+ const res = anySchema.safeParse.call(schema, value);
67
+ if (res && typeof res === 'object' && Object.prototype.hasOwnProperty.call(res, 'success')) {
68
+ if (res.success)
69
+ return res.data;
70
+ throw res.error;
71
+ }
72
+ }
73
+ catch (err) {
74
+ if (!looksLikeBindingError(err))
75
+ throw err;
76
+ }
77
+ }
78
+ if (typeof anySchema.parse === 'function') {
79
+ try {
80
+ return anySchema.parse(value);
81
+ }
82
+ catch (err) {
83
+ if (!looksLikeBindingError(err))
84
+ throw err;
85
+ }
86
+ }
87
+ let wrapper = WRAPPER_CACHE.get(schema);
88
+ if (!wrapper) {
89
+ wrapper = z.any().pipe(schema);
90
+ WRAPPER_CACHE.set(schema, wrapper);
91
+ }
92
+ const res = wrapper.safeParse(value);
93
+ if (res && res.success)
94
+ return res.data;
95
+ throw (_a = res === null || res === void 0 ? void 0 : res.error) !== null && _a !== void 0 ? _a : new TypeError('Zod validation binding failed (wrapper fallback).');
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3N0YXRlL3pvZC91dGlscy92YWxpZGF0ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBbUMsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXpELE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBVTtJQUNsQyxPQUFPLENBQUMsQ0FBQyxDQUNQLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQ3JCLENBQUUsQ0FBUyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQzVCLE9BQVEsQ0FBUyxDQUFDLEtBQUssS0FBSyxVQUFVO1lBQ3RDLE9BQVEsQ0FBUyxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FDOUMsQ0FBQztBQUNKLENBQUM7QUFFRCxxRUFBcUU7QUFDckUsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFxQzs7SUFDMUQsSUFBSSxDQUFDLEdBQVksTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksSUFBSSxDQUFDO0lBQ2hDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBQyxDQUFTLENBQUMsSUFBSSxtQ0FBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0IsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDbEIsU0FBUztRQUNYLENBQUM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUNmLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENB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TSxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsTUFBTSxHQUFHLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUM7WUFDSCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDO2dCQUFFLE1BQU0sR0FBRyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEdBQUksQ0FBQyxDQUFDLEdBQUcsRUFBVSxDQUFDLElBQUksQ0FBQyxNQUFhLENBQUMsQ0FBQztRQUMvQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsTUFBTSxHQUFHLEdBQUksT0FBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUV4QyxNQUFNLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssbUNBQUksSUFBSSxTQUFTLENBQUMsbURBQW1ELENBQUMsQ0FBQztBQUN6RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBab2QgVmFsaWRhdGlvbiBIZWxwZXJzIOKAlCBDcm9zcy12ZXJzaW9uIGNvbXBhdGlibGUgWm9kIHV0aWxpdGllc1xuICovXG5cbmltcG9ydCB7IHR5cGUgWm9kUmVjb3JkLCB0eXBlIFpvZFR5cGVBbnksIHogfSBmcm9tICd6b2QnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNab2ROb2RlKHg6IHVua25vd24pOiB4IGlzIFpvZFR5cGVBbnkge1xuICByZXR1cm4gISEoXG4gICAgeCAmJlxuICAgIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJlxuICAgICgoeCBhcyBhbnkpLl9kZWYgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgdHlwZW9mICh4IGFzIGFueSkucGFyc2UgPT09ICdmdW5jdGlvbicgfHxcbiAgICAgIHR5cGVvZiAoeCBhcyBhbnkpLnNhZmVQYXJzZSA9PT0gJ2Z1bmN0aW9uJylcbiAgKTtcbn1cblxuLyoqIFBlZWwgd3JhcHBlcnM7IHJldHVybnMgdGhlIHVuZGVybHlpbmcgYmFzZSBab2Qgbm9kZSAob3IgbnVsbCkuICovXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwKHNjaGVtYTogWm9kVHlwZUFueSB8IG51bGwgfCB1bmRlZmluZWQpOiBab2RUeXBlQW55IHwgbnVsbCB7XG4gIGxldCBzOiB1bmtub3duID0gc2NoZW1hID8/IG51bGw7XG4gIHdoaWxlIChpc1pvZE5vZGUocykpIHtcbiAgICBjb25zdCBkZWYgPSAocyBhcyBhbnkpLl9kZWYgPz8ge307XG4gICAgaWYgKGlzWm9kTm9kZShkZWYuaW5uZXJUeXBlKSkge1xuICAgICAgcyA9IGRlZi5pbm5lclR5cGU7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGlzWm9kTm9kZShkZWYuc2NoZW1hKSkge1xuICAgICAgcyA9IGRlZi5zY2hlbWE7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGlzWm9kTm9kZShkZWYudHlwZSkpIHtcbiAgICAgIHMgPSBkZWYudHlwZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gaXNab2ROb2RlKHMpID8gKHMgYXMgWm9kVHlwZUFueSkgOiBudWxsO1xufVxuXG4vKiogVmVyc2lvbi10b2xlcmFudCBhY2Nlc3MgdG8gWm9kUmVjb3JkIHZhbHVlIHNjaGVtYS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWNvcmRWYWx1ZVR5cGUocmVjOiBab2RSZWNvcmQ8YW55LCBhbnk+KTogWm9kVHlwZUFueSB8IG51bGwge1xuICBjb25zdCByOiBhbnkgPSByZWMgYXMgYW55O1xuICBjb25zdCBkZWYgPSByLl9kZWYgPz8ge307XG4gIHJldHVybiAoXG4gICAgci52YWx1ZVNjaGVtYSA/P1xuICAgIHIudmFsdWVUeXBlID8/XG4gICAgZGVmLnZhbHVlVHlwZSA/P1xuICAgIGRlZi52YWx1ZSA/P1xuICAgIChkZWYuc2NoZW1hICYmIChkZWYuc2NoZW1hLnZhbHVlVHlwZSA/PyBkZWYuc2NoZW1hLnZhbHVlKSkgPz9cbiAgICAoZGVmLmlubmVyVHlwZSAmJiAoZGVmLmlubmVyVHlwZS52YWx1ZVR5cGUgPz8gZGVmLmlubmVyVHlwZS52YWx1ZSkpID8/XG4gICAgbnVsbFxuICApO1xufVxuXG5mdW5jdGlvbiBsb29rc0xpa2VCaW5kaW5nRXJyb3IoZXJyOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGNvbnN0IG1zZyA9IChlcnIgYXMgYW55KT8ubWVzc2FnZSA/PyAnJztcbiAgcmV0dXJuIG1zZy5pbmNsdWRlcygnX3pvZCcpIHx8IG1zZy5pbmNsdWRlcygnaW5zdC5fem9kJykgfHwgbXNnLmluY2x1ZGVzKCdDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mIHVuZGVmaW5lZCcpO1xufVxuXG5jb25zdCBXUkFQUEVSX0NBQ0hFID0gbmV3IFdlYWtNYXA8Wm9kVHlwZUFueSwgWm9kVHlwZUFueT4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlV2l0aFRoaXMoc2NoZW1hOiBab2RUeXBlQW55LCB2YWx1ZTogdW5rbm93bik6IHVua25vd24ge1xuICBjb25zdCBhbnlTY2hlbWEgPSBzY2hlbWEgYXMgYW55O1xuXG4gIGlmICh0eXBlb2YgYW55U2NoZW1hLnNhZmVQYXJzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhbnlTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKTtcbiAgICAgIGlmIChyZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcywgJ3N1Y2Nlc3MnKSkge1xuICAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHJldHVybiByZXMuZGF0YTtcbiAgICAgICAgdGhyb3cgcmVzLmVycm9yO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKCFsb29rc0xpa2VCaW5kaW5nRXJyb3IoZXJyKSkgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgYW55U2NoZW1hLnNhZmVQYXJzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhbnlTY2hlbWEuc2FmZVBhcnNlLmNhbGwoc2NoZW1hLCB2YWx1ZSk7XG4gICAgICBpZiAocmVzICYmIHR5cGVvZiByZXMgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXMsICdzdWNjZXNzJykpIHtcbiAgICAgICAgaWYgKHJlcy5zdWNjZXNzKSByZXR1cm4gcmVzLmRhdGE7XG4gICAgICAgIHRocm93IHJlcy5lcnJvcjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICghbG9va3NMaWtlQmluZGluZ0Vycm9yKGVycikpIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIGFueVNjaGVtYS5wYXJzZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYW55U2NoZW1hLnBhcnNlKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICghbG9va3NMaWtlQmluZGluZ0Vycm9yKGVycikpIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBsZXQgd3JhcHBlciA9IFdSQVBQRVJfQ0FDSEUuZ2V0KHNjaGVtYSk7XG4gIGlmICghd3JhcHBlcikge1xuICAgIHdyYXBwZXIgPSAoei5hbnkoKSBhcyBhbnkpLnBpcGUoc2NoZW1hIGFzIGFueSk7XG4gICAgV1JBUFBFUl9DQUNIRS5zZXQoc2NoZW1hLCB3cmFwcGVyISk7XG4gIH1cbiAgY29uc3QgcmVzID0gKHdyYXBwZXIgYXMgYW55KS5zYWZlUGFyc2UodmFsdWUpO1xuICBpZiAocmVzICYmIHJlcy5zdWNjZXNzKSByZXR1cm4gcmVzLmRhdGE7XG5cbiAgdGhyb3cgcmVzPy5lcnJvciA/PyBuZXcgVHlwZUVycm9yKCdab2QgdmFsaWRhdGlvbiBiaW5kaW5nIGZhaWxlZCAod3JhcHBlciBmYWxsYmFjaykuJyk7XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Scope Type Definitions
3
+ *
4
+ * Core types for the composable Scope system with pluggable Recorders.
5
+ * Architecture follows composition-over-inheritance: Recorders are
6
+ * attached to Scope instances to observe read/write/commit operations.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2NvcGUgVHlwZSBEZWZpbml0aW9uc1xuICpcbiAqIENvcmUgdHlwZXMgZm9yIHRoZSBjb21wb3NhYmxlIFNjb3BlIHN5c3RlbSB3aXRoIHBsdWdnYWJsZSBSZWNvcmRlcnMuXG4gKiBBcmNoaXRlY3R1cmUgZm9sbG93cyBjb21wb3NpdGlvbi1vdmVyLWluaGVyaXRhbmNlOiBSZWNvcmRlcnMgYXJlXG4gKiBhdHRhY2hlZCB0byBTY29wZSBpbnN0YW5jZXMgdG8gb2JzZXJ2ZSByZWFkL3dyaXRlL2NvbW1pdCBvcGVyYXRpb25zLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEV2ZW50IFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgdGltZXN0YW1wOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZEV2ZW50IGV4dGVuZHMgUmVjb3JkZXJDb250ZXh0IHtcbiAga2V5Pzogc3RyaW5nO1xuICB2YWx1ZTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXcml0ZUV2ZW50IGV4dGVuZHMgUmVjb3JkZXJDb250ZXh0IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiB1bmtub3duO1xuICBvcGVyYXRpb246ICdzZXQnIHwgJ3VwZGF0ZScgfCAnZGVsZXRlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21taXRFdmVudCBleHRlbmRzIFJlY29yZGVyQ29udGV4dCB7XG4gIG11dGF0aW9uczogQXJyYXk8e1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiB1bmtub3duO1xuICAgIG9wZXJhdGlvbjogJ3NldCcgfCAndXBkYXRlJyB8ICdkZWxldGUnO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckV2ZW50IGV4dGVuZHMgUmVjb3JkZXJDb250ZXh0IHtcbiAgZXJyb3I6IEVycm9yO1xuICBvcGVyYXRpb246ICdyZWFkJyB8ICd3cml0ZScgfCAnY29tbWl0JztcbiAga2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlRXZlbnQgZXh0ZW5kcyBSZWNvcmRlckNvbnRleHQge1xuICBkdXJhdGlvbj86IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVjb3JkZXIgSW50ZXJmYWNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUGx1Z2dhYmxlIG9ic2VydmVyIGZvciBzY29wZSBvcGVyYXRpb25zLlxuICpcbiAqIEFsbCBtZXRob2RzIGFyZSBvcHRpb25hbCDigJQgaW1wbGVtZW50IG9ubHkgdGhlIGhvb2tzIHlvdSBuZWVkLlxuICogUmVjb3JkZXJzIGFyZSBpbnZva2VkIHN5bmNocm9ub3VzbHkgaW4gYXR0YWNobWVudCBvcmRlci5cbiAqIElmIGEgcmVjb3JkZXIgdGhyb3dzLCB0aGUgZXJyb3IgaXMgY2F1Z2h0IGFuZCBwYXNzZWQgdG8gb25FcnJvclxuICogaG9va3Mgb2Ygb3RoZXIgcmVjb3JkZXJzOyB0aGUgc2NvcGUgb3BlcmF0aW9uIGNvbnRpbnVlcyBub3JtYWxseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIG9uUmVhZD8oZXZlbnQ6IFJlYWRFdmVudCk6IHZvaWQ7XG4gIG9uV3JpdGU/KGV2ZW50OiBXcml0ZUV2ZW50KTogdm9pZDtcbiAgb25Db21taXQ/KGV2ZW50OiBDb21taXRFdmVudCk6IHZvaWQ7XG4gIG9uRXJyb3I/KGV2ZW50OiBFcnJvckV2ZW50KTogdm9pZDtcbiAgb25TdGFnZVN0YXJ0PyhldmVudDogU3RhZ2VFdmVudCk6IHZvaWQ7XG4gIG9uU3RhZ2VFbmQ/KGV2ZW50OiBTdGFnZUV2ZW50KTogdm9pZDtcbn1cbiJdfQ==