@plures/praxis 0.2.1 → 1.0.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 (486) hide show
  1. package/README.md +188 -61
  2. package/core/codegen/docs-generator.ts +808 -0
  3. package/core/codegen/index.ts +27 -0
  4. package/core/codegen/ts-generator.ts +15 -0
  5. package/core/db-adapter/index.ts +52 -0
  6. package/core/db-adapter/sync-engine.ts +450 -0
  7. package/core/logic-engine/engine.ts +12 -0
  8. package/core/logic-engine/index.ts +16 -0
  9. package/core/logic-engine/protocol.ts +16 -0
  10. package/core/logic-engine/psf-adapter.ts +269 -0
  11. package/core/logic-engine/rules.ts +16 -0
  12. package/core/schema-engine/compiler.ts +431 -0
  13. package/core/schema-engine/generator.ts +635 -0
  14. package/core/schema-engine/index.ts +18 -0
  15. package/core/schema-engine/psf.ts +664 -0
  16. package/core/schema-engine/types.ts +63 -0
  17. package/core/schema-engine/validator.ts +541 -0
  18. package/dist/core/codegen/docs-generator.d.ts +123 -0
  19. package/dist/core/codegen/docs-generator.d.ts.map +1 -0
  20. package/dist/core/codegen/docs-generator.js +674 -0
  21. package/dist/core/codegen/docs-generator.js.map +1 -0
  22. package/dist/core/codegen/index.d.ts +11 -0
  23. package/dist/core/codegen/index.d.ts.map +1 -0
  24. package/dist/core/codegen/index.js +13 -0
  25. package/dist/core/codegen/index.js.map +1 -0
  26. package/dist/core/codegen/ts-generator.d.ts +8 -0
  27. package/dist/core/codegen/ts-generator.d.ts.map +1 -0
  28. package/dist/core/codegen/ts-generator.js +8 -0
  29. package/dist/core/codegen/ts-generator.js.map +1 -0
  30. package/dist/core/db-adapter/index.d.ts +18 -0
  31. package/dist/core/db-adapter/index.d.ts.map +1 -0
  32. package/dist/core/db-adapter/index.js +23 -0
  33. package/dist/core/db-adapter/index.js.map +1 -0
  34. package/dist/core/db-adapter/sync-engine.d.ts +180 -0
  35. package/dist/core/db-adapter/sync-engine.d.ts.map +1 -0
  36. package/dist/core/db-adapter/sync-engine.js +342 -0
  37. package/dist/core/db-adapter/sync-engine.js.map +1 -0
  38. package/dist/core/logic-engine/engine.d.ts +8 -0
  39. package/dist/core/logic-engine/engine.d.ts.map +1 -0
  40. package/dist/core/logic-engine/engine.js +8 -0
  41. package/dist/core/logic-engine/engine.js.map +1 -0
  42. package/dist/core/logic-engine/index.d.ts +16 -0
  43. package/dist/core/logic-engine/index.d.ts.map +1 -0
  44. package/dist/core/logic-engine/index.js +16 -0
  45. package/dist/core/logic-engine/index.js.map +1 -0
  46. package/dist/core/logic-engine/protocol.d.ts +7 -0
  47. package/dist/core/logic-engine/protocol.d.ts.map +1 -0
  48. package/dist/core/logic-engine/protocol.js +7 -0
  49. package/dist/core/logic-engine/protocol.js.map +1 -0
  50. package/dist/core/logic-engine/psf-adapter.d.ts +88 -0
  51. package/dist/core/logic-engine/psf-adapter.d.ts.map +1 -0
  52. package/dist/core/logic-engine/psf-adapter.js +207 -0
  53. package/dist/core/logic-engine/psf-adapter.js.map +1 -0
  54. package/dist/core/logic-engine/rules.d.ts +7 -0
  55. package/dist/core/logic-engine/rules.d.ts.map +1 -0
  56. package/dist/core/logic-engine/rules.js +7 -0
  57. package/dist/core/logic-engine/rules.js.map +1 -0
  58. package/dist/core/schema-engine/compiler.d.ts +198 -0
  59. package/dist/core/schema-engine/compiler.d.ts.map +1 -0
  60. package/dist/core/schema-engine/compiler.js +262 -0
  61. package/dist/core/schema-engine/compiler.js.map +1 -0
  62. package/dist/core/schema-engine/generator.d.ts +115 -0
  63. package/dist/core/schema-engine/generator.d.ts.map +1 -0
  64. package/dist/core/schema-engine/generator.js +506 -0
  65. package/dist/core/schema-engine/generator.js.map +1 -0
  66. package/dist/core/schema-engine/index.d.ts +18 -0
  67. package/dist/core/schema-engine/index.d.ts.map +1 -0
  68. package/dist/core/schema-engine/index.js +18 -0
  69. package/dist/core/schema-engine/index.js.map +1 -0
  70. package/dist/core/schema-engine/psf.d.ts +612 -0
  71. package/dist/core/schema-engine/psf.d.ts.map +1 -0
  72. package/dist/core/schema-engine/psf.js +45 -0
  73. package/dist/core/schema-engine/psf.js.map +1 -0
  74. package/dist/core/schema-engine/types.d.ts +10 -0
  75. package/dist/core/schema-engine/types.d.ts.map +1 -0
  76. package/dist/core/schema-engine/types.js +7 -0
  77. package/dist/core/schema-engine/types.js.map +1 -0
  78. package/dist/core/schema-engine/validator.d.ts +140 -0
  79. package/dist/core/schema-engine/validator.d.ts.map +1 -0
  80. package/dist/core/schema-engine/validator.js +407 -0
  81. package/dist/core/schema-engine/validator.js.map +1 -0
  82. package/dist/src/adapters/cli.d.ts.map +1 -0
  83. package/dist/src/adapters/cli.js.map +1 -0
  84. package/dist/src/cli/commands/auth.d.ts.map +1 -0
  85. package/dist/src/cli/commands/auth.js.map +1 -0
  86. package/dist/src/cli/commands/build.d.ts +23 -0
  87. package/dist/src/cli/commands/build.d.ts.map +1 -0
  88. package/dist/src/cli/commands/build.js +162 -0
  89. package/dist/src/cli/commands/build.js.map +1 -0
  90. package/dist/src/cli/commands/canvas.d.ts +23 -0
  91. package/dist/src/cli/commands/canvas.d.ts.map +1 -0
  92. package/dist/src/cli/commands/canvas.js +215 -0
  93. package/dist/src/cli/commands/canvas.js.map +1 -0
  94. package/dist/src/cli/commands/cloud.d.ts.map +1 -0
  95. package/dist/src/cli/commands/cloud.js.map +1 -0
  96. package/dist/src/cli/commands/create.d.ts +21 -0
  97. package/dist/src/cli/commands/create.d.ts.map +1 -0
  98. package/dist/src/cli/commands/create.js +621 -0
  99. package/dist/src/cli/commands/create.js.map +1 -0
  100. package/dist/src/cli/commands/dev.d.ts +21 -0
  101. package/dist/src/cli/commands/dev.d.ts.map +1 -0
  102. package/dist/src/cli/commands/dev.js +71 -0
  103. package/dist/src/cli/commands/dev.js.map +1 -0
  104. package/dist/src/cli/commands/generate.d.ts.map +1 -0
  105. package/dist/src/cli/commands/generate.js.map +1 -0
  106. package/dist/src/cli/commands/orchestrate.d.ts +44 -0
  107. package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
  108. package/dist/src/cli/commands/orchestrate.js +150 -0
  109. package/dist/src/cli/commands/orchestrate.js.map +1 -0
  110. package/dist/{cli → src/cli}/index.d.ts.map +1 -1
  111. package/dist/{cli → src/cli}/index.js +53 -21
  112. package/dist/src/cli/index.js.map +1 -0
  113. package/dist/src/cloud/auth.d.ts.map +1 -0
  114. package/dist/src/cloud/auth.js.map +1 -0
  115. package/dist/src/cloud/billing.d.ts.map +1 -0
  116. package/dist/src/cloud/billing.js.map +1 -0
  117. package/dist/src/cloud/client.d.ts.map +1 -0
  118. package/dist/src/cloud/client.js.map +1 -0
  119. package/dist/src/cloud/index.d.ts.map +1 -0
  120. package/dist/src/cloud/index.js.map +1 -0
  121. package/dist/src/cloud/marketplace.d.ts.map +1 -0
  122. package/dist/src/cloud/marketplace.js.map +1 -0
  123. package/dist/src/cloud/provisioning.d.ts.map +1 -0
  124. package/dist/src/cloud/provisioning.js.map +1 -0
  125. package/dist/src/cloud/relay/endpoints.d.ts.map +1 -0
  126. package/dist/src/cloud/relay/endpoints.js.map +1 -0
  127. package/dist/src/cloud/relay/health/index.d.ts.map +1 -0
  128. package/dist/src/cloud/relay/health/index.js.map +1 -0
  129. package/dist/src/cloud/relay/stats/index.d.ts.map +1 -0
  130. package/dist/src/cloud/relay/stats/index.js.map +1 -0
  131. package/dist/src/cloud/relay/sync/index.d.ts.map +1 -0
  132. package/dist/src/cloud/relay/sync/index.js.map +1 -0
  133. package/dist/src/cloud/relay/usage/index.d.ts.map +1 -0
  134. package/dist/src/cloud/relay/usage/index.js.map +1 -0
  135. package/dist/src/cloud/sponsors.d.ts.map +1 -0
  136. package/dist/src/cloud/sponsors.js.map +1 -0
  137. package/dist/src/cloud/types.d.ts.map +1 -0
  138. package/dist/src/cloud/types.js.map +1 -0
  139. package/dist/src/components/index.d.ts.map +1 -0
  140. package/dist/src/components/index.js.map +1 -0
  141. package/dist/src/core/actors.d.ts.map +1 -0
  142. package/dist/src/core/actors.js.map +1 -0
  143. package/dist/src/core/component/generator.d.ts.map +1 -0
  144. package/dist/{core → src/core}/component/generator.js +45 -3
  145. package/dist/src/core/component/generator.js.map +1 -0
  146. package/dist/src/core/engine.d.ts.map +1 -0
  147. package/dist/src/core/engine.js.map +1 -0
  148. package/dist/src/core/introspection.d.ts.map +1 -0
  149. package/dist/src/core/introspection.js.map +1 -0
  150. package/dist/src/core/logic/generator.d.ts.map +1 -0
  151. package/dist/{core → src/core}/logic/generator.js +35 -4
  152. package/dist/src/core/logic/generator.js.map +1 -0
  153. package/dist/src/core/pluresdb/adapter.d.ts +72 -0
  154. package/dist/src/core/pluresdb/adapter.d.ts.map +1 -0
  155. package/dist/src/core/pluresdb/adapter.js +73 -0
  156. package/dist/src/core/pluresdb/adapter.js.map +1 -0
  157. package/dist/src/core/pluresdb/generator.d.ts.map +1 -0
  158. package/dist/{core → src/core}/pluresdb/generator.js +33 -4
  159. package/dist/src/core/pluresdb/generator.js.map +1 -0
  160. package/dist/src/core/pluresdb/index.d.ts +15 -0
  161. package/dist/src/core/pluresdb/index.d.ts.map +1 -0
  162. package/dist/src/core/pluresdb/index.js +11 -0
  163. package/dist/src/core/pluresdb/index.js.map +1 -0
  164. package/dist/src/core/pluresdb/schema-registry.d.ts +104 -0
  165. package/dist/src/core/pluresdb/schema-registry.d.ts.map +1 -0
  166. package/dist/src/core/pluresdb/schema-registry.js +130 -0
  167. package/dist/src/core/pluresdb/schema-registry.js.map +1 -0
  168. package/dist/src/core/pluresdb/store.d.ts +199 -0
  169. package/dist/src/core/pluresdb/store.d.ts.map +1 -0
  170. package/dist/src/core/pluresdb/store.js +344 -0
  171. package/dist/src/core/pluresdb/store.js.map +1 -0
  172. package/dist/src/core/protocol.d.ts.map +1 -0
  173. package/dist/src/core/protocol.js.map +1 -0
  174. package/dist/src/core/rules.d.ts.map +1 -0
  175. package/dist/src/core/rules.js.map +1 -0
  176. package/dist/src/core/schema/loader.d.ts.map +1 -0
  177. package/dist/src/core/schema/loader.js.map +1 -0
  178. package/dist/src/core/schema/normalize.d.ts.map +1 -0
  179. package/dist/src/core/schema/normalize.js.map +1 -0
  180. package/dist/src/core/schema/types.d.ts.map +1 -0
  181. package/dist/src/core/schema/types.js.map +1 -0
  182. package/dist/src/dsl/index.d.ts.map +1 -0
  183. package/dist/src/dsl/index.js.map +1 -0
  184. package/dist/src/dsl.d.ts.map +1 -0
  185. package/dist/src/dsl.js.map +1 -0
  186. package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
  187. package/dist/src/examples/advanced-todo/index.js.map +1 -0
  188. package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
  189. package/dist/src/examples/auth-basic/index.js.map +1 -0
  190. package/dist/src/examples/cart/index.d.ts.map +1 -0
  191. package/dist/src/examples/cart/index.js.map +1 -0
  192. package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
  193. package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
  194. package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
  195. package/dist/src/examples/svelte-counter/index.js.map +1 -0
  196. package/dist/src/flows.d.ts.map +1 -0
  197. package/dist/src/flows.js.map +1 -0
  198. package/dist/{index.d.ts → src/index.d.ts} +12 -2
  199. package/dist/src/index.d.ts.map +1 -0
  200. package/dist/{index.js → src/index.js} +6 -1
  201. package/dist/src/index.js.map +1 -0
  202. package/dist/src/integrations/code-canvas.d.ts +265 -0
  203. package/dist/src/integrations/code-canvas.d.ts.map +1 -0
  204. package/dist/src/integrations/code-canvas.js +451 -0
  205. package/dist/src/integrations/code-canvas.js.map +1 -0
  206. package/dist/src/integrations/pluresdb.d.ts +117 -0
  207. package/dist/src/integrations/pluresdb.d.ts.map +1 -0
  208. package/dist/src/integrations/pluresdb.js +117 -0
  209. package/dist/src/integrations/pluresdb.js.map +1 -0
  210. package/dist/src/integrations/state-docs.d.ts +191 -0
  211. package/dist/src/integrations/state-docs.d.ts.map +1 -0
  212. package/dist/src/integrations/state-docs.js +515 -0
  213. package/dist/src/integrations/state-docs.js.map +1 -0
  214. package/dist/src/integrations/svelte.d.ts.map +1 -0
  215. package/dist/src/integrations/svelte.js.map +1 -0
  216. package/dist/src/integrations/tauri.d.ts +360 -0
  217. package/dist/src/integrations/tauri.d.ts.map +1 -0
  218. package/dist/src/integrations/tauri.js +278 -0
  219. package/dist/src/integrations/tauri.js.map +1 -0
  220. package/dist/src/integrations/unum.d.ts +159 -0
  221. package/dist/src/integrations/unum.d.ts.map +1 -0
  222. package/dist/src/integrations/unum.js +240 -0
  223. package/dist/src/integrations/unum.js.map +1 -0
  224. package/dist/src/registry.d.ts.map +1 -0
  225. package/dist/src/registry.js.map +1 -0
  226. package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
  227. package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
  228. package/dist/src/runtime/terminal-adapter.js +237 -0
  229. package/dist/src/runtime/terminal-adapter.js.map +1 -0
  230. package/dist/src/step.d.ts.map +1 -0
  231. package/dist/src/step.js.map +1 -0
  232. package/dist/src/types.d.ts.map +1 -0
  233. package/dist/{cloud → src}/types.js.map +1 -1
  234. package/dist/tools/cli/commands/index.d.ts +7 -0
  235. package/dist/tools/cli/commands/index.d.ts.map +1 -0
  236. package/dist/tools/cli/commands/index.js +7 -0
  237. package/dist/tools/cli/commands/index.js.map +1 -0
  238. package/dist/tools/cli/index.d.ts +8 -0
  239. package/dist/tools/cli/index.d.ts.map +1 -0
  240. package/dist/tools/cli/index.js +9 -0
  241. package/dist/tools/cli/index.js.map +1 -0
  242. package/dist/tools/watcher/index.d.ts +105 -0
  243. package/dist/tools/watcher/index.d.ts.map +1 -0
  244. package/dist/tools/watcher/index.js +213 -0
  245. package/dist/tools/watcher/index.js.map +1 -0
  246. package/dist/ui/canvas/canvas-projection.d.ts +78 -0
  247. package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
  248. package/dist/ui/canvas/canvas-projection.js +416 -0
  249. package/dist/ui/canvas/canvas-projection.js.map +1 -0
  250. package/dist/ui/canvas/canvas-state.d.ts +200 -0
  251. package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
  252. package/dist/ui/canvas/canvas-state.js +464 -0
  253. package/dist/ui/canvas/canvas-state.js.map +1 -0
  254. package/dist/ui/canvas/components/index.d.ts +95 -0
  255. package/dist/ui/canvas/components/index.d.ts.map +1 -0
  256. package/dist/ui/canvas/components/index.js +19 -0
  257. package/dist/ui/canvas/components/index.js.map +1 -0
  258. package/dist/ui/canvas/index.d.ts +32 -0
  259. package/dist/ui/canvas/index.d.ts.map +1 -0
  260. package/dist/ui/canvas/index.js +32 -0
  261. package/dist/ui/canvas/index.js.map +1 -0
  262. package/dist/ui/svelte-generator/index.d.ts +9 -0
  263. package/dist/ui/svelte-generator/index.d.ts.map +1 -0
  264. package/dist/ui/svelte-generator/index.js +11 -0
  265. package/dist/ui/svelte-generator/index.js.map +1 -0
  266. package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
  267. package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
  268. package/dist/ui/svelte-generator/psf-generator.js +506 -0
  269. package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
  270. package/docs/README.md +155 -0
  271. package/docs/core/building-extensions.md +553 -0
  272. package/docs/core/cli-usage.md +498 -0
  273. package/docs/core/code-canvas-sync.md +468 -0
  274. package/docs/core/logic-engine.md +566 -0
  275. package/docs/core/pluresdb-integration.md +646 -0
  276. package/docs/core/schema-model.md +414 -0
  277. package/docs/core/ui-generation.md +580 -0
  278. package/docs/core/what-is-praxis.md +240 -0
  279. package/docs/tutorials/README.md +84 -0
  280. package/docs/tutorials/ecommerce-cart.md +631 -0
  281. package/docs/tutorials/first-app.md +529 -0
  282. package/docs/tutorials/form-builder.md +620 -0
  283. package/docs/tutorials/todo-pluresdb.md +589 -0
  284. package/package.json +1 -1
  285. package/src/__tests__/canvas-components.test.ts +450 -0
  286. package/src/__tests__/cli-create.test.ts +178 -0
  287. package/src/__tests__/code-canvas-integration.test.ts +277 -0
  288. package/src/__tests__/docs-generator.test.ts +181 -0
  289. package/src/__tests__/generators.test.ts +3 -2
  290. package/src/__tests__/pluresdb.test.ts +457 -0
  291. package/src/__tests__/psf-schema-engine.test.ts +450 -0
  292. package/src/__tests__/state-docs-integration.test.ts +297 -0
  293. package/src/__tests__/tauri-integration.test.ts +298 -0
  294. package/src/__tests__/terminal-node.test.ts +1 -1
  295. package/src/__tests__/unum-integration.test.ts +142 -0
  296. package/src/cli/commands/build.ts +203 -0
  297. package/src/cli/commands/canvas.ts +246 -0
  298. package/src/cli/commands/create.ts +666 -0
  299. package/src/cli/commands/dev.ts +95 -0
  300. package/src/cli/commands/orchestrate.ts +212 -0
  301. package/src/cli/index.ts +48 -21
  302. package/src/core/component/generator.ts +45 -3
  303. package/src/core/logic/generator.ts +39 -4
  304. package/src/core/pluresdb/adapter.ts +117 -0
  305. package/src/core/pluresdb/generator.ts +33 -4
  306. package/src/core/pluresdb/index.ts +37 -0
  307. package/src/core/pluresdb/schema-registry.ts +162 -0
  308. package/src/core/pluresdb/store.ts +443 -0
  309. package/src/index.ts +109 -0
  310. package/src/integrations/code-canvas.ts +717 -0
  311. package/src/integrations/pluresdb.ts +140 -29
  312. package/src/integrations/state-docs.ts +710 -0
  313. package/src/integrations/tauri.ts +638 -0
  314. package/src/integrations/unum.ts +395 -0
  315. package/src/runtime/terminal-adapter.ts +178 -23
  316. package/dist/adapters/cli.d.ts.map +0 -1
  317. package/dist/adapters/cli.js.map +0 -1
  318. package/dist/cli/commands/auth.d.ts.map +0 -1
  319. package/dist/cli/commands/auth.js.map +0 -1
  320. package/dist/cli/commands/cloud.d.ts.map +0 -1
  321. package/dist/cli/commands/cloud.js.map +0 -1
  322. package/dist/cli/commands/generate.d.ts.map +0 -1
  323. package/dist/cli/commands/generate.js.map +0 -1
  324. package/dist/cli/index.js.map +0 -1
  325. package/dist/cloud/auth.d.ts.map +0 -1
  326. package/dist/cloud/auth.js.map +0 -1
  327. package/dist/cloud/billing.d.ts.map +0 -1
  328. package/dist/cloud/billing.js.map +0 -1
  329. package/dist/cloud/client.d.ts.map +0 -1
  330. package/dist/cloud/client.js.map +0 -1
  331. package/dist/cloud/index.d.ts.map +0 -1
  332. package/dist/cloud/index.js.map +0 -1
  333. package/dist/cloud/marketplace.d.ts.map +0 -1
  334. package/dist/cloud/marketplace.js.map +0 -1
  335. package/dist/cloud/provisioning.d.ts.map +0 -1
  336. package/dist/cloud/provisioning.js.map +0 -1
  337. package/dist/cloud/relay/endpoints.d.ts.map +0 -1
  338. package/dist/cloud/relay/endpoints.js.map +0 -1
  339. package/dist/cloud/relay/health/index.d.ts.map +0 -1
  340. package/dist/cloud/relay/health/index.js.map +0 -1
  341. package/dist/cloud/relay/stats/index.d.ts.map +0 -1
  342. package/dist/cloud/relay/stats/index.js.map +0 -1
  343. package/dist/cloud/relay/sync/index.d.ts.map +0 -1
  344. package/dist/cloud/relay/sync/index.js.map +0 -1
  345. package/dist/cloud/relay/usage/index.d.ts.map +0 -1
  346. package/dist/cloud/relay/usage/index.js.map +0 -1
  347. package/dist/cloud/sponsors.d.ts.map +0 -1
  348. package/dist/cloud/sponsors.js.map +0 -1
  349. package/dist/cloud/types.d.ts.map +0 -1
  350. package/dist/components/index.d.ts.map +0 -1
  351. package/dist/components/index.js.map +0 -1
  352. package/dist/core/actors.d.ts.map +0 -1
  353. package/dist/core/actors.js.map +0 -1
  354. package/dist/core/component/generator.d.ts.map +0 -1
  355. package/dist/core/component/generator.js.map +0 -1
  356. package/dist/core/engine.d.ts.map +0 -1
  357. package/dist/core/engine.js.map +0 -1
  358. package/dist/core/introspection.d.ts.map +0 -1
  359. package/dist/core/introspection.js.map +0 -1
  360. package/dist/core/logic/generator.d.ts.map +0 -1
  361. package/dist/core/logic/generator.js.map +0 -1
  362. package/dist/core/pluresdb/generator.d.ts.map +0 -1
  363. package/dist/core/pluresdb/generator.js.map +0 -1
  364. package/dist/core/protocol.d.ts.map +0 -1
  365. package/dist/core/protocol.js.map +0 -1
  366. package/dist/core/rules.d.ts.map +0 -1
  367. package/dist/core/rules.js.map +0 -1
  368. package/dist/core/schema/loader.d.ts.map +0 -1
  369. package/dist/core/schema/loader.js.map +0 -1
  370. package/dist/core/schema/normalize.d.ts.map +0 -1
  371. package/dist/core/schema/normalize.js.map +0 -1
  372. package/dist/core/schema/types.d.ts.map +0 -1
  373. package/dist/core/schema/types.js.map +0 -1
  374. package/dist/dsl/index.d.ts.map +0 -1
  375. package/dist/dsl/index.js.map +0 -1
  376. package/dist/dsl.d.ts.map +0 -1
  377. package/dist/dsl.js.map +0 -1
  378. package/dist/examples/advanced-todo/index.d.ts.map +0 -1
  379. package/dist/examples/advanced-todo/index.js.map +0 -1
  380. package/dist/examples/auth-basic/index.d.ts.map +0 -1
  381. package/dist/examples/auth-basic/index.js.map +0 -1
  382. package/dist/examples/cart/index.d.ts.map +0 -1
  383. package/dist/examples/cart/index.js.map +0 -1
  384. package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
  385. package/dist/examples/hero-ecommerce/index.js.map +0 -1
  386. package/dist/examples/svelte-counter/index.d.ts.map +0 -1
  387. package/dist/examples/svelte-counter/index.js.map +0 -1
  388. package/dist/flows.d.ts.map +0 -1
  389. package/dist/flows.js.map +0 -1
  390. package/dist/index.d.ts.map +0 -1
  391. package/dist/index.js.map +0 -1
  392. package/dist/integrations/pluresdb.d.ts +0 -56
  393. package/dist/integrations/pluresdb.d.ts.map +0 -1
  394. package/dist/integrations/pluresdb.js +0 -46
  395. package/dist/integrations/pluresdb.js.map +0 -1
  396. package/dist/integrations/svelte.d.ts.map +0 -1
  397. package/dist/integrations/svelte.js.map +0 -1
  398. package/dist/registry.d.ts.map +0 -1
  399. package/dist/registry.js.map +0 -1
  400. package/dist/runtime/terminal-adapter.d.ts.map +0 -1
  401. package/dist/runtime/terminal-adapter.js +0 -113
  402. package/dist/runtime/terminal-adapter.js.map +0 -1
  403. package/dist/step.d.ts.map +0 -1
  404. package/dist/step.js.map +0 -1
  405. package/dist/types.d.ts.map +0 -1
  406. package/dist/types.js.map +0 -1
  407. /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
  408. /package/dist/{adapters → src/adapters}/cli.js +0 -0
  409. /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
  410. /package/dist/{cli → src/cli}/commands/auth.js +0 -0
  411. /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
  412. /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
  413. /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
  414. /package/dist/{cli → src/cli}/commands/generate.js +0 -0
  415. /package/dist/{cli → src/cli}/index.d.ts +0 -0
  416. /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
  417. /package/dist/{cloud → src/cloud}/auth.js +0 -0
  418. /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
  419. /package/dist/{cloud → src/cloud}/billing.js +0 -0
  420. /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
  421. /package/dist/{cloud → src/cloud}/client.js +0 -0
  422. /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
  423. /package/dist/{cloud → src/cloud}/index.js +0 -0
  424. /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
  425. /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
  426. /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
  427. /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
  428. /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
  429. /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
  430. /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
  431. /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
  432. /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
  433. /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
  434. /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
  435. /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
  436. /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
  437. /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
  438. /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
  439. /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
  440. /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
  441. /package/dist/{cloud → src/cloud}/types.js +0 -0
  442. /package/dist/{components → src/components}/index.d.ts +0 -0
  443. /package/dist/{components → src/components}/index.js +0 -0
  444. /package/dist/{core → src/core}/actors.d.ts +0 -0
  445. /package/dist/{core → src/core}/actors.js +0 -0
  446. /package/dist/{core → src/core}/component/generator.d.ts +0 -0
  447. /package/dist/{core → src/core}/engine.d.ts +0 -0
  448. /package/dist/{core → src/core}/engine.js +0 -0
  449. /package/dist/{core → src/core}/introspection.d.ts +0 -0
  450. /package/dist/{core → src/core}/introspection.js +0 -0
  451. /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
  452. /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
  453. /package/dist/{core → src/core}/protocol.d.ts +0 -0
  454. /package/dist/{core → src/core}/protocol.js +0 -0
  455. /package/dist/{core → src/core}/rules.d.ts +0 -0
  456. /package/dist/{core → src/core}/rules.js +0 -0
  457. /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
  458. /package/dist/{core → src/core}/schema/loader.js +0 -0
  459. /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
  460. /package/dist/{core → src/core}/schema/normalize.js +0 -0
  461. /package/dist/{core → src/core}/schema/types.d.ts +0 -0
  462. /package/dist/{core → src/core}/schema/types.js +0 -0
  463. /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
  464. /package/dist/{dsl → src/dsl}/index.js +0 -0
  465. /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
  466. /package/dist/{dsl.js → src/dsl.js} +0 -0
  467. /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
  468. /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
  469. /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
  470. /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
  471. /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
  472. /package/dist/{examples → src/examples}/cart/index.js +0 -0
  473. /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
  474. /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
  475. /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
  476. /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
  477. /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
  478. /package/dist/{flows.js → src/flows.js} +0 -0
  479. /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
  480. /package/dist/{integrations → src/integrations}/svelte.js +0 -0
  481. /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
  482. /package/dist/{registry.js → src/registry.js} +0 -0
  483. /package/dist/{step.d.ts → src/step.d.ts} +0 -0
  484. /package/dist/{step.js → src/step.js} +0 -0
  485. /package/dist/{types.d.ts → src/types.d.ts} +0 -0
  486. /package/dist/{types.js → src/types.js} +0 -0
@@ -0,0 +1,621 @@
1
+ /**
2
+ * Praxis Create Command
3
+ *
4
+ * Creates new Praxis applications and components from templates.
5
+ */
6
+ import { mkdir, writeFile } from 'fs/promises';
7
+ import { join, resolve } from 'path';
8
+ import { existsSync } from 'fs';
9
+ /**
10
+ * Generate package.json content for a new app
11
+ */
12
+ function generatePackageJson(name) {
13
+ const pkg = {
14
+ name: name,
15
+ version: "0.1.0",
16
+ private: true,
17
+ type: "module",
18
+ scripts: {
19
+ dev: "vite",
20
+ build: "tsc && vite build",
21
+ preview: "vite preview",
22
+ generate: "praxis generate",
23
+ test: "vitest"
24
+ },
25
+ dependencies: {
26
+ "@plures/praxis": "^0.2.1"
27
+ },
28
+ devDependencies: {
29
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
30
+ "@tsconfig/svelte": "^5.0.4",
31
+ "svelte": "^5.0.0",
32
+ "svelte-check": "^4.0.0",
33
+ "typescript": "^5.6.0",
34
+ "vite": "^6.0.0",
35
+ "vitest": "^4.0.0"
36
+ }
37
+ };
38
+ return JSON.stringify(pkg, null, 2);
39
+ }
40
+ /**
41
+ * Generate tsconfig.json content
42
+ */
43
+ function generateTsConfig() {
44
+ const config = {
45
+ extends: "@tsconfig/svelte/tsconfig.json",
46
+ compilerOptions: {
47
+ target: "ESNext",
48
+ module: "ESNext",
49
+ moduleResolution: "bundler",
50
+ strict: true,
51
+ esModuleInterop: true,
52
+ skipLibCheck: true,
53
+ resolveJsonModule: true,
54
+ isolatedModules: true,
55
+ noEmit: true
56
+ },
57
+ include: ["src/**/*"],
58
+ exclude: ["node_modules"]
59
+ };
60
+ return JSON.stringify(config, null, 2);
61
+ }
62
+ /**
63
+ * Generate vite.config.ts content
64
+ */
65
+ function generateViteConfig() {
66
+ return `import { defineConfig } from 'vite';
67
+ import { svelte } from '@sveltejs/vite-plugin-svelte';
68
+
69
+ export default defineConfig({
70
+ plugins: [svelte()],
71
+ resolve: {
72
+ alias: {
73
+ '@': '/src'
74
+ }
75
+ }
76
+ });
77
+ `;
78
+ }
79
+ /**
80
+ * Generate main.ts entry point
81
+ */
82
+ function generateMainTs(name) {
83
+ return `/**
84
+ * ${name} - Built with Praxis
85
+ */
86
+ import App from './App.svelte';
87
+ import { mount } from 'svelte';
88
+
89
+ const app = mount(App, {
90
+ target: document.getElementById('app')!
91
+ });
92
+
93
+ export default app;
94
+ `;
95
+ }
96
+ /**
97
+ * Generate App.svelte component
98
+ */
99
+ function generateAppSvelte(name) {
100
+ return `<script lang="ts">
101
+ import { createPraxisEngine, PraxisRegistry, defineFact, defineEvent, defineRule } from '@plures/praxis';
102
+
103
+ // Define your context type
104
+ interface AppContext {
105
+ initialized: boolean;
106
+ message: string;
107
+ }
108
+
109
+ // Create the registry and engine
110
+ const registry = new PraxisRegistry<AppContext>();
111
+
112
+ const engine = createPraxisEngine({
113
+ initialContext: {
114
+ initialized: true,
115
+ message: 'Welcome to ${name}!'
116
+ },
117
+ registry
118
+ });
119
+
120
+ // Reactive context
121
+ let context = $state(engine.getContext());
122
+ </script>
123
+
124
+ <main>
125
+ <h1>{context.message}</h1>
126
+ <p>Your Praxis application is running!</p>
127
+
128
+ <div class="card">
129
+ <h2>Next Steps</h2>
130
+ <ul>
131
+ <li>Define your schema in <code>src/schemas/app.schema.js</code></li>
132
+ <li>Run <code>praxis generate</code> to generate code</li>
133
+ <li>Build your application logic with facts, events, and rules</li>
134
+ </ul>
135
+ </div>
136
+ </main>
137
+
138
+ <style>
139
+ main {
140
+ max-width: 800px;
141
+ margin: 0 auto;
142
+ padding: 2rem;
143
+ font-family: system-ui, -apple-system, sans-serif;
144
+ }
145
+
146
+ h1 {
147
+ color: #333;
148
+ text-align: center;
149
+ }
150
+
151
+ .card {
152
+ background: #f5f5f5;
153
+ border-radius: 8px;
154
+ padding: 1.5rem;
155
+ margin-top: 2rem;
156
+ }
157
+
158
+ .card h2 {
159
+ margin-top: 0;
160
+ }
161
+
162
+ code {
163
+ background: #e0e0e0;
164
+ padding: 0.2rem 0.4rem;
165
+ border-radius: 4px;
166
+ font-size: 0.9em;
167
+ }
168
+
169
+ li {
170
+ margin: 0.5rem 0;
171
+ }
172
+ </style>
173
+ `;
174
+ }
175
+ /**
176
+ * Generate index.html
177
+ */
178
+ function generateIndexHtml(name) {
179
+ return `<!DOCTYPE html>
180
+ <html lang="en">
181
+ <head>
182
+ <meta charset="UTF-8" />
183
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
184
+ <title>${name}</title>
185
+ <style>
186
+ * {
187
+ margin: 0;
188
+ padding: 0;
189
+ box-sizing: border-box;
190
+ }
191
+ body {
192
+ min-height: 100vh;
193
+ background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
194
+ }
195
+ </style>
196
+ </head>
197
+ <body>
198
+ <div id="app"></div>
199
+ <script type="module" src="/src/main.ts"></script>
200
+ </body>
201
+ </html>
202
+ `;
203
+ }
204
+ /**
205
+ * Generate app schema file
206
+ */
207
+ function generateAppSchema(name) {
208
+ return `/**
209
+ * ${name} Schema
210
+ *
211
+ * Define your application schema here.
212
+ * Run 'praxis generate' to generate code from this schema.
213
+ */
214
+
215
+ export const schema = {
216
+ version: '1.0.0',
217
+ name: '${name}',
218
+ description: 'A Praxis application',
219
+
220
+ models: [
221
+ {
222
+ name: 'Item',
223
+ description: 'Example item model',
224
+ fields: [
225
+ { name: 'id', type: 'string' },
226
+ { name: 'name', type: 'string' },
227
+ { name: 'createdAt', type: 'date' }
228
+ ]
229
+ }
230
+ ],
231
+
232
+ components: [
233
+ {
234
+ name: 'ItemForm',
235
+ type: 'form',
236
+ description: 'Form for creating items',
237
+ model: 'Item'
238
+ },
239
+ {
240
+ name: 'ItemList',
241
+ type: 'list',
242
+ description: 'List of items',
243
+ model: 'Item'
244
+ }
245
+ ],
246
+
247
+ logic: [
248
+ {
249
+ id: 'item-logic',
250
+ description: 'Item management logic',
251
+
252
+ events: [
253
+ {
254
+ tag: 'CREATE_ITEM',
255
+ payload: { name: 'string' },
256
+ description: 'Create a new item'
257
+ },
258
+ {
259
+ tag: 'DELETE_ITEM',
260
+ payload: { itemId: 'string' },
261
+ description: 'Delete an item'
262
+ }
263
+ ],
264
+
265
+ facts: [
266
+ {
267
+ tag: 'ItemCreated',
268
+ payload: { itemId: 'string', name: 'string' },
269
+ description: 'An item was created'
270
+ },
271
+ {
272
+ tag: 'ItemDeleted',
273
+ payload: { itemId: 'string' },
274
+ description: 'An item was deleted'
275
+ }
276
+ ],
277
+
278
+ rules: [
279
+ {
280
+ id: 'item.create',
281
+ description: 'Create a new item',
282
+ priority: 10
283
+ }
284
+ ],
285
+
286
+ constraints: [
287
+ {
288
+ id: 'item.name-required',
289
+ description: 'Item name must not be empty',
290
+ message: 'Item name is required'
291
+ }
292
+ ]
293
+ }
294
+ ]
295
+ };
296
+
297
+ export default schema;
298
+ `;
299
+ }
300
+ /**
301
+ * Generate svelte.config.js
302
+ */
303
+ function generateSvelteConfig() {
304
+ return `import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
305
+
306
+ export default {
307
+ preprocess: vitePreprocess()
308
+ };
309
+ `;
310
+ }
311
+ /**
312
+ * Generate README for new app
313
+ */
314
+ function generateReadme(name, template) {
315
+ return `# ${name}
316
+
317
+ A Praxis application created with the ${template} template.
318
+
319
+ ## Getting Started
320
+
321
+ ### Install dependencies
322
+
323
+ \`\`\`bash
324
+ npm install
325
+ \`\`\`
326
+
327
+ ### Start development server
328
+
329
+ \`\`\`bash
330
+ npm run dev
331
+ \`\`\`
332
+
333
+ ### Generate code from schema
334
+
335
+ \`\`\`bash
336
+ npm run generate
337
+ \`\`\`
338
+
339
+ ### Build for production
340
+
341
+ \`\`\`bash
342
+ npm run build
343
+ \`\`\`
344
+
345
+ ## Project Structure
346
+
347
+ \`\`\`
348
+ ${name}/
349
+ ā”œā”€ā”€ src/
350
+ │ ā”œā”€ā”€ schemas/
351
+ │ │ └── app.schema.js # Application schema
352
+ │ ā”œā”€ā”€ components/ # Generated & custom components
353
+ │ ā”œā”€ā”€ logic/ # Logic engine setup
354
+ │ ā”œā”€ā”€ App.svelte # Root component
355
+ │ └── main.ts # Application entry
356
+ ā”œā”€ā”€ public/ # Static assets
357
+ ā”œā”€ā”€ package.json
358
+ ā”œā”€ā”€ tsconfig.json
359
+ ā”œā”€ā”€ vite.config.ts
360
+ └── README.md
361
+ \`\`\`
362
+
363
+ ## Documentation
364
+
365
+ - [Praxis Framework Guide](https://github.com/plures/praxis/blob/main/FRAMEWORK.md)
366
+ - [Getting Started](https://github.com/plures/praxis/blob/main/GETTING_STARTED.md)
367
+ - [Schema Reference](https://github.com/plures/praxis/blob/main/docs/guides/schema.md)
368
+
369
+ ## License
370
+
371
+ MIT
372
+ `;
373
+ }
374
+ /**
375
+ * Generate .gitignore
376
+ */
377
+ function generateGitignore() {
378
+ return `# Dependencies
379
+ node_modules/
380
+
381
+ # Build output
382
+ dist/
383
+ build/
384
+ .svelte-kit/
385
+
386
+ # Generated code
387
+ generated/
388
+
389
+ # Environment
390
+ .env
391
+ .env.local
392
+ .env.*.local
393
+
394
+ # IDE
395
+ .vscode/
396
+ .idea/
397
+ *.swp
398
+ *.swo
399
+
400
+ # OS
401
+ .DS_Store
402
+ Thumbs.db
403
+
404
+ # Logs
405
+ *.log
406
+ npm-debug.log*
407
+
408
+ # Test coverage
409
+ coverage/
410
+ `;
411
+ }
412
+ /**
413
+ * Create a new Praxis application
414
+ */
415
+ async function createApp(name, options) {
416
+ const template = options.template || 'basic';
417
+ const appDir = resolve(process.cwd(), name);
418
+ // Check if directory already exists
419
+ if (existsSync(appDir)) {
420
+ console.error(`\nāœ— Directory '${name}' already exists`);
421
+ console.error(' Please choose a different name or remove the existing directory.\n');
422
+ process.exit(1);
423
+ }
424
+ console.log(`\nšŸ“¦ Creating Praxis application: ${name}`);
425
+ console.log(` Template: ${template}`);
426
+ console.log(` Location: ${appDir}\n`);
427
+ // Create directory structure
428
+ const dirs = [
429
+ appDir,
430
+ join(appDir, 'src'),
431
+ join(appDir, 'src', 'schemas'),
432
+ join(appDir, 'src', 'components'),
433
+ join(appDir, 'src', 'logic'),
434
+ join(appDir, 'src', 'store'),
435
+ join(appDir, 'public')
436
+ ];
437
+ for (const dir of dirs) {
438
+ await mkdir(dir, { recursive: true });
439
+ }
440
+ console.log('āœ“ Created directory structure');
441
+ // Write configuration files
442
+ await writeFile(join(appDir, 'package.json'), generatePackageJson(name));
443
+ await writeFile(join(appDir, 'tsconfig.json'), generateTsConfig());
444
+ await writeFile(join(appDir, 'vite.config.ts'), generateViteConfig());
445
+ await writeFile(join(appDir, 'svelte.config.js'), generateSvelteConfig());
446
+ await writeFile(join(appDir, '.gitignore'), generateGitignore());
447
+ await writeFile(join(appDir, 'README.md'), generateReadme(name, template));
448
+ console.log('āœ“ Created configuration files');
449
+ // Write source files
450
+ await writeFile(join(appDir, 'index.html'), generateIndexHtml(name));
451
+ await writeFile(join(appDir, 'src', 'main.ts'), generateMainTs(name));
452
+ await writeFile(join(appDir, 'src', 'App.svelte'), generateAppSvelte(name));
453
+ await writeFile(join(appDir, 'src', 'schemas', 'app.schema.js'), generateAppSchema(name));
454
+ console.log('āœ“ Created source files');
455
+ // Create placeholder files for generated directories
456
+ await writeFile(join(appDir, 'src', 'components', '.gitkeep'), '# Generated components will be placed here\n');
457
+ await writeFile(join(appDir, 'src', 'logic', '.gitkeep'), '# Logic files will be placed here\n');
458
+ await writeFile(join(appDir, 'src', 'store', '.gitkeep'), '# Store files will be placed here\n');
459
+ await writeFile(join(appDir, 'public', '.gitkeep'), '# Static assets go here\n');
460
+ console.log('āœ“ Created placeholder files');
461
+ console.log(`
462
+ āœ… Application created successfully!
463
+
464
+ Next steps:
465
+
466
+ cd ${name}
467
+ npm install
468
+ npm run dev
469
+
470
+ Then open http://localhost:5173 in your browser.
471
+
472
+ To generate code from your schema:
473
+
474
+ npm run generate
475
+
476
+ For more information, see the README.md in your project.
477
+ `);
478
+ }
479
+ /**
480
+ * Generate component schema content
481
+ */
482
+ function generateComponentSchema(name) {
483
+ return `/**
484
+ * ${name} Component Schema
485
+ */
486
+
487
+ export const componentSchema = {
488
+ name: '${name}',
489
+ type: 'display',
490
+ description: 'A ${name} component',
491
+
492
+ props: [
493
+ { name: 'title', type: 'string', required: true },
494
+ { name: 'content', type: 'string', required: false }
495
+ ],
496
+
497
+ events: [
498
+ { name: 'click', description: 'Emitted when clicked' }
499
+ ]
500
+ };
501
+
502
+ export default componentSchema;
503
+ `;
504
+ }
505
+ /**
506
+ * Generate component Svelte content
507
+ */
508
+ function generateComponentSvelte(name) {
509
+ return `<script lang="ts">
510
+ /**
511
+ * ${name} Component
512
+ *
513
+ * Generated by Praxis.
514
+ */
515
+
516
+ interface Props {
517
+ title: string;
518
+ content?: string;
519
+ }
520
+
521
+ let { title, content = '' }: Props = $props();
522
+ </script>
523
+
524
+ <div class="${name.toLowerCase()}" role="button" tabindex="0">
525
+ <h3>{title}</h3>
526
+ {#if content}
527
+ <p>{content}</p>
528
+ {/if}
529
+ <slot />
530
+ </div>
531
+
532
+ <style>
533
+ .${name.toLowerCase()} {
534
+ padding: 1rem;
535
+ border: 1px solid #ddd;
536
+ border-radius: 8px;
537
+ margin: 0.5rem 0;
538
+ cursor: pointer;
539
+ transition: box-shadow 0.2s;
540
+ }
541
+
542
+ .${name.toLowerCase()}:hover {
543
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
544
+ }
545
+
546
+ h3 {
547
+ margin: 0 0 0.5rem 0;
548
+ color: #333;
549
+ }
550
+
551
+ p {
552
+ margin: 0;
553
+ color: #666;
554
+ }
555
+ </style>
556
+ `;
557
+ }
558
+ /**
559
+ * Create a new Praxis component
560
+ */
561
+ async function createComponent(name, options) {
562
+ const outputDir = options.directory || join(process.cwd(), 'src', 'components');
563
+ const componentDir = join(outputDir, name);
564
+ // Check if component directory already exists
565
+ if (existsSync(componentDir)) {
566
+ console.error(`\nāœ— Component '${name}' already exists at ${componentDir}`);
567
+ console.error(' Please choose a different name or remove the existing component.\n');
568
+ process.exit(1);
569
+ }
570
+ console.log(`\n🧩 Creating component: ${name}`);
571
+ console.log(` Location: ${componentDir}\n`);
572
+ // Create component directory
573
+ await mkdir(componentDir, { recursive: true });
574
+ // Write component files
575
+ await writeFile(join(componentDir, `${name}.svelte`), generateComponentSvelte(name));
576
+ await writeFile(join(componentDir, `${name}.schema.js`), generateComponentSchema(name));
577
+ await writeFile(join(componentDir, 'index.ts'), `export { default as ${name} } from './${name}.svelte';\n`);
578
+ console.log(`āœ“ Created ${name}.svelte`);
579
+ console.log(`āœ“ Created ${name}.schema.js`);
580
+ console.log(`āœ“ Created index.ts`);
581
+ console.log(`
582
+ āœ… Component created successfully!
583
+
584
+ Import it in your application:
585
+
586
+ import { ${name} } from './components/${name}';
587
+
588
+ Or use the schema for generation:
589
+
590
+ praxis generate --schema src/components/${name}/${name}.schema.js
591
+ `);
592
+ }
593
+ /**
594
+ * Execute the create command
595
+ */
596
+ export async function create(type, name, options) {
597
+ if (!name) {
598
+ console.error('\nāœ— Please provide a name for the ' + type);
599
+ console.error(` Usage: praxis create ${type} <name>\n`);
600
+ process.exit(1);
601
+ }
602
+ // Validate name
603
+ if (!/^[a-zA-Z][a-zA-Z0-9-_]*$/.test(name)) {
604
+ console.error('\nāœ— Invalid name format');
605
+ console.error(' Name must start with a letter and contain only letters, numbers, hyphens, and underscores.\n');
606
+ process.exit(1);
607
+ }
608
+ switch (type) {
609
+ case 'app':
610
+ await createApp(name, options);
611
+ break;
612
+ case 'component':
613
+ await createComponent(name, options);
614
+ break;
615
+ default:
616
+ console.error(`\nāœ— Unknown type: ${type}`);
617
+ console.error(' Valid types: app, component\n');
618
+ process.exit(1);
619
+ }
620
+ }
621
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/cli/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Development Server Command
3
+ *
4
+ * Starts the Praxis development server with Vite.
5
+ */
6
+ /**
7
+ * Development server options
8
+ */
9
+ export interface DevOptions {
10
+ /** Port number */
11
+ port?: string;
12
+ /** Host to bind to */
13
+ host?: string;
14
+ /** Open browser */
15
+ open?: boolean;
16
+ }
17
+ /**
18
+ * Start development server
19
+ */
20
+ export declare function dev(options: DevOptions): Promise<void>;
21
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE5D"}