@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,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cloud CLI Commands
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* CLI commands for Praxis Cloud connectivity.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import * as fs from
|
|
8
|
-
import * as path from
|
|
9
|
-
import { authenticateWithDeviceFlow } from
|
|
10
|
-
import { connectRelay } from
|
|
11
|
-
import type { CloudRelayConfig } from
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import { authenticateWithDeviceFlow } from '../../cloud/auth.js';
|
|
10
|
+
import { connectRelay } from '../../cloud/client.js';
|
|
11
|
+
import type { CloudRelayConfig } from '../../cloud/types.js';
|
|
12
12
|
|
|
13
|
-
const CONFIG_FILE =
|
|
14
|
-
const GITHUB_CLIENT_ID =
|
|
13
|
+
const CONFIG_FILE = '.praxis-cloud.json';
|
|
14
|
+
const GITHUB_CLIENT_ID = 'Ov23liQxF7P0BqUxVXHk'; // Demo client ID (replace in production)
|
|
15
15
|
|
|
16
16
|
interface StoredConfig {
|
|
17
17
|
endpoint: string;
|
|
@@ -28,11 +28,11 @@ function loadConfig(): StoredConfig | null {
|
|
|
28
28
|
try {
|
|
29
29
|
const configPath = path.join(process.cwd(), CONFIG_FILE);
|
|
30
30
|
if (fs.existsSync(configPath)) {
|
|
31
|
-
const data = fs.readFileSync(configPath,
|
|
31
|
+
const data = fs.readFileSync(configPath, 'utf-8');
|
|
32
32
|
return JSON.parse(data);
|
|
33
33
|
}
|
|
34
34
|
} catch (error) {
|
|
35
|
-
console.warn(
|
|
35
|
+
console.warn('Failed to load cloud configuration:', error);
|
|
36
36
|
}
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
@@ -46,7 +46,7 @@ function saveConfig(config: StoredConfig): void {
|
|
|
46
46
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
47
47
|
console.log(`\n✓ Configuration saved to ${CONFIG_FILE}`);
|
|
48
48
|
} catch (error) {
|
|
49
|
-
console.error(
|
|
49
|
+
console.error('Failed to save cloud configuration:', error);
|
|
50
50
|
throw error;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -60,14 +60,14 @@ export async function cloudInit(options: {
|
|
|
60
60
|
autoSync?: boolean;
|
|
61
61
|
interval?: string;
|
|
62
62
|
}): Promise<void> {
|
|
63
|
-
console.log(
|
|
64
|
-
console.log(
|
|
65
|
-
console.log(
|
|
63
|
+
console.log('\n╔═══════════════════════════════════════════════════╗');
|
|
64
|
+
console.log('║ Welcome to Praxis Cloud Setup Wizard ║');
|
|
65
|
+
console.log('╚═══════════════════════════════════════════════════╝\n');
|
|
66
66
|
|
|
67
67
|
// Check if already configured
|
|
68
68
|
const existingConfig = loadConfig();
|
|
69
69
|
if (existingConfig) {
|
|
70
|
-
console.log(
|
|
70
|
+
console.log('⚠ Existing cloud configuration found.');
|
|
71
71
|
console.log(` Endpoint: ${existingConfig.endpoint}`);
|
|
72
72
|
console.log(` App ID: ${existingConfig.appId}\n`);
|
|
73
73
|
// In production, prompt user to confirm overwrite
|
|
@@ -77,7 +77,7 @@ export async function cloudInit(options: {
|
|
|
77
77
|
let endpoint = options.endpoint;
|
|
78
78
|
if (!endpoint) {
|
|
79
79
|
// In production, prompt user for input
|
|
80
|
-
endpoint =
|
|
80
|
+
endpoint = 'https://praxis-relay.azurewebsites.net';
|
|
81
81
|
console.log(`Using default endpoint: ${endpoint}`);
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -90,18 +90,18 @@ export async function cloudInit(options: {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
// Authenticate with GitHub
|
|
93
|
-
console.log(
|
|
93
|
+
console.log('\n🔐 Authenticating with GitHub...');
|
|
94
94
|
const authResult = await authenticateWithDeviceFlow(GITHUB_CLIENT_ID);
|
|
95
95
|
|
|
96
96
|
if (!authResult.success || !authResult.token) {
|
|
97
|
-
console.error(
|
|
97
|
+
console.error('\n✗ Authentication failed');
|
|
98
98
|
process.exit(1);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
console.log(`✓ Authenticated as ${authResult.user?.login ||
|
|
101
|
+
console.log(`✓ Authenticated as ${authResult.user?.login || 'unknown'}`);
|
|
102
102
|
|
|
103
103
|
// Test connection
|
|
104
|
-
console.log(
|
|
104
|
+
console.log('\n🔗 Testing connection to Praxis Cloud...');
|
|
105
105
|
|
|
106
106
|
try {
|
|
107
107
|
const config: CloudRelayConfig = {
|
|
@@ -115,8 +115,8 @@ export async function cloudInit(options: {
|
|
|
115
115
|
const client = await connectRelay(endpoint, config);
|
|
116
116
|
const health = await client.getHealth();
|
|
117
117
|
|
|
118
|
-
if (health.status ===
|
|
119
|
-
console.log(
|
|
118
|
+
if (health.status === 'healthy') {
|
|
119
|
+
console.log('✓ Connected successfully!');
|
|
120
120
|
console.log(` Status: ${health.status}`);
|
|
121
121
|
console.log(` Version: ${health.version}`);
|
|
122
122
|
} else {
|
|
@@ -136,19 +136,19 @@ export async function cloudInit(options: {
|
|
|
136
136
|
|
|
137
137
|
saveConfig(storedConfig);
|
|
138
138
|
|
|
139
|
-
console.log(
|
|
140
|
-
console.log(
|
|
139
|
+
console.log('\n✓ Praxis Cloud is now configured!');
|
|
140
|
+
console.log('\nNext steps:');
|
|
141
141
|
console.log(" • Use 'praxis cloud status' to check connection");
|
|
142
142
|
console.log(" • Use 'praxis cloud sync' to manually sync");
|
|
143
143
|
console.log(" • Use 'praxis cloud usage' to view metrics");
|
|
144
|
-
console.log(
|
|
144
|
+
console.log('\nIn your code:');
|
|
145
145
|
console.log(' import { connectRelay } from "@plures/praxis/cloud";');
|
|
146
146
|
console.log(` const relay = await connectRelay("${endpoint}", {`);
|
|
147
147
|
console.log(` appId: "${appId}",`);
|
|
148
148
|
console.log(` authToken: "<your-token>"`);
|
|
149
|
-
console.log(
|
|
149
|
+
console.log(' });\n');
|
|
150
150
|
} catch (error) {
|
|
151
|
-
console.error(
|
|
151
|
+
console.error('\n✗ Failed to connect to Praxis Cloud');
|
|
152
152
|
console.error(` Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
153
153
|
process.exit(1);
|
|
154
154
|
}
|
|
@@ -161,18 +161,18 @@ export async function cloudStatus(): Promise<void> {
|
|
|
161
161
|
const config = loadConfig();
|
|
162
162
|
|
|
163
163
|
if (!config) {
|
|
164
|
-
console.log(
|
|
164
|
+
console.log('\n✗ No cloud configuration found');
|
|
165
165
|
console.log(" Run 'praxis cloud init' to set up cloud connection\n");
|
|
166
166
|
process.exit(1);
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
console.log(
|
|
170
|
-
console.log(
|
|
171
|
-
console.log(
|
|
169
|
+
console.log('\n╔═══════════════════════════════════════════════════╗');
|
|
170
|
+
console.log('║ Praxis Cloud Status ║');
|
|
171
|
+
console.log('╚═══════════════════════════════════════════════════╝\n');
|
|
172
172
|
|
|
173
173
|
console.log(`Endpoint: ${config.endpoint}`);
|
|
174
174
|
console.log(`App ID: ${config.appId}`);
|
|
175
|
-
console.log(`Auto Sync: ${config.autoSync ?
|
|
175
|
+
console.log(`Auto Sync: ${config.autoSync ? 'enabled' : 'disabled'}`);
|
|
176
176
|
|
|
177
177
|
if (config.autoSync) {
|
|
178
178
|
console.log(`Sync Interval: ${config.syncInterval}ms`);
|
|
@@ -185,11 +185,11 @@ export async function cloudStatus(): Promise<void> {
|
|
|
185
185
|
console.log(`\nConnection: ✓ Connected`);
|
|
186
186
|
console.log(`Status: ${health.status}`);
|
|
187
187
|
console.log(`Version: ${health.version}`);
|
|
188
|
-
console.log(
|
|
189
|
-
console.log(` Relay: ${health.services.relay ?
|
|
190
|
-
console.log(` Event Grid: ${health.services.eventGrid ?
|
|
191
|
-
console.log(` Storage: ${health.services.storage ?
|
|
192
|
-
console.log(` Auth: ${health.services.auth ?
|
|
188
|
+
console.log('\nServices:');
|
|
189
|
+
console.log(` Relay: ${health.services.relay ? '✓' : '✗'}`);
|
|
190
|
+
console.log(` Event Grid: ${health.services.eventGrid ? '✓' : '✗'}`);
|
|
191
|
+
console.log(` Storage: ${health.services.storage ? '✓' : '✗'}`);
|
|
192
|
+
console.log(` Auth: ${health.services.auth ? '✓' : '✗'}`);
|
|
193
193
|
|
|
194
194
|
await client.disconnect();
|
|
195
195
|
} catch (error) {
|
|
@@ -207,19 +207,19 @@ export async function cloudSync(): Promise<void> {
|
|
|
207
207
|
const config = loadConfig();
|
|
208
208
|
|
|
209
209
|
if (!config) {
|
|
210
|
-
console.log(
|
|
210
|
+
console.log('\n✗ No cloud configuration found');
|
|
211
211
|
console.log(" Run 'praxis cloud init' to set up cloud connection\n");
|
|
212
212
|
process.exit(1);
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
-
console.log(
|
|
215
|
+
console.log('\n🔄 Syncing to Praxis Cloud...');
|
|
216
216
|
|
|
217
217
|
try {
|
|
218
218
|
const client = await connectRelay(config.endpoint, config);
|
|
219
219
|
|
|
220
220
|
// In production, collect actual facts and events to sync
|
|
221
221
|
await client.sync({
|
|
222
|
-
type:
|
|
222
|
+
type: 'delta',
|
|
223
223
|
appId: config.appId,
|
|
224
224
|
clock: {},
|
|
225
225
|
facts: [],
|
|
@@ -227,11 +227,11 @@ export async function cloudSync(): Promise<void> {
|
|
|
227
227
|
timestamp: Date.now(),
|
|
228
228
|
});
|
|
229
229
|
|
|
230
|
-
console.log(
|
|
230
|
+
console.log('✓ Sync completed successfully\n');
|
|
231
231
|
|
|
232
232
|
await client.disconnect();
|
|
233
233
|
} catch (error) {
|
|
234
|
-
console.error(
|
|
234
|
+
console.error('\n✗ Sync failed');
|
|
235
235
|
console.error(` Error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
236
236
|
process.exit(1);
|
|
237
237
|
}
|
|
@@ -244,14 +244,14 @@ export async function cloudUsage(): Promise<void> {
|
|
|
244
244
|
const config = loadConfig();
|
|
245
245
|
|
|
246
246
|
if (!config) {
|
|
247
|
-
console.log(
|
|
247
|
+
console.log('\n✗ No cloud configuration found');
|
|
248
248
|
console.log(" Run 'praxis cloud init' to set up cloud connection\n");
|
|
249
249
|
process.exit(1);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
console.log(
|
|
253
|
-
console.log(
|
|
254
|
-
console.log(
|
|
252
|
+
console.log('\n╔═══════════════════════════════════════════════════╗');
|
|
253
|
+
console.log('║ Praxis Cloud Usage Metrics ║');
|
|
254
|
+
console.log('╚═══════════════════════════════════════════════════╝\n');
|
|
255
255
|
|
|
256
256
|
try {
|
|
257
257
|
const client = await connectRelay(config.endpoint, config);
|
|
@@ -274,7 +274,7 @@ export async function cloudUsage(): Promise<void> {
|
|
|
274
274
|
|
|
275
275
|
await client.disconnect();
|
|
276
276
|
} catch (error) {
|
|
277
|
-
console.error(
|
|
277
|
+
console.error('\n✗ Failed to retrieve usage metrics');
|
|
278
278
|
console.error(` Error: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
279
279
|
process.exit(1);
|
|
280
280
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Praxis Create Command
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Creates new Praxis applications and components from templates.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -26,30 +26,30 @@ export interface CreateOptions {
|
|
|
26
26
|
function generatePackageJson(name: string): string {
|
|
27
27
|
const pkg = {
|
|
28
28
|
name: name,
|
|
29
|
-
version:
|
|
29
|
+
version: '0.1.0',
|
|
30
30
|
private: true,
|
|
31
|
-
type:
|
|
31
|
+
type: 'module',
|
|
32
32
|
scripts: {
|
|
33
|
-
dev:
|
|
34
|
-
build:
|
|
35
|
-
preview:
|
|
36
|
-
generate:
|
|
37
|
-
test:
|
|
33
|
+
dev: 'vite',
|
|
34
|
+
build: 'tsc && vite build',
|
|
35
|
+
preview: 'vite preview',
|
|
36
|
+
generate: 'praxis generate',
|
|
37
|
+
test: 'vitest',
|
|
38
38
|
},
|
|
39
39
|
dependencies: {
|
|
40
|
-
|
|
40
|
+
'@plures/praxis': '^0.2.1',
|
|
41
41
|
},
|
|
42
42
|
devDependencies: {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
43
|
+
'@sveltejs/vite-plugin-svelte': '^5.0.0',
|
|
44
|
+
'@tsconfig/svelte': '^5.0.4',
|
|
45
|
+
svelte: '^5.0.0',
|
|
46
|
+
'svelte-check': '^4.0.0',
|
|
47
|
+
typescript: '^5.6.0',
|
|
48
|
+
vite: '^6.0.0',
|
|
49
|
+
vitest: '^4.0.0',
|
|
50
|
+
},
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
return JSON.stringify(pkg, null, 2);
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -58,22 +58,22 @@ function generatePackageJson(name: string): string {
|
|
|
58
58
|
*/
|
|
59
59
|
function generateTsConfig(): string {
|
|
60
60
|
const config = {
|
|
61
|
-
extends:
|
|
61
|
+
extends: '@tsconfig/svelte/tsconfig.json',
|
|
62
62
|
compilerOptions: {
|
|
63
|
-
target:
|
|
64
|
-
module:
|
|
65
|
-
moduleResolution:
|
|
63
|
+
target: 'ESNext',
|
|
64
|
+
module: 'ESNext',
|
|
65
|
+
moduleResolution: 'bundler',
|
|
66
66
|
strict: true,
|
|
67
67
|
esModuleInterop: true,
|
|
68
68
|
skipLibCheck: true,
|
|
69
69
|
resolveJsonModule: true,
|
|
70
70
|
isolatedModules: true,
|
|
71
|
-
noEmit: true
|
|
71
|
+
noEmit: true,
|
|
72
72
|
},
|
|
73
|
-
include: [
|
|
74
|
-
exclude: [
|
|
73
|
+
include: ['src/**/*'],
|
|
74
|
+
exclude: ['node_modules'],
|
|
75
75
|
};
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
return JSON.stringify(config, null, 2);
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -441,18 +441,18 @@ coverage/
|
|
|
441
441
|
async function createApp(name: string, options: CreateOptions): Promise<void> {
|
|
442
442
|
const template = options.template || 'basic';
|
|
443
443
|
const appDir = resolve(process.cwd(), name);
|
|
444
|
-
|
|
444
|
+
|
|
445
445
|
// Check if directory already exists
|
|
446
446
|
if (existsSync(appDir)) {
|
|
447
447
|
console.error(`\n✗ Directory '${name}' already exists`);
|
|
448
448
|
console.error(' Please choose a different name or remove the existing directory.\n');
|
|
449
449
|
process.exit(1);
|
|
450
450
|
}
|
|
451
|
-
|
|
451
|
+
|
|
452
452
|
console.log(`\n📦 Creating Praxis application: ${name}`);
|
|
453
453
|
console.log(` Template: ${template}`);
|
|
454
454
|
console.log(` Location: ${appDir}\n`);
|
|
455
|
-
|
|
455
|
+
|
|
456
456
|
// Create directory structure
|
|
457
457
|
const dirs = [
|
|
458
458
|
appDir,
|
|
@@ -461,14 +461,14 @@ async function createApp(name: string, options: CreateOptions): Promise<void> {
|
|
|
461
461
|
join(appDir, 'src', 'components'),
|
|
462
462
|
join(appDir, 'src', 'logic'),
|
|
463
463
|
join(appDir, 'src', 'store'),
|
|
464
|
-
join(appDir, 'public')
|
|
464
|
+
join(appDir, 'public'),
|
|
465
465
|
];
|
|
466
|
-
|
|
466
|
+
|
|
467
467
|
for (const dir of dirs) {
|
|
468
468
|
await mkdir(dir, { recursive: true });
|
|
469
469
|
}
|
|
470
470
|
console.log('✓ Created directory structure');
|
|
471
|
-
|
|
471
|
+
|
|
472
472
|
// Write configuration files
|
|
473
473
|
await writeFile(join(appDir, 'package.json'), generatePackageJson(name));
|
|
474
474
|
await writeFile(join(appDir, 'tsconfig.json'), generateTsConfig());
|
|
@@ -477,21 +477,24 @@ async function createApp(name: string, options: CreateOptions): Promise<void> {
|
|
|
477
477
|
await writeFile(join(appDir, '.gitignore'), generateGitignore());
|
|
478
478
|
await writeFile(join(appDir, 'README.md'), generateReadme(name, template));
|
|
479
479
|
console.log('✓ Created configuration files');
|
|
480
|
-
|
|
480
|
+
|
|
481
481
|
// Write source files
|
|
482
482
|
await writeFile(join(appDir, 'index.html'), generateIndexHtml(name));
|
|
483
483
|
await writeFile(join(appDir, 'src', 'main.ts'), generateMainTs(name));
|
|
484
484
|
await writeFile(join(appDir, 'src', 'App.svelte'), generateAppSvelte(name));
|
|
485
485
|
await writeFile(join(appDir, 'src', 'schemas', 'app.schema.js'), generateAppSchema(name));
|
|
486
486
|
console.log('✓ Created source files');
|
|
487
|
-
|
|
487
|
+
|
|
488
488
|
// Create placeholder files for generated directories
|
|
489
|
-
await writeFile(
|
|
489
|
+
await writeFile(
|
|
490
|
+
join(appDir, 'src', 'components', '.gitkeep'),
|
|
491
|
+
'# Generated components will be placed here\n'
|
|
492
|
+
);
|
|
490
493
|
await writeFile(join(appDir, 'src', 'logic', '.gitkeep'), '# Logic files will be placed here\n');
|
|
491
494
|
await writeFile(join(appDir, 'src', 'store', '.gitkeep'), '# Store files will be placed here\n');
|
|
492
495
|
await writeFile(join(appDir, 'public', '.gitkeep'), '# Static assets go here\n');
|
|
493
496
|
console.log('✓ Created placeholder files');
|
|
494
|
-
|
|
497
|
+
|
|
495
498
|
console.log(`
|
|
496
499
|
✅ Application created successfully!
|
|
497
500
|
|
|
@@ -598,29 +601,32 @@ function generateComponentSvelte(name: string): string {
|
|
|
598
601
|
async function createComponent(name: string, options: CreateOptions): Promise<void> {
|
|
599
602
|
const outputDir = options.directory || join(process.cwd(), 'src', 'components');
|
|
600
603
|
const componentDir = join(outputDir, name);
|
|
601
|
-
|
|
604
|
+
|
|
602
605
|
// Check if component directory already exists
|
|
603
606
|
if (existsSync(componentDir)) {
|
|
604
607
|
console.error(`\n✗ Component '${name}' already exists at ${componentDir}`);
|
|
605
608
|
console.error(' Please choose a different name or remove the existing component.\n');
|
|
606
609
|
process.exit(1);
|
|
607
610
|
}
|
|
608
|
-
|
|
611
|
+
|
|
609
612
|
console.log(`\n🧩 Creating component: ${name}`);
|
|
610
613
|
console.log(` Location: ${componentDir}\n`);
|
|
611
|
-
|
|
614
|
+
|
|
612
615
|
// Create component directory
|
|
613
616
|
await mkdir(componentDir, { recursive: true });
|
|
614
|
-
|
|
617
|
+
|
|
615
618
|
// Write component files
|
|
616
619
|
await writeFile(join(componentDir, `${name}.svelte`), generateComponentSvelte(name));
|
|
617
620
|
await writeFile(join(componentDir, `${name}.schema.js`), generateComponentSchema(name));
|
|
618
|
-
await writeFile(
|
|
619
|
-
|
|
621
|
+
await writeFile(
|
|
622
|
+
join(componentDir, 'index.ts'),
|
|
623
|
+
`export { default as ${name} } from './${name}.svelte';\n`
|
|
624
|
+
);
|
|
625
|
+
|
|
620
626
|
console.log(`✓ Created ${name}.svelte`);
|
|
621
627
|
console.log(`✓ Created ${name}.schema.js`);
|
|
622
628
|
console.log(`✓ Created index.ts`);
|
|
623
|
-
|
|
629
|
+
|
|
624
630
|
console.log(`
|
|
625
631
|
✅ Component created successfully!
|
|
626
632
|
|
|
@@ -637,20 +643,26 @@ Or use the schema for generation:
|
|
|
637
643
|
/**
|
|
638
644
|
* Execute the create command
|
|
639
645
|
*/
|
|
640
|
-
export async function create(
|
|
646
|
+
export async function create(
|
|
647
|
+
type: string,
|
|
648
|
+
name: string | undefined,
|
|
649
|
+
options: CreateOptions
|
|
650
|
+
): Promise<void> {
|
|
641
651
|
if (!name) {
|
|
642
652
|
console.error('\n✗ Please provide a name for the ' + type);
|
|
643
653
|
console.error(` Usage: praxis create ${type} <name>\n`);
|
|
644
654
|
process.exit(1);
|
|
645
655
|
}
|
|
646
|
-
|
|
656
|
+
|
|
647
657
|
// Validate name
|
|
648
658
|
if (!/^[a-zA-Z][a-zA-Z0-9-_]*$/.test(name)) {
|
|
649
659
|
console.error('\n✗ Invalid name format');
|
|
650
|
-
console.error(
|
|
660
|
+
console.error(
|
|
661
|
+
' Name must start with a letter and contain only letters, numbers, hyphens, and underscores.\n'
|
|
662
|
+
);
|
|
651
663
|
process.exit(1);
|
|
652
664
|
}
|
|
653
|
-
|
|
665
|
+
|
|
654
666
|
switch (type) {
|
|
655
667
|
case 'app':
|
|
656
668
|
await createApp(name, options);
|
package/src/cli/commands/dev.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Development Server Command
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Starts the Praxis development server with Vite.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -26,16 +26,16 @@ export interface DevOptions {
|
|
|
26
26
|
export async function dev(options: DevOptions): Promise<void> {
|
|
27
27
|
const port = options.port || '5173';
|
|
28
28
|
const host = options.host || 'localhost';
|
|
29
|
-
|
|
29
|
+
|
|
30
30
|
console.log('\n╔═══════════════════════════════════════════════════╗');
|
|
31
31
|
console.log('║ Praxis Development Server ║');
|
|
32
32
|
console.log('╚═══════════════════════════════════════════════════╝\n');
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
// Check if we're in a Praxis project
|
|
35
35
|
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
36
36
|
const viteConfigPath = path.join(process.cwd(), 'vite.config.ts');
|
|
37
37
|
void viteConfigPath; // Silence unused variable warning
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
if (!fs.existsSync(packageJsonPath)) {
|
|
40
40
|
console.error('Error: No package.json found in current directory.');
|
|
41
41
|
console.log('Make sure you are in a Praxis project directory.\n');
|
|
@@ -43,10 +43,10 @@ export async function dev(options: DevOptions): Promise<void> {
|
|
|
43
43
|
console.log(' praxis create app my-app\n');
|
|
44
44
|
process.exit(1);
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
// Read package.json to check for dev script
|
|
48
48
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
if (!packageJson.scripts?.dev) {
|
|
51
51
|
console.error('Error: No "dev" script found in package.json.');
|
|
52
52
|
console.log('\nTo use the Praxis dev server, add a dev script to your package.json:');
|
|
@@ -55,15 +55,15 @@ export async function dev(options: DevOptions): Promise<void> {
|
|
|
55
55
|
console.log(' }\n');
|
|
56
56
|
process.exit(1);
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
|
|
59
59
|
console.log(`Starting development server on http://${host}:${port}\n`);
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
// Spawn npm run dev with port configuration
|
|
62
62
|
const args = ['run', 'dev', '--', '--port', port, '--host', host];
|
|
63
63
|
if (options.open) {
|
|
64
64
|
args.push('--open');
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
|
|
67
67
|
const child = spawn('npm', args, {
|
|
68
68
|
stdio: 'inherit',
|
|
69
69
|
shell: true,
|
|
@@ -73,19 +73,19 @@ export async function dev(options: DevOptions): Promise<void> {
|
|
|
73
73
|
FORCE_COLOR: '1',
|
|
74
74
|
},
|
|
75
75
|
});
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
child.on('error', (error) => {
|
|
78
78
|
console.error('Failed to start development server:', error.message);
|
|
79
79
|
process.exit(1);
|
|
80
80
|
});
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
child.on('exit', (code) => {
|
|
83
83
|
if (code !== 0 && code !== null) {
|
|
84
84
|
console.error(`Development server exited with code ${code}`);
|
|
85
85
|
process.exit(code);
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
|
-
|
|
88
|
+
|
|
89
89
|
// Handle Ctrl+C gracefully
|
|
90
90
|
process.on('SIGINT', () => {
|
|
91
91
|
console.log('\n\nStopping development server...');
|