@plures/praxis 0.2.1 → 1.0.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/README.md +188 -61
- package/core/codegen/docs-generator.ts +808 -0
- package/core/codegen/index.ts +27 -0
- package/core/codegen/ts-generator.ts +15 -0
- package/core/db-adapter/index.ts +52 -0
- package/core/db-adapter/sync-engine.ts +450 -0
- package/core/logic-engine/engine.ts +12 -0
- package/core/logic-engine/index.ts +16 -0
- package/core/logic-engine/protocol.ts +16 -0
- package/core/logic-engine/psf-adapter.ts +269 -0
- package/core/logic-engine/rules.ts +16 -0
- package/core/schema-engine/compiler.ts +431 -0
- package/core/schema-engine/generator.ts +635 -0
- package/core/schema-engine/index.ts +18 -0
- package/core/schema-engine/psf.ts +664 -0
- package/core/schema-engine/types.ts +63 -0
- package/core/schema-engine/validator.ts +541 -0
- package/dist/core/codegen/docs-generator.d.ts +123 -0
- package/dist/core/codegen/docs-generator.d.ts.map +1 -0
- package/dist/core/codegen/docs-generator.js +674 -0
- package/dist/core/codegen/docs-generator.js.map +1 -0
- package/dist/core/codegen/index.d.ts +11 -0
- package/dist/core/codegen/index.d.ts.map +1 -0
- package/dist/core/codegen/index.js +13 -0
- package/dist/core/codegen/index.js.map +1 -0
- package/dist/core/codegen/ts-generator.d.ts +8 -0
- package/dist/core/codegen/ts-generator.d.ts.map +1 -0
- package/dist/core/codegen/ts-generator.js +8 -0
- package/dist/core/codegen/ts-generator.js.map +1 -0
- package/dist/core/db-adapter/index.d.ts +18 -0
- package/dist/core/db-adapter/index.d.ts.map +1 -0
- package/dist/core/db-adapter/index.js +23 -0
- package/dist/core/db-adapter/index.js.map +1 -0
- package/dist/core/db-adapter/sync-engine.d.ts +180 -0
- package/dist/core/db-adapter/sync-engine.d.ts.map +1 -0
- package/dist/core/db-adapter/sync-engine.js +342 -0
- package/dist/core/db-adapter/sync-engine.js.map +1 -0
- package/dist/core/logic-engine/engine.d.ts +8 -0
- package/dist/core/logic-engine/engine.d.ts.map +1 -0
- package/dist/core/logic-engine/engine.js +8 -0
- package/dist/core/logic-engine/engine.js.map +1 -0
- package/dist/core/logic-engine/index.d.ts +16 -0
- package/dist/core/logic-engine/index.d.ts.map +1 -0
- package/dist/core/logic-engine/index.js +16 -0
- package/dist/core/logic-engine/index.js.map +1 -0
- package/dist/core/logic-engine/protocol.d.ts +7 -0
- package/dist/core/logic-engine/protocol.d.ts.map +1 -0
- package/dist/core/logic-engine/protocol.js +7 -0
- package/dist/core/logic-engine/protocol.js.map +1 -0
- package/dist/core/logic-engine/psf-adapter.d.ts +88 -0
- package/dist/core/logic-engine/psf-adapter.d.ts.map +1 -0
- package/dist/core/logic-engine/psf-adapter.js +207 -0
- package/dist/core/logic-engine/psf-adapter.js.map +1 -0
- package/dist/core/logic-engine/rules.d.ts +7 -0
- package/dist/core/logic-engine/rules.d.ts.map +1 -0
- package/dist/core/logic-engine/rules.js +7 -0
- package/dist/core/logic-engine/rules.js.map +1 -0
- package/dist/core/schema-engine/compiler.d.ts +198 -0
- package/dist/core/schema-engine/compiler.d.ts.map +1 -0
- package/dist/core/schema-engine/compiler.js +262 -0
- package/dist/core/schema-engine/compiler.js.map +1 -0
- package/dist/core/schema-engine/generator.d.ts +115 -0
- package/dist/core/schema-engine/generator.d.ts.map +1 -0
- package/dist/core/schema-engine/generator.js +506 -0
- package/dist/core/schema-engine/generator.js.map +1 -0
- package/dist/core/schema-engine/index.d.ts +18 -0
- package/dist/core/schema-engine/index.d.ts.map +1 -0
- package/dist/core/schema-engine/index.js +18 -0
- package/dist/core/schema-engine/index.js.map +1 -0
- package/dist/core/schema-engine/psf.d.ts +612 -0
- package/dist/core/schema-engine/psf.d.ts.map +1 -0
- package/dist/core/schema-engine/psf.js +45 -0
- package/dist/core/schema-engine/psf.js.map +1 -0
- package/dist/core/schema-engine/types.d.ts +10 -0
- package/dist/core/schema-engine/types.d.ts.map +1 -0
- package/dist/core/schema-engine/types.js +7 -0
- package/dist/core/schema-engine/types.js.map +1 -0
- package/dist/core/schema-engine/validator.d.ts +140 -0
- package/dist/core/schema-engine/validator.d.ts.map +1 -0
- package/dist/core/schema-engine/validator.js +407 -0
- package/dist/core/schema-engine/validator.js.map +1 -0
- package/dist/src/adapters/cli.d.ts.map +1 -0
- package/dist/src/adapters/cli.js.map +1 -0
- package/dist/src/cli/commands/auth.d.ts.map +1 -0
- package/dist/src/cli/commands/auth.js.map +1 -0
- package/dist/src/cli/commands/build.d.ts +23 -0
- package/dist/src/cli/commands/build.d.ts.map +1 -0
- package/dist/src/cli/commands/build.js +162 -0
- package/dist/src/cli/commands/build.js.map +1 -0
- package/dist/src/cli/commands/canvas.d.ts +23 -0
- package/dist/src/cli/commands/canvas.d.ts.map +1 -0
- package/dist/src/cli/commands/canvas.js +215 -0
- package/dist/src/cli/commands/canvas.js.map +1 -0
- package/dist/src/cli/commands/cloud.d.ts.map +1 -0
- package/dist/src/cli/commands/cloud.js.map +1 -0
- package/dist/src/cli/commands/create.d.ts +21 -0
- package/dist/src/cli/commands/create.d.ts.map +1 -0
- package/dist/src/cli/commands/create.js +621 -0
- package/dist/src/cli/commands/create.js.map +1 -0
- package/dist/src/cli/commands/dev.d.ts +21 -0
- package/dist/src/cli/commands/dev.d.ts.map +1 -0
- package/dist/src/cli/commands/dev.js +71 -0
- package/dist/src/cli/commands/dev.js.map +1 -0
- package/dist/src/cli/commands/generate.d.ts.map +1 -0
- package/dist/src/cli/commands/generate.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +44 -0
- package/dist/src/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/src/cli/commands/orchestrate.js +150 -0
- package/dist/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/{cli → src/cli}/index.d.ts.map +1 -1
- package/dist/{cli → src/cli}/index.js +53 -21
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cloud/auth.d.ts.map +1 -0
- package/dist/src/cloud/auth.js.map +1 -0
- package/dist/src/cloud/billing.d.ts.map +1 -0
- package/dist/src/cloud/billing.js.map +1 -0
- package/dist/src/cloud/client.d.ts.map +1 -0
- package/dist/src/cloud/client.js.map +1 -0
- package/dist/src/cloud/index.d.ts.map +1 -0
- package/dist/src/cloud/index.js.map +1 -0
- package/dist/src/cloud/marketplace.d.ts.map +1 -0
- package/dist/src/cloud/marketplace.js.map +1 -0
- package/dist/src/cloud/provisioning.d.ts.map +1 -0
- package/dist/src/cloud/provisioning.js.map +1 -0
- package/dist/src/cloud/relay/endpoints.d.ts.map +1 -0
- package/dist/src/cloud/relay/endpoints.js.map +1 -0
- package/dist/src/cloud/relay/health/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/health/index.js.map +1 -0
- package/dist/src/cloud/relay/stats/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/stats/index.js.map +1 -0
- package/dist/src/cloud/relay/sync/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/sync/index.js.map +1 -0
- package/dist/src/cloud/relay/usage/index.d.ts.map +1 -0
- package/dist/src/cloud/relay/usage/index.js.map +1 -0
- package/dist/src/cloud/sponsors.d.ts.map +1 -0
- package/dist/src/cloud/sponsors.js.map +1 -0
- package/dist/src/cloud/types.d.ts.map +1 -0
- package/dist/src/cloud/types.js.map +1 -0
- package/dist/src/components/index.d.ts.map +1 -0
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/core/actors.d.ts.map +1 -0
- package/dist/src/core/actors.js.map +1 -0
- package/dist/src/core/component/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/component/generator.js +45 -3
- package/dist/src/core/component/generator.js.map +1 -0
- package/dist/src/core/engine.d.ts.map +1 -0
- package/dist/src/core/engine.js.map +1 -0
- package/dist/src/core/introspection.d.ts.map +1 -0
- package/dist/src/core/introspection.js.map +1 -0
- package/dist/src/core/logic/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/logic/generator.js +35 -4
- package/dist/src/core/logic/generator.js.map +1 -0
- package/dist/src/core/pluresdb/adapter.d.ts +72 -0
- package/dist/src/core/pluresdb/adapter.d.ts.map +1 -0
- package/dist/src/core/pluresdb/adapter.js +73 -0
- package/dist/src/core/pluresdb/adapter.js.map +1 -0
- package/dist/src/core/pluresdb/generator.d.ts.map +1 -0
- package/dist/{core → src/core}/pluresdb/generator.js +33 -4
- package/dist/src/core/pluresdb/generator.js.map +1 -0
- package/dist/src/core/pluresdb/index.d.ts +15 -0
- package/dist/src/core/pluresdb/index.d.ts.map +1 -0
- package/dist/src/core/pluresdb/index.js +11 -0
- package/dist/src/core/pluresdb/index.js.map +1 -0
- package/dist/src/core/pluresdb/schema-registry.d.ts +104 -0
- package/dist/src/core/pluresdb/schema-registry.d.ts.map +1 -0
- package/dist/src/core/pluresdb/schema-registry.js +130 -0
- package/dist/src/core/pluresdb/schema-registry.js.map +1 -0
- package/dist/src/core/pluresdb/store.d.ts +199 -0
- package/dist/src/core/pluresdb/store.d.ts.map +1 -0
- package/dist/src/core/pluresdb/store.js +344 -0
- package/dist/src/core/pluresdb/store.js.map +1 -0
- package/dist/src/core/protocol.d.ts.map +1 -0
- package/dist/src/core/protocol.js.map +1 -0
- package/dist/src/core/rules.d.ts.map +1 -0
- package/dist/src/core/rules.js.map +1 -0
- package/dist/src/core/schema/loader.d.ts.map +1 -0
- package/dist/src/core/schema/loader.js.map +1 -0
- package/dist/src/core/schema/normalize.d.ts.map +1 -0
- package/dist/src/core/schema/normalize.js.map +1 -0
- package/dist/src/core/schema/types.d.ts.map +1 -0
- package/dist/src/core/schema/types.js.map +1 -0
- package/dist/src/dsl/index.d.ts.map +1 -0
- package/dist/src/dsl/index.js.map +1 -0
- package/dist/src/dsl.d.ts.map +1 -0
- package/dist/src/dsl.js.map +1 -0
- package/dist/src/examples/advanced-todo/index.d.ts.map +1 -0
- package/dist/src/examples/advanced-todo/index.js.map +1 -0
- package/dist/src/examples/auth-basic/index.d.ts.map +1 -0
- package/dist/src/examples/auth-basic/index.js.map +1 -0
- package/dist/src/examples/cart/index.d.ts.map +1 -0
- package/dist/src/examples/cart/index.js.map +1 -0
- package/dist/src/examples/hero-ecommerce/index.d.ts.map +1 -0
- package/dist/src/examples/hero-ecommerce/index.js.map +1 -0
- package/dist/src/examples/svelte-counter/index.d.ts.map +1 -0
- package/dist/src/examples/svelte-counter/index.js.map +1 -0
- package/dist/src/flows.d.ts.map +1 -0
- package/dist/src/flows.js.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +12 -2
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +6 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/integrations/code-canvas.d.ts +265 -0
- package/dist/src/integrations/code-canvas.d.ts.map +1 -0
- package/dist/src/integrations/code-canvas.js +451 -0
- package/dist/src/integrations/code-canvas.js.map +1 -0
- package/dist/src/integrations/pluresdb.d.ts +117 -0
- package/dist/src/integrations/pluresdb.d.ts.map +1 -0
- package/dist/src/integrations/pluresdb.js +117 -0
- package/dist/src/integrations/pluresdb.js.map +1 -0
- package/dist/src/integrations/state-docs.d.ts +191 -0
- package/dist/src/integrations/state-docs.d.ts.map +1 -0
- package/dist/src/integrations/state-docs.js +515 -0
- package/dist/src/integrations/state-docs.js.map +1 -0
- package/dist/src/integrations/svelte.d.ts.map +1 -0
- package/dist/src/integrations/svelte.js.map +1 -0
- package/dist/src/integrations/tauri.d.ts +360 -0
- package/dist/src/integrations/tauri.d.ts.map +1 -0
- package/dist/src/integrations/tauri.js +278 -0
- package/dist/src/integrations/tauri.js.map +1 -0
- package/dist/src/integrations/unum.d.ts +159 -0
- package/dist/src/integrations/unum.d.ts.map +1 -0
- package/dist/src/integrations/unum.js +240 -0
- package/dist/src/integrations/unum.js.map +1 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/{runtime → src/runtime}/terminal-adapter.d.ts +58 -7
- package/dist/src/runtime/terminal-adapter.d.ts.map +1 -0
- package/dist/src/runtime/terminal-adapter.js +237 -0
- package/dist/src/runtime/terminal-adapter.js.map +1 -0
- package/dist/src/step.d.ts.map +1 -0
- package/dist/src/step.js.map +1 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/{cloud → src}/types.js.map +1 -1
- package/dist/tools/cli/commands/index.d.ts +7 -0
- package/dist/tools/cli/commands/index.d.ts.map +1 -0
- package/dist/tools/cli/commands/index.js +7 -0
- package/dist/tools/cli/commands/index.js.map +1 -0
- package/dist/tools/cli/index.d.ts +8 -0
- package/dist/tools/cli/index.d.ts.map +1 -0
- package/dist/tools/cli/index.js +9 -0
- package/dist/tools/cli/index.js.map +1 -0
- package/dist/tools/watcher/index.d.ts +105 -0
- package/dist/tools/watcher/index.d.ts.map +1 -0
- package/dist/tools/watcher/index.js +213 -0
- package/dist/tools/watcher/index.js.map +1 -0
- package/dist/ui/canvas/canvas-projection.d.ts +78 -0
- package/dist/ui/canvas/canvas-projection.d.ts.map +1 -0
- package/dist/ui/canvas/canvas-projection.js +416 -0
- package/dist/ui/canvas/canvas-projection.js.map +1 -0
- package/dist/ui/canvas/canvas-state.d.ts +200 -0
- package/dist/ui/canvas/canvas-state.d.ts.map +1 -0
- package/dist/ui/canvas/canvas-state.js +464 -0
- package/dist/ui/canvas/canvas-state.js.map +1 -0
- package/dist/ui/canvas/components/index.d.ts +95 -0
- package/dist/ui/canvas/components/index.d.ts.map +1 -0
- package/dist/ui/canvas/components/index.js +19 -0
- package/dist/ui/canvas/components/index.js.map +1 -0
- package/dist/ui/canvas/index.d.ts +32 -0
- package/dist/ui/canvas/index.d.ts.map +1 -0
- package/dist/ui/canvas/index.js +32 -0
- package/dist/ui/canvas/index.js.map +1 -0
- package/dist/ui/svelte-generator/index.d.ts +9 -0
- package/dist/ui/svelte-generator/index.d.ts.map +1 -0
- package/dist/ui/svelte-generator/index.js +11 -0
- package/dist/ui/svelte-generator/index.js.map +1 -0
- package/dist/ui/svelte-generator/psf-generator.d.ts +128 -0
- package/dist/ui/svelte-generator/psf-generator.d.ts.map +1 -0
- package/dist/ui/svelte-generator/psf-generator.js +506 -0
- package/dist/ui/svelte-generator/psf-generator.js.map +1 -0
- package/docs/README.md +155 -0
- package/docs/core/building-extensions.md +553 -0
- package/docs/core/cli-usage.md +498 -0
- package/docs/core/code-canvas-sync.md +468 -0
- package/docs/core/logic-engine.md +566 -0
- package/docs/core/pluresdb-integration.md +646 -0
- package/docs/core/schema-model.md +414 -0
- package/docs/core/ui-generation.md +580 -0
- package/docs/core/what-is-praxis.md +240 -0
- package/docs/tutorials/README.md +84 -0
- package/docs/tutorials/ecommerce-cart.md +631 -0
- package/docs/tutorials/first-app.md +529 -0
- package/docs/tutorials/form-builder.md +620 -0
- package/docs/tutorials/todo-pluresdb.md +589 -0
- package/package.json +1 -1
- package/src/__tests__/canvas-components.test.ts +450 -0
- package/src/__tests__/cli-create.test.ts +178 -0
- package/src/__tests__/code-canvas-integration.test.ts +277 -0
- package/src/__tests__/docs-generator.test.ts +181 -0
- package/src/__tests__/generators.test.ts +3 -2
- package/src/__tests__/pluresdb.test.ts +457 -0
- package/src/__tests__/psf-schema-engine.test.ts +450 -0
- package/src/__tests__/state-docs-integration.test.ts +297 -0
- package/src/__tests__/tauri-integration.test.ts +298 -0
- package/src/__tests__/terminal-node.test.ts +1 -1
- package/src/__tests__/unum-integration.test.ts +142 -0
- package/src/cli/commands/build.ts +203 -0
- package/src/cli/commands/canvas.ts +246 -0
- package/src/cli/commands/create.ts +666 -0
- package/src/cli/commands/dev.ts +95 -0
- package/src/cli/commands/orchestrate.ts +212 -0
- package/src/cli/index.ts +48 -21
- package/src/core/component/generator.ts +45 -3
- package/src/core/logic/generator.ts +39 -4
- package/src/core/pluresdb/adapter.ts +117 -0
- package/src/core/pluresdb/generator.ts +33 -4
- package/src/core/pluresdb/index.ts +37 -0
- package/src/core/pluresdb/schema-registry.ts +162 -0
- package/src/core/pluresdb/store.ts +443 -0
- package/src/index.ts +109 -0
- package/src/integrations/code-canvas.ts +717 -0
- package/src/integrations/pluresdb.ts +140 -29
- package/src/integrations/state-docs.ts +710 -0
- package/src/integrations/tauri.ts +638 -0
- package/src/integrations/unum.ts +395 -0
- package/src/runtime/terminal-adapter.ts +178 -23
- package/dist/adapters/cli.d.ts.map +0 -1
- package/dist/adapters/cli.js.map +0 -1
- package/dist/cli/commands/auth.d.ts.map +0 -1
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/cli/commands/cloud.d.ts.map +0 -1
- package/dist/cli/commands/cloud.js.map +0 -1
- package/dist/cli/commands/generate.d.ts.map +0 -1
- package/dist/cli/commands/generate.js.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cloud/auth.d.ts.map +0 -1
- package/dist/cloud/auth.js.map +0 -1
- package/dist/cloud/billing.d.ts.map +0 -1
- package/dist/cloud/billing.js.map +0 -1
- package/dist/cloud/client.d.ts.map +0 -1
- package/dist/cloud/client.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/marketplace.d.ts.map +0 -1
- package/dist/cloud/marketplace.js.map +0 -1
- package/dist/cloud/provisioning.d.ts.map +0 -1
- package/dist/cloud/provisioning.js.map +0 -1
- package/dist/cloud/relay/endpoints.d.ts.map +0 -1
- package/dist/cloud/relay/endpoints.js.map +0 -1
- package/dist/cloud/relay/health/index.d.ts.map +0 -1
- package/dist/cloud/relay/health/index.js.map +0 -1
- package/dist/cloud/relay/stats/index.d.ts.map +0 -1
- package/dist/cloud/relay/stats/index.js.map +0 -1
- package/dist/cloud/relay/sync/index.d.ts.map +0 -1
- package/dist/cloud/relay/sync/index.js.map +0 -1
- package/dist/cloud/relay/usage/index.d.ts.map +0 -1
- package/dist/cloud/relay/usage/index.js.map +0 -1
- package/dist/cloud/sponsors.d.ts.map +0 -1
- package/dist/cloud/sponsors.js.map +0 -1
- package/dist/cloud/types.d.ts.map +0 -1
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/core/actors.d.ts.map +0 -1
- package/dist/core/actors.js.map +0 -1
- package/dist/core/component/generator.d.ts.map +0 -1
- package/dist/core/component/generator.js.map +0 -1
- package/dist/core/engine.d.ts.map +0 -1
- package/dist/core/engine.js.map +0 -1
- package/dist/core/introspection.d.ts.map +0 -1
- package/dist/core/introspection.js.map +0 -1
- package/dist/core/logic/generator.d.ts.map +0 -1
- package/dist/core/logic/generator.js.map +0 -1
- package/dist/core/pluresdb/generator.d.ts.map +0 -1
- package/dist/core/pluresdb/generator.js.map +0 -1
- package/dist/core/protocol.d.ts.map +0 -1
- package/dist/core/protocol.js.map +0 -1
- package/dist/core/rules.d.ts.map +0 -1
- package/dist/core/rules.js.map +0 -1
- package/dist/core/schema/loader.d.ts.map +0 -1
- package/dist/core/schema/loader.js.map +0 -1
- package/dist/core/schema/normalize.d.ts.map +0 -1
- package/dist/core/schema/normalize.js.map +0 -1
- package/dist/core/schema/types.d.ts.map +0 -1
- package/dist/core/schema/types.js.map +0 -1
- package/dist/dsl/index.d.ts.map +0 -1
- package/dist/dsl/index.js.map +0 -1
- package/dist/dsl.d.ts.map +0 -1
- package/dist/dsl.js.map +0 -1
- package/dist/examples/advanced-todo/index.d.ts.map +0 -1
- package/dist/examples/advanced-todo/index.js.map +0 -1
- package/dist/examples/auth-basic/index.d.ts.map +0 -1
- package/dist/examples/auth-basic/index.js.map +0 -1
- package/dist/examples/cart/index.d.ts.map +0 -1
- package/dist/examples/cart/index.js.map +0 -1
- package/dist/examples/hero-ecommerce/index.d.ts.map +0 -1
- package/dist/examples/hero-ecommerce/index.js.map +0 -1
- package/dist/examples/svelte-counter/index.d.ts.map +0 -1
- package/dist/examples/svelte-counter/index.js.map +0 -1
- package/dist/flows.d.ts.map +0 -1
- package/dist/flows.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/integrations/pluresdb.d.ts +0 -56
- package/dist/integrations/pluresdb.d.ts.map +0 -1
- package/dist/integrations/pluresdb.js +0 -46
- package/dist/integrations/pluresdb.js.map +0 -1
- package/dist/integrations/svelte.d.ts.map +0 -1
- package/dist/integrations/svelte.js.map +0 -1
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js.map +0 -1
- package/dist/runtime/terminal-adapter.d.ts.map +0 -1
- package/dist/runtime/terminal-adapter.js +0 -113
- package/dist/runtime/terminal-adapter.js.map +0 -1
- package/dist/step.d.ts.map +0 -1
- package/dist/step.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{adapters → src/adapters}/cli.d.ts +0 -0
- /package/dist/{adapters → src/adapters}/cli.js +0 -0
- /package/dist/{cli → src/cli}/commands/auth.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/auth.js +0 -0
- /package/dist/{cli → src/cli}/commands/cloud.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/cloud.js +0 -0
- /package/dist/{cli → src/cli}/commands/generate.d.ts +0 -0
- /package/dist/{cli → src/cli}/commands/generate.js +0 -0
- /package/dist/{cli → src/cli}/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/auth.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/auth.js +0 -0
- /package/dist/{cloud → src/cloud}/billing.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/billing.js +0 -0
- /package/dist/{cloud → src/cloud}/client.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/client.js +0 -0
- /package/dist/{cloud → src/cloud}/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/index.js +0 -0
- /package/dist/{cloud → src/cloud}/marketplace.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/marketplace.js +0 -0
- /package/dist/{cloud → src/cloud}/provisioning.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/provisioning.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/endpoints.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/endpoints.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/health/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/health/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/stats/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/stats/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/sync/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/sync/index.js +0 -0
- /package/dist/{cloud → src/cloud}/relay/usage/index.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/relay/usage/index.js +0 -0
- /package/dist/{cloud → src/cloud}/sponsors.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/sponsors.js +0 -0
- /package/dist/{cloud → src/cloud}/types.d.ts +0 -0
- /package/dist/{cloud → src/cloud}/types.js +0 -0
- /package/dist/{components → src/components}/index.d.ts +0 -0
- /package/dist/{components → src/components}/index.js +0 -0
- /package/dist/{core → src/core}/actors.d.ts +0 -0
- /package/dist/{core → src/core}/actors.js +0 -0
- /package/dist/{core → src/core}/component/generator.d.ts +0 -0
- /package/dist/{core → src/core}/engine.d.ts +0 -0
- /package/dist/{core → src/core}/engine.js +0 -0
- /package/dist/{core → src/core}/introspection.d.ts +0 -0
- /package/dist/{core → src/core}/introspection.js +0 -0
- /package/dist/{core → src/core}/logic/generator.d.ts +0 -0
- /package/dist/{core → src/core}/pluresdb/generator.d.ts +0 -0
- /package/dist/{core → src/core}/protocol.d.ts +0 -0
- /package/dist/{core → src/core}/protocol.js +0 -0
- /package/dist/{core → src/core}/rules.d.ts +0 -0
- /package/dist/{core → src/core}/rules.js +0 -0
- /package/dist/{core → src/core}/schema/loader.d.ts +0 -0
- /package/dist/{core → src/core}/schema/loader.js +0 -0
- /package/dist/{core → src/core}/schema/normalize.d.ts +0 -0
- /package/dist/{core → src/core}/schema/normalize.js +0 -0
- /package/dist/{core → src/core}/schema/types.d.ts +0 -0
- /package/dist/{core → src/core}/schema/types.js +0 -0
- /package/dist/{dsl → src/dsl}/index.d.ts +0 -0
- /package/dist/{dsl → src/dsl}/index.js +0 -0
- /package/dist/{dsl.d.ts → src/dsl.d.ts} +0 -0
- /package/dist/{dsl.js → src/dsl.js} +0 -0
- /package/dist/{examples → src/examples}/advanced-todo/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/advanced-todo/index.js +0 -0
- /package/dist/{examples → src/examples}/auth-basic/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/auth-basic/index.js +0 -0
- /package/dist/{examples → src/examples}/cart/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/cart/index.js +0 -0
- /package/dist/{examples → src/examples}/hero-ecommerce/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/hero-ecommerce/index.js +0 -0
- /package/dist/{examples → src/examples}/svelte-counter/index.d.ts +0 -0
- /package/dist/{examples → src/examples}/svelte-counter/index.js +0 -0
- /package/dist/{flows.d.ts → src/flows.d.ts} +0 -0
- /package/dist/{flows.js → src/flows.js} +0 -0
- /package/dist/{integrations → src/integrations}/svelte.d.ts +0 -0
- /package/dist/{integrations → src/integrations}/svelte.js +0 -0
- /package/dist/{registry.d.ts → src/registry.d.ts} +0 -0
- /package/dist/{registry.js → src/registry.js} +0 -0
- /package/dist/{step.d.ts → src/step.d.ts} +0 -0
- /package/dist/{step.js → src/step.js} +0 -0
- /package/dist/{types.d.ts → src/types.d.ts} +0 -0
- /package/dist/{types.js → src/types.js} +0 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tauri Integration
|
|
3
|
+
*
|
|
4
|
+
* Integration with plures/svelte-tauri-template for cross-platform desktop applications.
|
|
5
|
+
* Provides Praxis engine integration with Tauri 2 for native desktop capabilities.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Cross-Platform: Windows, macOS, Linux, Android, iOS
|
|
9
|
+
* - Native Integration: File system, system tray, notifications
|
|
10
|
+
* - IPC Bridge: Type-safe communication between Rust and TypeScript
|
|
11
|
+
* - Auto-Updates: Built-in update system
|
|
12
|
+
* - Code Signing: Support for signed releases
|
|
13
|
+
*
|
|
14
|
+
* @see https://github.com/plures/svelte-tauri-template
|
|
15
|
+
*/
|
|
16
|
+
import type { LogicEngine } from "../core/engine.js";
|
|
17
|
+
import type { PraxisEvent } from "../core/protocol.js";
|
|
18
|
+
/**
|
|
19
|
+
* Tauri app configuration
|
|
20
|
+
*/
|
|
21
|
+
export interface TauriAppConfig {
|
|
22
|
+
/** Application name */
|
|
23
|
+
name: string;
|
|
24
|
+
/** Application version */
|
|
25
|
+
version: string;
|
|
26
|
+
/** Application identifier (e.g., com.example.myapp) */
|
|
27
|
+
identifier: string;
|
|
28
|
+
/** Window configuration */
|
|
29
|
+
window?: TauriWindowConfig;
|
|
30
|
+
/** Security configuration */
|
|
31
|
+
security?: TauriSecurityConfig;
|
|
32
|
+
/** Update configuration */
|
|
33
|
+
updates?: TauriUpdateConfig;
|
|
34
|
+
/** Plugins to enable */
|
|
35
|
+
plugins?: TauriPlugin[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Window configuration
|
|
39
|
+
*/
|
|
40
|
+
export interface TauriWindowConfig {
|
|
41
|
+
/** Window title */
|
|
42
|
+
title?: string;
|
|
43
|
+
/** Window width */
|
|
44
|
+
width?: number;
|
|
45
|
+
/** Window height */
|
|
46
|
+
height?: number;
|
|
47
|
+
/** Minimum width */
|
|
48
|
+
minWidth?: number;
|
|
49
|
+
/** Minimum height */
|
|
50
|
+
minHeight?: number;
|
|
51
|
+
/** Whether window is resizable */
|
|
52
|
+
resizable?: boolean;
|
|
53
|
+
/** Whether window is fullscreen */
|
|
54
|
+
fullscreen?: boolean;
|
|
55
|
+
/** Whether to show title bar */
|
|
56
|
+
decorations?: boolean;
|
|
57
|
+
/** Whether window is transparent */
|
|
58
|
+
transparent?: boolean;
|
|
59
|
+
/** Whether to always be on top */
|
|
60
|
+
alwaysOnTop?: boolean;
|
|
61
|
+
/** Center window on screen */
|
|
62
|
+
center?: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Security configuration
|
|
66
|
+
*/
|
|
67
|
+
export interface TauriSecurityConfig {
|
|
68
|
+
/** Content Security Policy */
|
|
69
|
+
csp?: string;
|
|
70
|
+
/** Allowed domains for fetch */
|
|
71
|
+
allowedDomains?: string[];
|
|
72
|
+
/** Enable dev tools in production */
|
|
73
|
+
devTools?: boolean;
|
|
74
|
+
/** Dangerous features to allow */
|
|
75
|
+
dangerousAllowList?: string[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Auto-update configuration
|
|
79
|
+
*/
|
|
80
|
+
export interface TauriUpdateConfig {
|
|
81
|
+
/** Enable auto-updates */
|
|
82
|
+
enabled: boolean;
|
|
83
|
+
/** Update endpoint URL */
|
|
84
|
+
endpoint?: string;
|
|
85
|
+
/** Update check interval (ms) */
|
|
86
|
+
checkInterval?: number;
|
|
87
|
+
/** Whether to install silently */
|
|
88
|
+
silent?: boolean;
|
|
89
|
+
/** Public key for update verification */
|
|
90
|
+
publicKey?: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Tauri plugin definition
|
|
94
|
+
*/
|
|
95
|
+
export interface TauriPlugin {
|
|
96
|
+
/** Plugin name */
|
|
97
|
+
name: string;
|
|
98
|
+
/** Plugin version */
|
|
99
|
+
version?: string;
|
|
100
|
+
/** Plugin configuration */
|
|
101
|
+
config?: Record<string, unknown>;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* IPC message from frontend to backend
|
|
105
|
+
*/
|
|
106
|
+
export interface TauriCommand<T = unknown> {
|
|
107
|
+
/** Command name */
|
|
108
|
+
cmd: string;
|
|
109
|
+
/** Command payload */
|
|
110
|
+
payload?: T;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* IPC event from backend to frontend
|
|
114
|
+
*/
|
|
115
|
+
export interface TauriEvent<T = unknown> {
|
|
116
|
+
/** Event name */
|
|
117
|
+
event: string;
|
|
118
|
+
/** Event payload */
|
|
119
|
+
payload?: T;
|
|
120
|
+
/** Window label that emitted the event */
|
|
121
|
+
windowLabel?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* File system operations
|
|
125
|
+
*/
|
|
126
|
+
export interface TauriFS {
|
|
127
|
+
/** Read a file */
|
|
128
|
+
readFile(path: string): Promise<Uint8Array>;
|
|
129
|
+
/** Read a file as text */
|
|
130
|
+
readTextFile(path: string): Promise<string>;
|
|
131
|
+
/** Write to a file */
|
|
132
|
+
writeFile(path: string, data: Uint8Array): Promise<void>;
|
|
133
|
+
/** Write text to a file */
|
|
134
|
+
writeTextFile(path: string, data: string): Promise<void>;
|
|
135
|
+
/** Check if path exists */
|
|
136
|
+
exists(path: string): Promise<boolean>;
|
|
137
|
+
/** Create directory */
|
|
138
|
+
mkdir(path: string, options?: {
|
|
139
|
+
recursive?: boolean;
|
|
140
|
+
}): Promise<void>;
|
|
141
|
+
/** Remove file or directory */
|
|
142
|
+
remove(path: string, options?: {
|
|
143
|
+
recursive?: boolean;
|
|
144
|
+
}): Promise<void>;
|
|
145
|
+
/** Rename/move file */
|
|
146
|
+
rename(oldPath: string, newPath: string): Promise<void>;
|
|
147
|
+
/** List directory contents */
|
|
148
|
+
readDir(path: string): Promise<TauriFileEntry[]>;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* File entry from directory listing
|
|
152
|
+
*/
|
|
153
|
+
export interface TauriFileEntry {
|
|
154
|
+
/** File name */
|
|
155
|
+
name: string;
|
|
156
|
+
/** Full path */
|
|
157
|
+
path: string;
|
|
158
|
+
/** Is directory */
|
|
159
|
+
isDirectory: boolean;
|
|
160
|
+
/** Is file */
|
|
161
|
+
isFile: boolean;
|
|
162
|
+
/** File size in bytes */
|
|
163
|
+
size?: number;
|
|
164
|
+
/** Last modified timestamp */
|
|
165
|
+
modifiedAt?: number;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* System tray operations
|
|
169
|
+
*/
|
|
170
|
+
export interface TauriTray {
|
|
171
|
+
/** Set tray icon */
|
|
172
|
+
setIcon(icon: string | Uint8Array): Promise<void>;
|
|
173
|
+
/** Set tray tooltip */
|
|
174
|
+
setTooltip(tooltip: string): Promise<void>;
|
|
175
|
+
/** Set tray menu */
|
|
176
|
+
setMenu(menu: TauriMenuItem[]): Promise<void>;
|
|
177
|
+
/** Show tray */
|
|
178
|
+
show(): Promise<void>;
|
|
179
|
+
/** Hide tray */
|
|
180
|
+
hide(): Promise<void>;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Tray menu item
|
|
184
|
+
*/
|
|
185
|
+
export interface TauriMenuItem {
|
|
186
|
+
/** Item ID */
|
|
187
|
+
id: string;
|
|
188
|
+
/** Item label */
|
|
189
|
+
label: string;
|
|
190
|
+
/** Is item enabled */
|
|
191
|
+
enabled?: boolean;
|
|
192
|
+
/** Is item checked (for checkboxes) */
|
|
193
|
+
checked?: boolean;
|
|
194
|
+
/** Submenu items */
|
|
195
|
+
submenu?: TauriMenuItem[];
|
|
196
|
+
/** Click handler */
|
|
197
|
+
onClick?: () => void;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Notification API
|
|
201
|
+
*/
|
|
202
|
+
export interface TauriNotification {
|
|
203
|
+
/** Send a notification */
|
|
204
|
+
send(options: TauriNotificationOptions): Promise<void>;
|
|
205
|
+
/** Request notification permission */
|
|
206
|
+
requestPermission(): Promise<'granted' | 'denied' | 'default'>;
|
|
207
|
+
/** Check notification permission */
|
|
208
|
+
checkPermission(): Promise<'granted' | 'denied' | 'default'>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Notification options
|
|
212
|
+
*/
|
|
213
|
+
export interface TauriNotificationOptions {
|
|
214
|
+
/** Notification title */
|
|
215
|
+
title: string;
|
|
216
|
+
/** Notification body */
|
|
217
|
+
body?: string;
|
|
218
|
+
/** Notification icon */
|
|
219
|
+
icon?: string;
|
|
220
|
+
/** Sound to play */
|
|
221
|
+
sound?: string;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Tauri bridge for Praxis integration
|
|
225
|
+
*
|
|
226
|
+
* Provides type-safe access to Tauri APIs from Praxis applications.
|
|
227
|
+
*/
|
|
228
|
+
export interface TauriBridge {
|
|
229
|
+
/** Application info */
|
|
230
|
+
app: {
|
|
231
|
+
name: string;
|
|
232
|
+
version: string;
|
|
233
|
+
tauriVersion: string;
|
|
234
|
+
};
|
|
235
|
+
/** File system operations */
|
|
236
|
+
fs: TauriFS;
|
|
237
|
+
/** System tray operations */
|
|
238
|
+
tray: TauriTray;
|
|
239
|
+
/** Notification operations */
|
|
240
|
+
notification: TauriNotification;
|
|
241
|
+
/** Invoke a Tauri command */
|
|
242
|
+
invoke<T = unknown>(cmd: string, payload?: unknown): Promise<T>;
|
|
243
|
+
/** Listen to a Tauri event */
|
|
244
|
+
listen<T = unknown>(event: string, handler: (event: TauriEvent<T>) => void): Promise<() => void>;
|
|
245
|
+
/** Emit a Tauri event */
|
|
246
|
+
emit(event: string, payload?: unknown): Promise<void>;
|
|
247
|
+
/** Get window operations */
|
|
248
|
+
window: {
|
|
249
|
+
/** Minimize window */
|
|
250
|
+
minimize(): Promise<void>;
|
|
251
|
+
/** Maximize window */
|
|
252
|
+
maximize(): Promise<void>;
|
|
253
|
+
/** Unmaximize window */
|
|
254
|
+
unmaximize(): Promise<void>;
|
|
255
|
+
/** Close window */
|
|
256
|
+
close(): Promise<void>;
|
|
257
|
+
/** Toggle fullscreen */
|
|
258
|
+
toggleFullscreen(): Promise<void>;
|
|
259
|
+
/** Set window title */
|
|
260
|
+
setTitle(title: string): Promise<void>;
|
|
261
|
+
/** Show window */
|
|
262
|
+
show(): Promise<void>;
|
|
263
|
+
/** Hide window */
|
|
264
|
+
hide(): Promise<void>;
|
|
265
|
+
/** Focus window */
|
|
266
|
+
focus(): Promise<void>;
|
|
267
|
+
};
|
|
268
|
+
/** Check for updates */
|
|
269
|
+
checkForUpdates(): Promise<TauriUpdateInfo | null>;
|
|
270
|
+
/** Install update */
|
|
271
|
+
installUpdate(): Promise<void>;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Update information
|
|
275
|
+
*/
|
|
276
|
+
export interface TauriUpdateInfo {
|
|
277
|
+
/** New version available */
|
|
278
|
+
version: string;
|
|
279
|
+
/** Release date */
|
|
280
|
+
date: string;
|
|
281
|
+
/** Release notes */
|
|
282
|
+
notes?: string;
|
|
283
|
+
/** Download URL */
|
|
284
|
+
url: string;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Praxis-Tauri adapter for engine persistence
|
|
288
|
+
*/
|
|
289
|
+
export interface TauriPraxisAdapter<TContext = unknown> {
|
|
290
|
+
/** Save engine state to file */
|
|
291
|
+
saveState(state: TContext): Promise<void>;
|
|
292
|
+
/** Load engine state from file */
|
|
293
|
+
loadState(): Promise<TContext | null>;
|
|
294
|
+
/** Save events to file */
|
|
295
|
+
saveEvents(events: PraxisEvent[]): Promise<void>;
|
|
296
|
+
/** Load events from file */
|
|
297
|
+
loadEvents(): Promise<PraxisEvent[]>;
|
|
298
|
+
/** Watch for file changes */
|
|
299
|
+
watchStateFile(handler: (state: TContext) => void): Promise<() => void>;
|
|
300
|
+
/** Get state file path */
|
|
301
|
+
getStatePath(): string;
|
|
302
|
+
/** Get events file path */
|
|
303
|
+
getEventsPath(): string;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Create a mock Tauri bridge for development/testing
|
|
307
|
+
*
|
|
308
|
+
* This provides a mock implementation that works without Tauri runtime.
|
|
309
|
+
*/
|
|
310
|
+
export declare function createMockTauriBridge(): TauriBridge;
|
|
311
|
+
/**
|
|
312
|
+
* Create a Tauri-Praxis adapter for engine persistence
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* ```typescript
|
|
316
|
+
* import { createTauriPraxisAdapter } from '@plures/praxis/integrations/tauri';
|
|
317
|
+
*
|
|
318
|
+
* const adapter = createTauriPraxisAdapter({
|
|
319
|
+
* bridge: tauriBridge,
|
|
320
|
+
* statePath: 'app-state.json',
|
|
321
|
+
* eventsPath: 'app-events.json',
|
|
322
|
+
* });
|
|
323
|
+
*
|
|
324
|
+
* // Save state
|
|
325
|
+
* await adapter.saveState(engine.getContext());
|
|
326
|
+
*
|
|
327
|
+
* // Load state
|
|
328
|
+
* const savedState = await adapter.loadState();
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
export declare function createTauriPraxisAdapter<TContext = unknown>(options: {
|
|
332
|
+
bridge: TauriBridge;
|
|
333
|
+
statePath?: string;
|
|
334
|
+
eventsPath?: string;
|
|
335
|
+
}): TauriPraxisAdapter<TContext>;
|
|
336
|
+
/**
|
|
337
|
+
* Attach Tauri bridge to a Praxis engine for auto-save
|
|
338
|
+
*
|
|
339
|
+
* @example
|
|
340
|
+
* ```typescript
|
|
341
|
+
* import { attachTauriToEngine } from '@plures/praxis/integrations/tauri';
|
|
342
|
+
*
|
|
343
|
+
* const cleanup = attachTauriToEngine(engine, adapter, {
|
|
344
|
+
* autoSave: true,
|
|
345
|
+
* saveInterval: 5000,
|
|
346
|
+
* });
|
|
347
|
+
*
|
|
348
|
+
* // Later, cleanup subscriptions
|
|
349
|
+
* cleanup();
|
|
350
|
+
* ```
|
|
351
|
+
*/
|
|
352
|
+
export declare function attachTauriToEngine<TContext>(engine: LogicEngine<TContext>, adapter: TauriPraxisAdapter<TContext>, options?: {
|
|
353
|
+
autoSave?: boolean;
|
|
354
|
+
saveInterval?: number;
|
|
355
|
+
}): () => void;
|
|
356
|
+
/**
|
|
357
|
+
* Generate Tauri configuration from Praxis app config
|
|
358
|
+
*/
|
|
359
|
+
export declare function generateTauriConfig(config: TauriAppConfig): Record<string, unknown>;
|
|
360
|
+
//# sourceMappingURL=tauri.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tauri.d.ts","sourceRoot":"","sources":["../../../src/integrations/tauri.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tauri Integration
|
|
3
|
+
*
|
|
4
|
+
* Integration with plures/svelte-tauri-template for cross-platform desktop applications.
|
|
5
|
+
* Provides Praxis engine integration with Tauri 2 for native desktop capabilities.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Cross-Platform: Windows, macOS, Linux, Android, iOS
|
|
9
|
+
* - Native Integration: File system, system tray, notifications
|
|
10
|
+
* - IPC Bridge: Type-safe communication between Rust and TypeScript
|
|
11
|
+
* - Auto-Updates: Built-in update system
|
|
12
|
+
* - Code Signing: Support for signed releases
|
|
13
|
+
*
|
|
14
|
+
* @see https://github.com/plures/svelte-tauri-template
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Create a mock Tauri bridge for development/testing
|
|
18
|
+
*
|
|
19
|
+
* This provides a mock implementation that works without Tauri runtime.
|
|
20
|
+
*/
|
|
21
|
+
export function createMockTauriBridge() {
|
|
22
|
+
const eventHandlers = new Map();
|
|
23
|
+
const storage = new Map();
|
|
24
|
+
return {
|
|
25
|
+
app: {
|
|
26
|
+
name: 'Mock App',
|
|
27
|
+
version: '0.0.0',
|
|
28
|
+
tauriVersion: 'mock',
|
|
29
|
+
},
|
|
30
|
+
fs: {
|
|
31
|
+
async readFile(path) {
|
|
32
|
+
const data = storage.get(path);
|
|
33
|
+
if (data instanceof Uint8Array)
|
|
34
|
+
return data;
|
|
35
|
+
throw new Error(`File not found: ${path}`);
|
|
36
|
+
},
|
|
37
|
+
async readTextFile(path) {
|
|
38
|
+
const data = storage.get(path);
|
|
39
|
+
if (typeof data === 'string')
|
|
40
|
+
return data;
|
|
41
|
+
throw new Error(`File not found: ${path}`);
|
|
42
|
+
},
|
|
43
|
+
async writeFile(path, data) {
|
|
44
|
+
storage.set(path, data);
|
|
45
|
+
},
|
|
46
|
+
async writeTextFile(path, data) {
|
|
47
|
+
storage.set(path, data);
|
|
48
|
+
},
|
|
49
|
+
async exists(path) {
|
|
50
|
+
return storage.has(path);
|
|
51
|
+
},
|
|
52
|
+
async mkdir(_path, _options) {
|
|
53
|
+
// No-op for mock
|
|
54
|
+
},
|
|
55
|
+
async remove(path, _options) {
|
|
56
|
+
storage.delete(path);
|
|
57
|
+
},
|
|
58
|
+
async rename(oldPath, newPath) {
|
|
59
|
+
const data = storage.get(oldPath);
|
|
60
|
+
if (data !== undefined) {
|
|
61
|
+
storage.set(newPath, data);
|
|
62
|
+
storage.delete(oldPath);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
async readDir(_path) {
|
|
66
|
+
return [];
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
tray: {
|
|
70
|
+
async setIcon(_icon) { },
|
|
71
|
+
async setTooltip(_tooltip) { },
|
|
72
|
+
async setMenu(_menu) { },
|
|
73
|
+
async show() { },
|
|
74
|
+
async hide() { },
|
|
75
|
+
},
|
|
76
|
+
notification: {
|
|
77
|
+
async send(options) {
|
|
78
|
+
console.log('Mock notification:', options.title, options.body);
|
|
79
|
+
},
|
|
80
|
+
async requestPermission() {
|
|
81
|
+
return 'granted';
|
|
82
|
+
},
|
|
83
|
+
async checkPermission() {
|
|
84
|
+
return 'granted';
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
async invoke(cmd, payload) {
|
|
88
|
+
console.log('Mock invoke:', cmd, payload);
|
|
89
|
+
return null;
|
|
90
|
+
},
|
|
91
|
+
async listen(event, handler) {
|
|
92
|
+
if (!eventHandlers.has(event)) {
|
|
93
|
+
eventHandlers.set(event, new Set());
|
|
94
|
+
}
|
|
95
|
+
eventHandlers.get(event).add(handler);
|
|
96
|
+
return () => {
|
|
97
|
+
eventHandlers.get(event)?.delete(handler);
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
async emit(event, payload) {
|
|
101
|
+
const handlers = eventHandlers.get(event);
|
|
102
|
+
if (handlers) {
|
|
103
|
+
const tauriEvent = { event, payload };
|
|
104
|
+
handlers.forEach(h => h(tauriEvent));
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
window: {
|
|
108
|
+
async minimize() { },
|
|
109
|
+
async maximize() { },
|
|
110
|
+
async unmaximize() { },
|
|
111
|
+
async close() { },
|
|
112
|
+
async toggleFullscreen() { },
|
|
113
|
+
async setTitle(_title) { },
|
|
114
|
+
async show() { },
|
|
115
|
+
async hide() { },
|
|
116
|
+
async focus() { },
|
|
117
|
+
},
|
|
118
|
+
async checkForUpdates() {
|
|
119
|
+
return null;
|
|
120
|
+
},
|
|
121
|
+
async installUpdate() { },
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Create a Tauri-Praxis adapter for engine persistence
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* import { createTauriPraxisAdapter } from '@plures/praxis/integrations/tauri';
|
|
130
|
+
*
|
|
131
|
+
* const adapter = createTauriPraxisAdapter({
|
|
132
|
+
* bridge: tauriBridge,
|
|
133
|
+
* statePath: 'app-state.json',
|
|
134
|
+
* eventsPath: 'app-events.json',
|
|
135
|
+
* });
|
|
136
|
+
*
|
|
137
|
+
* // Save state
|
|
138
|
+
* await adapter.saveState(engine.getContext());
|
|
139
|
+
*
|
|
140
|
+
* // Load state
|
|
141
|
+
* const savedState = await adapter.loadState();
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export function createTauriPraxisAdapter(options) {
|
|
145
|
+
const { bridge, statePath = 'praxis-state.json', eventsPath = 'praxis-events.json' } = options;
|
|
146
|
+
return {
|
|
147
|
+
async saveState(state) {
|
|
148
|
+
const json = JSON.stringify(state, null, 2);
|
|
149
|
+
await bridge.fs.writeTextFile(statePath, json);
|
|
150
|
+
},
|
|
151
|
+
async loadState() {
|
|
152
|
+
try {
|
|
153
|
+
const exists = await bridge.fs.exists(statePath);
|
|
154
|
+
if (!exists)
|
|
155
|
+
return null;
|
|
156
|
+
const json = await bridge.fs.readTextFile(statePath);
|
|
157
|
+
return JSON.parse(json);
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
async saveEvents(events) {
|
|
164
|
+
const json = JSON.stringify(events, null, 2);
|
|
165
|
+
await bridge.fs.writeTextFile(eventsPath, json);
|
|
166
|
+
},
|
|
167
|
+
async loadEvents() {
|
|
168
|
+
try {
|
|
169
|
+
const exists = await bridge.fs.exists(eventsPath);
|
|
170
|
+
if (!exists)
|
|
171
|
+
return [];
|
|
172
|
+
const json = await bridge.fs.readTextFile(eventsPath);
|
|
173
|
+
return JSON.parse(json);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return [];
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
async watchStateFile(_handler) {
|
|
180
|
+
// In a real implementation, this would use Tauri's fs watch API
|
|
181
|
+
// For now, we'll just return a no-op cleanup function
|
|
182
|
+
console.log('File watching not implemented in mock');
|
|
183
|
+
return () => { };
|
|
184
|
+
},
|
|
185
|
+
getStatePath() {
|
|
186
|
+
return statePath;
|
|
187
|
+
},
|
|
188
|
+
getEventsPath() {
|
|
189
|
+
return eventsPath;
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Attach Tauri bridge to a Praxis engine for auto-save
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* import { attachTauriToEngine } from '@plures/praxis/integrations/tauri';
|
|
199
|
+
*
|
|
200
|
+
* const cleanup = attachTauriToEngine(engine, adapter, {
|
|
201
|
+
* autoSave: true,
|
|
202
|
+
* saveInterval: 5000,
|
|
203
|
+
* });
|
|
204
|
+
*
|
|
205
|
+
* // Later, cleanup subscriptions
|
|
206
|
+
* cleanup();
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
export function attachTauriToEngine(engine, adapter, options = {}) {
|
|
210
|
+
const { autoSave = true, saveInterval = 5000 } = options;
|
|
211
|
+
const cleanupFns = [];
|
|
212
|
+
if (autoSave) {
|
|
213
|
+
let saveTimer = null;
|
|
214
|
+
let pendingSave = false;
|
|
215
|
+
const debouncedSave = async () => {
|
|
216
|
+
pendingSave = true;
|
|
217
|
+
if (saveTimer)
|
|
218
|
+
clearTimeout(saveTimer);
|
|
219
|
+
saveTimer = setTimeout(async () => {
|
|
220
|
+
if (pendingSave) {
|
|
221
|
+
await adapter.saveState(engine.getContext());
|
|
222
|
+
pendingSave = false;
|
|
223
|
+
}
|
|
224
|
+
}, saveInterval);
|
|
225
|
+
};
|
|
226
|
+
// Note: In a future implementation, this would hook into engine state changes
|
|
227
|
+
// For now, we provide manual save on interval if state is dirty
|
|
228
|
+
// The caller can trigger debouncedSave manually after engine.step() calls
|
|
229
|
+
// Initial save setup - clean up timer on dispose
|
|
230
|
+
cleanupFns.push(() => {
|
|
231
|
+
if (saveTimer)
|
|
232
|
+
clearTimeout(saveTimer);
|
|
233
|
+
});
|
|
234
|
+
// Expose a way to trigger save (for future use)
|
|
235
|
+
void debouncedSave;
|
|
236
|
+
}
|
|
237
|
+
return () => {
|
|
238
|
+
cleanupFns.forEach(fn => fn());
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Generate Tauri configuration from Praxis app config
|
|
243
|
+
*/
|
|
244
|
+
export function generateTauriConfig(config) {
|
|
245
|
+
return {
|
|
246
|
+
$schema: "https://raw.githubusercontent.com/tauri-apps/tauri/tauri-v2.0.0/core/tauri-config-schema/schema.json",
|
|
247
|
+
productName: config.name,
|
|
248
|
+
version: config.version,
|
|
249
|
+
identifier: config.identifier,
|
|
250
|
+
app: {
|
|
251
|
+
windows: [
|
|
252
|
+
{
|
|
253
|
+
title: config.window?.title || config.name,
|
|
254
|
+
width: config.window?.width || 800,
|
|
255
|
+
height: config.window?.height || 600,
|
|
256
|
+
minWidth: config.window?.minWidth,
|
|
257
|
+
minHeight: config.window?.minHeight,
|
|
258
|
+
resizable: config.window?.resizable ?? true,
|
|
259
|
+
fullscreen: config.window?.fullscreen ?? false,
|
|
260
|
+
decorations: config.window?.decorations ?? true,
|
|
261
|
+
transparent: config.window?.transparent ?? false,
|
|
262
|
+
alwaysOnTop: config.window?.alwaysOnTop ?? false,
|
|
263
|
+
center: config.window?.center ?? true,
|
|
264
|
+
},
|
|
265
|
+
],
|
|
266
|
+
security: {
|
|
267
|
+
csp: config.security?.csp || "default-src 'self'",
|
|
268
|
+
devtools: config.security?.devTools ?? false,
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
build: {
|
|
272
|
+
devUrl: "http://localhost:5173",
|
|
273
|
+
frontendDist: "../dist",
|
|
274
|
+
},
|
|
275
|
+
plugins: Object.fromEntries((config.plugins || []).map(p => [p.name, p.config || {}])),
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=tauri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tauri.js","sourceRoot":"","sources":["../../../src/integrations/tauri.ts"],"names":[],"mappings":"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"}
|