@plures/praxis 1.0.3 → 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 (534) 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 -97
  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 +7 -8
  133. package/src/cli/index.ts +14 -10
  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/commands/verify.d.ts +0 -10
  294. package/dist/src/cli/commands/verify.d.ts.map +0 -1
  295. package/dist/src/cli/commands/verify.js +0 -39
  296. package/dist/src/cli/commands/verify.js.map +0 -1
  297. package/dist/src/cli/index.d.ts +0 -8
  298. package/dist/src/cli/index.d.ts.map +0 -1
  299. package/dist/src/cli/index.js +0 -226
  300. package/dist/src/cli/index.js.map +0 -1
  301. package/dist/src/cloud/auth.d.ts +0 -51
  302. package/dist/src/cloud/auth.d.ts.map +0 -1
  303. package/dist/src/cloud/auth.js +0 -194
  304. package/dist/src/cloud/auth.js.map +0 -1
  305. package/dist/src/cloud/billing.d.ts +0 -184
  306. package/dist/src/cloud/billing.d.ts.map +0 -1
  307. package/dist/src/cloud/billing.js +0 -179
  308. package/dist/src/cloud/billing.js.map +0 -1
  309. package/dist/src/cloud/client.d.ts +0 -39
  310. package/dist/src/cloud/client.d.ts.map +0 -1
  311. package/dist/src/cloud/client.js +0 -176
  312. package/dist/src/cloud/client.js.map +0 -1
  313. package/dist/src/cloud/index.d.ts +0 -44
  314. package/dist/src/cloud/index.d.ts.map +0 -1
  315. package/dist/src/cloud/index.js +0 -44
  316. package/dist/src/cloud/index.js.map +0 -1
  317. package/dist/src/cloud/marketplace.d.ts +0 -166
  318. package/dist/src/cloud/marketplace.d.ts.map +0 -1
  319. package/dist/src/cloud/marketplace.js +0 -159
  320. package/dist/src/cloud/marketplace.js.map +0 -1
  321. package/dist/src/cloud/provisioning.d.ts +0 -110
  322. package/dist/src/cloud/provisioning.d.ts.map +0 -1
  323. package/dist/src/cloud/provisioning.js +0 -148
  324. package/dist/src/cloud/provisioning.js.map +0 -1
  325. package/dist/src/cloud/relay/endpoints.d.ts +0 -62
  326. package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
  327. package/dist/src/cloud/relay/endpoints.js +0 -217
  328. package/dist/src/cloud/relay/endpoints.js.map +0 -1
  329. package/dist/src/cloud/relay/health/index.d.ts +0 -5
  330. package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
  331. package/dist/src/cloud/relay/health/index.js +0 -9
  332. package/dist/src/cloud/relay/health/index.js.map +0 -1
  333. package/dist/src/cloud/relay/stats/index.d.ts +0 -5
  334. package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
  335. package/dist/src/cloud/relay/stats/index.js +0 -9
  336. package/dist/src/cloud/relay/stats/index.js.map +0 -1
  337. package/dist/src/cloud/relay/sync/index.d.ts +0 -5
  338. package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
  339. package/dist/src/cloud/relay/sync/index.js +0 -9
  340. package/dist/src/cloud/relay/sync/index.js.map +0 -1
  341. package/dist/src/cloud/relay/usage/index.d.ts +0 -5
  342. package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
  343. package/dist/src/cloud/relay/usage/index.js +0 -9
  344. package/dist/src/cloud/relay/usage/index.js.map +0 -1
  345. package/dist/src/cloud/sponsors.d.ts +0 -81
  346. package/dist/src/cloud/sponsors.d.ts.map +0 -1
  347. package/dist/src/cloud/sponsors.js +0 -130
  348. package/dist/src/cloud/sponsors.js.map +0 -1
  349. package/dist/src/cloud/types.d.ts +0 -169
  350. package/dist/src/cloud/types.d.ts.map +0 -1
  351. package/dist/src/cloud/types.js +0 -7
  352. package/dist/src/cloud/types.js.map +0 -1
  353. package/dist/src/components/index.d.ts.map +0 -1
  354. package/dist/src/components/index.js +0 -17
  355. package/dist/src/components/index.js.map +0 -1
  356. package/dist/src/core/actors.d.ts +0 -95
  357. package/dist/src/core/actors.d.ts.map +0 -1
  358. package/dist/src/core/actors.js +0 -158
  359. package/dist/src/core/actors.js.map +0 -1
  360. package/dist/src/core/component/generator.d.ts.map +0 -1
  361. package/dist/src/core/component/generator.js +0 -349
  362. package/dist/src/core/component/generator.js.map +0 -1
  363. package/dist/src/core/engine.d.ts +0 -92
  364. package/dist/src/core/engine.d.ts.map +0 -1
  365. package/dist/src/core/engine.js +0 -199
  366. package/dist/src/core/engine.js.map +0 -1
  367. package/dist/src/core/introspection.d.ts +0 -141
  368. package/dist/src/core/introspection.d.ts.map +0 -1
  369. package/dist/src/core/introspection.js +0 -208
  370. package/dist/src/core/introspection.js.map +0 -1
  371. package/dist/src/core/logic/generator.d.ts +0 -76
  372. package/dist/src/core/logic/generator.d.ts.map +0 -1
  373. package/dist/src/core/logic/generator.js +0 -370
  374. package/dist/src/core/logic/generator.js.map +0 -1
  375. package/dist/src/core/pluresdb/adapter.d.ts +0 -72
  376. package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
  377. package/dist/src/core/pluresdb/adapter.js +0 -73
  378. package/dist/src/core/pluresdb/adapter.js.map +0 -1
  379. package/dist/src/core/pluresdb/generator.d.ts +0 -58
  380. package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
  381. package/dist/src/core/pluresdb/generator.js +0 -191
  382. package/dist/src/core/pluresdb/generator.js.map +0 -1
  383. package/dist/src/core/pluresdb/index.d.ts +0 -15
  384. package/dist/src/core/pluresdb/index.d.ts.map +0 -1
  385. package/dist/src/core/pluresdb/index.js +0 -11
  386. package/dist/src/core/pluresdb/index.js.map +0 -1
  387. package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
  388. package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
  389. package/dist/src/core/pluresdb/schema-registry.js +0 -130
  390. package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
  391. package/dist/src/core/pluresdb/store.d.ts +0 -199
  392. package/dist/src/core/pluresdb/store.d.ts.map +0 -1
  393. package/dist/src/core/pluresdb/store.js +0 -344
  394. package/dist/src/core/pluresdb/store.js.map +0 -1
  395. package/dist/src/core/protocol.d.ts.map +0 -1
  396. package/dist/src/core/protocol.js +0 -46
  397. package/dist/src/core/protocol.js.map +0 -1
  398. package/dist/src/core/rules.d.ts +0 -120
  399. package/dist/src/core/rules.d.ts.map +0 -1
  400. package/dist/src/core/rules.js +0 -81
  401. package/dist/src/core/rules.js.map +0 -1
  402. package/dist/src/core/schema/loader.d.ts +0 -47
  403. package/dist/src/core/schema/loader.d.ts.map +0 -1
  404. package/dist/src/core/schema/loader.js +0 -189
  405. package/dist/src/core/schema/loader.js.map +0 -1
  406. package/dist/src/core/schema/normalize.d.ts +0 -72
  407. package/dist/src/core/schema/normalize.d.ts.map +0 -1
  408. package/dist/src/core/schema/normalize.js +0 -190
  409. package/dist/src/core/schema/normalize.js.map +0 -1
  410. package/dist/src/core/schema/types.d.ts.map +0 -1
  411. package/dist/src/core/schema/types.js +0 -161
  412. package/dist/src/core/schema/types.js.map +0 -1
  413. package/dist/src/dsl/index.d.ts +0 -152
  414. package/dist/src/dsl/index.d.ts.map +0 -1
  415. package/dist/src/dsl/index.js +0 -132
  416. package/dist/src/dsl/index.js.map +0 -1
  417. package/dist/src/dsl.d.ts +0 -124
  418. package/dist/src/dsl.d.ts.map +0 -1
  419. package/dist/src/dsl.js +0 -130
  420. package/dist/src/dsl.js.map +0 -1
  421. package/dist/src/examples/advanced-todo/index.d.ts +0 -55
  422. package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
  423. package/dist/src/examples/advanced-todo/index.js +0 -222
  424. package/dist/src/examples/advanced-todo/index.js.map +0 -1
  425. package/dist/src/examples/auth-basic/index.d.ts +0 -17
  426. package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
  427. package/dist/src/examples/auth-basic/index.js +0 -122
  428. package/dist/src/examples/auth-basic/index.js.map +0 -1
  429. package/dist/src/examples/cart/index.d.ts +0 -19
  430. package/dist/src/examples/cart/index.d.ts.map +0 -1
  431. package/dist/src/examples/cart/index.js +0 -202
  432. package/dist/src/examples/cart/index.js.map +0 -1
  433. package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
  434. package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
  435. package/dist/src/examples/hero-ecommerce/index.js +0 -506
  436. package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
  437. package/dist/src/examples/svelte-counter/index.d.ts +0 -31
  438. package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
  439. package/dist/src/examples/svelte-counter/index.js +0 -123
  440. package/dist/src/examples/svelte-counter/index.js.map +0 -1
  441. package/dist/src/flows.d.ts +0 -125
  442. package/dist/src/flows.d.ts.map +0 -1
  443. package/dist/src/flows.js +0 -160
  444. package/dist/src/flows.js.map +0 -1
  445. package/dist/src/index.d.ts +0 -77
  446. package/dist/src/index.d.ts.map +0 -1
  447. package/dist/src/index.js +0 -64
  448. package/dist/src/index.js.map +0 -1
  449. package/dist/src/integrations/code-canvas.d.ts +0 -265
  450. package/dist/src/integrations/code-canvas.d.ts.map +0 -1
  451. package/dist/src/integrations/code-canvas.js +0 -451
  452. package/dist/src/integrations/code-canvas.js.map +0 -1
  453. package/dist/src/integrations/pluresdb.d.ts +0 -117
  454. package/dist/src/integrations/pluresdb.d.ts.map +0 -1
  455. package/dist/src/integrations/pluresdb.js +0 -117
  456. package/dist/src/integrations/pluresdb.js.map +0 -1
  457. package/dist/src/integrations/state-docs.d.ts +0 -191
  458. package/dist/src/integrations/state-docs.d.ts.map +0 -1
  459. package/dist/src/integrations/state-docs.js +0 -515
  460. package/dist/src/integrations/state-docs.js.map +0 -1
  461. package/dist/src/integrations/svelte.d.ts.map +0 -1
  462. package/dist/src/integrations/svelte.js +0 -447
  463. package/dist/src/integrations/svelte.js.map +0 -1
  464. package/dist/src/integrations/tauri.d.ts +0 -360
  465. package/dist/src/integrations/tauri.d.ts.map +0 -1
  466. package/dist/src/integrations/tauri.js +0 -278
  467. package/dist/src/integrations/tauri.js.map +0 -1
  468. package/dist/src/integrations/unum.d.ts +0 -159
  469. package/dist/src/integrations/unum.d.ts.map +0 -1
  470. package/dist/src/integrations/unum.js +0 -240
  471. package/dist/src/integrations/unum.js.map +0 -1
  472. package/dist/src/registry.d.ts +0 -94
  473. package/dist/src/registry.d.ts.map +0 -1
  474. package/dist/src/registry.js +0 -181
  475. package/dist/src/registry.js.map +0 -1
  476. package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
  477. package/dist/src/runtime/terminal-adapter.js +0 -239
  478. package/dist/src/runtime/terminal-adapter.js.map +0 -1
  479. package/dist/src/step.d.ts +0 -34
  480. package/dist/src/step.d.ts.map +0 -1
  481. package/dist/src/step.js +0 -111
  482. package/dist/src/step.js.map +0 -1
  483. package/dist/src/types.d.ts +0 -63
  484. package/dist/src/types.d.ts.map +0 -1
  485. package/dist/src/types.js +0 -6
  486. package/dist/src/types.js.map +0 -1
  487. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts +0 -8
  488. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts.map +0 -1
  489. package/dist/tools/ast-analyzer/src/ast-analyzer.js +0 -119
  490. package/dist/tools/ast-analyzer/src/ast-analyzer.js.map +0 -1
  491. package/dist/tools/cli/commands/index.d.ts +0 -7
  492. package/dist/tools/cli/commands/index.d.ts.map +0 -1
  493. package/dist/tools/cli/commands/index.js +0 -7
  494. package/dist/tools/cli/commands/index.js.map +0 -1
  495. package/dist/tools/cli/index.d.ts +0 -8
  496. package/dist/tools/cli/index.d.ts.map +0 -1
  497. package/dist/tools/cli/index.js +0 -9
  498. package/dist/tools/cli/index.js.map +0 -1
  499. package/dist/tools/watcher/index.d.ts +0 -105
  500. package/dist/tools/watcher/index.d.ts.map +0 -1
  501. package/dist/tools/watcher/index.js +0 -213
  502. package/dist/tools/watcher/index.js.map +0 -1
  503. package/dist/ui/canvas/canvas-projection.d.ts +0 -78
  504. package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
  505. package/dist/ui/canvas/canvas-projection.js +0 -416
  506. package/dist/ui/canvas/canvas-projection.js.map +0 -1
  507. package/dist/ui/canvas/canvas-state.d.ts +0 -200
  508. package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
  509. package/dist/ui/canvas/canvas-state.js +0 -464
  510. package/dist/ui/canvas/canvas-state.js.map +0 -1
  511. package/dist/ui/canvas/components/index.d.ts +0 -95
  512. package/dist/ui/canvas/components/index.d.ts.map +0 -1
  513. package/dist/ui/canvas/components/index.js +0 -19
  514. package/dist/ui/canvas/components/index.js.map +0 -1
  515. package/dist/ui/canvas/index.d.ts +0 -32
  516. package/dist/ui/canvas/index.d.ts.map +0 -1
  517. package/dist/ui/canvas/index.js +0 -32
  518. package/dist/ui/canvas/index.js.map +0 -1
  519. package/dist/ui/canvas-inspector/src/server.d.ts +0 -2
  520. package/dist/ui/canvas-inspector/src/server.d.ts.map +0 -1
  521. package/dist/ui/canvas-inspector/src/server.js +0 -248
  522. package/dist/ui/canvas-inspector/src/server.js.map +0 -1
  523. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts +0 -5
  524. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts.map +0 -1
  525. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js +0 -58
  526. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js.map +0 -1
  527. package/dist/ui/svelte-generator/index.d.ts +0 -9
  528. package/dist/ui/svelte-generator/index.d.ts.map +0 -1
  529. package/dist/ui/svelte-generator/index.js +0 -11
  530. package/dist/ui/svelte-generator/index.js.map +0 -1
  531. package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
  532. package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
  533. package/dist/ui/svelte-generator/psf-generator.js +0 -506
  534. package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
@@ -2,25 +2,25 @@
2
2
  * Cloud Relay Tests
3
3
  */
4
4
 
5
- import { describe, it, expect, beforeEach, vi } from "vitest";
6
- import { createCloudRelay } from "../cloud/client.js";
7
- import type { CloudRelayConfig, HealthCheckResponse, UsageMetrics } from "../cloud/types.js";
5
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
6
+ import { createCloudRelay } from '../cloud/client.js';
7
+ import type { CloudRelayConfig, HealthCheckResponse, UsageMetrics } from '../cloud/types.js';
8
8
 
9
- describe("Cloud Relay Client", () => {
9
+ describe('Cloud Relay Client', () => {
10
10
  let config: CloudRelayConfig;
11
11
 
12
12
  beforeEach(() => {
13
13
  config = {
14
- endpoint: "https://test.example.com",
15
- appId: "test-app",
16
- authToken: "test-token",
14
+ endpoint: 'https://test.example.com',
15
+ appId: 'test-app',
16
+ authToken: 'test-token',
17
17
  };
18
18
 
19
19
  // Mock fetch globally
20
20
  global.fetch = vi.fn();
21
21
  });
22
22
 
23
- it("should create a cloud relay client", () => {
23
+ it('should create a cloud relay client', () => {
24
24
  const client = createCloudRelay(config);
25
25
  expect(client).toBeDefined();
26
26
  expect(client.getStatus).toBeDefined();
@@ -31,7 +31,7 @@ describe("Cloud Relay Client", () => {
31
31
  expect(client.getHealth).toBeDefined();
32
32
  });
33
33
 
34
- it("should return initial status as disconnected", () => {
34
+ it('should return initial status as disconnected', () => {
35
35
  const client = createCloudRelay(config);
36
36
  const status = client.getStatus();
37
37
  expect(status.connected).toBe(false);
@@ -39,11 +39,11 @@ describe("Cloud Relay Client", () => {
39
39
  expect(status.appId).toBe(config.appId);
40
40
  });
41
41
 
42
- it("should connect to relay successfully", async () => {
42
+ it('should connect to relay successfully', async () => {
43
43
  const mockHealthResponse: HealthCheckResponse = {
44
- status: "healthy",
44
+ status: 'healthy',
45
45
  timestamp: Date.now(),
46
- version: "0.1.0",
46
+ version: '0.1.0',
47
47
  services: {
48
48
  relay: true,
49
49
  eventGrid: true,
@@ -65,21 +65,21 @@ describe("Cloud Relay Client", () => {
65
65
  expect(status.lastSync).toBeDefined();
66
66
  });
67
67
 
68
- it("should throw error when connecting to unavailable endpoint", async () => {
68
+ it('should throw error when connecting to unavailable endpoint', async () => {
69
69
  (global.fetch as any).mockResolvedValueOnce({
70
70
  ok: false,
71
- statusText: "Service Unavailable",
71
+ statusText: 'Service Unavailable',
72
72
  });
73
73
 
74
74
  const client = createCloudRelay(config);
75
- await expect(client.connect()).rejects.toThrow("Health check failed");
75
+ await expect(client.connect()).rejects.toThrow('Health check failed');
76
76
  });
77
77
 
78
- it("should sync facts and events", async () => {
78
+ it('should sync facts and events', async () => {
79
79
  const mockHealthResponse: HealthCheckResponse = {
80
- status: "healthy",
80
+ status: 'healthy',
81
81
  timestamp: Date.now(),
82
- version: "0.1.0",
82
+ version: '0.1.0',
83
83
  services: {
84
84
  relay: true,
85
85
  eventGrid: true,
@@ -90,7 +90,7 @@ describe("Cloud Relay Client", () => {
90
90
 
91
91
  const mockSyncResponse = {
92
92
  success: true,
93
- clock: { "test-app": 1 },
93
+ clock: { 'test-app': 1 },
94
94
  timestamp: Date.now(),
95
95
  };
96
96
 
@@ -108,10 +108,10 @@ describe("Cloud Relay Client", () => {
108
108
  await client.connect();
109
109
 
110
110
  await client.sync({
111
- type: "delta",
111
+ type: 'delta',
112
112
  appId: config.appId,
113
113
  clock: {},
114
- facts: [{ tag: "TestFact", payload: { value: 42 } }],
114
+ facts: [{ tag: 'TestFact', payload: { value: 42 } }],
115
115
  events: [],
116
116
  timestamp: Date.now(),
117
117
  });
@@ -119,11 +119,11 @@ describe("Cloud Relay Client", () => {
119
119
  expect(global.fetch).toHaveBeenCalledTimes(2);
120
120
  });
121
121
 
122
- it("should get usage metrics", async () => {
122
+ it('should get usage metrics', async () => {
123
123
  const mockHealthResponse: HealthCheckResponse = {
124
- status: "healthy",
124
+ status: 'healthy',
125
125
  timestamp: Date.now(),
126
- version: "0.1.0",
126
+ version: '0.1.0',
127
127
  services: {
128
128
  relay: true,
129
129
  eventGrid: true,
@@ -161,11 +161,11 @@ describe("Cloud Relay Client", () => {
161
161
  expect(usage.eventCount).toBe(50);
162
162
  });
163
163
 
164
- it("should get health status", async () => {
164
+ it('should get health status', async () => {
165
165
  const mockHealthResponse: HealthCheckResponse = {
166
- status: "healthy",
166
+ status: 'healthy',
167
167
  timestamp: Date.now(),
168
- version: "0.1.0",
168
+ version: '0.1.0',
169
169
  services: {
170
170
  relay: true,
171
171
  eventGrid: true,
@@ -188,15 +188,15 @@ describe("Cloud Relay Client", () => {
188
188
  await client.connect();
189
189
 
190
190
  const health = await client.getHealth();
191
- expect(health.status).toBe("healthy");
191
+ expect(health.status).toBe('healthy');
192
192
  expect(health.services.relay).toBe(true);
193
193
  });
194
194
 
195
- it("should disconnect and clear auto-sync timer", async () => {
195
+ it('should disconnect and clear auto-sync timer', async () => {
196
196
  const mockHealthResponse: HealthCheckResponse = {
197
- status: "healthy",
197
+ status: 'healthy',
198
198
  timestamp: Date.now(),
199
- version: "0.1.0",
199
+ version: '0.1.0',
200
200
  services: {
201
201
  relay: true,
202
202
  eventGrid: true,
@@ -225,23 +225,23 @@ describe("Cloud Relay Client", () => {
225
225
  expect(statusAfter.connected).toBe(false);
226
226
  });
227
227
 
228
- it("should throw error when syncing while disconnected", async () => {
228
+ it('should throw error when syncing while disconnected', async () => {
229
229
  const client = createCloudRelay(config);
230
230
 
231
231
  await expect(
232
232
  client.sync({
233
- type: "delta",
233
+ type: 'delta',
234
234
  appId: config.appId,
235
235
  clock: {},
236
236
  facts: [],
237
237
  events: [],
238
238
  timestamp: Date.now(),
239
239
  })
240
- ).rejects.toThrow("Not connected");
240
+ ).rejects.toThrow('Not connected');
241
241
  });
242
242
 
243
- it("should throw error when getting usage while disconnected", async () => {
243
+ it('should throw error when getting usage while disconnected', async () => {
244
244
  const client = createCloudRelay(config);
245
- await expect(client.getUsage()).rejects.toThrow("Not connected");
245
+ await expect(client.getUsage()).rejects.toThrow('Not connected');
246
246
  });
247
247
  });
@@ -2,7 +2,7 @@
2
2
  * CodeCanvas 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
  schemaToCanvas,
8
8
  canvasToSchema,
@@ -10,268 +10,259 @@ import {
10
10
  canvasToMermaid,
11
11
  createCanvasEditor,
12
12
  validateWithGuardian,
13
- } from "../integrations/code-canvas.js";
14
- import type { PraxisSchema } from "../core/schema/types.js";
15
-
16
- describe("CodeCanvas Integration", () => {
17
- const testSchema: PraxisSchema = {
18
- version: "1.0.0",
19
- name: "TestSchema",
20
- description: "A test schema",
13
+ } from '../integrations/code-canvas.js';
14
+ import type { PSFSchema } from '../../core/schema-engine/psf.js';
15
+
16
+ describe('CodeCanvas Integration', () => {
17
+ const testSchema: PSFSchema = {
18
+ $version: '1.0.0',
19
+ id: 'test-schema',
20
+ name: 'TestSchema',
21
+ description: 'A test schema',
21
22
  models: [
22
23
  {
23
- name: "User",
24
- description: "User model",
24
+ name: 'User',
25
+ description: 'User model',
25
26
  fields: [
26
- { name: "id", type: "string" },
27
- { name: "name", type: "string" },
27
+ { name: 'id', type: 'string' },
28
+ { name: 'name', type: 'string' },
28
29
  ],
29
30
  },
30
31
  ],
31
32
  components: [
32
33
  {
33
- name: "UserForm",
34
- type: "form",
35
- description: "User form component",
36
- model: "User",
34
+ name: 'UserForm',
35
+ type: 'form',
36
+ description: 'User form component',
37
+ model: 'User',
37
38
  },
38
39
  ],
39
- logic: [
40
+ events: [
41
+ { tag: 'UserCreated', payload: { userId: 'string' }, description: 'User was created' },
42
+ ],
43
+ facts: [{ tag: 'UserExists', payload: { userId: 'string' }, description: 'User exists' }],
44
+ rules: [{ id: 'create-user', description: 'Create user rule', then: 'createUser()' }],
45
+ constraints: [
40
46
  {
41
- id: "user-logic",
42
- description: "User logic module",
43
- events: [
44
- { tag: "UserCreated", payload: { userId: "string" }, description: "User was created" },
45
- ],
46
- facts: [
47
- { tag: "UserExists", payload: { userId: "string" }, description: "User exists" },
48
- ],
49
- rules: [
50
- { id: "create-user", description: "Create user rule", then: "createUser()" },
51
- ],
52
- constraints: [
53
- { id: "user-name-required", description: "Name is required", check: "name !== null", message: "Name is required" },
54
- ],
47
+ id: 'user-name-required',
48
+ description: 'Name is required',
49
+ check: 'name !== null',
50
+ message: 'Name is required',
55
51
  },
56
52
  ],
53
+ flows: [],
57
54
  };
58
55
 
59
- describe("schemaToCanvas", () => {
60
- it("should convert a schema to canvas document", () => {
56
+ describe('schemaToCanvas', () => {
57
+ it('should convert a schema to canvas document', () => {
61
58
  const canvas = schemaToCanvas(testSchema);
62
-
59
+
63
60
  expect(canvas).toBeDefined();
64
- expect(canvas.name).toBe("TestSchema");
65
- expect(canvas.version).toBe("1.0.0");
61
+ expect(canvas.name).toBe('TestSchema');
62
+ expect(canvas.version).toBe('1.0.0');
66
63
  expect(canvas.nodes.length).toBeGreaterThan(0);
67
64
  });
68
-
69
- it("should create nodes for models", () => {
65
+
66
+ it('should create nodes for models', () => {
70
67
  const canvas = schemaToCanvas(testSchema);
71
- const modelNodes = canvas.nodes.filter(n => n.type === "model");
72
-
68
+ const modelNodes = canvas.nodes.filter((n) => n.type === 'model');
69
+
73
70
  expect(modelNodes.length).toBe(1);
74
- expect(modelNodes[0].label).toBe("User");
71
+ expect(modelNodes[0].label).toBe('User');
75
72
  });
76
-
77
- it("should create nodes for components", () => {
73
+
74
+ it('should create nodes for components', () => {
78
75
  const canvas = schemaToCanvas(testSchema);
79
- const componentNodes = canvas.nodes.filter(n => n.type === "component");
80
-
76
+ const componentNodes = canvas.nodes.filter((n) => n.type === 'component');
77
+
81
78
  expect(componentNodes.length).toBe(1);
82
- expect(componentNodes[0].label).toBe("UserForm");
79
+ expect(componentNodes[0].label).toBe('UserForm');
83
80
  });
84
-
85
- it("should create nodes for events", () => {
81
+
82
+ it('should create nodes for events', () => {
86
83
  const canvas = schemaToCanvas(testSchema);
87
- const eventNodes = canvas.nodes.filter(n => n.type === "event");
88
-
84
+ const eventNodes = canvas.nodes.filter((n) => n.type === 'event');
85
+
89
86
  expect(eventNodes.length).toBe(1);
90
- expect(eventNodes[0].label).toBe("UserCreated");
87
+ expect(eventNodes[0].label).toBe('UserCreated');
91
88
  });
92
-
93
- it("should create edges for component-model relationships", () => {
89
+
90
+ it('should create edges for component-model relationships', () => {
94
91
  const canvas = schemaToCanvas(testSchema);
95
-
92
+
96
93
  expect(canvas.edges.length).toBeGreaterThan(0);
97
- expect(canvas.edges[0].type).toBe("reference");
94
+ expect(canvas.edges[0].type).toBe('reference');
98
95
  });
99
96
  });
100
97
 
101
- describe("canvasToSchema", () => {
102
- it("should convert canvas back to schema", () => {
98
+ describe('canvasToSchema', () => {
99
+ it('should convert canvas back to schema', () => {
103
100
  const canvas = schemaToCanvas(testSchema);
104
101
  const schema = canvasToSchema(canvas);
105
-
102
+
106
103
  expect(schema).toBeDefined();
107
- expect(schema.name).toBe("TestSchema");
108
- expect(schema.version).toBe("1.0.0");
104
+ expect(schema.name).toBe('TestSchema');
105
+ expect(schema.$version).toBe('1.0.0');
109
106
  });
110
-
111
- it("should preserve models", () => {
107
+
108
+ it('should preserve models', () => {
112
109
  const canvas = schemaToCanvas(testSchema);
113
110
  const schema = canvasToSchema(canvas);
114
-
111
+
115
112
  expect(schema.models?.length).toBe(1);
116
- expect(schema.models?.[0].name).toBe("User");
113
+ expect(schema.models?.[0].name).toBe('User');
117
114
  });
118
-
119
- it("should preserve components", () => {
115
+
116
+ it('should preserve components', () => {
120
117
  const canvas = schemaToCanvas(testSchema);
121
118
  const schema = canvasToSchema(canvas);
122
-
119
+
123
120
  expect(schema.components?.length).toBe(1);
124
- expect(schema.components?.[0].name).toBe("UserForm");
121
+ expect(schema.components?.[0].name).toBe('UserForm');
125
122
  });
126
123
  });
127
124
 
128
- describe("canvasToYaml", () => {
129
- it("should export canvas to YAML format", () => {
125
+ describe('canvasToYaml', () => {
126
+ it('should export canvas to YAML format', () => {
130
127
  const canvas = schemaToCanvas(testSchema);
131
128
  const yaml = canvasToYaml(canvas);
132
-
133
- expect(yaml).toContain("# TestSchema");
134
- expect(yaml).toContain("nodes:");
135
- expect(yaml).toContain("edges:");
129
+
130
+ expect(yaml).toContain('# TestSchema');
131
+ expect(yaml).toContain('nodes:');
132
+ expect(yaml).toContain('edges:');
136
133
  });
137
134
  });
138
135
 
139
- describe("canvasToMermaid", () => {
140
- it("should export canvas to Mermaid format", () => {
136
+ describe('canvasToMermaid', () => {
137
+ it('should export canvas to Mermaid format', () => {
141
138
  const canvas = schemaToCanvas(testSchema);
142
139
  const mermaid = canvasToMermaid(canvas);
143
-
144
- expect(mermaid).toContain("graph TD");
145
- expect(mermaid).toContain("User");
140
+
141
+ expect(mermaid).toContain('graph TD');
142
+ expect(mermaid).toContain('User');
146
143
  });
147
144
  });
148
145
 
149
- describe("createCanvasEditor", () => {
150
- it("should create an editor from schema", () => {
146
+ describe('createCanvasEditor', () => {
147
+ it('should create an editor from schema', () => {
151
148
  const editor = createCanvasEditor({ schema: testSchema });
152
-
149
+
153
150
  expect(editor).toBeDefined();
154
151
  expect(editor.document).toBeDefined();
155
152
  expect(editor.document.nodes.length).toBeGreaterThan(0);
156
153
  });
157
-
158
- it("should add nodes", () => {
154
+
155
+ it('should add nodes', () => {
159
156
  const editor = createCanvasEditor({ schema: testSchema });
160
157
  const initialCount = editor.document.nodes.length;
161
-
158
+
162
159
  editor.addNode({
163
- type: "model",
164
- label: "NewModel",
160
+ type: 'model',
161
+ label: 'NewModel',
165
162
  x: 0,
166
163
  y: 0,
167
164
  width: 100,
168
165
  height: 50,
169
166
  });
170
-
167
+
171
168
  expect(editor.document.nodes.length).toBe(initialCount + 1);
172
169
  });
173
-
174
- it("should remove nodes", () => {
170
+
171
+ it('should remove nodes', () => {
175
172
  const editor = createCanvasEditor({ schema: testSchema });
176
173
  const node = editor.document.nodes[0];
177
174
  const initialCount = editor.document.nodes.length;
178
-
175
+
179
176
  editor.removeNode(node.id);
180
-
177
+
181
178
  expect(editor.document.nodes.length).toBe(initialCount - 1);
182
179
  });
183
-
184
- it("should add edges", () => {
180
+
181
+ it('should add edges', () => {
185
182
  const editor = createCanvasEditor({ schema: testSchema });
186
183
  const initialCount = editor.document.edges.length;
187
-
184
+
188
185
  const nodes = editor.document.nodes;
189
186
  if (nodes.length >= 2) {
190
187
  editor.addEdge({
191
188
  source: nodes[0].id,
192
189
  target: nodes[1].id,
193
- type: "dependency",
190
+ type: 'dependency',
194
191
  });
195
-
192
+
196
193
  expect(editor.document.edges.length).toBe(initialCount + 1);
197
194
  }
198
195
  });
199
-
200
- it("should export to schema", () => {
196
+
197
+ it('should export to schema', () => {
201
198
  const editor = createCanvasEditor({ schema: testSchema });
202
199
  const schema = editor.toSchema();
203
-
200
+
204
201
  expect(schema).toBeDefined();
205
- expect(schema.name).toBe("TestSchema");
202
+ expect(schema.name).toBe('TestSchema');
206
203
  });
207
-
208
- it("should export to YAML", () => {
204
+
205
+ it('should export to YAML', () => {
209
206
  const editor = createCanvasEditor({ schema: testSchema });
210
207
  const yaml = editor.toYaml();
211
-
212
- expect(yaml).toContain("# TestSchema");
208
+
209
+ expect(yaml).toContain('# TestSchema');
213
210
  });
214
-
215
- it("should export to Mermaid", () => {
211
+
212
+ it('should export to Mermaid', () => {
216
213
  const editor = createCanvasEditor({ schema: testSchema });
217
214
  const mermaid = editor.toMermaid();
218
-
219
- expect(mermaid).toContain("graph TD");
215
+
216
+ expect(mermaid).toContain('graph TD');
220
217
  });
221
218
  });
222
219
 
223
- describe("validateWithGuardian", () => {
224
- it("should validate files against activity", () => {
220
+ describe('validateWithGuardian', () => {
221
+ it('should validate files against activity', () => {
225
222
  const result = validateWithGuardian(
226
- ["src/models/user.ts"],
223
+ ['src/models/user.ts'],
227
224
  {
228
- activity: "implementing",
229
- actor: "developer",
225
+ activity: 'implementing',
226
+ actor: 'developer',
230
227
  startedAt: Date.now(),
231
- allowedPaths: ["src/**/*"],
228
+ allowedPaths: ['src/**/*'],
232
229
  },
233
- [
234
- { id: "implementing", name: "Implementing", transitions: ["testing"] },
235
- ]
230
+ [{ id: 'implementing', name: 'Implementing', transitions: ['testing'] }]
236
231
  );
237
-
232
+
238
233
  expect(result.valid).toBe(true);
239
234
  expect(result.errors.length).toBe(0);
240
235
  });
241
-
242
- it("should fail for invalid activity", () => {
236
+
237
+ it('should fail for invalid activity', () => {
243
238
  const result = validateWithGuardian(
244
- ["src/models/user.ts"],
239
+ ['src/models/user.ts'],
245
240
  {
246
- activity: "invalid" as any,
247
- actor: "developer",
241
+ activity: 'invalid' as any,
242
+ actor: 'developer',
248
243
  startedAt: Date.now(),
249
244
  },
250
- [
251
- { id: "implementing", name: "Implementing", transitions: [] },
252
- ]
245
+ [{ id: 'implementing', name: 'Implementing', transitions: [] }]
253
246
  );
254
-
247
+
255
248
  expect(result.valid).toBe(false);
256
- expect(result.errors.some(e => e.code === "INVALID_ACTIVITY")).toBe(true);
249
+ expect(result.errors.some((e) => e.code === 'INVALID_ACTIVITY')).toBe(true);
257
250
  });
258
-
259
- it("should fail for disallowed paths", () => {
251
+
252
+ it('should fail for disallowed paths', () => {
260
253
  const result = validateWithGuardian(
261
- ["config/secrets.json"],
254
+ ['config/secrets.json'],
262
255
  {
263
- activity: "implementing",
264
- actor: "developer",
256
+ activity: 'implementing',
257
+ actor: 'developer',
265
258
  startedAt: Date.now(),
266
- allowedPaths: ["src/**/*"],
259
+ allowedPaths: ['src/**/*'],
267
260
  },
268
- [
269
- { id: "implementing", name: "Implementing", transitions: [] },
270
- ]
261
+ [{ id: 'implementing', name: 'Implementing', transitions: [] }]
271
262
  );
272
-
263
+
273
264
  expect(result.valid).toBe(false);
274
- expect(result.errors.some(e => e.code === "PATH_NOT_ALLOWED")).toBe(true);
265
+ expect(result.errors.some((e) => e.code === 'PATH_NOT_ALLOWED')).toBe(true);
275
266
  });
276
267
  });
277
268
  });
@@ -92,12 +92,8 @@ describe('Documentation Generator', () => {
92
92
  name: 'UserForm',
93
93
  type: 'form',
94
94
  description: 'Form for creating users',
95
- props: [
96
- { name: 'title', type: 'string', required: true, description: 'Form title' },
97
- ],
98
- events: [
99
- { name: 'submit', payload: 'User', description: 'Form submitted' },
100
- ],
95
+ props: [{ name: 'title', type: 'string', required: true, description: 'Form title' }],
96
+ events: [{ name: 'submit', payload: 'User', description: 'Form submitted' }],
101
97
  },
102
98
  ];
103
99
 
@@ -118,9 +114,7 @@ describe('Documentation Generator', () => {
118
114
  id: 'model_1',
119
115
  name: 'User',
120
116
  fields: [{ name: 'id', type: 'string' }],
121
- relationships: [
122
- { name: 'posts', type: 'one-to-many', target: 'Post' },
123
- ],
117
+ relationships: [{ name: 'posts', type: 'one-to-many', target: 'Post' }],
124
118
  },
125
119
  {
126
120
  id: 'model_2',