@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,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',