@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,664 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Praxis Schema Format (PSF) Types
|
|
3
|
+
*
|
|
4
|
+
* PSF is the canonical AST format that serves as the single source of truth.
|
|
5
|
+
* All code, canvas, and documentation are derived from or synchronized with PSF.
|
|
6
|
+
*
|
|
7
|
+
* Design principles:
|
|
8
|
+
* - JSON-serializable for persistence and transmission
|
|
9
|
+
* - Supports bidirectional code ↔ canvas sync
|
|
10
|
+
* - Complete representation of all Praxis concepts
|
|
11
|
+
* - Extensible with metadata and custom properties
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* PSF Schema version
|
|
16
|
+
*/
|
|
17
|
+
export const PSF_VERSION = '1.0.0' as const;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Root PSF Schema Document
|
|
21
|
+
*/
|
|
22
|
+
export interface PSFSchema {
|
|
23
|
+
/** PSF format version */
|
|
24
|
+
$version: typeof PSF_VERSION;
|
|
25
|
+
/** Schema identifier */
|
|
26
|
+
id: string;
|
|
27
|
+
/** Human-readable name */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Description */
|
|
30
|
+
description?: string;
|
|
31
|
+
/** Creation timestamp */
|
|
32
|
+
createdAt?: string;
|
|
33
|
+
/** Last modified timestamp */
|
|
34
|
+
modifiedAt?: string;
|
|
35
|
+
/** Facts defined in this schema */
|
|
36
|
+
facts: PSFFact[];
|
|
37
|
+
/** Events defined in this schema */
|
|
38
|
+
events: PSFEvent[];
|
|
39
|
+
/** Rules defined in this schema */
|
|
40
|
+
rules: PSFRule[];
|
|
41
|
+
/** Constraints defined in this schema */
|
|
42
|
+
constraints: PSFConstraint[];
|
|
43
|
+
/** Data models */
|
|
44
|
+
models: PSFModel[];
|
|
45
|
+
/** UI Components */
|
|
46
|
+
components: PSFComponent[];
|
|
47
|
+
/** Flows/Orchestrations */
|
|
48
|
+
flows: PSFFlow[];
|
|
49
|
+
/** Documentation metadata */
|
|
50
|
+
docs?: PSFDocs;
|
|
51
|
+
/** Additional metadata */
|
|
52
|
+
metadata?: Record<string, unknown>;
|
|
53
|
+
/** Canvas layout information for visual editing */
|
|
54
|
+
canvas?: PSFCanvasLayout;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* PSF Fact Definition
|
|
59
|
+
*/
|
|
60
|
+
export interface PSFFact {
|
|
61
|
+
/** Unique identifier */
|
|
62
|
+
id: string;
|
|
63
|
+
/** Fact tag (for type discrimination) */
|
|
64
|
+
tag: string;
|
|
65
|
+
/** Description */
|
|
66
|
+
description?: string;
|
|
67
|
+
/** Payload schema */
|
|
68
|
+
payload: PSFPayloadSchema;
|
|
69
|
+
/** Documentation hints */
|
|
70
|
+
docs?: PSFDocsHint;
|
|
71
|
+
/** Canvas position */
|
|
72
|
+
position?: PSFPosition;
|
|
73
|
+
/** Metadata */
|
|
74
|
+
meta?: Record<string, unknown>;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* PSF Event Definition
|
|
79
|
+
*/
|
|
80
|
+
export interface PSFEvent {
|
|
81
|
+
/** Unique identifier */
|
|
82
|
+
id: string;
|
|
83
|
+
/** Event tag (for type discrimination) */
|
|
84
|
+
tag: string;
|
|
85
|
+
/** Description */
|
|
86
|
+
description?: string;
|
|
87
|
+
/** Payload schema */
|
|
88
|
+
payload: PSFPayloadSchema;
|
|
89
|
+
/** Documentation hints */
|
|
90
|
+
docs?: PSFDocsHint;
|
|
91
|
+
/** Canvas position */
|
|
92
|
+
position?: PSFPosition;
|
|
93
|
+
/** Metadata */
|
|
94
|
+
meta?: Record<string, unknown>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* PSF Rule Definition
|
|
99
|
+
*/
|
|
100
|
+
export interface PSFRule {
|
|
101
|
+
/** Unique identifier */
|
|
102
|
+
id: string;
|
|
103
|
+
/** Human-readable name */
|
|
104
|
+
name?: string;
|
|
105
|
+
/** Description */
|
|
106
|
+
description: string;
|
|
107
|
+
/** Events that trigger this rule */
|
|
108
|
+
triggers?: string[];
|
|
109
|
+
/** Condition expression (DSL or reference) */
|
|
110
|
+
when?: PSFExpression;
|
|
111
|
+
/** Action expression (DSL or reference) */
|
|
112
|
+
then: PSFExpression;
|
|
113
|
+
/** Priority (higher executes first) */
|
|
114
|
+
priority?: number;
|
|
115
|
+
/** Documentation hints */
|
|
116
|
+
docs?: PSFDocsHint;
|
|
117
|
+
/** Canvas position */
|
|
118
|
+
position?: PSFPosition;
|
|
119
|
+
/** Metadata */
|
|
120
|
+
meta?: Record<string, unknown>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* PSF Constraint Definition
|
|
125
|
+
*/
|
|
126
|
+
export interface PSFConstraint {
|
|
127
|
+
/** Unique identifier */
|
|
128
|
+
id: string;
|
|
129
|
+
/** Human-readable name */
|
|
130
|
+
name?: string;
|
|
131
|
+
/** Description */
|
|
132
|
+
description: string;
|
|
133
|
+
/** Check expression */
|
|
134
|
+
check: PSFExpression;
|
|
135
|
+
/** Error message when violated */
|
|
136
|
+
errorMessage: string;
|
|
137
|
+
/** Severity level */
|
|
138
|
+
severity?: 'error' | 'warning' | 'info';
|
|
139
|
+
/** Documentation hints */
|
|
140
|
+
docs?: PSFDocsHint;
|
|
141
|
+
/** Canvas position */
|
|
142
|
+
position?: PSFPosition;
|
|
143
|
+
/** Metadata */
|
|
144
|
+
meta?: Record<string, unknown>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* PSF Data Model
|
|
149
|
+
*/
|
|
150
|
+
export interface PSFModel {
|
|
151
|
+
/** Unique identifier */
|
|
152
|
+
id: string;
|
|
153
|
+
/** Model name */
|
|
154
|
+
name: string;
|
|
155
|
+
/** Description */
|
|
156
|
+
description?: string;
|
|
157
|
+
/** Fields */
|
|
158
|
+
fields: PSFField[];
|
|
159
|
+
/** Relationships to other models */
|
|
160
|
+
relationships?: PSFRelationship[];
|
|
161
|
+
/** Indexes */
|
|
162
|
+
indexes?: PSFIndex[];
|
|
163
|
+
/** Model-level constraints */
|
|
164
|
+
constraints?: PSFModelConstraint[];
|
|
165
|
+
/** Documentation hints */
|
|
166
|
+
docs?: PSFDocsHint;
|
|
167
|
+
/** Canvas position */
|
|
168
|
+
position?: PSFPosition;
|
|
169
|
+
/** Metadata */
|
|
170
|
+
meta?: Record<string, unknown>;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* PSF Model Field
|
|
175
|
+
*/
|
|
176
|
+
export interface PSFField {
|
|
177
|
+
/** Field name */
|
|
178
|
+
name: string;
|
|
179
|
+
/** Field type */
|
|
180
|
+
type: PSFFieldType;
|
|
181
|
+
/** Is optional */
|
|
182
|
+
optional?: boolean;
|
|
183
|
+
/** Default value */
|
|
184
|
+
default?: unknown;
|
|
185
|
+
/** Description */
|
|
186
|
+
description?: string;
|
|
187
|
+
/** Validation rules */
|
|
188
|
+
validation?: PSFValidation[];
|
|
189
|
+
/** UI hints for form generation */
|
|
190
|
+
ui?: PSFUIHint;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* PSF Field Type
|
|
195
|
+
*/
|
|
196
|
+
export type PSFFieldType =
|
|
197
|
+
| 'string'
|
|
198
|
+
| 'number'
|
|
199
|
+
| 'boolean'
|
|
200
|
+
| 'date'
|
|
201
|
+
| 'datetime'
|
|
202
|
+
| 'uuid'
|
|
203
|
+
| { array: PSFFieldType }
|
|
204
|
+
| { object: Record<string, PSFField> }
|
|
205
|
+
| { reference: string }
|
|
206
|
+
| { enum: string[] }
|
|
207
|
+
| { union: PSFFieldType[] };
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* PSF Validation Rule
|
|
211
|
+
*/
|
|
212
|
+
export interface PSFValidation {
|
|
213
|
+
/** Validation type */
|
|
214
|
+
type: 'required' | 'min' | 'max' | 'minLength' | 'maxLength' | 'pattern' | 'email' | 'url' | 'custom';
|
|
215
|
+
/** Validation value */
|
|
216
|
+
value?: unknown;
|
|
217
|
+
/** Error message */
|
|
218
|
+
message?: string;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* PSF Model Constraint
|
|
223
|
+
*/
|
|
224
|
+
export interface PSFModelConstraint {
|
|
225
|
+
/** Constraint identifier */
|
|
226
|
+
id: string;
|
|
227
|
+
/** Constraint type */
|
|
228
|
+
type: 'unique' | 'check' | 'foreign_key';
|
|
229
|
+
/** Fields involved */
|
|
230
|
+
fields: string[];
|
|
231
|
+
/** Description */
|
|
232
|
+
description?: string;
|
|
233
|
+
/** Additional options */
|
|
234
|
+
options?: Record<string, unknown>;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* PSF Relationship
|
|
239
|
+
*/
|
|
240
|
+
export interface PSFRelationship {
|
|
241
|
+
/** Relationship name */
|
|
242
|
+
name: string;
|
|
243
|
+
/** Relationship type */
|
|
244
|
+
type: 'one-to-one' | 'one-to-many' | 'many-to-many';
|
|
245
|
+
/** Target model */
|
|
246
|
+
target: string;
|
|
247
|
+
/** Foreign key field */
|
|
248
|
+
foreignKey?: string;
|
|
249
|
+
/** Cascade behavior */
|
|
250
|
+
cascade?: boolean;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* PSF Index
|
|
255
|
+
*/
|
|
256
|
+
export interface PSFIndex {
|
|
257
|
+
/** Index name */
|
|
258
|
+
name: string;
|
|
259
|
+
/** Fields to index */
|
|
260
|
+
fields: string[];
|
|
261
|
+
/** Is unique index */
|
|
262
|
+
unique?: boolean;
|
|
263
|
+
/** Index type */
|
|
264
|
+
type?: 'btree' | 'hash' | 'fulltext';
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* PSF Component Definition
|
|
269
|
+
*/
|
|
270
|
+
export interface PSFComponent {
|
|
271
|
+
/** Unique identifier */
|
|
272
|
+
id: string;
|
|
273
|
+
/** Component name */
|
|
274
|
+
name: string;
|
|
275
|
+
/** Component type */
|
|
276
|
+
type: 'form' | 'display' | 'list' | 'navigation' | 'editor' | 'custom';
|
|
277
|
+
/** Description */
|
|
278
|
+
description?: string;
|
|
279
|
+
/** Bound model */
|
|
280
|
+
model?: string;
|
|
281
|
+
/** Component properties */
|
|
282
|
+
props: PSFComponentProp[];
|
|
283
|
+
/** Component events */
|
|
284
|
+
events: PSFComponentEvent[];
|
|
285
|
+
/** Layout configuration */
|
|
286
|
+
layout?: PSFLayout;
|
|
287
|
+
/** Styling configuration */
|
|
288
|
+
styling?: PSFStyling;
|
|
289
|
+
/** Documentation hints */
|
|
290
|
+
docs?: PSFDocsHint;
|
|
291
|
+
/** Canvas position */
|
|
292
|
+
position?: PSFPosition;
|
|
293
|
+
/** Metadata */
|
|
294
|
+
meta?: Record<string, unknown>;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* PSF Component Property
|
|
299
|
+
*/
|
|
300
|
+
export interface PSFComponentProp {
|
|
301
|
+
/** Property name */
|
|
302
|
+
name: string;
|
|
303
|
+
/** Property type */
|
|
304
|
+
type: string;
|
|
305
|
+
/** Is required */
|
|
306
|
+
required?: boolean;
|
|
307
|
+
/** Default value */
|
|
308
|
+
default?: unknown;
|
|
309
|
+
/** Description */
|
|
310
|
+
description?: string;
|
|
311
|
+
/** Binding expression */
|
|
312
|
+
binding?: PSFExpression;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* PSF Component Event
|
|
317
|
+
*/
|
|
318
|
+
export interface PSFComponentEvent {
|
|
319
|
+
/** Event name */
|
|
320
|
+
name: string;
|
|
321
|
+
/** Payload type */
|
|
322
|
+
payload?: string;
|
|
323
|
+
/** Description */
|
|
324
|
+
description?: string;
|
|
325
|
+
/** Handler expression */
|
|
326
|
+
handler?: PSFExpression;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* PSF Layout Configuration
|
|
331
|
+
*/
|
|
332
|
+
export interface PSFLayout {
|
|
333
|
+
/** Layout type */
|
|
334
|
+
type: 'stack' | 'grid' | 'flex' | 'absolute';
|
|
335
|
+
/** Direction */
|
|
336
|
+
direction?: 'horizontal' | 'vertical';
|
|
337
|
+
/** Gap between items */
|
|
338
|
+
gap?: number | string;
|
|
339
|
+
/** Padding */
|
|
340
|
+
padding?: number | string;
|
|
341
|
+
/** Alignment */
|
|
342
|
+
align?: 'start' | 'center' | 'end' | 'stretch';
|
|
343
|
+
/** Justify */
|
|
344
|
+
justify?: 'start' | 'center' | 'end' | 'between' | 'around';
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* PSF Styling Configuration
|
|
349
|
+
*/
|
|
350
|
+
export interface PSFStyling {
|
|
351
|
+
/** CSS classes */
|
|
352
|
+
classes?: string[];
|
|
353
|
+
/** Inline styles */
|
|
354
|
+
styles?: Record<string, string>;
|
|
355
|
+
/** Theme tokens */
|
|
356
|
+
theme?: Record<string, string>;
|
|
357
|
+
/** Variant */
|
|
358
|
+
variant?: string;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* PSF Flow/Orchestration
|
|
363
|
+
*/
|
|
364
|
+
export interface PSFFlow {
|
|
365
|
+
/** Unique identifier */
|
|
366
|
+
id: string;
|
|
367
|
+
/** Flow name */
|
|
368
|
+
name: string;
|
|
369
|
+
/** Description */
|
|
370
|
+
description?: string;
|
|
371
|
+
/** Flow type */
|
|
372
|
+
type: 'sequence' | 'parallel' | 'state-machine' | 'saga';
|
|
373
|
+
/** Flow steps */
|
|
374
|
+
steps: PSFFlowStep[];
|
|
375
|
+
/** Initial state/step */
|
|
376
|
+
initial?: string;
|
|
377
|
+
/** Error handling */
|
|
378
|
+
errorHandling?: PSFErrorHandling;
|
|
379
|
+
/** Documentation hints */
|
|
380
|
+
docs?: PSFDocsHint;
|
|
381
|
+
/** Canvas position */
|
|
382
|
+
position?: PSFPosition;
|
|
383
|
+
/** Metadata */
|
|
384
|
+
meta?: Record<string, unknown>;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* PSF Flow Step
|
|
389
|
+
*/
|
|
390
|
+
export interface PSFFlowStep {
|
|
391
|
+
/** Step identifier */
|
|
392
|
+
id: string;
|
|
393
|
+
/** Step name */
|
|
394
|
+
name?: string;
|
|
395
|
+
/** Step type */
|
|
396
|
+
type: 'action' | 'condition' | 'wait' | 'parallel' | 'terminal';
|
|
397
|
+
/** Action expression */
|
|
398
|
+
action?: PSFExpression;
|
|
399
|
+
/** Condition expression */
|
|
400
|
+
condition?: PSFExpression;
|
|
401
|
+
/** Next step(s) */
|
|
402
|
+
next?: string | { [key: string]: string };
|
|
403
|
+
/** Timeout in milliseconds */
|
|
404
|
+
timeout?: number;
|
|
405
|
+
/** Retry configuration */
|
|
406
|
+
retry?: PSFRetry;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* PSF Retry Configuration
|
|
411
|
+
*/
|
|
412
|
+
export interface PSFRetry {
|
|
413
|
+
/** Maximum retry attempts */
|
|
414
|
+
maxAttempts: number;
|
|
415
|
+
/** Delay between retries (ms) */
|
|
416
|
+
delay: number;
|
|
417
|
+
/** Exponential backoff factor */
|
|
418
|
+
backoff?: number;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* PSF Error Handling
|
|
423
|
+
*/
|
|
424
|
+
export interface PSFErrorHandling {
|
|
425
|
+
/** Global error handler */
|
|
426
|
+
handler?: PSFExpression;
|
|
427
|
+
/** Compensation flow */
|
|
428
|
+
compensation?: string;
|
|
429
|
+
/** Error policy */
|
|
430
|
+
policy: 'fail-fast' | 'continue' | 'compensate';
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* PSF Documentation
|
|
435
|
+
*/
|
|
436
|
+
export interface PSFDocs {
|
|
437
|
+
/** Overview */
|
|
438
|
+
overview?: string;
|
|
439
|
+
/** Getting started guide */
|
|
440
|
+
gettingStarted?: string;
|
|
441
|
+
/** Examples */
|
|
442
|
+
examples?: PSFExample[];
|
|
443
|
+
/** Additional sections */
|
|
444
|
+
sections?: PSFDocSection[];
|
|
445
|
+
/** API documentation configuration */
|
|
446
|
+
api?: PSFAPIDoc;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* PSF Documentation Hint (for individual elements)
|
|
451
|
+
*/
|
|
452
|
+
export interface PSFDocsHint {
|
|
453
|
+
/** Brief summary */
|
|
454
|
+
summary?: string;
|
|
455
|
+
/** Detailed description */
|
|
456
|
+
details?: string;
|
|
457
|
+
/** Examples */
|
|
458
|
+
examples?: string[];
|
|
459
|
+
/** See also references */
|
|
460
|
+
seeAlso?: string[];
|
|
461
|
+
/** Tags for categorization */
|
|
462
|
+
tags?: string[];
|
|
463
|
+
/** Deprecation notice */
|
|
464
|
+
deprecated?: string | boolean;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* PSF Example
|
|
469
|
+
*/
|
|
470
|
+
export interface PSFExample {
|
|
471
|
+
/** Example name */
|
|
472
|
+
name: string;
|
|
473
|
+
/** Description */
|
|
474
|
+
description?: string;
|
|
475
|
+
/** Code snippet */
|
|
476
|
+
code: string;
|
|
477
|
+
/** Language */
|
|
478
|
+
language?: string;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* PSF Documentation Section
|
|
483
|
+
*/
|
|
484
|
+
export interface PSFDocSection {
|
|
485
|
+
/** Section title */
|
|
486
|
+
title: string;
|
|
487
|
+
/** Section content (markdown) */
|
|
488
|
+
content: string;
|
|
489
|
+
/** Subsections */
|
|
490
|
+
children?: PSFDocSection[];
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* PSF API Documentation Configuration
|
|
495
|
+
*/
|
|
496
|
+
export interface PSFAPIDoc {
|
|
497
|
+
/** Generate API docs */
|
|
498
|
+
generate?: boolean;
|
|
499
|
+
/** Output format */
|
|
500
|
+
format?: 'markdown' | 'html' | 'json';
|
|
501
|
+
/** Include private members */
|
|
502
|
+
includePrivate?: boolean;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* PSF Expression (can be inline or reference)
|
|
507
|
+
*/
|
|
508
|
+
export type PSFExpression =
|
|
509
|
+
| { inline: string; language?: 'typescript' | 'javascript' }
|
|
510
|
+
| { ref: string };
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* PSF Position (for canvas layout)
|
|
514
|
+
*/
|
|
515
|
+
export interface PSFPosition {
|
|
516
|
+
/** X coordinate */
|
|
517
|
+
x: number;
|
|
518
|
+
/** Y coordinate */
|
|
519
|
+
y: number;
|
|
520
|
+
/** Width (optional) */
|
|
521
|
+
width?: number;
|
|
522
|
+
/** Height (optional) */
|
|
523
|
+
height?: number;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* PSF UI Hint (for form generation)
|
|
528
|
+
*/
|
|
529
|
+
export interface PSFUIHint {
|
|
530
|
+
/** Display label */
|
|
531
|
+
label?: string;
|
|
532
|
+
/** Placeholder text */
|
|
533
|
+
placeholder?: string;
|
|
534
|
+
/** Help text */
|
|
535
|
+
help?: string;
|
|
536
|
+
/** Input type override */
|
|
537
|
+
inputType?: string;
|
|
538
|
+
/** Component to use */
|
|
539
|
+
component?: string;
|
|
540
|
+
/** Hidden from UI */
|
|
541
|
+
hidden?: boolean;
|
|
542
|
+
/** Read-only */
|
|
543
|
+
readonly?: boolean;
|
|
544
|
+
/** Display order */
|
|
545
|
+
order?: number;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* PSF Payload Schema
|
|
550
|
+
*/
|
|
551
|
+
export interface PSFPayloadSchema {
|
|
552
|
+
/** Schema type (usually 'object') */
|
|
553
|
+
type: 'object';
|
|
554
|
+
/** Properties */
|
|
555
|
+
properties: Record<string, PSFPropertySchema>;
|
|
556
|
+
/** Required properties */
|
|
557
|
+
required?: string[];
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* PSF Property Schema
|
|
562
|
+
*/
|
|
563
|
+
export interface PSFPropertySchema {
|
|
564
|
+
/** Property type */
|
|
565
|
+
type: PSFFieldType | 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
566
|
+
/** Description */
|
|
567
|
+
description?: string;
|
|
568
|
+
/** Default value */
|
|
569
|
+
default?: unknown;
|
|
570
|
+
/** Array items schema */
|
|
571
|
+
items?: PSFPropertySchema;
|
|
572
|
+
/** Nested properties (for object type) */
|
|
573
|
+
properties?: Record<string, PSFPropertySchema>;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* PSF Canvas Layout (for visual editor)
|
|
578
|
+
*/
|
|
579
|
+
export interface PSFCanvasLayout {
|
|
580
|
+
/** Viewport settings */
|
|
581
|
+
viewport?: {
|
|
582
|
+
x: number;
|
|
583
|
+
y: number;
|
|
584
|
+
zoom: number;
|
|
585
|
+
};
|
|
586
|
+
/** Grid settings */
|
|
587
|
+
grid?: {
|
|
588
|
+
enabled: boolean;
|
|
589
|
+
size: number;
|
|
590
|
+
snap: boolean;
|
|
591
|
+
};
|
|
592
|
+
/** Node groups */
|
|
593
|
+
groups?: PSFCanvasGroup[];
|
|
594
|
+
/** Connections between nodes */
|
|
595
|
+
connections?: PSFCanvasConnection[];
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* PSF Canvas Group
|
|
600
|
+
*/
|
|
601
|
+
export interface PSFCanvasGroup {
|
|
602
|
+
/** Group identifier */
|
|
603
|
+
id: string;
|
|
604
|
+
/** Group name */
|
|
605
|
+
name: string;
|
|
606
|
+
/** Color */
|
|
607
|
+
color?: string;
|
|
608
|
+
/** Collapsed state */
|
|
609
|
+
collapsed?: boolean;
|
|
610
|
+
/** Position */
|
|
611
|
+
position: PSFPosition;
|
|
612
|
+
/** Member node IDs */
|
|
613
|
+
members: string[];
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* PSF Canvas Connection
|
|
618
|
+
*/
|
|
619
|
+
export interface PSFCanvasConnection {
|
|
620
|
+
/** Connection identifier */
|
|
621
|
+
id: string;
|
|
622
|
+
/** Source node ID */
|
|
623
|
+
source: string;
|
|
624
|
+
/** Source port */
|
|
625
|
+
sourcePort?: string;
|
|
626
|
+
/** Target node ID */
|
|
627
|
+
target: string;
|
|
628
|
+
/** Target port */
|
|
629
|
+
targetPort?: string;
|
|
630
|
+
/** Connection type */
|
|
631
|
+
type?: 'data' | 'control' | 'event';
|
|
632
|
+
/** Label */
|
|
633
|
+
label?: string;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
/**
|
|
637
|
+
* Create an empty PSF Schema
|
|
638
|
+
*/
|
|
639
|
+
export function createEmptyPSFSchema(id: string, name: string): PSFSchema {
|
|
640
|
+
return {
|
|
641
|
+
$version: PSF_VERSION,
|
|
642
|
+
id,
|
|
643
|
+
name,
|
|
644
|
+
createdAt: new Date().toISOString(),
|
|
645
|
+
modifiedAt: new Date().toISOString(),
|
|
646
|
+
facts: [],
|
|
647
|
+
events: [],
|
|
648
|
+
rules: [],
|
|
649
|
+
constraints: [],
|
|
650
|
+
models: [],
|
|
651
|
+
components: [],
|
|
652
|
+
flows: [],
|
|
653
|
+
docs: {},
|
|
654
|
+
};
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* Generate a unique ID for PSF elements
|
|
659
|
+
*/
|
|
660
|
+
export function generatePSFId(prefix: string = ''): string {
|
|
661
|
+
const timestamp = Date.now().toString(36);
|
|
662
|
+
const random = Math.random().toString(36).substring(2, 8);
|
|
663
|
+
return prefix ? `${prefix}_${timestamp}_${random}` : `${timestamp}_${random}`;
|
|
664
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Engine Types
|
|
3
|
+
*
|
|
4
|
+
* Re-exports types from the schema engine for external use.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// PSF Types
|
|
8
|
+
export type {
|
|
9
|
+
PSFSchema,
|
|
10
|
+
PSFFact,
|
|
11
|
+
PSFEvent,
|
|
12
|
+
PSFRule,
|
|
13
|
+
PSFConstraint,
|
|
14
|
+
PSFModel,
|
|
15
|
+
PSFComponent,
|
|
16
|
+
PSFFlow,
|
|
17
|
+
PSFFlowStep,
|
|
18
|
+
PSFField,
|
|
19
|
+
PSFFieldType,
|
|
20
|
+
PSFPayloadSchema,
|
|
21
|
+
PSFPropertySchema,
|
|
22
|
+
PSFExpression,
|
|
23
|
+
PSFPosition,
|
|
24
|
+
PSFLayout,
|
|
25
|
+
PSFStyling,
|
|
26
|
+
PSFValidation,
|
|
27
|
+
PSFRelationship,
|
|
28
|
+
PSFIndex,
|
|
29
|
+
PSFCanvasLayout,
|
|
30
|
+
PSFCanvasGroup,
|
|
31
|
+
PSFCanvasConnection,
|
|
32
|
+
PSFDocs,
|
|
33
|
+
PSFDocsHint,
|
|
34
|
+
PSFUIHint,
|
|
35
|
+
} from './psf.js';
|
|
36
|
+
|
|
37
|
+
// Compiler Types
|
|
38
|
+
export type {
|
|
39
|
+
DSLSchema,
|
|
40
|
+
DSLFact,
|
|
41
|
+
DSLEvent,
|
|
42
|
+
DSLRule,
|
|
43
|
+
DSLConstraint,
|
|
44
|
+
DSLModel,
|
|
45
|
+
DSLComponent,
|
|
46
|
+
CompilationResult,
|
|
47
|
+
CompilationError,
|
|
48
|
+
SourceLocation,
|
|
49
|
+
} from './compiler.js';
|
|
50
|
+
|
|
51
|
+
// Generator Types
|
|
52
|
+
export type {
|
|
53
|
+
GeneratorOptions,
|
|
54
|
+
GeneratedFile,
|
|
55
|
+
GenerationResult,
|
|
56
|
+
} from './generator.js';
|
|
57
|
+
|
|
58
|
+
// Validator Types
|
|
59
|
+
export type {
|
|
60
|
+
ValidationResult,
|
|
61
|
+
ValidationError,
|
|
62
|
+
ValidationOptions,
|
|
63
|
+
} from './validator.js';
|