@plures/praxis 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/FRAMEWORK.md +55 -5
  2. package/LICENSE +21 -21
  3. package/README.md +162 -375
  4. package/core/codegen/docs-generator.ts +5 -2
  5. package/core/codegen/index.ts +1 -1
  6. package/core/codegen/ts-generator.ts +15 -15
  7. package/core/db-adapter/index.ts +2 -2
  8. package/core/db-adapter/sync-engine.ts +17 -6
  9. package/core/logic-engine/engine.ts +1 -1
  10. package/core/logic-engine/index.ts +2 -2
  11. package/core/logic-engine/protocol.ts +1 -1
  12. package/core/logic-engine/psf-adapter.ts +8 -4
  13. package/core/logic-engine/rules.ts +1 -1
  14. package/core/schema-engine/compiler.ts +53 -11
  15. package/core/schema-engine/generator.ts +17 -7
  16. package/core/schema-engine/index.ts +2 -2
  17. package/core/schema-engine/psf.ts +12 -3
  18. package/core/schema-engine/types.ts +3 -11
  19. package/core/schema-engine/validator.ts +112 -22
  20. package/dist/browser/engine-BjdqxeXG.d.ts +333 -0
  21. package/dist/browser/index.d.ts +3004 -0
  22. package/dist/browser/index.js +2892 -0
  23. package/dist/{src → browser}/integrations/svelte.d.ts +19 -17
  24. package/dist/browser/integrations/svelte.js +298 -0
  25. package/dist/node/auth-STARLY7I.js +207 -0
  26. package/dist/node/build-Y7OT5VBF.js +144 -0
  27. package/dist/node/canvas-UERZHJYW.js +362 -0
  28. package/dist/node/chunk-DSDC2JWZ.js +256 -0
  29. package/dist/node/chunk-FXQZXAWF.js +175 -0
  30. package/dist/node/chunk-N5Y37EUV.js +202 -0
  31. package/dist/node/chunk-QGM4M3NI.js +37 -0
  32. package/dist/node/chunk-RJMWCNHR.js +175 -0
  33. package/dist/node/chunk-SRM3OPPM.js +404 -0
  34. package/dist/node/chunk-UATVJBNV.js +175 -0
  35. package/dist/node/chunk-UY7YEBE2.js +159 -0
  36. package/dist/node/chunk-XCY2VIFX.js +143 -0
  37. package/dist/node/chunk-YXH4Y7ZZ.js +349 -0
  38. package/dist/node/cli/index.cjs +217418 -0
  39. package/dist/node/cli/index.d.cts +1 -0
  40. package/dist/node/cli/index.d.ts +1 -0
  41. package/dist/node/cli/index.js +690 -0
  42. package/dist/node/cloud/index.cjs +1043 -0
  43. package/dist/node/cloud/index.d.cts +864 -0
  44. package/dist/node/cloud/index.d.ts +864 -0
  45. package/dist/node/cloud/index.js +456 -0
  46. package/dist/node/cloud-AXOK4PSN.js +212 -0
  47. package/dist/node/component.cjs +374 -0
  48. package/dist/node/component.d.cts +125 -0
  49. package/dist/{src/core/component/generator.d.ts → node/component.d.ts} +11 -8
  50. package/dist/node/component.js +9 -0
  51. package/dist/node/components/index.cjs +216 -0
  52. package/dist/node/components/index.d.cts +43 -0
  53. package/dist/{src → node}/components/index.d.ts +8 -8
  54. package/dist/node/components/index.js +7 -0
  55. package/dist/node/create-TRLSVCNQ.js +584 -0
  56. package/dist/node/dev-PMJZUYGE.js +65 -0
  57. package/dist/node/engine-1iqLe6_P.d.ts +214 -0
  58. package/dist/node/engine-CVJobhHm.d.cts +214 -0
  59. package/dist/node/index.cjs +3247 -0
  60. package/dist/node/index.d.cts +2579 -0
  61. package/dist/node/index.d.ts +2579 -0
  62. package/dist/node/index.js +2098 -0
  63. package/dist/node/integrations/svelte.cjs +330 -0
  64. package/dist/node/integrations/svelte.d.cts +309 -0
  65. package/dist/node/integrations/svelte.d.ts +309 -0
  66. package/dist/node/integrations/svelte.js +300 -0
  67. package/dist/node/orchestrate-737TCL5H.js +127 -0
  68. package/dist/{src/core/protocol.d.ts → node/protocol-Qek7ebBl.d.cts} +11 -10
  69. package/dist/node/protocol-Qek7ebBl.d.ts +122 -0
  70. package/dist/node/schema.cjs +200 -0
  71. package/dist/{src/core/schema/types.d.ts → node/schema.d.cts} +30 -29
  72. package/dist/node/schema.d.ts +371 -0
  73. package/dist/node/schema.js +9 -0
  74. package/dist/{src/runtime/terminal-adapter.d.ts → node/terminal-adapter-07HGftGQ.d.ts} +86 -11
  75. package/dist/node/terminal-adapter-XLtCjjb_.d.cts +231 -0
  76. package/dist/node/verify-YBZ7W24H.js +213239 -0
  77. package/docs/MONETIZATION.md +21 -16
  78. package/docs/REACTIVE_REDESIGN.md +132 -0
  79. package/docs/README.md +47 -36
  80. package/docs/SVELTE_INTEGRATION_STRATEGY.md +68 -0
  81. package/docs/TERMINAL_NODE.md +27 -24
  82. package/docs/core/building-extensions.md +58 -61
  83. package/docs/core/cli-usage.md +59 -59
  84. package/docs/core/code-canvas-sync.md +28 -16
  85. package/docs/core/logic-engine.md +77 -82
  86. package/docs/core/pluresdb-integration.md +29 -39
  87. package/docs/core/schema-model.md +66 -52
  88. package/docs/core/ui-generation.md +57 -49
  89. package/docs/core/what-is-praxis.md +32 -15
  90. package/docs/guides/canvas.md +21 -5
  91. package/docs/guides/getting-started.md +13 -7
  92. package/docs/guides/history-state-pattern.md +65 -51
  93. package/docs/guides/orchestration.md +46 -32
  94. package/docs/guides/parallel-state-pattern.md +56 -72
  95. package/docs/guides/svelte-integration.md +45 -53
  96. package/docs/tutorials/README.md +16 -0
  97. package/docs/tutorials/ecommerce-cart.md +177 -95
  98. package/docs/tutorials/first-app.md +26 -41
  99. package/docs/tutorials/form-builder.md +191 -138
  100. package/docs/tutorials/todo-pluresdb.md +71 -69
  101. package/package.json +132 -96
  102. package/src/__tests__/actors.test.ts +68 -68
  103. package/src/__tests__/billing.test.ts +32 -32
  104. package/src/__tests__/canvas-components.test.ts +94 -73
  105. package/src/__tests__/cli-create.test.ts +28 -28
  106. package/src/__tests__/cloud.test.ts +36 -36
  107. package/src/__tests__/code-canvas-integration.test.ts +132 -141
  108. package/src/__tests__/docs-generator.test.ts +3 -9
  109. package/src/__tests__/dsl.test.ts +58 -64
  110. package/src/__tests__/edge-cases.test.ts +106 -108
  111. package/src/__tests__/engine.test.ts +51 -25
  112. package/src/__tests__/generators.test.ts +42 -44
  113. package/src/__tests__/introspection.test.ts +104 -114
  114. package/src/__tests__/pluresdb.test.ts +189 -187
  115. package/src/__tests__/protocol.test.ts +15 -15
  116. package/src/__tests__/provisioning.test.ts +61 -61
  117. package/src/__tests__/schema.test.ts +7 -11
  118. package/src/__tests__/state-docs-integration.test.ts +162 -145
  119. package/src/__tests__/svelte-integration.test.ts +16 -19
  120. package/src/__tests__/tauri-integration.test.ts +149 -147
  121. package/src/__tests__/terminal-node.test.ts +12 -7
  122. package/src/__tests__/unum-integration.test.ts +68 -68
  123. package/src/adapters/cli.ts +21 -15
  124. package/src/cli/commands/auth.ts +82 -78
  125. package/src/cli/commands/build.ts +29 -27
  126. package/src/cli/commands/canvas.ts +338 -127
  127. package/src/cli/commands/cloud.ts +47 -47
  128. package/src/cli/commands/create.ts +59 -47
  129. package/src/cli/commands/dev.ts +12 -12
  130. package/src/cli/commands/generate.ts +29 -40
  131. package/src/cli/commands/orchestrate.ts +24 -24
  132. package/src/cli/commands/verify.ts +49 -0
  133. package/src/cli/index.ts +21 -2
  134. package/src/cloud/README.md +28 -15
  135. package/src/cloud/auth.ts +55 -70
  136. package/src/cloud/billing.ts +59 -58
  137. package/src/cloud/client.ts +29 -35
  138. package/src/cloud/index.ts +19 -40
  139. package/src/cloud/marketplace.ts +69 -78
  140. package/src/cloud/provisioning.ts +42 -51
  141. package/src/cloud/relay/endpoints.ts +30 -34
  142. package/src/cloud/relay/health/index.ts +1 -1
  143. package/src/cloud/relay/stats/index.ts +1 -1
  144. package/src/cloud/relay/sync/index.ts +1 -1
  145. package/src/cloud/relay/usage/index.ts +1 -1
  146. package/src/cloud/sponsors.ts +31 -34
  147. package/src/cloud/types.ts +4 -4
  148. package/src/components/README.md +1 -0
  149. package/src/components/TerminalNode.svelte +457 -457
  150. package/src/components/index.ts +3 -4
  151. package/src/core/actors.ts +7 -7
  152. package/src/core/component/generator.ts +10 -28
  153. package/src/core/engine.ts +51 -24
  154. package/src/core/introspection.ts +37 -35
  155. package/src/core/logic/generator.ts +62 -62
  156. package/src/core/pluresdb/adapter.ts +8 -8
  157. package/src/core/pluresdb/generator.ts +39 -35
  158. package/src/core/pluresdb/index.ts +9 -12
  159. package/src/core/pluresdb/schema-registry.ts +22 -25
  160. package/src/core/pluresdb/store.ts +57 -57
  161. package/src/core/protocol.ts +14 -14
  162. package/src/core/reactive-engine.svelte.ts +65 -0
  163. package/src/core/reactive-engine.ts +67 -0
  164. package/src/core/rules.ts +4 -4
  165. package/src/core/schema/loader.common.ts +150 -0
  166. package/src/core/schema/loader.ts +19 -149
  167. package/src/core/schema/normalize.ts +34 -51
  168. package/src/core/schema/types.ts +47 -11
  169. package/src/dsl/index.ts +8 -8
  170. package/src/dsl.ts +11 -17
  171. package/src/examples/advanced-todo/App.svelte +506 -506
  172. package/src/examples/advanced-todo/README.md +58 -40
  173. package/src/examples/advanced-todo/index.ts +3 -3
  174. package/src/examples/auth-basic/index.ts +30 -30
  175. package/src/examples/cart/index.ts +50 -50
  176. package/src/examples/hero-ecommerce/index.ts +130 -157
  177. package/src/examples/svelte-counter/index.ts +22 -26
  178. package/src/flows.ts +6 -17
  179. package/src/index.browser.ts +204 -0
  180. package/src/index.ts +37 -42
  181. package/src/integrations/code-canvas.ts +237 -193
  182. package/src/integrations/pluresdb.ts +55 -35
  183. package/src/integrations/state-docs.ts +104 -104
  184. package/src/integrations/svelte.ts +35 -35
  185. package/src/integrations/tauri.ts +75 -73
  186. package/src/integrations/unum.ts +68 -61
  187. package/src/registry.ts +7 -14
  188. package/src/runtime/terminal-adapter.ts +31 -26
  189. package/src/step.ts +10 -16
  190. package/src/types.ts +1 -1
  191. package/templates/basic-app/README.md +6 -9
  192. package/templates/fullstack-app/README.md +10 -0
  193. package/dist/core/codegen/docs-generator.d.ts +0 -123
  194. package/dist/core/codegen/docs-generator.d.ts.map +0 -1
  195. package/dist/core/codegen/docs-generator.js +0 -674
  196. package/dist/core/codegen/docs-generator.js.map +0 -1
  197. package/dist/core/codegen/index.d.ts +0 -11
  198. package/dist/core/codegen/index.d.ts.map +0 -1
  199. package/dist/core/codegen/index.js +0 -13
  200. package/dist/core/codegen/index.js.map +0 -1
  201. package/dist/core/codegen/ts-generator.d.ts +0 -8
  202. package/dist/core/codegen/ts-generator.d.ts.map +0 -1
  203. package/dist/core/codegen/ts-generator.js +0 -8
  204. package/dist/core/codegen/ts-generator.js.map +0 -1
  205. package/dist/core/db-adapter/index.d.ts +0 -18
  206. package/dist/core/db-adapter/index.d.ts.map +0 -1
  207. package/dist/core/db-adapter/index.js +0 -23
  208. package/dist/core/db-adapter/index.js.map +0 -1
  209. package/dist/core/db-adapter/sync-engine.d.ts +0 -180
  210. package/dist/core/db-adapter/sync-engine.d.ts.map +0 -1
  211. package/dist/core/db-adapter/sync-engine.js +0 -342
  212. package/dist/core/db-adapter/sync-engine.js.map +0 -1
  213. package/dist/core/logic-engine/engine.d.ts +0 -8
  214. package/dist/core/logic-engine/engine.d.ts.map +0 -1
  215. package/dist/core/logic-engine/engine.js +0 -8
  216. package/dist/core/logic-engine/engine.js.map +0 -1
  217. package/dist/core/logic-engine/index.d.ts +0 -16
  218. package/dist/core/logic-engine/index.d.ts.map +0 -1
  219. package/dist/core/logic-engine/index.js +0 -16
  220. package/dist/core/logic-engine/index.js.map +0 -1
  221. package/dist/core/logic-engine/protocol.d.ts +0 -7
  222. package/dist/core/logic-engine/protocol.d.ts.map +0 -1
  223. package/dist/core/logic-engine/protocol.js +0 -7
  224. package/dist/core/logic-engine/protocol.js.map +0 -1
  225. package/dist/core/logic-engine/psf-adapter.d.ts +0 -88
  226. package/dist/core/logic-engine/psf-adapter.d.ts.map +0 -1
  227. package/dist/core/logic-engine/psf-adapter.js +0 -207
  228. package/dist/core/logic-engine/psf-adapter.js.map +0 -1
  229. package/dist/core/logic-engine/rules.d.ts +0 -7
  230. package/dist/core/logic-engine/rules.d.ts.map +0 -1
  231. package/dist/core/logic-engine/rules.js +0 -7
  232. package/dist/core/logic-engine/rules.js.map +0 -1
  233. package/dist/core/schema-engine/compiler.d.ts +0 -198
  234. package/dist/core/schema-engine/compiler.d.ts.map +0 -1
  235. package/dist/core/schema-engine/compiler.js +0 -262
  236. package/dist/core/schema-engine/compiler.js.map +0 -1
  237. package/dist/core/schema-engine/generator.d.ts +0 -115
  238. package/dist/core/schema-engine/generator.d.ts.map +0 -1
  239. package/dist/core/schema-engine/generator.js +0 -506
  240. package/dist/core/schema-engine/generator.js.map +0 -1
  241. package/dist/core/schema-engine/index.d.ts +0 -18
  242. package/dist/core/schema-engine/index.d.ts.map +0 -1
  243. package/dist/core/schema-engine/index.js +0 -18
  244. package/dist/core/schema-engine/index.js.map +0 -1
  245. package/dist/core/schema-engine/psf.d.ts +0 -612
  246. package/dist/core/schema-engine/psf.d.ts.map +0 -1
  247. package/dist/core/schema-engine/psf.js +0 -45
  248. package/dist/core/schema-engine/psf.js.map +0 -1
  249. package/dist/core/schema-engine/types.d.ts +0 -10
  250. package/dist/core/schema-engine/types.d.ts.map +0 -1
  251. package/dist/core/schema-engine/types.js +0 -7
  252. package/dist/core/schema-engine/types.js.map +0 -1
  253. package/dist/core/schema-engine/validator.d.ts +0 -140
  254. package/dist/core/schema-engine/validator.d.ts.map +0 -1
  255. package/dist/core/schema-engine/validator.js +0 -407
  256. package/dist/core/schema-engine/validator.js.map +0 -1
  257. package/dist/src/adapters/cli.d.ts +0 -43
  258. package/dist/src/adapters/cli.d.ts.map +0 -1
  259. package/dist/src/adapters/cli.js +0 -126
  260. package/dist/src/adapters/cli.js.map +0 -1
  261. package/dist/src/cli/commands/auth.d.ts +0 -26
  262. package/dist/src/cli/commands/auth.d.ts.map +0 -1
  263. package/dist/src/cli/commands/auth.js +0 -233
  264. package/dist/src/cli/commands/auth.js.map +0 -1
  265. package/dist/src/cli/commands/build.d.ts +0 -23
  266. package/dist/src/cli/commands/build.d.ts.map +0 -1
  267. package/dist/src/cli/commands/build.js +0 -162
  268. package/dist/src/cli/commands/build.js.map +0 -1
  269. package/dist/src/cli/commands/canvas.d.ts +0 -23
  270. package/dist/src/cli/commands/canvas.d.ts.map +0 -1
  271. package/dist/src/cli/commands/canvas.js +0 -215
  272. package/dist/src/cli/commands/canvas.js.map +0 -1
  273. package/dist/src/cli/commands/cloud.d.ts +0 -27
  274. package/dist/src/cli/commands/cloud.d.ts.map +0 -1
  275. package/dist/src/cli/commands/cloud.js +0 -232
  276. package/dist/src/cli/commands/cloud.js.map +0 -1
  277. package/dist/src/cli/commands/create.d.ts +0 -21
  278. package/dist/src/cli/commands/create.d.ts.map +0 -1
  279. package/dist/src/cli/commands/create.js +0 -621
  280. package/dist/src/cli/commands/create.js.map +0 -1
  281. package/dist/src/cli/commands/dev.d.ts +0 -21
  282. package/dist/src/cli/commands/dev.d.ts.map +0 -1
  283. package/dist/src/cli/commands/dev.js +0 -71
  284. package/dist/src/cli/commands/dev.js.map +0 -1
  285. package/dist/src/cli/commands/generate.d.ts +0 -25
  286. package/dist/src/cli/commands/generate.d.ts.map +0 -1
  287. package/dist/src/cli/commands/generate.js +0 -168
  288. package/dist/src/cli/commands/generate.js.map +0 -1
  289. package/dist/src/cli/commands/orchestrate.d.ts +0 -44
  290. package/dist/src/cli/commands/orchestrate.d.ts.map +0 -1
  291. package/dist/src/cli/commands/orchestrate.js +0 -150
  292. package/dist/src/cli/commands/orchestrate.js.map +0 -1
  293. package/dist/src/cli/index.d.ts +0 -8
  294. package/dist/src/cli/index.d.ts.map +0 -1
  295. package/dist/src/cli/index.js +0 -211
  296. package/dist/src/cli/index.js.map +0 -1
  297. package/dist/src/cloud/auth.d.ts +0 -51
  298. package/dist/src/cloud/auth.d.ts.map +0 -1
  299. package/dist/src/cloud/auth.js +0 -194
  300. package/dist/src/cloud/auth.js.map +0 -1
  301. package/dist/src/cloud/billing.d.ts +0 -184
  302. package/dist/src/cloud/billing.d.ts.map +0 -1
  303. package/dist/src/cloud/billing.js +0 -179
  304. package/dist/src/cloud/billing.js.map +0 -1
  305. package/dist/src/cloud/client.d.ts +0 -39
  306. package/dist/src/cloud/client.d.ts.map +0 -1
  307. package/dist/src/cloud/client.js +0 -176
  308. package/dist/src/cloud/client.js.map +0 -1
  309. package/dist/src/cloud/index.d.ts +0 -44
  310. package/dist/src/cloud/index.d.ts.map +0 -1
  311. package/dist/src/cloud/index.js +0 -44
  312. package/dist/src/cloud/index.js.map +0 -1
  313. package/dist/src/cloud/marketplace.d.ts +0 -166
  314. package/dist/src/cloud/marketplace.d.ts.map +0 -1
  315. package/dist/src/cloud/marketplace.js +0 -159
  316. package/dist/src/cloud/marketplace.js.map +0 -1
  317. package/dist/src/cloud/provisioning.d.ts +0 -110
  318. package/dist/src/cloud/provisioning.d.ts.map +0 -1
  319. package/dist/src/cloud/provisioning.js +0 -148
  320. package/dist/src/cloud/provisioning.js.map +0 -1
  321. package/dist/src/cloud/relay/endpoints.d.ts +0 -62
  322. package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
  323. package/dist/src/cloud/relay/endpoints.js +0 -217
  324. package/dist/src/cloud/relay/endpoints.js.map +0 -1
  325. package/dist/src/cloud/relay/health/index.d.ts +0 -5
  326. package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
  327. package/dist/src/cloud/relay/health/index.js +0 -9
  328. package/dist/src/cloud/relay/health/index.js.map +0 -1
  329. package/dist/src/cloud/relay/stats/index.d.ts +0 -5
  330. package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
  331. package/dist/src/cloud/relay/stats/index.js +0 -9
  332. package/dist/src/cloud/relay/stats/index.js.map +0 -1
  333. package/dist/src/cloud/relay/sync/index.d.ts +0 -5
  334. package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
  335. package/dist/src/cloud/relay/sync/index.js +0 -9
  336. package/dist/src/cloud/relay/sync/index.js.map +0 -1
  337. package/dist/src/cloud/relay/usage/index.d.ts +0 -5
  338. package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
  339. package/dist/src/cloud/relay/usage/index.js +0 -9
  340. package/dist/src/cloud/relay/usage/index.js.map +0 -1
  341. package/dist/src/cloud/sponsors.d.ts +0 -81
  342. package/dist/src/cloud/sponsors.d.ts.map +0 -1
  343. package/dist/src/cloud/sponsors.js +0 -130
  344. package/dist/src/cloud/sponsors.js.map +0 -1
  345. package/dist/src/cloud/types.d.ts +0 -169
  346. package/dist/src/cloud/types.d.ts.map +0 -1
  347. package/dist/src/cloud/types.js +0 -7
  348. package/dist/src/cloud/types.js.map +0 -1
  349. package/dist/src/components/index.d.ts.map +0 -1
  350. package/dist/src/components/index.js +0 -17
  351. package/dist/src/components/index.js.map +0 -1
  352. package/dist/src/core/actors.d.ts +0 -95
  353. package/dist/src/core/actors.d.ts.map +0 -1
  354. package/dist/src/core/actors.js +0 -158
  355. package/dist/src/core/actors.js.map +0 -1
  356. package/dist/src/core/component/generator.d.ts.map +0 -1
  357. package/dist/src/core/component/generator.js +0 -349
  358. package/dist/src/core/component/generator.js.map +0 -1
  359. package/dist/src/core/engine.d.ts +0 -92
  360. package/dist/src/core/engine.d.ts.map +0 -1
  361. package/dist/src/core/engine.js +0 -199
  362. package/dist/src/core/engine.js.map +0 -1
  363. package/dist/src/core/introspection.d.ts +0 -141
  364. package/dist/src/core/introspection.d.ts.map +0 -1
  365. package/dist/src/core/introspection.js +0 -208
  366. package/dist/src/core/introspection.js.map +0 -1
  367. package/dist/src/core/logic/generator.d.ts +0 -76
  368. package/dist/src/core/logic/generator.d.ts.map +0 -1
  369. package/dist/src/core/logic/generator.js +0 -370
  370. package/dist/src/core/logic/generator.js.map +0 -1
  371. package/dist/src/core/pluresdb/adapter.d.ts +0 -72
  372. package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
  373. package/dist/src/core/pluresdb/adapter.js +0 -73
  374. package/dist/src/core/pluresdb/adapter.js.map +0 -1
  375. package/dist/src/core/pluresdb/generator.d.ts +0 -58
  376. package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
  377. package/dist/src/core/pluresdb/generator.js +0 -191
  378. package/dist/src/core/pluresdb/generator.js.map +0 -1
  379. package/dist/src/core/pluresdb/index.d.ts +0 -15
  380. package/dist/src/core/pluresdb/index.d.ts.map +0 -1
  381. package/dist/src/core/pluresdb/index.js +0 -11
  382. package/dist/src/core/pluresdb/index.js.map +0 -1
  383. package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
  384. package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
  385. package/dist/src/core/pluresdb/schema-registry.js +0 -130
  386. package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
  387. package/dist/src/core/pluresdb/store.d.ts +0 -199
  388. package/dist/src/core/pluresdb/store.d.ts.map +0 -1
  389. package/dist/src/core/pluresdb/store.js +0 -344
  390. package/dist/src/core/pluresdb/store.js.map +0 -1
  391. package/dist/src/core/protocol.d.ts.map +0 -1
  392. package/dist/src/core/protocol.js +0 -46
  393. package/dist/src/core/protocol.js.map +0 -1
  394. package/dist/src/core/rules.d.ts +0 -120
  395. package/dist/src/core/rules.d.ts.map +0 -1
  396. package/dist/src/core/rules.js +0 -81
  397. package/dist/src/core/rules.js.map +0 -1
  398. package/dist/src/core/schema/loader.d.ts +0 -47
  399. package/dist/src/core/schema/loader.d.ts.map +0 -1
  400. package/dist/src/core/schema/loader.js +0 -189
  401. package/dist/src/core/schema/loader.js.map +0 -1
  402. package/dist/src/core/schema/normalize.d.ts +0 -72
  403. package/dist/src/core/schema/normalize.d.ts.map +0 -1
  404. package/dist/src/core/schema/normalize.js +0 -190
  405. package/dist/src/core/schema/normalize.js.map +0 -1
  406. package/dist/src/core/schema/types.d.ts.map +0 -1
  407. package/dist/src/core/schema/types.js +0 -161
  408. package/dist/src/core/schema/types.js.map +0 -1
  409. package/dist/src/dsl/index.d.ts +0 -152
  410. package/dist/src/dsl/index.d.ts.map +0 -1
  411. package/dist/src/dsl/index.js +0 -132
  412. package/dist/src/dsl/index.js.map +0 -1
  413. package/dist/src/dsl.d.ts +0 -124
  414. package/dist/src/dsl.d.ts.map +0 -1
  415. package/dist/src/dsl.js +0 -130
  416. package/dist/src/dsl.js.map +0 -1
  417. package/dist/src/examples/advanced-todo/index.d.ts +0 -55
  418. package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
  419. package/dist/src/examples/advanced-todo/index.js +0 -222
  420. package/dist/src/examples/advanced-todo/index.js.map +0 -1
  421. package/dist/src/examples/auth-basic/index.d.ts +0 -17
  422. package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
  423. package/dist/src/examples/auth-basic/index.js +0 -122
  424. package/dist/src/examples/auth-basic/index.js.map +0 -1
  425. package/dist/src/examples/cart/index.d.ts +0 -19
  426. package/dist/src/examples/cart/index.d.ts.map +0 -1
  427. package/dist/src/examples/cart/index.js +0 -202
  428. package/dist/src/examples/cart/index.js.map +0 -1
  429. package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
  430. package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
  431. package/dist/src/examples/hero-ecommerce/index.js +0 -506
  432. package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
  433. package/dist/src/examples/svelte-counter/index.d.ts +0 -31
  434. package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
  435. package/dist/src/examples/svelte-counter/index.js +0 -123
  436. package/dist/src/examples/svelte-counter/index.js.map +0 -1
  437. package/dist/src/flows.d.ts +0 -125
  438. package/dist/src/flows.d.ts.map +0 -1
  439. package/dist/src/flows.js +0 -160
  440. package/dist/src/flows.js.map +0 -1
  441. package/dist/src/index.d.ts +0 -77
  442. package/dist/src/index.d.ts.map +0 -1
  443. package/dist/src/index.js +0 -64
  444. package/dist/src/index.js.map +0 -1
  445. package/dist/src/integrations/code-canvas.d.ts +0 -265
  446. package/dist/src/integrations/code-canvas.d.ts.map +0 -1
  447. package/dist/src/integrations/code-canvas.js +0 -451
  448. package/dist/src/integrations/code-canvas.js.map +0 -1
  449. package/dist/src/integrations/pluresdb.d.ts +0 -117
  450. package/dist/src/integrations/pluresdb.d.ts.map +0 -1
  451. package/dist/src/integrations/pluresdb.js +0 -117
  452. package/dist/src/integrations/pluresdb.js.map +0 -1
  453. package/dist/src/integrations/state-docs.d.ts +0 -191
  454. package/dist/src/integrations/state-docs.d.ts.map +0 -1
  455. package/dist/src/integrations/state-docs.js +0 -515
  456. package/dist/src/integrations/state-docs.js.map +0 -1
  457. package/dist/src/integrations/svelte.d.ts.map +0 -1
  458. package/dist/src/integrations/svelte.js +0 -447
  459. package/dist/src/integrations/svelte.js.map +0 -1
  460. package/dist/src/integrations/tauri.d.ts +0 -360
  461. package/dist/src/integrations/tauri.d.ts.map +0 -1
  462. package/dist/src/integrations/tauri.js +0 -278
  463. package/dist/src/integrations/tauri.js.map +0 -1
  464. package/dist/src/integrations/unum.d.ts +0 -159
  465. package/dist/src/integrations/unum.d.ts.map +0 -1
  466. package/dist/src/integrations/unum.js +0 -240
  467. package/dist/src/integrations/unum.js.map +0 -1
  468. package/dist/src/registry.d.ts +0 -94
  469. package/dist/src/registry.d.ts.map +0 -1
  470. package/dist/src/registry.js +0 -181
  471. package/dist/src/registry.js.map +0 -1
  472. package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
  473. package/dist/src/runtime/terminal-adapter.js +0 -239
  474. package/dist/src/runtime/terminal-adapter.js.map +0 -1
  475. package/dist/src/step.d.ts +0 -34
  476. package/dist/src/step.d.ts.map +0 -1
  477. package/dist/src/step.js +0 -111
  478. package/dist/src/step.js.map +0 -1
  479. package/dist/src/types.d.ts +0 -63
  480. package/dist/src/types.d.ts.map +0 -1
  481. package/dist/src/types.js +0 -6
  482. package/dist/src/types.js.map +0 -1
  483. package/dist/tools/cli/commands/index.d.ts +0 -7
  484. package/dist/tools/cli/commands/index.d.ts.map +0 -1
  485. package/dist/tools/cli/commands/index.js +0 -7
  486. package/dist/tools/cli/commands/index.js.map +0 -1
  487. package/dist/tools/cli/index.d.ts +0 -8
  488. package/dist/tools/cli/index.d.ts.map +0 -1
  489. package/dist/tools/cli/index.js +0 -9
  490. package/dist/tools/cli/index.js.map +0 -1
  491. package/dist/tools/watcher/index.d.ts +0 -105
  492. package/dist/tools/watcher/index.d.ts.map +0 -1
  493. package/dist/tools/watcher/index.js +0 -213
  494. package/dist/tools/watcher/index.js.map +0 -1
  495. package/dist/ui/canvas/canvas-projection.d.ts +0 -78
  496. package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
  497. package/dist/ui/canvas/canvas-projection.js +0 -416
  498. package/dist/ui/canvas/canvas-projection.js.map +0 -1
  499. package/dist/ui/canvas/canvas-state.d.ts +0 -200
  500. package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
  501. package/dist/ui/canvas/canvas-state.js +0 -464
  502. package/dist/ui/canvas/canvas-state.js.map +0 -1
  503. package/dist/ui/canvas/components/index.d.ts +0 -95
  504. package/dist/ui/canvas/components/index.d.ts.map +0 -1
  505. package/dist/ui/canvas/components/index.js +0 -19
  506. package/dist/ui/canvas/components/index.js.map +0 -1
  507. package/dist/ui/canvas/index.d.ts +0 -32
  508. package/dist/ui/canvas/index.d.ts.map +0 -1
  509. package/dist/ui/canvas/index.js +0 -32
  510. package/dist/ui/canvas/index.js.map +0 -1
  511. package/dist/ui/svelte-generator/index.d.ts +0 -9
  512. package/dist/ui/svelte-generator/index.d.ts.map +0 -1
  513. package/dist/ui/svelte-generator/index.js +0 -11
  514. package/dist/ui/svelte-generator/index.js.map +0 -1
  515. package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
  516. package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
  517. package/dist/ui/svelte-generator/psf-generator.js +0 -506
  518. package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
@@ -2,296 +2,313 @@
2
2
  * State-Docs Integration Tests
3
3
  */
4
4
 
5
- import { describe, it, expect } from "vitest";
5
+ import { describe, it, expect } from 'vitest';
6
6
  import {
7
7
  createStateDocsGenerator,
8
8
  generateDocs,
9
9
  StateDocsGenerator,
10
- } from "../integrations/state-docs.js";
11
- import type { PraxisSchema } from "../core/schema/types.js";
10
+ } from '../integrations/state-docs.js';
11
+ import type { PraxisSchema } from '../core/schema/types.js';
12
12
 
13
- describe("State-Docs Integration", () => {
13
+ describe('State-Docs Integration', () => {
14
14
  const testSchema: PraxisSchema = {
15
- version: "1.0.0",
16
- name: "TestProject",
17
- description: "A test project for documentation generation",
15
+ version: '1.0.0',
16
+ name: 'TestProject',
17
+ description: 'A test project for documentation generation',
18
18
  models: [
19
19
  {
20
- name: "User",
21
- description: "User model",
20
+ name: 'User',
21
+ description: 'User model',
22
22
  fields: [
23
- { name: "id", type: "string", description: "User ID" },
24
- { name: "name", type: "string", description: "User name" },
25
- { name: "email", type: "string", description: "Email address", optional: true },
23
+ { name: 'id', type: 'string', description: 'User ID' },
24
+ { name: 'name', type: 'string', description: 'User name' },
25
+ { name: 'email', type: 'string', description: 'Email address', optional: true },
26
26
  ],
27
27
  },
28
28
  {
29
- name: "Post",
30
- description: "Blog post model",
29
+ name: 'Post',
30
+ description: 'Blog post model',
31
31
  fields: [
32
- { name: "id", type: "string" },
33
- { name: "title", type: "string" },
34
- { name: "content", type: "string" },
35
- { name: "authorId", type: "string" },
32
+ { name: 'id', type: 'string' },
33
+ { name: 'title', type: 'string' },
34
+ { name: 'content', type: 'string' },
35
+ { name: 'authorId', type: 'string' },
36
36
  ],
37
37
  },
38
38
  ],
39
39
  components: [
40
40
  {
41
- name: "UserProfile",
42
- type: "display",
43
- description: "User profile display component",
44
- model: "User",
41
+ name: 'UserProfile',
42
+ type: 'display',
43
+ description: 'User profile display component',
44
+ model: 'User',
45
45
  },
46
46
  {
47
- name: "PostEditor",
48
- type: "form",
49
- description: "Post editing form",
50
- model: "Post",
47
+ name: 'PostEditor',
48
+ type: 'form',
49
+ description: 'Post editing form',
50
+ model: 'Post',
51
51
  },
52
52
  ],
53
53
  logic: [
54
54
  {
55
- id: "auth-logic",
56
- description: "Authentication logic module",
55
+ id: 'auth-logic',
56
+ description: 'Authentication logic module',
57
57
  events: [
58
- { tag: "Login", payload: { username: "string", password: "string" }, description: "User login event" },
59
- { tag: "Logout", payload: { userId: "string" }, description: "User logout event" },
58
+ {
59
+ tag: 'Login',
60
+ payload: { username: 'string', password: 'string' },
61
+ description: 'User login event',
62
+ },
63
+ { tag: 'Logout', payload: { userId: 'string' }, description: 'User logout event' },
60
64
  ],
61
65
  facts: [
62
- { tag: "UserLoggedIn", payload: { userId: "string", timestamp: "number" }, description: "User is logged in" },
66
+ {
67
+ tag: 'UserLoggedIn',
68
+ payload: { userId: 'string', timestamp: 'number' },
69
+ description: 'User is logged in',
70
+ },
63
71
  ],
64
72
  rules: [
65
- { id: "process-login", description: "Process login request", then: "validateCredentials()" },
73
+ {
74
+ id: 'process-login',
75
+ description: 'Process login request',
76
+ then: 'validateCredentials()',
77
+ },
66
78
  ],
67
79
  constraints: [
68
- { id: "valid-session", description: "Session must be valid", check: "session.isValid()", message: "Invalid session" },
80
+ {
81
+ id: 'valid-session',
82
+ description: 'Session must be valid',
83
+ check: 'session.isValid()',
84
+ message: 'Invalid session',
85
+ },
69
86
  ],
70
87
  },
71
88
  ],
72
89
  };
73
90
 
74
- describe("createStateDocsGenerator", () => {
75
- it("should create a generator with default config", () => {
91
+ describe('createStateDocsGenerator', () => {
92
+ it('should create a generator with default config', () => {
76
93
  const generator = createStateDocsGenerator({
77
- projectTitle: "Test Project",
94
+ projectTitle: 'Test Project',
78
95
  });
79
-
96
+
80
97
  expect(generator).toBeInstanceOf(StateDocsGenerator);
81
98
  });
82
-
83
- it("should create a generator with custom config", () => {
99
+
100
+ it('should create a generator with custom config', () => {
84
101
  const generator = createStateDocsGenerator({
85
- projectTitle: "Test Project",
86
- target: "./custom-docs",
102
+ projectTitle: 'Test Project',
103
+ target: './custom-docs',
87
104
  visualization: {
88
- format: "mermaid",
89
- theme: "dark",
105
+ format: 'mermaid',
106
+ theme: 'dark',
90
107
  },
91
108
  template: {
92
109
  toc: true,
93
110
  timestamp: false,
94
111
  },
95
112
  });
96
-
113
+
97
114
  expect(generator).toBeInstanceOf(StateDocsGenerator);
98
115
  });
99
116
  });
100
117
 
101
- describe("generateFromSchema", () => {
102
- it("should generate documentation from schema", () => {
118
+ describe('generateFromSchema', () => {
119
+ it('should generate documentation from schema', () => {
103
120
  const generator = createStateDocsGenerator({
104
- projectTitle: "Test Project",
121
+ projectTitle: 'Test Project',
105
122
  });
106
-
123
+
107
124
  const docs = generator.generateFromSchema(testSchema);
108
-
125
+
109
126
  expect(docs).toBeDefined();
110
127
  expect(docs.length).toBeGreaterThan(0);
111
128
  });
112
-
113
- it("should generate README", () => {
129
+
130
+ it('should generate README', () => {
114
131
  const generator = createStateDocsGenerator({
115
- projectTitle: "Test Project",
132
+ projectTitle: 'Test Project',
116
133
  });
117
-
134
+
118
135
  const docs = generator.generateFromSchema(testSchema);
119
- const readme = docs.find(d => d.path.endsWith("README.md"));
120
-
136
+ const readme = docs.find((d) => d.path.endsWith('README.md'));
137
+
121
138
  expect(readme).toBeDefined();
122
- expect(readme?.type).toBe("markdown");
123
- expect(readme?.content).toContain("TestProject");
139
+ expect(readme?.type).toBe('markdown');
140
+ expect(readme?.content).toContain('TestProject');
124
141
  });
125
-
126
- it("should generate models documentation", () => {
142
+
143
+ it('should generate models documentation', () => {
127
144
  const generator = createStateDocsGenerator({
128
- projectTitle: "Test Project",
145
+ projectTitle: 'Test Project',
129
146
  });
130
-
147
+
131
148
  const docs = generator.generateFromSchema(testSchema);
132
- const modelsDocs = docs.find(d => d.path.endsWith("models.md"));
133
-
149
+ const modelsDocs = docs.find((d) => d.path.endsWith('models.md'));
150
+
134
151
  expect(modelsDocs).toBeDefined();
135
- expect(modelsDocs?.content).toContain("User");
136
- expect(modelsDocs?.content).toContain("Post");
152
+ expect(modelsDocs?.content).toContain('User');
153
+ expect(modelsDocs?.content).toContain('Post');
137
154
  });
138
-
139
- it("should generate components documentation", () => {
155
+
156
+ it('should generate components documentation', () => {
140
157
  const generator = createStateDocsGenerator({
141
- projectTitle: "Test Project",
158
+ projectTitle: 'Test Project',
142
159
  });
143
-
160
+
144
161
  const docs = generator.generateFromSchema(testSchema);
145
- const componentsDocs = docs.find(d => d.path.endsWith("components.md"));
146
-
162
+ const componentsDocs = docs.find((d) => d.path.endsWith('components.md'));
163
+
147
164
  expect(componentsDocs).toBeDefined();
148
- expect(componentsDocs?.content).toContain("UserProfile");
149
- expect(componentsDocs?.content).toContain("PostEditor");
165
+ expect(componentsDocs?.content).toContain('UserProfile');
166
+ expect(componentsDocs?.content).toContain('PostEditor');
150
167
  });
151
-
152
- it("should generate logic documentation", () => {
168
+
169
+ it('should generate logic documentation', () => {
153
170
  const generator = createStateDocsGenerator({
154
- projectTitle: "Test Project",
171
+ projectTitle: 'Test Project',
155
172
  });
156
-
173
+
157
174
  const docs = generator.generateFromSchema(testSchema);
158
- const logicDocs = docs.find(d => d.path.includes("auth-logic.md"));
159
-
175
+ const logicDocs = docs.find((d) => d.path.includes('auth-logic.md'));
176
+
160
177
  expect(logicDocs).toBeDefined();
161
- expect(logicDocs?.content).toContain("Login");
162
- expect(logicDocs?.content).toContain("Logout");
178
+ expect(logicDocs?.content).toContain('Login');
179
+ expect(logicDocs?.content).toContain('Logout');
163
180
  });
164
-
165
- it("should generate Mermaid diagrams", () => {
181
+
182
+ it('should generate Mermaid diagrams', () => {
166
183
  const generator = createStateDocsGenerator({
167
- projectTitle: "Test Project",
184
+ projectTitle: 'Test Project',
168
185
  });
169
-
186
+
170
187
  const docs = generator.generateFromSchema(testSchema);
171
- const mermaidDocs = docs.filter(d => d.type === "mermaid");
172
-
188
+ const mermaidDocs = docs.filter((d) => d.type === 'mermaid');
189
+
173
190
  expect(mermaidDocs.length).toBeGreaterThan(0);
174
- expect(mermaidDocs[0].content).toContain("stateDiagram-v2");
191
+ expect(mermaidDocs[0].content).toContain('stateDiagram-v2');
175
192
  });
176
-
177
- it("should include table of contents when enabled", () => {
193
+
194
+ it('should include table of contents when enabled', () => {
178
195
  const generator = createStateDocsGenerator({
179
- projectTitle: "Test Project",
196
+ projectTitle: 'Test Project',
180
197
  template: { toc: true },
181
198
  });
182
-
199
+
183
200
  const docs = generator.generateFromSchema(testSchema);
184
- const readme = docs.find(d => d.path.endsWith("README.md"));
185
-
186
- expect(readme?.content).toContain("Table of Contents");
201
+ const readme = docs.find((d) => d.path.endsWith('README.md'));
202
+
203
+ expect(readme?.content).toContain('Table of Contents');
187
204
  });
188
-
189
- it("should include timestamp when enabled", () => {
205
+
206
+ it('should include timestamp when enabled', () => {
190
207
  const generator = createStateDocsGenerator({
191
- projectTitle: "Test Project",
208
+ projectTitle: 'Test Project',
192
209
  template: { timestamp: true },
193
210
  });
194
-
211
+
195
212
  const docs = generator.generateFromSchema(testSchema);
196
- const readme = docs.find(d => d.path.endsWith("README.md"));
197
-
198
- expect(readme?.content).toContain("Generated on");
213
+ const readme = docs.find((d) => d.path.endsWith('README.md'));
214
+
215
+ expect(readme?.content).toContain('Generated on');
199
216
  });
200
-
201
- it("should include statistics", () => {
217
+
218
+ it('should include statistics', () => {
202
219
  const generator = createStateDocsGenerator({
203
- projectTitle: "Test Project",
220
+ projectTitle: 'Test Project',
204
221
  });
205
-
222
+
206
223
  const docs = generator.generateFromSchema(testSchema);
207
- const readme = docs.find(d => d.path.endsWith("README.md"));
208
-
209
- expect(readme?.content).toContain("Statistics");
210
- expect(readme?.content).toContain("Models");
211
- expect(readme?.content).toContain("Components");
224
+ const readme = docs.find((d) => d.path.endsWith('README.md'));
225
+
226
+ expect(readme?.content).toContain('Statistics');
227
+ expect(readme?.content).toContain('Models');
228
+ expect(readme?.content).toContain('Components');
212
229
  });
213
230
  });
214
231
 
215
- describe("generateDocs (convenience function)", () => {
216
- it("should generate docs directly from schema", () => {
232
+ describe('generateDocs (convenience function)', () => {
233
+ it('should generate docs directly from schema', () => {
217
234
  const docs = generateDocs(testSchema, {
218
- projectTitle: "Quick Project",
235
+ projectTitle: 'Quick Project',
219
236
  });
220
-
237
+
221
238
  expect(docs).toBeDefined();
222
239
  expect(docs.length).toBeGreaterThan(0);
223
240
  });
224
241
  });
225
242
 
226
- describe("generateFromModule", () => {
227
- it("should generate documentation from a Praxis module", () => {
243
+ describe('generateFromModule', () => {
244
+ it('should generate documentation from a Praxis module', () => {
228
245
  const generator = createStateDocsGenerator({
229
- projectTitle: "Test Project",
246
+ projectTitle: 'Test Project',
230
247
  });
231
-
248
+
232
249
  const docs = generator.generateFromModule({
233
250
  rules: [
234
251
  {
235
- id: "test-rule",
236
- description: "A test rule",
252
+ id: 'test-rule',
253
+ description: 'A test rule',
237
254
  impl: () => [],
238
255
  },
239
256
  ],
240
257
  constraints: [
241
258
  {
242
- id: "test-constraint",
243
- description: "A test constraint",
259
+ id: 'test-constraint',
260
+ description: 'A test constraint',
244
261
  impl: () => true,
245
262
  },
246
263
  ],
247
264
  });
248
-
265
+
249
266
  expect(docs.length).toBe(3); // rules.md, constraints.md, state-diagram.mmd
250
267
  });
251
-
252
- it("should generate rules documentation from module", () => {
268
+
269
+ it('should generate rules documentation from module', () => {
253
270
  const generator = createStateDocsGenerator({
254
- projectTitle: "Test Project",
271
+ projectTitle: 'Test Project',
255
272
  });
256
-
273
+
257
274
  const docs = generator.generateFromModule({
258
275
  rules: [
259
276
  {
260
- id: "auth.login",
261
- description: "Process user login",
277
+ id: 'auth.login',
278
+ description: 'Process user login',
262
279
  impl: () => [],
263
280
  },
264
281
  ],
265
282
  constraints: [],
266
283
  });
267
-
268
- const rulesDocs = docs.find(d => d.path.endsWith("rules.md"));
284
+
285
+ const rulesDocs = docs.find((d) => d.path.endsWith('rules.md'));
269
286
  expect(rulesDocs).toBeDefined();
270
- expect(rulesDocs?.content).toContain("auth.login");
271
- expect(rulesDocs?.content).toContain("Process user login");
287
+ expect(rulesDocs?.content).toContain('auth.login');
288
+ expect(rulesDocs?.content).toContain('Process user login');
272
289
  });
273
-
274
- it("should generate constraints documentation from module", () => {
290
+
291
+ it('should generate constraints documentation from module', () => {
275
292
  const generator = createStateDocsGenerator({
276
- projectTitle: "Test Project",
293
+ projectTitle: 'Test Project',
277
294
  });
278
-
295
+
279
296
  const docs = generator.generateFromModule({
280
297
  rules: [],
281
298
  constraints: [
282
299
  {
283
- id: "user.valid",
284
- description: "User must be valid",
300
+ id: 'user.valid',
301
+ description: 'User must be valid',
285
302
  impl: () => true,
286
- meta: { errorMessage: "User is invalid" },
303
+ meta: { errorMessage: 'User is invalid' },
287
304
  },
288
305
  ],
289
306
  });
290
-
291
- const constraintsDocs = docs.find(d => d.path.endsWith("constraints.md"));
307
+
308
+ const constraintsDocs = docs.find((d) => d.path.endsWith('constraints.md'));
292
309
  expect(constraintsDocs).toBeDefined();
293
- expect(constraintsDocs?.content).toContain("user.valid");
294
- expect(constraintsDocs?.content).toContain("User must be valid");
310
+ expect(constraintsDocs?.content).toContain('user.valid');
311
+ expect(constraintsDocs?.content).toContain('User must be valid');
295
312
  });
296
313
  });
297
314
  });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Tests for Svelte 5 Integration
3
- *
3
+ *
4
4
  * Tests the enhanced Svelte integration with runes support,
5
5
  * history state pattern, and snapshot functionality.
6
6
  */
@@ -35,7 +35,7 @@ const Increment = defineEvent<'INCREMENT', { amount?: number }>('INCREMENT');
35
35
 
36
36
  function createTestEngine() {
37
37
  const registry = new PraxisRegistry<CounterContext>();
38
-
38
+
39
39
  registry.registerRule(
40
40
  defineRule<CounterContext>({
41
41
  id: 'counter.increment',
@@ -43,11 +43,11 @@ function createTestEngine() {
43
43
  impl: (state, events) => {
44
44
  const event = findEvent(events, Increment);
45
45
  if (!event) return [];
46
-
46
+
47
47
  const amount = event.payload.amount ?? 1;
48
48
  state.context.count += amount;
49
49
  state.context.history.push(state.context.count);
50
-
50
+
51
51
  return [CountIncremented.create({ amount })];
52
52
  },
53
53
  })
@@ -78,7 +78,7 @@ describe('Svelte Integration - Store API', () => {
78
78
 
79
79
  // Dispatch event
80
80
  store.dispatch([Increment.create({ amount: 5 })]);
81
-
81
+
82
82
  expect(states.length).toBe(2);
83
83
  expect(states[1].context.count).toBe(5);
84
84
 
@@ -98,7 +98,7 @@ describe('Svelte Integration - Store API', () => {
98
98
  expect(contexts[0].count).toBe(0);
99
99
 
100
100
  store.dispatch([Increment.create({ amount: 3 })]);
101
-
101
+
102
102
  expect(contexts.length).toBe(2);
103
103
  expect(contexts[1].count).toBe(3);
104
104
 
@@ -258,7 +258,7 @@ describe('Svelte Integration - Runes API', () => {
258
258
  describe('History State Manager', () => {
259
259
  it('should record and navigate history', () => {
260
260
  const manager = new HistoryStateManager<CounterContext>(10);
261
-
261
+
262
262
  // Record initial state
263
263
  const state1 = {
264
264
  context: { count: 0, history: [0] },
@@ -300,19 +300,19 @@ describe('History State Manager', () => {
300
300
 
301
301
  it('should truncate future history when recording from past', () => {
302
302
  const manager = new HistoryStateManager<CounterContext>(10);
303
-
303
+
304
304
  const state1 = {
305
305
  context: { count: 0, history: [0] },
306
306
  facts: [],
307
307
  meta: {},
308
308
  protocolVersion: '1.0.0',
309
309
  };
310
-
310
+
311
311
  // Record 3 states
312
312
  manager.record(state1, []);
313
313
  manager.record({ ...state1, context: { count: 1, history: [0, 1] } }, []);
314
314
  manager.record({ ...state1, context: { count: 2, history: [0, 1, 2] } }, []);
315
-
315
+
316
316
  expect(manager.getHistory().length).toBe(3);
317
317
 
318
318
  // Go back to first state
@@ -322,14 +322,14 @@ describe('History State Manager', () => {
322
322
 
323
323
  // Record new state - should truncate
324
324
  manager.record({ ...state1, context: { count: 10, history: [0, 10] } }, []);
325
-
325
+
326
326
  expect(manager.getHistory().length).toBe(2);
327
327
  expect(manager.getCurrentIndex()).toBe(1);
328
328
  });
329
329
 
330
330
  it('should limit history size', () => {
331
331
  const manager = new HistoryStateManager<CounterContext>(3);
332
-
332
+
333
333
  const state = {
334
334
  context: { count: 0, history: [0] },
335
335
  facts: [],
@@ -339,10 +339,7 @@ describe('History State Manager', () => {
339
339
 
340
340
  // Record 5 states
341
341
  for (let i = 0; i < 5; i++) {
342
- manager.record(
343
- { ...state, context: { count: i, history: [i] } },
344
- []
345
- );
342
+ manager.record({ ...state, context: { count: i, history: [i] } }, []);
346
343
  }
347
344
 
348
345
  // Should only keep last 3
@@ -352,7 +349,7 @@ describe('History State Manager', () => {
352
349
 
353
350
  it('should clear history', () => {
354
351
  const manager = new HistoryStateManager<CounterContext>(10);
355
-
352
+
356
353
  const state = {
357
354
  context: { count: 0, history: [0] },
358
355
  facts: [],
@@ -362,11 +359,11 @@ describe('History State Manager', () => {
362
359
 
363
360
  manager.record(state, []);
364
361
  manager.record({ ...state, context: { count: 1, history: [0, 1] } }, []);
365
-
362
+
366
363
  expect(manager.getHistory().length).toBe(2);
367
364
 
368
365
  manager.clear();
369
-
366
+
370
367
  expect(manager.getHistory().length).toBe(0);
371
368
  expect(manager.getCurrentIndex()).toBe(-1);
372
369
  expect(manager.current()).toBeNull();