@voltro/cli 0.12.0 → 0.14.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 (189) hide show
  1. package/CHANGELOG.md +378 -0
  2. package/dist/{apiBuild-GefjNI5d.js → apiBuild-370ITNRk.js} +3 -3
  3. package/dist/apiBuild-DatWP5hh.js +2 -0
  4. package/dist/bin.js +3 -3
  5. package/dist/{commands-BmNi1RgZ.js → commands-D-teL_TM.js} +3756 -2539
  6. package/dist/dbCommand-B3CeMU3u.js +2 -0
  7. package/dist/{dbCommand-DNrkb58g.js → dbCommand-Dmi-vHfA.js} +72 -57
  8. package/dist/{dev-d0LjACxE.js → dev-CKyW_LAv.js} +1511 -1331
  9. package/dist/dev-CPKbckaN.js +3 -0
  10. package/dist/fileConventions-COg0ZytD.js +9 -0
  11. package/dist/frameworkTableAssembly-DCLhpHsF.js +601 -0
  12. package/dist/frameworkTableAssembly-DYzb2elg.js +2 -0
  13. package/dist/index.js +1 -1
  14. package/dist/{inspectMetrics-uEfIS1vp.js → inspectMetrics-CyVMeofr.js} +962 -943
  15. package/dist/seedRunner-D6eu-u5U.js +229 -0
  16. package/dist/serveCommand-CU3Sw4ZM.js +1127 -0
  17. package/dist/serveEntry.js +3 -3
  18. package/dist/{start-DKcQd52a.js → start-D8ATvTzo.js} +246 -246
  19. package/dist/startEntry.js +2 -2
  20. package/package.json +17 -17
  21. package/templates/AGENTS.core.md +77 -3
  22. package/templates/AGENTS.md +78 -4
  23. package/templates/agent-docs/_index.md +1 -1
  24. package/templates/agent-docs/_manifest.json +2 -2
  25. package/templates/agent-docs/authentication.md +39 -0
  26. package/templates/agent-docs/cli.md +114 -6
  27. package/templates/agent-docs/configuration.md +48 -0
  28. package/templates/agent-docs/data.md +193 -1
  29. package/templates/agent-docs/database/hosting.md +2 -2
  30. package/templates/agent-docs/database/migrations.md +88 -3
  31. package/templates/agent-docs/database/overview.md +11 -0
  32. package/templates/agent-docs/database/seedsdialects.md +53 -1
  33. package/templates/agent-docs/database/transactions.md +31 -0
  34. package/templates/agent-docs/internationalization.md +3 -3
  35. package/templates/agent-docs/introduction.md +133 -2
  36. package/templates/agent-docs/plugins.md +2 -1
  37. package/templates/agent-docs/reference.md +4 -4
  38. package/templates/agent-docs/routing.md +48 -43
  39. package/templates/agent-docs/schema-driven-ui.md +12 -2
  40. package/templates/agent-docs/templates/apibackends.md +1 -8
  41. package/templates/agent-docs/templates/appshells.md +24 -24
  42. package/templates/agent-docs/testing.md +40 -1
  43. package/templates/agent-docs/whats-new.md +51 -131
  44. package/templates/apps/api-ai/database/schema.ts +0 -2
  45. package/templates/apps/api-ai/package.json +7 -7
  46. package/templates/apps/api-auth/package.json +8 -8
  47. package/templates/apps/api-backend/database/schema.ts +0 -3
  48. package/templates/apps/api-backend/package.json +7 -7
  49. package/templates/apps/api-backend-deactivation/database/schema.ts +0 -1
  50. package/templates/apps/api-backend-deactivation/package.json +7 -7
  51. package/templates/apps/api-backend-deactivation/tests/users.deactivate.test.ts +1 -1
  52. package/templates/apps/api-backend-mail/database/schema.ts +0 -3
  53. package/templates/apps/api-backend-mail/package.json +8 -8
  54. package/templates/apps/api-backend-mariadb/database/schema.ts +0 -3
  55. package/templates/apps/api-backend-mariadb/package.json +9 -9
  56. package/templates/apps/api-backend-storage/database/schema.ts +0 -3
  57. package/templates/apps/api-backend-storage/package.json +8 -8
  58. package/templates/apps/api-data-advanced/database/authors.entity.ts +0 -2
  59. package/templates/apps/api-data-advanced/database/books.entity.ts +0 -1
  60. package/templates/apps/api-data-advanced/package.json +8 -8
  61. package/templates/apps/api-data-advanced/tests/queries.test.ts +6 -1
  62. package/templates/apps/api-durable/database/schema.ts +0 -3
  63. package/templates/apps/api-durable/package.json +8 -8
  64. package/templates/apps/api-feature-flags/database/schema.ts +0 -1
  65. package/templates/apps/api-feature-flags/package.json +9 -9
  66. package/templates/apps/api-governance/app.config.ts +0 -1
  67. package/templates/apps/api-governance/database/schema.ts +0 -1
  68. package/templates/apps/api-governance/package.json +8 -8
  69. package/templates/apps/api-kv/database/schema.ts +0 -3
  70. package/templates/apps/api-kv/package.json +8 -8
  71. package/templates/apps/api-kv/tests/sync.test.ts +2 -2
  72. package/templates/apps/api-moderation/database/schema.ts +0 -2
  73. package/templates/apps/api-moderation/package.json +8 -8
  74. package/templates/apps/api-observability/database/schema.ts +0 -1
  75. package/templates/apps/api-observability/package.json +8 -8
  76. package/templates/apps/api-ratelimit/database/schema.ts +0 -1
  77. package/templates/apps/api-ratelimit/package.json +8 -8
  78. package/templates/apps/api-rbac/README.md +53 -14
  79. package/templates/apps/api-rbac/app.config.ts +24 -26
  80. package/templates/apps/api-rbac/authz.ts +76 -0
  81. package/templates/apps/api-rbac/database/schema.ts +22 -7
  82. package/templates/apps/api-rbac/mutations/notes.create.mutation.server.ts +7 -5
  83. package/templates/apps/api-rbac/mutations/notes.create.mutation.ts +15 -8
  84. package/templates/apps/api-rbac/mutations/notes.delete.mutation.server.ts +54 -0
  85. package/templates/apps/api-rbac/mutations/notes.delete.mutation.ts +43 -0
  86. package/templates/apps/api-rbac/mutations/teams.rename.mutation.server.ts +19 -0
  87. package/templates/apps/api-rbac/mutations/teams.rename.mutation.ts +37 -0
  88. package/templates/apps/api-rbac/package.json +8 -8
  89. package/templates/apps/api-rbac/queries/notes.list.query.server.ts +12 -0
  90. package/templates/apps/api-rbac/queries/notes.list.query.ts +26 -0
  91. package/templates/apps/api-rbac/template.json +2 -2
  92. package/templates/apps/api-rbac/tests/authz.test.ts +233 -0
  93. package/templates/apps/api-rest/database/schema.ts +0 -3
  94. package/templates/apps/api-rest/package.json +7 -7
  95. package/templates/apps/api-saas/database/schema.ts +0 -1
  96. package/templates/apps/api-saas/package.json +11 -11
  97. package/templates/apps/api-search/database/schema.ts +0 -1
  98. package/templates/apps/api-search/package.json +8 -8
  99. package/templates/apps/api-versioning/database/schema.ts +0 -1
  100. package/templates/apps/api-versioning/package.json +8 -8
  101. package/templates/apps/api-webhooks/database/schema.ts +0 -1
  102. package/templates/apps/api-webhooks/package.json +9 -8
  103. package/templates/apps/changelog/package.json +6 -6
  104. package/templates/apps/changelog/src/pages/[locale]/{[slug].tsx → [slug].page.tsx} +2 -2
  105. package/templates/apps/changelog/src/pages/[locale]/{index.tsx → index.page.tsx} +2 -2
  106. package/templates/apps/changelog/src/pages/[locale]/mirrors.test.tsx +2 -2
  107. package/templates/apps/changelog/src/pages/{[slug].test.tsx → [slug].page.test.tsx} +1 -1
  108. package/templates/apps/changelog/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  109. package/templates/apps/edge-functions/package.json +2 -2
  110. package/templates/apps/frontend-admin/package.json +8 -8
  111. package/templates/apps/frontend-admin/src/pages/(marketing)/{index.test.tsx → index.page.test.tsx} +1 -1
  112. package/templates/apps/frontend-admin/src/pages/(marketing)/{login.test.tsx → login.page.test.tsx} +1 -1
  113. package/templates/apps/frontend-admin/src/pages/admin/entity.test.tsx +1 -1
  114. package/templates/apps/frontend-admin/src/pages/admin/{index.test.tsx → index.page.test.tsx} +1 -1
  115. package/templates/apps/frontend-app/package.json +8 -8
  116. package/templates/apps/frontend-app/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  117. package/templates/apps/frontend-app/src/pages/{schema-ui.test.tsx → schema-ui.page.test.tsx} +1 -1
  118. package/templates/apps/frontend-blank/package.json +7 -7
  119. package/templates/apps/frontend-blank/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  120. package/templates/apps/frontend-contact/package.json +7 -7
  121. package/templates/apps/frontend-contact/src/pages/[locale]/{index.tsx → index.page.tsx} +2 -2
  122. package/templates/apps/frontend-contact/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  123. package/templates/apps/frontend-dashboard/package.json +7 -7
  124. package/templates/apps/frontend-dashboard/src/pages/(marketing)/{index.test.tsx → index.page.test.tsx} +1 -1
  125. package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.test.tsx → login.page.test.tsx} +1 -1
  126. package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.test.tsx → index.page.test.tsx} +1 -1
  127. package/templates/apps/frontend-dashboard/src/pages/dashboard/{settings.test.tsx → settings.page.test.tsx} +1 -1
  128. package/templates/apps/frontend-docs/package.json +7 -7
  129. package/templates/apps/frontend-docs/src/pages/[locale]/docs/{[...slug].tsx → [...slug].page.tsx} +3 -3
  130. package/templates/apps/frontend-docs/src/pages/[locale]/{index.tsx → index.page.tsx} +2 -2
  131. package/templates/apps/frontend-docs/src/pages/[locale]/mirrors.test.tsx +2 -2
  132. package/templates/apps/frontend-docs/src/pages/docs/{[...slug].test.tsx → [...slug].page.test.tsx} +1 -1
  133. package/templates/apps/frontend-docs/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  134. package/templates/apps/frontend-i18n/package.json +6 -6
  135. package/templates/apps/frontend-i18n/src/pages/[locale]/{about.tsx → about.page.tsx} +2 -2
  136. package/templates/apps/frontend-i18n/src/pages/[locale]/{index.tsx → index.page.tsx} +2 -2
  137. package/templates/apps/frontend-i18n/src/pages/[locale]/mirrors.test.tsx +2 -2
  138. package/templates/apps/frontend-i18n/src/pages/{about.test.tsx → about.page.test.tsx} +1 -1
  139. package/templates/apps/frontend-i18n/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  140. package/templates/apps/frontend-landing/package.json +7 -7
  141. package/templates/apps/frontend-landing/src/pages/[locale]/{index.tsx → index.page.tsx} +2 -2
  142. package/templates/apps/frontend-landing/src/pages/[locale]/mirrors.test.tsx +1 -1
  143. package/templates/apps/frontend-landing/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  144. package/templates/apps/frontend-spa/package.json +7 -7
  145. package/templates/apps/frontend-spa/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  146. package/templates/apps/frontend-ssr/package.json +7 -7
  147. package/templates/apps/frontend-ssr/src/pages/{feed-swr.test.tsx → feed-swr.page.test.tsx} +1 -1
  148. package/templates/apps/frontend-ssr/src/pages/{feed.test.tsx → feed.page.test.tsx} +1 -1
  149. package/templates/apps/frontend-ssr/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  150. package/templates/apps/frontend-ssr-api/package.json +8 -8
  151. package/templates/apps/frontend-ssr-api/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  152. package/templates/apps/frontend-static-blog/package.json +6 -6
  153. package/templates/apps/frontend-static-blog/src/pages/[locale]/blog/{[slug].tsx → [slug].page.tsx} +2 -2
  154. package/templates/apps/frontend-static-blog/src/pages/[locale]/{index.tsx → index.page.tsx} +2 -2
  155. package/templates/apps/frontend-static-blog/src/pages/[locale]/mirrors.test.tsx +2 -2
  156. package/templates/apps/frontend-static-blog/src/pages/blog/{[slug].test.tsx → [slug].page.test.tsx} +1 -1
  157. package/templates/apps/frontend-static-blog/src/pages/{index.test.tsx → index.page.test.tsx} +1 -1
  158. package/dist/apiBuild-s7swuEU5.js +0 -2
  159. package/dist/dbCommand-Bt6BCG7g.js +0 -2
  160. package/dist/dev-YHbHmeXt.js +0 -3
  161. package/dist/seedRunner-DZmhoqNt.js +0 -821
  162. package/dist/serveCommand-B2-YV9TU.js +0 -1112
  163. package/templates/apps/api-rbac/tests/notes.create.test.ts +0 -80
  164. /package/templates/apps/changelog/src/pages/{[slug].tsx → [slug].page.tsx} +0 -0
  165. /package/templates/apps/changelog/src/pages/{index.tsx → index.page.tsx} +0 -0
  166. /package/templates/apps/frontend-admin/src/pages/(marketing)/{index.tsx → index.page.tsx} +0 -0
  167. /package/templates/apps/frontend-admin/src/pages/(marketing)/{login.tsx → login.page.tsx} +0 -0
  168. /package/templates/apps/frontend-admin/src/pages/admin/{[entity].tsx → [entity].page.tsx} +0 -0
  169. /package/templates/apps/frontend-admin/src/pages/admin/{index.tsx → index.page.tsx} +0 -0
  170. /package/templates/apps/frontend-app/src/pages/{index.tsx → index.page.tsx} +0 -0
  171. /package/templates/apps/frontend-app/src/pages/{schema-ui.tsx → schema-ui.page.tsx} +0 -0
  172. /package/templates/apps/frontend-blank/src/pages/{index.tsx → index.page.tsx} +0 -0
  173. /package/templates/apps/frontend-contact/src/pages/{index.tsx → index.page.tsx} +0 -0
  174. /package/templates/apps/frontend-dashboard/src/pages/(marketing)/{index.tsx → index.page.tsx} +0 -0
  175. /package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.tsx → login.page.tsx} +0 -0
  176. /package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.tsx → index.page.tsx} +0 -0
  177. /package/templates/apps/frontend-dashboard/src/pages/dashboard/{settings.tsx → settings.page.tsx} +0 -0
  178. /package/templates/apps/frontend-docs/src/pages/docs/{[...slug].tsx → [...slug].page.tsx} +0 -0
  179. /package/templates/apps/frontend-docs/src/pages/{index.tsx → index.page.tsx} +0 -0
  180. /package/templates/apps/frontend-i18n/src/pages/{about.tsx → about.page.tsx} +0 -0
  181. /package/templates/apps/frontend-i18n/src/pages/{index.tsx → index.page.tsx} +0 -0
  182. /package/templates/apps/frontend-landing/src/pages/{index.tsx → index.page.tsx} +0 -0
  183. /package/templates/apps/frontend-spa/src/pages/{index.tsx → index.page.tsx} +0 -0
  184. /package/templates/apps/frontend-ssr/src/pages/{feed-swr.tsx → feed-swr.page.tsx} +0 -0
  185. /package/templates/apps/frontend-ssr/src/pages/{feed.tsx → feed.page.tsx} +0 -0
  186. /package/templates/apps/frontend-ssr/src/pages/{index.tsx → index.page.tsx} +0 -0
  187. /package/templates/apps/frontend-ssr-api/src/pages/{index.tsx → index.page.tsx} +0 -0
  188. /package/templates/apps/frontend-static-blog/src/pages/blog/{[slug].tsx → [slug].page.tsx} +0 -0
  189. /package/templates/apps/frontend-static-blog/src/pages/{index.tsx → index.page.tsx} +0 -0
@@ -24,7 +24,7 @@ vi.mock('@voltro/i18n', () => ({
24
24
  T: ({ id }: { id: string }) => catalogs[currentLocale]?.[id] ?? id,
25
25
  }))
26
26
 
27
- const { default: About, meta, renderMode } = await import('./about')
27
+ const { default: About, meta, renderMode } = await import('./about.page')
28
28
 
29
29
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
30
30
 
@@ -38,7 +38,7 @@ vi.mock('@voltro/i18n', () => ({
38
38
  fill(catalogs[currentLocale]?.[id] ?? id, values),
39
39
  }))
40
40
 
41
- const { default: Index, meta, renderMode } = await import('./index')
41
+ const { default: Index, meta, renderMode } = await import('./index.page')
42
42
 
43
43
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
44
44
 
@@ -11,17 +11,17 @@
11
11
  "typecheck": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@voltro/cli": "0.12.0",
15
- "@voltro/client": "0.12.0",
16
- "@voltro/env": "0.12.0",
17
- "@voltro/i18n": "0.12.0",
18
- "@voltro/ui-shadcn": "0.12.0",
19
- "@voltro/web": "0.12.0",
14
+ "@voltro/cli": "0.14.0",
15
+ "@voltro/client": "0.14.0",
16
+ "@voltro/env": "0.14.0",
17
+ "@voltro/i18n": "0.14.0",
18
+ "@voltro/ui-shadcn": "0.14.0",
19
+ "@voltro/web": "0.14.0",
20
20
  "react": "^19.0.0",
21
21
  "react-dom": "^19.0.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/devtools": "0.12.0",
24
+ "@voltro/devtools": "0.14.0",
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "typescript": "^5.7.0",
@@ -4,8 +4,8 @@
4
4
  // The default locale is NOT listed here — it lives at the bare `/`.
5
5
  import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../lib/locale'
6
6
 
7
- export { default } from '../index'
8
- export { renderMode, interactive, meta } from '../index'
7
+ export { default } from '../index.page'
8
+ export { renderMode, interactive, meta } from '../index.page'
9
9
 
10
10
  export const getStaticPaths = async (): Promise<Array<{ params: { locale: string } }>> =>
11
11
  SUPPORTED_LOCALES
@@ -20,7 +20,7 @@ vi.mock('@voltro/i18n', () => ({
20
20
  T: ({ id }: { id: string }) => id,
21
21
  }))
22
22
 
23
- const indexMirror = await import('./index')
23
+ const indexMirror = await import('./index.page')
24
24
 
25
25
  describe('home mirror — getStaticPaths', () => {
26
26
  test('emits only non-default locales (just /de)', async () => {
@@ -39,7 +39,7 @@ vi.mock('@voltro/i18n', () => ({
39
39
  fill(catalogs[currentLocale]?.[id] ?? id, values),
40
40
  }))
41
41
 
42
- const { default: Index, meta, renderMode, interactive } = await import('./index')
42
+ const { default: Index, meta, renderMode, interactive } = await import('./index.page')
43
43
 
44
44
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
45
45
 
@@ -11,17 +11,17 @@
11
11
  "typecheck": "tsc --noEmit"
12
12
  },
13
13
  "dependencies": {
14
- "@voltro/cli": "0.12.0",
15
- "@voltro/client": "0.12.0",
16
- "@voltro/env": "0.12.0",
17
- "@voltro/i18n": "0.12.0",
18
- "@voltro/ui-shadcn": "0.12.0",
19
- "@voltro/web": "0.12.0",
14
+ "@voltro/cli": "0.14.0",
15
+ "@voltro/client": "0.14.0",
16
+ "@voltro/env": "0.14.0",
17
+ "@voltro/i18n": "0.14.0",
18
+ "@voltro/ui-shadcn": "0.14.0",
19
+ "@voltro/web": "0.14.0",
20
20
  "react": "^19.0.0",
21
21
  "react-dom": "^19.0.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/devtools": "0.12.0",
24
+ "@voltro/devtools": "0.14.0",
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "typescript": "^5.7.0",
@@ -12,7 +12,7 @@ import { createRoot, type Root } from 'react-dom/client'
12
12
  import { I18nProvider } from '@voltro/i18n'
13
13
  import enCatalog from '../locales/en'
14
14
 
15
- import BillSplitter, { renderMode } from './index'
15
+ import BillSplitter, { renderMode } from './index.page'
16
16
 
17
17
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
18
18
 
@@ -11,17 +11,17 @@
11
11
  "test": "voltro test"
12
12
  },
13
13
  "dependencies": {
14
- "@voltro/cli": "0.12.0",
15
- "@voltro/client": "0.12.0",
16
- "@voltro/env": "0.12.0",
17
- "@voltro/i18n": "0.12.0",
18
- "@voltro/ui-shadcn": "0.12.0",
19
- "@voltro/web": "0.12.0",
14
+ "@voltro/cli": "0.14.0",
15
+ "@voltro/client": "0.14.0",
16
+ "@voltro/env": "0.14.0",
17
+ "@voltro/i18n": "0.14.0",
18
+ "@voltro/ui-shadcn": "0.14.0",
19
+ "@voltro/web": "0.14.0",
20
20
  "react": "^19.0.0",
21
21
  "react-dom": "^19.0.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/devtools": "0.12.0",
24
+ "@voltro/devtools": "0.14.0",
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "typescript": "^5.7.0",
@@ -13,7 +13,7 @@ const loaderData = vi.fn<() => unknown>()
13
13
  vi.mock('@voltro/web', () => ({ useLoaderData: () => loaderData() }))
14
14
 
15
15
  const { default: FeedSwr, meta, loader, renderMode, revalidate, staleWhileRevalidate } =
16
- await import('./feed-swr')
16
+ await import('./feed-swr.page')
17
17
 
18
18
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
19
19
 
@@ -12,7 +12,7 @@ import enCatalog from '../locales/en'
12
12
  const loaderData = vi.fn<() => unknown>()
13
13
  vi.mock('@voltro/web', () => ({ useLoaderData: () => loaderData() }))
14
14
 
15
- const { default: Feed, meta, loader, renderMode, revalidate, tenantAware } = await import('./feed')
15
+ const { default: Feed, meta, loader, renderMode, revalidate, tenantAware } = await import('./feed.page')
16
16
 
17
17
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
18
18
 
@@ -18,7 +18,7 @@ vi.mock('@voltro/web', () => ({
18
18
  useServerRequest: () => serverRequest(),
19
19
  }))
20
20
 
21
- const { default: Home, meta, loader, renderMode } = await import('./index')
21
+ const { default: Home, meta, loader, renderMode } = await import('./index.page')
22
22
 
23
23
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
24
24
 
@@ -11,18 +11,18 @@
11
11
  "test": "voltro test"
12
12
  },
13
13
  "dependencies": {
14
- "@{{projectName}}/api": "0.12.0",
15
- "@voltro/cli": "0.12.0",
16
- "@voltro/client": "0.12.0",
17
- "@voltro/env": "0.12.0",
18
- "@voltro/i18n": "0.12.0",
19
- "@voltro/ui-shadcn": "0.12.0",
20
- "@voltro/web": "0.12.0",
14
+ "@{{projectName}}/api": "0.14.0",
15
+ "@voltro/cli": "0.14.0",
16
+ "@voltro/client": "0.14.0",
17
+ "@voltro/env": "0.14.0",
18
+ "@voltro/i18n": "0.14.0",
19
+ "@voltro/ui-shadcn": "0.14.0",
20
+ "@voltro/web": "0.14.0",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.12.0",
25
+ "@voltro/devtools": "0.14.0",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "typescript": "^5.7.0",
@@ -17,7 +17,7 @@ const useSubscription = vi.fn<() => { data: unknown }>()
17
17
  vi.mock('@voltro/web', () => ({ useLoaderData: () => loaderData() }))
18
18
  vi.mock('@voltro/client', () => ({ useSubscription: () => useSubscription() }))
19
19
 
20
- const { default: Home, meta, loader, renderMode } = await import('./index')
20
+ const { default: Home, meta, loader, renderMode } = await import('./index.page')
21
21
 
22
22
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
23
23
 
@@ -11,16 +11,16 @@
11
11
  "test": "voltro test"
12
12
  },
13
13
  "dependencies": {
14
- "@voltro/cli": "0.12.0",
15
- "@voltro/client": "0.12.0",
16
- "@voltro/env": "0.12.0",
17
- "@voltro/i18n": "0.12.0",
18
- "@voltro/web": "0.12.0",
14
+ "@voltro/cli": "0.14.0",
15
+ "@voltro/client": "0.14.0",
16
+ "@voltro/env": "0.14.0",
17
+ "@voltro/i18n": "0.14.0",
18
+ "@voltro/web": "0.14.0",
19
19
  "react": "^19.0.0",
20
20
  "react-dom": "^19.0.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@voltro/devtools": "0.12.0",
23
+ "@voltro/devtools": "0.14.0",
24
24
  "@types/react": "^19.0.0",
25
25
  "@types/react-dom": "^19.0.0",
26
26
  "typescript": "^5.7.0",
@@ -9,8 +9,8 @@
9
9
  import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../../lib/locale'
10
10
  import { posts } from '../../../content/posts'
11
11
 
12
- export { default } from '../../blog/[slug]'
13
- export { renderMode, interactive, loader, meta } from '../../blog/[slug]'
12
+ export { default } from '../../blog/[slug].page'
13
+ export { renderMode, interactive, loader, meta } from '../../blog/[slug].page'
14
14
 
15
15
  export const getStaticPaths = async (): Promise<
16
16
  Array<{ params: { locale: string; slug: string } }>
@@ -4,8 +4,8 @@
4
4
  // The default locale is NOT listed here — it lives at the bare `/`.
5
5
  import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../lib/locale'
6
6
 
7
- export { default } from '../index'
8
- export { renderMode, interactive, meta } from '../index'
7
+ export { default } from '../index.page'
8
+ export { renderMode, interactive, meta } from '../index.page'
9
9
 
10
10
  export const getStaticPaths = async (): Promise<Array<{ params: { locale: string } }>> =>
11
11
  SUPPORTED_LOCALES
@@ -32,8 +32,8 @@ vi.mock('@voltro/i18n', () => ({
32
32
  T: ({ id }: { id: string }) => id,
33
33
  }))
34
34
 
35
- const indexMirror = await import('./index')
36
- const postMirror = await import('./blog/[slug]')
35
+ const indexMirror = await import('./index.page')
36
+ const postMirror = await import('./blog/[slug].page')
37
37
 
38
38
  describe('home mirror — getStaticPaths', () => {
39
39
  test('emits only non-default locales (just /de)', async () => {
@@ -47,7 +47,7 @@ vi.mock('@voltro/i18n', () => ({
47
47
  fill((en as Record<string, string>)[id] ?? id, values),
48
48
  }))
49
49
 
50
- const { default: BlogPost, getStaticPaths, loader, meta } = await import('./[slug]')
50
+ const { default: BlogPost, getStaticPaths, loader, meta } = await import('./[slug].page')
51
51
 
52
52
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
53
53
 
@@ -38,7 +38,7 @@ vi.mock('@voltro/i18n', () => ({
38
38
  fill(catalogs[currentLocale]?.[id] ?? id, values),
39
39
  }))
40
40
 
41
- const { default: Index, meta, renderMode, interactive } = await import('./index')
41
+ const { default: Index, meta, renderMode, interactive } = await import('./index.page')
42
42
 
43
43
  ;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
44
44
 
@@ -1,2 +0,0 @@
1
- import { o as e, s as t } from "./apiBuild-GefjNI5d.js";
2
- export { e as runApiBuild, t as runServeBundleBuild };
@@ -1,2 +0,0 @@
1
- import { o as e } from "./dbCommand-DNrkb58g.js";
2
- export { e as runDbCommand };
@@ -1,3 +0,0 @@
1
- import "./seedRunner-DZmhoqNt.js";
2
- import { d as e, o as t, s as n } from "./dev-d0LjACxE.js";
3
- export { t as loadApiConfig, n as loadDiscovered, e as walk };