@plures/praxis 0.2.1 → 1.0.1
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.
- package/README.md +191 -64
- package/core/codegen/docs-generator.ts +808 -0
- package/core/codegen/index.ts +27 -0
- package/core/codegen/ts-generator.ts +15 -0
- package/core/db-adapter/index.ts +52 -0
- package/core/db-adapter/sync-engine.ts +450 -0
- package/core/logic-engine/engine.ts +12 -0
- package/core/logic-engine/index.ts +16 -0
- package/core/logic-engine/protocol.ts +16 -0
- package/core/logic-engine/psf-adapter.ts +269 -0
- package/core/logic-engine/rules.ts +16 -0
- package/core/schema-engine/compiler.ts +431 -0
- package/core/schema-engine/generator.ts +635 -0
- package/core/schema-engine/index.ts +18 -0
- package/core/schema-engine/psf.ts +664 -0
- package/core/schema-engine/types.ts +63 -0
- package/core/schema-engine/validator.ts +541 -0
- package/dist/core/codegen/docs-generator.d.ts +123 -0
- package/dist/core/codegen/docs-generator.d.ts.map +1 -0
- package/dist/core/codegen/docs-generator.js +674 -0
- package/dist/core/codegen/docs-generator.js.map +1 -0
- package/dist/core/codegen/index.d.ts +11 -0
- package/dist/core/codegen/index.d.ts.map +1 -0
- package/dist/core/codegen/index.js +13 -0
- package/dist/core/codegen/index.js.map +1 -0
- package/dist/core/codegen/ts-generator.d.ts +8 -0
- package/dist/core/codegen/ts-generator.d.ts.map +1 -0
- package/dist/core/codegen/ts-generator.js +8 -0
- package/dist/core/codegen/ts-generator.js.map +1 -0
- package/dist/core/db-adapter/index.d.ts +18 -0
- package/dist/core/db-adapter/index.d.ts.map +1 -0
- package/dist/core/db-adapter/index.js +23 -0
- package/dist/core/db-adapter/index.js.map +1 -0
- package/dist/core/db-adapter/sync-engine.d.ts +180 -0
- package/dist/core/db-adapter/sync-engine.d.ts.map +1 -0
- package/dist/core/db-adapter/sync-engine.js +342 -0
- package/dist/core/db-adapter/sync-engine.js.map +1 -0
- package/dist/core/logic-engine/engine.d.ts +8 -0
- package/dist/core/logic-engine/engine.d.ts.map +1 -0
- package/dist/core/logic-engine/engine.js +8 -0
- package/dist/core/logic-engine/engine.js.map +1 -0
- package/dist/core/logic-engine/index.d.ts +16 -0
- package/dist/core/logic-engine/index.d.ts.map +1 -0
- package/dist/core/logic-engine/index.js +16 -0
- package/dist/core/logic-engine/index.js.map +1 -0
- package/dist/core/logic-engine/protocol.d.ts +7 -0
- package/dist/core/logic-engine/protocol.d.ts.map +1 -0
- package/dist/core/logic-engine/protocol.js +7 -0
- package/dist/core/logic-engine/protocol.js.map +1 -0
- package/dist/core/logic-engine/psf-adapter.d.ts +88 -0
- package/dist/core/logic-engine/psf-adapter.d.ts.map +1 -0
- package/dist/core/logic-engine/psf-adapter.js +207 -0
- package/dist/core/logic-engine/psf-adapter.js.map +1 -0
- package/dist/core/logic-engine/rules.d.ts +7 -0
- package/dist/core/logic-engine/rules.d.ts.map +1 -0
- package/dist/core/logic-engine/rules.js +7 -0
- package/dist/core/logic-engine/rules.js.map +1 -0
- package/dist/core/schema-engine/compiler.d.ts +198 -0
- package/dist/core/schema-engine/compiler.d.ts.map +1 -0
- package/dist/core/schema-engine/compiler.js +262 -0
- package/dist/core/schema-engine/compiler.js.map +1 -0
- package/dist/core/schema-engine/generator.d.ts +115 -0
- package/dist/core/schema-engine/generator.d.ts.map +1 -0
- package/dist/core/schema-engine/generator.js +506 -0
- package/dist/core/schema-engine/generator.js.map +1 -0
- package/dist/core/schema-engine/index.d.ts +18 -0
- package/dist/core/schema-engine/index.d.ts.map +1 -0
- package/dist/core/schema-engine/index.js +18 -0
- package/dist/core/schema-engine/index.js.map +1 -0
- package/dist/core/schema-engine/psf.d.ts +612 -0
- package/dist/core/schema-engine/psf.d.ts.map +1 -0
- package/dist/core/schema-engine/psf.js +45 -0
- package/dist/core/schema-engine/psf.js.map +1 -0
- package/dist/core/schema-engine/types.d.ts +10 -0
- package/dist/core/schema-engine/types.d.ts.map +1 -0
- package/dist/core/schema-engine/types.js +7 -0
- package/dist/core/schema-engine/types.js.map +1 -0
- package/dist/core/schema-engine/validator.d.ts +140 -0
- package/dist/core/schema-engine/validator.d.ts.map +1 -0
- package/dist/core/schema-engine/validator.js +407 -0
- package/dist/core/schema-engine/validator.js.map +1 -0
- package/dist/src/adapters/cli.d.ts.map +1 -0
- package/dist/src/adapters/cli.js.map +1 -0
- package/dist/src/cli/commands/auth.d.ts.map +1 -0
- package/dist/src/cli/commands/auth.js.map +1 -0
- package/dist/src/cli/commands/build.d.ts +23 -0
- package/dist/src/cli/commands/build.d.ts.map +1 -0
- package/dist/src/cli/commands/build.js +162 -0
- package/dist/src/cli/commands/build.js.map +1 -0
- package/dist/src/cli/commands/canvas.d.ts +23 -0
- package/dist/src/cli/commands/canvas.d.ts.map +1 -0
- package/dist/src/cli/commands/canvas.js +215 -0
- package/dist/src/cli/commands/canvas.js.map +1 -0
- package/dist/src/cli/commands/cloud.d.ts.map +1 -0
- package/dist/src/cli/commands/cloud.js.map +1 -0
- package/dist/src/cli/commands/create.d.ts +21 -0
- package/dist/src/cli/commands/create.d.ts.map +1 -0
- package/dist/src/cli/commands/create.js +621 -0
- package/dist/src/cli/commands/create.js.map +1 -0
- package/dist/src/cli/commands/dev.d.ts +21 -0
- package/dist/src/cli/commands/dev.d.ts.map +1 -0
- package/dist/src/cli/commands/dev.js +71 -0
- package/dist/src/cli/commands/dev.js.map +1 -0
- package/dist/src/cli/commands/generate.d.ts.map +1 -0
- package/dist/src/cli/commands/generate.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +44 -0
- package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/src/cli/commands/orchestrate.js +150 -0
- package/dist/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/{cli → src/cli}/index.d.ts.map +1 -1
- package/dist/{cli → src/cli}/index.js +53 -21
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cloud/auth.d.ts.map +1 -0
- package/dist/src/cloud/auth.js.map +1 -0
- package/dist/src/cloud/billing.d.ts.map +1 -0
- package/dist/src/cloud/billing.js.map +1 -0
- package/dist/src/cloud/client.d.ts.map +1 -0
- package/dist/src/cloud/client.js.map +1 -0
- package/dist/src/cloud/index.d.ts.map +1 -0
- package/dist/src/cloud/index.js.map +1 -0
- package/dist/src/cloud/marketplace.d.ts.map +1 -0
- package/dist/src/cloud/marketplace.js.map +1 -0
- package/dist/src/cloud/provisioning.d.ts.map +1 -0
- package/dist/src/cloud/provisioning.js.map +1 -0
- package/dist/src/cloud/relay/endpoints.d.ts.map +1 -0
- package/dist/src/cloud/relay/endpoints.js.map +1 -0
- package/dist/src/cloud/relay/health/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/health/index.js.map +1 -0
- package/dist/src/cloud/relay/stats/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/stats/index.js.map +1 -0
- package/dist/src/cloud/relay/sync/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/sync/index.js.map +1 -0
- package/dist/src/cloud/relay/usage/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/usage/index.js.map +1 -0
- package/dist/src/cloud/sponsors.d.ts.map +1 -0
- package/dist/src/cloud/sponsors.js.map +1 -0
- package/dist/src/cloud/types.d.ts.map +1 -0
- package/dist/src/cloud/types.js.map +1 -0
- package/dist/src/components/index.d.ts.map +1 -0
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/core/actors.d.ts.map +1 -0
- package/dist/src/core/actors.js.map +1 -0
- package/dist/src/core/component/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/component/generator.js +45 -3
- package/dist/src/core/component/generator.js.map +1 -0
- package/dist/src/core/engine.d.ts.map +1 -0
- package/dist/src/core/engine.js.map +1 -0
- package/dist/src/core/introspection.d.ts.map +1 -0
- package/dist/src/core/introspection.js.map +1 -0
- package/dist/src/core/logic/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/logic/generator.js +35 -4
- package/dist/src/core/logic/generator.js.map +1 -0
- package/dist/src/core/pluresdb/adapter.d.ts +72 -0
- package/dist/src/core/pluresdb/adapter.d.ts.map +1 -0
- package/dist/src/core/pluresdb/adapter.js +73 -0
- package/dist/src/core/pluresdb/adapter.js.map +1 -0
- package/dist/src/core/pluresdb/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/pluresdb/generator.js +33 -4
- package/dist/src/core/pluresdb/generator.js.map +1 -0
- package/dist/src/core/pluresdb/index.d.ts +15 -0
- package/dist/src/core/pluresdb/index.d.ts.map +1 -0
- package/dist/src/core/pluresdb/index.js +11 -0
- package/dist/src/core/pluresdb/index.js.map +1 -0
- package/dist/src/core/pluresdb/schema-registry.d.ts +104 -0
- package/dist/src/core/pluresdb/schema-registry.d.ts.map +1 -0
- package/dist/src/core/pluresdb/schema-registry.js +130 -0
- package/dist/src/core/pluresdb/schema-registry.js.map +1 -0
- package/dist/src/core/pluresdb/store.d.ts +199 -0
- package/dist/src/core/pluresdb/store.d.ts.map +1 -0
- package/dist/src/core/pluresdb/store.js +344 -0
- package/dist/src/core/pluresdb/store.js.map +1 -0
- package/dist/src/core/protocol.d.ts.map +1 -0
- package/dist/src/core/protocol.js.map +1 -0
- package/dist/src/core/rules.d.ts.map +1 -0
- package/dist/src/core/rules.js.map +1 -0
- package/dist/src/core/schema/loader.d.ts.map +1 -0
- package/dist/src/core/schema/loader.js.map +1 -0
- package/dist/src/core/schema/normalize.d.ts.map +1 -0
- package/dist/src/core/schema/normalize.js.map +1 -0
- package/dist/src/core/schema/types.d.ts.map +1 -0
- package/dist/src/core/schema/types.js.map +1 -0
- package/dist/src/dsl/index.d.ts.map +1 -0
- package/dist/src/dsl/index.js.map +1 -0
- package/dist/src/dsl.d.ts.map +1 -0
- package/dist/src/dsl.js.map +1 -0
- package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
- package/dist/src/examples/advanced-todo/index.js.map +1 -0
- package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
- package/dist/src/examples/auth-basic/index.js.map +1 -0
- package/dist/src/examples/cart/index.d.ts.map +1 -0
- package/dist/src/examples/cart/index.js.map +1 -0
- package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
- package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
- package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
- package/dist/src/examples/svelte-counter/index.js.map +1 -0
- package/dist/src/flows.d.ts.map +1 -0
- package/dist/src/flows.js.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +12 -2
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +6 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/integrations/code-canvas.d.ts +265 -0
- package/dist/src/integrations/code-canvas.d.ts.map +1 -0
- package/dist/src/integrations/code-canvas.js +451 -0
- package/dist/src/integrations/code-canvas.js.map +1 -0
- package/dist/src/integrations/pluresdb.d.ts +117 -0
- package/dist/src/integrations/pluresdb.d.ts.map +1 -0
- package/dist/src/integrations/pluresdb.js +117 -0
- package/dist/src/integrations/pluresdb.js.map +1 -0
- package/dist/src/integrations/state-docs.d.ts +191 -0
- package/dist/src/integrations/state-docs.d.ts.map +1 -0
- package/dist/src/integrations/state-docs.js +515 -0
- package/dist/src/integrations/state-docs.js.map +1 -0
- package/dist/src/integrations/svelte.d.ts.map +1 -0
- package/dist/src/integrations/svelte.js.map +1 -0
- package/dist/src/integrations/tauri.d.ts +360 -0
- package/dist/src/integrations/tauri.d.ts.map +1 -0
- package/dist/src/integrations/tauri.js +278 -0
- package/dist/src/integrations/tauri.js.map +1 -0
- package/dist/src/integrations/unum.d.ts +159 -0
- package/dist/src/integrations/unum.d.ts.map +1 -0
- package/dist/src/integrations/unum.js +240 -0
- package/dist/src/integrations/unum.js.map +1 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
- package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
- package/dist/src/runtime/terminal-adapter.js +239 -0
- package/dist/src/runtime/terminal-adapter.js.map +1 -0
- package/dist/src/step.d.ts.map +1 -0
- package/dist/src/step.js.map +1 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/{cloud → src}/types.js.map +1 -1
- package/dist/tools/cli/commands/index.d.ts +7 -0
- package/dist/tools/cli/commands/index.d.ts.map +1 -0
- package/dist/tools/cli/commands/index.js +7 -0
- package/dist/tools/cli/commands/index.js.map +1 -0
- package/dist/tools/cli/index.d.ts +8 -0
- package/dist/tools/cli/index.d.ts.map +1 -0
- package/dist/tools/cli/index.js +9 -0
- package/dist/tools/cli/index.js.map +1 -0
- package/dist/tools/watcher/index.d.ts +105 -0
- package/dist/tools/watcher/index.d.ts.map +1 -0
- package/dist/tools/watcher/index.js +213 -0
- package/dist/tools/watcher/index.js.map +1 -0
- package/dist/ui/canvas/canvas-projection.d.ts +78 -0
- package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
- package/dist/ui/canvas/canvas-projection.js +416 -0
- package/dist/ui/canvas/canvas-projection.js.map +1 -0
- package/dist/ui/canvas/canvas-state.d.ts +200 -0
- package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
- package/dist/ui/canvas/canvas-state.js +464 -0
- package/dist/ui/canvas/canvas-state.js.map +1 -0
- package/dist/ui/canvas/components/index.d.ts +95 -0
- package/dist/ui/canvas/components/index.d.ts.map +1 -0
- package/dist/ui/canvas/components/index.js +19 -0
- package/dist/ui/canvas/components/index.js.map +1 -0
- package/dist/ui/canvas/index.d.ts +32 -0
- package/dist/ui/canvas/index.d.ts.map +1 -0
- package/dist/ui/canvas/index.js +32 -0
- package/dist/ui/canvas/index.js.map +1 -0
- package/dist/ui/svelte-generator/index.d.ts +9 -0
- package/dist/ui/svelte-generator/index.d.ts.map +1 -0
- package/dist/ui/svelte-generator/index.js +11 -0
- package/dist/ui/svelte-generator/index.js.map +1 -0
- package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
- package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
- package/dist/ui/svelte-generator/psf-generator.js +506 -0
- package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
- package/docs/README.md +155 -0
- package/docs/core/building-extensions.md +553 -0
- package/docs/core/cli-usage.md +498 -0
- package/docs/core/code-canvas-sync.md +468 -0
- package/docs/core/logic-engine.md +566 -0
- package/docs/core/pluresdb-integration.md +646 -0
- package/docs/core/schema-model.md +414 -0
- package/docs/core/ui-generation.md +580 -0
- package/docs/core/what-is-praxis.md +240 -0
- package/docs/tutorials/README.md +84 -0
- package/docs/tutorials/ecommerce-cart.md +631 -0
- package/docs/tutorials/first-app.md +529 -0
- package/docs/tutorials/form-builder.md +620 -0
- package/docs/tutorials/todo-pluresdb.md +589 -0
- package/package.json +16 -16
- package/src/__tests__/canvas-components.test.ts +450 -0
- package/src/__tests__/cli-create.test.ts +178 -0
- package/src/__tests__/code-canvas-integration.test.ts +277 -0
- package/src/__tests__/docs-generator.test.ts +181 -0
- package/src/__tests__/generators.test.ts +3 -2
- package/src/__tests__/pluresdb.test.ts +457 -0
- package/src/__tests__/psf-schema-engine.test.ts +450 -0
- package/src/__tests__/state-docs-integration.test.ts +297 -0
- package/src/__tests__/tauri-integration.test.ts +298 -0
- package/src/__tests__/terminal-node.test.ts +1 -1
- package/src/__tests__/unum-integration.test.ts +142 -0
- package/src/cli/commands/build.ts +203 -0
- package/src/cli/commands/canvas.ts +246 -0
- package/src/cli/commands/create.ts +666 -0
- package/src/cli/commands/dev.ts +95 -0
- package/src/cli/commands/orchestrate.ts +212 -0
- package/src/cli/index.ts +48 -21
- package/src/core/component/generator.ts +45 -3
- package/src/core/logic/generator.ts +39 -4
- package/src/core/pluresdb/adapter.ts +117 -0
- package/src/core/pluresdb/generator.ts +33 -4
- package/src/core/pluresdb/index.ts +37 -0
- package/src/core/pluresdb/schema-registry.ts +162 -0
- package/src/core/pluresdb/store.ts +446 -0
- package/src/index.ts +109 -0
- package/src/integrations/code-canvas.ts +717 -0
- package/src/integrations/pluresdb.ts +140 -29
- package/src/integrations/state-docs.ts +710 -0
- package/src/integrations/tauri.ts +638 -0
- package/src/integrations/unum.ts +395 -0
- package/src/runtime/terminal-adapter.ts +184 -23
- package/dist/adapters/cli.d.ts.map +0 -1
- package/dist/adapters/cli.js.map +0 -1
- package/dist/cli/commands/auth.d.ts.map +0 -1
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/cli/commands/cloud.d.ts.map +0 -1
- package/dist/cli/commands/cloud.js.map +0 -1
- package/dist/cli/commands/generate.d.ts.map +0 -1
- package/dist/cli/commands/generate.js.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cloud/auth.d.ts.map +0 -1
- package/dist/cloud/auth.js.map +0 -1
- package/dist/cloud/billing.d.ts.map +0 -1
- package/dist/cloud/billing.js.map +0 -1
- package/dist/cloud/client.d.ts.map +0 -1
- package/dist/cloud/client.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/marketplace.d.ts.map +0 -1
- package/dist/cloud/marketplace.js.map +0 -1
- package/dist/cloud/provisioning.d.ts.map +0 -1
- package/dist/cloud/provisioning.js.map +0 -1
- package/dist/cloud/relay/endpoints.d.ts.map +0 -1
- package/dist/cloud/relay/endpoints.js.map +0 -1
- package/dist/cloud/relay/health/index.d.ts.map +0 -1
- package/dist/cloud/relay/health/index.js.map +0 -1
- package/dist/cloud/relay/stats/index.d.ts.map +0 -1
- package/dist/cloud/relay/stats/index.js.map +0 -1
- package/dist/cloud/relay/sync/index.d.ts.map +0 -1
- package/dist/cloud/relay/sync/index.js.map +0 -1
- package/dist/cloud/relay/usage/index.d.ts.map +0 -1
- package/dist/cloud/relay/usage/index.js.map +0 -1
- package/dist/cloud/sponsors.d.ts.map +0 -1
- package/dist/cloud/sponsors.js.map +0 -1
- package/dist/cloud/types.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/core/actors.d.ts.map +0 -1
- package/dist/core/actors.js.map +0 -1
- package/dist/core/component/generator.d.ts.map +0 -1
- package/dist/core/component/generator.js.map +0 -1
- package/dist/core/engine.d.ts.map +0 -1
- package/dist/core/engine.js.map +0 -1
- package/dist/core/introspection.d.ts.map +0 -1
- package/dist/core/introspection.js.map +0 -1
- package/dist/core/logic/generator.d.ts.map +0 -1
- package/dist/core/logic/generator.js.map +0 -1
- package/dist/core/pluresdb/generator.d.ts.map +0 -1
- package/dist/core/pluresdb/generator.js.map +0 -1
- package/dist/core/protocol.d.ts.map +0 -1
- package/dist/core/protocol.js.map +0 -1
- package/dist/core/rules.d.ts.map +0 -1
- package/dist/core/rules.js.map +0 -1
- package/dist/core/schema/loader.d.ts.map +0 -1
- package/dist/core/schema/loader.js.map +0 -1
- package/dist/core/schema/normalize.d.ts.map +0 -1
- package/dist/core/schema/normalize.js.map +0 -1
- package/dist/core/schema/types.d.ts.map +0 -1
- package/dist/core/schema/types.js.map +0 -1
- package/dist/dsl/index.d.ts.map +0 -1
- package/dist/dsl/index.js.map +0 -1
- package/dist/dsl.d.ts.map +0 -1
- package/dist/dsl.js.map +0 -1
- package/dist/examples/advanced-todo/index.d.ts.map +0 -1
- package/dist/examples/advanced-todo/index.js.map +0 -1
- package/dist/examples/auth-basic/index.d.ts.map +0 -1
- package/dist/examples/auth-basic/index.js.map +0 -1
- package/dist/examples/cart/index.d.ts.map +0 -1
- package/dist/examples/cart/index.js.map +0 -1
- package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
- package/dist/examples/hero-ecommerce/index.js.map +0 -1
- package/dist/examples/svelte-counter/index.d.ts.map +0 -1
- package/dist/examples/svelte-counter/index.js.map +0 -1
- package/dist/flows.d.ts.map +0 -1
- package/dist/flows.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrations/pluresdb.d.ts +0 -56
- package/dist/integrations/pluresdb.d.ts.map +0 -1
- package/dist/integrations/pluresdb.js +0 -46
- package/dist/integrations/pluresdb.js.map +0 -1
- package/dist/integrations/svelte.d.ts.map +0 -1
- package/dist/integrations/svelte.js.map +0 -1
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js.map +0 -1
- package/dist/runtime/terminal-adapter.d.ts.map +0 -1
- package/dist/runtime/terminal-adapter.js +0 -113
- package/dist/runtime/terminal-adapter.js.map +0 -1
- package/dist/step.d.ts.map +0 -1
- package/dist/step.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
- /package/dist/{adapters → src/adapters}/cli.js +0 -0
- /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/auth.js +0 -0
- /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
- /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/generate.js +0 -0
- /package/dist/{cli → src/cli}/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/auth.js +0 -0
- /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/billing.js +0 -0
- /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/client.js +0 -0
- /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/index.js +0 -0
- /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
- /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
- /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
- /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/types.js +0 -0
- /package/dist/{components → src/components}/index.d.ts +0 -0
- /package/dist/{components → src/components}/index.js +0 -0
- /package/dist/{core → src/core}/actors.d.ts +0 -0
- /package/dist/{core → src/core}/actors.js +0 -0
- /package/dist/{core → src/core}/component/generator.d.ts +0 -0
- /package/dist/{core → src/core}/engine.d.ts +0 -0
- /package/dist/{core → src/core}/engine.js +0 -0
- /package/dist/{core → src/core}/introspection.d.ts +0 -0
- /package/dist/{core → src/core}/introspection.js +0 -0
- /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
- /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
- /package/dist/{core → src/core}/protocol.d.ts +0 -0
- /package/dist/{core → src/core}/protocol.js +0 -0
- /package/dist/{core → src/core}/rules.d.ts +0 -0
- /package/dist/{core → src/core}/rules.js +0 -0
- /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
- /package/dist/{core → src/core}/schema/loader.js +0 -0
- /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
- /package/dist/{core → src/core}/schema/normalize.js +0 -0
- /package/dist/{core → src/core}/schema/types.d.ts +0 -0
- /package/dist/{core → src/core}/schema/types.js +0 -0
- /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
- /package/dist/{dsl → src/dsl}/index.js +0 -0
- /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
- /package/dist/{dsl.js → src/dsl.js} +0 -0
- /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
- /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
- /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/cart/index.js +0 -0
- /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
- /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
- /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
- /package/dist/{flows.js → src/flows.js} +0 -0
- /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
- /package/dist/{integrations → src/integrations}/svelte.js +0 -0
- /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
- /package/dist/{registry.js → src/registry.js} +0 -0
- /package/dist/{step.d.ts → src/step.d.ts} +0 -0
- /package/dist/{step.js → src/step.js} +0 -0
- /package/dist/{types.d.ts → src/types.d.ts} +0 -0
- /package/dist/{types.js → src/types.js} +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# What is Praxis?
|
|
2
|
+
|
|
3
|
+
Praxis is a **schema-driven application framework** that unifies data modeling, business logic, UI generation, and documentation into a single coherent system. It's designed for building modern, local-first, distributed applications.
|
|
4
|
+
|
|
5
|
+
## Core Philosophy
|
|
6
|
+
|
|
7
|
+
### 1. Schema as Single Source of Truth
|
|
8
|
+
|
|
9
|
+
In Praxis, everything starts with a schema. The **Praxis Schema Format (PSF)** defines your:
|
|
10
|
+
- Data models and relationships
|
|
11
|
+
- Business logic (facts, events, rules, constraints)
|
|
12
|
+
- UI components and their behavior
|
|
13
|
+
- API endpoints and integrations
|
|
14
|
+
- Documentation and diagrams
|
|
15
|
+
|
|
16
|
+
From this single schema, Praxis generates:
|
|
17
|
+
- TypeScript types and interfaces
|
|
18
|
+
- Svelte UI components
|
|
19
|
+
- Database schemas for PluresDB
|
|
20
|
+
- API routes and handlers
|
|
21
|
+
- Markdown documentation with Mermaid diagrams
|
|
22
|
+
|
|
23
|
+
### 2. Pure, Functional Logic
|
|
24
|
+
|
|
25
|
+
The Praxis logic engine is built on pure functions:
|
|
26
|
+
- **Facts**: Typed propositions about your domain ("User is logged in", "Cart contains 3 items")
|
|
27
|
+
- **Events**: Things that happen ("User clicked login", "Item added to cart")
|
|
28
|
+
- **Rules**: Pure functions that derive facts from events
|
|
29
|
+
- **Constraints**: Invariants that must always hold
|
|
30
|
+
|
|
31
|
+
This makes your application logic:
|
|
32
|
+
- Predictable and testable
|
|
33
|
+
- Serializable (JSON-friendly for cross-language support)
|
|
34
|
+
- Easy to reason about and debug
|
|
35
|
+
|
|
36
|
+
### 3. Local-First by Default
|
|
37
|
+
|
|
38
|
+
Praxis applications work offline first:
|
|
39
|
+
- Data stored locally in PluresDB
|
|
40
|
+
- Changes sync when connected
|
|
41
|
+
- Conflict resolution built-in
|
|
42
|
+
- Users maintain ownership of their data
|
|
43
|
+
|
|
44
|
+
### 4. Visual and Code Workflows
|
|
45
|
+
|
|
46
|
+
Praxis supports both visual and code-based development:
|
|
47
|
+
- **CodeCanvas**: Visual schema and logic editor
|
|
48
|
+
- **Code-first**: Write TypeScript schemas directly
|
|
49
|
+
- **Bidirectional sync**: Changes in either flow back to the other
|
|
50
|
+
|
|
51
|
+
## How It Works
|
|
52
|
+
|
|
53
|
+
```mermaid
|
|
54
|
+
flowchart LR
|
|
55
|
+
subgraph Define["1. Define Schema"]
|
|
56
|
+
PSF[schema.psf.json]
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
subgraph Generate["2. Generate Code"]
|
|
60
|
+
Types[Types]
|
|
61
|
+
Components[Components]
|
|
62
|
+
Logic[Logic]
|
|
63
|
+
Docs[Docs]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
subgraph Build["3. Build App"]
|
|
67
|
+
UI[UI Layer]
|
|
68
|
+
Engine[Logic Engine]
|
|
69
|
+
Data[Data Layer]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
subgraph Deploy["4. Deploy"]
|
|
73
|
+
Web[Web]
|
|
74
|
+
Desktop[Desktop]
|
|
75
|
+
Mobile[Mobile]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
PSF --> Types
|
|
79
|
+
PSF --> Components
|
|
80
|
+
PSF --> Logic
|
|
81
|
+
PSF --> Docs
|
|
82
|
+
|
|
83
|
+
Types --> UI
|
|
84
|
+
Components --> UI
|
|
85
|
+
Logic --> Engine
|
|
86
|
+
Types --> Data
|
|
87
|
+
|
|
88
|
+
UI --> Web
|
|
89
|
+
UI --> Desktop
|
|
90
|
+
UI --> Mobile
|
|
91
|
+
Engine --> Web
|
|
92
|
+
Engine --> Desktop
|
|
93
|
+
Engine --> Mobile
|
|
94
|
+
Data --> Web
|
|
95
|
+
Data --> Desktop
|
|
96
|
+
Data --> Mobile
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Example: Simple Counter
|
|
100
|
+
|
|
101
|
+
### 1. Define the Schema
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"$version": "1.0.0",
|
|
106
|
+
"id": "counter-app",
|
|
107
|
+
"name": "Counter",
|
|
108
|
+
"facts": [
|
|
109
|
+
{
|
|
110
|
+
"id": "fact_incremented",
|
|
111
|
+
"tag": "Incremented",
|
|
112
|
+
"description": "Counter was incremented",
|
|
113
|
+
"payload": { "type": "object", "properties": { "value": { "type": "number" } } }
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"events": [
|
|
117
|
+
{
|
|
118
|
+
"id": "event_increment",
|
|
119
|
+
"tag": "Increment",
|
|
120
|
+
"description": "Increment the counter",
|
|
121
|
+
"payload": { "type": "object", "properties": {} }
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"rules": [
|
|
125
|
+
{
|
|
126
|
+
"id": "counter.increment",
|
|
127
|
+
"name": "Increment Counter",
|
|
128
|
+
"triggers": ["Increment"],
|
|
129
|
+
"then": {
|
|
130
|
+
"inline": "return [{ tag: 'Incremented', payload: { value: state.context.count + 1 } }];",
|
|
131
|
+
"language": "typescript"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 2. Use the Generated Code
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { createPraxisEngine, PraxisRegistry } from '@plures/praxis';
|
|
142
|
+
|
|
143
|
+
// Types and events are generated from schema
|
|
144
|
+
import { Increment, Incremented } from './generated/events';
|
|
145
|
+
import { incrementRule } from './generated/rules';
|
|
146
|
+
|
|
147
|
+
const registry = new PraxisRegistry();
|
|
148
|
+
registry.registerRule(incrementRule);
|
|
149
|
+
|
|
150
|
+
const engine = createPraxisEngine({
|
|
151
|
+
initialContext: { count: 0 },
|
|
152
|
+
registry,
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Dispatch events
|
|
156
|
+
engine.dispatch([Increment.create({})]);
|
|
157
|
+
console.log(engine.getContext()); // { count: 1 }
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Key Components
|
|
161
|
+
|
|
162
|
+
### Praxis Schema Format (PSF)
|
|
163
|
+
|
|
164
|
+
The JSON/AST format that defines your application:
|
|
165
|
+
- Version-controlled and diff-friendly
|
|
166
|
+
- Human-readable and machine-parseable
|
|
167
|
+
- Supports composition and inheritance
|
|
168
|
+
- Extensible with custom metadata
|
|
169
|
+
|
|
170
|
+
### Logic Engine
|
|
171
|
+
|
|
172
|
+
The pure functional core:
|
|
173
|
+
- Processes events to produce facts
|
|
174
|
+
- Maintains immutable state
|
|
175
|
+
- Supports undo/redo and time-travel
|
|
176
|
+
- Cross-language compatible (TypeScript, C#, PowerShell)
|
|
177
|
+
|
|
178
|
+
### Component Factory
|
|
179
|
+
|
|
180
|
+
Generates Svelte components:
|
|
181
|
+
- Form components with validation
|
|
182
|
+
- List and display components
|
|
183
|
+
- Navigation components
|
|
184
|
+
- Canvas-compatible output
|
|
185
|
+
|
|
186
|
+
### PluresDB Integration
|
|
187
|
+
|
|
188
|
+
Local-first data layer:
|
|
189
|
+
- Reactive queries and subscriptions
|
|
190
|
+
- Automatic sync with conflict resolution
|
|
191
|
+
- Event sourcing support
|
|
192
|
+
- Works offline
|
|
193
|
+
|
|
194
|
+
### CodeCanvas
|
|
195
|
+
|
|
196
|
+
Visual development environment:
|
|
197
|
+
- Drag-and-drop schema design
|
|
198
|
+
- Logic flow visualization
|
|
199
|
+
- Live component preview
|
|
200
|
+
- Two-way sync with code
|
|
201
|
+
|
|
202
|
+
## Use Cases
|
|
203
|
+
|
|
204
|
+
### Web Applications
|
|
205
|
+
Build modern single-page applications with reactive data and offline support.
|
|
206
|
+
|
|
207
|
+
### Desktop Applications
|
|
208
|
+
Use Tauri to create cross-platform desktop apps from the same codebase.
|
|
209
|
+
|
|
210
|
+
### Mobile Applications
|
|
211
|
+
Deploy to mobile with Svelte Native or Tauri Mobile.
|
|
212
|
+
|
|
213
|
+
### Distributed Systems
|
|
214
|
+
Coordinate multiple nodes with built-in DSC/MCP orchestration.
|
|
215
|
+
|
|
216
|
+
### Knowledge Management
|
|
217
|
+
Create interconnected data systems with PluresDB relationships.
|
|
218
|
+
|
|
219
|
+
## Comparison
|
|
220
|
+
|
|
221
|
+
| Feature | Praxis | Traditional MVC | Redux | XState |
|
|
222
|
+
|---------|--------|-----------------|-------|--------|
|
|
223
|
+
| Schema-driven | ✅ | ❌ | ❌ | ❌ |
|
|
224
|
+
| Logic engine | ✅ | ❌ | ✅ | ✅ |
|
|
225
|
+
| UI generation | ✅ | ❌ | ❌ | ❌ |
|
|
226
|
+
| Local-first | ✅ | ❌ | ❌ | ❌ |
|
|
227
|
+
| Visual editor | ✅ | ❌ | ❌ | ✅ |
|
|
228
|
+
| Cross-language | ✅ | ❌ | ❌ | ❌ |
|
|
229
|
+
| Auto-docs | ✅ | ❌ | ❌ | ❌ |
|
|
230
|
+
|
|
231
|
+
## Getting Started
|
|
232
|
+
|
|
233
|
+
Ready to build with Praxis? Check out:
|
|
234
|
+
- [Getting Started Guide](../guides/getting-started.md)
|
|
235
|
+
- [Schema Model](./schema-model.md)
|
|
236
|
+
- [Example Applications](../../examples/)
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
**Next:** [Schema Model](./schema-model.md)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Praxis Tutorials
|
|
2
|
+
|
|
3
|
+
Hands-on tutorials for learning Praxis from scratch.
|
|
4
|
+
|
|
5
|
+
## Beginner Tutorials
|
|
6
|
+
|
|
7
|
+
### [Build Your First App](./first-app.md)
|
|
8
|
+
Create a simple counter application to learn the basics of Praxis.
|
|
9
|
+
- Setting up a project
|
|
10
|
+
- Defining facts and events
|
|
11
|
+
- Creating rules
|
|
12
|
+
- Connecting to UI
|
|
13
|
+
|
|
14
|
+
### [Todo with PluresDB](./todo-pluresdb.md)
|
|
15
|
+
Build a local-first todo app with offline support.
|
|
16
|
+
- PluresDB integration
|
|
17
|
+
- Reactive queries
|
|
18
|
+
- Offline storage
|
|
19
|
+
- Sync when connected
|
|
20
|
+
|
|
21
|
+
## Intermediate Tutorials
|
|
22
|
+
|
|
23
|
+
### [Form Builder](./form-builder.md)
|
|
24
|
+
Create a dynamic form builder application.
|
|
25
|
+
- Complex schema composition
|
|
26
|
+
- Validation logic
|
|
27
|
+
- Component generation
|
|
28
|
+
- Drag-and-drop UI
|
|
29
|
+
|
|
30
|
+
### [E-commerce Cart](./ecommerce-cart.md)
|
|
31
|
+
Build a shopping cart with checkout flow.
|
|
32
|
+
- Multi-step flows
|
|
33
|
+
- State machines
|
|
34
|
+
- Constraints and validation
|
|
35
|
+
- Payment integration patterns
|
|
36
|
+
|
|
37
|
+
## Advanced Tutorials
|
|
38
|
+
|
|
39
|
+
### [Real-Time Chat](./realtime-chat.md)
|
|
40
|
+
Create a chat application with Praxis Cloud sync.
|
|
41
|
+
- Cloud relay integration
|
|
42
|
+
- CRDT conflict resolution
|
|
43
|
+
- Presence and typing indicators
|
|
44
|
+
- Message history
|
|
45
|
+
|
|
46
|
+
### [Distributed Orchestration](./distributed-orchestration.md)
|
|
47
|
+
Build a self-orchestrating distributed system.
|
|
48
|
+
- DSC/MCP coordination
|
|
49
|
+
- Node discovery
|
|
50
|
+
- State distribution
|
|
51
|
+
- Health monitoring
|
|
52
|
+
|
|
53
|
+
## Quick Start Paths
|
|
54
|
+
|
|
55
|
+
### For Web Developers
|
|
56
|
+
1. [Build Your First App](./first-app.md)
|
|
57
|
+
2. [Todo with PluresDB](./todo-pluresdb.md)
|
|
58
|
+
3. [E-commerce Cart](./ecommerce-cart.md)
|
|
59
|
+
|
|
60
|
+
### For Backend Developers
|
|
61
|
+
1. [Build Your First App](./first-app.md)
|
|
62
|
+
2. [Real-Time Chat](./realtime-chat.md)
|
|
63
|
+
3. [Distributed Orchestration](./distributed-orchestration.md)
|
|
64
|
+
|
|
65
|
+
### For Full-Stack Developers
|
|
66
|
+
Complete all tutorials in order!
|
|
67
|
+
|
|
68
|
+
## Prerequisites
|
|
69
|
+
|
|
70
|
+
Before starting tutorials, ensure you have:
|
|
71
|
+
- Node.js 18+
|
|
72
|
+
- npm or yarn
|
|
73
|
+
- Basic TypeScript knowledge
|
|
74
|
+
- Text editor (VS Code recommended)
|
|
75
|
+
|
|
76
|
+
## Getting Help
|
|
77
|
+
|
|
78
|
+
- [GitHub Discussions](https://github.com/plures/praxis/discussions)
|
|
79
|
+
- [Documentation](../README.md)
|
|
80
|
+
- [Examples](../../examples/)
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
**Start here:** [Build Your First App](./first-app.md)
|