@voltro/cli 0.16.0 → 0.18.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.
Files changed (139) hide show
  1. package/CHANGELOG.md +297 -0
  2. package/bin/voltro.mjs +6 -1
  3. package/dist/{apiBuild-BJtiqoOu.js → apiBuild-CPDTJHkH.js} +2 -2
  4. package/dist/apiBuild-D1UBJ4TM.js +2 -0
  5. package/dist/bin.js +3 -3
  6. package/dist/{commands-8A5RU3MW.js → commands-laJDMj2m.js} +2679 -2444
  7. package/dist/dbCommand-C3R5LrBZ.js +2 -0
  8. package/dist/{dbCommand-OPMtO0sX.js → dbCommand-DJSxnjPt.js} +2 -2
  9. package/dist/{dev-DGjEvvkV.js → dev-BOFxC21E.js} +1076 -1013
  10. package/dist/{dev-HdG7JdSk.js → dev-DOK0w6ZW.js} +1 -1
  11. package/dist/{fileConventions-Cu0tM-Bl.js → fileConventions-CBNPZVOV.js} +1 -1
  12. package/dist/frameworkTableAssembly-DRJrAVr1.js +2 -0
  13. package/dist/{frameworkTableAssembly-BA2bAmYN.js → frameworkTableAssembly-sg41s14F.js} +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/{inspectMetrics-CYDSO3za.js → inspectMetrics-D1DmLeJs.js} +491 -478
  16. package/dist/{serveCommand-C3lq3mFd.js → serveCommand-CxcxHc9Y.js} +322 -322
  17. package/dist/serveEntry.js +2 -2
  18. package/dist/{start-BtgatJN3.js → start-Clvz4IJb.js} +379 -379
  19. package/dist/startEntry.js +2 -2
  20. package/package.json +17 -17
  21. package/templates/AGENTS.core.md +62 -9
  22. package/templates/AGENTS.md +63 -10
  23. package/templates/agent-docs/_index.md +1 -1
  24. package/templates/agent-docs/authentication.md +48 -0
  25. package/templates/agent-docs/cli.md +11 -7
  26. package/templates/agent-docs/database/migrations.md +3 -3
  27. package/templates/agent-docs/database/querying.md +6 -2
  28. package/templates/agent-docs/internationalization.md +3 -3
  29. package/templates/agent-docs/introduction.md +17 -3
  30. package/templates/agent-docs/reference.md +4 -4
  31. package/templates/agent-docs/routing.md +42 -40
  32. package/templates/agent-docs/schema-driven-ui.md +6 -3
  33. package/templates/agent-docs/templates/appshells.md +24 -24
  34. package/templates/agent-docs/whats-new.md +170 -65
  35. package/templates/apps/api-ai/package.json +7 -7
  36. package/templates/apps/api-auth/package.json +8 -8
  37. package/templates/apps/api-backend/package.json +7 -7
  38. package/templates/apps/api-backend-deactivation/package.json +7 -7
  39. package/templates/apps/api-backend-mail/package.json +8 -8
  40. package/templates/apps/api-backend-mariadb/package.json +9 -9
  41. package/templates/apps/api-backend-storage/package.json +8 -8
  42. package/templates/apps/api-data-advanced/package.json +8 -8
  43. package/templates/apps/api-durable/package.json +8 -8
  44. package/templates/apps/api-feature-flags/package.json +9 -9
  45. package/templates/apps/api-governance/package.json +8 -8
  46. package/templates/apps/api-kv/package.json +8 -8
  47. package/templates/apps/api-moderation/package.json +8 -8
  48. package/templates/apps/api-observability/package.json +8 -8
  49. package/templates/apps/api-ratelimit/package.json +8 -8
  50. package/templates/apps/api-rbac/package.json +8 -8
  51. package/templates/apps/api-rest/package.json +7 -7
  52. package/templates/apps/api-saas/package.json +11 -11
  53. package/templates/apps/api-search/package.json +8 -8
  54. package/templates/apps/api-versioning/package.json +8 -8
  55. package/templates/apps/api-webhooks/package.json +9 -9
  56. package/templates/apps/changelog/package.json +6 -6
  57. package/templates/apps/changelog/src/pages/[locale]/{[slug].page.tsx → [slug]/page.tsx} +4 -4
  58. package/templates/apps/changelog/src/pages/[locale]/mirrors.test.tsx +2 -2
  59. package/templates/apps/changelog/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
  60. package/templates/apps/changelog/src/pages/{[slug].page.test.tsx → [slug]/page.test.tsx} +1 -1
  61. package/templates/apps/changelog/src/pages/{[slug].page.tsx → [slug]/page.tsx} +2 -2
  62. package/templates/apps/changelog/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  63. package/templates/apps/edge-functions/package.json +2 -2
  64. package/templates/apps/frontend-admin/package.json +8 -8
  65. package/templates/apps/frontend-admin/src/pages/(marketing)/{login.page.test.tsx → login/page.test.tsx} +2 -2
  66. package/templates/apps/frontend-admin/src/pages/(marketing)/{login.page.tsx → login/page.tsx} +2 -2
  67. package/templates/apps/frontend-admin/src/pages/(marketing)/{index.page.test.tsx → page.test.tsx} +1 -1
  68. package/templates/apps/frontend-admin/src/pages/admin/{[entity].page.tsx → [entity]/page.tsx} +1 -1
  69. package/templates/apps/frontend-admin/src/pages/admin/entity.test.tsx +1 -1
  70. package/templates/apps/frontend-admin/src/pages/admin/{index.page.test.tsx → page.test.tsx} +1 -1
  71. package/templates/apps/frontend-app/package.json +8 -8
  72. package/templates/apps/frontend-app/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  73. package/templates/apps/frontend-app/src/pages/{schema-ui.page.test.tsx → schema-ui/page.test.tsx} +2 -2
  74. package/templates/apps/frontend-app/src/pages/{schema-ui.page.tsx → schema-ui/page.tsx} +1 -1
  75. package/templates/apps/frontend-blank/package.json +7 -7
  76. package/templates/apps/frontend-blank/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  77. package/templates/apps/frontend-contact/package.json +7 -7
  78. package/templates/apps/frontend-contact/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
  79. package/templates/apps/frontend-contact/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  80. package/templates/apps/frontend-dashboard/package.json +7 -7
  81. package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.page.test.tsx → login/page.test.tsx} +2 -2
  82. package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.page.tsx → login/page.tsx} +2 -2
  83. package/templates/apps/frontend-dashboard/src/pages/(marketing)/{index.page.test.tsx → page.test.tsx} +1 -1
  84. package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.page.test.tsx → page.test.tsx} +1 -1
  85. package/templates/apps/frontend-dashboard/src/pages/dashboard/{settings.page.test.tsx → settings/page.test.tsx} +2 -2
  86. package/templates/apps/frontend-dashboard/src/pages/dashboard/{settings.page.tsx → settings/page.tsx} +2 -2
  87. package/templates/apps/frontend-docs/package.json +7 -7
  88. package/templates/apps/frontend-docs/src/pages/[locale]/docs/{[...slug].page.tsx → [...slug]/page.tsx} +4 -4
  89. package/templates/apps/frontend-docs/src/pages/[locale]/mirrors.test.tsx +2 -2
  90. package/templates/apps/frontend-docs/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
  91. package/templates/apps/frontend-docs/src/pages/docs/{[...slug].page.test.tsx → [...slug]/page.test.tsx} +3 -3
  92. package/templates/apps/frontend-docs/src/pages/docs/{[...slug].page.tsx → [...slug]/page.tsx} +1 -1
  93. package/templates/apps/frontend-docs/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  94. package/templates/apps/frontend-i18n/package.json +6 -6
  95. package/templates/apps/frontend-i18n/src/pages/[locale]/{about.page.tsx → about/page.tsx} +3 -3
  96. package/templates/apps/frontend-i18n/src/pages/[locale]/mirrors.test.tsx +2 -2
  97. package/templates/apps/frontend-i18n/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
  98. package/templates/apps/frontend-i18n/src/pages/{about.page.test.tsx → about/page.test.tsx} +3 -3
  99. package/templates/apps/frontend-i18n/src/pages/{about.page.tsx → about/page.tsx} +1 -1
  100. package/templates/apps/frontend-i18n/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  101. package/templates/apps/frontend-landing/package.json +7 -7
  102. package/templates/apps/frontend-landing/src/pages/[locale]/mirrors.test.tsx +1 -1
  103. package/templates/apps/frontend-landing/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
  104. package/templates/apps/frontend-landing/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  105. package/templates/apps/frontend-spa/package.json +7 -7
  106. package/templates/apps/frontend-spa/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  107. package/templates/apps/frontend-ssr/package.json +7 -7
  108. package/templates/apps/frontend-ssr/src/pages/{feed.page.test.tsx → feed/page.test.tsx} +2 -2
  109. package/templates/apps/frontend-ssr/src/pages/{feed.page.tsx → feed/page.tsx} +1 -1
  110. package/templates/apps/frontend-ssr/src/pages/{feed-swr.page.test.tsx → feed-swr/page.test.tsx} +2 -2
  111. package/templates/apps/frontend-ssr/src/pages/{feed-swr.page.tsx → feed-swr/page.tsx} +1 -1
  112. package/templates/apps/frontend-ssr/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  113. package/templates/apps/frontend-ssr-api/package.json +8 -8
  114. package/templates/apps/frontend-ssr-api/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  115. package/templates/apps/frontend-static-blog/package.json +6 -6
  116. package/templates/apps/frontend-static-blog/src/pages/[locale]/blog/{[slug].page.tsx → [slug]/page.tsx} +4 -4
  117. package/templates/apps/frontend-static-blog/src/pages/[locale]/mirrors.test.tsx +2 -2
  118. package/templates/apps/frontend-static-blog/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
  119. package/templates/apps/frontend-static-blog/src/pages/blog/{[slug].page.test.tsx → [slug]/page.test.tsx} +3 -3
  120. package/templates/apps/frontend-static-blog/src/pages/blog/{[slug].page.tsx → [slug]/page.tsx} +3 -3
  121. package/templates/apps/frontend-static-blog/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
  122. package/dist/apiBuild-BOczx9-m.js +0 -2
  123. package/dist/dbCommand-DNQ6l-su.js +0 -2
  124. package/dist/frameworkTableAssembly-D1zJSgOU.js +0 -2
  125. /package/templates/apps/changelog/src/pages/{index.page.tsx → page.tsx} +0 -0
  126. /package/templates/apps/frontend-admin/src/pages/(marketing)/{index.page.tsx → page.tsx} +0 -0
  127. /package/templates/apps/frontend-admin/src/pages/admin/{index.page.tsx → page.tsx} +0 -0
  128. /package/templates/apps/frontend-app/src/pages/{index.page.tsx → page.tsx} +0 -0
  129. /package/templates/apps/frontend-blank/src/pages/{index.page.tsx → page.tsx} +0 -0
  130. /package/templates/apps/frontend-contact/src/pages/{index.page.tsx → page.tsx} +0 -0
  131. /package/templates/apps/frontend-dashboard/src/pages/(marketing)/{index.page.tsx → page.tsx} +0 -0
  132. /package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.page.tsx → page.tsx} +0 -0
  133. /package/templates/apps/frontend-docs/src/pages/{index.page.tsx → page.tsx} +0 -0
  134. /package/templates/apps/frontend-i18n/src/pages/{index.page.tsx → page.tsx} +0 -0
  135. /package/templates/apps/frontend-landing/src/pages/{index.page.tsx → page.tsx} +0 -0
  136. /package/templates/apps/frontend-spa/src/pages/{index.page.tsx → page.tsx} +0 -0
  137. /package/templates/apps/frontend-ssr/src/pages/{index.page.tsx → page.tsx} +0 -0
  138. /package/templates/apps/frontend-ssr-api/src/pages/{index.page.tsx → page.tsx} +0 -0
  139. /package/templates/apps/frontend-static-blog/src/pages/{index.page.tsx → page.tsx} +0 -0
@@ -10,17 +10,17 @@
10
10
  "test": "voltro test"
11
11
  },
12
12
  "dependencies": {
13
- "@voltro/cli": "0.16.0",
14
- "@voltro/database": "0.16.0",
15
- "@voltro/env": "0.16.0",
16
- "@voltro/plugin-multitenancy": "0.16.0",
17
- "@voltro/plugin-storage": "0.16.0",
18
- "@voltro/protocol": "0.16.0",
19
- "@voltro/runtime": "0.16.0",
13
+ "@voltro/cli": "0.18.0",
14
+ "@voltro/database": "0.18.0",
15
+ "@voltro/env": "0.18.0",
16
+ "@voltro/plugin-multitenancy": "0.18.0",
17
+ "@voltro/plugin-storage": "0.18.0",
18
+ "@voltro/protocol": "0.18.0",
19
+ "@voltro/runtime": "0.18.0",
20
20
  "effect": "^3.21.2"
21
21
  },
22
22
  "devDependencies": {
23
- "@voltro/testing": "0.16.0",
23
+ "@voltro/testing": "0.18.0",
24
24
  "typescript": "^5.7.0",
25
25
  "vitest": "^3.0.0"
26
26
  }
@@ -11,17 +11,17 @@
11
11
  "dependencies": {
12
12
  "@effect/platform": "^0.96.1",
13
13
  "@effect/rpc": "^0.75.1",
14
- "@voltro/cli": "0.16.0",
15
- "@voltro/database": "0.16.0",
16
- "@voltro/env": "0.16.0",
17
- "@voltro/plugin-governance": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/protocol": "0.16.0",
20
- "@voltro/runtime": "0.16.0",
14
+ "@voltro/cli": "0.18.0",
15
+ "@voltro/database": "0.18.0",
16
+ "@voltro/env": "0.18.0",
17
+ "@voltro/plugin-governance": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/protocol": "0.18.0",
20
+ "@voltro/runtime": "0.18.0",
21
21
  "effect": "^3.21.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/testing": "0.16.0",
24
+ "@voltro/testing": "0.18.0",
25
25
  "typescript": "^5.7.0",
26
26
  "vitest": "^3.0.0"
27
27
  }
@@ -11,17 +11,17 @@
11
11
  "dependencies": {
12
12
  "@effect/platform": "^0.96.1",
13
13
  "@effect/rpc": "^0.75.1",
14
- "@voltro/cli": "0.16.0",
15
- "@voltro/database": "0.16.0",
16
- "@voltro/env": "0.16.0",
17
- "@voltro/plugin-multitenancy": "0.16.0",
18
- "@voltro/protocol": "0.16.0",
19
- "@voltro/runtime": "0.16.0",
20
- "@voltro/workflow": "0.16.0",
14
+ "@voltro/cli": "0.18.0",
15
+ "@voltro/database": "0.18.0",
16
+ "@voltro/env": "0.18.0",
17
+ "@voltro/plugin-multitenancy": "0.18.0",
18
+ "@voltro/protocol": "0.18.0",
19
+ "@voltro/runtime": "0.18.0",
20
+ "@voltro/workflow": "0.18.0",
21
21
  "effect": "^3.21.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/testing": "0.16.0",
24
+ "@voltro/testing": "0.18.0",
25
25
  "typescript": "^5.7.0",
26
26
  "vitest": "^3.0.0"
27
27
  }
@@ -12,18 +12,18 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-flags": "0.16.0",
19
- "@voltro/plugin-multitenancy": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
22
- "@voltro/sql-postgres": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-flags": "0.18.0",
19
+ "@voltro/plugin-multitenancy": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
+ "@voltro/sql-postgres": "0.18.0",
23
23
  "effect": "^3.21.2"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.16.0",
26
+ "@voltro/testing": "0.18.0",
27
27
  "typescript": "^5.7.0",
28
28
  "vitest": "^3.0.0"
29
29
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-audit": "0.16.0",
19
- "@voltro/plugin-governance": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-audit": "0.18.0",
19
+ "@voltro/plugin-governance": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -11,17 +11,17 @@
11
11
  "dependencies": {
12
12
  "@effect/platform": "^0.96.1",
13
13
  "@effect/rpc": "^0.75.1",
14
- "@voltro/cli": "0.16.0",
15
- "@voltro/database": "0.16.0",
16
- "@voltro/env": "0.16.0",
17
- "@voltro/kv": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/protocol": "0.16.0",
20
- "@voltro/runtime": "0.16.0",
14
+ "@voltro/cli": "0.18.0",
15
+ "@voltro/database": "0.18.0",
16
+ "@voltro/env": "0.18.0",
17
+ "@voltro/kv": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/protocol": "0.18.0",
20
+ "@voltro/runtime": "0.18.0",
21
21
  "effect": "^3.21.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/testing": "0.16.0",
24
+ "@voltro/testing": "0.18.0",
25
25
  "typescript": "^5.7.0",
26
26
  "vitest": "^3.0.0"
27
27
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-moderation": "0.16.0",
19
- "@voltro/plugin-multitenancy": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-moderation": "0.18.0",
19
+ "@voltro/plugin-multitenancy": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/plugin-multitenancy": "0.16.0",
18
- "@voltro/plugin-prometheus": "0.16.0",
19
- "@voltro/plugin-sentry": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/plugin-multitenancy": "0.18.0",
18
+ "@voltro/plugin-prometheus": "0.18.0",
19
+ "@voltro/plugin-sentry": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/plugin-ratelimit": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/plugin-ratelimit": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/plugin-rbac": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/plugin-rbac": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -12,16 +12,16 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/plugin-openapi": "0.16.0",
18
- "@voltro/protocol": "0.16.0",
19
- "@voltro/runtime": "0.16.0",
20
- "@voltro/sql-postgres": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/plugin-openapi": "0.18.0",
18
+ "@voltro/protocol": "0.18.0",
19
+ "@voltro/runtime": "0.18.0",
20
+ "@voltro/sql-postgres": "0.18.0",
21
21
  "effect": "^3.21.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/testing": "0.16.0",
24
+ "@voltro/testing": "0.18.0",
25
25
  "typescript": "^5.7.0",
26
26
  "vitest": "^3.0.0"
27
27
  }
@@ -12,20 +12,20 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/plugin-analytics-postgres": "0.16.0",
18
- "@voltro/plugin-billing": "0.16.0",
19
- "@voltro/plugin-multitenancy": "0.16.0",
20
- "@voltro/plugin-notifications": "0.16.0",
21
- "@voltro/plugin-presence": "0.16.0",
22
- "@voltro/protocol": "0.16.0",
23
- "@voltro/runtime": "0.16.0",
24
- "@voltro/sql-postgres": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/plugin-analytics-postgres": "0.18.0",
18
+ "@voltro/plugin-billing": "0.18.0",
19
+ "@voltro/plugin-multitenancy": "0.18.0",
20
+ "@voltro/plugin-notifications": "0.18.0",
21
+ "@voltro/plugin-presence": "0.18.0",
22
+ "@voltro/protocol": "0.18.0",
23
+ "@voltro/runtime": "0.18.0",
24
+ "@voltro/sql-postgres": "0.18.0",
25
25
  "effect": "^3.21.2"
26
26
  },
27
27
  "devDependencies": {
28
- "@voltro/testing": "0.16.0",
28
+ "@voltro/testing": "0.18.0",
29
29
  "typescript": "^5.7.0",
30
30
  "vitest": "^3.0.0"
31
31
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/plugin-search": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/plugin-search": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/plugin-versioning": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/plugin-versioning": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
22
  "effect": "^3.21.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.16.0",
25
+ "@voltro/testing": "0.18.0",
26
26
  "typescript": "^5.7.0",
27
27
  "vitest": "^3.0.0"
28
28
  }
@@ -12,18 +12,18 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
14
  "@effect/rpc": "^0.75.1",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/database": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/plugin-multitenancy": "0.16.0",
19
- "@voltro/plugin-webhooks": "0.16.0",
20
- "@voltro/protocol": "0.16.0",
21
- "@voltro/runtime": "0.16.0",
22
- "@voltro/sql-postgres": "0.16.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/database": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/plugin-multitenancy": "0.18.0",
19
+ "@voltro/plugin-webhooks": "0.18.0",
20
+ "@voltro/protocol": "0.18.0",
21
+ "@voltro/runtime": "0.18.0",
22
+ "@voltro/sql-postgres": "0.18.0",
23
23
  "effect": "^3.21.2"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.16.0",
26
+ "@voltro/testing": "0.18.0",
27
27
  "typescript": "^5.7.0",
28
28
  "vitest": "^3.0.0"
29
29
  }
@@ -11,12 +11,12 @@
11
11
  "test": "voltro test"
12
12
  },
13
13
  "dependencies": {
14
- "@voltro/changelog": "0.16.0",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/client": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/i18n": "0.16.0",
19
- "@voltro/web": "0.16.0",
14
+ "@voltro/changelog": "0.18.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/client": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/i18n": "0.18.0",
19
+ "@voltro/web": "0.18.0",
20
20
  "react": "^19.0.0",
21
21
  "react-dom": "^19.0.0"
22
22
  },
@@ -10,11 +10,11 @@
10
10
  // routes at the root. `voltro build` only emits the paths getStaticPaths
11
11
  // enumerates, so the static output is unambiguous — the bare `[slug]` never
12
12
  // enumerates a locale code, and only this mirror emits `/de/…`.
13
- import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../lib/locale'
14
- import { releases } from '../../lib/releases'
13
+ import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../../lib/locale'
14
+ import { releases } from '../../../lib/releases'
15
15
 
16
- export { default } from '../[slug].page'
17
- export { renderMode, interactive, loader, meta } from '../[slug].page'
16
+ export { default } from '../../[slug]/page'
17
+ export { renderMode, interactive, loader, meta } from '../../[slug]/page'
18
18
 
19
19
  export const getStaticPaths = async (): Promise<
20
20
  Array<{ params: { locale: string; slug: string } }>
@@ -65,8 +65,8 @@ vi.mock('@voltro/i18n', () => ({
65
65
  T: ({ id }: { id: string }) => id,
66
66
  }))
67
67
 
68
- const indexMirror = await import('./index.page')
69
- const releaseMirror = await import('./[slug].page')
68
+ const indexMirror = await import('./page')
69
+ const releaseMirror = await import('./[slug]/page')
70
70
 
71
71
  describe('index mirror — getStaticPaths', () => {
72
72
  test('emits only non-default locales (just /de)', async () => {
@@ -4,8 +4,8 @@
4
4
  // is NOT listed — it lives at the bare `/`.
5
5
  import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../lib/locale'
6
6
 
7
- export { default } from '../index.page'
8
- export { renderMode, interactive, meta } from '../index.page'
7
+ export { default } from '../page'
8
+ export { renderMode, interactive, meta } from '../page'
9
9
 
10
10
  export const getStaticPaths = async (): Promise<Array<{ params: { locale: string } }>> =>
11
11
  SUPPORTED_LOCALES
@@ -61,7 +61,7 @@ vi.mock('@voltro/i18n', () => ({
61
61
  T: ({ id }: { id: string }) => id,
62
62
  }))
63
63
 
64
- const { default: ReleasePage, getStaticPaths, loader, meta } = await import('./[slug].page')
64
+ const { default: ReleasePage, getStaticPaths, loader, meta } = await import('./page')
65
65
 
66
66
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
67
67
 
@@ -7,8 +7,8 @@ import type { ReactNode } from 'react'
7
7
  import { useLoaderData, notFound, type LoaderFn } from '@voltro/web'
8
8
  import { highlightRelease } from '@voltro/changelog'
9
9
  import { T, useLocale } from '@voltro/i18n'
10
- import { releases, releaseBySlug, type Release } from '../lib/releases'
11
- import { withLocalePrefix } from '../lib/locale'
10
+ import { releases, releaseBySlug, type Release } from '../../lib/releases'
11
+ import { withLocalePrefix } from '../../lib/locale'
12
12
 
13
13
  export const renderMode = 'static' as const
14
14
  export const interactive = 'none' as const
@@ -57,7 +57,7 @@ vi.mock('@voltro/i18n', () => ({
57
57
  T: ({ id }: { id: string }) => id,
58
58
  }))
59
59
 
60
- const { default: ChangelogIndex, meta, renderMode, interactive } = await import('./index.page')
60
+ const { default: ChangelogIndex, meta, renderMode, interactive } = await import('./page')
61
61
 
62
62
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
63
63
 
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.96.1",
14
- "@voltro/cli": "0.16.0",
15
- "@voltro/serverless": "0.16.0",
14
+ "@voltro/cli": "0.18.0",
15
+ "@voltro/serverless": "0.18.0",
16
16
  "effect": "^3.21.2"
17
17
  },
18
18
  "devDependencies": {
@@ -11,18 +11,18 @@
11
11
  "test": "voltro test"
12
12
  },
13
13
  "dependencies": {
14
- "@{{projectName}}/api": "0.16.0",
15
- "@voltro/cli": "0.16.0",
16
- "@voltro/client": "0.16.0",
17
- "@voltro/env": "0.16.0",
18
- "@voltro/i18n": "0.16.0",
19
- "@voltro/ui-shadcn": "0.16.0",
20
- "@voltro/web": "0.16.0",
14
+ "@{{projectName}}/api": "0.18.0",
15
+ "@voltro/cli": "0.18.0",
16
+ "@voltro/client": "0.18.0",
17
+ "@voltro/env": "0.18.0",
18
+ "@voltro/i18n": "0.18.0",
19
+ "@voltro/ui-shadcn": "0.18.0",
20
+ "@voltro/web": "0.18.0",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.16.0",
25
+ "@voltro/devtools": "0.18.0",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "typescript": "^5.7.0",
@@ -9,12 +9,12 @@ import { act, createElement, type ReactNode } from 'react'
9
9
  import { createRoot, type Root } from 'react-dom/client'
10
10
 
11
11
  import { I18nProvider } from '@voltro/i18n'
12
- import enCatalog from '../../locales/en'
12
+ import enCatalog from '../../../locales/en'
13
13
 
14
14
  const navigate = vi.fn<(to: string) => void>()
15
15
  vi.mock('@voltro/web', () => ({ useNavigate: () => navigate }))
16
16
 
17
- const { default: Login, meta, renderMode } = await import('./login.page')
17
+ const { default: Login, meta, renderMode } = await import('./page')
18
18
 
19
19
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
20
20
 
@@ -5,8 +5,8 @@ import type { ReactNode } from 'react'
5
5
  import type { PageMeta } from '@voltro/web'
6
6
  import { useNavigate } from '@voltro/web'
7
7
  import { T } from '@voltro/i18n'
8
- import { getCatalog } from '../../locales'
9
- import { SESSION_COOKIE } from '../../lib/auth'
8
+ import { getCatalog } from '../../../locales/index'
9
+ import { SESSION_COOKIE } from '../../../lib/auth'
10
10
 
11
11
  export const renderMode = 'static' as const
12
12
 
@@ -9,7 +9,7 @@ import { createRoot, type Root } from 'react-dom/client'
9
9
  import { I18nProvider } from '@voltro/i18n'
10
10
  import enCatalog from '../../locales/en'
11
11
 
12
- const { default: Landing, meta, renderMode } = await import('./index.page')
12
+ const { default: Landing, meta, renderMode } = await import('./page')
13
13
 
14
14
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
15
15
 
@@ -20,7 +20,7 @@ import {
20
20
  type EntityAdminSpec,
21
21
  } from '@voltro/client'
22
22
  import { T, useTFn } from '@voltro/i18n'
23
- import { getCatalog } from '../../locales'
23
+ import { getCatalog } from '../../../locales/index'
24
24
 
25
25
  export const renderMode = 'ssr' as const
26
26
 
@@ -36,7 +36,7 @@ vi.mock('@voltro/client', () => ({
36
36
  useProvenance: () => ({ data: undefined, loading: false, error: undefined }),
37
37
  }))
38
38
 
39
- const { default: EntityPage, meta, renderMode } = await import('./[entity].page')
39
+ const { default: EntityPage, meta, renderMode } = await import('./[entity]/page')
40
40
 
41
41
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
42
42
 
@@ -19,7 +19,7 @@ vi.mock('@voltro/client', () => ({
19
19
  deriveEntityAdmins: () => entityAdmins(),
20
20
  }))
21
21
 
22
- const { default: AdminOverview, meta, renderMode } = await import('./index.page')
22
+ const { default: AdminOverview, meta, renderMode } = await import('./page')
23
23
 
24
24
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
25
25