@plures/praxis 0.2.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 +420 -0
- package/LICENSE +21 -0
- package/README.md +1310 -0
- package/dist/adapters/cli.d.ts +43 -0
- package/dist/adapters/cli.d.ts.map +1 -0
- package/dist/adapters/cli.js +126 -0
- package/dist/adapters/cli.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +26 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +233 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/cloud.d.ts +27 -0
- package/dist/cli/commands/cloud.d.ts.map +1 -0
- package/dist/cli/commands/cloud.js +232 -0
- package/dist/cli/commands/cloud.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +25 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +168 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +179 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cloud/auth.d.ts +51 -0
- package/dist/cloud/auth.d.ts.map +1 -0
- package/dist/cloud/auth.js +194 -0
- package/dist/cloud/auth.js.map +1 -0
- package/dist/cloud/billing.d.ts +184 -0
- package/dist/cloud/billing.d.ts.map +1 -0
- package/dist/cloud/billing.js +179 -0
- package/dist/cloud/billing.js.map +1 -0
- package/dist/cloud/client.d.ts +39 -0
- package/dist/cloud/client.d.ts.map +1 -0
- package/dist/cloud/client.js +176 -0
- package/dist/cloud/client.js.map +1 -0
- package/dist/cloud/index.d.ts +44 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +44 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/marketplace.d.ts +166 -0
- package/dist/cloud/marketplace.d.ts.map +1 -0
- package/dist/cloud/marketplace.js +159 -0
- package/dist/cloud/marketplace.js.map +1 -0
- package/dist/cloud/provisioning.d.ts +110 -0
- package/dist/cloud/provisioning.d.ts.map +1 -0
- package/dist/cloud/provisioning.js +148 -0
- package/dist/cloud/provisioning.js.map +1 -0
- package/dist/cloud/relay/endpoints.d.ts +62 -0
- package/dist/cloud/relay/endpoints.d.ts.map +1 -0
- package/dist/cloud/relay/endpoints.js +217 -0
- package/dist/cloud/relay/endpoints.js.map +1 -0
- package/dist/cloud/relay/health/index.d.ts +5 -0
- package/dist/cloud/relay/health/index.d.ts.map +1 -0
- package/dist/cloud/relay/health/index.js +9 -0
- package/dist/cloud/relay/health/index.js.map +1 -0
- package/dist/cloud/relay/stats/index.d.ts +5 -0
- package/dist/cloud/relay/stats/index.d.ts.map +1 -0
- package/dist/cloud/relay/stats/index.js +9 -0
- package/dist/cloud/relay/stats/index.js.map +1 -0
- package/dist/cloud/relay/sync/index.d.ts +5 -0
- package/dist/cloud/relay/sync/index.d.ts.map +1 -0
- package/dist/cloud/relay/sync/index.js +9 -0
- package/dist/cloud/relay/sync/index.js.map +1 -0
- package/dist/cloud/relay/usage/index.d.ts +5 -0
- package/dist/cloud/relay/usage/index.d.ts.map +1 -0
- package/dist/cloud/relay/usage/index.js +9 -0
- package/dist/cloud/relay/usage/index.js.map +1 -0
- package/dist/cloud/sponsors.d.ts +81 -0
- package/dist/cloud/sponsors.d.ts.map +1 -0
- package/dist/cloud/sponsors.js +130 -0
- package/dist/cloud/sponsors.js.map +1 -0
- package/dist/cloud/types.d.ts +169 -0
- package/dist/cloud/types.d.ts.map +1 -0
- package/dist/cloud/types.js +7 -0
- package/dist/cloud/types.js.map +1 -0
- package/dist/components/index.d.ts +43 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/core/actors.d.ts +95 -0
- package/dist/core/actors.d.ts.map +1 -0
- package/dist/core/actors.js +158 -0
- package/dist/core/actors.js.map +1 -0
- package/dist/core/component/generator.d.ts +122 -0
- package/dist/core/component/generator.d.ts.map +1 -0
- package/dist/core/component/generator.js +307 -0
- package/dist/core/component/generator.js.map +1 -0
- package/dist/core/engine.d.ts +92 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +199 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/introspection.d.ts +141 -0
- package/dist/core/introspection.d.ts.map +1 -0
- package/dist/core/introspection.js +208 -0
- package/dist/core/introspection.js.map +1 -0
- package/dist/core/logic/generator.d.ts +76 -0
- package/dist/core/logic/generator.d.ts.map +1 -0
- package/dist/core/logic/generator.js +339 -0
- package/dist/core/logic/generator.js.map +1 -0
- package/dist/core/pluresdb/generator.d.ts +58 -0
- package/dist/core/pluresdb/generator.d.ts.map +1 -0
- package/dist/core/pluresdb/generator.js +162 -0
- package/dist/core/pluresdb/generator.js.map +1 -0
- package/dist/core/protocol.d.ts +121 -0
- package/dist/core/protocol.d.ts.map +1 -0
- package/dist/core/protocol.js +46 -0
- package/dist/core/protocol.js.map +1 -0
- package/dist/core/rules.d.ts +120 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/rules.js +81 -0
- package/dist/core/rules.js.map +1 -0
- package/dist/core/schema/loader.d.ts +47 -0
- package/dist/core/schema/loader.d.ts.map +1 -0
- package/dist/core/schema/loader.js +189 -0
- package/dist/core/schema/loader.js.map +1 -0
- package/dist/core/schema/normalize.d.ts +72 -0
- package/dist/core/schema/normalize.d.ts.map +1 -0
- package/dist/core/schema/normalize.js +190 -0
- package/dist/core/schema/normalize.js.map +1 -0
- package/dist/core/schema/types.d.ts +370 -0
- package/dist/core/schema/types.d.ts.map +1 -0
- package/dist/core/schema/types.js +161 -0
- package/dist/core/schema/types.js.map +1 -0
- package/dist/dsl/index.d.ts +152 -0
- package/dist/dsl/index.d.ts.map +1 -0
- package/dist/dsl/index.js +132 -0
- package/dist/dsl/index.js.map +1 -0
- package/dist/dsl.d.ts +124 -0
- package/dist/dsl.d.ts.map +1 -0
- package/dist/dsl.js +130 -0
- package/dist/dsl.js.map +1 -0
- package/dist/examples/advanced-todo/index.d.ts +55 -0
- package/dist/examples/advanced-todo/index.d.ts.map +1 -0
- package/dist/examples/advanced-todo/index.js +222 -0
- package/dist/examples/advanced-todo/index.js.map +1 -0
- package/dist/examples/auth-basic/index.d.ts +17 -0
- package/dist/examples/auth-basic/index.d.ts.map +1 -0
- package/dist/examples/auth-basic/index.js +122 -0
- package/dist/examples/auth-basic/index.js.map +1 -0
- package/dist/examples/cart/index.d.ts +19 -0
- package/dist/examples/cart/index.d.ts.map +1 -0
- package/dist/examples/cart/index.js +202 -0
- package/dist/examples/cart/index.js.map +1 -0
- package/dist/examples/hero-ecommerce/index.d.ts +39 -0
- package/dist/examples/hero-ecommerce/index.d.ts.map +1 -0
- package/dist/examples/hero-ecommerce/index.js +506 -0
- package/dist/examples/hero-ecommerce/index.js.map +1 -0
- package/dist/examples/svelte-counter/index.d.ts +31 -0
- package/dist/examples/svelte-counter/index.d.ts.map +1 -0
- package/dist/examples/svelte-counter/index.js +123 -0
- package/dist/examples/svelte-counter/index.js.map +1 -0
- package/dist/flows.d.ts +125 -0
- package/dist/flows.d.ts.map +1 -0
- package/dist/flows.js +160 -0
- package/dist/flows.js.map +1 -0
- package/dist/index.d.ts +67 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/pluresdb.d.ts +56 -0
- package/dist/integrations/pluresdb.d.ts.map +1 -0
- package/dist/integrations/pluresdb.js +46 -0
- package/dist/integrations/pluresdb.js.map +1 -0
- package/dist/integrations/svelte.d.ts +306 -0
- package/dist/integrations/svelte.d.ts.map +1 -0
- package/dist/integrations/svelte.js +447 -0
- package/dist/integrations/svelte.js.map +1 -0
- package/dist/registry.d.ts +94 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +181 -0
- package/dist/registry.js.map +1 -0
- package/dist/runtime/terminal-adapter.d.ts +105 -0
- package/dist/runtime/terminal-adapter.d.ts.map +1 -0
- package/dist/runtime/terminal-adapter.js +113 -0
- package/dist/runtime/terminal-adapter.js.map +1 -0
- package/dist/step.d.ts +34 -0
- package/dist/step.d.ts.map +1 -0
- package/dist/step.js +111 -0
- package/dist/step.js.map +1 -0
- package/dist/types.d.ts +63 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/docs/MONETIZATION.md +394 -0
- package/docs/TERMINAL_NODE.md +588 -0
- package/docs/guides/canvas.md +389 -0
- package/docs/guides/getting-started.md +347 -0
- package/docs/guides/history-state-pattern.md +618 -0
- package/docs/guides/orchestration.md +617 -0
- package/docs/guides/parallel-state-pattern.md +767 -0
- package/docs/guides/svelte-integration.md +691 -0
- package/package.json +96 -0
- package/src/__tests__/actors.test.ts +270 -0
- package/src/__tests__/billing.test.ts +175 -0
- package/src/__tests__/cloud.test.ts +247 -0
- package/src/__tests__/dsl.test.ts +154 -0
- package/src/__tests__/edge-cases.test.ts +475 -0
- package/src/__tests__/engine.test.ts +137 -0
- package/src/__tests__/generators.test.ts +270 -0
- package/src/__tests__/introspection.test.ts +321 -0
- package/src/__tests__/protocol.test.ts +40 -0
- package/src/__tests__/provisioning.test.ts +162 -0
- package/src/__tests__/schema.test.ts +241 -0
- package/src/__tests__/svelte-integration.test.ts +431 -0
- package/src/__tests__/terminal-node.test.ts +352 -0
- package/src/adapters/cli.ts +175 -0
- package/src/cli/commands/auth.ts +271 -0
- package/src/cli/commands/cloud.ts +281 -0
- package/src/cli/commands/generate.ts +225 -0
- package/src/cli/index.ts +190 -0
- package/src/cloud/README.md +383 -0
- package/src/cloud/auth.ts +245 -0
- package/src/cloud/billing.ts +336 -0
- package/src/cloud/client.ts +221 -0
- package/src/cloud/index.ts +121 -0
- package/src/cloud/marketplace.ts +303 -0
- package/src/cloud/provisioning.ts +254 -0
- package/src/cloud/relay/endpoints.ts +307 -0
- package/src/cloud/relay/health/function.json +17 -0
- package/src/cloud/relay/health/index.ts +10 -0
- package/src/cloud/relay/host.json +15 -0
- package/src/cloud/relay/local.settings.json +8 -0
- package/src/cloud/relay/stats/function.json +17 -0
- package/src/cloud/relay/stats/index.ts +10 -0
- package/src/cloud/relay/sync/function.json +17 -0
- package/src/cloud/relay/sync/index.ts +10 -0
- package/src/cloud/relay/usage/function.json +17 -0
- package/src/cloud/relay/usage/index.ts +10 -0
- package/src/cloud/sponsors.ts +213 -0
- package/src/cloud/types.ts +198 -0
- package/src/components/README.md +125 -0
- package/src/components/TerminalNode.svelte +457 -0
- package/src/components/index.ts +46 -0
- package/src/core/actors.ts +205 -0
- package/src/core/component/generator.ts +432 -0
- package/src/core/engine.ts +243 -0
- package/src/core/introspection.ts +329 -0
- package/src/core/logic/generator.ts +420 -0
- package/src/core/pluresdb/generator.ts +229 -0
- package/src/core/protocol.ts +132 -0
- package/src/core/rules.ts +167 -0
- package/src/core/schema/loader.ts +247 -0
- package/src/core/schema/normalize.ts +322 -0
- package/src/core/schema/types.ts +557 -0
- package/src/dsl/index.ts +218 -0
- package/src/dsl.ts +214 -0
- package/src/examples/advanced-todo/App.svelte +506 -0
- package/src/examples/advanced-todo/README.md +371 -0
- package/src/examples/advanced-todo/index.ts +309 -0
- package/src/examples/auth-basic/index.ts +163 -0
- package/src/examples/cart/index.ts +259 -0
- package/src/examples/hero-ecommerce/index.ts +657 -0
- package/src/examples/svelte-counter/index.ts +168 -0
- package/src/flows.ts +268 -0
- package/src/index.ts +154 -0
- package/src/integrations/pluresdb.ts +93 -0
- package/src/integrations/svelte.ts +617 -0
- package/src/registry.ts +223 -0
- package/src/runtime/terminal-adapter.ts +175 -0
- package/src/step.ts +151 -0
- package/src/types.ts +70 -0
- package/templates/basic-app/README.md +147 -0
- package/templates/fullstack-app/README.md +279 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Basic Praxis Application Template
|
|
2
|
+
|
|
3
|
+
This template provides a minimal Praxis application setup.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
basic-app/
|
|
9
|
+
├── src/
|
|
10
|
+
│ ├── schemas/
|
|
11
|
+
│ │ └── app.schema.ts # Application schema definition
|
|
12
|
+
│ ├── components/ # Generated and custom components
|
|
13
|
+
│ ├── logic/ # Logic engine setup
|
|
14
|
+
│ │ ├── facts.ts # Fact definitions
|
|
15
|
+
│ │ ├── events.ts # Event definitions
|
|
16
|
+
│ │ ├── rules.ts # Rule definitions
|
|
17
|
+
│ │ └── engine.ts # Engine configuration
|
|
18
|
+
│ ├── store/ # Data store setup
|
|
19
|
+
│ │ └── index.ts # PluresDB configuration
|
|
20
|
+
│ ├── App.svelte # Root component
|
|
21
|
+
│ └── main.ts # Application entry point
|
|
22
|
+
├── public/ # Static assets
|
|
23
|
+
├── package.json
|
|
24
|
+
├── tsconfig.json
|
|
25
|
+
├── vite.config.ts
|
|
26
|
+
└── README.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Features
|
|
30
|
+
|
|
31
|
+
- ✅ Schema-driven development
|
|
32
|
+
- ✅ Praxis logic engine
|
|
33
|
+
- ✅ Svelte UI
|
|
34
|
+
- ✅ PluresDB integration
|
|
35
|
+
- ✅ TypeScript support
|
|
36
|
+
- ✅ Vite build system
|
|
37
|
+
|
|
38
|
+
## Getting Started
|
|
39
|
+
|
|
40
|
+
### 1. Create a new app
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
praxis create app my-app --template basic
|
|
44
|
+
cd my-app
|
|
45
|
+
npm install
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. Define your schema
|
|
49
|
+
|
|
50
|
+
Edit `src/schemas/app.schema.ts`:
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
import type { PraxisSchema } from '@plures/praxis/schema';
|
|
54
|
+
|
|
55
|
+
export const appSchema: PraxisSchema = {
|
|
56
|
+
version: '1.0.0',
|
|
57
|
+
name: 'MyApp',
|
|
58
|
+
description: 'My Praxis application',
|
|
59
|
+
|
|
60
|
+
models: [
|
|
61
|
+
{
|
|
62
|
+
name: 'User',
|
|
63
|
+
fields: [
|
|
64
|
+
{ name: 'id', type: 'string' },
|
|
65
|
+
{ name: 'name', type: 'string' },
|
|
66
|
+
{ name: 'email', type: 'string' },
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
|
|
71
|
+
components: [
|
|
72
|
+
{
|
|
73
|
+
name: 'UserForm',
|
|
74
|
+
type: 'form',
|
|
75
|
+
model: 'User',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
|
|
79
|
+
logic: [
|
|
80
|
+
{
|
|
81
|
+
id: 'user-logic',
|
|
82
|
+
description: 'User management logic',
|
|
83
|
+
events: [
|
|
84
|
+
{ tag: 'USER_CREATE', payload: { name: 'string', email: 'string' } },
|
|
85
|
+
],
|
|
86
|
+
facts: [
|
|
87
|
+
{ tag: 'UserCreated', payload: { userId: 'string' } },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
};
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 3. Generate code
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
praxis generate --schema src/schemas/app.schema.ts
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
This generates:
|
|
101
|
+
- Svelte components in `src/components/`
|
|
102
|
+
- Logic definitions in `src/logic/`
|
|
103
|
+
- Type definitions throughout
|
|
104
|
+
|
|
105
|
+
### 4. Run development server
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npm run dev
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 5. Build for production
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm run build
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Customization
|
|
118
|
+
|
|
119
|
+
### Add custom components
|
|
120
|
+
|
|
121
|
+
Create Svelte components in `src/components/` alongside generated ones.
|
|
122
|
+
|
|
123
|
+
### Extend logic
|
|
124
|
+
|
|
125
|
+
Add custom rules and constraints in `src/logic/rules.ts`.
|
|
126
|
+
|
|
127
|
+
### Configure store
|
|
128
|
+
|
|
129
|
+
Customize PluresDB configuration in `src/store/index.ts`.
|
|
130
|
+
|
|
131
|
+
## Next Steps
|
|
132
|
+
|
|
133
|
+
- Add authentication module
|
|
134
|
+
- Enable Canvas integration for visual editing
|
|
135
|
+
- Set up State-Docs for documentation
|
|
136
|
+
- Add orchestration for distributed features
|
|
137
|
+
|
|
138
|
+
## Documentation
|
|
139
|
+
|
|
140
|
+
- [Praxis Framework Guide](../../docs/guides/getting-started.md)
|
|
141
|
+
- [Schema Reference](../../docs/api/schema.md)
|
|
142
|
+
- [Logic Engine](../../docs/api/logic.md)
|
|
143
|
+
- [Component Generation](../../docs/api/components.md)
|
|
144
|
+
|
|
145
|
+
## License
|
|
146
|
+
|
|
147
|
+
MIT
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
# Fullstack Praxis Application Template
|
|
2
|
+
|
|
3
|
+
This template provides a complete Praxis application with all framework features enabled.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
fullstack-app/
|
|
9
|
+
├── src/
|
|
10
|
+
│ ├── schemas/
|
|
11
|
+
│ │ ├── app.schema.ts # Main application schema
|
|
12
|
+
│ │ ├── auth.schema.ts # Authentication schema
|
|
13
|
+
│ │ └── data.schema.ts # Data models schema
|
|
14
|
+
│ ├── components/ # Generated and custom components
|
|
15
|
+
│ │ ├── auth/ # Authentication components
|
|
16
|
+
│ │ ├── layout/ # Layout components
|
|
17
|
+
│ │ └── widgets/ # Widget components
|
|
18
|
+
│ ├── logic/ # Logic engine
|
|
19
|
+
│ │ ├── auth/ # Auth logic module
|
|
20
|
+
│ │ ├── data/ # Data logic module
|
|
21
|
+
│ │ └── engine.ts # Main engine setup
|
|
22
|
+
│ ├── store/ # Data store
|
|
23
|
+
│ │ ├── pluresdb.ts # PluresDB setup
|
|
24
|
+
│ │ └── sync.ts # Sync configuration
|
|
25
|
+
│ ├── canvas/ # Canvas integration
|
|
26
|
+
│ │ └── config.ts # Canvas configuration
|
|
27
|
+
│ ├── orchestration/ # Orchestration setup
|
|
28
|
+
│ │ ├── dsc.config.ts # DSC configuration
|
|
29
|
+
│ │ └── nodes.ts # Node definitions
|
|
30
|
+
│ ├── docs/ # Generated documentation
|
|
31
|
+
│ ├── App.svelte # Root component
|
|
32
|
+
│ └── main.ts # Application entry
|
|
33
|
+
├── public/ # Static assets
|
|
34
|
+
├── tests/ # Test suite
|
|
35
|
+
├── package.json
|
|
36
|
+
├── tsconfig.json
|
|
37
|
+
├── vite.config.ts
|
|
38
|
+
├── vitest.config.ts
|
|
39
|
+
└── README.md
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Features
|
|
43
|
+
|
|
44
|
+
- ✅ Complete schema-driven development
|
|
45
|
+
- ✅ Full Praxis logic engine
|
|
46
|
+
- ✅ Authentication module
|
|
47
|
+
- ✅ PluresDB with sync
|
|
48
|
+
- ✅ Unum identity integration
|
|
49
|
+
- ✅ CodeCanvas visual editing
|
|
50
|
+
- ✅ State-Docs documentation
|
|
51
|
+
- ✅ DSC orchestration
|
|
52
|
+
- ✅ Comprehensive testing
|
|
53
|
+
- ✅ Production-ready build
|
|
54
|
+
|
|
55
|
+
## Getting Started
|
|
56
|
+
|
|
57
|
+
### 1. Create fullstack app
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
praxis create app my-fullstack-app --template fullstack
|
|
61
|
+
cd my-fullstack-app
|
|
62
|
+
npm install
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 2. Configure features
|
|
66
|
+
|
|
67
|
+
Edit feature flags in `src/config/features.ts`:
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
export const features = {
|
|
71
|
+
auth: true,
|
|
72
|
+
canvas: true,
|
|
73
|
+
orchestration: false,
|
|
74
|
+
statedocs: true,
|
|
75
|
+
analytics: false,
|
|
76
|
+
};
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Define schemas
|
|
80
|
+
|
|
81
|
+
The template includes example schemas:
|
|
82
|
+
- `auth.schema.ts` - User authentication and sessions
|
|
83
|
+
- `data.schema.ts` - Application data models
|
|
84
|
+
- `app.schema.ts` - Main application configuration
|
|
85
|
+
|
|
86
|
+
### 4. Generate everything
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
praxis generate --target all
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Generates:
|
|
93
|
+
- Components from all schemas
|
|
94
|
+
- Logic modules with facts, events, rules
|
|
95
|
+
- PluresDB models
|
|
96
|
+
- State-Docs documentation
|
|
97
|
+
- Type definitions
|
|
98
|
+
- Test scaffolds
|
|
99
|
+
|
|
100
|
+
### 5. Run with Canvas
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
praxis canvas src/schemas/app.schema.ts
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Opens visual editor at http://localhost:3000
|
|
107
|
+
|
|
108
|
+
### 6. Development
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npm run dev
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 7. Run tests
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm test
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 8. Build for production
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm run build
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Modules Included
|
|
127
|
+
|
|
128
|
+
### Authentication Module
|
|
129
|
+
|
|
130
|
+
Pre-configured authentication with:
|
|
131
|
+
- User registration and login
|
|
132
|
+
- Session management
|
|
133
|
+
- JWT tokens (optional)
|
|
134
|
+
- Role-based access control
|
|
135
|
+
- Password reset flows
|
|
136
|
+
|
|
137
|
+
### Data Module
|
|
138
|
+
|
|
139
|
+
Example data models:
|
|
140
|
+
- Users
|
|
141
|
+
- Posts
|
|
142
|
+
- Comments
|
|
143
|
+
- Relationships and indexes
|
|
144
|
+
|
|
145
|
+
### Canvas Integration
|
|
146
|
+
|
|
147
|
+
Visual editing for:
|
|
148
|
+
- Schema definitions
|
|
149
|
+
- Logic flows
|
|
150
|
+
- Component layouts
|
|
151
|
+
- Data relationships
|
|
152
|
+
|
|
153
|
+
### Orchestration
|
|
154
|
+
|
|
155
|
+
Distributed coordination:
|
|
156
|
+
- Node configuration
|
|
157
|
+
- State synchronization
|
|
158
|
+
- Health monitoring
|
|
159
|
+
- Auto-scaling support
|
|
160
|
+
|
|
161
|
+
## Advanced Configuration
|
|
162
|
+
|
|
163
|
+
### PluresDB Sync
|
|
164
|
+
|
|
165
|
+
Configure sync in `src/store/sync.ts`:
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
export const syncConfig = {
|
|
169
|
+
enabled: true,
|
|
170
|
+
interval: 5000,
|
|
171
|
+
conflictResolution: 'last-write-wins',
|
|
172
|
+
endpoints: ['ws://localhost:8080'],
|
|
173
|
+
};
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Canvas Server
|
|
177
|
+
|
|
178
|
+
Configure Canvas in `src/canvas/config.ts`:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
export const canvasConfig = {
|
|
182
|
+
port: 3000,
|
|
183
|
+
mode: 'edit',
|
|
184
|
+
collaboration: true,
|
|
185
|
+
autosave: true,
|
|
186
|
+
};
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Orchestration
|
|
190
|
+
|
|
191
|
+
Configure DSC in `src/orchestration/dsc.config.ts`:
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
export const dscConfig = {
|
|
195
|
+
nodes: 3,
|
|
196
|
+
healthCheck: {
|
|
197
|
+
interval: 30000,
|
|
198
|
+
timeout: 5000,
|
|
199
|
+
},
|
|
200
|
+
sync: {
|
|
201
|
+
interval: 10000,
|
|
202
|
+
strategy: 'merge',
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Production Deployment
|
|
208
|
+
|
|
209
|
+
### Web Deployment
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
npm run build
|
|
213
|
+
# Deploy dist/ to your web server
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Desktop Application
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npm run build:desktop
|
|
220
|
+
# Creates Tauri desktop app in dist-tauri/
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Mobile Application (Future)
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npm run build:mobile
|
|
227
|
+
# Creates mobile app package
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Documentation
|
|
231
|
+
|
|
232
|
+
All documentation is automatically generated in `src/docs/` using State-Docs.
|
|
233
|
+
|
|
234
|
+
To view:
|
|
235
|
+
```bash
|
|
236
|
+
npm run docs
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Testing
|
|
240
|
+
|
|
241
|
+
The template includes:
|
|
242
|
+
- Unit tests for logic modules
|
|
243
|
+
- Component tests
|
|
244
|
+
- Integration tests
|
|
245
|
+
- E2E test scaffolds
|
|
246
|
+
|
|
247
|
+
Run all tests:
|
|
248
|
+
```bash
|
|
249
|
+
npm test
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Monitoring
|
|
253
|
+
|
|
254
|
+
Built-in monitoring with:
|
|
255
|
+
- Performance metrics
|
|
256
|
+
- Error tracking
|
|
257
|
+
- User analytics (opt-in)
|
|
258
|
+
- Health endpoints
|
|
259
|
+
|
|
260
|
+
## Next Steps
|
|
261
|
+
|
|
262
|
+
1. Customize schemas for your domain
|
|
263
|
+
2. Extend authentication with OAuth providers
|
|
264
|
+
3. Add custom business logic rules
|
|
265
|
+
4. Design UI in Canvas
|
|
266
|
+
5. Configure distributed deployment
|
|
267
|
+
6. Set up CI/CD pipeline
|
|
268
|
+
|
|
269
|
+
## Documentation
|
|
270
|
+
|
|
271
|
+
- [Fullstack Guide](../../docs/guides/fullstack.md)
|
|
272
|
+
- [Authentication](../../docs/guides/authentication.md)
|
|
273
|
+
- [PluresDB Integration](../../docs/guides/pluresdb.md)
|
|
274
|
+
- [Canvas Usage](../../docs/guides/canvas.md)
|
|
275
|
+
- [Orchestration](../../docs/guides/orchestration.md)
|
|
276
|
+
|
|
277
|
+
## License
|
|
278
|
+
|
|
279
|
+
MIT
|