@plures/praxis 0.2.0 → 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 (488) hide show
  1. package/README.md +282 -76
  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/{core → src/core}/schema/loader.js +2 -2
  178. package/dist/src/core/schema/loader.js.map +1 -0
  179. package/dist/src/core/schema/normalize.d.ts.map +1 -0
  180. package/dist/src/core/schema/normalize.js.map +1 -0
  181. package/dist/src/core/schema/types.d.ts.map +1 -0
  182. package/dist/src/core/schema/types.js.map +1 -0
  183. package/dist/src/dsl/index.d.ts.map +1 -0
  184. package/dist/src/dsl/index.js.map +1 -0
  185. package/dist/src/dsl.d.ts.map +1 -0
  186. package/dist/src/dsl.js.map +1 -0
  187. package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
  188. package/dist/src/examples/advanced-todo/index.js.map +1 -0
  189. package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
  190. package/dist/src/examples/auth-basic/index.js.map +1 -0
  191. package/dist/src/examples/cart/index.d.ts.map +1 -0
  192. package/dist/src/examples/cart/index.js.map +1 -0
  193. package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
  194. package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
  195. package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
  196. package/dist/src/examples/svelte-counter/index.js.map +1 -0
  197. package/dist/src/flows.d.ts.map +1 -0
  198. package/dist/src/flows.js.map +1 -0
  199. package/dist/{index.d.ts → src/index.d.ts} +12 -2
  200. package/dist/src/index.d.ts.map +1 -0
  201. package/dist/{index.js → src/index.js} +6 -1
  202. package/dist/src/index.js.map +1 -0
  203. package/dist/src/integrations/code-canvas.d.ts +265 -0
  204. package/dist/src/integrations/code-canvas.d.ts.map +1 -0
  205. package/dist/src/integrations/code-canvas.js +451 -0
  206. package/dist/src/integrations/code-canvas.js.map +1 -0
  207. package/dist/src/integrations/pluresdb.d.ts +117 -0
  208. package/dist/src/integrations/pluresdb.d.ts.map +1 -0
  209. package/dist/src/integrations/pluresdb.js +117 -0
  210. package/dist/src/integrations/pluresdb.js.map +1 -0
  211. package/dist/src/integrations/state-docs.d.ts +191 -0
  212. package/dist/src/integrations/state-docs.d.ts.map +1 -0
  213. package/dist/src/integrations/state-docs.js +515 -0
  214. package/dist/src/integrations/state-docs.js.map +1 -0
  215. package/dist/src/integrations/svelte.d.ts.map +1 -0
  216. package/dist/src/integrations/svelte.js.map +1 -0
  217. package/dist/src/integrations/tauri.d.ts +360 -0
  218. package/dist/src/integrations/tauri.d.ts.map +1 -0
  219. package/dist/src/integrations/tauri.js +278 -0
  220. package/dist/src/integrations/tauri.js.map +1 -0
  221. package/dist/src/integrations/unum.d.ts +159 -0
  222. package/dist/src/integrations/unum.d.ts.map +1 -0
  223. package/dist/src/integrations/unum.js +240 -0
  224. package/dist/src/integrations/unum.js.map +1 -0
  225. package/dist/src/registry.d.ts.map +1 -0
  226. package/dist/src/registry.js.map +1 -0
  227. package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
  228. package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
  229. package/dist/src/runtime/terminal-adapter.js +237 -0
  230. package/dist/src/runtime/terminal-adapter.js.map +1 -0
  231. package/dist/src/step.d.ts.map +1 -0
  232. package/dist/src/step.js.map +1 -0
  233. package/dist/src/types.d.ts.map +1 -0
  234. package/dist/{cloud → src}/types.js.map +1 -1
  235. package/dist/tools/cli/commands/index.d.ts +7 -0
  236. package/dist/tools/cli/commands/index.d.ts.map +1 -0
  237. package/dist/tools/cli/commands/index.js +7 -0
  238. package/dist/tools/cli/commands/index.js.map +1 -0
  239. package/dist/tools/cli/index.d.ts +8 -0
  240. package/dist/tools/cli/index.d.ts.map +1 -0
  241. package/dist/tools/cli/index.js +9 -0
  242. package/dist/tools/cli/index.js.map +1 -0
  243. package/dist/tools/watcher/index.d.ts +105 -0
  244. package/dist/tools/watcher/index.d.ts.map +1 -0
  245. package/dist/tools/watcher/index.js +213 -0
  246. package/dist/tools/watcher/index.js.map +1 -0
  247. package/dist/ui/canvas/canvas-projection.d.ts +78 -0
  248. package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
  249. package/dist/ui/canvas/canvas-projection.js +416 -0
  250. package/dist/ui/canvas/canvas-projection.js.map +1 -0
  251. package/dist/ui/canvas/canvas-state.d.ts +200 -0
  252. package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
  253. package/dist/ui/canvas/canvas-state.js +464 -0
  254. package/dist/ui/canvas/canvas-state.js.map +1 -0
  255. package/dist/ui/canvas/components/index.d.ts +95 -0
  256. package/dist/ui/canvas/components/index.d.ts.map +1 -0
  257. package/dist/ui/canvas/components/index.js +19 -0
  258. package/dist/ui/canvas/components/index.js.map +1 -0
  259. package/dist/ui/canvas/index.d.ts +32 -0
  260. package/dist/ui/canvas/index.d.ts.map +1 -0
  261. package/dist/ui/canvas/index.js +32 -0
  262. package/dist/ui/canvas/index.js.map +1 -0
  263. package/dist/ui/svelte-generator/index.d.ts +9 -0
  264. package/dist/ui/svelte-generator/index.d.ts.map +1 -0
  265. package/dist/ui/svelte-generator/index.js +11 -0
  266. package/dist/ui/svelte-generator/index.js.map +1 -0
  267. package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
  268. package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
  269. package/dist/ui/svelte-generator/psf-generator.js +506 -0
  270. package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
  271. package/docs/README.md +155 -0
  272. package/docs/core/building-extensions.md +553 -0
  273. package/docs/core/cli-usage.md +498 -0
  274. package/docs/core/code-canvas-sync.md +468 -0
  275. package/docs/core/logic-engine.md +566 -0
  276. package/docs/core/pluresdb-integration.md +646 -0
  277. package/docs/core/schema-model.md +414 -0
  278. package/docs/core/ui-generation.md +580 -0
  279. package/docs/core/what-is-praxis.md +240 -0
  280. package/docs/tutorials/README.md +84 -0
  281. package/docs/tutorials/ecommerce-cart.md +631 -0
  282. package/docs/tutorials/first-app.md +529 -0
  283. package/docs/tutorials/form-builder.md +620 -0
  284. package/docs/tutorials/todo-pluresdb.md +589 -0
  285. package/package.json +1 -1
  286. package/src/__tests__/canvas-components.test.ts +450 -0
  287. package/src/__tests__/cli-create.test.ts +178 -0
  288. package/src/__tests__/code-canvas-integration.test.ts +277 -0
  289. package/src/__tests__/docs-generator.test.ts +181 -0
  290. package/src/__tests__/generators.test.ts +3 -2
  291. package/src/__tests__/pluresdb.test.ts +457 -0
  292. package/src/__tests__/psf-schema-engine.test.ts +450 -0
  293. package/src/__tests__/state-docs-integration.test.ts +297 -0
  294. package/src/__tests__/tauri-integration.test.ts +298 -0
  295. package/src/__tests__/terminal-node.test.ts +1 -1
  296. package/src/__tests__/unum-integration.test.ts +142 -0
  297. package/src/cli/commands/build.ts +203 -0
  298. package/src/cli/commands/canvas.ts +246 -0
  299. package/src/cli/commands/create.ts +666 -0
  300. package/src/cli/commands/dev.ts +95 -0
  301. package/src/cli/commands/orchestrate.ts +212 -0
  302. package/src/cli/index.ts +48 -21
  303. package/src/core/actors.ts +1 -1
  304. package/src/core/component/generator.ts +45 -3
  305. package/src/core/logic/generator.ts +39 -4
  306. package/src/core/pluresdb/adapter.ts +117 -0
  307. package/src/core/pluresdb/generator.ts +33 -4
  308. package/src/core/pluresdb/index.ts +37 -0
  309. package/src/core/pluresdb/schema-registry.ts +162 -0
  310. package/src/core/pluresdb/store.ts +443 -0
  311. package/src/core/schema/loader.ts +2 -2
  312. package/src/index.ts +109 -0
  313. package/src/integrations/code-canvas.ts +717 -0
  314. package/src/integrations/pluresdb.ts +140 -29
  315. package/src/integrations/state-docs.ts +710 -0
  316. package/src/integrations/tauri.ts +638 -0
  317. package/src/integrations/unum.ts +395 -0
  318. package/src/runtime/terminal-adapter.ts +178 -23
  319. package/dist/adapters/cli.d.ts.map +0 -1
  320. package/dist/adapters/cli.js.map +0 -1
  321. package/dist/cli/commands/auth.d.ts.map +0 -1
  322. package/dist/cli/commands/auth.js.map +0 -1
  323. package/dist/cli/commands/cloud.d.ts.map +0 -1
  324. package/dist/cli/commands/cloud.js.map +0 -1
  325. package/dist/cli/commands/generate.d.ts.map +0 -1
  326. package/dist/cli/commands/generate.js.map +0 -1
  327. package/dist/cli/index.js.map +0 -1
  328. package/dist/cloud/auth.d.ts.map +0 -1
  329. package/dist/cloud/auth.js.map +0 -1
  330. package/dist/cloud/billing.d.ts.map +0 -1
  331. package/dist/cloud/billing.js.map +0 -1
  332. package/dist/cloud/client.d.ts.map +0 -1
  333. package/dist/cloud/client.js.map +0 -1
  334. package/dist/cloud/index.d.ts.map +0 -1
  335. package/dist/cloud/index.js.map +0 -1
  336. package/dist/cloud/marketplace.d.ts.map +0 -1
  337. package/dist/cloud/marketplace.js.map +0 -1
  338. package/dist/cloud/provisioning.d.ts.map +0 -1
  339. package/dist/cloud/provisioning.js.map +0 -1
  340. package/dist/cloud/relay/endpoints.d.ts.map +0 -1
  341. package/dist/cloud/relay/endpoints.js.map +0 -1
  342. package/dist/cloud/relay/health/index.d.ts.map +0 -1
  343. package/dist/cloud/relay/health/index.js.map +0 -1
  344. package/dist/cloud/relay/stats/index.d.ts.map +0 -1
  345. package/dist/cloud/relay/stats/index.js.map +0 -1
  346. package/dist/cloud/relay/sync/index.d.ts.map +0 -1
  347. package/dist/cloud/relay/sync/index.js.map +0 -1
  348. package/dist/cloud/relay/usage/index.d.ts.map +0 -1
  349. package/dist/cloud/relay/usage/index.js.map +0 -1
  350. package/dist/cloud/sponsors.d.ts.map +0 -1
  351. package/dist/cloud/sponsors.js.map +0 -1
  352. package/dist/cloud/types.d.ts.map +0 -1
  353. package/dist/components/index.d.ts.map +0 -1
  354. package/dist/components/index.js.map +0 -1
  355. package/dist/core/actors.d.ts.map +0 -1
  356. package/dist/core/actors.js.map +0 -1
  357. package/dist/core/component/generator.d.ts.map +0 -1
  358. package/dist/core/component/generator.js.map +0 -1
  359. package/dist/core/engine.d.ts.map +0 -1
  360. package/dist/core/engine.js.map +0 -1
  361. package/dist/core/introspection.d.ts.map +0 -1
  362. package/dist/core/introspection.js.map +0 -1
  363. package/dist/core/logic/generator.d.ts.map +0 -1
  364. package/dist/core/logic/generator.js.map +0 -1
  365. package/dist/core/pluresdb/generator.d.ts.map +0 -1
  366. package/dist/core/pluresdb/generator.js.map +0 -1
  367. package/dist/core/protocol.d.ts.map +0 -1
  368. package/dist/core/protocol.js.map +0 -1
  369. package/dist/core/rules.d.ts.map +0 -1
  370. package/dist/core/rules.js.map +0 -1
  371. package/dist/core/schema/loader.d.ts.map +0 -1
  372. package/dist/core/schema/loader.js.map +0 -1
  373. package/dist/core/schema/normalize.d.ts.map +0 -1
  374. package/dist/core/schema/normalize.js.map +0 -1
  375. package/dist/core/schema/types.d.ts.map +0 -1
  376. package/dist/core/schema/types.js.map +0 -1
  377. package/dist/dsl/index.d.ts.map +0 -1
  378. package/dist/dsl/index.js.map +0 -1
  379. package/dist/dsl.d.ts.map +0 -1
  380. package/dist/dsl.js.map +0 -1
  381. package/dist/examples/advanced-todo/index.d.ts.map +0 -1
  382. package/dist/examples/advanced-todo/index.js.map +0 -1
  383. package/dist/examples/auth-basic/index.d.ts.map +0 -1
  384. package/dist/examples/auth-basic/index.js.map +0 -1
  385. package/dist/examples/cart/index.d.ts.map +0 -1
  386. package/dist/examples/cart/index.js.map +0 -1
  387. package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
  388. package/dist/examples/hero-ecommerce/index.js.map +0 -1
  389. package/dist/examples/svelte-counter/index.d.ts.map +0 -1
  390. package/dist/examples/svelte-counter/index.js.map +0 -1
  391. package/dist/flows.d.ts.map +0 -1
  392. package/dist/flows.js.map +0 -1
  393. package/dist/index.d.ts.map +0 -1
  394. package/dist/index.js.map +0 -1
  395. package/dist/integrations/pluresdb.d.ts +0 -56
  396. package/dist/integrations/pluresdb.d.ts.map +0 -1
  397. package/dist/integrations/pluresdb.js +0 -46
  398. package/dist/integrations/pluresdb.js.map +0 -1
  399. package/dist/integrations/svelte.d.ts.map +0 -1
  400. package/dist/integrations/svelte.js.map +0 -1
  401. package/dist/registry.d.ts.map +0 -1
  402. package/dist/registry.js.map +0 -1
  403. package/dist/runtime/terminal-adapter.d.ts.map +0 -1
  404. package/dist/runtime/terminal-adapter.js +0 -113
  405. package/dist/runtime/terminal-adapter.js.map +0 -1
  406. package/dist/step.d.ts.map +0 -1
  407. package/dist/step.js.map +0 -1
  408. package/dist/types.d.ts.map +0 -1
  409. package/dist/types.js.map +0 -1
  410. /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
  411. /package/dist/{adapters → src/adapters}/cli.js +0 -0
  412. /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
  413. /package/dist/{cli → src/cli}/commands/auth.js +0 -0
  414. /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
  415. /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
  416. /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
  417. /package/dist/{cli → src/cli}/commands/generate.js +0 -0
  418. /package/dist/{cli → src/cli}/index.d.ts +0 -0
  419. /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
  420. /package/dist/{cloud → src/cloud}/auth.js +0 -0
  421. /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
  422. /package/dist/{cloud → src/cloud}/billing.js +0 -0
  423. /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
  424. /package/dist/{cloud → src/cloud}/client.js +0 -0
  425. /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
  426. /package/dist/{cloud → src/cloud}/index.js +0 -0
  427. /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
  428. /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
  429. /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
  430. /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
  431. /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
  432. /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
  433. /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
  434. /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
  435. /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
  436. /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
  437. /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
  438. /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
  439. /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
  440. /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
  441. /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
  442. /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
  443. /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
  444. /package/dist/{cloud → src/cloud}/types.js +0 -0
  445. /package/dist/{components → src/components}/index.d.ts +0 -0
  446. /package/dist/{components → src/components}/index.js +0 -0
  447. /package/dist/{core → src/core}/actors.d.ts +0 -0
  448. /package/dist/{core → src/core}/actors.js +0 -0
  449. /package/dist/{core → src/core}/component/generator.d.ts +0 -0
  450. /package/dist/{core → src/core}/engine.d.ts +0 -0
  451. /package/dist/{core → src/core}/engine.js +0 -0
  452. /package/dist/{core → src/core}/introspection.d.ts +0 -0
  453. /package/dist/{core → src/core}/introspection.js +0 -0
  454. /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
  455. /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
  456. /package/dist/{core → src/core}/protocol.d.ts +0 -0
  457. /package/dist/{core → src/core}/protocol.js +0 -0
  458. /package/dist/{core → src/core}/rules.d.ts +0 -0
  459. /package/dist/{core → src/core}/rules.js +0 -0
  460. /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
  461. /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
  462. /package/dist/{core → src/core}/schema/normalize.js +0 -0
  463. /package/dist/{core → src/core}/schema/types.d.ts +0 -0
  464. /package/dist/{core → src/core}/schema/types.js +0 -0
  465. /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
  466. /package/dist/{dsl → src/dsl}/index.js +0 -0
  467. /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
  468. /package/dist/{dsl.js → src/dsl.js} +0 -0
  469. /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
  470. /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
  471. /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
  472. /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
  473. /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
  474. /package/dist/{examples → src/examples}/cart/index.js +0 -0
  475. /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
  476. /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
  477. /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
  478. /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
  479. /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
  480. /package/dist/{flows.js → src/flows.js} +0 -0
  481. /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
  482. /package/dist/{integrations → src/integrations}/svelte.js +0 -0
  483. /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
  484. /package/dist/{registry.js → src/registry.js} +0 -0
  485. /package/dist/{step.d.ts → src/step.d.ts} +0 -0
  486. /package/dist/{step.js → src/step.js} +0 -0
  487. /package/dist/{types.d.ts → src/types.d.ts} +0 -0
  488. /package/dist/{types.js → src/types.js} +0 -0
@@ -0,0 +1,414 @@
1
+ # Praxis Schema Model
2
+
3
+ The Praxis Schema Format (PSF) is the foundation of every Praxis application. This document explains the schema structure, types, and best practices.
4
+
5
+ ## Overview
6
+
7
+ A PSF schema is a JSON document that describes your entire application:
8
+
9
+ ```json
10
+ {
11
+ "$version": "1.0.0",
12
+ "id": "my-app",
13
+ "name": "My Application",
14
+ "description": "Application description",
15
+ "createdAt": "2024-01-01T00:00:00.000Z",
16
+ "modifiedAt": "2024-01-01T00:00:00.000Z",
17
+ "facts": [...],
18
+ "events": [...],
19
+ "rules": [...],
20
+ "constraints": [...],
21
+ "models": [...],
22
+ "components": [...],
23
+ "flows": [...],
24
+ "docs": {...},
25
+ "canvas": {...}
26
+ }
27
+ ```
28
+
29
+ ## Schema Sections
30
+
31
+ ### Metadata
32
+
33
+ ```json
34
+ {
35
+ "$version": "1.0.0",
36
+ "id": "unique-app-id",
37
+ "name": "Human Readable Name",
38
+ "description": "What this application does",
39
+ "createdAt": "2024-01-01T00:00:00.000Z",
40
+ "modifiedAt": "2024-01-01T00:00:00.000Z"
41
+ }
42
+ ```
43
+
44
+ ### Facts
45
+
46
+ Facts are typed propositions about your domain. They represent "what is true" after events are processed.
47
+
48
+ ```json
49
+ {
50
+ "facts": [
51
+ {
52
+ "id": "fact_user_logged_in",
53
+ "tag": "UserLoggedIn",
54
+ "description": "User successfully authenticated",
55
+ "payload": {
56
+ "type": "object",
57
+ "properties": {
58
+ "userId": { "type": "string" },
59
+ "timestamp": { "type": "number" }
60
+ }
61
+ }
62
+ }
63
+ ]
64
+ }
65
+ ```
66
+
67
+ | Field | Type | Required | Description |
68
+ |-------|------|----------|-------------|
69
+ | `id` | string | Yes | Unique identifier |
70
+ | `tag` | string | Yes | Fact tag (used in code) |
71
+ | `description` | string | Yes | Human-readable description |
72
+ | `payload` | object | Yes | JSON Schema for fact payload |
73
+
74
+ ### Events
75
+
76
+ Events are things that happen in your application that drive state changes.
77
+
78
+ ```json
79
+ {
80
+ "events": [
81
+ {
82
+ "id": "event_login",
83
+ "tag": "Login",
84
+ "description": "User attempts to log in",
85
+ "payload": {
86
+ "type": "object",
87
+ "properties": {
88
+ "username": { "type": "string" },
89
+ "password": { "type": "string" }
90
+ }
91
+ }
92
+ }
93
+ ]
94
+ }
95
+ ```
96
+
97
+ | Field | Type | Required | Description |
98
+ |-------|------|----------|-------------|
99
+ | `id` | string | Yes | Unique identifier |
100
+ | `tag` | string | Yes | Event tag (used in code) |
101
+ | `description` | string | Yes | Human-readable description |
102
+ | `payload` | object | Yes | JSON Schema for event payload |
103
+
104
+ ### Rules
105
+
106
+ Rules are pure functions that produce facts from events and current state.
107
+
108
+ ```json
109
+ {
110
+ "rules": [
111
+ {
112
+ "id": "auth.login",
113
+ "name": "Process Login",
114
+ "description": "Handle login event and emit UserLoggedIn fact",
115
+ "triggers": ["Login"],
116
+ "then": {
117
+ "inline": "const event = events.find(e => e.tag === 'Login'); if (!event) return []; return [{ tag: 'UserLoggedIn', payload: { userId: event.payload.username, timestamp: Date.now() } }];",
118
+ "language": "typescript"
119
+ },
120
+ "priority": 10
121
+ }
122
+ ]
123
+ }
124
+ ```
125
+
126
+ | Field | Type | Required | Description |
127
+ |-------|------|----------|-------------|
128
+ | `id` | string | Yes | Unique identifier |
129
+ | `name` | string | Yes | Rule name |
130
+ | `description` | string | Yes | What the rule does |
131
+ | `triggers` | string[] | No | Events that trigger this rule |
132
+ | `then` | object | Yes | Rule implementation |
133
+ | `priority` | number | No | Execution priority (higher = first) |
134
+
135
+ ### Constraints
136
+
137
+ Constraints are invariants that must always hold true.
138
+
139
+ ```json
140
+ {
141
+ "constraints": [
142
+ {
143
+ "id": "cart.maxItems",
144
+ "name": "Maximum Cart Items",
145
+ "description": "Cart cannot have more than 100 items",
146
+ "check": {
147
+ "inline": "(state.context.cart || []).length <= 100",
148
+ "language": "typescript"
149
+ },
150
+ "errorMessage": "Cart cannot contain more than 100 items",
151
+ "severity": "error"
152
+ }
153
+ ]
154
+ }
155
+ ```
156
+
157
+ | Field | Type | Required | Description |
158
+ |-------|------|----------|-------------|
159
+ | `id` | string | Yes | Unique identifier |
160
+ | `name` | string | Yes | Constraint name |
161
+ | `description` | string | Yes | What the constraint ensures |
162
+ | `check` | object | Yes | Constraint check implementation |
163
+ | `errorMessage` | string | Yes | Error message when violated |
164
+ | `severity` | string | Yes | `error` or `warning` |
165
+
166
+ ### Models
167
+
168
+ Models define your data structures.
169
+
170
+ ```json
171
+ {
172
+ "models": [
173
+ {
174
+ "id": "model_user",
175
+ "name": "User",
176
+ "description": "Application user",
177
+ "fields": [
178
+ { "name": "id", "type": "uuid", "description": "Unique identifier" },
179
+ { "name": "username", "type": "string", "description": "Username" },
180
+ { "name": "email", "type": "string", "description": "Email address" },
181
+ { "name": "createdAt", "type": "datetime", "description": "Creation time" },
182
+ { "name": "role", "type": { "enum": ["admin", "user", "guest"] }, "description": "User role" }
183
+ ],
184
+ "indexes": [
185
+ { "name": "idx_email", "fields": ["email"], "unique": true }
186
+ ],
187
+ "relationships": [
188
+ { "name": "posts", "type": "one-to-many", "target": "Post", "foreignKey": "authorId" }
189
+ ]
190
+ }
191
+ ]
192
+ }
193
+ ```
194
+
195
+ #### Field Types
196
+
197
+ | Type | Description | Example |
198
+ |------|-------------|---------|
199
+ | `string` | Text value | `"Hello"` |
200
+ | `number` | Numeric value | `42` |
201
+ | `boolean` | True/false | `true` |
202
+ | `uuid` | UUID string | `"550e8400-..."` |
203
+ | `datetime` | ISO 8601 date | `"2024-01-01T00:00:00Z"` |
204
+ | `object` | Nested object | `{ key: value }` |
205
+ | `{ array: { type } }` | Array of type | `[1, 2, 3]` |
206
+ | `{ enum: [...] }` | Enumeration | `"active"` |
207
+ | `{ reference: "Model" }` | Reference to another model | Foreign key |
208
+
209
+ ### Components
210
+
211
+ Components define UI elements generated from the schema.
212
+
213
+ ```json
214
+ {
215
+ "components": [
216
+ {
217
+ "id": "comp_user_form",
218
+ "name": "UserForm",
219
+ "type": "form",
220
+ "description": "Form for creating/editing users",
221
+ "model": "User",
222
+ "props": [
223
+ { "name": "user", "type": "User", "required": false, "description": "Existing user to edit" },
224
+ { "name": "onSubmit", "type": "function", "required": true, "description": "Submit handler" }
225
+ ],
226
+ "events": [
227
+ { "name": "submit", "payload": "User", "description": "Form submitted" },
228
+ { "name": "cancel", "description": "Form cancelled" }
229
+ ]
230
+ }
231
+ ]
232
+ }
233
+ ```
234
+
235
+ #### Component Types
236
+
237
+ | Type | Description | Generated Features |
238
+ |------|-------------|-------------------|
239
+ | `form` | Input form | Validation, submit handling |
240
+ | `display` | Display data | Data binding, formatting |
241
+ | `list` | List of items | Pagination, filtering |
242
+ | `editor` | Rich editor | Editing capabilities |
243
+ | `composite` | Composed of others | Layout, composition |
244
+
245
+ ### Flows
246
+
247
+ Flows define sequences of steps or state machines.
248
+
249
+ ```json
250
+ {
251
+ "flows": [
252
+ {
253
+ "id": "flow_checkout",
254
+ "name": "Checkout Flow",
255
+ "description": "Complete checkout process",
256
+ "type": "sequence",
257
+ "initial": "cart_review",
258
+ "steps": [
259
+ {
260
+ "id": "cart_review",
261
+ "name": "Review Cart",
262
+ "type": "action",
263
+ "next": "shipping"
264
+ },
265
+ {
266
+ "id": "shipping",
267
+ "name": "Enter Shipping",
268
+ "type": "action",
269
+ "next": "payment"
270
+ },
271
+ {
272
+ "id": "payment",
273
+ "name": "Process Payment",
274
+ "type": "action",
275
+ "next": {
276
+ "success": "confirmation",
277
+ "failure": "payment_error"
278
+ }
279
+ },
280
+ {
281
+ "id": "confirmation",
282
+ "name": "Order Confirmed",
283
+ "type": "terminal"
284
+ }
285
+ ]
286
+ }
287
+ ]
288
+ }
289
+ ```
290
+
291
+ ### Documentation
292
+
293
+ Embedded documentation for generated docs.
294
+
295
+ ```json
296
+ {
297
+ "docs": {
298
+ "overview": "Application overview text",
299
+ "gettingStarted": "1. Install dependencies\n2. Run development server"
300
+ }
301
+ }
302
+ ```
303
+
304
+ ### Canvas
305
+
306
+ Configuration for CodeCanvas visual editor.
307
+
308
+ ```json
309
+ {
310
+ "canvas": {
311
+ "viewport": { "x": 0, "y": 0, "zoom": 1 },
312
+ "grid": { "enabled": true, "size": 20, "snap": true }
313
+ }
314
+ }
315
+ ```
316
+
317
+ ## Schema Composition
318
+
319
+ ### Extending Schemas
320
+
321
+ Schemas can extend other schemas:
322
+
323
+ ```json
324
+ {
325
+ "$extends": "./base-schema.psf.json",
326
+ "id": "extended-app",
327
+ "models": [
328
+ {
329
+ "id": "model_custom",
330
+ "name": "CustomModel",
331
+ "fields": [...]
332
+ }
333
+ ]
334
+ }
335
+ ```
336
+
337
+ ### Importing Definitions
338
+
339
+ Import definitions from other files:
340
+
341
+ ```json
342
+ {
343
+ "imports": [
344
+ { "from": "./auth.psf.json", "include": ["facts", "events", "rules"] },
345
+ { "from": "./ui-components.psf.json", "include": ["components"] }
346
+ ]
347
+ }
348
+ ```
349
+
350
+ ## Validation
351
+
352
+ Schemas are validated against the PSF JSON Schema. Use the CLI:
353
+
354
+ ```bash
355
+ praxis validate --schema ./schema.psf.json
356
+ ```
357
+
358
+ Common validation errors:
359
+ - Missing required fields
360
+ - Invalid type definitions
361
+ - Duplicate IDs
362
+ - Invalid references to models or facts
363
+
364
+ ## Best Practices
365
+
366
+ ### Naming Conventions
367
+
368
+ - **Facts**: Use past tense (`UserLoggedIn`, `ItemAdded`)
369
+ - **Events**: Use present tense or imperative (`Login`, `AddItem`)
370
+ - **Rules**: Use domain.action format (`auth.login`, `cart.addItem`)
371
+ - **Models**: Use singular nouns (`User`, `Product`)
372
+ - **Components**: Use PascalCase (`UserForm`, `ProductList`)
373
+
374
+ ### Organization
375
+
376
+ 1. **Group related items**: Keep authentication facts, events, and rules together
377
+ 2. **Use meaningful IDs**: `fact_user_logged_in` not `fact1`
378
+ 3. **Document everything**: Use descriptions liberally
379
+ 4. **Version your schema**: Use `$version` for breaking changes
380
+
381
+ ### Performance
382
+
383
+ 1. **Limit rule triggers**: Only trigger rules on relevant events
384
+ 2. **Use priorities**: Execute important rules first
385
+ 3. **Optimize constraints**: Keep constraint checks efficient
386
+ 4. **Minimize inline code**: Use references for complex logic
387
+
388
+ ## Code Generation
389
+
390
+ Generate code from your schema:
391
+
392
+ ```bash
393
+ # Generate all outputs
394
+ praxis generate --schema ./schema.psf.json --output ./generated
395
+
396
+ # Generate specific outputs
397
+ praxis generate --schema ./schema.psf.json --output ./generated --only types,components
398
+
399
+ # Watch mode
400
+ praxis generate --schema ./schema.psf.json --watch
401
+ ```
402
+
403
+ Generated outputs:
404
+ - `facts.ts` - Fact type definitions and creators
405
+ - `events.ts` - Event type definitions and creators
406
+ - `rules.ts` - Rule implementations
407
+ - `constraints.ts` - Constraint validators
408
+ - `models.ts` - TypeScript interfaces
409
+ - `components/` - Svelte components
410
+ - `docs/` - Markdown documentation
411
+
412
+ ---
413
+
414
+ **Next:** [Logic Engine](./logic-engine.md)