fuzor 0.4.0 → 0.5.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 (921) hide show
  1. package/README.md +36 -88
  2. package/dist/boundaries.d.ts +5 -0
  3. package/dist/boundaries.d.ts.map +1 -0
  4. package/dist/boundaries.js +5 -0
  5. package/dist/boundaries.js.map +1 -0
  6. package/dist/browser.d.ts +4 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +4 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/build-output.d.ts +18 -0
  11. package/dist/build-output.d.ts.map +1 -0
  12. package/dist/build-output.js +91 -0
  13. package/dist/build-output.js.map +1 -0
  14. package/dist/cli.js +388 -34
  15. package/dist/cli.js.map +1 -1
  16. package/dist/compiler/api-routes.d.ts +14 -0
  17. package/dist/compiler/api-routes.d.ts.map +1 -0
  18. package/dist/compiler/api-routes.js +66 -0
  19. package/dist/compiler/api-routes.js.map +1 -0
  20. package/dist/compiler/base-links.d.ts +7 -0
  21. package/dist/compiler/base-links.d.ts.map +1 -0
  22. package/dist/compiler/base-links.js +40 -0
  23. package/dist/compiler/base-links.js.map +1 -0
  24. package/dist/compiler/data-document.d.ts +9 -0
  25. package/dist/compiler/data-document.d.ts.map +1 -0
  26. package/dist/compiler/data-document.js +21 -0
  27. package/dist/compiler/data-document.js.map +1 -0
  28. package/dist/compiler/docs.d.ts +6 -0
  29. package/dist/compiler/docs.d.ts.map +1 -0
  30. package/dist/compiler/docs.js +1131 -0
  31. package/dist/compiler/docs.js.map +1 -0
  32. package/dist/compiler/highlight.d.ts +13 -0
  33. package/dist/compiler/highlight.d.ts.map +1 -0
  34. package/dist/compiler/highlight.js +44 -0
  35. package/dist/compiler/highlight.js.map +1 -0
  36. package/dist/compiler/index.d.ts +132 -4
  37. package/dist/compiler/index.d.ts.map +1 -1
  38. package/dist/compiler/index.js +845 -48
  39. package/dist/compiler/index.js.map +1 -1
  40. package/dist/compiler/inline-assets.d.ts +6 -0
  41. package/dist/compiler/inline-assets.d.ts.map +1 -0
  42. package/dist/compiler/inline-assets.js +61 -0
  43. package/dist/compiler/inline-assets.js.map +1 -0
  44. package/dist/compiler/inline-modules.d.ts +7 -0
  45. package/dist/compiler/inline-modules.d.ts.map +1 -0
  46. package/dist/compiler/inline-modules.js +77 -0
  47. package/dist/compiler/inline-modules.js.map +1 -0
  48. package/dist/compiler/island-modules.d.ts +8 -0
  49. package/dist/compiler/island-modules.d.ts.map +1 -0
  50. package/dist/compiler/island-modules.js +42 -0
  51. package/dist/compiler/island-modules.js.map +1 -0
  52. package/dist/compiler/islands.d.ts +24 -3
  53. package/dist/compiler/islands.d.ts.map +1 -1
  54. package/dist/compiler/islands.js +50 -12
  55. package/dist/compiler/islands.js.map +1 -1
  56. package/dist/compiler/links.d.ts +37 -0
  57. package/dist/compiler/links.d.ts.map +1 -0
  58. package/dist/compiler/links.js +112 -0
  59. package/dist/compiler/links.js.map +1 -0
  60. package/dist/compiler/markdown.d.ts +17 -0
  61. package/dist/compiler/markdown.d.ts.map +1 -0
  62. package/dist/compiler/markdown.js +92 -0
  63. package/dist/compiler/markdown.js.map +1 -0
  64. package/dist/compiler/metadata.d.ts +37 -0
  65. package/dist/compiler/metadata.d.ts.map +1 -0
  66. package/dist/compiler/metadata.js +81 -0
  67. package/dist/compiler/metadata.js.map +1 -0
  68. package/dist/compiler/native-scripts.d.ts +13 -0
  69. package/dist/compiler/native-scripts.d.ts.map +1 -0
  70. package/dist/compiler/native-scripts.js +137 -0
  71. package/dist/compiler/native-scripts.js.map +1 -0
  72. package/dist/compiler/page-scripts.d.ts +36 -0
  73. package/dist/compiler/page-scripts.d.ts.map +1 -0
  74. package/dist/compiler/page-scripts.js +158 -0
  75. package/dist/compiler/page-scripts.js.map +1 -0
  76. package/dist/compiler/route-policy.d.ts +17 -0
  77. package/dist/compiler/route-policy.d.ts.map +1 -0
  78. package/dist/compiler/route-policy.js +68 -0
  79. package/dist/compiler/route-policy.js.map +1 -0
  80. package/dist/compiler/search.d.ts +13 -0
  81. package/dist/compiler/search.d.ts.map +1 -0
  82. package/dist/compiler/search.js +24 -0
  83. package/dist/compiler/search.js.map +1 -0
  84. package/dist/compiler/server-modules.d.ts +3 -0
  85. package/dist/compiler/server-modules.d.ts.map +1 -0
  86. package/dist/compiler/server-modules.js +31 -0
  87. package/dist/compiler/server-modules.js.map +1 -0
  88. package/dist/compiler/static-analysis.d.ts +20 -0
  89. package/dist/compiler/static-analysis.d.ts.map +1 -0
  90. package/dist/compiler/static-analysis.js +130 -0
  91. package/dist/compiler/static-analysis.js.map +1 -0
  92. package/dist/create-delegate.d.ts +17 -0
  93. package/dist/create-delegate.d.ts.map +1 -0
  94. package/dist/create-delegate.js +48 -0
  95. package/dist/create-delegate.js.map +1 -0
  96. package/dist/electron.d.ts +5 -0
  97. package/dist/electron.d.ts.map +1 -0
  98. package/dist/electron.js +32 -0
  99. package/dist/electron.js.map +1 -0
  100. package/dist/html-escape.d.ts +16 -0
  101. package/dist/html-escape.d.ts.map +1 -0
  102. package/dist/html-escape.js +26 -0
  103. package/dist/html-escape.js.map +1 -0
  104. package/dist/index.d.ts +6 -4
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +4 -3
  107. package/dist/index.js.map +1 -1
  108. package/dist/islands/hydration.d.ts +7 -0
  109. package/dist/islands/hydration.d.ts.map +1 -0
  110. package/dist/islands/hydration.js +12 -0
  111. package/dist/islands/hydration.js.map +1 -0
  112. package/dist/islands/react.d.ts +9 -2
  113. package/dist/islands/react.d.ts.map +1 -1
  114. package/dist/islands/react.js +73 -14
  115. package/dist/islands/react.js.map +1 -1
  116. package/dist/islands/solid.d.ts.map +1 -1
  117. package/dist/islands/solid.js +10 -1
  118. package/dist/islands/solid.js.map +1 -1
  119. package/dist/islands/vue.d.ts.map +1 -1
  120. package/dist/islands/vue.js +15 -3
  121. package/dist/islands/vue.js.map +1 -1
  122. package/dist/module-specifiers.d.ts +5 -0
  123. package/dist/module-specifiers.d.ts.map +1 -0
  124. package/dist/module-specifiers.js +80 -0
  125. package/dist/module-specifiers.js.map +1 -0
  126. package/dist/route-path.d.ts +33 -0
  127. package/dist/route-path.d.ts.map +1 -0
  128. package/dist/route-path.js +81 -0
  129. package/dist/route-path.js.map +1 -0
  130. package/dist/route-patterns.d.ts +8 -0
  131. package/dist/route-patterns.d.ts.map +1 -0
  132. package/dist/route-patterns.js +84 -0
  133. package/dist/route-patterns.js.map +1 -0
  134. package/dist/runtime/activation.d.ts +29 -0
  135. package/dist/runtime/activation.d.ts.map +1 -0
  136. package/dist/runtime/activation.js +236 -0
  137. package/dist/runtime/activation.js.map +1 -0
  138. package/dist/runtime/browser-navigation.d.ts +20 -0
  139. package/dist/runtime/browser-navigation.d.ts.map +1 -0
  140. package/dist/runtime/browser-navigation.js +138 -0
  141. package/dist/runtime/browser-navigation.js.map +1 -0
  142. package/dist/runtime/browser-support.d.ts +20 -0
  143. package/dist/runtime/browser-support.d.ts.map +1 -0
  144. package/dist/runtime/browser-support.js +39 -0
  145. package/dist/runtime/browser-support.js.map +1 -0
  146. package/dist/runtime/capacitor.d.ts +43 -0
  147. package/dist/runtime/capacitor.d.ts.map +1 -0
  148. package/dist/runtime/capacitor.js +84 -0
  149. package/dist/runtime/capacitor.js.map +1 -0
  150. package/dist/runtime/client-routes.d.ts +4 -0
  151. package/dist/runtime/client-routes.d.ts.map +1 -0
  152. package/dist/runtime/client-routes.js +3 -0
  153. package/dist/runtime/client-routes.js.map +1 -0
  154. package/dist/runtime/coordinated-navigation.d.ts +7 -0
  155. package/dist/runtime/coordinated-navigation.d.ts.map +1 -0
  156. package/dist/runtime/coordinated-navigation.js +50 -0
  157. package/dist/runtime/coordinated-navigation.js.map +1 -0
  158. package/dist/runtime/coordinator.d.ts +32 -0
  159. package/dist/runtime/coordinator.d.ts.map +1 -0
  160. package/dist/runtime/coordinator.js +115 -0
  161. package/dist/runtime/coordinator.js.map +1 -0
  162. package/dist/runtime/data.d.ts +25 -0
  163. package/dist/runtime/data.d.ts.map +1 -0
  164. package/dist/runtime/data.js +115 -0
  165. package/dist/runtime/data.js.map +1 -0
  166. package/dist/runtime/docs-search.d.ts +13 -0
  167. package/dist/runtime/docs-search.d.ts.map +1 -0
  168. package/dist/runtime/docs-search.js +205 -0
  169. package/dist/runtime/docs-search.js.map +1 -0
  170. package/dist/runtime/docs-ui.d.ts +7 -0
  171. package/dist/runtime/docs-ui.d.ts.map +1 -0
  172. package/dist/runtime/docs-ui.js +85 -0
  173. package/dist/runtime/docs-ui.js.map +1 -0
  174. package/dist/runtime/document-navigation.d.ts +9 -0
  175. package/dist/runtime/document-navigation.d.ts.map +1 -0
  176. package/dist/runtime/document-navigation.js +27 -0
  177. package/dist/runtime/document-navigation.js.map +1 -0
  178. package/dist/runtime/dom-renderer.d.ts +36 -0
  179. package/dist/runtime/dom-renderer.d.ts.map +1 -0
  180. package/dist/runtime/dom-renderer.js +173 -0
  181. package/dist/runtime/dom-renderer.js.map +1 -0
  182. package/dist/runtime/hash-navigation.d.ts +12 -0
  183. package/dist/runtime/hash-navigation.d.ts.map +1 -0
  184. package/dist/runtime/hash-navigation.js +26 -0
  185. package/dist/runtime/hash-navigation.js.map +1 -0
  186. package/dist/runtime/history-navigation.d.ts +17 -0
  187. package/dist/runtime/history-navigation.d.ts.map +1 -0
  188. package/dist/runtime/history-navigation.js +172 -0
  189. package/dist/runtime/history-navigation.js.map +1 -0
  190. package/dist/runtime/href.d.ts +16 -0
  191. package/dist/runtime/href.d.ts.map +1 -0
  192. package/dist/runtime/href.js +38 -0
  193. package/dist/runtime/href.js.map +1 -0
  194. package/dist/runtime/index.d.ts +73 -26
  195. package/dist/runtime/index.d.ts.map +1 -1
  196. package/dist/runtime/index.js +33 -118
  197. package/dist/runtime/index.js.map +1 -1
  198. package/dist/runtime/initial-route.d.ts +8 -0
  199. package/dist/runtime/initial-route.d.ts.map +1 -0
  200. package/dist/runtime/initial-route.js +72 -0
  201. package/dist/runtime/initial-route.js.map +1 -0
  202. package/dist/runtime/islands.d.ts +19 -5
  203. package/dist/runtime/islands.d.ts.map +1 -1
  204. package/dist/runtime/islands.js +15 -41
  205. package/dist/runtime/islands.js.map +1 -1
  206. package/dist/runtime/loading.d.ts +12 -0
  207. package/dist/runtime/loading.d.ts.map +1 -0
  208. package/dist/runtime/loading.js +43 -0
  209. package/dist/runtime/loading.js.map +1 -0
  210. package/dist/runtime/memory-navigation.d.ts +16 -0
  211. package/dist/runtime/memory-navigation.d.ts.map +1 -0
  212. package/dist/runtime/memory-navigation.js +98 -0
  213. package/dist/runtime/memory-navigation.js.map +1 -0
  214. package/dist/runtime/native.d.ts +108 -0
  215. package/dist/runtime/native.d.ts.map +1 -0
  216. package/dist/runtime/native.js +378 -0
  217. package/dist/runtime/native.js.map +1 -0
  218. package/dist/runtime/navigation-atom.d.ts +21 -0
  219. package/dist/runtime/navigation-atom.d.ts.map +1 -0
  220. package/dist/runtime/navigation-atom.js +76 -0
  221. package/dist/runtime/navigation-atom.js.map +1 -0
  222. package/dist/runtime/navigation.d.ts +61 -0
  223. package/dist/runtime/navigation.d.ts.map +1 -0
  224. package/dist/runtime/navigation.js +11 -0
  225. package/dist/runtime/navigation.js.map +1 -0
  226. package/dist/runtime/page-scripts.d.ts +54 -0
  227. package/dist/runtime/page-scripts.d.ts.map +1 -0
  228. package/dist/runtime/page-scripts.js +207 -0
  229. package/dist/runtime/page-scripts.js.map +1 -0
  230. package/dist/runtime/route-matches.d.ts +17 -0
  231. package/dist/runtime/route-matches.d.ts.map +1 -0
  232. package/dist/runtime/route-matches.js +50 -0
  233. package/dist/runtime/route-matches.js.map +1 -0
  234. package/dist/runtime/router-embedded.d.ts +28 -0
  235. package/dist/runtime/router-embedded.d.ts.map +1 -0
  236. package/dist/runtime/router-embedded.js +12 -0
  237. package/dist/runtime/router-embedded.js.map +1 -0
  238. package/dist/runtime/router-navigation-api.d.ts +28 -0
  239. package/dist/runtime/router-navigation-api.d.ts.map +1 -0
  240. package/dist/runtime/router-navigation-api.js +13 -0
  241. package/dist/runtime/router-navigation-api.js.map +1 -0
  242. package/dist/runtime/router.d.ts +137 -0
  243. package/dist/runtime/router.d.ts.map +1 -0
  244. package/dist/runtime/router.js +678 -0
  245. package/dist/runtime/router.js.map +1 -0
  246. package/dist/runtime/stale-deployment.d.ts +7 -0
  247. package/dist/runtime/stale-deployment.d.ts.map +1 -0
  248. package/dist/runtime/stale-deployment.js +30 -0
  249. package/dist/runtime/stale-deployment.js.map +1 -0
  250. package/dist/runtime/user-input.d.ts +25 -0
  251. package/dist/runtime/user-input.d.ts.map +1 -0
  252. package/dist/runtime/user-input.js +81 -0
  253. package/dist/runtime/user-input.js.map +1 -0
  254. package/dist/runtimes.d.ts +43 -0
  255. package/dist/runtimes.d.ts.map +1 -0
  256. package/dist/runtimes.js +152 -0
  257. package/dist/runtimes.js.map +1 -0
  258. package/dist/server/node.d.ts +47 -2
  259. package/dist/server/node.d.ts.map +1 -1
  260. package/dist/server/node.js +185 -23
  261. package/dist/server/node.js.map +1 -1
  262. package/dist/server/static.d.ts +11 -0
  263. package/dist/server/static.d.ts.map +1 -0
  264. package/dist/server/static.js +61 -0
  265. package/dist/server/static.js.map +1 -0
  266. package/dist/server-api.d.ts +73 -0
  267. package/dist/server-api.d.ts.map +1 -0
  268. package/dist/server-api.js +171 -0
  269. package/dist/server-api.js.map +1 -0
  270. package/dist/server-components/browser.d.ts +75 -0
  271. package/dist/server-components/browser.d.ts.map +1 -0
  272. package/dist/server-components/browser.js +558 -0
  273. package/dist/server-components/browser.js.map +1 -0
  274. package/dist/server-components/closures.d.ts +21 -0
  275. package/dist/server-components/closures.d.ts.map +1 -0
  276. package/dist/server-components/closures.js +192 -0
  277. package/dist/server-components/closures.js.map +1 -0
  278. package/dist/server-components/compiler.d.ts +6 -0
  279. package/dist/server-components/compiler.d.ts.map +1 -0
  280. package/dist/server-components/compiler.js +118 -0
  281. package/dist/server-components/compiler.js.map +1 -0
  282. package/dist/server-components/environment.d.ts +3 -0
  283. package/dist/server-components/environment.d.ts.map +1 -0
  284. package/dist/server-components/environment.js +11 -0
  285. package/dist/server-components/environment.js.map +1 -0
  286. package/dist/server-components/navigation.d.ts +10 -0
  287. package/dist/server-components/navigation.d.ts.map +1 -0
  288. package/dist/server-components/navigation.js +105 -0
  289. package/dist/server-components/navigation.js.map +1 -0
  290. package/dist/server-components/protocol.d.ts +77 -0
  291. package/dist/server-components/protocol.d.ts.map +1 -0
  292. package/dist/server-components/protocol.js +110 -0
  293. package/dist/server-components/protocol.js.map +1 -0
  294. package/dist/server-components/references.d.ts +22 -0
  295. package/dist/server-components/references.d.ts.map +1 -0
  296. package/dist/server-components/references.js +94 -0
  297. package/dist/server-components/references.js.map +1 -0
  298. package/dist/server-components/server.d.ts +78 -0
  299. package/dist/server-components/server.d.ts.map +1 -0
  300. package/dist/server-components/server.js +278 -0
  301. package/dist/server-components/server.js.map +1 -0
  302. package/dist/server-components/stream.d.ts +15 -0
  303. package/dist/server-components/stream.d.ts.map +1 -0
  304. package/dist/server-components/stream.js +72 -0
  305. package/dist/server-components/stream.js.map +1 -0
  306. package/dist/server-cookies.d.ts +41 -0
  307. package/dist/server-cookies.d.ts.map +1 -0
  308. package/dist/server-cookies.js +120 -0
  309. package/dist/server-cookies.js.map +1 -0
  310. package/dist/server-data.d.ts +51 -0
  311. package/dist/server-data.d.ts.map +1 -0
  312. package/dist/server-data.js +37 -0
  313. package/dist/server-data.js.map +1 -0
  314. package/dist/server.d.ts +57 -4
  315. package/dist/server.d.ts.map +1 -1
  316. package/dist/server.js +244 -13
  317. package/dist/server.js.map +1 -1
  318. package/dist/ui/behaviors/accordion.d.ts +14 -0
  319. package/dist/ui/behaviors/accordion.d.ts.map +1 -0
  320. package/dist/ui/behaviors/accordion.js +149 -0
  321. package/dist/ui/behaviors/accordion.js.map +1 -0
  322. package/dist/ui/behaviors/catalogue.d.ts +63 -0
  323. package/dist/ui/behaviors/catalogue.d.ts.map +1 -0
  324. package/dist/ui/behaviors/catalogue.js +284 -0
  325. package/dist/ui/behaviors/catalogue.js.map +1 -0
  326. package/dist/ui/behaviors/collapsible.d.ts +26 -0
  327. package/dist/ui/behaviors/collapsible.d.ts.map +1 -0
  328. package/dist/ui/behaviors/collapsible.js +145 -0
  329. package/dist/ui/behaviors/collapsible.js.map +1 -0
  330. package/dist/ui/behaviors/dialog.d.ts +16 -0
  331. package/dist/ui/behaviors/dialog.d.ts.map +1 -0
  332. package/dist/ui/behaviors/dialog.js +225 -0
  333. package/dist/ui/behaviors/dialog.js.map +1 -0
  334. package/dist/ui/behaviors/lifecycle.d.ts +15 -0
  335. package/dist/ui/behaviors/lifecycle.d.ts.map +1 -0
  336. package/dist/ui/behaviors/lifecycle.js +51 -0
  337. package/dist/ui/behaviors/lifecycle.js.map +1 -0
  338. package/dist/ui/behaviors/menu.d.ts +15 -0
  339. package/dist/ui/behaviors/menu.d.ts.map +1 -0
  340. package/dist/ui/behaviors/menu.js +162 -0
  341. package/dist/ui/behaviors/menu.js.map +1 -0
  342. package/dist/ui/behaviors/ownership.d.ts +7 -0
  343. package/dist/ui/behaviors/ownership.d.ts.map +1 -0
  344. package/dist/ui/behaviors/ownership.js +16 -0
  345. package/dist/ui/behaviors/ownership.js.map +1 -0
  346. package/dist/ui/behaviors/popover.d.ts +16 -0
  347. package/dist/ui/behaviors/popover.d.ts.map +1 -0
  348. package/dist/ui/behaviors/popover.js +90 -0
  349. package/dist/ui/behaviors/popover.js.map +1 -0
  350. package/dist/ui/behaviors/select.d.ts +37 -0
  351. package/dist/ui/behaviors/select.d.ts.map +1 -0
  352. package/dist/ui/behaviors/select.js +261 -0
  353. package/dist/ui/behaviors/select.js.map +1 -0
  354. package/dist/ui/behaviors/switch.d.ts +43 -0
  355. package/dist/ui/behaviors/switch.d.ts.map +1 -0
  356. package/dist/ui/behaviors/switch.js +269 -0
  357. package/dist/ui/behaviors/switch.js.map +1 -0
  358. package/dist/ui/behaviors/tabs.d.ts +4 -0
  359. package/dist/ui/behaviors/tabs.d.ts.map +1 -0
  360. package/dist/ui/behaviors/tabs.js +121 -0
  361. package/dist/ui/behaviors/tabs.js.map +1 -0
  362. package/dist/ui/behaviors/toolbar.d.ts +4 -0
  363. package/dist/ui/behaviors/toolbar.d.ts.map +1 -0
  364. package/dist/ui/behaviors/toolbar.js +81 -0
  365. package/dist/ui/behaviors/toolbar.js.map +1 -0
  366. package/dist/ui/behaviors/tooltip.d.ts +16 -0
  367. package/dist/ui/behaviors/tooltip.d.ts.map +1 -0
  368. package/dist/ui/behaviors/tooltip.js +91 -0
  369. package/dist/ui/behaviors/tooltip.js.map +1 -0
  370. package/dist/ui/behaviors/types.d.ts +51 -0
  371. package/dist/ui/behaviors/types.d.ts.map +1 -0
  372. package/dist/ui/behaviors/types.js +2 -0
  373. package/dist/ui/behaviors/types.js.map +1 -0
  374. package/dist/ui/catalogue-loaders.d.ts +4 -0
  375. package/dist/ui/catalogue-loaders.d.ts.map +1 -0
  376. package/dist/ui/catalogue-loaders.js +45 -0
  377. package/dist/ui/catalogue-loaders.js.map +1 -0
  378. package/dist/ui/catalogue.d.ts +465 -0
  379. package/dist/ui/catalogue.d.ts.map +1 -0
  380. package/dist/ui/catalogue.js +1570 -0
  381. package/dist/ui/catalogue.js.map +1 -0
  382. package/dist/ui/checkpoints.d.ts +20 -0
  383. package/dist/ui/checkpoints.d.ts.map +1 -0
  384. package/dist/ui/checkpoints.js +118 -0
  385. package/dist/ui/checkpoints.js.map +1 -0
  386. package/dist/ui/components/accordion/accordion.d.ts +22 -0
  387. package/dist/ui/components/accordion/accordion.d.ts.map +1 -0
  388. package/dist/ui/components/accordion/accordion.js +47 -0
  389. package/dist/ui/components/accordion/accordion.js.map +1 -0
  390. package/dist/ui/components/accordion/index.d.ts +2 -0
  391. package/dist/ui/components/accordion/index.d.ts.map +1 -0
  392. package/dist/ui/components/accordion/index.js +2 -0
  393. package/dist/ui/components/accordion/index.js.map +1 -0
  394. package/dist/ui/components/angle-slider/index.d.ts +5 -0
  395. package/dist/ui/components/angle-slider/index.d.ts.map +1 -0
  396. package/dist/ui/components/angle-slider/index.js +7 -0
  397. package/dist/ui/components/angle-slider/index.js.map +1 -0
  398. package/dist/ui/components/async-list/index.d.ts +5 -0
  399. package/dist/ui/components/async-list/index.d.ts.map +1 -0
  400. package/dist/ui/components/async-list/index.js +7 -0
  401. package/dist/ui/components/async-list/index.js.map +1 -0
  402. package/dist/ui/components/avatar/index.d.ts +5 -0
  403. package/dist/ui/components/avatar/index.d.ts.map +1 -0
  404. package/dist/ui/components/avatar/index.js +7 -0
  405. package/dist/ui/components/avatar/index.js.map +1 -0
  406. package/dist/ui/components/badge/badge.d.ts +6 -0
  407. package/dist/ui/components/badge/badge.d.ts.map +1 -0
  408. package/dist/ui/components/badge/badge.js +11 -0
  409. package/dist/ui/components/badge/badge.js.map +1 -0
  410. package/dist/ui/components/badge/index.d.ts +2 -0
  411. package/dist/ui/components/badge/index.d.ts.map +1 -0
  412. package/dist/ui/components/badge/index.js +2 -0
  413. package/dist/ui/components/badge/index.js.map +1 -0
  414. package/dist/ui/components/button/button.d.ts +26 -0
  415. package/dist/ui/components/button/button.d.ts.map +1 -0
  416. package/dist/ui/components/button/button.js +116 -0
  417. package/dist/ui/components/button/button.js.map +1 -0
  418. package/dist/ui/components/button/index.d.ts +2 -0
  419. package/dist/ui/components/button/index.d.ts.map +1 -0
  420. package/dist/ui/components/button/index.js +2 -0
  421. package/dist/ui/components/button/index.js.map +1 -0
  422. package/dist/ui/components/card/card.d.ts +21 -0
  423. package/dist/ui/components/card/card.d.ts.map +1 -0
  424. package/dist/ui/components/card/card.js +41 -0
  425. package/dist/ui/components/card/card.js.map +1 -0
  426. package/dist/ui/components/card/index.d.ts +2 -0
  427. package/dist/ui/components/card/index.d.ts.map +1 -0
  428. package/dist/ui/components/card/index.js +2 -0
  429. package/dist/ui/components/card/index.js.map +1 -0
  430. package/dist/ui/components/carousel/index.d.ts +5 -0
  431. package/dist/ui/components/carousel/index.d.ts.map +1 -0
  432. package/dist/ui/components/carousel/index.js +7 -0
  433. package/dist/ui/components/carousel/index.js.map +1 -0
  434. package/dist/ui/components/cascade-select/index.d.ts +7 -0
  435. package/dist/ui/components/cascade-select/index.d.ts.map +1 -0
  436. package/dist/ui/components/cascade-select/index.js +8 -0
  437. package/dist/ui/components/cascade-select/index.js.map +1 -0
  438. package/dist/ui/components/checkbox/index.d.ts +5 -0
  439. package/dist/ui/components/checkbox/index.d.ts.map +1 -0
  440. package/dist/ui/components/checkbox/index.js +7 -0
  441. package/dist/ui/components/checkbox/index.js.map +1 -0
  442. package/dist/ui/components/clipboard/index.d.ts +5 -0
  443. package/dist/ui/components/clipboard/index.d.ts.map +1 -0
  444. package/dist/ui/components/clipboard/index.js +7 -0
  445. package/dist/ui/components/clipboard/index.js.map +1 -0
  446. package/dist/ui/components/collapsible/collapsible.d.ts +21 -0
  447. package/dist/ui/components/collapsible/collapsible.d.ts.map +1 -0
  448. package/dist/ui/components/collapsible/collapsible.js +39 -0
  449. package/dist/ui/components/collapsible/collapsible.js.map +1 -0
  450. package/dist/ui/components/collapsible/index.d.ts +2 -0
  451. package/dist/ui/components/collapsible/index.d.ts.map +1 -0
  452. package/dist/ui/components/collapsible/index.js +2 -0
  453. package/dist/ui/components/collapsible/index.js.map +1 -0
  454. package/dist/ui/components/color-picker/index.d.ts +7 -0
  455. package/dist/ui/components/color-picker/index.d.ts.map +1 -0
  456. package/dist/ui/components/color-picker/index.js +8 -0
  457. package/dist/ui/components/color-picker/index.js.map +1 -0
  458. package/dist/ui/components/combobox/index.d.ts +7 -0
  459. package/dist/ui/components/combobox/index.d.ts.map +1 -0
  460. package/dist/ui/components/combobox/index.js +8 -0
  461. package/dist/ui/components/combobox/index.js.map +1 -0
  462. package/dist/ui/components/date-input/index.d.ts +7 -0
  463. package/dist/ui/components/date-input/index.d.ts.map +1 -0
  464. package/dist/ui/components/date-input/index.js +8 -0
  465. package/dist/ui/components/date-input/index.js.map +1 -0
  466. package/dist/ui/components/date-picker/index.d.ts +7 -0
  467. package/dist/ui/components/date-picker/index.d.ts.map +1 -0
  468. package/dist/ui/components/date-picker/index.js +8 -0
  469. package/dist/ui/components/date-picker/index.js.map +1 -0
  470. package/dist/ui/components/dialog/dialog.d.ts +44 -0
  471. package/dist/ui/components/dialog/dialog.d.ts.map +1 -0
  472. package/dist/ui/components/dialog/dialog.js +105 -0
  473. package/dist/ui/components/dialog/dialog.js.map +1 -0
  474. package/dist/ui/components/dialog/index.d.ts +2 -0
  475. package/dist/ui/components/dialog/index.d.ts.map +1 -0
  476. package/dist/ui/components/dialog/index.js +2 -0
  477. package/dist/ui/components/dialog/index.js.map +1 -0
  478. package/dist/ui/components/drawer/index.d.ts +5 -0
  479. package/dist/ui/components/drawer/index.d.ts.map +1 -0
  480. package/dist/ui/components/drawer/index.js +7 -0
  481. package/dist/ui/components/drawer/index.js.map +1 -0
  482. package/dist/ui/components/editable/index.d.ts +5 -0
  483. package/dist/ui/components/editable/index.d.ts.map +1 -0
  484. package/dist/ui/components/editable/index.js +7 -0
  485. package/dist/ui/components/editable/index.js.map +1 -0
  486. package/dist/ui/components/file-upload/index.d.ts +5 -0
  487. package/dist/ui/components/file-upload/index.d.ts.map +1 -0
  488. package/dist/ui/components/file-upload/index.js +7 -0
  489. package/dist/ui/components/file-upload/index.js.map +1 -0
  490. package/dist/ui/components/floating-panel/index.d.ts +5 -0
  491. package/dist/ui/components/floating-panel/index.d.ts.map +1 -0
  492. package/dist/ui/components/floating-panel/index.js +7 -0
  493. package/dist/ui/components/floating-panel/index.js.map +1 -0
  494. package/dist/ui/components/hover-card/index.d.ts +5 -0
  495. package/dist/ui/components/hover-card/index.d.ts.map +1 -0
  496. package/dist/ui/components/hover-card/index.js +7 -0
  497. package/dist/ui/components/hover-card/index.js.map +1 -0
  498. package/dist/ui/components/image-cropper/index.d.ts +5 -0
  499. package/dist/ui/components/image-cropper/index.d.ts.map +1 -0
  500. package/dist/ui/components/image-cropper/index.js +7 -0
  501. package/dist/ui/components/image-cropper/index.js.map +1 -0
  502. package/dist/ui/components/index.d.ts +61 -0
  503. package/dist/ui/components/index.d.ts.map +1 -0
  504. package/dist/ui/components/index.js +186 -0
  505. package/dist/ui/components/index.js.map +1 -0
  506. package/dist/ui/components/layout/box.d.ts +11 -0
  507. package/dist/ui/components/layout/box.d.ts.map +1 -0
  508. package/dist/ui/components/layout/box.js +44 -0
  509. package/dist/ui/components/layout/box.js.map +1 -0
  510. package/dist/ui/components/layout/container.d.ts +9 -0
  511. package/dist/ui/components/layout/container.d.ts.map +1 -0
  512. package/dist/ui/components/layout/container.js +38 -0
  513. package/dist/ui/components/layout/container.js.map +1 -0
  514. package/dist/ui/components/layout/flex.d.ts +10 -0
  515. package/dist/ui/components/layout/flex.d.ts.map +1 -0
  516. package/dist/ui/components/layout/flex.js +53 -0
  517. package/dist/ui/components/layout/flex.js.map +1 -0
  518. package/dist/ui/components/layout/grid.d.ts +10 -0
  519. package/dist/ui/components/layout/grid.d.ts.map +1 -0
  520. package/dist/ui/components/layout/grid.js +47 -0
  521. package/dist/ui/components/layout/grid.js.map +1 -0
  522. package/dist/ui/components/layout/index.d.ts +6 -0
  523. package/dist/ui/components/layout/index.d.ts.map +1 -0
  524. package/dist/ui/components/layout/index.js +6 -0
  525. package/dist/ui/components/layout/index.js.map +1 -0
  526. package/dist/ui/components/layout/stack.d.ts +9 -0
  527. package/dist/ui/components/layout/stack.d.ts.map +1 -0
  528. package/dist/ui/components/layout/stack.js +37 -0
  529. package/dist/ui/components/layout/stack.js.map +1 -0
  530. package/dist/ui/components/listbox/index.d.ts +8 -0
  531. package/dist/ui/components/listbox/index.d.ts.map +1 -0
  532. package/dist/ui/components/listbox/index.js +9 -0
  533. package/dist/ui/components/listbox/index.js.map +1 -0
  534. package/dist/ui/components/marquee/index.d.ts +5 -0
  535. package/dist/ui/components/marquee/index.d.ts.map +1 -0
  536. package/dist/ui/components/marquee/index.js +7 -0
  537. package/dist/ui/components/marquee/index.js.map +1 -0
  538. package/dist/ui/components/menu/index.d.ts +2 -0
  539. package/dist/ui/components/menu/index.d.ts.map +1 -0
  540. package/dist/ui/components/menu/index.js +2 -0
  541. package/dist/ui/components/menu/index.js.map +1 -0
  542. package/dist/ui/components/menu/menu.d.ts +23 -0
  543. package/dist/ui/components/menu/menu.d.ts.map +1 -0
  544. package/dist/ui/components/menu/menu.js +45 -0
  545. package/dist/ui/components/menu/menu.js.map +1 -0
  546. package/dist/ui/components/navigation/breadcrumbs.d.ts +19 -0
  547. package/dist/ui/components/navigation/breadcrumbs.d.ts.map +1 -0
  548. package/dist/ui/components/navigation/breadcrumbs.js +90 -0
  549. package/dist/ui/components/navigation/breadcrumbs.js.map +1 -0
  550. package/dist/ui/components/navigation/index.d.ts +6 -0
  551. package/dist/ui/components/navigation/index.d.ts.map +1 -0
  552. package/dist/ui/components/navigation/index.js +6 -0
  553. package/dist/ui/components/navigation/index.js.map +1 -0
  554. package/dist/ui/components/navigation/prose.d.ts +6 -0
  555. package/dist/ui/components/navigation/prose.d.ts.map +1 -0
  556. package/dist/ui/components/navigation/prose.js +11 -0
  557. package/dist/ui/components/navigation/prose.js.map +1 -0
  558. package/dist/ui/components/navigation/sidebar.d.ts +10 -0
  559. package/dist/ui/components/navigation/sidebar.d.ts.map +1 -0
  560. package/dist/ui/components/navigation/sidebar.js +35 -0
  561. package/dist/ui/components/navigation/sidebar.js.map +1 -0
  562. package/dist/ui/components/navigation/toc.d.ts +11 -0
  563. package/dist/ui/components/navigation/toc.d.ts.map +1 -0
  564. package/dist/ui/components/navigation/toc.js +82 -0
  565. package/dist/ui/components/navigation/toc.js.map +1 -0
  566. package/dist/ui/components/navigation-menu/index.d.ts +5 -0
  567. package/dist/ui/components/navigation-menu/index.d.ts.map +1 -0
  568. package/dist/ui/components/navigation-menu/index.js +7 -0
  569. package/dist/ui/components/navigation-menu/index.js.map +1 -0
  570. package/dist/ui/components/number-input/index.d.ts +5 -0
  571. package/dist/ui/components/number-input/index.d.ts.map +1 -0
  572. package/dist/ui/components/number-input/index.js +7 -0
  573. package/dist/ui/components/number-input/index.js.map +1 -0
  574. package/dist/ui/components/pagination/index.d.ts +5 -0
  575. package/dist/ui/components/pagination/index.d.ts.map +1 -0
  576. package/dist/ui/components/pagination/index.js +7 -0
  577. package/dist/ui/components/pagination/index.js.map +1 -0
  578. package/dist/ui/components/password-input/index.d.ts +5 -0
  579. package/dist/ui/components/password-input/index.d.ts.map +1 -0
  580. package/dist/ui/components/password-input/index.js +7 -0
  581. package/dist/ui/components/password-input/index.js.map +1 -0
  582. package/dist/ui/components/pin-input/index.d.ts +5 -0
  583. package/dist/ui/components/pin-input/index.d.ts.map +1 -0
  584. package/dist/ui/components/pin-input/index.js +7 -0
  585. package/dist/ui/components/pin-input/index.js.map +1 -0
  586. package/dist/ui/components/popover/index.d.ts +2 -0
  587. package/dist/ui/components/popover/index.d.ts.map +1 -0
  588. package/dist/ui/components/popover/index.js +2 -0
  589. package/dist/ui/components/popover/index.js.map +1 -0
  590. package/dist/ui/components/popover/popover.d.ts +14 -0
  591. package/dist/ui/components/popover/popover.d.ts.map +1 -0
  592. package/dist/ui/components/popover/popover.js +22 -0
  593. package/dist/ui/components/popover/popover.js.map +1 -0
  594. package/dist/ui/components/presence/index.d.ts +5 -0
  595. package/dist/ui/components/presence/index.d.ts.map +1 -0
  596. package/dist/ui/components/presence/index.js +7 -0
  597. package/dist/ui/components/presence/index.js.map +1 -0
  598. package/dist/ui/components/progress/index.d.ts +5 -0
  599. package/dist/ui/components/progress/index.d.ts.map +1 -0
  600. package/dist/ui/components/progress/index.js +7 -0
  601. package/dist/ui/components/progress/index.js.map +1 -0
  602. package/dist/ui/components/qr-code/index.d.ts +5 -0
  603. package/dist/ui/components/qr-code/index.d.ts.map +1 -0
  604. package/dist/ui/components/qr-code/index.js +7 -0
  605. package/dist/ui/components/qr-code/index.js.map +1 -0
  606. package/dist/ui/components/radio-group/index.d.ts +5 -0
  607. package/dist/ui/components/radio-group/index.d.ts.map +1 -0
  608. package/dist/ui/components/radio-group/index.js +7 -0
  609. package/dist/ui/components/radio-group/index.js.map +1 -0
  610. package/dist/ui/components/rating-group/index.d.ts +5 -0
  611. package/dist/ui/components/rating-group/index.d.ts.map +1 -0
  612. package/dist/ui/components/rating-group/index.js +7 -0
  613. package/dist/ui/components/rating-group/index.js.map +1 -0
  614. package/dist/ui/components/resize-handle/index.d.ts +2 -0
  615. package/dist/ui/components/resize-handle/index.d.ts.map +1 -0
  616. package/dist/ui/components/resize-handle/index.js +2 -0
  617. package/dist/ui/components/resize-handle/index.js.map +1 -0
  618. package/dist/ui/components/resize-handle/resize-handle.d.ts +39 -0
  619. package/dist/ui/components/resize-handle/resize-handle.d.ts.map +1 -0
  620. package/dist/ui/components/resize-handle/resize-handle.js +170 -0
  621. package/dist/ui/components/resize-handle/resize-handle.js.map +1 -0
  622. package/dist/ui/components/scroll-area/index.d.ts +5 -0
  623. package/dist/ui/components/scroll-area/index.d.ts.map +1 -0
  624. package/dist/ui/components/scroll-area/index.js +7 -0
  625. package/dist/ui/components/scroll-area/index.js.map +1 -0
  626. package/dist/ui/components/select/index.d.ts +2 -0
  627. package/dist/ui/components/select/index.d.ts.map +1 -0
  628. package/dist/ui/components/select/index.js +2 -0
  629. package/dist/ui/components/select/index.js.map +1 -0
  630. package/dist/ui/components/select/select.d.ts +40 -0
  631. package/dist/ui/components/select/select.d.ts.map +1 -0
  632. package/dist/ui/components/select/select.js +57 -0
  633. package/dist/ui/components/select/select.js.map +1 -0
  634. package/dist/ui/components/separator/index.d.ts +2 -0
  635. package/dist/ui/components/separator/index.d.ts.map +1 -0
  636. package/dist/ui/components/separator/index.js +2 -0
  637. package/dist/ui/components/separator/index.js.map +1 -0
  638. package/dist/ui/components/separator/separator.d.ts +9 -0
  639. package/dist/ui/components/separator/separator.d.ts.map +1 -0
  640. package/dist/ui/components/separator/separator.js +27 -0
  641. package/dist/ui/components/separator/separator.js.map +1 -0
  642. package/dist/ui/components/signature-pad/index.d.ts +5 -0
  643. package/dist/ui/components/signature-pad/index.d.ts.map +1 -0
  644. package/dist/ui/components/signature-pad/index.js +7 -0
  645. package/dist/ui/components/signature-pad/index.js.map +1 -0
  646. package/dist/ui/components/slider/index.d.ts +5 -0
  647. package/dist/ui/components/slider/index.d.ts.map +1 -0
  648. package/dist/ui/components/slider/index.js +7 -0
  649. package/dist/ui/components/slider/index.js.map +1 -0
  650. package/dist/ui/components/splitter/index.d.ts +5 -0
  651. package/dist/ui/components/splitter/index.d.ts.map +1 -0
  652. package/dist/ui/components/splitter/index.js +7 -0
  653. package/dist/ui/components/splitter/index.js.map +1 -0
  654. package/dist/ui/components/steps/index.d.ts +5 -0
  655. package/dist/ui/components/steps/index.d.ts.map +1 -0
  656. package/dist/ui/components/steps/index.js +7 -0
  657. package/dist/ui/components/steps/index.js.map +1 -0
  658. package/dist/ui/components/switch/index.d.ts +2 -0
  659. package/dist/ui/components/switch/index.d.ts.map +1 -0
  660. package/dist/ui/components/switch/index.js +2 -0
  661. package/dist/ui/components/switch/index.js.map +1 -0
  662. package/dist/ui/components/switch/switch.d.ts +48 -0
  663. package/dist/ui/components/switch/switch.d.ts.map +1 -0
  664. package/dist/ui/components/switch/switch.js +64 -0
  665. package/dist/ui/components/switch/switch.js.map +1 -0
  666. package/dist/ui/components/tabs/index.d.ts +2 -0
  667. package/dist/ui/components/tabs/index.d.ts.map +1 -0
  668. package/dist/ui/components/tabs/index.js +2 -0
  669. package/dist/ui/components/tabs/index.js.map +1 -0
  670. package/dist/ui/components/tabs/tabs.d.ts +22 -0
  671. package/dist/ui/components/tabs/tabs.d.ts.map +1 -0
  672. package/dist/ui/components/tabs/tabs.js +89 -0
  673. package/dist/ui/components/tabs/tabs.js.map +1 -0
  674. package/dist/ui/components/tags-input/index.d.ts +5 -0
  675. package/dist/ui/components/tags-input/index.d.ts.map +1 -0
  676. package/dist/ui/components/tags-input/index.js +7 -0
  677. package/dist/ui/components/tags-input/index.js.map +1 -0
  678. package/dist/ui/components/timer/index.d.ts +7 -0
  679. package/dist/ui/components/timer/index.d.ts.map +1 -0
  680. package/dist/ui/components/timer/index.js +8 -0
  681. package/dist/ui/components/timer/index.js.map +1 -0
  682. package/dist/ui/components/toast/index.d.ts +7 -0
  683. package/dist/ui/components/toast/index.d.ts.map +1 -0
  684. package/dist/ui/components/toast/index.js +8 -0
  685. package/dist/ui/components/toast/index.js.map +1 -0
  686. package/dist/ui/components/toc/index.d.ts +5 -0
  687. package/dist/ui/components/toc/index.d.ts.map +1 -0
  688. package/dist/ui/components/toc/index.js +7 -0
  689. package/dist/ui/components/toc/index.js.map +1 -0
  690. package/dist/ui/components/toggle/index.d.ts +5 -0
  691. package/dist/ui/components/toggle/index.d.ts.map +1 -0
  692. package/dist/ui/components/toggle/index.js +7 -0
  693. package/dist/ui/components/toggle/index.js.map +1 -0
  694. package/dist/ui/components/toggle-group/index.d.ts +5 -0
  695. package/dist/ui/components/toggle-group/index.d.ts.map +1 -0
  696. package/dist/ui/components/toggle-group/index.js +7 -0
  697. package/dist/ui/components/toggle-group/index.js.map +1 -0
  698. package/dist/ui/components/toolbar/index.d.ts +11 -0
  699. package/dist/ui/components/toolbar/index.d.ts.map +1 -0
  700. package/dist/ui/components/toolbar/index.js +18 -0
  701. package/dist/ui/components/toolbar/index.js.map +1 -0
  702. package/dist/ui/components/tooltip/index.d.ts +2 -0
  703. package/dist/ui/components/tooltip/index.d.ts.map +1 -0
  704. package/dist/ui/components/tooltip/index.js +2 -0
  705. package/dist/ui/components/tooltip/index.js.map +1 -0
  706. package/dist/ui/components/tooltip/tooltip.d.ts +14 -0
  707. package/dist/ui/components/tooltip/tooltip.d.ts.map +1 -0
  708. package/dist/ui/components/tooltip/tooltip.js +22 -0
  709. package/dist/ui/components/tooltip/tooltip.js.map +1 -0
  710. package/dist/ui/components/tour/index.d.ts +5 -0
  711. package/dist/ui/components/tour/index.d.ts.map +1 -0
  712. package/dist/ui/components/tour/index.js +7 -0
  713. package/dist/ui/components/tour/index.js.map +1 -0
  714. package/dist/ui/components/tree-view/index.d.ts +7 -0
  715. package/dist/ui/components/tree-view/index.d.ts.map +1 -0
  716. package/dist/ui/components/tree-view/index.js +8 -0
  717. package/dist/ui/components/tree-view/index.js.map +1 -0
  718. package/dist/ui/core/button-behavior.d.ts +3 -0
  719. package/dist/ui/core/button-behavior.d.ts.map +1 -0
  720. package/dist/ui/core/button-behavior.js +50 -0
  721. package/dist/ui/core/button-behavior.js.map +1 -0
  722. package/dist/ui/core/catalogue-element.d.ts +6 -0
  723. package/dist/ui/core/catalogue-element.d.ts.map +1 -0
  724. package/dist/ui/core/catalogue-element.js +28 -0
  725. package/dist/ui/core/catalogue-element.js.map +1 -0
  726. package/dist/ui/core/component-styles.d.ts +2 -0
  727. package/dist/ui/core/component-styles.d.ts.map +1 -0
  728. package/dist/ui/core/component-styles.js +77 -0
  729. package/dist/ui/core/component-styles.js.map +1 -0
  730. package/dist/ui/core/element.d.ts +12 -0
  731. package/dist/ui/core/element.d.ts.map +1 -0
  732. package/dist/ui/core/element.js +57 -0
  733. package/dist/ui/core/element.js.map +1 -0
  734. package/dist/ui/core/events.d.ts +6 -0
  735. package/dist/ui/core/events.d.ts.map +1 -0
  736. package/dist/ui/core/events.js +13 -0
  737. package/dist/ui/core/events.js.map +1 -0
  738. package/dist/ui/core/form-control.d.ts +4 -0
  739. package/dist/ui/core/form-control.d.ts.map +1 -0
  740. package/dist/ui/core/form-control.js +25 -0
  741. package/dist/ui/core/form-control.js.map +1 -0
  742. package/dist/ui/core/index.d.ts +5 -0
  743. package/dist/ui/core/index.d.ts.map +1 -0
  744. package/dist/ui/core/index.js +5 -0
  745. package/dist/ui/core/index.js.map +1 -0
  746. package/dist/ui/core/layout-styles.d.ts +2 -0
  747. package/dist/ui/core/layout-styles.d.ts.map +1 -0
  748. package/dist/ui/core/layout-styles.js +58 -0
  749. package/dist/ui/core/layout-styles.js.map +1 -0
  750. package/dist/ui/core/machine-checkpoints.d.ts +6 -0
  751. package/dist/ui/core/machine-checkpoints.d.ts.map +1 -0
  752. package/dist/ui/core/machine-checkpoints.js +47 -0
  753. package/dist/ui/core/machine-checkpoints.js.map +1 -0
  754. package/dist/ui/core/machine-clock.d.ts +16 -0
  755. package/dist/ui/core/machine-clock.d.ts.map +1 -0
  756. package/dist/ui/core/machine-clock.js +89 -0
  757. package/dist/ui/core/machine-clock.js.map +1 -0
  758. package/dist/ui/core/machine-codec.d.ts +29 -0
  759. package/dist/ui/core/machine-codec.d.ts.map +1 -0
  760. package/dist/ui/core/machine-codec.js +217 -0
  761. package/dist/ui/core/machine-codec.js.map +1 -0
  762. package/dist/ui/core/machine-profiles.d.ts +437 -0
  763. package/dist/ui/core/machine-profiles.d.ts.map +1 -0
  764. package/dist/ui/core/machine-profiles.js +1175 -0
  765. package/dist/ui/core/machine-profiles.js.map +1 -0
  766. package/dist/ui/core/machine-resources.d.ts +6 -0
  767. package/dist/ui/core/machine-resources.d.ts.map +1 -0
  768. package/dist/ui/core/machine-resources.js +46 -0
  769. package/dist/ui/core/machine-resources.js.map +1 -0
  770. package/dist/ui/core/machine.d.ts +29 -0
  771. package/dist/ui/core/machine.d.ts.map +1 -0
  772. package/dist/ui/core/machine.js +111 -0
  773. package/dist/ui/core/machine.js.map +1 -0
  774. package/dist/ui/core/parts.d.ts +4 -0
  775. package/dist/ui/core/parts.d.ts.map +1 -0
  776. package/dist/ui/core/parts.js +33 -0
  777. package/dist/ui/core/parts.js.map +1 -0
  778. package/dist/ui/core/portal.d.ts +11 -0
  779. package/dist/ui/core/portal.d.ts.map +1 -0
  780. package/dist/ui/core/portal.js +71 -0
  781. package/dist/ui/core/portal.js.map +1 -0
  782. package/dist/ui/core/public-machine.d.ts +4 -0
  783. package/dist/ui/core/public-machine.d.ts.map +1 -0
  784. package/dist/ui/core/public-machine.js +26 -0
  785. package/dist/ui/core/public-machine.js.map +1 -0
  786. package/dist/ui/core/resumable-machine.d.ts +13 -0
  787. package/dist/ui/core/resumable-machine.d.ts.map +1 -0
  788. package/dist/ui/core/resumable-machine.js +336 -0
  789. package/dist/ui/core/resumable-machine.js.map +1 -0
  790. package/dist/ui/drivers/bulma.d.ts +3 -0
  791. package/dist/ui/drivers/bulma.d.ts.map +1 -0
  792. package/dist/ui/drivers/bulma.js +249 -0
  793. package/dist/ui/drivers/bulma.js.map +1 -0
  794. package/dist/ui/drivers/daisyui.d.ts +9 -0
  795. package/dist/ui/drivers/daisyui.d.ts.map +1 -0
  796. package/dist/ui/drivers/daisyui.js +107 -0
  797. package/dist/ui/drivers/daisyui.js.map +1 -0
  798. package/dist/ui/drivers/index.d.ts +7 -0
  799. package/dist/ui/drivers/index.d.ts.map +1 -0
  800. package/dist/ui/drivers/index.js +7 -0
  801. package/dist/ui/drivers/index.js.map +1 -0
  802. package/dist/ui/drivers/registry.d.ts +11 -0
  803. package/dist/ui/drivers/registry.d.ts.map +1 -0
  804. package/dist/ui/drivers/registry.js +109 -0
  805. package/dist/ui/drivers/registry.js.map +1 -0
  806. package/dist/ui/drivers/shadcn.d.ts +3 -0
  807. package/dist/ui/drivers/shadcn.d.ts.map +1 -0
  808. package/dist/ui/drivers/shadcn.js +288 -0
  809. package/dist/ui/drivers/shadcn.js.map +1 -0
  810. package/dist/ui/drivers/types.d.ts +43 -0
  811. package/dist/ui/drivers/types.d.ts.map +1 -0
  812. package/dist/ui/drivers/types.js +2 -0
  813. package/dist/ui/drivers/types.js.map +1 -0
  814. package/dist/ui/drivers/unstyled.d.ts +3 -0
  815. package/dist/ui/drivers/unstyled.d.ts.map +1 -0
  816. package/dist/ui/drivers/unstyled.js +226 -0
  817. package/dist/ui/drivers/unstyled.js.map +1 -0
  818. package/dist/ui/engine.d.ts +24 -0
  819. package/dist/ui/engine.d.ts.map +1 -0
  820. package/dist/ui/engine.js +22 -0
  821. package/dist/ui/engine.js.map +1 -0
  822. package/dist/ui/index.d.ts +7 -0
  823. package/dist/ui/index.d.ts.map +1 -0
  824. package/dist/ui/index.js +6 -0
  825. package/dist/ui/index.js.map +1 -0
  826. package/dist/ui/machine-state.d.ts +349 -0
  827. package/dist/ui/machine-state.d.ts.map +1 -0
  828. package/dist/ui/machine-state.js +105 -0
  829. package/dist/ui/machine-state.js.map +1 -0
  830. package/dist/ui/presentation.d.ts +7 -0
  831. package/dist/ui/presentation.d.ts.map +1 -0
  832. package/dist/ui/presentation.js +21 -0
  833. package/dist/ui/presentation.js.map +1 -0
  834. package/dist/ui/render.d.ts +18 -0
  835. package/dist/ui/render.d.ts.map +1 -0
  836. package/dist/ui/render.js +31 -0
  837. package/dist/ui/render.js.map +1 -0
  838. package/dist/ui/resume.d.ts +28 -0
  839. package/dist/ui/resume.d.ts.map +1 -0
  840. package/dist/ui/resume.js +417 -0
  841. package/dist/ui/resume.js.map +1 -0
  842. package/dist/ui/server.d.ts +9 -0
  843. package/dist/ui/server.d.ts.map +1 -0
  844. package/dist/ui/server.js +6 -0
  845. package/dist/ui/server.js.map +1 -0
  846. package/dist/ui/state.d.ts +24 -0
  847. package/dist/ui/state.d.ts.map +1 -0
  848. package/dist/ui/state.js +64 -0
  849. package/dist/ui/state.js.map +1 -0
  850. package/dist/ui-server.d.ts +2 -0
  851. package/dist/ui-server.d.ts.map +1 -0
  852. package/dist/ui-server.js +2 -0
  853. package/dist/ui-server.js.map +1 -0
  854. package/dist/ui.d.ts +2 -0
  855. package/dist/ui.d.ts.map +1 -0
  856. package/dist/ui.js +2 -0
  857. package/dist/ui.js.map +1 -0
  858. package/dist/vite-environments.d.ts +27 -0
  859. package/dist/vite-environments.d.ts.map +1 -0
  860. package/dist/vite-environments.js +63 -0
  861. package/dist/vite-environments.js.map +1 -0
  862. package/dist/vite.d.ts +113 -2
  863. package/dist/vite.d.ts.map +1 -1
  864. package/dist/vite.js +1289 -196
  865. package/dist/vite.js.map +1 -1
  866. package/dist/workflow/browser.d.ts +7 -0
  867. package/dist/workflow/browser.d.ts.map +1 -0
  868. package/dist/workflow/browser.js +60 -0
  869. package/dist/workflow/browser.js.map +1 -0
  870. package/dist/workflow/compiler.d.ts +8 -0
  871. package/dist/workflow/compiler.d.ts.map +1 -0
  872. package/dist/workflow/compiler.js +122 -0
  873. package/dist/workflow/compiler.js.map +1 -0
  874. package/dist/workflow/http.d.ts +20 -0
  875. package/dist/workflow/http.d.ts.map +1 -0
  876. package/dist/workflow/http.js +68 -0
  877. package/dist/workflow/http.js.map +1 -0
  878. package/dist/workflow/index.d.ts +46 -0
  879. package/dist/workflow/index.d.ts.map +1 -0
  880. package/dist/workflow/index.js +91 -0
  881. package/dist/workflow/index.js.map +1 -0
  882. package/dist/workflow/journal.d.ts +9 -0
  883. package/dist/workflow/journal.d.ts.map +1 -0
  884. package/dist/workflow/journal.js +18 -0
  885. package/dist/workflow/journal.js.map +1 -0
  886. package/dist/workflow/node.d.ts +6 -0
  887. package/dist/workflow/node.d.ts.map +1 -0
  888. package/dist/workflow/node.js +24 -0
  889. package/dist/workflow/node.js.map +1 -0
  890. package/dist/workflow/operation.d.ts +23 -0
  891. package/dist/workflow/operation.d.ts.map +1 -0
  892. package/dist/workflow/operation.js +65 -0
  893. package/dist/workflow/operation.js.map +1 -0
  894. package/dist/workflow/protocol.d.ts +36 -0
  895. package/dist/workflow/protocol.d.ts.map +1 -0
  896. package/dist/workflow/protocol.js +45 -0
  897. package/dist/workflow/protocol.js.map +1 -0
  898. package/package.json +158 -23
  899. package/dist/create.d.ts +0 -21
  900. package/dist/create.d.ts.map +0 -1
  901. package/dist/create.js +0 -111
  902. package/dist/create.js.map +0 -1
  903. package/dist/runtime/atom.d.ts +0 -10
  904. package/dist/runtime/atom.d.ts.map +0 -1
  905. package/dist/runtime/atom.js +0 -38
  906. package/dist/runtime/atom.js.map +0 -1
  907. package/templates/basic/README.md +0 -18
  908. package/templates/basic/_gitignore +0 -3
  909. package/templates/basic/components/app-badge.html +0 -1
  910. package/templates/basic/index.html +0 -12
  911. package/templates/basic/islands/counter.ts +0 -13
  912. package/templates/basic/package.json +0 -23
  913. package/templates/basic/pages/about/index.html +0 -5
  914. package/templates/basic/pages/docs/index.md +0 -9
  915. package/templates/basic/pages/index.html +0 -9
  916. package/templates/basic/pages/layout.html +0 -8
  917. package/templates/basic/pnpm-workspace.yaml +0 -5
  918. package/templates/basic/server.mjs +0 -11
  919. package/templates/basic/style.css +0 -1
  920. package/templates/basic/tsconfig.json +0 -13
  921. package/templates/basic/vite.config.ts +0 -4
@@ -0,0 +1,46 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { type Operation } from './operation.js';
3
+ import { type Json, type WorkflowCheckpoint } from './protocol.js';
4
+ import type { OperationJournal } from './journal.js';
5
+ export { defineOperation, executeOperation } from './operation.js';
6
+ export type { Operation, OperationContext } from './operation.js';
7
+ export { createMemoryOperationJournal } from './journal.js';
8
+ export type { OperationJournal } from './journal.js';
9
+ export type { Json, WorkflowCheckpoint, OperationRecord } from './protocol.js';
10
+ export interface WorkflowStep<I extends Json = Json> {
11
+ readonly id: string;
12
+ readonly operation: Operation<any, any>;
13
+ readonly input: (input: I, results: Readonly<Record<string, Json>>) => Json;
14
+ }
15
+ export interface Workflow<I extends Json = Json, O extends Json = Json> {
16
+ readonly id: string;
17
+ readonly version: string;
18
+ readonly program: string;
19
+ readonly steps: readonly WorkflowStep<I>[];
20
+ readonly finish: (input: I, results: Readonly<Record<string, Json>>) => O;
21
+ }
22
+ interface Program<I extends Json, O extends Json> {
23
+ readonly steps: readonly WorkflowStep<I>[];
24
+ readonly finish: Workflow<I, O>['finish'];
25
+ }
26
+ export declare function defineWorkflow<I extends Json, O extends Json>(metadata: {
27
+ id: string;
28
+ version: string;
29
+ }, program: Program<I, O> | ((input: I) => Promise<O>), compiledSignature?: string): Workflow<I, O>;
30
+ /** Authoring marker. The compiler replaces each await with an explicit saved step. */
31
+ export declare function workflowStep<I extends Json, O extends Json>(_id: string, _operation: Operation<I, O>, _input: I): Promise<O>;
32
+ export declare function createWorkflowRun<I extends Json, O extends Json>(definition: Workflow<I, O>, options: {
33
+ id: string;
34
+ input: I;
35
+ journal: OperationJournal;
36
+ checkpoint?: WorkflowCheckpoint;
37
+ leaseMs?: number;
38
+ onCheckpoint?: (checkpoint: WorkflowCheckpoint) => void | Promise<void> | Effect.Effect<void, unknown>;
39
+ }): {
40
+ run: (signal?: AbortSignal) => Promise<O>;
41
+ runEffect: () => Effect.Effect<O, unknown, never>;
42
+ checkpoint: () => WorkflowCheckpoint;
43
+ pause: () => Promise<WorkflowCheckpoint>;
44
+ dispose(): void;
45
+ };
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import * as Atom from 'effect/reactivity/Atom';
3
+ import * as AtomRegistry from 'effect/reactivity/AtomRegistry';
4
+ import * as Hydration from 'effect/reactivity/Hydration';
5
+ import * as Schema from 'effect/Schema';
6
+ import { assertName } from '../server-components/protocol.js';
7
+ import { executeOperation } from './operation.js';
8
+ import { canonical, jsonCopy, operationKey, validateCheckpoint } from './protocol.js';
9
+ export { defineOperation, executeOperation } from './operation.js';
10
+ export { createMemoryOperationJournal } from './journal.js';
11
+ export function defineWorkflow(metadata, program, compiledSignature) {
12
+ assertName(metadata.id);
13
+ assertName(metadata.version);
14
+ if (typeof program === 'function')
15
+ throw new Error('Async workflows require the Fuzor workflow compiler. Use fuzorPlugin() or workflowPlugin().');
16
+ if (!Array.isArray(program.steps) || program.steps.length > 256 || typeof program.finish !== 'function')
17
+ throw new Error('Invalid workflow program');
18
+ const seen = new Set();
19
+ for (const step of program.steps) {
20
+ assertName(step.id);
21
+ if (seen.has(step.id) || typeof step.input !== 'function')
22
+ throw new Error('Invalid or duplicate workflow step');
23
+ seen.add(step.id);
24
+ }
25
+ const identity = JSON.stringify({ steps: program.steps.map(step => [step.id, step.operation.id, step.operation.version]), source: compiledSignature ?? null });
26
+ return Object.freeze({ ...metadata, program: identity, steps: Object.freeze(program.steps.map(step => Object.freeze({ ...step }))), finish: program.finish });
27
+ }
28
+ /** Authoring marker. The compiler replaces each await with an explicit saved step. */
29
+ export function workflowStep(_id, _operation, _input) { throw new Error('workflowStep must be compiled inside defineWorkflow'); }
30
+ export function createWorkflowRun(definition, options) {
31
+ assertName(options.id);
32
+ const input = jsonCopy(options.input);
33
+ const initial = options.checkpoint ? validateCheckpoint(options.checkpoint) : { format: 1, workflow: definition.id, version: definition.version, program: definition.program, runId: options.id, input, results: [], status: 'suspended', revision: 0 };
34
+ if (initial.workflow !== definition.id || initial.version !== definition.version || initial.program !== definition.program || initial.runId !== options.id || canonical(initial.input) !== canonical(input) || initial.results.some((entry, index) => definition.steps[index]?.id !== entry.step) || initial.results.length > definition.steps.length || initial.status === 'completed' && initial.results.length !== definition.steps.length)
35
+ throw new Error('Workflow checkpoint does not match its definition, run or input');
36
+ const registry = AtomRegistry.make();
37
+ const key = `fuzor:workflow:${definition.id}:${options.id}`;
38
+ const atom = Atom.make(initial).pipe(Atom.keepAlive, Atom.serializable({ key, schema: Schema.Json }));
39
+ registry.get(atom);
40
+ let disposed = false;
41
+ let active;
42
+ let controller;
43
+ const assertOpen = () => { if (disposed)
44
+ throw new Error('Workflow run is disposed'); };
45
+ const checkpoint = () => { assertOpen(); const values = Hydration.toValues(Hydration.dehydrate(registry)); return validateCheckpoint(values[0]?.value); };
46
+ const publish = (update) => Effect.gen(function* () {
47
+ const previous = registry.get(atom);
48
+ const next = validateCheckpoint({ ...previous, ...update, revision: previous.revision + 1 });
49
+ // Persist before publishing. A journaled result bridges a crash before this checkpoint saves.
50
+ if (options.onCheckpoint)
51
+ yield* Effect.tryPromise({ try: signal => { const result = options.onCheckpoint(jsonCopy(next)); return Effect.isEffect(result) ? Effect.runPromise(result, { signal }) : Promise.resolve(result); }, catch: error => error });
52
+ registry.set(atom, next);
53
+ });
54
+ const effect = () => Effect.gen(function* () {
55
+ assertOpen();
56
+ if (registry.get(atom).status === 'completed')
57
+ return jsonCopy(registry.get(atom).output);
58
+ yield* publish({ status: 'running' });
59
+ const results = Object.fromEntries(registry.get(atom).results.map(entry => [entry.step, entry.value]));
60
+ for (let index = registry.get(atom).results.length; index < definition.steps.length; index++) {
61
+ const step = definition.steps[index];
62
+ const value = yield* executeOperation(step.operation, jsonCopy(step.input(jsonCopy(input), jsonCopy(results))), { key: `${encodeURIComponent(definition.id)}:${encodeURIComponent(definition.version)}:${operationKey(options.id, step.id)}`, journal: options.journal, ...(options.leaseMs === undefined ? {} : { leaseMs: options.leaseMs }) });
63
+ results[step.id] = value;
64
+ yield* publish({ results: [...registry.get(atom).results, { step: step.id, value }] });
65
+ }
66
+ const output = jsonCopy(definition.finish(jsonCopy(input), jsonCopy(results)));
67
+ yield* publish({ status: 'completed', output });
68
+ return output;
69
+ });
70
+ const run = (signal) => {
71
+ assertOpen();
72
+ if (active)
73
+ return controller?.signal.aborted ? active.then(() => run(signal), () => run(signal)) : active;
74
+ controller = new AbortController();
75
+ const abort = () => controller?.abort();
76
+ signal?.addEventListener('abort', abort, { once: true });
77
+ if (signal?.aborted)
78
+ controller.abort();
79
+ active = Effect.runPromise(effect(), { signal: controller.signal }).finally(() => { signal?.removeEventListener('abort', abort); active = undefined; controller = undefined; });
80
+ return active;
81
+ };
82
+ return {
83
+ run, runEffect: () => Effect.tryPromise({ try: signal => run(signal), catch: error => error }), checkpoint,
84
+ pause: () => Effect.runPromise(Effect.gen(function* () { assertOpen(); controller?.abort(); if (active)
85
+ yield* Effect.tryPromise({ try: () => active.then(() => undefined, () => undefined), catch: error => error }); if (registry.get(atom).status !== 'completed')
86
+ yield* publish({ status: 'suspended' }); return checkpoint(); })),
87
+ dispose() { if (disposed)
88
+ return; controller?.abort(); disposed = true; registry.dispose(); }
89
+ };
90
+ }
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { type OperationRecord } from './protocol.js';
3
+ /** CAS must be atomic across every executor sharing this journal. Records must survive for the promised replay period. */
4
+ export interface OperationJournal {
5
+ readonly read: (key: string) => Effect.Effect<OperationRecord | null, Error>;
6
+ readonly compareAndSet: (key: string, revision: number | null, next: OperationRecord) => Effect.Effect<boolean, Error>;
7
+ }
8
+ export declare function createMemoryOperationJournal(): OperationJournal;
9
+ //# sourceMappingURL=journal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/workflow/journal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACxE,0HAA0H;AAC1H,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CACxH;AACD,wBAAgB,4BAA4B,IAAI,gBAAgB,CAU/D"}
@@ -0,0 +1,18 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { validateOperation } from './protocol.js';
3
+ export function createMemoryOperationJournal() {
4
+ const records = new Map();
5
+ return {
6
+ read: key => Effect.sync(() => { const value = records.get(key); return value ? validateOperation(value) : null; }),
7
+ compareAndSet: (key, revision, next) => Effect.try({ try: () => {
8
+ const record = validateOperation(next);
9
+ if (record.key !== key || record.revision !== (revision === null ? 0 : revision + 1))
10
+ throw new Error('Invalid journal revision');
11
+ if ((records.get(key)?.revision ?? null) !== revision)
12
+ return false;
13
+ records.set(key, record);
14
+ return true;
15
+ }, catch: error => error instanceof Error ? error : new Error(String(error)) })
16
+ };
17
+ }
18
+ //# sourceMappingURL=journal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/workflow/journal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,eAAe,CAAC;AAMxE,MAAM,UAAU,4BAA4B;IAC1C,MAAM,OAAO,GAAC,IAAI,GAAG,EAA0B,CAAC;IAChD,OAAO;QACL,IAAI,EAAC,GAAG,CAAA,EAAE,CAAA,MAAM,CAAC,IAAI,CAAC,GAAE,EAAE,GAAC,MAAM,KAAK,GAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA,OAAO,KAAK,CAAA,CAAC,CAAA,iBAAiB,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAA,CAAC,CAAC;QACrG,aAAa,EAAC,CAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,CAAA,MAAM,CAAC,GAAG,CAAC,EAAC,GAAG,EAAC,GAAE,EAAE;gBACrD,MAAM,MAAM,GAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAAA,IAAG,MAAM,CAAC,GAAG,KAAG,GAAG,IAAE,MAAM,CAAC,QAAQ,KAAG,CAAC,QAAQ,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,QAAQ,GAAC,CAAC,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACvJ,IAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAE,IAAI,CAAC,KAAG,QAAQ;oBAAC,OAAO,KAAK,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC;gBAAA,OAAO,IAAI,CAAC;YACtC,CAAC,EAAC,KAAK,EAAC,KAAK,CAAA,EAAE,CAAA,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { OperationJournal } from './journal.js';
2
+ /** A SQLite CAS journal shared safely across connections/processes on one host. Parent directory must already exist. */
3
+ export declare function createSqliteOperationJournal(filename: string): OperationJournal & {
4
+ close(): void;
5
+ };
6
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/workflow/node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,wHAAwH;AACxH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAC,MAAM,GAAE,gBAAgB,GAAC;IAAC,KAAK,IAAG,IAAI,CAAA;CAAC,CAc5F"}
@@ -0,0 +1,24 @@
1
+ import { DatabaseSync } from 'node:sqlite';
2
+ import * as Effect from 'effect/Effect';
3
+ import { validateOperation } from './protocol.js';
4
+ /** A SQLite CAS journal shared safely across connections/processes on one host. Parent directory must already exist. */
5
+ export function createSqliteOperationJournal(filename) {
6
+ const database = new DatabaseSync(filename);
7
+ database.exec('PRAGMA busy_timeout=5000; PRAGMA journal_mode=WAL; CREATE TABLE IF NOT EXISTS fuzor_operations (key TEXT PRIMARY KEY, revision INTEGER NOT NULL, payload TEXT NOT NULL)');
8
+ const read = database.prepare('SELECT payload FROM fuzor_operations WHERE key=?');
9
+ const insert = database.prepare('INSERT OR IGNORE INTO fuzor_operations (key,revision,payload) VALUES (?,?,?)');
10
+ const update = database.prepare('UPDATE fuzor_operations SET revision=?,payload=? WHERE key=? AND revision=?');
11
+ const safely = (run) => Effect.try({ try: run, catch: error => error instanceof Error ? error : new Error(String(error)) });
12
+ return {
13
+ read: key => safely(() => { const row = read.get(key); return row ? validateOperation(JSON.parse(row.payload)) : null; }),
14
+ compareAndSet: (key, revision, next) => safely(() => {
15
+ const record = validateOperation(next);
16
+ if (record.key !== key || record.revision !== (revision === null ? 0 : revision + 1))
17
+ throw new Error('Invalid journal revision');
18
+ const payload = JSON.stringify(record);
19
+ return Number((revision === null ? insert.run(key, record.revision, payload) : update.run(record.revision, payload, key, revision)).changes) === 1;
20
+ }),
21
+ close() { database.close(); }
22
+ };
23
+ }
24
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/workflow/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,eAAe,CAAC;AAExE,wHAAwH;AACxH,MAAM,UAAU,4BAA4B,CAAC,QAAe;IAC1D,MAAM,QAAQ,GAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAAA,QAAQ,CAAC,IAAI,CAAC,yKAAyK,CAAC,CAAC;IACnO,MAAM,IAAI,GAAC,QAAQ,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAChF,MAAM,MAAM,GAAC,QAAQ,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC;IAC9G,MAAM,MAAM,GAAC,QAAQ,CAAC,OAAO,CAAC,6EAA6E,CAAC,CAAC;IAC7G,MAAM,MAAM,GAAC,CAAI,GAAS,EAAC,EAAE,CAAA,MAAM,CAAC,GAAG,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,CAAA,EAAE,CAAA,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC;IACtH,OAAO;QACL,IAAI,EAAC,GAAG,CAAA,EAAE,CAAA,MAAM,CAAC,GAAE,EAAE,GAAC,MAAM,GAAG,GAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA,OAAO,GAAG,CAAA,CAAC,CAAA,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAiB,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAA,CAAC,CAAC;QACrH,aAAa,EAAC,CAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,EAAE,CAAA,MAAM,CAAC,GAAE,EAAE;YAC5C,MAAM,MAAM,GAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAAA,IAAG,MAAM,CAAC,GAAG,KAAG,GAAG,IAAE,MAAM,CAAC,QAAQ,KAAG,CAAC,QAAQ,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,QAAQ,GAAC,CAAC,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACvJ,MAAM,OAAO,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAAA,OAAO,MAAM,CAAC,CAAC,QAAQ,KAAG,IAAI,CAAA,CAAC,CAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,QAAQ,EAAC,OAAO,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAC,OAAO,EAAC,GAAG,EAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAG,CAAC,CAAC;QAC7K,CAAC,CAAC;QACF,KAAK,KAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC;KAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { type Json } from './protocol.js';
3
+ import type { OperationJournal } from './journal.js';
4
+ export interface OperationContext {
5
+ readonly key: string;
6
+ readonly signal: AbortSignal;
7
+ readonly attempt: number;
8
+ }
9
+ export interface Operation<I extends Json = Json, O extends Json = Json> {
10
+ readonly id: string;
11
+ readonly version: string;
12
+ readonly kind: 'read' | 'write';
13
+ /** Writes must deduplicate by context.key at the side-effect destination. */
14
+ readonly replay?: 'idempotent';
15
+ readonly execute: (input: I, context: OperationContext) => O | Promise<O> | Effect.Effect<O, unknown>;
16
+ }
17
+ export declare function defineOperation<I extends Json, O extends Json>(definition: Operation<I, O>): Operation<I, O>;
18
+ export declare function executeOperation<I extends Json, O extends Json>(operation: Operation<I, O>, input: I, options: {
19
+ key: string;
20
+ journal: OperationJournal;
21
+ leaseMs?: number;
22
+ }): Effect.Effect<O, unknown>;
23
+ //# sourceMappingURL=operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../src/workflow/operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAA0C,KAAK,IAAI,EAAwB,MAAM,eAAe,CAAC;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,MAAM,WAAW,gBAAgB;IAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAClH,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,IAAI,GAAC,IAAI,EAAC,CAAC,SAAS,IAAI,GAAC,IAAI;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAC,OAAO,CAAC;IAC7E,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;CACvG;AACD,wBAAgB,eAAe,CAAC,CAAC,SAAS,IAAI,EAAC,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAIzG;AACD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,IAAI,EAAC,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE;IAAC,GAAG,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,gBAAgB,CAAC;IAAA,OAAO,CAAC,EAAC,MAAM,CAAA;CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAC,OAAO,CAAC,CAoC7L"}
@@ -0,0 +1,65 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { assertName } from '../server-components/protocol.js';
3
+ import { canonical, jsonCopy, validateOperation } from './protocol.js';
4
+ export function defineOperation(definition) {
5
+ assertName(definition.id);
6
+ assertName(definition.version);
7
+ if (!['read', 'write'].includes(definition.kind) || typeof definition.execute !== 'function' || definition.kind === 'write' && definition.replay !== 'idempotent')
8
+ throw new Error('Durable writes require replay: "idempotent" and destination deduplication by context.key');
9
+ return Object.freeze({ ...definition });
10
+ }
11
+ export function executeOperation(operation, input, options) {
12
+ return Effect.gen(function* () {
13
+ defineOperation(operation);
14
+ const detached = jsonCopy(input);
15
+ const leaseMs = options.leaseMs ?? 30000;
16
+ if (!Number.isFinite(leaseMs) || leaseMs < 60 || leaseMs > 3600000)
17
+ throw new Error('Operation lease must be between 60 ms and one hour');
18
+ if (!options.key || options.key.length > 4096)
19
+ throw new Error('Invalid operation key');
20
+ const owner = crypto.randomUUID?.() ?? Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, '0')).join('');
21
+ let record;
22
+ while (true) {
23
+ const found = yield* options.journal.read(options.key);
24
+ if (found) {
25
+ validateOperation(found);
26
+ if (found.operation !== operation.id || found.version !== operation.version || canonical(found.input) !== canonical(detached))
27
+ throw new Error('Operation key was reused with a different definition or input');
28
+ if (found.status === 'completed')
29
+ return jsonCopy(found.result);
30
+ if (found.leaseUntil > Date.now()) {
31
+ yield* Effect.sleep(Math.min(50, found.leaseUntil - Date.now()));
32
+ continue;
33
+ }
34
+ }
35
+ record = { format: 1, key: options.key, operation: operation.id, version: operation.version, input: detached, revision: found ? found.revision + 1 : 0, status: 'pending', owner, leaseUntil: Date.now() + leaseMs, attempt: (found?.attempt ?? 0) + 1 };
36
+ if (yield* Effect.uninterruptible(options.journal.compareAndSet(options.key, found?.revision ?? null, record)))
37
+ break;
38
+ }
39
+ const heartbeat = Effect.gen(function* () {
40
+ while (true) {
41
+ yield* Effect.sleep(Math.floor(leaseMs / 3));
42
+ const next = { ...record, revision: record.revision + 1, leaseUntil: Date.now() + leaseMs };
43
+ if (!(yield* Effect.uninterruptible(options.journal.compareAndSet(options.key, record.revision, next))))
44
+ throw new Error('Operation lease ownership was lost');
45
+ record = next;
46
+ }
47
+ });
48
+ const execute = Effect.tryPromise({ try: signal => {
49
+ const result = operation.execute(jsonCopy(detached), { key: options.key, signal, attempt: record.attempt });
50
+ return Effect.isEffect(result) ? Effect.runPromise(result, { signal }) : Promise.resolve(result);
51
+ }, catch: error => error });
52
+ return yield* Effect.gen(function* () {
53
+ const result = jsonCopy(yield* Effect.raceFirst(execute, heartbeat));
54
+ const next = { ...record, revision: record.revision + 1, status: 'completed', leaseUntil: 0, result };
55
+ if (!(yield* Effect.uninterruptible(options.journal.compareAndSet(options.key, record.revision, next))))
56
+ throw new Error('Operation completion was fenced');
57
+ record = next;
58
+ return result;
59
+ }).pipe(Effect.ensuring(Effect.gen(function* () {
60
+ if (record.status === 'pending')
61
+ yield* options.journal.compareAndSet(options.key, record.revision, { ...record, revision: record.revision + 1, leaseUntil: 0 });
62
+ }).pipe(Effect.orDie)));
63
+ });
64
+ }
65
+ //# sourceMappingURL=operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/workflow/operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type Json } from "../server-components/protocol.js";
2
+ export type { Json };
3
+ export interface OperationRecord {
4
+ readonly format: 1;
5
+ readonly key: string;
6
+ readonly operation: string;
7
+ readonly version: string;
8
+ readonly input: Json;
9
+ readonly revision: number;
10
+ readonly status: "pending" | "completed";
11
+ readonly owner: string;
12
+ readonly leaseUntil: number;
13
+ readonly attempt: number;
14
+ readonly result?: Json;
15
+ }
16
+ export interface WorkflowCheckpoint {
17
+ readonly format: 1;
18
+ readonly workflow: string;
19
+ readonly version: string;
20
+ readonly runId: string;
21
+ readonly program: string;
22
+ readonly input: Json;
23
+ readonly results: readonly {
24
+ readonly step: string;
25
+ readonly value: Json;
26
+ }[];
27
+ readonly status: "suspended" | "running" | "completed";
28
+ readonly revision: number;
29
+ readonly output?: Json;
30
+ }
31
+ export declare function jsonCopy<T>(value: T): T;
32
+ export declare function canonical(value: Json): string;
33
+ export declare function operationKey(runId: string, step: string): string;
34
+ export declare function validateOperation(value: unknown): OperationRecord;
35
+ export declare function validateCheckpoint(value: unknown): WorkflowCheckpoint;
36
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/workflow/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACrF,YAAY,EAAE,IAAI,EAAE,CAAC;AACrB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAC/F,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CAClD;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1H,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;IACnG,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;CACxB;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAKvC;AACD,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAI7C;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAA0H;AAC3L,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAMjE;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAOrE"}
@@ -0,0 +1,45 @@
1
+ import { assertJson, assertName } from "../server-components/protocol.js";
2
+ export function jsonCopy(value) {
3
+ assertJson(value);
4
+ const encoded = JSON.stringify(value);
5
+ if (new TextEncoder().encode(encoded).byteLength > 2 * 1024 * 1024)
6
+ throw new Error("Workflow JSON exceeds 2 MiB");
7
+ return JSON.parse(encoded);
8
+ }
9
+ export function canonical(value) {
10
+ if (Array.isArray(value))
11
+ return `[${value.map(canonical).join(',')}]`;
12
+ if (value !== null && typeof value === 'object')
13
+ return `{${Object.keys(value).sort().map(k => `${JSON.stringify(k)}:${canonical(value[k])}`).join(',')}}`;
14
+ return JSON.stringify(value);
15
+ }
16
+ export function operationKey(runId, step) { assertName(runId); assertName(step); return `fuzor:operation:${encodeURIComponent(runId)}:${encodeURIComponent(step)}`; }
17
+ export function validateOperation(value) {
18
+ const record = jsonCopy(value);
19
+ if (!record || record.format !== 1 || typeof record.key !== 'string' || record.key.length > 4096)
20
+ throw new Error('Invalid operation journal record');
21
+ assertName(record.operation);
22
+ assertName(record.version);
23
+ assertName(record.owner);
24
+ if (!Number.isSafeInteger(record.revision) || record.revision < 0 || !Number.isSafeInteger(record.attempt) || record.attempt < 1 || !Number.isFinite(record.leaseUntil) || !['pending', 'completed'].includes(record.status) || !Object.hasOwn(record, 'input') || (record.status === 'completed' && !Object.hasOwn(record, 'result')))
25
+ throw new Error('Invalid operation journal state');
26
+ return record;
27
+ }
28
+ export function validateCheckpoint(value) {
29
+ const checkpoint = jsonCopy(value);
30
+ if (!checkpoint || checkpoint.format !== 1)
31
+ throw new Error('Invalid workflow checkpoint');
32
+ for (const name of [checkpoint.workflow, checkpoint.version, checkpoint.runId])
33
+ assertName(name);
34
+ if (typeof checkpoint.program !== 'string' || !checkpoint.program || !Object.hasOwn(checkpoint, 'input') || !Array.isArray(checkpoint.results) || checkpoint.results.length > 256 || !Number.isSafeInteger(checkpoint.revision) || checkpoint.revision < 0 || !['suspended', 'running', 'completed'].includes(checkpoint.status) || (checkpoint.status === 'completed' && !Object.hasOwn(checkpoint, 'output')))
35
+ throw new Error('Invalid workflow checkpoint state');
36
+ const seen = new Set();
37
+ for (const result of checkpoint.results) {
38
+ assertName(result.step);
39
+ if (seen.has(result.step) || !Object.hasOwn(result, 'value'))
40
+ throw new Error('Invalid workflow step results');
41
+ seen.add(result.step);
42
+ }
43
+ return checkpoint;
44
+ }
45
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/workflow/protocol.ts"],"names":[],"mappings":"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"}