@plures/praxis 1.0.3 → 1.1.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/FRAMEWORK.md +55 -5
- package/README.md +162 -375
- package/core/codegen/docs-generator.ts +5 -2
- package/core/codegen/index.ts +1 -1
- 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 +215139 -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-QRYKRIDU.js +210960 -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 +58 -23
- 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 +7 -8
- package/src/cli/index.ts +14 -10
- 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/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/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/commands/verify.d.ts +0 -10
- package/dist/src/cli/commands/verify.d.ts.map +0 -1
- package/dist/src/cli/commands/verify.js +0 -39
- package/dist/src/cli/commands/verify.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 -226
- 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/ast-analyzer/src/ast-analyzer.d.ts +0 -8
- package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts.map +0 -1
- package/dist/tools/ast-analyzer/src/ast-analyzer.js +0 -119
- package/dist/tools/ast-analyzer/src/ast-analyzer.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/canvas-inspector/src/server.d.ts +0 -2
- package/dist/ui/canvas-inspector/src/server.d.ts.map +0 -1
- package/dist/ui/canvas-inspector/src/server.js +0 -248
- package/dist/ui/canvas-inspector/src/server.js.map +0 -1
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts +0 -5
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts.map +0 -1
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js +0 -58
- package/dist/ui/canvas-inspector/src/verify-fsm-implementation.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,21 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* State-Docs Integration
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Integration with plures/state-docs - FSM documentation generator for XState projects.
|
|
5
5
|
* Generates Markdown and Mermaid documentation from Praxis state machines and logic.
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
7
|
* Features:
|
|
8
8
|
* - Auto-generate documentation from Praxis schemas
|
|
9
9
|
* - Markdown output with Mermaid diagrams
|
|
10
10
|
* - State machine visualization
|
|
11
11
|
* - Transition documentation
|
|
12
12
|
* - Integration with Praxis logic engine
|
|
13
|
-
*
|
|
13
|
+
*
|
|
14
14
|
* @see https://github.com/plures/state-docs
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import type { PraxisSchema, LogicDefinition } from
|
|
18
|
-
import type { RuleDescriptor, ConstraintDescriptor, PraxisModule } from
|
|
17
|
+
import type { PraxisSchema, LogicDefinition } from '../core/schema/types.js';
|
|
18
|
+
import type { RuleDescriptor, ConstraintDescriptor, PraxisModule } from '../core/rules.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* State-Docs configuration
|
|
@@ -130,7 +130,7 @@ export interface TransitionDoc {
|
|
|
130
130
|
*/
|
|
131
131
|
export class StateDocsGenerator {
|
|
132
132
|
private config: StateDocsConfig;
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
constructor(config: StateDocsConfig) {
|
|
135
135
|
this.config = {
|
|
136
136
|
target: './docs',
|
|
@@ -147,26 +147,26 @@ export class StateDocsGenerator {
|
|
|
147
147
|
...config,
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
|
|
150
|
+
|
|
151
151
|
/**
|
|
152
152
|
* Generate documentation from a Praxis schema
|
|
153
153
|
*/
|
|
154
154
|
generateFromSchema(schema: PraxisSchema): GeneratedDoc[] {
|
|
155
155
|
const docs: GeneratedDoc[] = [];
|
|
156
|
-
|
|
156
|
+
|
|
157
157
|
// Generate main README
|
|
158
158
|
docs.push(this.generateSchemaReadme(schema));
|
|
159
|
-
|
|
159
|
+
|
|
160
160
|
// Generate model documentation
|
|
161
161
|
if (schema.models && schema.models.length > 0) {
|
|
162
162
|
docs.push(this.generateModelsDoc(schema));
|
|
163
163
|
}
|
|
164
|
-
|
|
164
|
+
|
|
165
165
|
// Generate component documentation
|
|
166
166
|
if (schema.components && schema.components.length > 0) {
|
|
167
167
|
docs.push(this.generateComponentsDoc(schema));
|
|
168
168
|
}
|
|
169
|
-
|
|
169
|
+
|
|
170
170
|
// Generate logic documentation with state diagrams
|
|
171
171
|
if (schema.logic && schema.logic.length > 0) {
|
|
172
172
|
for (const logic of schema.logic) {
|
|
@@ -174,52 +174,52 @@ export class StateDocsGenerator {
|
|
|
174
174
|
docs.push(this.generateLogicDiagram(logic));
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
|
|
177
|
+
|
|
178
178
|
return docs;
|
|
179
179
|
}
|
|
180
|
-
|
|
180
|
+
|
|
181
181
|
/**
|
|
182
182
|
* Generate documentation from a Praxis registry
|
|
183
183
|
*/
|
|
184
184
|
generateFromModule<TContext>(module: PraxisModule<TContext>): GeneratedDoc[] {
|
|
185
185
|
const docs: GeneratedDoc[] = [];
|
|
186
|
-
|
|
186
|
+
|
|
187
187
|
// Get all rules and constraints
|
|
188
188
|
const rules = module.rules;
|
|
189
189
|
const constraints = module.constraints;
|
|
190
|
-
|
|
190
|
+
|
|
191
191
|
// Generate rules documentation
|
|
192
192
|
docs.push(this.generateRulesDoc(rules));
|
|
193
|
-
|
|
193
|
+
|
|
194
194
|
// Generate constraints documentation
|
|
195
195
|
docs.push(this.generateConstraintsDoc(constraints));
|
|
196
|
-
|
|
196
|
+
|
|
197
197
|
// Generate state diagram
|
|
198
198
|
docs.push(this.generateRegistryDiagram(rules, constraints));
|
|
199
|
-
|
|
199
|
+
|
|
200
200
|
return docs;
|
|
201
201
|
}
|
|
202
|
-
|
|
202
|
+
|
|
203
203
|
/**
|
|
204
204
|
* Generate the main schema README
|
|
205
205
|
*/
|
|
206
206
|
private generateSchemaReadme(schema: PraxisSchema): GeneratedDoc {
|
|
207
207
|
const lines: string[] = [];
|
|
208
|
-
|
|
208
|
+
|
|
209
209
|
// Header
|
|
210
210
|
if (this.config.template?.header) {
|
|
211
211
|
lines.push(this.config.template.header);
|
|
212
212
|
lines.push('');
|
|
213
213
|
}
|
|
214
|
-
|
|
214
|
+
|
|
215
215
|
lines.push(`# ${schema.name || this.config.projectTitle}`);
|
|
216
216
|
lines.push('');
|
|
217
|
-
|
|
217
|
+
|
|
218
218
|
if (schema.description) {
|
|
219
219
|
lines.push(schema.description);
|
|
220
220
|
lines.push('');
|
|
221
221
|
}
|
|
222
|
-
|
|
222
|
+
|
|
223
223
|
// Table of contents
|
|
224
224
|
if (this.config.template?.toc) {
|
|
225
225
|
lines.push('## Table of Contents');
|
|
@@ -236,13 +236,13 @@ export class StateDocsGenerator {
|
|
|
236
236
|
}
|
|
237
237
|
lines.push('');
|
|
238
238
|
}
|
|
239
|
-
|
|
239
|
+
|
|
240
240
|
// Overview
|
|
241
241
|
lines.push('## Overview');
|
|
242
242
|
lines.push('');
|
|
243
243
|
lines.push(`**Version:** ${schema.version}`);
|
|
244
244
|
lines.push('');
|
|
245
|
-
|
|
245
|
+
|
|
246
246
|
// Summary statistics
|
|
247
247
|
lines.push('### Statistics');
|
|
248
248
|
lines.push('');
|
|
@@ -252,7 +252,7 @@ export class StateDocsGenerator {
|
|
|
252
252
|
lines.push(`| Components | ${schema.components?.length || 0} |`);
|
|
253
253
|
lines.push(`| Logic Modules | ${schema.logic?.length || 0} |`);
|
|
254
254
|
lines.push('');
|
|
255
|
-
|
|
255
|
+
|
|
256
256
|
// Models summary
|
|
257
257
|
if (schema.models && schema.models.length > 0) {
|
|
258
258
|
lines.push('## Models');
|
|
@@ -275,7 +275,7 @@ export class StateDocsGenerator {
|
|
|
275
275
|
lines.push('');
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
|
-
|
|
278
|
+
|
|
279
279
|
// Components summary
|
|
280
280
|
if (schema.components && schema.components.length > 0) {
|
|
281
281
|
lines.push('## Components');
|
|
@@ -295,7 +295,7 @@ export class StateDocsGenerator {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
|
-
|
|
298
|
+
|
|
299
299
|
// Logic summary
|
|
300
300
|
if (schema.logic && schema.logic.length > 0) {
|
|
301
301
|
lines.push('## Logic');
|
|
@@ -307,7 +307,7 @@ export class StateDocsGenerator {
|
|
|
307
307
|
lines.push(logic.description);
|
|
308
308
|
lines.push('');
|
|
309
309
|
}
|
|
310
|
-
|
|
310
|
+
|
|
311
311
|
// Events
|
|
312
312
|
if (logic.events && logic.events.length > 0) {
|
|
313
313
|
lines.push('**Events:**');
|
|
@@ -317,7 +317,7 @@ export class StateDocsGenerator {
|
|
|
317
317
|
}
|
|
318
318
|
lines.push('');
|
|
319
319
|
}
|
|
320
|
-
|
|
320
|
+
|
|
321
321
|
// Facts
|
|
322
322
|
if (logic.facts && logic.facts.length > 0) {
|
|
323
323
|
lines.push('**Facts:**');
|
|
@@ -327,7 +327,7 @@ export class StateDocsGenerator {
|
|
|
327
327
|
}
|
|
328
328
|
lines.push('');
|
|
329
329
|
}
|
|
330
|
-
|
|
330
|
+
|
|
331
331
|
// Rules
|
|
332
332
|
if (logic.rules && logic.rules.length > 0) {
|
|
333
333
|
lines.push('**Rules:**');
|
|
@@ -339,27 +339,27 @@ export class StateDocsGenerator {
|
|
|
339
339
|
}
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
|
-
|
|
342
|
+
|
|
343
343
|
// Timestamp
|
|
344
344
|
if (this.config.template?.timestamp) {
|
|
345
345
|
lines.push('---');
|
|
346
346
|
lines.push('');
|
|
347
347
|
lines.push(`*Generated on ${new Date().toISOString()} by State-Docs*`);
|
|
348
348
|
}
|
|
349
|
-
|
|
349
|
+
|
|
350
350
|
// Footer
|
|
351
351
|
if (this.config.template?.footer) {
|
|
352
352
|
lines.push('');
|
|
353
353
|
lines.push(this.config.template.footer);
|
|
354
354
|
}
|
|
355
|
-
|
|
355
|
+
|
|
356
356
|
return {
|
|
357
357
|
path: `${this.config.target}/README.md`,
|
|
358
358
|
content: lines.join('\n'),
|
|
359
359
|
type: 'markdown',
|
|
360
360
|
};
|
|
361
361
|
}
|
|
362
|
-
|
|
362
|
+
|
|
363
363
|
/**
|
|
364
364
|
* Generate models documentation
|
|
365
365
|
*/
|
|
@@ -370,30 +370,30 @@ export class StateDocsGenerator {
|
|
|
370
370
|
'This document describes all data models defined in the schema.',
|
|
371
371
|
'',
|
|
372
372
|
];
|
|
373
|
-
|
|
373
|
+
|
|
374
374
|
if (schema.models) {
|
|
375
375
|
for (const model of schema.models) {
|
|
376
376
|
lines.push(`## ${model.name}`);
|
|
377
377
|
lines.push('');
|
|
378
|
-
|
|
378
|
+
|
|
379
379
|
if (model.description) {
|
|
380
380
|
lines.push(model.description);
|
|
381
381
|
lines.push('');
|
|
382
382
|
}
|
|
383
|
-
|
|
383
|
+
|
|
384
384
|
lines.push('### Fields');
|
|
385
385
|
lines.push('');
|
|
386
386
|
lines.push('| Name | Type | Required | Description |');
|
|
387
387
|
lines.push('|------|------|----------|-------------|');
|
|
388
|
-
|
|
388
|
+
|
|
389
389
|
for (const field of model.fields) {
|
|
390
390
|
const required = field.optional ? 'No' : 'Yes';
|
|
391
391
|
const description = field.description || '-';
|
|
392
392
|
lines.push(`| ${field.name} | \`${field.type}\` | ${required} | ${description} |`);
|
|
393
393
|
}
|
|
394
|
-
|
|
394
|
+
|
|
395
395
|
lines.push('');
|
|
396
|
-
|
|
396
|
+
|
|
397
397
|
// Indexes
|
|
398
398
|
if (model.indexes && model.indexes.length > 0) {
|
|
399
399
|
lines.push('### Indexes');
|
|
@@ -405,14 +405,14 @@ export class StateDocsGenerator {
|
|
|
405
405
|
}
|
|
406
406
|
}
|
|
407
407
|
}
|
|
408
|
-
|
|
408
|
+
|
|
409
409
|
return {
|
|
410
410
|
path: `${this.config.target}/models.md`,
|
|
411
411
|
content: lines.join('\n'),
|
|
412
412
|
type: 'markdown',
|
|
413
413
|
};
|
|
414
414
|
}
|
|
415
|
-
|
|
415
|
+
|
|
416
416
|
/**
|
|
417
417
|
* Generate components documentation
|
|
418
418
|
*/
|
|
@@ -423,156 +423,157 @@ export class StateDocsGenerator {
|
|
|
423
423
|
'This document describes all UI components defined in the schema.',
|
|
424
424
|
'',
|
|
425
425
|
];
|
|
426
|
-
|
|
426
|
+
|
|
427
427
|
if (schema.components) {
|
|
428
428
|
for (const component of schema.components) {
|
|
429
429
|
lines.push(`## ${component.name}`);
|
|
430
430
|
lines.push('');
|
|
431
431
|
lines.push(`**Type:** ${component.type}`);
|
|
432
432
|
lines.push('');
|
|
433
|
-
|
|
433
|
+
|
|
434
434
|
if (component.description) {
|
|
435
435
|
lines.push(component.description);
|
|
436
436
|
lines.push('');
|
|
437
437
|
}
|
|
438
|
-
|
|
438
|
+
|
|
439
439
|
if (component.model) {
|
|
440
|
-
lines.push(
|
|
440
|
+
lines.push(
|
|
441
|
+
`**Associated Model:** [${component.model}](./models.md#${component.model.toLowerCase()})`
|
|
442
|
+
);
|
|
441
443
|
lines.push('');
|
|
442
444
|
}
|
|
443
445
|
}
|
|
444
446
|
}
|
|
445
|
-
|
|
447
|
+
|
|
446
448
|
return {
|
|
447
449
|
path: `${this.config.target}/components.md`,
|
|
448
450
|
content: lines.join('\n'),
|
|
449
451
|
type: 'markdown',
|
|
450
452
|
};
|
|
451
453
|
}
|
|
452
|
-
|
|
454
|
+
|
|
453
455
|
/**
|
|
454
456
|
* Generate logic documentation
|
|
455
457
|
*/
|
|
456
458
|
private generateLogicDoc(logic: LogicDefinition): GeneratedDoc {
|
|
457
|
-
const lines: string[] = [
|
|
458
|
-
|
|
459
|
-
'',
|
|
460
|
-
];
|
|
461
|
-
|
|
459
|
+
const lines: string[] = [`# ${logic.id}`, ''];
|
|
460
|
+
|
|
462
461
|
if (logic.description) {
|
|
463
462
|
lines.push(logic.description);
|
|
464
463
|
lines.push('');
|
|
465
464
|
}
|
|
466
|
-
|
|
465
|
+
|
|
467
466
|
// Events
|
|
468
467
|
if (logic.events && logic.events.length > 0) {
|
|
469
468
|
lines.push('## Events');
|
|
470
469
|
lines.push('');
|
|
471
470
|
lines.push('| Event | Description | Payload |');
|
|
472
471
|
lines.push('|-------|-------------|---------|');
|
|
473
|
-
|
|
472
|
+
|
|
474
473
|
for (const event of logic.events) {
|
|
475
|
-
const payload = event.payload
|
|
476
|
-
? Object.entries(event.payload)
|
|
474
|
+
const payload = event.payload
|
|
475
|
+
? Object.entries(event.payload)
|
|
476
|
+
.map(([k, v]) => `${k}: ${v}`)
|
|
477
|
+
.join(', ')
|
|
477
478
|
: '-';
|
|
478
479
|
lines.push(`| \`${event.tag}\` | ${event.description || '-'} | ${payload} |`);
|
|
479
480
|
}
|
|
480
481
|
lines.push('');
|
|
481
482
|
}
|
|
482
|
-
|
|
483
|
+
|
|
483
484
|
// Facts
|
|
484
485
|
if (logic.facts && logic.facts.length > 0) {
|
|
485
486
|
lines.push('## Facts');
|
|
486
487
|
lines.push('');
|
|
487
488
|
lines.push('| Fact | Description | Payload |');
|
|
488
489
|
lines.push('|------|-------------|---------|');
|
|
489
|
-
|
|
490
|
+
|
|
490
491
|
for (const fact of logic.facts) {
|
|
491
|
-
const payload = fact.payload
|
|
492
|
-
? Object.entries(fact.payload)
|
|
492
|
+
const payload = fact.payload
|
|
493
|
+
? Object.entries(fact.payload)
|
|
494
|
+
.map(([k, v]) => `${k}: ${v}`)
|
|
495
|
+
.join(', ')
|
|
493
496
|
: '-';
|
|
494
497
|
lines.push(`| \`${fact.tag}\` | ${fact.description || '-'} | ${payload} |`);
|
|
495
498
|
}
|
|
496
499
|
lines.push('');
|
|
497
500
|
}
|
|
498
|
-
|
|
501
|
+
|
|
499
502
|
// Rules
|
|
500
503
|
if (logic.rules && logic.rules.length > 0) {
|
|
501
504
|
lines.push('## Rules');
|
|
502
505
|
lines.push('');
|
|
503
|
-
|
|
506
|
+
|
|
504
507
|
for (const rule of logic.rules) {
|
|
505
508
|
lines.push(`### ${rule.id}`);
|
|
506
509
|
lines.push('');
|
|
507
|
-
|
|
510
|
+
|
|
508
511
|
if (rule.description) {
|
|
509
512
|
lines.push(rule.description);
|
|
510
513
|
lines.push('');
|
|
511
514
|
}
|
|
512
|
-
|
|
515
|
+
|
|
513
516
|
if (rule.priority !== undefined) {
|
|
514
517
|
lines.push(`**Priority:** ${rule.priority}`);
|
|
515
518
|
lines.push('');
|
|
516
519
|
}
|
|
517
520
|
}
|
|
518
521
|
}
|
|
519
|
-
|
|
522
|
+
|
|
520
523
|
// Constraints
|
|
521
524
|
if (logic.constraints && logic.constraints.length > 0) {
|
|
522
525
|
lines.push('## Constraints');
|
|
523
526
|
lines.push('');
|
|
524
|
-
|
|
527
|
+
|
|
525
528
|
for (const constraint of logic.constraints) {
|
|
526
529
|
lines.push(`### ${constraint.id}`);
|
|
527
530
|
lines.push('');
|
|
528
|
-
|
|
531
|
+
|
|
529
532
|
if (constraint.description) {
|
|
530
533
|
lines.push(constraint.description);
|
|
531
534
|
lines.push('');
|
|
532
535
|
}
|
|
533
|
-
|
|
536
|
+
|
|
534
537
|
if (constraint.message) {
|
|
535
538
|
lines.push(`**Error Message:** ${constraint.message}`);
|
|
536
539
|
lines.push('');
|
|
537
540
|
}
|
|
538
541
|
}
|
|
539
542
|
}
|
|
540
|
-
|
|
543
|
+
|
|
541
544
|
return {
|
|
542
545
|
path: `${this.config.target}/logic/${logic.id}.md`,
|
|
543
546
|
content: lines.join('\n'),
|
|
544
547
|
type: 'markdown',
|
|
545
548
|
};
|
|
546
549
|
}
|
|
547
|
-
|
|
550
|
+
|
|
548
551
|
/**
|
|
549
552
|
* Generate Mermaid diagram for logic
|
|
550
553
|
*/
|
|
551
554
|
private generateLogicDiagram(logic: LogicDefinition): GeneratedDoc {
|
|
552
|
-
const lines: string[] = [
|
|
553
|
-
|
|
554
|
-
];
|
|
555
|
-
|
|
555
|
+
const lines: string[] = ['stateDiagram-v2'];
|
|
556
|
+
|
|
556
557
|
// Add events as transitions
|
|
557
558
|
if (logic.events && logic.facts) {
|
|
558
559
|
lines.push(' [*] --> Processing');
|
|
559
|
-
|
|
560
|
+
|
|
560
561
|
for (const event of logic.events) {
|
|
561
562
|
lines.push(` Processing --> ${event.tag.replace(/[^a-zA-Z0-9]/g, '')}: ${event.tag}`);
|
|
562
563
|
}
|
|
563
|
-
|
|
564
|
+
|
|
564
565
|
for (const fact of logic.facts) {
|
|
565
566
|
lines.push(` ${fact.tag.replace(/[^a-zA-Z0-9]/g, '')} --> [*]`);
|
|
566
567
|
}
|
|
567
568
|
}
|
|
568
|
-
|
|
569
|
+
|
|
569
570
|
return {
|
|
570
571
|
path: `${this.config.target}/logic/${logic.id}.mmd`,
|
|
571
572
|
content: lines.join('\n'),
|
|
572
573
|
type: 'mermaid',
|
|
573
574
|
};
|
|
574
575
|
}
|
|
575
|
-
|
|
576
|
+
|
|
576
577
|
/**
|
|
577
578
|
* Generate rules documentation
|
|
578
579
|
*/
|
|
@@ -583,67 +584,69 @@ export class StateDocsGenerator {
|
|
|
583
584
|
'This document describes all rules registered in the Praxis engine.',
|
|
584
585
|
'',
|
|
585
586
|
];
|
|
586
|
-
|
|
587
|
+
|
|
587
588
|
for (const rule of rules) {
|
|
588
589
|
lines.push(`## ${rule.id}`);
|
|
589
590
|
lines.push('');
|
|
590
|
-
|
|
591
|
+
|
|
591
592
|
if (rule.description) {
|
|
592
593
|
lines.push(rule.description);
|
|
593
594
|
lines.push('');
|
|
594
595
|
}
|
|
595
|
-
|
|
596
|
+
|
|
596
597
|
if (rule.meta?.eventType) {
|
|
597
598
|
lines.push(`**Triggers on:** \`${rule.meta.eventType}\``);
|
|
598
599
|
lines.push('');
|
|
599
600
|
}
|
|
600
|
-
|
|
601
|
+
|
|
601
602
|
if (rule.meta?.priority !== undefined) {
|
|
602
603
|
lines.push(`**Priority:** ${rule.meta.priority}`);
|
|
603
604
|
lines.push('');
|
|
604
605
|
}
|
|
605
606
|
}
|
|
606
|
-
|
|
607
|
+
|
|
607
608
|
return {
|
|
608
609
|
path: `${this.config.target}/rules.md`,
|
|
609
610
|
content: lines.join('\n'),
|
|
610
611
|
type: 'markdown',
|
|
611
612
|
};
|
|
612
613
|
}
|
|
613
|
-
|
|
614
|
+
|
|
614
615
|
/**
|
|
615
616
|
* Generate constraints documentation
|
|
616
617
|
*/
|
|
617
|
-
private generateConstraintsDoc<TContext>(
|
|
618
|
+
private generateConstraintsDoc<TContext>(
|
|
619
|
+
constraints: ConstraintDescriptor<TContext>[]
|
|
620
|
+
): GeneratedDoc {
|
|
618
621
|
const lines: string[] = [
|
|
619
622
|
'# Constraints',
|
|
620
623
|
'',
|
|
621
624
|
'This document describes all constraints (invariants) registered in the Praxis engine.',
|
|
622
625
|
'',
|
|
623
626
|
];
|
|
624
|
-
|
|
627
|
+
|
|
625
628
|
for (const constraint of constraints) {
|
|
626
629
|
lines.push(`## ${constraint.id}`);
|
|
627
630
|
lines.push('');
|
|
628
|
-
|
|
631
|
+
|
|
629
632
|
if (constraint.description) {
|
|
630
633
|
lines.push(constraint.description);
|
|
631
634
|
lines.push('');
|
|
632
635
|
}
|
|
633
|
-
|
|
636
|
+
|
|
634
637
|
if (constraint.meta?.errorMessage) {
|
|
635
638
|
lines.push(`**Error Message:** ${constraint.meta.errorMessage}`);
|
|
636
639
|
lines.push('');
|
|
637
640
|
}
|
|
638
641
|
}
|
|
639
|
-
|
|
642
|
+
|
|
640
643
|
return {
|
|
641
644
|
path: `${this.config.target}/constraints.md`,
|
|
642
645
|
content: lines.join('\n'),
|
|
643
646
|
type: 'markdown',
|
|
644
647
|
};
|
|
645
648
|
}
|
|
646
|
-
|
|
649
|
+
|
|
647
650
|
/**
|
|
648
651
|
* Generate state diagram from registry
|
|
649
652
|
*/
|
|
@@ -651,26 +654,23 @@ export class StateDocsGenerator {
|
|
|
651
654
|
rules: RuleDescriptor<TContext>[],
|
|
652
655
|
constraints: ConstraintDescriptor<TContext>[]
|
|
653
656
|
): GeneratedDoc {
|
|
654
|
-
const lines: string[] = [
|
|
655
|
-
|
|
656
|
-
' subgraph Rules',
|
|
657
|
-
];
|
|
658
|
-
|
|
657
|
+
const lines: string[] = ['graph TD', ' subgraph Rules'];
|
|
658
|
+
|
|
659
659
|
for (const rule of rules) {
|
|
660
660
|
const id = rule.id.replace(/[^a-zA-Z0-9]/g, '_');
|
|
661
661
|
lines.push(` ${id}["${rule.id}"]`);
|
|
662
662
|
}
|
|
663
|
-
|
|
663
|
+
|
|
664
664
|
lines.push(' end');
|
|
665
665
|
lines.push(' subgraph Constraints');
|
|
666
|
-
|
|
666
|
+
|
|
667
667
|
for (const constraint of constraints) {
|
|
668
668
|
const id = constraint.id.replace(/[^a-zA-Z0-9]/g, '_');
|
|
669
669
|
lines.push(` ${id}["${constraint.id}"]`);
|
|
670
670
|
}
|
|
671
|
-
|
|
671
|
+
|
|
672
672
|
lines.push(' end');
|
|
673
|
-
|
|
673
|
+
|
|
674
674
|
return {
|
|
675
675
|
path: `${this.config.target}/state-diagram.mmd`,
|
|
676
676
|
content: lines.join('\n'),
|
|
@@ -681,16 +681,16 @@ export class StateDocsGenerator {
|
|
|
681
681
|
|
|
682
682
|
/**
|
|
683
683
|
* Create a State-Docs generator instance
|
|
684
|
-
*
|
|
684
|
+
*
|
|
685
685
|
* @example
|
|
686
686
|
* ```typescript
|
|
687
687
|
* import { createStateDocsGenerator } from '@plures/praxis/integrations/state-docs';
|
|
688
|
-
*
|
|
688
|
+
*
|
|
689
689
|
* const generator = createStateDocsGenerator({
|
|
690
690
|
* projectTitle: 'My Project',
|
|
691
691
|
* target: './docs/api',
|
|
692
692
|
* });
|
|
693
|
-
*
|
|
693
|
+
*
|
|
694
694
|
* const docs = generator.generateFromSchema(mySchema);
|
|
695
695
|
* for (const doc of docs) {
|
|
696
696
|
* await writeFile(doc.path, doc.content);
|