@voltro/cli 0.23.0 → 0.25.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/CHANGELOG.md +537 -0
- package/THIRD-PARTY-NOTICES.md +2 -2
- package/bin/voltro.mjs +39 -4
- package/dist/{apiBuild-JQtIhZPy.js → apiBuild-BqhCSytw.js} +46 -24
- package/dist/apiBuild-N1R4V792.js +2 -0
- package/dist/bin.js +3 -3
- package/dist/{commands-Bsu9Buln.js → commands-7EmYJ9Xg.js} +2796 -2478
- package/dist/dbCommand-CIrdFLp9.js +2 -0
- package/dist/{dbCommand-GI7-BVZt.js → dbCommand-FUU12FvD.js} +285 -246
- package/dist/{dev-DRxF_qOB.js → dev-BvHT7WZa.js} +1 -1
- package/dist/{dev-jM07kq_D.js → dev-MacSQ1Ll.js} +2042 -1631
- package/dist/fileConventions-3bffWssN.js +30 -0
- package/dist/frameworkTableAssembly-BsnCKzQ6.js +2 -0
- package/dist/{frameworkTableAssembly-sg41s14F.js → frameworkTableAssembly-Cw5zJz6n.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/inspect-C9gjHwBk.js +2 -0
- package/dist/{inspect-_ldwsAwH.js → inspect-DuLUrZp9.js} +14 -1
- package/dist/{inspectMetrics-dcC7gnxu.js → inspectMetrics-EQwH7BI4.js} +15 -15
- package/dist/manifestBuild-BVwS1Z_6.js +2 -0
- package/dist/{manifestBuild-Bs1Uw22_.js → manifestBuild-Dneq4_Jx.js} +1 -1
- package/dist/serveCommand-5ZFiNO1R.js +1241 -0
- package/dist/serveEntry.js +2 -2
- package/dist/{start-C_4VUDT8.js → start-C-ZWSDpg.js} +2 -2
- package/dist/startEntry.js +2 -2
- package/package.json +17 -17
- package/templates/AGENTS.core.md +12 -5
- package/templates/AGENTS.md +14 -7
- package/templates/agent-docs/_index.md +2 -2
- package/templates/agent-docs/_manifest.json +3 -3
- package/templates/agent-docs/authentication.md +21 -0
- package/templates/agent-docs/cli.md +32 -0
- package/templates/agent-docs/data.md +491 -167
- package/templates/agent-docs/database/migrations.md +132 -63
- package/templates/agent-docs/database/schema.md +80 -0
- package/templates/agent-docs/database/seedsdialects.md +12 -0
- package/templates/agent-docs/deployment.md +75 -1
- package/templates/agent-docs/plugins.md +1 -1
- package/templates/agent-docs/reference.md +2 -2
- package/templates/agent-docs/security.md +18 -0
- package/templates/agent-docs/templates/apibackends.md +5 -5
- package/templates/agent-docs/templates/overview.md +1 -1
- package/templates/agent-docs/whats-new.md +263 -169
- package/templates/agent-docs/workflows.md +74 -20
- package/templates/apps/api-ai/package.json +8 -7
- package/templates/apps/api-auth/package.json +9 -8
- package/templates/apps/api-backend/package.json +8 -7
- package/templates/apps/api-backend-deactivation/package.json +8 -7
- package/templates/apps/api-backend-mail/package.json +9 -8
- package/templates/apps/api-backend-mariadb/package.json +10 -9
- package/templates/apps/api-backend-storage/package.json +9 -8
- package/templates/apps/api-data-advanced/package.json +9 -8
- package/templates/apps/api-durable/README.md +2 -1
- package/templates/apps/api-durable/events/orders.event.ts +18 -0
- package/templates/apps/api-durable/mutations/orders.place.mutation.server.ts +17 -15
- package/templates/apps/api-durable/package.json +9 -8
- package/templates/apps/api-durable/triggers/order.placed.trigger.tsx +6 -4
- package/templates/apps/api-feature-flags/package.json +10 -9
- package/templates/apps/api-governance/package.json +9 -8
- package/templates/apps/api-kv/package.json +9 -8
- package/templates/apps/api-moderation/package.json +9 -8
- package/templates/apps/api-observability/package.json +9 -8
- package/templates/apps/api-ratelimit/package.json +9 -8
- package/templates/apps/api-rbac/package.json +9 -8
- package/templates/apps/api-rest/package.json +8 -7
- package/templates/apps/api-saas/package.json +12 -11
- package/templates/apps/api-search/package.json +9 -8
- package/templates/apps/api-versioning/package.json +9 -8
- package/templates/apps/api-webhooks/README.md +2 -2
- package/templates/apps/api-webhooks/events/orders.event.ts +35 -0
- package/templates/apps/api-webhooks/package.json +10 -9
- package/templates/apps/api-webhooks/template.json +1 -1
- package/templates/apps/changelog/package.json +7 -6
- package/templates/apps/edge-functions/package.json +3 -2
- package/templates/apps/frontend-admin/package.json +9 -8
- package/templates/apps/frontend-app/package.json +9 -8
- package/templates/apps/frontend-blank/package.json +8 -7
- package/templates/apps/frontend-contact/package.json +8 -7
- package/templates/apps/frontend-contact/src/globals.d.ts +6 -0
- package/templates/apps/frontend-dashboard/package.json +8 -7
- package/templates/apps/frontend-docs/package.json +8 -7
- package/templates/apps/frontend-docs/src/globals.d.ts +6 -0
- package/templates/apps/frontend-i18n/package.json +7 -6
- package/templates/apps/frontend-landing/package.json +8 -7
- package/templates/apps/frontend-landing/src/globals.d.ts +6 -0
- package/templates/apps/frontend-spa/package.json +8 -7
- package/templates/apps/frontend-spa/src/globals.d.ts +6 -0
- package/templates/apps/frontend-ssr/package.json +8 -7
- package/templates/apps/frontend-ssr/src/globals.d.ts +6 -0
- package/templates/apps/frontend-ssr-api/package.json +9 -8
- package/templates/apps/frontend-static-blog/package.json +7 -6
- package/templates/apps/frontend-static-blog/src/globals.d.ts +6 -0
- package/dist/apiBuild-CD-4JLLA.js +0 -2
- package/dist/dbCommand-CSguuUQn.js +0 -2
- package/dist/fileConventions-CBNPZVOV.js +0 -29
- package/dist/frameworkTableAssembly-DRJrAVr1.js +0 -2
- package/dist/inspect-BA67TF6v.js +0 -2
- package/dist/manifestBuild-i-fRHg_H.js +0 -2
- package/dist/serveCommand-Cl8sicD5.js +0 -1162
- package/templates/apps/api-webhooks/events/order.completed.webhook.tsx +0 -22
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-audit": "0.
|
|
19
|
-
"@voltro/plugin-governance": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-audit": "0.25.0",
|
|
20
|
+
"@voltro/plugin-governance": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -5,23 +5,24 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"test": "voltro test",
|
|
9
10
|
"typecheck": "tsc --noEmit"
|
|
10
11
|
},
|
|
11
12
|
"dependencies": {
|
|
12
13
|
"@effect/platform": "^0.97.0",
|
|
13
14
|
"@effect/rpc": "^0.76.0",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/database": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/kv": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.25.0",
|
|
16
|
+
"@voltro/database": "0.25.0",
|
|
17
|
+
"@voltro/env": "0.25.0",
|
|
18
|
+
"@voltro/kv": "0.25.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
20
|
+
"@voltro/protocol": "0.25.0",
|
|
21
|
+
"@voltro/runtime": "0.25.0",
|
|
21
22
|
"effect": "^3.22.0"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.25.0",
|
|
25
26
|
"typescript": "^6.0.3",
|
|
26
27
|
"vitest": "^4.1.10"
|
|
27
28
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-moderation": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-moderation": "0.25.0",
|
|
20
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/plugin-multitenancy": "0.
|
|
18
|
-
"@voltro/plugin-prometheus": "0.
|
|
19
|
-
"@voltro/plugin-sentry": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
19
|
+
"@voltro/plugin-prometheus": "0.25.0",
|
|
20
|
+
"@voltro/plugin-sentry": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-ratelimit": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
20
|
+
"@voltro/plugin-ratelimit": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-rbac": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
20
|
+
"@voltro/plugin-rbac": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,16 +13,16 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/plugin-openapi": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
20
|
-
"@voltro/sql-postgres": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/plugin-openapi": "0.25.0",
|
|
19
|
+
"@voltro/protocol": "0.25.0",
|
|
20
|
+
"@voltro/runtime": "0.25.0",
|
|
21
|
+
"@voltro/sql-postgres": "0.25.0",
|
|
21
22
|
"effect": "^3.22.0"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.25.0",
|
|
25
26
|
"typescript": "^6.0.3",
|
|
26
27
|
"vitest": "^4.1.10"
|
|
27
28
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,20 +13,20 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/plugin-analytics-postgres": "0.
|
|
18
|
-
"@voltro/plugin-billing": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/plugin-notifications": "0.
|
|
21
|
-
"@voltro/plugin-presence": "0.
|
|
22
|
-
"@voltro/protocol": "0.
|
|
23
|
-
"@voltro/runtime": "0.
|
|
24
|
-
"@voltro/sql-postgres": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/plugin-analytics-postgres": "0.25.0",
|
|
19
|
+
"@voltro/plugin-billing": "0.25.0",
|
|
20
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
21
|
+
"@voltro/plugin-notifications": "0.25.0",
|
|
22
|
+
"@voltro/plugin-presence": "0.25.0",
|
|
23
|
+
"@voltro/protocol": "0.25.0",
|
|
24
|
+
"@voltro/runtime": "0.25.0",
|
|
25
|
+
"@voltro/sql-postgres": "0.25.0",
|
|
25
26
|
"effect": "^3.22.0"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
28
|
-
"@voltro/testing": "0.
|
|
29
|
+
"@voltro/testing": "0.25.0",
|
|
29
30
|
"typescript": "^6.0.3",
|
|
30
31
|
"vitest": "^4.1.10"
|
|
31
32
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-search": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
20
|
+
"@voltro/plugin-search": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,17 +13,17 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-versioning": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
20
|
+
"@voltro/plugin-versioning": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
22
23
|
"effect": "^3.22.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.25.0",
|
|
26
27
|
"typescript": "^6.0.3",
|
|
27
28
|
"vitest": "^4.1.10"
|
|
28
29
|
}
|
|
@@ -15,7 +15,7 @@ apps/acme/api/
|
|
|
15
15
|
├── .env # VOLTRO_WEBHOOK_SECRET_ORDERS (dev signing secret)
|
|
16
16
|
├── database/schema.ts # orders + webhookTables() bookkeeping
|
|
17
17
|
├── webhooks/orders.webhook.tsx # INCOMING — signature-verified receiver
|
|
18
|
-
├── events/
|
|
18
|
+
├── events/orders.event.ts # OUTGOING — defineEvent + webhook:
|
|
19
19
|
├── mutations/orders.fulfill.mutation.ts # create order + emit (+ .server.ts)
|
|
20
20
|
└── queries/orders.list.query.ts # reactive list (+ .server.ts)
|
|
21
21
|
```
|
|
@@ -68,7 +68,7 @@ curl -s -o /dev/null -w '%{http_code}\n' -X POST http://localhost:4000/webhooks/
|
|
|
68
68
|
|
|
69
69
|
```ts
|
|
70
70
|
// events/order.completed.webhook.tsx
|
|
71
|
-
export
|
|
71
|
+
export const orderCompleted = defineEvent({ name: 'order.completed', key: Schema.Struct({}), payload: Schema.Struct({ … }), webhook: { version: 1 } })
|
|
72
72
|
|
|
73
73
|
// mutations/orders.fulfill.mutation.server.ts — after the row commits:
|
|
74
74
|
const { eventId, deliveries } = await useWebhooks(ctx).emit('order.completed', { orderId, tenantId, … })
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// OUTGOING event — an event THIS app emits, declared ONCE and reaching every
|
|
2
|
+
// audience that wants it.
|
|
3
|
+
//
|
|
4
|
+
// External systems subscribe at runtime via
|
|
5
|
+
// `ctx.webhooks.subscribe({ event: 'order.completed', url })`; each subscriber
|
|
6
|
+
// is a row in `_voltro_webhook_targets`. A publish fans out to every matching
|
|
7
|
+
// target through a DURABLE delivery workflow — HMAC-signing the outbound
|
|
8
|
+
// request, retrying with backoff, honouring Retry-After — and each attempt is
|
|
9
|
+
// recorded in `_voltro_webhook_deliveries`.
|
|
10
|
+
//
|
|
11
|
+
// The `webhook:` block is what opts it into that. Without it this is an ordinary
|
|
12
|
+
// declared event: connected clients and workflow triggers, no HTTP delivery.
|
|
13
|
+
//
|
|
14
|
+
// `key: Schema.Struct({})` is correct rather than a placeholder — a webhook
|
|
15
|
+
// event is delivered to subscribed TARGETS, so there is nothing for a routing
|
|
16
|
+
// key to address. Add one only if you also want browser clients to subscribe
|
|
17
|
+
// per-something with `useEvent`.
|
|
18
|
+
|
|
19
|
+
import { defineEvent } from '@voltro/protocol'
|
|
20
|
+
import { Schema } from 'effect'
|
|
21
|
+
|
|
22
|
+
export const orderCompleted = defineEvent({
|
|
23
|
+
name: 'order.completed',
|
|
24
|
+
key: Schema.Struct({}),
|
|
25
|
+
payload: Schema.Struct({
|
|
26
|
+
orderId: Schema.String,
|
|
27
|
+
tenantId: Schema.String,
|
|
28
|
+
sku: Schema.String,
|
|
29
|
+
totalCents: Schema.Number,
|
|
30
|
+
}),
|
|
31
|
+
webhook: {
|
|
32
|
+
description: 'An order moved to "fulfilled" — payment captured, items shipped.',
|
|
33
|
+
version: 1,
|
|
34
|
+
},
|
|
35
|
+
})
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"migrate": "voltro migrate",
|
|
9
10
|
"test": "voltro test",
|
|
10
11
|
"typecheck": "tsc --noEmit"
|
|
@@ -12,18 +13,18 @@
|
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
15
|
"@effect/rpc": "^0.76.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-webhooks": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
22
|
-
"@voltro/sql-postgres": "0.
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/database": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.25.0",
|
|
20
|
+
"@voltro/plugin-webhooks": "0.25.0",
|
|
21
|
+
"@voltro/protocol": "0.25.0",
|
|
22
|
+
"@voltro/runtime": "0.25.0",
|
|
23
|
+
"@voltro/sql-postgres": "0.25.0",
|
|
23
24
|
"effect": "^3.22.0"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
|
-
"@voltro/testing": "0.
|
|
27
|
+
"@voltro/testing": "0.25.0",
|
|
27
28
|
"typescript": "^6.0.3",
|
|
28
29
|
"vitest": "^4.1.10"
|
|
29
30
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "api-webhooks",
|
|
3
3
|
"kind": "api",
|
|
4
|
-
"summary": "First-class webhooks both ways: a signature-verified INCOMING receiver (*.webhook.tsx, genericProvider HMAC) that rejects unsigned/forged requests before your handler runs, plus an OUTGOING
|
|
4
|
+
"summary": "First-class webhooks both ways: a signature-verified INCOMING receiver (*.webhook.tsx, genericProvider HMAC) that rejects unsigned/forged requests before your handler runs, plus an OUTGOING event declared with defineEvent({ …, webhook }) that a mutation publishes to subscribed targets via a durable delivery workflow.",
|
|
5
5
|
"tags": ["api", "webhooks", "integrations", "hmac", "signature", "stripe", "events"]
|
|
6
6
|
}
|
|
@@ -5,18 +5,19 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"build": "tsx scripts/generate-rss.mjs && voltro build .",
|
|
9
10
|
"start": "voltro start .",
|
|
10
11
|
"typecheck": "tsc --noEmit",
|
|
11
12
|
"test": "voltro test"
|
|
12
13
|
},
|
|
13
14
|
"dependencies": {
|
|
14
|
-
"@voltro/changelog": "0.
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/client": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/i18n": "0.
|
|
19
|
-
"@voltro/web": "0.
|
|
15
|
+
"@voltro/changelog": "0.25.0",
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/client": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/i18n": "0.25.0",
|
|
20
|
+
"@voltro/web": "0.25.0",
|
|
20
21
|
"react": "^19.0.0",
|
|
21
22
|
"react-dom": "^19.0.0"
|
|
22
23
|
},
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"lint": "voltro doctor .",
|
|
7
8
|
"list": "voltro serverless list .",
|
|
8
9
|
"build": "voltro serverless build .",
|
|
9
10
|
"serve": "voltro serverless serve .",
|
|
@@ -11,8 +12,8 @@
|
|
|
11
12
|
},
|
|
12
13
|
"dependencies": {
|
|
13
14
|
"@effect/platform": "^0.97.0",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/serverless": "0.
|
|
15
|
+
"@voltro/cli": "0.25.0",
|
|
16
|
+
"@voltro/serverless": "0.25.0",
|
|
16
17
|
"effect": "^3.22.0"
|
|
17
18
|
},
|
|
18
19
|
"devDependencies": {
|
|
@@ -5,24 +5,25 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"build": "voltro build .",
|
|
9
10
|
"start": "voltro start .",
|
|
10
11
|
"typecheck": "tsc --noEmit",
|
|
11
12
|
"test": "voltro test"
|
|
12
13
|
},
|
|
13
14
|
"dependencies": {
|
|
14
|
-
"@{{projectName}}/api": "0.
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/client": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/i18n": "0.
|
|
19
|
-
"@voltro/ui-shadcn": "0.
|
|
20
|
-
"@voltro/web": "0.
|
|
15
|
+
"@{{projectName}}/api": "0.25.0",
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/client": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/i18n": "0.25.0",
|
|
20
|
+
"@voltro/ui-shadcn": "0.25.0",
|
|
21
|
+
"@voltro/web": "0.25.0",
|
|
21
22
|
"react": "^19.0.0",
|
|
22
23
|
"react-dom": "^19.0.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/devtools": "0.
|
|
26
|
+
"@voltro/devtools": "0.25.0",
|
|
26
27
|
"@types/react": "^19.0.0",
|
|
27
28
|
"@types/react-dom": "^19.0.0",
|
|
28
29
|
"typescript": "^6.0.3",
|
|
@@ -5,24 +5,25 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"build": "voltro build .",
|
|
9
10
|
"start": "voltro start .",
|
|
10
11
|
"test": "voltro test",
|
|
11
12
|
"typecheck": "tsc --noEmit"
|
|
12
13
|
},
|
|
13
14
|
"dependencies": {
|
|
14
|
-
"@{{projectName}}/api": "0.
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/client": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/i18n": "0.
|
|
19
|
-
"@voltro/ui-shadcn": "0.
|
|
20
|
-
"@voltro/web": "0.
|
|
15
|
+
"@{{projectName}}/api": "0.25.0",
|
|
16
|
+
"@voltro/cli": "0.25.0",
|
|
17
|
+
"@voltro/client": "0.25.0",
|
|
18
|
+
"@voltro/env": "0.25.0",
|
|
19
|
+
"@voltro/i18n": "0.25.0",
|
|
20
|
+
"@voltro/ui-shadcn": "0.25.0",
|
|
21
|
+
"@voltro/web": "0.25.0",
|
|
21
22
|
"react": "^19.0.0",
|
|
22
23
|
"react-dom": "^19.0.0"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/devtools": "0.
|
|
26
|
+
"@voltro/devtools": "0.25.0",
|
|
26
27
|
"@types/react": "^19.0.0",
|
|
27
28
|
"@types/react-dom": "^19.0.0",
|
|
28
29
|
"typescript": "^6.0.3",
|
|
@@ -5,23 +5,24 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"build": "voltro build .",
|
|
9
10
|
"start": "voltro start .",
|
|
10
11
|
"test": "voltro test",
|
|
11
12
|
"typecheck": "tsc --noEmit"
|
|
12
13
|
},
|
|
13
14
|
"dependencies": {
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/client": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/i18n": "0.
|
|
18
|
-
"@voltro/ui-shadcn": "0.
|
|
19
|
-
"@voltro/web": "0.
|
|
15
|
+
"@voltro/cli": "0.25.0",
|
|
16
|
+
"@voltro/client": "0.25.0",
|
|
17
|
+
"@voltro/env": "0.25.0",
|
|
18
|
+
"@voltro/i18n": "0.25.0",
|
|
19
|
+
"@voltro/ui-shadcn": "0.25.0",
|
|
20
|
+
"@voltro/web": "0.25.0",
|
|
20
21
|
"react": "^19.0.0",
|
|
21
22
|
"react-dom": "^19.0.0"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
25
|
+
"@voltro/devtools": "0.25.0",
|
|
25
26
|
"@types/react": "^19.0.0",
|
|
26
27
|
"@types/react-dom": "^19.0.0",
|
|
27
28
|
"typescript": "^6.0.3",
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "voltro dev .",
|
|
8
|
+
"lint": "voltro doctor .",
|
|
8
9
|
"build": "voltro build .",
|
|
9
10
|
"start": "voltro start .",
|
|
10
11
|
"fn:dev": "voltro serverless dev functions/sendMessage.serverless.ts",
|
|
@@ -14,18 +15,18 @@
|
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
17
|
"@effect/platform": "^0.97.0",
|
|
17
|
-
"@voltro/cli": "0.
|
|
18
|
-
"@voltro/client": "0.
|
|
19
|
-
"@voltro/env": "0.
|
|
20
|
-
"@voltro/i18n": "0.
|
|
21
|
-
"@voltro/serverless": "0.
|
|
22
|
-
"@voltro/web": "0.
|
|
18
|
+
"@voltro/cli": "0.25.0",
|
|
19
|
+
"@voltro/client": "0.25.0",
|
|
20
|
+
"@voltro/env": "0.25.0",
|
|
21
|
+
"@voltro/i18n": "0.25.0",
|
|
22
|
+
"@voltro/serverless": "0.25.0",
|
|
23
|
+
"@voltro/web": "0.25.0",
|
|
23
24
|
"effect": "^3.22.0",
|
|
24
25
|
"react": "^19.0.0",
|
|
25
26
|
"react-dom": "^19.0.0"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
28
|
-
"@voltro/devtools": "0.
|
|
29
|
+
"@voltro/devtools": "0.25.0",
|
|
29
30
|
"@types/react": "^19.0.0",
|
|
30
31
|
"@types/react-dom": "^19.0.0",
|
|
31
32
|
"typescript": "^6.0.3",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Ambient declarations.
|
|
2
|
+
//
|
|
3
|
+
// `declare module '*.css'`: TypeScript with `moduleResolution: Bundler`
|
|
4
|
+
// rejects a bare `import './globals.css'` unless the asset module is
|
|
5
|
+
// declared. Vite resolves it at build time; the declaration is type-only.
|
|
6
|
+
declare module '*.css'
|