yaml-flow 5.4.2 → 7.0.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 (252) hide show
  1. package/board-live-cards-cli.js +6 -6
  2. package/browser/asset-integrity.json +10 -0
  3. package/browser/board-livecards-client.js +2 -0
  4. package/browser/board-livecards-client.js.map +1 -0
  5. package/browser/board-livecards-localstorage.js +10 -0
  6. package/browser/board-livecards-localstorage.js.map +1 -0
  7. package/browser/board-livegraph-engine.js +2 -1676
  8. package/browser/board-livegraph-engine.js.map +1 -1
  9. package/browser/card-compute.js +28 -28
  10. package/browser/compute-jsonata.js +5 -0
  11. package/browser/compute-jsonata.js.map +1 -0
  12. package/browser/live-cards.js +561 -129
  13. package/browser/live-cards.schema.json +418 -132
  14. package/card-store.js +37 -0
  15. package/dist/batch/index.cjs +1 -108
  16. package/dist/batch/index.cjs.map +1 -1
  17. package/dist/batch/index.js +1 -106
  18. package/dist/batch/index.js.map +1 -1
  19. package/dist/board-live-cards-lib-Bg6EvCo5.d.cts +136 -0
  20. package/dist/board-live-cards-lib-jM2uYG1v.d.ts +136 -0
  21. package/dist/board-live-cards-public-CW5074xr.d.cts +318 -0
  22. package/dist/board-live-cards-public-hnZo0mAf.d.ts +318 -0
  23. package/dist/board-livegraph-runtime/index.cjs +2 -1671
  24. package/dist/board-livegraph-runtime/index.cjs.map +1 -1
  25. package/dist/board-livegraph-runtime/index.d.cts +12 -11
  26. package/dist/board-livegraph-runtime/index.d.ts +12 -11
  27. package/dist/board-livegraph-runtime/index.js +2 -1662
  28. package/dist/board-livegraph-runtime/index.js.map +1 -1
  29. package/dist/board-livegraph-runtime/jsonata-sync.cjs +7623 -0
  30. package/dist/card-compute/index.cjs +9 -7159
  31. package/dist/card-compute/index.cjs.map +1 -1
  32. package/dist/card-compute/index.d.cts +27 -1
  33. package/dist/card-compute/index.d.ts +27 -1
  34. package/dist/card-compute/index.js +9 -7145
  35. package/dist/card-compute/index.js.map +1 -1
  36. package/dist/card-compute/jsonata-sync.cjs +7623 -0
  37. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs +3 -0
  38. package/dist/cli/browser-api/board-live-cards-browser-adapter.cjs.map +1 -0
  39. package/dist/cli/browser-api/board-live-cards-browser-adapter.d.cts +37 -0
  40. package/dist/cli/browser-api/board-live-cards-browser-adapter.d.ts +37 -0
  41. package/dist/cli/browser-api/board-live-cards-browser-adapter.js +3 -0
  42. package/dist/cli/browser-api/board-live-cards-browser-adapter.js.map +1 -0
  43. package/dist/cli/browser-api/card-store-browser-api.cjs +2 -0
  44. package/dist/cli/browser-api/card-store-browser-api.cjs.map +1 -0
  45. package/dist/cli/browser-api/card-store-browser-api.d.cts +26 -0
  46. package/dist/cli/browser-api/card-store-browser-api.d.ts +26 -0
  47. package/dist/cli/browser-api/card-store-browser-api.js +2 -0
  48. package/dist/cli/browser-api/card-store-browser-api.js.map +1 -0
  49. package/dist/cli/browser-api/jsonata-sync.cjs +7623 -0
  50. package/dist/cli/node/artifacts-store-cli.cjs +11 -0
  51. package/dist/cli/node/artifacts-store-cli.cjs.map +1 -0
  52. package/dist/cli/node/artifacts-store-cli.d.cts +8 -0
  53. package/dist/cli/node/artifacts-store-cli.d.ts +8 -0
  54. package/dist/cli/node/artifacts-store-cli.js +11 -0
  55. package/dist/cli/node/artifacts-store-cli.js.map +1 -0
  56. package/dist/cli/node/board-live-cards-cli.cjs +15 -0
  57. package/dist/cli/node/board-live-cards-cli.cjs.map +1 -0
  58. package/dist/cli/node/board-live-cards-cli.d.cts +20 -0
  59. package/dist/cli/node/board-live-cards-cli.d.ts +20 -0
  60. package/dist/cli/node/board-live-cards-cli.js +15 -0
  61. package/dist/cli/node/board-live-cards-cli.js.map +1 -0
  62. package/dist/cli/node/card-store-cli.cjs +8 -0
  63. package/dist/cli/node/card-store-cli.cjs.map +1 -0
  64. package/dist/cli/node/card-store-cli.d.cts +15 -0
  65. package/dist/cli/node/card-store-cli.d.ts +15 -0
  66. package/dist/cli/node/card-store-cli.js +8 -0
  67. package/dist/cli/node/card-store-cli.js.map +1 -0
  68. package/dist/cli/node/execution-adapter.cjs +3 -0
  69. package/dist/cli/node/execution-adapter.cjs.map +1 -0
  70. package/dist/cli/node/execution-adapter.d.cts +174 -0
  71. package/dist/cli/node/execution-adapter.d.ts +174 -0
  72. package/dist/cli/node/execution-adapter.js +3 -0
  73. package/dist/cli/node/execution-adapter.js.map +1 -0
  74. package/dist/cli/node/fs-board-adapter.cjs +14 -0
  75. package/dist/cli/node/fs-board-adapter.cjs.map +1 -0
  76. package/dist/cli/node/fs-board-adapter.d.cts +204 -0
  77. package/dist/cli/node/fs-board-adapter.d.ts +204 -0
  78. package/dist/cli/node/fs-board-adapter.js +14 -0
  79. package/dist/cli/node/fs-board-adapter.js.map +1 -0
  80. package/dist/cli/node/jsonata-sync.cjs +7623 -0
  81. package/dist/cli/node/source-cli-task-executor.cjs +11 -0
  82. package/dist/cli/node/source-cli-task-executor.cjs.map +1 -0
  83. package/dist/cli/node/source-cli-task-executor.d.cts +1 -0
  84. package/dist/cli/node/source-cli-task-executor.d.ts +1 -0
  85. package/dist/cli/node/source-cli-task-executor.js +11 -0
  86. package/dist/cli/node/source-cli-task-executor.js.map +1 -0
  87. package/dist/config/index.cjs +1 -79
  88. package/dist/config/index.cjs.map +1 -1
  89. package/dist/config/index.js +1 -76
  90. package/dist/config/index.js.map +1 -1
  91. package/dist/continuous-event-graph/index.cjs +2 -2129
  92. package/dist/continuous-event-graph/index.cjs.map +1 -1
  93. package/dist/continuous-event-graph/index.d.cts +81 -5
  94. package/dist/continuous-event-graph/index.d.ts +81 -5
  95. package/dist/continuous-event-graph/index.js +2 -2088
  96. package/dist/continuous-event-graph/index.js.map +1 -1
  97. package/dist/continuous-event-graph/jsonata-sync.cjs +7623 -0
  98. package/dist/event-graph/index.cjs +22 -8292
  99. package/dist/event-graph/index.cjs.map +1 -1
  100. package/dist/event-graph/index.js +22 -8237
  101. package/dist/event-graph/index.js.map +1 -1
  102. package/dist/execution-refs.cjs +3 -0
  103. package/dist/execution-refs.cjs.map +1 -0
  104. package/dist/execution-refs.d.cts +260 -0
  105. package/dist/execution-refs.d.ts +260 -0
  106. package/dist/execution-refs.js +3 -0
  107. package/dist/execution-refs.js.map +1 -0
  108. package/dist/index.cjs +29 -13221
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.d.cts +2 -4
  111. package/dist/index.d.ts +2 -4
  112. package/dist/index.js +29 -13112
  113. package/dist/index.js.map +1 -1
  114. package/dist/inference/index.cjs +5 -617
  115. package/dist/inference/index.cjs.map +1 -1
  116. package/dist/inference/index.js +5 -610
  117. package/dist/inference/index.js.map +1 -1
  118. package/dist/jsonata-sync.cjs +7623 -0
  119. package/dist/{live-cards-bridge-x5XREkXm.d.cts → live-cards-bridge-BXbVTsna.d.cts} +27 -4
  120. package/dist/{live-cards-bridge-EQjytzI_.d.ts → live-cards-bridge-Ds28XR15.d.ts} +27 -4
  121. package/dist/server-runtime/index.cjs +9 -0
  122. package/dist/server-runtime/index.cjs.map +1 -0
  123. package/dist/server-runtime/index.d.cts +31 -0
  124. package/dist/server-runtime/index.d.ts +31 -0
  125. package/dist/server-runtime/index.js +9 -0
  126. package/dist/server-runtime/index.js.map +1 -0
  127. package/dist/server-runtime/jsonata-sync.cjs +7623 -0
  128. package/dist/step-machine/index.cjs +11 -7129
  129. package/dist/step-machine/index.cjs.map +1 -1
  130. package/dist/step-machine/index.js +11 -7113
  131. package/dist/step-machine/index.js.map +1 -1
  132. package/dist/step-machine-public/index.cjs +2 -0
  133. package/dist/step-machine-public/index.cjs.map +1 -0
  134. package/dist/step-machine-public/index.d.cts +159 -0
  135. package/dist/step-machine-public/index.d.ts +159 -0
  136. package/dist/step-machine-public/index.js +2 -0
  137. package/dist/step-machine-public/index.js.map +1 -0
  138. package/dist/step-machine-public/jsonata-sync.cjs +7623 -0
  139. package/dist/storage-refs.cjs +10 -0
  140. package/dist/storage-refs.cjs.map +1 -0
  141. package/dist/storage-refs.d.cts +93 -0
  142. package/dist/storage-refs.d.ts +93 -0
  143. package/dist/storage-refs.js +10 -0
  144. package/dist/storage-refs.js.map +1 -0
  145. package/dist/stores/file.cjs +1 -114
  146. package/dist/stores/file.cjs.map +1 -1
  147. package/dist/stores/file.js +1 -112
  148. package/dist/stores/file.js.map +1 -1
  149. package/dist/stores/index.cjs +1 -231
  150. package/dist/stores/index.cjs.map +1 -1
  151. package/dist/stores/index.js +1 -227
  152. package/dist/stores/index.js.map +1 -1
  153. package/dist/stores/localStorage.cjs +1 -76
  154. package/dist/stores/localStorage.cjs.map +1 -1
  155. package/dist/stores/localStorage.js +1 -74
  156. package/dist/stores/localStorage.js.map +1 -1
  157. package/dist/stores/memory.cjs +1 -47
  158. package/dist/stores/memory.cjs.map +1 -1
  159. package/dist/stores/memory.js +1 -45
  160. package/dist/stores/memory.js.map +1 -1
  161. package/dist/types-B1ZRa4aI.d.ts +147 -0
  162. package/dist/types-BxEFcVK9.d.cts +147 -0
  163. package/examples/browser/boards/portfolio-tracker/portfolio-t4.js +291 -0
  164. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.js +218 -0
  165. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-fetch-prices.py +201 -0
  166. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-http-test.js +357 -0
  167. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-inference-adapter.js +25 -16
  168. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-public.js +552 -0
  169. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.js +300 -0
  170. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-server.py +617 -0
  171. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-sse-worker.js +48 -0
  172. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.py +366 -0
  173. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/.runtime-out +1 -0
  174. package/examples/cli/step-machine-cli/portfolio-tracker/--base-ref/board-graph.json +32 -0
  175. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +70 -3
  176. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +16 -11
  177. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +9 -8
  178. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/poll-status-cli.js +49 -0
  179. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +2 -6
  180. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +4 -8
  181. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +3 -7
  182. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +9 -8
  183. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +12 -17
  184. package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +2 -6
  185. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/_board_pycli.py +107 -0
  186. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/add-cards.py +51 -0
  187. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/init-board.py +45 -0
  188. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/poll-status.py +71 -0
  189. package/examples/cli/step-machine-cli/portfolio-tracker/handlers-py/reset-board-dir.py +36 -0
  190. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-demo.flow.yaml +26 -0
  191. package/examples/cli/step-machine-cli/portfolio-tracker/inline-python-handlers.py +39 -0
  192. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker-pycli.flow.yaml +80 -0
  193. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +36 -187
  194. package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +40 -34
  195. package/examples/cli/step-machine-cli/portfolio-tracker/run-inline-python-demo-pycli.py +43 -0
  196. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker-pycli.py +77 -0
  197. package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +1 -2
  198. package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +8 -13
  199. package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +33 -9
  200. package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +3 -1
  201. package/examples/cli/step-machine-demo/step2-double-cli.js +6 -12
  202. package/examples/cli/step-machine-demo/two-step-math.flow.yaml +66 -4
  203. package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +13 -5
  204. package/examples/example-board/agent-instructions.md +11 -5
  205. package/examples/example-board/cards/_index.json +47 -0
  206. package/examples/example-board/cards/card-market-prices.json +33 -9
  207. package/examples/example-board/cards/card-my-identity.json +30 -6
  208. package/examples/example-board/cards/card-portfolio-action.json +24 -6
  209. package/examples/example-board/cards/card-portfolio-intelligence.json +97 -0
  210. package/examples/example-board/cards/card-portfolio-risks.json +24 -6
  211. package/examples/example-board/cards/card-portfolio-value.json +38 -10
  212. package/examples/example-board/cards/card-portfolio.json +57 -13
  213. package/examples/example-board/cards/card-rebalance-impact.json +22 -6
  214. package/examples/example-board/cards/card-rebalance-sim.json +66 -15
  215. package/examples/example-board/demo-chat-handler.js +14 -4
  216. package/examples/example-board/demo-server-config.json +1 -0
  217. package/examples/example-board/demo-server.js +366 -68
  218. package/examples/example-board/demo-shell-localstorage.html +774 -0
  219. package/examples/example-board/demo-shell-with-server.html +20 -37
  220. package/examples/example-board/demo-shell.html +5 -4
  221. package/examples/example-board/demo-task-executor.js +273 -275
  222. package/examples/index.html +0 -14
  223. package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +0 -1
  224. package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +1 -2
  225. package/package.json +46 -8
  226. package/schema/live-cards.schema.json +418 -132
  227. package/step-machine-cli.js +43 -310
  228. package/board-livecards-server-runtime.js +0 -1574
  229. package/browser/board-livecards-runtime-client.js +0 -263
  230. package/dist/cli/board-live-cards-cli.cjs +0 -10650
  231. package/dist/cli/board-live-cards-cli.cjs.map +0 -1
  232. package/dist/cli/board-live-cards-cli.d.cts +0 -179
  233. package/dist/cli/board-live-cards-cli.d.ts +0 -179
  234. package/dist/cli/board-live-cards-cli.js +0 -10598
  235. package/dist/cli/board-live-cards-cli.js.map +0 -1
  236. package/dist/journal-9HEgs7dU.d.ts +0 -28
  237. package/dist/journal-B-JCfQnh.d.cts +0 -28
  238. package/dist/schedule-Cszq9LYY.d.ts +0 -21
  239. package/dist/schedule-qWNL0RQh.d.cts +0 -21
  240. package/examples/browser/boards/portfolio-tracker/cards/holdings-table.json +0 -22
  241. package/examples/browser/boards/portfolio-tracker/cards/portfolio-form.json +0 -16
  242. package/examples/browser/boards/portfolio-tracker/cards/portfolio-risk-assessment.json +0 -28
  243. package/examples/browser/boards/portfolio-tracker/cards/portfolio-value.json +0 -15
  244. package/examples/browser/boards/portfolio-tracker/cards/price-fetch.json +0 -15
  245. package/examples/browser/boards/portfolio-tracker/cards/rebalancing-strategy.json +0 -28
  246. package/examples/browser/boards/portfolio-tracker/fetch-prices.js +0 -43
  247. package/examples/browser/boards/portfolio-tracker/portfolio-tracker-task-executor.cjs +0 -96
  248. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.bat +0 -7
  249. package/examples/browser/boards/portfolio-tracker/portfolio-tracker.js +0 -351
  250. package/examples/cli/step-machine-demo/two-step-math-handlers.js +0 -32
  251. package/examples/cli/step-machine-demo/two-step-mixed-handlers.js +0 -24
  252. package/examples/example-board/demo-shell-browser.html +0 -674
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/stores/memory.ts","../../src/stores/localStorage.ts","../../src/stores/file.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n","/**\n * yaml-flow - LocalStorage Store\n * \n * Browser localStorage-based store implementation.\n * Data persists across page reloads but is limited to ~5MB per origin.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface LocalStorageStoreOptions {\n /** Key prefix for namespacing (default: 'yamlflow') */\n prefix?: string;\n}\n\nexport class LocalStorageStore implements StepMachineStore {\n private prefix: string;\n\n constructor(options: LocalStorageStoreOptions = {}) {\n this.prefix = options.prefix ?? 'yamlflow';\n \n // Ensure localStorage is available\n if (typeof localStorage === 'undefined') {\n throw new Error('LocalStorageStore requires localStorage (browser environment)');\n }\n }\n\n private runKey(runId: string): string {\n return `${this.prefix}:run:${runId}`;\n }\n\n private dataKey(runId: string): string {\n return `${this.prefix}:data:${runId}`;\n }\n\n private indexKey(): string {\n return `${this.prefix}:runs`;\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n localStorage.setItem(this.runKey(runId), JSON.stringify(state));\n \n // Update run index\n const runs = await this.listRuns();\n if (!runs.includes(runId)) {\n runs.push(runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(runs));\n }\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const raw = localStorage.getItem(this.runKey(runId));\n return raw ? JSON.parse(raw) : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n localStorage.removeItem(this.runKey(runId));\n localStorage.removeItem(this.dataKey(runId));\n \n // Update run index\n const runs = await this.listRuns();\n const filtered = runs.filter(id => id !== runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(filtered));\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n const allData = await this.getAllData(runId);\n allData[key] = value;\n localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n const raw = localStorage.getItem(this.dataKey(runId));\n return raw ? JSON.parse(raw) : {};\n }\n\n async clearData(runId: string): Promise<void> {\n localStorage.removeItem(this.dataKey(runId));\n }\n\n async listRuns(): Promise<string[]> {\n const raw = localStorage.getItem(this.indexKey());\n return raw ? JSON.parse(raw) : [];\n }\n\n /**\n * Clear all flow data from localStorage\n */\n clearAll(): void {\n const keysToRemove: string[] = [];\n \n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(this.prefix + ':')) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n}\n","/**\n * yaml-flow - File Store\n * \n * File-system based store for Node.js environments.\n * Stores each run as a JSON file in the specified directory.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface FileStoreOptions {\n /** Directory path for storing flow data */\n directory: string;\n}\n\nexport class FileStore implements StepMachineStore {\n private directory: string;\n private fs: typeof import('fs/promises') | null = null;\n private path: typeof import('path') | null = null;\n\n constructor(options: FileStoreOptions) {\n this.directory = options.directory;\n }\n\n private async ensureModules(): Promise<void> {\n if (!this.fs || !this.path) {\n // Dynamic import for Node.js modules\n this.fs = await import('fs/promises');\n this.path = await import('path');\n \n // Ensure directory exists\n await this.fs.mkdir(this.directory, { recursive: true });\n }\n }\n\n private runPath(runId: string): string {\n return this.path!.join(this.directory, `${runId}.run.json`);\n }\n\n private dataPath(runId: string): string {\n return this.path!.join(this.directory, `${runId}.data.json`);\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n await this.ensureModules();\n await this.fs!.writeFile(\n this.runPath(runId),\n JSON.stringify(state, null, 2),\n 'utf-8'\n );\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n await this.ensureModules();\n try {\n const raw = await this.fs!.readFile(this.runPath(runId), 'utf-8');\n return JSON.parse(raw);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n return null;\n }\n throw err;\n }\n }\n\n async deleteRunState(runId: string): Promise<void> {\n await this.ensureModules();\n try {\n await this.fs!.unlink(this.runPath(runId));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err;\n }\n try {\n await this.fs!.unlink(this.dataPath(runId));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err;\n }\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n await this.ensureModules();\n const allData = await this.getAllData(runId);\n allData[key] = value;\n await this.fs!.writeFile(\n this.dataPath(runId),\n JSON.stringify(allData, null, 2),\n 'utf-8'\n );\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n await this.ensureModules();\n try {\n const raw = await this.fs!.readFile(this.dataPath(runId), 'utf-8');\n return JSON.parse(raw);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n return {};\n }\n throw err;\n }\n }\n\n async clearData(runId: string): Promise<void> {\n await this.ensureModules();\n try {\n await this.fs!.unlink(this.dataPath(runId));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err;\n }\n }\n\n async listRuns(): Promise<string[]> {\n await this.ensureModules();\n try {\n const files = await this.fs!.readdir(this.directory);\n return files\n .filter(f => f.endsWith('.run.json'))\n .map(f => f.replace('.run.json', ''));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n return [];\n }\n throw err;\n }\n }\n\n /**\n * Clear all flow data from directory\n */\n async clearAll(): Promise<void> {\n await this.ensureModules();\n const runs = await this.listRuns();\n await Promise.all(runs.map(runId => this.deleteRunState(runId)));\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/stores/memory.ts","../../src/stores/localStorage.ts","../../src/stores/file.ts"],"names":["MemoryStore","runId","state","key","value","runData","LocalStorageStore","options","runs","raw","filtered","id","allData","keysToRemove","i","FileStore","err","f"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n","/**\n * yaml-flow - LocalStorage Store\n * \n * Browser localStorage-based store implementation.\n * Data persists across page reloads but is limited to ~5MB per origin.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface LocalStorageStoreOptions {\n /** Key prefix for namespacing (default: 'yamlflow') */\n prefix?: string;\n}\n\nexport class LocalStorageStore implements StepMachineStore {\n private prefix: string;\n\n constructor(options: LocalStorageStoreOptions = {}) {\n this.prefix = options.prefix ?? 'yamlflow';\n \n // Ensure localStorage is available\n if (typeof localStorage === 'undefined') {\n throw new Error('LocalStorageStore requires localStorage (browser environment)');\n }\n }\n\n private runKey(runId: string): string {\n return `${this.prefix}:run:${runId}`;\n }\n\n private dataKey(runId: string): string {\n return `${this.prefix}:data:${runId}`;\n }\n\n private indexKey(): string {\n return `${this.prefix}:runs`;\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n localStorage.setItem(this.runKey(runId), JSON.stringify(state));\n \n // Update run index\n const runs = await this.listRuns();\n if (!runs.includes(runId)) {\n runs.push(runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(runs));\n }\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const raw = localStorage.getItem(this.runKey(runId));\n return raw ? JSON.parse(raw) : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n localStorage.removeItem(this.runKey(runId));\n localStorage.removeItem(this.dataKey(runId));\n \n // Update run index\n const runs = await this.listRuns();\n const filtered = runs.filter(id => id !== runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(filtered));\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n const allData = await this.getAllData(runId);\n allData[key] = value;\n localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n const raw = localStorage.getItem(this.dataKey(runId));\n return raw ? JSON.parse(raw) : {};\n }\n\n async clearData(runId: string): Promise<void> {\n localStorage.removeItem(this.dataKey(runId));\n }\n\n async listRuns(): Promise<string[]> {\n const raw = localStorage.getItem(this.indexKey());\n return raw ? JSON.parse(raw) : [];\n }\n\n /**\n * Clear all flow data from localStorage\n */\n clearAll(): void {\n const keysToRemove: string[] = [];\n \n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(this.prefix + ':')) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n}\n","/**\n * yaml-flow - File Store\n * \n * File-system based store for Node.js environments.\n * Stores each run as a JSON file in the specified directory.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface FileStoreOptions {\n /** Directory path for storing flow data */\n directory: string;\n}\n\nexport class FileStore implements StepMachineStore {\n private directory: string;\n private fs: typeof import('fs/promises') | null = null;\n private path: typeof import('path') | null = null;\n\n constructor(options: FileStoreOptions) {\n this.directory = options.directory;\n }\n\n private async ensureModules(): Promise<void> {\n if (!this.fs || !this.path) {\n // Dynamic import for Node.js modules\n this.fs = await import('fs/promises');\n this.path = await import('path');\n \n // Ensure directory exists\n await this.fs.mkdir(this.directory, { recursive: true });\n }\n }\n\n private runPath(runId: string): string {\n return this.path!.join(this.directory, `${runId}.run.json`);\n }\n\n private dataPath(runId: string): string {\n return this.path!.join(this.directory, `${runId}.data.json`);\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n await this.ensureModules();\n await this.fs!.writeFile(\n this.runPath(runId),\n JSON.stringify(state, null, 2),\n 'utf-8'\n );\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n await this.ensureModules();\n try {\n const raw = await this.fs!.readFile(this.runPath(runId), 'utf-8');\n return JSON.parse(raw);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n return null;\n }\n throw err;\n }\n }\n\n async deleteRunState(runId: string): Promise<void> {\n await this.ensureModules();\n try {\n await this.fs!.unlink(this.runPath(runId));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err;\n }\n try {\n await this.fs!.unlink(this.dataPath(runId));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err;\n }\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n await this.ensureModules();\n const allData = await this.getAllData(runId);\n allData[key] = value;\n await this.fs!.writeFile(\n this.dataPath(runId),\n JSON.stringify(allData, null, 2),\n 'utf-8'\n );\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n await this.ensureModules();\n try {\n const raw = await this.fs!.readFile(this.dataPath(runId), 'utf-8');\n return JSON.parse(raw);\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n return {};\n }\n throw err;\n }\n }\n\n async clearData(runId: string): Promise<void> {\n await this.ensureModules();\n try {\n await this.fs!.unlink(this.dataPath(runId));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err;\n }\n }\n\n async listRuns(): Promise<string[]> {\n await this.ensureModules();\n try {\n const files = await this.fs!.readdir(this.directory);\n return files\n .filter(f => f.endsWith('.run.json'))\n .map(f => f.replace('.run.json', ''));\n } catch (err: unknown) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n return [];\n }\n throw err;\n }\n }\n\n /**\n * Clear all flow data from directory\n */\n async clearAll(): Promise<void> {\n await this.ensureModules();\n const runs = await this.listRuns();\n await Promise.all(runs.map(runId => this.deleteRunState(runId)));\n }\n}\n"]}
@@ -1,77 +1,2 @@
1
- 'use strict';
2
-
3
- // src/stores/localStorage.ts
4
- var LocalStorageStore = class {
5
- prefix;
6
- constructor(options = {}) {
7
- this.prefix = options.prefix ?? "yamlflow";
8
- if (typeof localStorage === "undefined") {
9
- throw new Error("LocalStorageStore requires localStorage (browser environment)");
10
- }
11
- }
12
- runKey(runId) {
13
- return `${this.prefix}:run:${runId}`;
14
- }
15
- dataKey(runId) {
16
- return `${this.prefix}:data:${runId}`;
17
- }
18
- indexKey() {
19
- return `${this.prefix}:runs`;
20
- }
21
- async saveRunState(runId, state) {
22
- localStorage.setItem(this.runKey(runId), JSON.stringify(state));
23
- const runs = await this.listRuns();
24
- if (!runs.includes(runId)) {
25
- runs.push(runId);
26
- localStorage.setItem(this.indexKey(), JSON.stringify(runs));
27
- }
28
- }
29
- async loadRunState(runId) {
30
- const raw = localStorage.getItem(this.runKey(runId));
31
- return raw ? JSON.parse(raw) : null;
32
- }
33
- async deleteRunState(runId) {
34
- localStorage.removeItem(this.runKey(runId));
35
- localStorage.removeItem(this.dataKey(runId));
36
- const runs = await this.listRuns();
37
- const filtered = runs.filter((id) => id !== runId);
38
- localStorage.setItem(this.indexKey(), JSON.stringify(filtered));
39
- }
40
- async setData(runId, key, value) {
41
- const allData = await this.getAllData(runId);
42
- allData[key] = value;
43
- localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));
44
- }
45
- async getData(runId, key) {
46
- const allData = await this.getAllData(runId);
47
- return allData[key];
48
- }
49
- async getAllData(runId) {
50
- const raw = localStorage.getItem(this.dataKey(runId));
51
- return raw ? JSON.parse(raw) : {};
52
- }
53
- async clearData(runId) {
54
- localStorage.removeItem(this.dataKey(runId));
55
- }
56
- async listRuns() {
57
- const raw = localStorage.getItem(this.indexKey());
58
- return raw ? JSON.parse(raw) : [];
59
- }
60
- /**
61
- * Clear all flow data from localStorage
62
- */
63
- clearAll() {
64
- const keysToRemove = [];
65
- for (let i = 0; i < localStorage.length; i++) {
66
- const key = localStorage.key(i);
67
- if (key?.startsWith(this.prefix + ":")) {
68
- keysToRemove.push(key);
69
- }
70
- }
71
- keysToRemove.forEach((key) => localStorage.removeItem(key));
72
- }
73
- };
74
-
75
- exports.LocalStorageStore = LocalStorageStore;
76
- //# sourceMappingURL=localStorage.cjs.map
1
+ 'use strict';var i=class{prefix;constructor(t={}){if(this.prefix=t.prefix??"yamlflow",typeof localStorage>"u")throw new Error("LocalStorageStore requires localStorage (browser environment)")}runKey(t){return `${this.prefix}:run:${t}`}dataKey(t){return `${this.prefix}:data:${t}`}indexKey(){return `${this.prefix}:runs`}async saveRunState(t,e){localStorage.setItem(this.runKey(t),JSON.stringify(e));let r=await this.listRuns();r.includes(t)||(r.push(t),localStorage.setItem(this.indexKey(),JSON.stringify(r)));}async loadRunState(t){let e=localStorage.getItem(this.runKey(t));return e?JSON.parse(e):null}async deleteRunState(t){localStorage.removeItem(this.runKey(t)),localStorage.removeItem(this.dataKey(t));let r=(await this.listRuns()).filter(a=>a!==t);localStorage.setItem(this.indexKey(),JSON.stringify(r));}async setData(t,e,r){let a=await this.getAllData(t);a[e]=r,localStorage.setItem(this.dataKey(t),JSON.stringify(a));}async getData(t,e){return (await this.getAllData(t))[e]}async getAllData(t){let e=localStorage.getItem(this.dataKey(t));return e?JSON.parse(e):{}}async clearData(t){localStorage.removeItem(this.dataKey(t));}async listRuns(){let t=localStorage.getItem(this.indexKey());return t?JSON.parse(t):[]}clearAll(){let t=[];for(let e=0;e<localStorage.length;e++){let r=localStorage.key(e);r?.startsWith(this.prefix+":")&&t.push(r);}t.forEach(e=>localStorage.removeItem(e));}};exports.LocalStorageStore=i;//# sourceMappingURL=localStorage.cjs.map
77
2
  //# sourceMappingURL=localStorage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/stores/localStorage.ts"],"names":[],"mappings":"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","file":"localStorage.cjs","sourcesContent":["/**\n * yaml-flow - LocalStorage Store\n * \n * Browser localStorage-based store implementation.\n * Data persists across page reloads but is limited to ~5MB per origin.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface LocalStorageStoreOptions {\n /** Key prefix for namespacing (default: 'yamlflow') */\n prefix?: string;\n}\n\nexport class LocalStorageStore implements StepMachineStore {\n private prefix: string;\n\n constructor(options: LocalStorageStoreOptions = {}) {\n this.prefix = options.prefix ?? 'yamlflow';\n \n // Ensure localStorage is available\n if (typeof localStorage === 'undefined') {\n throw new Error('LocalStorageStore requires localStorage (browser environment)');\n }\n }\n\n private runKey(runId: string): string {\n return `${this.prefix}:run:${runId}`;\n }\n\n private dataKey(runId: string): string {\n return `${this.prefix}:data:${runId}`;\n }\n\n private indexKey(): string {\n return `${this.prefix}:runs`;\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n localStorage.setItem(this.runKey(runId), JSON.stringify(state));\n \n // Update run index\n const runs = await this.listRuns();\n if (!runs.includes(runId)) {\n runs.push(runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(runs));\n }\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const raw = localStorage.getItem(this.runKey(runId));\n return raw ? JSON.parse(raw) : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n localStorage.removeItem(this.runKey(runId));\n localStorage.removeItem(this.dataKey(runId));\n \n // Update run index\n const runs = await this.listRuns();\n const filtered = runs.filter(id => id !== runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(filtered));\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n const allData = await this.getAllData(runId);\n allData[key] = value;\n localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n const raw = localStorage.getItem(this.dataKey(runId));\n return raw ? JSON.parse(raw) : {};\n }\n\n async clearData(runId: string): Promise<void> {\n localStorage.removeItem(this.dataKey(runId));\n }\n\n async listRuns(): Promise<string[]> {\n const raw = localStorage.getItem(this.indexKey());\n return raw ? JSON.parse(raw) : [];\n }\n\n /**\n * Clear all flow data from localStorage\n */\n clearAll(): void {\n const keysToRemove: string[] = [];\n \n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(this.prefix + ':')) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/stores/localStorage.ts"],"names":["LocalStorageStore","options","runId","state","runs","raw","filtered","id","key","value","allData","keysToRemove","i"],"mappings":"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","file":"localStorage.cjs","sourcesContent":["/**\n * yaml-flow - LocalStorage Store\n * \n * Browser localStorage-based store implementation.\n * Data persists across page reloads but is limited to ~5MB per origin.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface LocalStorageStoreOptions {\n /** Key prefix for namespacing (default: 'yamlflow') */\n prefix?: string;\n}\n\nexport class LocalStorageStore implements StepMachineStore {\n private prefix: string;\n\n constructor(options: LocalStorageStoreOptions = {}) {\n this.prefix = options.prefix ?? 'yamlflow';\n \n // Ensure localStorage is available\n if (typeof localStorage === 'undefined') {\n throw new Error('LocalStorageStore requires localStorage (browser environment)');\n }\n }\n\n private runKey(runId: string): string {\n return `${this.prefix}:run:${runId}`;\n }\n\n private dataKey(runId: string): string {\n return `${this.prefix}:data:${runId}`;\n }\n\n private indexKey(): string {\n return `${this.prefix}:runs`;\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n localStorage.setItem(this.runKey(runId), JSON.stringify(state));\n \n // Update run index\n const runs = await this.listRuns();\n if (!runs.includes(runId)) {\n runs.push(runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(runs));\n }\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const raw = localStorage.getItem(this.runKey(runId));\n return raw ? JSON.parse(raw) : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n localStorage.removeItem(this.runKey(runId));\n localStorage.removeItem(this.dataKey(runId));\n \n // Update run index\n const runs = await this.listRuns();\n const filtered = runs.filter(id => id !== runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(filtered));\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n const allData = await this.getAllData(runId);\n allData[key] = value;\n localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n const raw = localStorage.getItem(this.dataKey(runId));\n return raw ? JSON.parse(raw) : {};\n }\n\n async clearData(runId: string): Promise<void> {\n localStorage.removeItem(this.dataKey(runId));\n }\n\n async listRuns(): Promise<string[]> {\n const raw = localStorage.getItem(this.indexKey());\n return raw ? JSON.parse(raw) : [];\n }\n\n /**\n * Clear all flow data from localStorage\n */\n clearAll(): void {\n const keysToRemove: string[] = [];\n \n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(this.prefix + ':')) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n}\n"]}
@@ -1,75 +1,2 @@
1
- // src/stores/localStorage.ts
2
- var LocalStorageStore = class {
3
- prefix;
4
- constructor(options = {}) {
5
- this.prefix = options.prefix ?? "yamlflow";
6
- if (typeof localStorage === "undefined") {
7
- throw new Error("LocalStorageStore requires localStorage (browser environment)");
8
- }
9
- }
10
- runKey(runId) {
11
- return `${this.prefix}:run:${runId}`;
12
- }
13
- dataKey(runId) {
14
- return `${this.prefix}:data:${runId}`;
15
- }
16
- indexKey() {
17
- return `${this.prefix}:runs`;
18
- }
19
- async saveRunState(runId, state) {
20
- localStorage.setItem(this.runKey(runId), JSON.stringify(state));
21
- const runs = await this.listRuns();
22
- if (!runs.includes(runId)) {
23
- runs.push(runId);
24
- localStorage.setItem(this.indexKey(), JSON.stringify(runs));
25
- }
26
- }
27
- async loadRunState(runId) {
28
- const raw = localStorage.getItem(this.runKey(runId));
29
- return raw ? JSON.parse(raw) : null;
30
- }
31
- async deleteRunState(runId) {
32
- localStorage.removeItem(this.runKey(runId));
33
- localStorage.removeItem(this.dataKey(runId));
34
- const runs = await this.listRuns();
35
- const filtered = runs.filter((id) => id !== runId);
36
- localStorage.setItem(this.indexKey(), JSON.stringify(filtered));
37
- }
38
- async setData(runId, key, value) {
39
- const allData = await this.getAllData(runId);
40
- allData[key] = value;
41
- localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));
42
- }
43
- async getData(runId, key) {
44
- const allData = await this.getAllData(runId);
45
- return allData[key];
46
- }
47
- async getAllData(runId) {
48
- const raw = localStorage.getItem(this.dataKey(runId));
49
- return raw ? JSON.parse(raw) : {};
50
- }
51
- async clearData(runId) {
52
- localStorage.removeItem(this.dataKey(runId));
53
- }
54
- async listRuns() {
55
- const raw = localStorage.getItem(this.indexKey());
56
- return raw ? JSON.parse(raw) : [];
57
- }
58
- /**
59
- * Clear all flow data from localStorage
60
- */
61
- clearAll() {
62
- const keysToRemove = [];
63
- for (let i = 0; i < localStorage.length; i++) {
64
- const key = localStorage.key(i);
65
- if (key?.startsWith(this.prefix + ":")) {
66
- keysToRemove.push(key);
67
- }
68
- }
69
- keysToRemove.forEach((key) => localStorage.removeItem(key));
70
- }
71
- };
72
-
73
- export { LocalStorageStore };
74
- //# sourceMappingURL=localStorage.js.map
1
+ var i=class{prefix;constructor(t={}){if(this.prefix=t.prefix??"yamlflow",typeof localStorage>"u")throw new Error("LocalStorageStore requires localStorage (browser environment)")}runKey(t){return `${this.prefix}:run:${t}`}dataKey(t){return `${this.prefix}:data:${t}`}indexKey(){return `${this.prefix}:runs`}async saveRunState(t,e){localStorage.setItem(this.runKey(t),JSON.stringify(e));let r=await this.listRuns();r.includes(t)||(r.push(t),localStorage.setItem(this.indexKey(),JSON.stringify(r)));}async loadRunState(t){let e=localStorage.getItem(this.runKey(t));return e?JSON.parse(e):null}async deleteRunState(t){localStorage.removeItem(this.runKey(t)),localStorage.removeItem(this.dataKey(t));let r=(await this.listRuns()).filter(a=>a!==t);localStorage.setItem(this.indexKey(),JSON.stringify(r));}async setData(t,e,r){let a=await this.getAllData(t);a[e]=r,localStorage.setItem(this.dataKey(t),JSON.stringify(a));}async getData(t,e){return (await this.getAllData(t))[e]}async getAllData(t){let e=localStorage.getItem(this.dataKey(t));return e?JSON.parse(e):{}}async clearData(t){localStorage.removeItem(this.dataKey(t));}async listRuns(){let t=localStorage.getItem(this.indexKey());return t?JSON.parse(t):[]}clearAll(){let t=[];for(let e=0;e<localStorage.length;e++){let r=localStorage.key(e);r?.startsWith(this.prefix+":")&&t.push(r);}t.forEach(e=>localStorage.removeItem(e));}};export{i as LocalStorageStore};//# sourceMappingURL=localStorage.js.map
75
2
  //# sourceMappingURL=localStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/stores/localStorage.ts"],"names":[],"mappings":"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","file":"localStorage.js","sourcesContent":["/**\n * yaml-flow - LocalStorage Store\n * \n * Browser localStorage-based store implementation.\n * Data persists across page reloads but is limited to ~5MB per origin.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface LocalStorageStoreOptions {\n /** Key prefix for namespacing (default: 'yamlflow') */\n prefix?: string;\n}\n\nexport class LocalStorageStore implements StepMachineStore {\n private prefix: string;\n\n constructor(options: LocalStorageStoreOptions = {}) {\n this.prefix = options.prefix ?? 'yamlflow';\n \n // Ensure localStorage is available\n if (typeof localStorage === 'undefined') {\n throw new Error('LocalStorageStore requires localStorage (browser environment)');\n }\n }\n\n private runKey(runId: string): string {\n return `${this.prefix}:run:${runId}`;\n }\n\n private dataKey(runId: string): string {\n return `${this.prefix}:data:${runId}`;\n }\n\n private indexKey(): string {\n return `${this.prefix}:runs`;\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n localStorage.setItem(this.runKey(runId), JSON.stringify(state));\n \n // Update run index\n const runs = await this.listRuns();\n if (!runs.includes(runId)) {\n runs.push(runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(runs));\n }\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const raw = localStorage.getItem(this.runKey(runId));\n return raw ? JSON.parse(raw) : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n localStorage.removeItem(this.runKey(runId));\n localStorage.removeItem(this.dataKey(runId));\n \n // Update run index\n const runs = await this.listRuns();\n const filtered = runs.filter(id => id !== runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(filtered));\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n const allData = await this.getAllData(runId);\n allData[key] = value;\n localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n const raw = localStorage.getItem(this.dataKey(runId));\n return raw ? JSON.parse(raw) : {};\n }\n\n async clearData(runId: string): Promise<void> {\n localStorage.removeItem(this.dataKey(runId));\n }\n\n async listRuns(): Promise<string[]> {\n const raw = localStorage.getItem(this.indexKey());\n return raw ? JSON.parse(raw) : [];\n }\n\n /**\n * Clear all flow data from localStorage\n */\n clearAll(): void {\n const keysToRemove: string[] = [];\n \n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(this.prefix + ':')) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/stores/localStorage.ts"],"names":["LocalStorageStore","options","runId","state","runs","raw","filtered","id","key","value","allData","keysToRemove","i"],"mappings":"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","file":"localStorage.js","sourcesContent":["/**\n * yaml-flow - LocalStorage Store\n * \n * Browser localStorage-based store implementation.\n * Data persists across page reloads but is limited to ~5MB per origin.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport interface LocalStorageStoreOptions {\n /** Key prefix for namespacing (default: 'yamlflow') */\n prefix?: string;\n}\n\nexport class LocalStorageStore implements StepMachineStore {\n private prefix: string;\n\n constructor(options: LocalStorageStoreOptions = {}) {\n this.prefix = options.prefix ?? 'yamlflow';\n \n // Ensure localStorage is available\n if (typeof localStorage === 'undefined') {\n throw new Error('LocalStorageStore requires localStorage (browser environment)');\n }\n }\n\n private runKey(runId: string): string {\n return `${this.prefix}:run:${runId}`;\n }\n\n private dataKey(runId: string): string {\n return `${this.prefix}:data:${runId}`;\n }\n\n private indexKey(): string {\n return `${this.prefix}:runs`;\n }\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n localStorage.setItem(this.runKey(runId), JSON.stringify(state));\n \n // Update run index\n const runs = await this.listRuns();\n if (!runs.includes(runId)) {\n runs.push(runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(runs));\n }\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const raw = localStorage.getItem(this.runKey(runId));\n return raw ? JSON.parse(raw) : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n localStorage.removeItem(this.runKey(runId));\n localStorage.removeItem(this.dataKey(runId));\n \n // Update run index\n const runs = await this.listRuns();\n const filtered = runs.filter(id => id !== runId);\n localStorage.setItem(this.indexKey(), JSON.stringify(filtered));\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n const allData = await this.getAllData(runId);\n allData[key] = value;\n localStorage.setItem(this.dataKey(runId), JSON.stringify(allData));\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n const allData = await this.getAllData(runId);\n return allData[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n const raw = localStorage.getItem(this.dataKey(runId));\n return raw ? JSON.parse(raw) : {};\n }\n\n async clearData(runId: string): Promise<void> {\n localStorage.removeItem(this.dataKey(runId));\n }\n\n async listRuns(): Promise<string[]> {\n const raw = localStorage.getItem(this.indexKey());\n return raw ? JSON.parse(raw) : [];\n }\n\n /**\n * Clear all flow data from localStorage\n */\n clearAll(): void {\n const keysToRemove: string[] = [];\n \n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key?.startsWith(this.prefix + ':')) {\n keysToRemove.push(key);\n }\n }\n \n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n}\n"]}
@@ -1,48 +1,2 @@
1
- 'use strict';
2
-
3
- // src/stores/memory.ts
4
- var MemoryStore = class {
5
- runs = /* @__PURE__ */ new Map();
6
- data = /* @__PURE__ */ new Map();
7
- async saveRunState(runId, state) {
8
- this.runs.set(runId, { ...state });
9
- }
10
- async loadRunState(runId) {
11
- const state = this.runs.get(runId);
12
- return state ? { ...state } : null;
13
- }
14
- async deleteRunState(runId) {
15
- this.runs.delete(runId);
16
- this.data.delete(runId);
17
- }
18
- async setData(runId, key, value) {
19
- if (!this.data.has(runId)) {
20
- this.data.set(runId, {});
21
- }
22
- const runData = this.data.get(runId);
23
- runData[key] = value;
24
- }
25
- async getData(runId, key) {
26
- return this.data.get(runId)?.[key];
27
- }
28
- async getAllData(runId) {
29
- return { ...this.data.get(runId) ?? {} };
30
- }
31
- async clearData(runId) {
32
- this.data.delete(runId);
33
- }
34
- async listRuns() {
35
- return Array.from(this.runs.keys());
36
- }
37
- /**
38
- * Clear all data (useful for testing)
39
- */
40
- clear() {
41
- this.runs.clear();
42
- this.data.clear();
43
- }
44
- };
45
-
46
- exports.MemoryStore = MemoryStore;
47
- //# sourceMappingURL=memory.cjs.map
1
+ 'use strict';var a=class{runs=new Map;data=new Map;async saveRunState(t,e){this.runs.set(t,{...e});}async loadRunState(t){let e=this.runs.get(t);return e?{...e}:null}async deleteRunState(t){this.runs.delete(t),this.data.delete(t);}async setData(t,e,s){this.data.has(t)||this.data.set(t,{});let n=this.data.get(t);n[e]=s;}async getData(t,e){return this.data.get(t)?.[e]}async getAllData(t){return {...this.data.get(t)??{}}}async clearData(t){this.data.delete(t);}async listRuns(){return Array.from(this.runs.keys())}clear(){this.runs.clear(),this.data.clear();}};exports.MemoryStore=a;//# sourceMappingURL=memory.cjs.map
48
2
  //# sourceMappingURL=memory.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/stores/memory.ts"],"names":[],"mappings":";;;AASO,IAAM,cAAN,MAA8C;AAAA,EAC3C,IAAA,uBAA0C,GAAA,EAAI;AAAA,EAC9C,IAAA,uBAAiD,GAAA,EAAI;AAAA,EAE7D,MAAM,YAAA,CAAa,KAAA,EAAe,KAAA,EAAwC;AACxE,IAAA,IAAA,CAAK,KAAK,GAAA,CAAI,KAAA,EAAO,EAAE,GAAG,OAAO,CAAA;AAAA,EACnC;AAAA,EAEA,MAAM,aAAa,KAAA,EAAiD;AAClE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACjC,IAAA,OAAO,KAAA,GAAQ,EAAE,GAAG,KAAA,EAAM,GAAI,IAAA;AAAA,EAChC;AAAA,EAEA,MAAM,eAAe,KAAA,EAA8B;AACjD,IAAA,IAAA,CAAK,IAAA,CAAK,OAAO,KAAK,CAAA;AACtB,IAAA,IAAA,CAAK,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,OAAA,CAAQ,KAAA,EAAe,GAAA,EAAa,KAAA,EAA+B;AACvE,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACzB,MAAA,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,EAAE,CAAA;AAAA,IACzB;AACA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACnC,IAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,KAAA;AAAA,EACjB;AAAA,EAEA,MAAM,OAAA,CAAQ,KAAA,EAAe,GAAA,EAA+B;AAC1D,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,IAAI,GAAG,CAAA;AAAA,EACnC;AAAA,EAEA,MAAM,WAAW,KAAA,EAAiD;AAChE,IAAA,OAAO,EAAE,GAAI,IAAA,CAAK,IAAA,CAAK,IAAI,KAAK,CAAA,IAAK,EAAC,EAAG;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAU,KAAA,EAA8B;AAC5C,IAAA,IAAA,CAAK,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,QAAA,GAA8B;AAClC,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,KAAK,KAAA,EAAM;AAChB,IAAA,IAAA,CAAK,KAAK,KAAA,EAAM;AAAA,EAClB;AACF","file":"memory.cjs","sourcesContent":["/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/stores/memory.ts"],"names":["MemoryStore","runId","state","key","value","runData"],"mappings":"aASO,IAAMA,CAAAA,CAAN,KAA8C,CAC3C,IAAA,CAAsC,IAAI,GAAA,CAC1C,IAAA,CAA6C,IAAI,GAAA,CAEzD,MAAM,YAAA,CAAaC,CAAAA,CAAeC,CAAAA,CAAwC,CACxE,KAAK,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAO,CAAE,GAAGC,CAAM,CAAC,EACnC,CAEA,MAAM,YAAA,CAAaD,CAAAA,CAAiD,CAClE,IAAMC,CAAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,GAAA,CAAID,CAAK,CAAA,CACjC,OAAOC,CAAAA,CAAQ,CAAE,GAAGA,CAAM,CAAA,CAAI,IAChC,CAEA,MAAM,cAAA,CAAeD,CAAAA,CAA8B,CACjD,KAAK,IAAA,CAAK,MAAA,CAAOA,CAAK,CAAA,CACtB,KAAK,IAAA,CAAK,MAAA,CAAOA,CAAK,EACxB,CAEA,MAAM,OAAA,CAAQA,CAAAA,CAAeE,CAAAA,CAAaC,EAA+B,CAClE,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIH,CAAK,CAAA,EACtB,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIA,EAAO,EAAE,CAAA,CAEzB,IAAMI,CAAAA,CAAU,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIJ,CAAK,CAAA,CACnCI,CAAAA,CAAQF,CAAG,CAAA,CAAIC,EACjB,CAEA,MAAM,OAAA,CAAQH,CAAAA,CAAeE,EAA+B,CAC1D,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIF,CAAK,CAAA,GAAIE,CAAG,CACnC,CAEA,MAAM,UAAA,CAAWF,CAAAA,CAAiD,CAChE,OAAO,CAAE,GAAI,IAAA,CAAK,KAAK,GAAA,CAAIA,CAAK,CAAA,EAAK,EAAI,CAC3C,CAEA,MAAM,UAAUA,CAAAA,CAA8B,CAC5C,IAAA,CAAK,IAAA,CAAK,OAAOA,CAAK,EACxB,CAEA,MAAM,UAA8B,CAClC,OAAO,KAAA,CAAM,IAAA,CAAK,KAAK,IAAA,CAAK,IAAA,EAAM,CACpC,CAKA,KAAA,EAAc,CACZ,IAAA,CAAK,IAAA,CAAK,OAAM,CAChB,IAAA,CAAK,IAAA,CAAK,KAAA,GACZ,CACF","file":"memory.cjs","sourcesContent":["/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n"]}
@@ -1,46 +1,2 @@
1
- // src/stores/memory.ts
2
- var MemoryStore = class {
3
- runs = /* @__PURE__ */ new Map();
4
- data = /* @__PURE__ */ new Map();
5
- async saveRunState(runId, state) {
6
- this.runs.set(runId, { ...state });
7
- }
8
- async loadRunState(runId) {
9
- const state = this.runs.get(runId);
10
- return state ? { ...state } : null;
11
- }
12
- async deleteRunState(runId) {
13
- this.runs.delete(runId);
14
- this.data.delete(runId);
15
- }
16
- async setData(runId, key, value) {
17
- if (!this.data.has(runId)) {
18
- this.data.set(runId, {});
19
- }
20
- const runData = this.data.get(runId);
21
- runData[key] = value;
22
- }
23
- async getData(runId, key) {
24
- return this.data.get(runId)?.[key];
25
- }
26
- async getAllData(runId) {
27
- return { ...this.data.get(runId) ?? {} };
28
- }
29
- async clearData(runId) {
30
- this.data.delete(runId);
31
- }
32
- async listRuns() {
33
- return Array.from(this.runs.keys());
34
- }
35
- /**
36
- * Clear all data (useful for testing)
37
- */
38
- clear() {
39
- this.runs.clear();
40
- this.data.clear();
41
- }
42
- };
43
-
44
- export { MemoryStore };
45
- //# sourceMappingURL=memory.js.map
1
+ var a=class{runs=new Map;data=new Map;async saveRunState(t,e){this.runs.set(t,{...e});}async loadRunState(t){let e=this.runs.get(t);return e?{...e}:null}async deleteRunState(t){this.runs.delete(t),this.data.delete(t);}async setData(t,e,s){this.data.has(t)||this.data.set(t,{});let n=this.data.get(t);n[e]=s;}async getData(t,e){return this.data.get(t)?.[e]}async getAllData(t){return {...this.data.get(t)??{}}}async clearData(t){this.data.delete(t);}async listRuns(){return Array.from(this.runs.keys())}clear(){this.runs.clear(),this.data.clear();}};export{a as MemoryStore};//# sourceMappingURL=memory.js.map
46
2
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/stores/memory.ts"],"names":[],"mappings":";AASO,IAAM,cAAN,MAA8C;AAAA,EAC3C,IAAA,uBAA0C,GAAA,EAAI;AAAA,EAC9C,IAAA,uBAAiD,GAAA,EAAI;AAAA,EAE7D,MAAM,YAAA,CAAa,KAAA,EAAe,KAAA,EAAwC;AACxE,IAAA,IAAA,CAAK,KAAK,GAAA,CAAI,KAAA,EAAO,EAAE,GAAG,OAAO,CAAA;AAAA,EACnC;AAAA,EAEA,MAAM,aAAa,KAAA,EAAiD;AAClE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACjC,IAAA,OAAO,KAAA,GAAQ,EAAE,GAAG,KAAA,EAAM,GAAI,IAAA;AAAA,EAChC;AAAA,EAEA,MAAM,eAAe,KAAA,EAA8B;AACjD,IAAA,IAAA,CAAK,IAAA,CAAK,OAAO,KAAK,CAAA;AACtB,IAAA,IAAA,CAAK,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,OAAA,CAAQ,KAAA,EAAe,GAAA,EAAa,KAAA,EAA+B;AACvE,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACzB,MAAA,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,EAAE,CAAA;AAAA,IACzB;AACA,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA;AACnC,IAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,KAAA;AAAA,EACjB;AAAA,EAEA,MAAM,OAAA,CAAQ,KAAA,EAAe,GAAA,EAA+B;AAC1D,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,KAAK,IAAI,GAAG,CAAA;AAAA,EACnC;AAAA,EAEA,MAAM,WAAW,KAAA,EAAiD;AAChE,IAAA,OAAO,EAAE,GAAI,IAAA,CAAK,IAAA,CAAK,IAAI,KAAK,CAAA,IAAK,EAAC,EAAG;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAU,KAAA,EAA8B;AAC5C,IAAA,IAAA,CAAK,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,QAAA,GAA8B;AAClC,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,KAAK,KAAA,EAAM;AAChB,IAAA,IAAA,CAAK,KAAK,KAAA,EAAM;AAAA,EAClB;AACF","file":"memory.js","sourcesContent":["/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/stores/memory.ts"],"names":["MemoryStore","runId","state","key","value","runData"],"mappings":"AASO,IAAMA,CAAAA,CAAN,KAA8C,CAC3C,IAAA,CAAsC,IAAI,GAAA,CAC1C,IAAA,CAA6C,IAAI,GAAA,CAEzD,MAAM,YAAA,CAAaC,CAAAA,CAAeC,CAAAA,CAAwC,CACxE,KAAK,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAO,CAAE,GAAGC,CAAM,CAAC,EACnC,CAEA,MAAM,YAAA,CAAaD,CAAAA,CAAiD,CAClE,IAAMC,CAAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,GAAA,CAAID,CAAK,CAAA,CACjC,OAAOC,CAAAA,CAAQ,CAAE,GAAGA,CAAM,CAAA,CAAI,IAChC,CAEA,MAAM,cAAA,CAAeD,CAAAA,CAA8B,CACjD,KAAK,IAAA,CAAK,MAAA,CAAOA,CAAK,CAAA,CACtB,KAAK,IAAA,CAAK,MAAA,CAAOA,CAAK,EACxB,CAEA,MAAM,OAAA,CAAQA,CAAAA,CAAeE,CAAAA,CAAaC,EAA+B,CAClE,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIH,CAAK,CAAA,EACtB,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIA,EAAO,EAAE,CAAA,CAEzB,IAAMI,CAAAA,CAAU,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIJ,CAAK,CAAA,CACnCI,CAAAA,CAAQF,CAAG,CAAA,CAAIC,EACjB,CAEA,MAAM,OAAA,CAAQH,CAAAA,CAAeE,EAA+B,CAC1D,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAIF,CAAK,CAAA,GAAIE,CAAG,CACnC,CAEA,MAAM,UAAA,CAAWF,CAAAA,CAAiD,CAChE,OAAO,CAAE,GAAI,IAAA,CAAK,KAAK,GAAA,CAAIA,CAAK,CAAA,EAAK,EAAI,CAC3C,CAEA,MAAM,UAAUA,CAAAA,CAA8B,CAC5C,IAAA,CAAK,IAAA,CAAK,OAAOA,CAAK,EACxB,CAEA,MAAM,UAA8B,CAClC,OAAO,KAAA,CAAM,IAAA,CAAK,KAAK,IAAA,CAAK,IAAA,EAAM,CACpC,CAKA,KAAA,EAAc,CACZ,IAAA,CAAK,IAAA,CAAK,OAAM,CAChB,IAAA,CAAK,IAAA,CAAK,KAAA,GACZ,CACF","file":"memory.js","sourcesContent":["/**\n * yaml-flow - Memory Store\n * \n * In-memory store implementation. Works in both browser and Node.js.\n * Data is lost when the process exits - use for testing or short-lived flows.\n */\n\nimport type { StepMachineStore, StepMachineState } from '../step-machine/types.js';\n\nexport class MemoryStore implements StepMachineStore {\n private runs: Map<string, StepMachineState> = new Map();\n private data: Map<string, Record<string, unknown>> = new Map();\n\n async saveRunState(runId: string, state: StepMachineState): Promise<void> {\n this.runs.set(runId, { ...state });\n }\n\n async loadRunState(runId: string): Promise<StepMachineState | null> {\n const state = this.runs.get(runId);\n return state ? { ...state } : null;\n }\n\n async deleteRunState(runId: string): Promise<void> {\n this.runs.delete(runId);\n this.data.delete(runId);\n }\n\n async setData(runId: string, key: string, value: unknown): Promise<void> {\n if (!this.data.has(runId)) {\n this.data.set(runId, {});\n }\n const runData = this.data.get(runId)!;\n runData[key] = value;\n }\n\n async getData(runId: string, key: string): Promise<unknown> {\n return this.data.get(runId)?.[key];\n }\n\n async getAllData(runId: string): Promise<Record<string, unknown>> {\n return { ...(this.data.get(runId) ?? {}) };\n }\n\n async clearData(runId: string): Promise<void> {\n this.data.delete(runId);\n }\n\n async listRuns(): Promise<string[]> {\n return Array.from(this.runs.keys());\n }\n\n /**\n * Clear all data (useful for testing)\n */\n clear(): void {\n this.runs.clear();\n this.data.clear();\n }\n}\n"]}
@@ -0,0 +1,147 @@
1
+ import { e as KindValueRef, B as BoardPlatformAdapter, d as CommandResult } from './board-live-cards-public-hnZo0mAf.js';
2
+ import { ExecutionRef } from './execution-refs.js';
3
+
4
+ /**
5
+ * server-runtime/types.ts
6
+ *
7
+ * Platform-free adapter interfaces for the board server runtime.
8
+ *
9
+ * The runtime (index.ts) imports ONLY this file and board-live-cards-public
10
+ * for its dependencies — no node:fs, node:net, node:child_process, etc.
11
+ *
12
+ * Hosts (demo-server, Azure Function, Firebase Function) provide implementations
13
+ * of these interfaces when constructing the runtime.
14
+ */
15
+
16
+ interface InvocationAdapter {
17
+ /**
18
+ * Fire-and-forget invocation of an ExecutionRef with args.
19
+ * Used for chat-handler dispatch, and potentially task-executor / inference-adapter.
20
+ * Returns a promise that resolves when the invocation is dispatched (not completed).
21
+ */
22
+ invoke(ref: ExecutionRef, args: Record<string, unknown>): Promise<{
23
+ dispatched: boolean;
24
+ error?: string;
25
+ }>;
26
+ /**
27
+ * Optional synchronous describe call — asks the target to identify itself.
28
+ * Used for pre-init validation (e.g. confirming a chat-handler reports kind='chat-handler').
29
+ * Hosts that pre-register capabilities at deploy time may omit this.
30
+ */
31
+ describe?(ref: ExecutionRef): Promise<DescribeEnvelope | null>;
32
+ }
33
+ interface NotificationTransport {
34
+ /**
35
+ * Start listening for events on a notification endpoint identified by a kind-ref.
36
+ * The ref kind determines the transport mechanism:
37
+ * ::named-pipe::/tmp/board-x.sock
38
+ * ::firestore-watch::collections/board-x/notifications
39
+ * ::signalr::https://x.service.signalr.net/hub/board-x
40
+ * onEvent is called with parsed JSON notification objects.
41
+ * Returns a teardown function.
42
+ */
43
+ subscribe(ref: KindValueRef, onEvent: (event: unknown) => void): Promise<() => void>;
44
+ }
45
+ interface DescribeEnvelope {
46
+ name: string;
47
+ kind: 'task-executor' | 'chat-handler' | 'inference-adapter';
48
+ protocolVersion: string;
49
+ supports?: string[];
50
+ }
51
+ interface RuntimeLogger {
52
+ info(msg: string, ...args: unknown[]): void;
53
+ warn(msg: string, ...args: unknown[]): void;
54
+ error(msg: string, ...args: unknown[]): void;
55
+ }
56
+ interface BoardContextConfig {
57
+ label: string;
58
+ boardAdapter: BoardPlatformAdapter;
59
+ /** Optional separate adapter for file/chat blob storage (defaults to boardAdapter) */
60
+ artifactsAdapter?: BoardPlatformAdapter;
61
+ baseRef: KindValueRef;
62
+ cardStoreRef: string;
63
+ outputsStoreRef: string;
64
+ /** Notification endpoint ref — e.g. ::named-pipe::<path> or ::firestore-watch::<path> */
65
+ notifyRef?: KindValueRef;
66
+ taskExecutorRef?: ExecutionRef;
67
+ chatHandlerRef?: ExecutionRef;
68
+ inferenceAdapterRef?: ExecutionRef;
69
+ }
70
+ interface SingleBoardRuntimeOptions {
71
+ apiBasePath?: string;
72
+ corsHeaders?: Record<string, string>;
73
+ boardId?: string;
74
+ /** One or more board layers composing this board surface (e.g. base cards + admin cards). */
75
+ boards: BoardContextConfig[];
76
+ invocationAdapter: InvocationAdapter;
77
+ notificationTransport?: NotificationTransport;
78
+ logger?: RuntimeLogger;
79
+ serverUrl?: string;
80
+ /** Extra host-specific fields baked into execution ref extras */
81
+ executionExtra?: Record<string, unknown>;
82
+ }
83
+ interface MultiBoardRuntimeOptions {
84
+ apiBasePath?: string;
85
+ corsHeaders?: Record<string, string>;
86
+ /** Artifacts store for multi-board registry metadata */
87
+ serverMetaStore: {
88
+ getText(key: string): string | null;
89
+ putText(key: string, text: string): void;
90
+ };
91
+ /** Factory that creates a single-board runtime for a given board config */
92
+ boardRuntimeFactory: (boardId: string, entry: Record<string, unknown>) => SingleBoardRuntime;
93
+ logger?: RuntimeLogger;
94
+ }
95
+ interface SingleBoardRuntime {
96
+ readonly apiBasePath: string;
97
+ readonly corsHeaders: Record<string, string>;
98
+ handleRuntimeApi(req: RuntimeRequest, res: RuntimeResponse, parsedUrl: URL): Promise<boolean>;
99
+ buildPublishedRuntimePayload(): unknown;
100
+ clearChatRecords(cardId: string): void;
101
+ /** Report that a source fetch completed. Token is the source callback token; ref is the blob ref (b64:<base64url(json)>). */
102
+ reportSourceFetched(token: string, ref: string): CommandResult;
103
+ /** Report that a source fetch failed. Token is the source callback token. */
104
+ reportSourceFetchFailure(token: string, reason: string): CommandResult;
105
+ /** Exposed card store — host calls cardStore.set({body: cards}) to seed definitions. */
106
+ readonly cardStore: {
107
+ get(input: {
108
+ params?: {
109
+ id?: string;
110
+ };
111
+ }): {
112
+ status: string;
113
+ data?: {
114
+ cards?: Array<Record<string, unknown>>;
115
+ };
116
+ error?: string;
117
+ };
118
+ set(input: {
119
+ body: unknown;
120
+ }): {
121
+ status: string;
122
+ error?: string;
123
+ };
124
+ };
125
+ }
126
+ interface MultiBoardRuntime {
127
+ readonly apiBasePath: string;
128
+ readonly corsHeaders: Record<string, string>;
129
+ handleApi(req: RuntimeRequest, res: RuntimeResponse, parsedUrl: URL): Promise<boolean>;
130
+ requireBoardService(boardId: string): {
131
+ service: SingleBoardRuntime;
132
+ };
133
+ }
134
+ interface RuntimeRequest {
135
+ method?: string;
136
+ url?: string;
137
+ headers: Record<string, string | string[] | undefined>;
138
+ on(event: string, listener: (...args: unknown[]) => void): void;
139
+ [Symbol.asyncIterator](): AsyncIterableIterator<Buffer | Uint8Array>;
140
+ }
141
+ interface RuntimeResponse {
142
+ writeHead(statusCode: number, headers?: Record<string, string | number>): void;
143
+ write(data: string | Buffer): boolean;
144
+ end(data?: string | Buffer): void;
145
+ }
146
+
147
+ export type { BoardContextConfig as B, DescribeEnvelope as D, InvocationAdapter as I, MultiBoardRuntimeOptions as M, NotificationTransport as N, RuntimeLogger as R, SingleBoardRuntimeOptions as S, MultiBoardRuntime as a, SingleBoardRuntime as b, RuntimeRequest as c, RuntimeResponse as d };