@plures/praxis 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FRAMEWORK.md +55 -5
- package/LICENSE +21 -21
- package/README.md +162 -375
- package/core/codegen/docs-generator.ts +5 -2
- package/core/codegen/index.ts +1 -1
- package/core/codegen/ts-generator.ts +15 -15
- package/core/db-adapter/index.ts +2 -2
- package/core/db-adapter/sync-engine.ts +17 -6
- package/core/logic-engine/engine.ts +1 -1
- package/core/logic-engine/index.ts +2 -2
- package/core/logic-engine/protocol.ts +1 -1
- package/core/logic-engine/psf-adapter.ts +8 -4
- package/core/logic-engine/rules.ts +1 -1
- package/core/schema-engine/compiler.ts +53 -11
- package/core/schema-engine/generator.ts +17 -7
- package/core/schema-engine/index.ts +2 -2
- package/core/schema-engine/psf.ts +12 -3
- package/core/schema-engine/types.ts +3 -11
- package/core/schema-engine/validator.ts +112 -22
- package/dist/browser/engine-BjdqxeXG.d.ts +333 -0
- package/dist/browser/index.d.ts +3004 -0
- package/dist/browser/index.js +2892 -0
- package/dist/{src → browser}/integrations/svelte.d.ts +19 -17
- package/dist/browser/integrations/svelte.js +298 -0
- package/dist/node/auth-STARLY7I.js +207 -0
- package/dist/node/build-Y7OT5VBF.js +144 -0
- package/dist/node/canvas-UERZHJYW.js +362 -0
- package/dist/node/chunk-DSDC2JWZ.js +256 -0
- package/dist/node/chunk-FXQZXAWF.js +175 -0
- package/dist/node/chunk-N5Y37EUV.js +202 -0
- package/dist/node/chunk-QGM4M3NI.js +37 -0
- package/dist/node/chunk-RJMWCNHR.js +175 -0
- package/dist/node/chunk-SRM3OPPM.js +404 -0
- package/dist/node/chunk-UATVJBNV.js +175 -0
- package/dist/node/chunk-UY7YEBE2.js +159 -0
- package/dist/node/chunk-XCY2VIFX.js +143 -0
- package/dist/node/chunk-YXH4Y7ZZ.js +349 -0
- package/dist/node/cli/index.cjs +217418 -0
- package/dist/node/cli/index.d.cts +1 -0
- package/dist/node/cli/index.d.ts +1 -0
- package/dist/node/cli/index.js +690 -0
- package/dist/node/cloud/index.cjs +1043 -0
- package/dist/node/cloud/index.d.cts +864 -0
- package/dist/node/cloud/index.d.ts +864 -0
- package/dist/node/cloud/index.js +456 -0
- package/dist/node/cloud-AXOK4PSN.js +212 -0
- package/dist/node/component.cjs +374 -0
- package/dist/node/component.d.cts +125 -0
- package/dist/{src/core/component/generator.d.ts → node/component.d.ts} +11 -8
- package/dist/node/component.js +9 -0
- package/dist/node/components/index.cjs +216 -0
- package/dist/node/components/index.d.cts +43 -0
- package/dist/{src → node}/components/index.d.ts +8 -8
- package/dist/node/components/index.js +7 -0
- package/dist/node/create-TRLSVCNQ.js +584 -0
- package/dist/node/dev-PMJZUYGE.js +65 -0
- package/dist/node/engine-1iqLe6_P.d.ts +214 -0
- package/dist/node/engine-CVJobhHm.d.cts +214 -0
- package/dist/node/index.cjs +3247 -0
- package/dist/node/index.d.cts +2579 -0
- package/dist/node/index.d.ts +2579 -0
- package/dist/node/index.js +2098 -0
- package/dist/node/integrations/svelte.cjs +330 -0
- package/dist/node/integrations/svelte.d.cts +309 -0
- package/dist/node/integrations/svelte.d.ts +309 -0
- package/dist/node/integrations/svelte.js +300 -0
- package/dist/node/orchestrate-737TCL5H.js +127 -0
- package/dist/{src/core/protocol.d.ts → node/protocol-Qek7ebBl.d.cts} +11 -10
- package/dist/node/protocol-Qek7ebBl.d.ts +122 -0
- package/dist/node/schema.cjs +200 -0
- package/dist/{src/core/schema/types.d.ts → node/schema.d.cts} +30 -29
- package/dist/node/schema.d.ts +371 -0
- package/dist/node/schema.js +9 -0
- package/dist/{src/runtime/terminal-adapter.d.ts → node/terminal-adapter-07HGftGQ.d.ts} +86 -11
- package/dist/node/terminal-adapter-XLtCjjb_.d.cts +231 -0
- package/dist/node/verify-YBZ7W24H.js +213239 -0
- package/docs/MONETIZATION.md +21 -16
- package/docs/REACTIVE_REDESIGN.md +132 -0
- package/docs/README.md +47 -36
- package/docs/SVELTE_INTEGRATION_STRATEGY.md +68 -0
- package/docs/TERMINAL_NODE.md +27 -24
- package/docs/core/building-extensions.md +58 -61
- package/docs/core/cli-usage.md +59 -59
- package/docs/core/code-canvas-sync.md +28 -16
- package/docs/core/logic-engine.md +77 -82
- package/docs/core/pluresdb-integration.md +29 -39
- package/docs/core/schema-model.md +66 -52
- package/docs/core/ui-generation.md +57 -49
- package/docs/core/what-is-praxis.md +32 -15
- package/docs/guides/canvas.md +21 -5
- package/docs/guides/getting-started.md +13 -7
- package/docs/guides/history-state-pattern.md +65 -51
- package/docs/guides/orchestration.md +46 -32
- package/docs/guides/parallel-state-pattern.md +56 -72
- package/docs/guides/svelte-integration.md +45 -53
- package/docs/tutorials/README.md +16 -0
- package/docs/tutorials/ecommerce-cart.md +177 -95
- package/docs/tutorials/first-app.md +26 -41
- package/docs/tutorials/form-builder.md +191 -138
- package/docs/tutorials/todo-pluresdb.md +71 -69
- package/package.json +132 -96
- package/src/__tests__/actors.test.ts +68 -68
- package/src/__tests__/billing.test.ts +32 -32
- package/src/__tests__/canvas-components.test.ts +94 -73
- package/src/__tests__/cli-create.test.ts +28 -28
- package/src/__tests__/cloud.test.ts +36 -36
- package/src/__tests__/code-canvas-integration.test.ts +132 -141
- package/src/__tests__/docs-generator.test.ts +3 -9
- package/src/__tests__/dsl.test.ts +58 -64
- package/src/__tests__/edge-cases.test.ts +106 -108
- package/src/__tests__/engine.test.ts +51 -25
- package/src/__tests__/generators.test.ts +42 -44
- package/src/__tests__/introspection.test.ts +104 -114
- package/src/__tests__/pluresdb.test.ts +189 -187
- package/src/__tests__/protocol.test.ts +15 -15
- package/src/__tests__/provisioning.test.ts +61 -61
- package/src/__tests__/schema.test.ts +7 -11
- package/src/__tests__/state-docs-integration.test.ts +162 -145
- package/src/__tests__/svelte-integration.test.ts +16 -19
- package/src/__tests__/tauri-integration.test.ts +149 -147
- package/src/__tests__/terminal-node.test.ts +12 -7
- package/src/__tests__/unum-integration.test.ts +68 -68
- package/src/adapters/cli.ts +21 -15
- package/src/cli/commands/auth.ts +82 -78
- package/src/cli/commands/build.ts +29 -27
- package/src/cli/commands/canvas.ts +338 -127
- package/src/cli/commands/cloud.ts +47 -47
- package/src/cli/commands/create.ts +59 -47
- package/src/cli/commands/dev.ts +12 -12
- package/src/cli/commands/generate.ts +29 -40
- package/src/cli/commands/orchestrate.ts +24 -24
- package/src/cli/commands/verify.ts +49 -0
- package/src/cli/index.ts +21 -2
- package/src/cloud/README.md +28 -15
- package/src/cloud/auth.ts +55 -70
- package/src/cloud/billing.ts +59 -58
- package/src/cloud/client.ts +29 -35
- package/src/cloud/index.ts +19 -40
- package/src/cloud/marketplace.ts +69 -78
- package/src/cloud/provisioning.ts +42 -51
- package/src/cloud/relay/endpoints.ts +30 -34
- package/src/cloud/relay/health/index.ts +1 -1
- package/src/cloud/relay/stats/index.ts +1 -1
- package/src/cloud/relay/sync/index.ts +1 -1
- package/src/cloud/relay/usage/index.ts +1 -1
- package/src/cloud/sponsors.ts +31 -34
- package/src/cloud/types.ts +4 -4
- package/src/components/README.md +1 -0
- package/src/components/TerminalNode.svelte +457 -457
- package/src/components/index.ts +3 -4
- package/src/core/actors.ts +7 -7
- package/src/core/component/generator.ts +10 -28
- package/src/core/engine.ts +51 -24
- package/src/core/introspection.ts +37 -35
- package/src/core/logic/generator.ts +62 -62
- package/src/core/pluresdb/adapter.ts +8 -8
- package/src/core/pluresdb/generator.ts +39 -35
- package/src/core/pluresdb/index.ts +9 -12
- package/src/core/pluresdb/schema-registry.ts +22 -25
- package/src/core/pluresdb/store.ts +57 -57
- package/src/core/protocol.ts +14 -14
- package/src/core/reactive-engine.svelte.ts +65 -0
- package/src/core/reactive-engine.ts +67 -0
- package/src/core/rules.ts +4 -4
- package/src/core/schema/loader.common.ts +150 -0
- package/src/core/schema/loader.ts +19 -149
- package/src/core/schema/normalize.ts +34 -51
- package/src/core/schema/types.ts +47 -11
- package/src/dsl/index.ts +8 -8
- package/src/dsl.ts +11 -17
- package/src/examples/advanced-todo/App.svelte +506 -506
- package/src/examples/advanced-todo/README.md +58 -40
- package/src/examples/advanced-todo/index.ts +3 -3
- package/src/examples/auth-basic/index.ts +30 -30
- package/src/examples/cart/index.ts +50 -50
- package/src/examples/hero-ecommerce/index.ts +130 -157
- package/src/examples/svelte-counter/index.ts +22 -26
- package/src/flows.ts +6 -17
- package/src/index.browser.ts +204 -0
- package/src/index.ts +37 -42
- package/src/integrations/code-canvas.ts +237 -193
- package/src/integrations/pluresdb.ts +55 -35
- package/src/integrations/state-docs.ts +104 -104
- package/src/integrations/svelte.ts +35 -35
- package/src/integrations/tauri.ts +75 -73
- package/src/integrations/unum.ts +68 -61
- package/src/registry.ts +7 -14
- package/src/runtime/terminal-adapter.ts +31 -26
- package/src/step.ts +10 -16
- package/src/types.ts +1 -1
- package/templates/basic-app/README.md +6 -9
- package/templates/fullstack-app/README.md +10 -0
- package/dist/core/codegen/docs-generator.d.ts +0 -123
- package/dist/core/codegen/docs-generator.d.ts.map +0 -1
- package/dist/core/codegen/docs-generator.js +0 -674
- package/dist/core/codegen/docs-generator.js.map +0 -1
- package/dist/core/codegen/index.d.ts +0 -11
- package/dist/core/codegen/index.d.ts.map +0 -1
- package/dist/core/codegen/index.js +0 -13
- package/dist/core/codegen/index.js.map +0 -1
- package/dist/core/codegen/ts-generator.d.ts +0 -8
- package/dist/core/codegen/ts-generator.d.ts.map +0 -1
- package/dist/core/codegen/ts-generator.js +0 -8
- package/dist/core/codegen/ts-generator.js.map +0 -1
- package/dist/core/db-adapter/index.d.ts +0 -18
- package/dist/core/db-adapter/index.d.ts.map +0 -1
- package/dist/core/db-adapter/index.js +0 -23
- package/dist/core/db-adapter/index.js.map +0 -1
- package/dist/core/db-adapter/sync-engine.d.ts +0 -180
- package/dist/core/db-adapter/sync-engine.d.ts.map +0 -1
- package/dist/core/db-adapter/sync-engine.js +0 -342
- package/dist/core/db-adapter/sync-engine.js.map +0 -1
- package/dist/core/logic-engine/engine.d.ts +0 -8
- package/dist/core/logic-engine/engine.d.ts.map +0 -1
- package/dist/core/logic-engine/engine.js +0 -8
- package/dist/core/logic-engine/engine.js.map +0 -1
- package/dist/core/logic-engine/index.d.ts +0 -16
- package/dist/core/logic-engine/index.d.ts.map +0 -1
- package/dist/core/logic-engine/index.js +0 -16
- package/dist/core/logic-engine/index.js.map +0 -1
- package/dist/core/logic-engine/protocol.d.ts +0 -7
- package/dist/core/logic-engine/protocol.d.ts.map +0 -1
- package/dist/core/logic-engine/protocol.js +0 -7
- package/dist/core/logic-engine/protocol.js.map +0 -1
- package/dist/core/logic-engine/psf-adapter.d.ts +0 -88
- package/dist/core/logic-engine/psf-adapter.d.ts.map +0 -1
- package/dist/core/logic-engine/psf-adapter.js +0 -207
- package/dist/core/logic-engine/psf-adapter.js.map +0 -1
- package/dist/core/logic-engine/rules.d.ts +0 -7
- package/dist/core/logic-engine/rules.d.ts.map +0 -1
- package/dist/core/logic-engine/rules.js +0 -7
- package/dist/core/logic-engine/rules.js.map +0 -1
- package/dist/core/schema-engine/compiler.d.ts +0 -198
- package/dist/core/schema-engine/compiler.d.ts.map +0 -1
- package/dist/core/schema-engine/compiler.js +0 -262
- package/dist/core/schema-engine/compiler.js.map +0 -1
- package/dist/core/schema-engine/generator.d.ts +0 -115
- package/dist/core/schema-engine/generator.d.ts.map +0 -1
- package/dist/core/schema-engine/generator.js +0 -506
- package/dist/core/schema-engine/generator.js.map +0 -1
- package/dist/core/schema-engine/index.d.ts +0 -18
- package/dist/core/schema-engine/index.d.ts.map +0 -1
- package/dist/core/schema-engine/index.js +0 -18
- package/dist/core/schema-engine/index.js.map +0 -1
- package/dist/core/schema-engine/psf.d.ts +0 -612
- package/dist/core/schema-engine/psf.d.ts.map +0 -1
- package/dist/core/schema-engine/psf.js +0 -45
- package/dist/core/schema-engine/psf.js.map +0 -1
- package/dist/core/schema-engine/types.d.ts +0 -10
- package/dist/core/schema-engine/types.d.ts.map +0 -1
- package/dist/core/schema-engine/types.js +0 -7
- package/dist/core/schema-engine/types.js.map +0 -1
- package/dist/core/schema-engine/validator.d.ts +0 -140
- package/dist/core/schema-engine/validator.d.ts.map +0 -1
- package/dist/core/schema-engine/validator.js +0 -407
- package/dist/core/schema-engine/validator.js.map +0 -1
- package/dist/src/adapters/cli.d.ts +0 -43
- package/dist/src/adapters/cli.d.ts.map +0 -1
- package/dist/src/adapters/cli.js +0 -126
- package/dist/src/adapters/cli.js.map +0 -1
- package/dist/src/cli/commands/auth.d.ts +0 -26
- package/dist/src/cli/commands/auth.d.ts.map +0 -1
- package/dist/src/cli/commands/auth.js +0 -233
- package/dist/src/cli/commands/auth.js.map +0 -1
- package/dist/src/cli/commands/build.d.ts +0 -23
- package/dist/src/cli/commands/build.d.ts.map +0 -1
- package/dist/src/cli/commands/build.js +0 -162
- package/dist/src/cli/commands/build.js.map +0 -1
- package/dist/src/cli/commands/canvas.d.ts +0 -23
- package/dist/src/cli/commands/canvas.d.ts.map +0 -1
- package/dist/src/cli/commands/canvas.js +0 -215
- package/dist/src/cli/commands/canvas.js.map +0 -1
- package/dist/src/cli/commands/cloud.d.ts +0 -27
- package/dist/src/cli/commands/cloud.d.ts.map +0 -1
- package/dist/src/cli/commands/cloud.js +0 -232
- package/dist/src/cli/commands/cloud.js.map +0 -1
- package/dist/src/cli/commands/create.d.ts +0 -21
- package/dist/src/cli/commands/create.d.ts.map +0 -1
- package/dist/src/cli/commands/create.js +0 -621
- package/dist/src/cli/commands/create.js.map +0 -1
- package/dist/src/cli/commands/dev.d.ts +0 -21
- package/dist/src/cli/commands/dev.d.ts.map +0 -1
- package/dist/src/cli/commands/dev.js +0 -71
- package/dist/src/cli/commands/dev.js.map +0 -1
- package/dist/src/cli/commands/generate.d.ts +0 -25
- package/dist/src/cli/commands/generate.d.ts.map +0 -1
- package/dist/src/cli/commands/generate.js +0 -168
- package/dist/src/cli/commands/generate.js.map +0 -1
- package/dist/src/cli/commands/orchestrate.d.ts +0 -44
- package/dist/src/cli/commands/orchestrate.d.ts.map +0 -1
- package/dist/src/cli/commands/orchestrate.js +0 -150
- package/dist/src/cli/commands/orchestrate.js.map +0 -1
- package/dist/src/cli/index.d.ts +0 -8
- package/dist/src/cli/index.d.ts.map +0 -1
- package/dist/src/cli/index.js +0 -211
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cloud/auth.d.ts +0 -51
- package/dist/src/cloud/auth.d.ts.map +0 -1
- package/dist/src/cloud/auth.js +0 -194
- package/dist/src/cloud/auth.js.map +0 -1
- package/dist/src/cloud/billing.d.ts +0 -184
- package/dist/src/cloud/billing.d.ts.map +0 -1
- package/dist/src/cloud/billing.js +0 -179
- package/dist/src/cloud/billing.js.map +0 -1
- package/dist/src/cloud/client.d.ts +0 -39
- package/dist/src/cloud/client.d.ts.map +0 -1
- package/dist/src/cloud/client.js +0 -176
- package/dist/src/cloud/client.js.map +0 -1
- package/dist/src/cloud/index.d.ts +0 -44
- package/dist/src/cloud/index.d.ts.map +0 -1
- package/dist/src/cloud/index.js +0 -44
- package/dist/src/cloud/index.js.map +0 -1
- package/dist/src/cloud/marketplace.d.ts +0 -166
- package/dist/src/cloud/marketplace.d.ts.map +0 -1
- package/dist/src/cloud/marketplace.js +0 -159
- package/dist/src/cloud/marketplace.js.map +0 -1
- package/dist/src/cloud/provisioning.d.ts +0 -110
- package/dist/src/cloud/provisioning.d.ts.map +0 -1
- package/dist/src/cloud/provisioning.js +0 -148
- package/dist/src/cloud/provisioning.js.map +0 -1
- package/dist/src/cloud/relay/endpoints.d.ts +0 -62
- package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
- package/dist/src/cloud/relay/endpoints.js +0 -217
- package/dist/src/cloud/relay/endpoints.js.map +0 -1
- package/dist/src/cloud/relay/health/index.d.ts +0 -5
- package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/health/index.js +0 -9
- package/dist/src/cloud/relay/health/index.js.map +0 -1
- package/dist/src/cloud/relay/stats/index.d.ts +0 -5
- package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/stats/index.js +0 -9
- package/dist/src/cloud/relay/stats/index.js.map +0 -1
- package/dist/src/cloud/relay/sync/index.d.ts +0 -5
- package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/sync/index.js +0 -9
- package/dist/src/cloud/relay/sync/index.js.map +0 -1
- package/dist/src/cloud/relay/usage/index.d.ts +0 -5
- package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
- package/dist/src/cloud/relay/usage/index.js +0 -9
- package/dist/src/cloud/relay/usage/index.js.map +0 -1
- package/dist/src/cloud/sponsors.d.ts +0 -81
- package/dist/src/cloud/sponsors.d.ts.map +0 -1
- package/dist/src/cloud/sponsors.js +0 -130
- package/dist/src/cloud/sponsors.js.map +0 -1
- package/dist/src/cloud/types.d.ts +0 -169
- package/dist/src/cloud/types.d.ts.map +0 -1
- package/dist/src/cloud/types.js +0 -7
- package/dist/src/cloud/types.js.map +0 -1
- package/dist/src/components/index.d.ts.map +0 -1
- package/dist/src/components/index.js +0 -17
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/core/actors.d.ts +0 -95
- package/dist/src/core/actors.d.ts.map +0 -1
- package/dist/src/core/actors.js +0 -158
- package/dist/src/core/actors.js.map +0 -1
- package/dist/src/core/component/generator.d.ts.map +0 -1
- package/dist/src/core/component/generator.js +0 -349
- package/dist/src/core/component/generator.js.map +0 -1
- package/dist/src/core/engine.d.ts +0 -92
- package/dist/src/core/engine.d.ts.map +0 -1
- package/dist/src/core/engine.js +0 -199
- package/dist/src/core/engine.js.map +0 -1
- package/dist/src/core/introspection.d.ts +0 -141
- package/dist/src/core/introspection.d.ts.map +0 -1
- package/dist/src/core/introspection.js +0 -208
- package/dist/src/core/introspection.js.map +0 -1
- package/dist/src/core/logic/generator.d.ts +0 -76
- package/dist/src/core/logic/generator.d.ts.map +0 -1
- package/dist/src/core/logic/generator.js +0 -370
- package/dist/src/core/logic/generator.js.map +0 -1
- package/dist/src/core/pluresdb/adapter.d.ts +0 -72
- package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
- package/dist/src/core/pluresdb/adapter.js +0 -73
- package/dist/src/core/pluresdb/adapter.js.map +0 -1
- package/dist/src/core/pluresdb/generator.d.ts +0 -58
- package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
- package/dist/src/core/pluresdb/generator.js +0 -191
- package/dist/src/core/pluresdb/generator.js.map +0 -1
- package/dist/src/core/pluresdb/index.d.ts +0 -15
- package/dist/src/core/pluresdb/index.d.ts.map +0 -1
- package/dist/src/core/pluresdb/index.js +0 -11
- package/dist/src/core/pluresdb/index.js.map +0 -1
- package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
- package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
- package/dist/src/core/pluresdb/schema-registry.js +0 -130
- package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
- package/dist/src/core/pluresdb/store.d.ts +0 -199
- package/dist/src/core/pluresdb/store.d.ts.map +0 -1
- package/dist/src/core/pluresdb/store.js +0 -344
- package/dist/src/core/pluresdb/store.js.map +0 -1
- package/dist/src/core/protocol.d.ts.map +0 -1
- package/dist/src/core/protocol.js +0 -46
- package/dist/src/core/protocol.js.map +0 -1
- package/dist/src/core/rules.d.ts +0 -120
- package/dist/src/core/rules.d.ts.map +0 -1
- package/dist/src/core/rules.js +0 -81
- package/dist/src/core/rules.js.map +0 -1
- package/dist/src/core/schema/loader.d.ts +0 -47
- package/dist/src/core/schema/loader.d.ts.map +0 -1
- package/dist/src/core/schema/loader.js +0 -189
- package/dist/src/core/schema/loader.js.map +0 -1
- package/dist/src/core/schema/normalize.d.ts +0 -72
- package/dist/src/core/schema/normalize.d.ts.map +0 -1
- package/dist/src/core/schema/normalize.js +0 -190
- package/dist/src/core/schema/normalize.js.map +0 -1
- package/dist/src/core/schema/types.d.ts.map +0 -1
- package/dist/src/core/schema/types.js +0 -161
- package/dist/src/core/schema/types.js.map +0 -1
- package/dist/src/dsl/index.d.ts +0 -152
- package/dist/src/dsl/index.d.ts.map +0 -1
- package/dist/src/dsl/index.js +0 -132
- package/dist/src/dsl/index.js.map +0 -1
- package/dist/src/dsl.d.ts +0 -124
- package/dist/src/dsl.d.ts.map +0 -1
- package/dist/src/dsl.js +0 -130
- package/dist/src/dsl.js.map +0 -1
- package/dist/src/examples/advanced-todo/index.d.ts +0 -55
- package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
- package/dist/src/examples/advanced-todo/index.js +0 -222
- package/dist/src/examples/advanced-todo/index.js.map +0 -1
- package/dist/src/examples/auth-basic/index.d.ts +0 -17
- package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
- package/dist/src/examples/auth-basic/index.js +0 -122
- package/dist/src/examples/auth-basic/index.js.map +0 -1
- package/dist/src/examples/cart/index.d.ts +0 -19
- package/dist/src/examples/cart/index.d.ts.map +0 -1
- package/dist/src/examples/cart/index.js +0 -202
- package/dist/src/examples/cart/index.js.map +0 -1
- package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
- package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
- package/dist/src/examples/hero-ecommerce/index.js +0 -506
- package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
- package/dist/src/examples/svelte-counter/index.d.ts +0 -31
- package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
- package/dist/src/examples/svelte-counter/index.js +0 -123
- package/dist/src/examples/svelte-counter/index.js.map +0 -1
- package/dist/src/flows.d.ts +0 -125
- package/dist/src/flows.d.ts.map +0 -1
- package/dist/src/flows.js +0 -160
- package/dist/src/flows.js.map +0 -1
- package/dist/src/index.d.ts +0 -77
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -64
- package/dist/src/index.js.map +0 -1
- package/dist/src/integrations/code-canvas.d.ts +0 -265
- package/dist/src/integrations/code-canvas.d.ts.map +0 -1
- package/dist/src/integrations/code-canvas.js +0 -451
- package/dist/src/integrations/code-canvas.js.map +0 -1
- package/dist/src/integrations/pluresdb.d.ts +0 -117
- package/dist/src/integrations/pluresdb.d.ts.map +0 -1
- package/dist/src/integrations/pluresdb.js +0 -117
- package/dist/src/integrations/pluresdb.js.map +0 -1
- package/dist/src/integrations/state-docs.d.ts +0 -191
- package/dist/src/integrations/state-docs.d.ts.map +0 -1
- package/dist/src/integrations/state-docs.js +0 -515
- package/dist/src/integrations/state-docs.js.map +0 -1
- package/dist/src/integrations/svelte.d.ts.map +0 -1
- package/dist/src/integrations/svelte.js +0 -447
- package/dist/src/integrations/svelte.js.map +0 -1
- package/dist/src/integrations/tauri.d.ts +0 -360
- package/dist/src/integrations/tauri.d.ts.map +0 -1
- package/dist/src/integrations/tauri.js +0 -278
- package/dist/src/integrations/tauri.js.map +0 -1
- package/dist/src/integrations/unum.d.ts +0 -159
- package/dist/src/integrations/unum.d.ts.map +0 -1
- package/dist/src/integrations/unum.js +0 -240
- package/dist/src/integrations/unum.js.map +0 -1
- package/dist/src/registry.d.ts +0 -94
- package/dist/src/registry.d.ts.map +0 -1
- package/dist/src/registry.js +0 -181
- package/dist/src/registry.js.map +0 -1
- package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
- package/dist/src/runtime/terminal-adapter.js +0 -239
- package/dist/src/runtime/terminal-adapter.js.map +0 -1
- package/dist/src/step.d.ts +0 -34
- package/dist/src/step.d.ts.map +0 -1
- package/dist/src/step.js +0 -111
- package/dist/src/step.js.map +0 -1
- package/dist/src/types.d.ts +0 -63
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -6
- package/dist/src/types.js.map +0 -1
- package/dist/tools/cli/commands/index.d.ts +0 -7
- package/dist/tools/cli/commands/index.d.ts.map +0 -1
- package/dist/tools/cli/commands/index.js +0 -7
- package/dist/tools/cli/commands/index.js.map +0 -1
- package/dist/tools/cli/index.d.ts +0 -8
- package/dist/tools/cli/index.d.ts.map +0 -1
- package/dist/tools/cli/index.js +0 -9
- package/dist/tools/cli/index.js.map +0 -1
- package/dist/tools/watcher/index.d.ts +0 -105
- package/dist/tools/watcher/index.d.ts.map +0 -1
- package/dist/tools/watcher/index.js +0 -213
- package/dist/tools/watcher/index.js.map +0 -1
- package/dist/ui/canvas/canvas-projection.d.ts +0 -78
- package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
- package/dist/ui/canvas/canvas-projection.js +0 -416
- package/dist/ui/canvas/canvas-projection.js.map +0 -1
- package/dist/ui/canvas/canvas-state.d.ts +0 -200
- package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
- package/dist/ui/canvas/canvas-state.js +0 -464
- package/dist/ui/canvas/canvas-state.js.map +0 -1
- package/dist/ui/canvas/components/index.d.ts +0 -95
- package/dist/ui/canvas/components/index.d.ts.map +0 -1
- package/dist/ui/canvas/components/index.js +0 -19
- package/dist/ui/canvas/components/index.js.map +0 -1
- package/dist/ui/canvas/index.d.ts +0 -32
- package/dist/ui/canvas/index.d.ts.map +0 -1
- package/dist/ui/canvas/index.js +0 -32
- package/dist/ui/canvas/index.js.map +0 -1
- package/dist/ui/svelte-generator/index.d.ts +0 -9
- package/dist/ui/svelte-generator/index.d.ts.map +0 -1
- package/dist/ui/svelte-generator/index.js +0 -11
- package/dist/ui/svelte-generator/index.js.map +0 -1
- package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
- package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
- package/dist/ui/svelte-generator/psf-generator.js +0 -506
- package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Praxis Schema Normalizer
|
|
3
|
-
*
|
|
4
|
-
* Expands and normalizes schema definitions for code generation.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Normalize a Praxis schema for code generation
|
|
8
|
-
*/
|
|
9
|
-
export function normalizeSchema(schema, options = {}) {
|
|
10
|
-
const schemaPrefix = options.schemaPrefix || schema.name;
|
|
11
|
-
// Normalize models
|
|
12
|
-
const normalizedModels = normalizeModels(schema.models || [], schemaPrefix, options);
|
|
13
|
-
// Create model lookup map
|
|
14
|
-
const modelMap = new Map(normalizedModels.map((model) => [model.name, model]));
|
|
15
|
-
// Normalize components
|
|
16
|
-
const normalizedComponents = normalizeComponents(schema.components || [], schemaPrefix, modelMap, options);
|
|
17
|
-
// Normalize logic
|
|
18
|
-
const normalizedLogic = normalizeLogic(schema.logic || [], schemaPrefix, options);
|
|
19
|
-
return {
|
|
20
|
-
...schema,
|
|
21
|
-
models: normalizedModels,
|
|
22
|
-
components: normalizedComponents,
|
|
23
|
-
logic: normalizedLogic,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Normalize model definitions
|
|
28
|
-
*/
|
|
29
|
-
function normalizeModels(models, schemaPrefix, _options) {
|
|
30
|
-
return models.map((model) => {
|
|
31
|
-
const fullName = `${schemaPrefix}.${model.name}`;
|
|
32
|
-
const dependencies = extractModelDependencies(model);
|
|
33
|
-
// For now, allFields is the same as fields
|
|
34
|
-
// In the future, this could include inherited fields
|
|
35
|
-
const allFields = [...model.fields];
|
|
36
|
-
return {
|
|
37
|
-
...model,
|
|
38
|
-
fullName,
|
|
39
|
-
allFields,
|
|
40
|
-
dependencies,
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Extract model dependencies from field references
|
|
46
|
-
*/
|
|
47
|
-
function extractModelDependencies(model) {
|
|
48
|
-
const dependencies = new Set();
|
|
49
|
-
for (const field of model.fields) {
|
|
50
|
-
if (typeof field.type === 'object' && 'reference' in field.type) {
|
|
51
|
-
dependencies.add(field.type.reference);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Add relationship dependencies
|
|
55
|
-
if (model.relationships) {
|
|
56
|
-
for (const rel of model.relationships) {
|
|
57
|
-
dependencies.add(rel.target);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return Array.from(dependencies);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Normalize component definitions
|
|
64
|
-
*/
|
|
65
|
-
function normalizeComponents(components, schemaPrefix, modelMap, _options) {
|
|
66
|
-
return components.map((component) => {
|
|
67
|
-
const fullName = `${schemaPrefix}.${component.name}`;
|
|
68
|
-
const resolvedModel = component.model
|
|
69
|
-
? modelMap.get(component.model)
|
|
70
|
-
: undefined;
|
|
71
|
-
return {
|
|
72
|
-
...component,
|
|
73
|
-
fullName,
|
|
74
|
-
resolvedModel,
|
|
75
|
-
};
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Normalize logic definitions
|
|
80
|
-
*/
|
|
81
|
-
function normalizeLogic(logic, schemaPrefix, _options) {
|
|
82
|
-
return logic.map((logicDef) => {
|
|
83
|
-
const fullId = `${schemaPrefix}.${logicDef.id}`;
|
|
84
|
-
return {
|
|
85
|
-
...logicDef,
|
|
86
|
-
fullId,
|
|
87
|
-
};
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Expand field type to fully qualified type string
|
|
92
|
-
*/
|
|
93
|
-
export function expandFieldType(fieldType, schemaPrefix = '') {
|
|
94
|
-
if (typeof fieldType === 'string') {
|
|
95
|
-
return fieldType;
|
|
96
|
-
}
|
|
97
|
-
if (typeof fieldType === 'object') {
|
|
98
|
-
if ('array' in fieldType) {
|
|
99
|
-
const innerType = expandFieldType(fieldType.array, schemaPrefix);
|
|
100
|
-
return `${innerType}[]`;
|
|
101
|
-
}
|
|
102
|
-
if ('object' in fieldType) {
|
|
103
|
-
return 'object';
|
|
104
|
-
}
|
|
105
|
-
if ('reference' in fieldType) {
|
|
106
|
-
const refName = fieldType.reference;
|
|
107
|
-
return schemaPrefix ? `${schemaPrefix}.${refName}` : refName;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return 'unknown';
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Generate TypeScript type from field type
|
|
114
|
-
*/
|
|
115
|
-
export function fieldTypeToTypeScript(fieldType) {
|
|
116
|
-
if (typeof fieldType === 'string') {
|
|
117
|
-
switch (fieldType) {
|
|
118
|
-
case 'string':
|
|
119
|
-
return 'string';
|
|
120
|
-
case 'number':
|
|
121
|
-
return 'number';
|
|
122
|
-
case 'boolean':
|
|
123
|
-
return 'boolean';
|
|
124
|
-
case 'date':
|
|
125
|
-
return 'Date';
|
|
126
|
-
case 'array':
|
|
127
|
-
return 'unknown[]';
|
|
128
|
-
case 'object':
|
|
129
|
-
return 'Record<string, unknown>';
|
|
130
|
-
default:
|
|
131
|
-
return 'unknown';
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
if (typeof fieldType === 'object') {
|
|
135
|
-
if ('array' in fieldType) {
|
|
136
|
-
const innerType = fieldTypeToTypeScript(fieldType.array);
|
|
137
|
-
return `${innerType}[]`;
|
|
138
|
-
}
|
|
139
|
-
if ('object' in fieldType) {
|
|
140
|
-
const fields = fieldType.object;
|
|
141
|
-
const fieldTypes = Object.entries(fields)
|
|
142
|
-
.map(([key, field]) => {
|
|
143
|
-
const type = fieldTypeToTypeScript(field.type || field);
|
|
144
|
-
return `${key}: ${type}`;
|
|
145
|
-
})
|
|
146
|
-
.join('; ');
|
|
147
|
-
return `{ ${fieldTypes} }`;
|
|
148
|
-
}
|
|
149
|
-
if ('reference' in fieldType) {
|
|
150
|
-
return fieldType.reference;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return 'unknown';
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Sort models by dependency order (models with no dependencies first)
|
|
157
|
-
*/
|
|
158
|
-
export function sortModelsByDependencies(models) {
|
|
159
|
-
const sorted = [];
|
|
160
|
-
const visited = new Set();
|
|
161
|
-
const visiting = new Set();
|
|
162
|
-
function visit(model) {
|
|
163
|
-
if (visited.has(model.name)) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
if (visiting.has(model.name)) {
|
|
167
|
-
// Circular dependency detected, just add it
|
|
168
|
-
visiting.delete(model.name);
|
|
169
|
-
sorted.push(model);
|
|
170
|
-
visited.add(model.name);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
visiting.add(model.name);
|
|
174
|
-
// Visit dependencies first
|
|
175
|
-
for (const depName of model.dependencies) {
|
|
176
|
-
const dep = models.find((m) => m.name === depName);
|
|
177
|
-
if (dep) {
|
|
178
|
-
visit(dep);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
visiting.delete(model.name);
|
|
182
|
-
visited.add(model.name);
|
|
183
|
-
sorted.push(model);
|
|
184
|
-
}
|
|
185
|
-
for (const model of models) {
|
|
186
|
-
visit(model);
|
|
187
|
-
}
|
|
188
|
-
return sorted;
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=normalize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../../src/core/schema/normalize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgEH;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC;IAEzD,mBAAmB;IACnB,MAAM,gBAAgB,GAAG,eAAe,CACtC,MAAM,CAAC,MAAM,IAAI,EAAE,EACnB,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CACrD,CAAC;IAEF,uBAAuB;IACvB,MAAM,oBAAoB,GAAG,mBAAmB,CAC9C,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,YAAY,EACZ,QAAQ,EACR,OAAO,CACR,CAAC;IAEF,kBAAkB;IAClB,MAAM,eAAe,GAAG,cAAc,CACpC,MAAM,CAAC,KAAK,IAAI,EAAE,EAClB,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,oBAAoB;QAChC,KAAK,EAAE,eAAe;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,MAAyB,EACzB,YAAoB,EACpB,QAA8B;IAE9B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAErD,2CAA2C;QAC3C,qDAAqD;QACrD,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO;YACL,GAAG,KAAK;YACR,QAAQ;YACR,SAAS;YACT,YAAY;SACb,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,KAAsB;IACtD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAChE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACtC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,UAAiC,EACjC,YAAoB,EACpB,QAAsC,EACtC,QAA8B;IAE9B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK;YACnC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,GAAG,SAAS;YACZ,QAAQ;YACR,aAAa;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,KAAwB,EACxB,YAAoB,EACpB,QAA8B;IAE9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,GAAG,YAAY,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAEhD,OAAO;YACL,GAAG,QAAQ;YACX,MAAM;SACP,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAc,EACd,eAAuB,EAAE;IAEzB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACjE,OAAO,GAAG,SAAS,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC;YACpC,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAc;IAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAC;YACnB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,OAAO;gBACV,OAAO,WAAW,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,yBAAyB,CAAC;YACnC;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACzD,OAAO,GAAG,SAAS,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAChC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;gBACxD,OAAO,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3B,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,KAAK,UAAU,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAyB;IAEzB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,SAAS,KAAK,CAAC,KAAsB;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzB,2BAA2B;QAC3B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACnD,IAAI,GAAG,EAAE,CAAC;gBACR,KAAK,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Praxis Schema System
|
|
3
|
-
*
|
|
4
|
-
* Declarative schema definitions for generating models, components, logic, and documentation.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Validate a Praxis schema
|
|
8
|
-
*/
|
|
9
|
-
export function validateSchema(schema) {
|
|
10
|
-
const errors = [];
|
|
11
|
-
// Basic validation
|
|
12
|
-
if (!schema.version) {
|
|
13
|
-
errors.push({ path: 'version', message: 'Schema version is required' });
|
|
14
|
-
}
|
|
15
|
-
if (!schema.name) {
|
|
16
|
-
errors.push({ path: 'name', message: 'Schema name is required' });
|
|
17
|
-
}
|
|
18
|
-
// Validate models
|
|
19
|
-
if (schema.models) {
|
|
20
|
-
schema.models.forEach((model, index) => {
|
|
21
|
-
if (!model.name) {
|
|
22
|
-
errors.push({
|
|
23
|
-
path: `models[${index}].name`,
|
|
24
|
-
message: 'Model name is required',
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
if (!model.fields || model.fields.length === 0) {
|
|
28
|
-
errors.push({
|
|
29
|
-
path: `models[${index}].fields`,
|
|
30
|
-
message: 'Model must have at least one field',
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
// Validate components
|
|
36
|
-
if (schema.components) {
|
|
37
|
-
schema.components.forEach((component, index) => {
|
|
38
|
-
if (!component.name) {
|
|
39
|
-
errors.push({
|
|
40
|
-
path: `components[${index}].name`,
|
|
41
|
-
message: 'Component name is required',
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
if (!component.type) {
|
|
45
|
-
errors.push({
|
|
46
|
-
path: `components[${index}].type`,
|
|
47
|
-
message: 'Component type is required',
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
// Validate logic definitions
|
|
53
|
-
if (schema.logic) {
|
|
54
|
-
schema.logic.forEach((logic, logicIndex) => {
|
|
55
|
-
// Validate fact tags
|
|
56
|
-
if (logic.facts) {
|
|
57
|
-
logic.facts.forEach((fact, factIndex) => {
|
|
58
|
-
if (!fact.tag) {
|
|
59
|
-
errors.push({
|
|
60
|
-
path: `logic[${logicIndex}].facts[${factIndex}].tag`,
|
|
61
|
-
message: 'Fact tag is required',
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
else if (!isValidIdentifier(fact.tag)) {
|
|
65
|
-
errors.push({
|
|
66
|
-
path: `logic[${logicIndex}].facts[${factIndex}].tag`,
|
|
67
|
-
message: `Fact tag "${fact.tag}" is not a valid JavaScript identifier. Use only letters, numbers, underscores, and dollar signs, and do not start with a number.`,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
// Validate event tags
|
|
73
|
-
if (logic.events) {
|
|
74
|
-
logic.events.forEach((event, eventIndex) => {
|
|
75
|
-
if (!event.tag) {
|
|
76
|
-
errors.push({
|
|
77
|
-
path: `logic[${logicIndex}].events[${eventIndex}].tag`,
|
|
78
|
-
message: 'Event tag is required',
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
else if (!isValidIdentifier(event.tag)) {
|
|
82
|
-
errors.push({
|
|
83
|
-
path: `logic[${logicIndex}].events[${eventIndex}].tag`,
|
|
84
|
-
message: `Event tag "${event.tag}" is not a valid JavaScript identifier. Use only letters, numbers, underscores, and dollar signs, and do not start with a number.`,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
// Validate orchestration nodes
|
|
92
|
-
if (schema.orchestration?.nodes) {
|
|
93
|
-
schema.orchestration.nodes.forEach((node, index) => {
|
|
94
|
-
if (!node.id) {
|
|
95
|
-
errors.push({
|
|
96
|
-
path: `orchestration.nodes[${index}].id`,
|
|
97
|
-
message: 'Node id is required',
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
if (!node.type) {
|
|
101
|
-
errors.push({
|
|
102
|
-
path: `orchestration.nodes[${index}].type`,
|
|
103
|
-
message: 'Node type is required',
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
// Validate terminal node specific props
|
|
107
|
-
if (node.type === 'terminal' && node.props) {
|
|
108
|
-
const props = node.props;
|
|
109
|
-
if (props.inputMode && !['text', 'widget'].includes(props.inputMode)) {
|
|
110
|
-
errors.push({
|
|
111
|
-
path: `orchestration.nodes[${index}].props.inputMode`,
|
|
112
|
-
message: 'Terminal node inputMode must be "text" or "widget"',
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
if (props.history && !Array.isArray(props.history)) {
|
|
116
|
-
errors.push({
|
|
117
|
-
path: `orchestration.nodes[${index}].props.history`,
|
|
118
|
-
message: 'Terminal node history must be an array',
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
valid: errors.length === 0,
|
|
126
|
-
errors,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Check if a string is a valid JavaScript identifier
|
|
131
|
-
*/
|
|
132
|
-
function isValidIdentifier(str) {
|
|
133
|
-
// JavaScript identifier must start with letter, $, or _
|
|
134
|
-
// and can contain letters, digits, $, or _
|
|
135
|
-
const identifierRegex = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
|
|
136
|
-
// Also check that it's not a reserved keyword
|
|
137
|
-
const reservedKeywords = [
|
|
138
|
-
'break', 'case', 'catch', 'class', 'const', 'continue', 'debugger',
|
|
139
|
-
'default', 'delete', 'do', 'else', 'export', 'extends', 'finally',
|
|
140
|
-
'for', 'function', 'if', 'import', 'in', 'instanceof', 'new',
|
|
141
|
-
'return', 'super', 'switch', 'this', 'throw', 'try', 'typeof',
|
|
142
|
-
'var', 'void', 'while', 'with', 'yield', 'let', 'static',
|
|
143
|
-
'enum', 'await', 'implements', 'interface', 'package', 'private',
|
|
144
|
-
'protected', 'public',
|
|
145
|
-
];
|
|
146
|
-
return identifierRegex.test(str) && !reservedKeywords.includes(str);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Create a basic schema template
|
|
150
|
-
*/
|
|
151
|
-
export function createSchemaTemplate(name) {
|
|
152
|
-
return {
|
|
153
|
-
version: '1.0.0',
|
|
154
|
-
name,
|
|
155
|
-
description: `Schema for ${name}`,
|
|
156
|
-
models: [],
|
|
157
|
-
components: [],
|
|
158
|
-
logic: [],
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/schema/types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/dsl/index.d.ts
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DSL Helpers
|
|
3
|
-
*
|
|
4
|
-
* Ergonomic TypeScript helpers for defining facts, events, rules, constraints, and flows.
|
|
5
|
-
* These produce both strongly-typed APIs and serializable descriptors.
|
|
6
|
-
*/
|
|
7
|
-
import type { PraxisEvent, PraxisFact } from "../core/protocol.js";
|
|
8
|
-
import type { RuleDescriptor, ConstraintDescriptor, PraxisModule, RuleFn, ConstraintFn } from "../core/rules.js";
|
|
9
|
-
/**
|
|
10
|
-
* Strongly typed fact definition
|
|
11
|
-
*/
|
|
12
|
-
export interface FactDefinition<TTag extends string, TPayload> {
|
|
13
|
-
tag: TTag;
|
|
14
|
-
create(payload: TPayload): PraxisFact & {
|
|
15
|
-
tag: TTag;
|
|
16
|
-
payload: TPayload;
|
|
17
|
-
};
|
|
18
|
-
is(fact: PraxisFact): fact is PraxisFact & {
|
|
19
|
-
tag: TTag;
|
|
20
|
-
payload: TPayload;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Define a typed fact
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* const UserLoggedIn = defineFact<"UserLoggedIn", { userId: string }>("UserLoggedIn");
|
|
28
|
-
* const fact = UserLoggedIn.create({ userId: "123" });
|
|
29
|
-
* if (UserLoggedIn.is(fact)) {
|
|
30
|
-
* console.log(fact.payload.userId); // Type-safe!
|
|
31
|
-
* }
|
|
32
|
-
*/
|
|
33
|
-
export declare function defineFact<TTag extends string, TPayload>(tag: TTag): FactDefinition<TTag, TPayload>;
|
|
34
|
-
/**
|
|
35
|
-
* Strongly typed event definition
|
|
36
|
-
*/
|
|
37
|
-
export interface EventDefinition<TTag extends string, TPayload> {
|
|
38
|
-
tag: TTag;
|
|
39
|
-
create(payload: TPayload): PraxisEvent & {
|
|
40
|
-
tag: TTag;
|
|
41
|
-
payload: TPayload;
|
|
42
|
-
};
|
|
43
|
-
is(event: PraxisEvent): event is PraxisEvent & {
|
|
44
|
-
tag: TTag;
|
|
45
|
-
payload: TPayload;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Define a typed event
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* const Login = defineEvent<"LOGIN", { username: string; password: string }>("LOGIN");
|
|
53
|
-
* const event = Login.create({ username: "alice", password: "secret" });
|
|
54
|
-
*/
|
|
55
|
-
export declare function defineEvent<TTag extends string, TPayload>(tag: TTag): EventDefinition<TTag, TPayload>;
|
|
56
|
-
/**
|
|
57
|
-
* Options for defining a rule
|
|
58
|
-
*/
|
|
59
|
-
export interface DefineRuleOptions<TContext = unknown> {
|
|
60
|
-
id: string;
|
|
61
|
-
description: string;
|
|
62
|
-
impl: RuleFn<TContext>;
|
|
63
|
-
meta?: Record<string, unknown>;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Define a rule
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* const loginRule = defineRule({
|
|
70
|
-
* id: "auth.login",
|
|
71
|
-
* description: "Process login event",
|
|
72
|
-
* impl: (state, events) => {
|
|
73
|
-
* const loginEvent = events.find(Login.is);
|
|
74
|
-
* if (loginEvent) {
|
|
75
|
-
* return [UserLoggedIn.create({ userId: loginEvent.payload.username })];
|
|
76
|
-
* }
|
|
77
|
-
* return [];
|
|
78
|
-
* }
|
|
79
|
-
* });
|
|
80
|
-
*/
|
|
81
|
-
export declare function defineRule<TContext = unknown>(options: DefineRuleOptions<TContext>): RuleDescriptor<TContext>;
|
|
82
|
-
/**
|
|
83
|
-
* Options for defining a constraint
|
|
84
|
-
*/
|
|
85
|
-
export interface DefineConstraintOptions<TContext = unknown> {
|
|
86
|
-
id: string;
|
|
87
|
-
description: string;
|
|
88
|
-
impl: ConstraintFn<TContext>;
|
|
89
|
-
meta?: Record<string, unknown>;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Define a constraint
|
|
93
|
-
*
|
|
94
|
-
* @example
|
|
95
|
-
* const maxCartItems = defineConstraint({
|
|
96
|
-
* id: "cart.maxItems",
|
|
97
|
-
* description: "Cart cannot exceed 100 items",
|
|
98
|
-
* impl: (state) => {
|
|
99
|
-
* const itemCount = state.context.items?.length ?? 0;
|
|
100
|
-
* return itemCount <= 100 || `Cart has ${itemCount} items, maximum is 100`;
|
|
101
|
-
* }
|
|
102
|
-
* });
|
|
103
|
-
*/
|
|
104
|
-
export declare function defineConstraint<TContext = unknown>(options: DefineConstraintOptions<TContext>): ConstraintDescriptor<TContext>;
|
|
105
|
-
/**
|
|
106
|
-
* Options for defining a module
|
|
107
|
-
*/
|
|
108
|
-
export interface DefineModuleOptions<TContext = unknown> {
|
|
109
|
-
rules?: RuleDescriptor<TContext>[];
|
|
110
|
-
constraints?: ConstraintDescriptor<TContext>[];
|
|
111
|
-
meta?: Record<string, unknown>;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Define a module (bundle of rules and constraints)
|
|
115
|
-
*
|
|
116
|
-
* @example
|
|
117
|
-
* const authModule = defineModule({
|
|
118
|
-
* rules: [loginRule, logoutRule],
|
|
119
|
-
* constraints: [maxSessionsConstraint],
|
|
120
|
-
* meta: { version: "1.0.0" }
|
|
121
|
-
* });
|
|
122
|
-
*/
|
|
123
|
-
export declare function defineModule<TContext = unknown>(options: DefineModuleOptions<TContext>): PraxisModule<TContext>;
|
|
124
|
-
/**
|
|
125
|
-
* Helper to filter events by definition
|
|
126
|
-
*/
|
|
127
|
-
export declare function filterEvents<TTag extends string, TPayload>(events: PraxisEvent[], definition: EventDefinition<TTag, TPayload>): Array<PraxisEvent & {
|
|
128
|
-
tag: TTag;
|
|
129
|
-
payload: TPayload;
|
|
130
|
-
}>;
|
|
131
|
-
/**
|
|
132
|
-
* Helper to filter facts by definition
|
|
133
|
-
*/
|
|
134
|
-
export declare function filterFacts<TTag extends string, TPayload>(facts: PraxisFact[], definition: FactDefinition<TTag, TPayload>): Array<PraxisFact & {
|
|
135
|
-
tag: TTag;
|
|
136
|
-
payload: TPayload;
|
|
137
|
-
}>;
|
|
138
|
-
/**
|
|
139
|
-
* Helper to find first event matching definition
|
|
140
|
-
*/
|
|
141
|
-
export declare function findEvent<TTag extends string, TPayload>(events: PraxisEvent[], definition: EventDefinition<TTag, TPayload>): (PraxisEvent & {
|
|
142
|
-
tag: TTag;
|
|
143
|
-
payload: TPayload;
|
|
144
|
-
}) | undefined;
|
|
145
|
-
/**
|
|
146
|
-
* Helper to find first fact matching definition
|
|
147
|
-
*/
|
|
148
|
-
export declare function findFact<TTag extends string, TPayload>(facts: PraxisFact[], definition: FactDefinition<TTag, TPayload>): (PraxisFact & {
|
|
149
|
-
tag: TTag;
|
|
150
|
-
payload: TPayload;
|
|
151
|
-
}) | undefined;
|
|
152
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/dsl/index.js
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DSL Helpers
|
|
3
|
-
*
|
|
4
|
-
* Ergonomic TypeScript helpers for defining facts, events, rules, constraints, and flows.
|
|
5
|
-
* These produce both strongly-typed APIs and serializable descriptors.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Define a typed fact
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* const UserLoggedIn = defineFact<"UserLoggedIn", { userId: string }>("UserLoggedIn");
|
|
12
|
-
* const fact = UserLoggedIn.create({ userId: "123" });
|
|
13
|
-
* if (UserLoggedIn.is(fact)) {
|
|
14
|
-
* console.log(fact.payload.userId); // Type-safe!
|
|
15
|
-
* }
|
|
16
|
-
*/
|
|
17
|
-
export function defineFact(tag) {
|
|
18
|
-
return {
|
|
19
|
-
tag,
|
|
20
|
-
create(payload) {
|
|
21
|
-
return { tag, payload };
|
|
22
|
-
},
|
|
23
|
-
is(fact) {
|
|
24
|
-
return fact.tag === tag;
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Define a typed event
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* const Login = defineEvent<"LOGIN", { username: string; password: string }>("LOGIN");
|
|
33
|
-
* const event = Login.create({ username: "alice", password: "secret" });
|
|
34
|
-
*/
|
|
35
|
-
export function defineEvent(tag) {
|
|
36
|
-
return {
|
|
37
|
-
tag,
|
|
38
|
-
create(payload) {
|
|
39
|
-
return { tag, payload };
|
|
40
|
-
},
|
|
41
|
-
is(event) {
|
|
42
|
-
return event.tag === tag;
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Define a rule
|
|
48
|
-
*
|
|
49
|
-
* @example
|
|
50
|
-
* const loginRule = defineRule({
|
|
51
|
-
* id: "auth.login",
|
|
52
|
-
* description: "Process login event",
|
|
53
|
-
* impl: (state, events) => {
|
|
54
|
-
* const loginEvent = events.find(Login.is);
|
|
55
|
-
* if (loginEvent) {
|
|
56
|
-
* return [UserLoggedIn.create({ userId: loginEvent.payload.username })];
|
|
57
|
-
* }
|
|
58
|
-
* return [];
|
|
59
|
-
* }
|
|
60
|
-
* });
|
|
61
|
-
*/
|
|
62
|
-
export function defineRule(options) {
|
|
63
|
-
return {
|
|
64
|
-
id: options.id,
|
|
65
|
-
description: options.description,
|
|
66
|
-
impl: options.impl,
|
|
67
|
-
meta: options.meta,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Define a constraint
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* const maxCartItems = defineConstraint({
|
|
75
|
-
* id: "cart.maxItems",
|
|
76
|
-
* description: "Cart cannot exceed 100 items",
|
|
77
|
-
* impl: (state) => {
|
|
78
|
-
* const itemCount = state.context.items?.length ?? 0;
|
|
79
|
-
* return itemCount <= 100 || `Cart has ${itemCount} items, maximum is 100`;
|
|
80
|
-
* }
|
|
81
|
-
* });
|
|
82
|
-
*/
|
|
83
|
-
export function defineConstraint(options) {
|
|
84
|
-
return {
|
|
85
|
-
id: options.id,
|
|
86
|
-
description: options.description,
|
|
87
|
-
impl: options.impl,
|
|
88
|
-
meta: options.meta,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Define a module (bundle of rules and constraints)
|
|
93
|
-
*
|
|
94
|
-
* @example
|
|
95
|
-
* const authModule = defineModule({
|
|
96
|
-
* rules: [loginRule, logoutRule],
|
|
97
|
-
* constraints: [maxSessionsConstraint],
|
|
98
|
-
* meta: { version: "1.0.0" }
|
|
99
|
-
* });
|
|
100
|
-
*/
|
|
101
|
-
export function defineModule(options) {
|
|
102
|
-
return {
|
|
103
|
-
rules: options.rules ?? [],
|
|
104
|
-
constraints: options.constraints ?? [],
|
|
105
|
-
meta: options.meta,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Helper to filter events by definition
|
|
110
|
-
*/
|
|
111
|
-
export function filterEvents(events, definition) {
|
|
112
|
-
return events.filter(definition.is);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Helper to filter facts by definition
|
|
116
|
-
*/
|
|
117
|
-
export function filterFacts(facts, definition) {
|
|
118
|
-
return facts.filter(definition.is);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Helper to find first event matching definition
|
|
122
|
-
*/
|
|
123
|
-
export function findEvent(events, definition) {
|
|
124
|
-
return events.find(definition.is);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Helper to find first fact matching definition
|
|
128
|
-
*/
|
|
129
|
-
export function findFact(facts, definition) {
|
|
130
|
-
return facts.find(definition.is);
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=index.js.map
|