@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
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * Cloud CLI Commands
3
- *
3
+ *
4
4
  * CLI commands for Praxis Cloud connectivity.
5
5
  */
6
6
 
7
- import * as fs from "fs";
8
- import * as path from "path";
9
- import { authenticateWithDeviceFlow } from "../../cloud/auth.js";
10
- import { connectRelay } from "../../cloud/client.js";
11
- import type { CloudRelayConfig } from "../../cloud/types.js";
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ import { authenticateWithDeviceFlow } from '../../cloud/auth.js';
10
+ import { connectRelay } from '../../cloud/client.js';
11
+ import type { CloudRelayConfig } from '../../cloud/types.js';
12
12
 
13
- const CONFIG_FILE = ".praxis-cloud.json";
14
- const GITHUB_CLIENT_ID = "Ov23liQxF7P0BqUxVXHk"; // Demo client ID (replace in production)
13
+ const CONFIG_FILE = '.praxis-cloud.json';
14
+ const GITHUB_CLIENT_ID = 'Ov23liQxF7P0BqUxVXHk'; // Demo client ID (replace in production)
15
15
 
16
16
  interface StoredConfig {
17
17
  endpoint: string;
@@ -28,11 +28,11 @@ function loadConfig(): StoredConfig | null {
28
28
  try {
29
29
  const configPath = path.join(process.cwd(), CONFIG_FILE);
30
30
  if (fs.existsSync(configPath)) {
31
- const data = fs.readFileSync(configPath, "utf-8");
31
+ const data = fs.readFileSync(configPath, 'utf-8');
32
32
  return JSON.parse(data);
33
33
  }
34
34
  } catch (error) {
35
- console.warn("Failed to load cloud configuration:", error);
35
+ console.warn('Failed to load cloud configuration:', error);
36
36
  }
37
37
  return null;
38
38
  }
@@ -46,7 +46,7 @@ function saveConfig(config: StoredConfig): void {
46
46
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
47
47
  console.log(`\n✓ Configuration saved to ${CONFIG_FILE}`);
48
48
  } catch (error) {
49
- console.error("Failed to save cloud configuration:", error);
49
+ console.error('Failed to save cloud configuration:', error);
50
50
  throw error;
51
51
  }
52
52
  }
@@ -60,14 +60,14 @@ export async function cloudInit(options: {
60
60
  autoSync?: boolean;
61
61
  interval?: string;
62
62
  }): Promise<void> {
63
- console.log("\n╔═══════════════════════════════════════════════════╗");
64
- console.log("║ Welcome to Praxis Cloud Setup Wizard ║");
65
- console.log("╚═══════════════════════════════════════════════════╝\n");
63
+ console.log('\n╔═══════════════════════════════════════════════════╗');
64
+ console.log('║ Welcome to Praxis Cloud Setup Wizard ║');
65
+ console.log('╚═══════════════════════════════════════════════════╝\n');
66
66
 
67
67
  // Check if already configured
68
68
  const existingConfig = loadConfig();
69
69
  if (existingConfig) {
70
- console.log("⚠ Existing cloud configuration found.");
70
+ console.log('⚠ Existing cloud configuration found.');
71
71
  console.log(` Endpoint: ${existingConfig.endpoint}`);
72
72
  console.log(` App ID: ${existingConfig.appId}\n`);
73
73
  // In production, prompt user to confirm overwrite
@@ -77,7 +77,7 @@ export async function cloudInit(options: {
77
77
  let endpoint = options.endpoint;
78
78
  if (!endpoint) {
79
79
  // In production, prompt user for input
80
- endpoint = "https://praxis-relay.azurewebsites.net";
80
+ endpoint = 'https://praxis-relay.azurewebsites.net';
81
81
  console.log(`Using default endpoint: ${endpoint}`);
82
82
  }
83
83
 
@@ -90,18 +90,18 @@ export async function cloudInit(options: {
90
90
  }
91
91
 
92
92
  // Authenticate with GitHub
93
- console.log("\n🔐 Authenticating with GitHub...");
93
+ console.log('\n🔐 Authenticating with GitHub...');
94
94
  const authResult = await authenticateWithDeviceFlow(GITHUB_CLIENT_ID);
95
95
 
96
96
  if (!authResult.success || !authResult.token) {
97
- console.error("\n✗ Authentication failed");
97
+ console.error('\n✗ Authentication failed');
98
98
  process.exit(1);
99
99
  }
100
100
 
101
- console.log(`✓ Authenticated as ${authResult.user?.login || "unknown"}`);
101
+ console.log(`✓ Authenticated as ${authResult.user?.login || 'unknown'}`);
102
102
 
103
103
  // Test connection
104
- console.log("\n🔗 Testing connection to Praxis Cloud...");
104
+ console.log('\n🔗 Testing connection to Praxis Cloud...');
105
105
 
106
106
  try {
107
107
  const config: CloudRelayConfig = {
@@ -115,8 +115,8 @@ export async function cloudInit(options: {
115
115
  const client = await connectRelay(endpoint, config);
116
116
  const health = await client.getHealth();
117
117
 
118
- if (health.status === "healthy") {
119
- console.log("✓ Connected successfully!");
118
+ if (health.status === 'healthy') {
119
+ console.log('✓ Connected successfully!');
120
120
  console.log(` Status: ${health.status}`);
121
121
  console.log(` Version: ${health.version}`);
122
122
  } else {
@@ -136,19 +136,19 @@ export async function cloudInit(options: {
136
136
 
137
137
  saveConfig(storedConfig);
138
138
 
139
- console.log("\n✓ Praxis Cloud is now configured!");
140
- console.log("\nNext steps:");
139
+ console.log('\n✓ Praxis Cloud is now configured!');
140
+ console.log('\nNext steps:');
141
141
  console.log(" • Use 'praxis cloud status' to check connection");
142
142
  console.log(" • Use 'praxis cloud sync' to manually sync");
143
143
  console.log(" • Use 'praxis cloud usage' to view metrics");
144
- console.log("\nIn your code:");
144
+ console.log('\nIn your code:');
145
145
  console.log(' import { connectRelay } from "@plures/praxis/cloud";');
146
146
  console.log(` const relay = await connectRelay("${endpoint}", {`);
147
147
  console.log(` appId: "${appId}",`);
148
148
  console.log(` authToken: "<your-token>"`);
149
- console.log(" });\n");
149
+ console.log(' });\n');
150
150
  } catch (error) {
151
- console.error("\n✗ Failed to connect to Praxis Cloud");
151
+ console.error('\n✗ Failed to connect to Praxis Cloud');
152
152
  console.error(` Error: ${error instanceof Error ? error.message : String(error)}`);
153
153
  process.exit(1);
154
154
  }
@@ -161,18 +161,18 @@ export async function cloudStatus(): Promise<void> {
161
161
  const config = loadConfig();
162
162
 
163
163
  if (!config) {
164
- console.log("\n✗ No cloud configuration found");
164
+ console.log('\n✗ No cloud configuration found');
165
165
  console.log(" Run 'praxis cloud init' to set up cloud connection\n");
166
166
  process.exit(1);
167
167
  }
168
168
 
169
- console.log("\n╔═══════════════════════════════════════════════════╗");
170
- console.log("║ Praxis Cloud Status ║");
171
- console.log("╚═══════════════════════════════════════════════════╝\n");
169
+ console.log('\n╔═══════════════════════════════════════════════════╗');
170
+ console.log('║ Praxis Cloud Status ║');
171
+ console.log('╚═══════════════════════════════════════════════════╝\n');
172
172
 
173
173
  console.log(`Endpoint: ${config.endpoint}`);
174
174
  console.log(`App ID: ${config.appId}`);
175
- console.log(`Auto Sync: ${config.autoSync ? "enabled" : "disabled"}`);
175
+ console.log(`Auto Sync: ${config.autoSync ? 'enabled' : 'disabled'}`);
176
176
 
177
177
  if (config.autoSync) {
178
178
  console.log(`Sync Interval: ${config.syncInterval}ms`);
@@ -185,11 +185,11 @@ export async function cloudStatus(): Promise<void> {
185
185
  console.log(`\nConnection: ✓ Connected`);
186
186
  console.log(`Status: ${health.status}`);
187
187
  console.log(`Version: ${health.version}`);
188
- console.log("\nServices:");
189
- console.log(` Relay: ${health.services.relay ? "" : ""}`);
190
- console.log(` Event Grid: ${health.services.eventGrid ? "" : ""}`);
191
- console.log(` Storage: ${health.services.storage ? "" : ""}`);
192
- console.log(` Auth: ${health.services.auth ? "" : ""}`);
188
+ console.log('\nServices:');
189
+ console.log(` Relay: ${health.services.relay ? '' : ''}`);
190
+ console.log(` Event Grid: ${health.services.eventGrid ? '' : ''}`);
191
+ console.log(` Storage: ${health.services.storage ? '' : ''}`);
192
+ console.log(` Auth: ${health.services.auth ? '' : ''}`);
193
193
 
194
194
  await client.disconnect();
195
195
  } catch (error) {
@@ -207,19 +207,19 @@ export async function cloudSync(): Promise<void> {
207
207
  const config = loadConfig();
208
208
 
209
209
  if (!config) {
210
- console.log("\n✗ No cloud configuration found");
210
+ console.log('\n✗ No cloud configuration found');
211
211
  console.log(" Run 'praxis cloud init' to set up cloud connection\n");
212
212
  process.exit(1);
213
213
  }
214
214
 
215
- console.log("\n🔄 Syncing to Praxis Cloud...");
215
+ console.log('\n🔄 Syncing to Praxis Cloud...');
216
216
 
217
217
  try {
218
218
  const client = await connectRelay(config.endpoint, config);
219
219
 
220
220
  // In production, collect actual facts and events to sync
221
221
  await client.sync({
222
- type: "delta",
222
+ type: 'delta',
223
223
  appId: config.appId,
224
224
  clock: {},
225
225
  facts: [],
@@ -227,11 +227,11 @@ export async function cloudSync(): Promise<void> {
227
227
  timestamp: Date.now(),
228
228
  });
229
229
 
230
- console.log("✓ Sync completed successfully\n");
230
+ console.log('✓ Sync completed successfully\n');
231
231
 
232
232
  await client.disconnect();
233
233
  } catch (error) {
234
- console.error("\n✗ Sync failed");
234
+ console.error('\n✗ Sync failed');
235
235
  console.error(` Error: ${error instanceof Error ? error.message : String(error)}\n`);
236
236
  process.exit(1);
237
237
  }
@@ -244,14 +244,14 @@ export async function cloudUsage(): Promise<void> {
244
244
  const config = loadConfig();
245
245
 
246
246
  if (!config) {
247
- console.log("\n✗ No cloud configuration found");
247
+ console.log('\n✗ No cloud configuration found');
248
248
  console.log(" Run 'praxis cloud init' to set up cloud connection\n");
249
249
  process.exit(1);
250
250
  }
251
251
 
252
- console.log("\n╔═══════════════════════════════════════════════════╗");
253
- console.log("║ Praxis Cloud Usage Metrics ║");
254
- console.log("╚═══════════════════════════════════════════════════╝\n");
252
+ console.log('\n╔═══════════════════════════════════════════════════╗');
253
+ console.log('║ Praxis Cloud Usage Metrics ║');
254
+ console.log('╚═══════════════════════════════════════════════════╝\n');
255
255
 
256
256
  try {
257
257
  const client = await connectRelay(config.endpoint, config);
@@ -274,7 +274,7 @@ export async function cloudUsage(): Promise<void> {
274
274
 
275
275
  await client.disconnect();
276
276
  } catch (error) {
277
- console.error("\n✗ Failed to retrieve usage metrics");
277
+ console.error('\n✗ Failed to retrieve usage metrics');
278
278
  console.error(` Error: ${error instanceof Error ? error.message : String(error)}\n`);
279
279
  process.exit(1);
280
280
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Praxis Create Command
3
- *
3
+ *
4
4
  * Creates new Praxis applications and components from templates.
5
5
  */
6
6
 
@@ -26,30 +26,30 @@ export interface CreateOptions {
26
26
  function generatePackageJson(name: string): string {
27
27
  const pkg = {
28
28
  name: name,
29
- version: "0.1.0",
29
+ version: '0.1.0',
30
30
  private: true,
31
- type: "module",
31
+ type: 'module',
32
32
  scripts: {
33
- dev: "vite",
34
- build: "tsc && vite build",
35
- preview: "vite preview",
36
- generate: "praxis generate",
37
- test: "vitest"
33
+ dev: 'vite',
34
+ build: 'tsc && vite build',
35
+ preview: 'vite preview',
36
+ generate: 'praxis generate',
37
+ test: 'vitest',
38
38
  },
39
39
  dependencies: {
40
- "@plures/praxis": "^0.2.1"
40
+ '@plures/praxis': '^0.2.1',
41
41
  },
42
42
  devDependencies: {
43
- "@sveltejs/vite-plugin-svelte": "^5.0.0",
44
- "@tsconfig/svelte": "^5.0.4",
45
- "svelte": "^5.0.0",
46
- "svelte-check": "^4.0.0",
47
- "typescript": "^5.6.0",
48
- "vite": "^6.0.0",
49
- "vitest": "^4.0.0"
50
- }
43
+ '@sveltejs/vite-plugin-svelte': '^5.0.0',
44
+ '@tsconfig/svelte': '^5.0.4',
45
+ svelte: '^5.0.0',
46
+ 'svelte-check': '^4.0.0',
47
+ typescript: '^5.6.0',
48
+ vite: '^6.0.0',
49
+ vitest: '^4.0.0',
50
+ },
51
51
  };
52
-
52
+
53
53
  return JSON.stringify(pkg, null, 2);
54
54
  }
55
55
 
@@ -58,22 +58,22 @@ function generatePackageJson(name: string): string {
58
58
  */
59
59
  function generateTsConfig(): string {
60
60
  const config = {
61
- extends: "@tsconfig/svelte/tsconfig.json",
61
+ extends: '@tsconfig/svelte/tsconfig.json',
62
62
  compilerOptions: {
63
- target: "ESNext",
64
- module: "ESNext",
65
- moduleResolution: "bundler",
63
+ target: 'ESNext',
64
+ module: 'ESNext',
65
+ moduleResolution: 'bundler',
66
66
  strict: true,
67
67
  esModuleInterop: true,
68
68
  skipLibCheck: true,
69
69
  resolveJsonModule: true,
70
70
  isolatedModules: true,
71
- noEmit: true
71
+ noEmit: true,
72
72
  },
73
- include: ["src/**/*"],
74
- exclude: ["node_modules"]
73
+ include: ['src/**/*'],
74
+ exclude: ['node_modules'],
75
75
  };
76
-
76
+
77
77
  return JSON.stringify(config, null, 2);
78
78
  }
79
79
 
@@ -441,18 +441,18 @@ coverage/
441
441
  async function createApp(name: string, options: CreateOptions): Promise<void> {
442
442
  const template = options.template || 'basic';
443
443
  const appDir = resolve(process.cwd(), name);
444
-
444
+
445
445
  // Check if directory already exists
446
446
  if (existsSync(appDir)) {
447
447
  console.error(`\n✗ Directory '${name}' already exists`);
448
448
  console.error(' Please choose a different name or remove the existing directory.\n');
449
449
  process.exit(1);
450
450
  }
451
-
451
+
452
452
  console.log(`\n📦 Creating Praxis application: ${name}`);
453
453
  console.log(` Template: ${template}`);
454
454
  console.log(` Location: ${appDir}\n`);
455
-
455
+
456
456
  // Create directory structure
457
457
  const dirs = [
458
458
  appDir,
@@ -461,14 +461,14 @@ async function createApp(name: string, options: CreateOptions): Promise<void> {
461
461
  join(appDir, 'src', 'components'),
462
462
  join(appDir, 'src', 'logic'),
463
463
  join(appDir, 'src', 'store'),
464
- join(appDir, 'public')
464
+ join(appDir, 'public'),
465
465
  ];
466
-
466
+
467
467
  for (const dir of dirs) {
468
468
  await mkdir(dir, { recursive: true });
469
469
  }
470
470
  console.log('✓ Created directory structure');
471
-
471
+
472
472
  // Write configuration files
473
473
  await writeFile(join(appDir, 'package.json'), generatePackageJson(name));
474
474
  await writeFile(join(appDir, 'tsconfig.json'), generateTsConfig());
@@ -477,21 +477,24 @@ async function createApp(name: string, options: CreateOptions): Promise<void> {
477
477
  await writeFile(join(appDir, '.gitignore'), generateGitignore());
478
478
  await writeFile(join(appDir, 'README.md'), generateReadme(name, template));
479
479
  console.log('✓ Created configuration files');
480
-
480
+
481
481
  // Write source files
482
482
  await writeFile(join(appDir, 'index.html'), generateIndexHtml(name));
483
483
  await writeFile(join(appDir, 'src', 'main.ts'), generateMainTs(name));
484
484
  await writeFile(join(appDir, 'src', 'App.svelte'), generateAppSvelte(name));
485
485
  await writeFile(join(appDir, 'src', 'schemas', 'app.schema.js'), generateAppSchema(name));
486
486
  console.log('✓ Created source files');
487
-
487
+
488
488
  // Create placeholder files for generated directories
489
- await writeFile(join(appDir, 'src', 'components', '.gitkeep'), '# Generated components will be placed here\n');
489
+ await writeFile(
490
+ join(appDir, 'src', 'components', '.gitkeep'),
491
+ '# Generated components will be placed here\n'
492
+ );
490
493
  await writeFile(join(appDir, 'src', 'logic', '.gitkeep'), '# Logic files will be placed here\n');
491
494
  await writeFile(join(appDir, 'src', 'store', '.gitkeep'), '# Store files will be placed here\n');
492
495
  await writeFile(join(appDir, 'public', '.gitkeep'), '# Static assets go here\n');
493
496
  console.log('✓ Created placeholder files');
494
-
497
+
495
498
  console.log(`
496
499
  ✅ Application created successfully!
497
500
 
@@ -598,29 +601,32 @@ function generateComponentSvelte(name: string): string {
598
601
  async function createComponent(name: string, options: CreateOptions): Promise<void> {
599
602
  const outputDir = options.directory || join(process.cwd(), 'src', 'components');
600
603
  const componentDir = join(outputDir, name);
601
-
604
+
602
605
  // Check if component directory already exists
603
606
  if (existsSync(componentDir)) {
604
607
  console.error(`\n✗ Component '${name}' already exists at ${componentDir}`);
605
608
  console.error(' Please choose a different name or remove the existing component.\n');
606
609
  process.exit(1);
607
610
  }
608
-
611
+
609
612
  console.log(`\n🧩 Creating component: ${name}`);
610
613
  console.log(` Location: ${componentDir}\n`);
611
-
614
+
612
615
  // Create component directory
613
616
  await mkdir(componentDir, { recursive: true });
614
-
617
+
615
618
  // Write component files
616
619
  await writeFile(join(componentDir, `${name}.svelte`), generateComponentSvelte(name));
617
620
  await writeFile(join(componentDir, `${name}.schema.js`), generateComponentSchema(name));
618
- await writeFile(join(componentDir, 'index.ts'), `export { default as ${name} } from './${name}.svelte';\n`);
619
-
621
+ await writeFile(
622
+ join(componentDir, 'index.ts'),
623
+ `export { default as ${name} } from './${name}.svelte';\n`
624
+ );
625
+
620
626
  console.log(`✓ Created ${name}.svelte`);
621
627
  console.log(`✓ Created ${name}.schema.js`);
622
628
  console.log(`✓ Created index.ts`);
623
-
629
+
624
630
  console.log(`
625
631
  ✅ Component created successfully!
626
632
 
@@ -637,20 +643,26 @@ Or use the schema for generation:
637
643
  /**
638
644
  * Execute the create command
639
645
  */
640
- export async function create(type: string, name: string | undefined, options: CreateOptions): Promise<void> {
646
+ export async function create(
647
+ type: string,
648
+ name: string | undefined,
649
+ options: CreateOptions
650
+ ): Promise<void> {
641
651
  if (!name) {
642
652
  console.error('\n✗ Please provide a name for the ' + type);
643
653
  console.error(` Usage: praxis create ${type} <name>\n`);
644
654
  process.exit(1);
645
655
  }
646
-
656
+
647
657
  // Validate name
648
658
  if (!/^[a-zA-Z][a-zA-Z0-9-_]*$/.test(name)) {
649
659
  console.error('\n✗ Invalid name format');
650
- console.error(' Name must start with a letter and contain only letters, numbers, hyphens, and underscores.\n');
660
+ console.error(
661
+ ' Name must start with a letter and contain only letters, numbers, hyphens, and underscores.\n'
662
+ );
651
663
  process.exit(1);
652
664
  }
653
-
665
+
654
666
  switch (type) {
655
667
  case 'app':
656
668
  await createApp(name, options);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Development Server Command
3
- *
3
+ *
4
4
  * Starts the Praxis development server with Vite.
5
5
  */
6
6
 
@@ -26,16 +26,16 @@ export interface DevOptions {
26
26
  export async function dev(options: DevOptions): Promise<void> {
27
27
  const port = options.port || '5173';
28
28
  const host = options.host || 'localhost';
29
-
29
+
30
30
  console.log('\n╔═══════════════════════════════════════════════════╗');
31
31
  console.log('║ Praxis Development Server ║');
32
32
  console.log('╚═══════════════════════════════════════════════════╝\n');
33
-
33
+
34
34
  // Check if we're in a Praxis project
35
35
  const packageJsonPath = path.join(process.cwd(), 'package.json');
36
36
  const viteConfigPath = path.join(process.cwd(), 'vite.config.ts');
37
37
  void viteConfigPath; // Silence unused variable warning
38
-
38
+
39
39
  if (!fs.existsSync(packageJsonPath)) {
40
40
  console.error('Error: No package.json found in current directory.');
41
41
  console.log('Make sure you are in a Praxis project directory.\n');
@@ -43,10 +43,10 @@ export async function dev(options: DevOptions): Promise<void> {
43
43
  console.log(' praxis create app my-app\n');
44
44
  process.exit(1);
45
45
  }
46
-
46
+
47
47
  // Read package.json to check for dev script
48
48
  const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
49
-
49
+
50
50
  if (!packageJson.scripts?.dev) {
51
51
  console.error('Error: No "dev" script found in package.json.');
52
52
  console.log('\nTo use the Praxis dev server, add a dev script to your package.json:');
@@ -55,15 +55,15 @@ export async function dev(options: DevOptions): Promise<void> {
55
55
  console.log(' }\n');
56
56
  process.exit(1);
57
57
  }
58
-
58
+
59
59
  console.log(`Starting development server on http://${host}:${port}\n`);
60
-
60
+
61
61
  // Spawn npm run dev with port configuration
62
62
  const args = ['run', 'dev', '--', '--port', port, '--host', host];
63
63
  if (options.open) {
64
64
  args.push('--open');
65
65
  }
66
-
66
+
67
67
  const child = spawn('npm', args, {
68
68
  stdio: 'inherit',
69
69
  shell: true,
@@ -73,19 +73,19 @@ export async function dev(options: DevOptions): Promise<void> {
73
73
  FORCE_COLOR: '1',
74
74
  },
75
75
  });
76
-
76
+
77
77
  child.on('error', (error) => {
78
78
  console.error('Failed to start development server:', error.message);
79
79
  process.exit(1);
80
80
  });
81
-
81
+
82
82
  child.on('exit', (code) => {
83
83
  if (code !== 0 && code !== null) {
84
84
  console.error(`Development server exited with code ${code}`);
85
85
  process.exit(code);
86
86
  }
87
87
  });
88
-
88
+
89
89
  // Handle Ctrl+C gracefully
90
90
  process.on('SIGINT', () => {
91
91
  console.log('\n\nStopping development server...');