@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.
- package/CHANGELOG.md +297 -0
- package/bin/voltro.mjs +6 -1
- package/dist/{apiBuild-BJtiqoOu.js → apiBuild-CPDTJHkH.js} +2 -2
- package/dist/apiBuild-D1UBJ4TM.js +2 -0
- package/dist/bin.js +3 -3
- package/dist/{commands-8A5RU3MW.js → commands-laJDMj2m.js} +2679 -2444
- package/dist/dbCommand-C3R5LrBZ.js +2 -0
- package/dist/{dbCommand-OPMtO0sX.js → dbCommand-DJSxnjPt.js} +2 -2
- package/dist/{dev-DGjEvvkV.js → dev-BOFxC21E.js} +1076 -1013
- package/dist/{dev-HdG7JdSk.js → dev-DOK0w6ZW.js} +1 -1
- package/dist/{fileConventions-Cu0tM-Bl.js → fileConventions-CBNPZVOV.js} +1 -1
- package/dist/frameworkTableAssembly-DRJrAVr1.js +2 -0
- package/dist/{frameworkTableAssembly-BA2bAmYN.js → frameworkTableAssembly-sg41s14F.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{inspectMetrics-CYDSO3za.js → inspectMetrics-D1DmLeJs.js} +491 -478
- package/dist/{serveCommand-C3lq3mFd.js → serveCommand-CxcxHc9Y.js} +322 -322
- package/dist/serveEntry.js +2 -2
- package/dist/{start-BtgatJN3.js → start-Clvz4IJb.js} +379 -379
- package/dist/startEntry.js +2 -2
- package/package.json +17 -17
- package/templates/AGENTS.core.md +62 -9
- package/templates/AGENTS.md +63 -10
- package/templates/agent-docs/_index.md +1 -1
- package/templates/agent-docs/authentication.md +48 -0
- package/templates/agent-docs/cli.md +11 -7
- package/templates/agent-docs/database/migrations.md +3 -3
- package/templates/agent-docs/database/querying.md +6 -2
- package/templates/agent-docs/internationalization.md +3 -3
- package/templates/agent-docs/introduction.md +17 -3
- package/templates/agent-docs/reference.md +4 -4
- package/templates/agent-docs/routing.md +42 -40
- package/templates/agent-docs/schema-driven-ui.md +6 -3
- package/templates/agent-docs/templates/appshells.md +24 -24
- package/templates/agent-docs/whats-new.md +170 -65
- package/templates/apps/api-ai/package.json +7 -7
- package/templates/apps/api-auth/package.json +8 -8
- package/templates/apps/api-backend/package.json +7 -7
- package/templates/apps/api-backend-deactivation/package.json +7 -7
- package/templates/apps/api-backend-mail/package.json +8 -8
- package/templates/apps/api-backend-mariadb/package.json +9 -9
- package/templates/apps/api-backend-storage/package.json +8 -8
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-feature-flags/package.json +9 -9
- package/templates/apps/api-governance/package.json +8 -8
- package/templates/apps/api-kv/package.json +8 -8
- package/templates/apps/api-moderation/package.json +8 -8
- package/templates/apps/api-observability/package.json +8 -8
- package/templates/apps/api-ratelimit/package.json +8 -8
- package/templates/apps/api-rbac/package.json +8 -8
- package/templates/apps/api-rest/package.json +7 -7
- package/templates/apps/api-saas/package.json +11 -11
- package/templates/apps/api-search/package.json +8 -8
- package/templates/apps/api-versioning/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +9 -9
- package/templates/apps/changelog/package.json +6 -6
- package/templates/apps/changelog/src/pages/[locale]/{[slug].page.tsx → [slug]/page.tsx} +4 -4
- package/templates/apps/changelog/src/pages/[locale]/mirrors.test.tsx +2 -2
- package/templates/apps/changelog/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
- package/templates/apps/changelog/src/pages/{[slug].page.test.tsx → [slug]/page.test.tsx} +1 -1
- package/templates/apps/changelog/src/pages/{[slug].page.tsx → [slug]/page.tsx} +2 -2
- package/templates/apps/changelog/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +8 -8
- package/templates/apps/frontend-admin/src/pages/(marketing)/{login.page.test.tsx → login/page.test.tsx} +2 -2
- package/templates/apps/frontend-admin/src/pages/(marketing)/{login.page.tsx → login/page.tsx} +2 -2
- package/templates/apps/frontend-admin/src/pages/(marketing)/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-admin/src/pages/admin/{[entity].page.tsx → [entity]/page.tsx} +1 -1
- package/templates/apps/frontend-admin/src/pages/admin/entity.test.tsx +1 -1
- package/templates/apps/frontend-admin/src/pages/admin/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-app/package.json +8 -8
- package/templates/apps/frontend-app/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-app/src/pages/{schema-ui.page.test.tsx → schema-ui/page.test.tsx} +2 -2
- package/templates/apps/frontend-app/src/pages/{schema-ui.page.tsx → schema-ui/page.tsx} +1 -1
- package/templates/apps/frontend-blank/package.json +7 -7
- package/templates/apps/frontend-blank/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-contact/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
- package/templates/apps/frontend-contact/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-dashboard/package.json +7 -7
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.page.test.tsx → login/page.test.tsx} +2 -2
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.page.tsx → login/page.tsx} +2 -2
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-dashboard/src/pages/dashboard/{settings.page.test.tsx → settings/page.test.tsx} +2 -2
- package/templates/apps/frontend-dashboard/src/pages/dashboard/{settings.page.tsx → settings/page.tsx} +2 -2
- package/templates/apps/frontend-docs/package.json +7 -7
- package/templates/apps/frontend-docs/src/pages/[locale]/docs/{[...slug].page.tsx → [...slug]/page.tsx} +4 -4
- package/templates/apps/frontend-docs/src/pages/[locale]/mirrors.test.tsx +2 -2
- package/templates/apps/frontend-docs/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
- package/templates/apps/frontend-docs/src/pages/docs/{[...slug].page.test.tsx → [...slug]/page.test.tsx} +3 -3
- package/templates/apps/frontend-docs/src/pages/docs/{[...slug].page.tsx → [...slug]/page.tsx} +1 -1
- package/templates/apps/frontend-docs/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-i18n/src/pages/[locale]/{about.page.tsx → about/page.tsx} +3 -3
- package/templates/apps/frontend-i18n/src/pages/[locale]/mirrors.test.tsx +2 -2
- package/templates/apps/frontend-i18n/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
- package/templates/apps/frontend-i18n/src/pages/{about.page.test.tsx → about/page.test.tsx} +3 -3
- package/templates/apps/frontend-i18n/src/pages/{about.page.tsx → about/page.tsx} +1 -1
- package/templates/apps/frontend-i18n/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-landing/package.json +7 -7
- package/templates/apps/frontend-landing/src/pages/[locale]/mirrors.test.tsx +1 -1
- package/templates/apps/frontend-landing/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
- package/templates/apps/frontend-landing/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-spa/package.json +7 -7
- package/templates/apps/frontend-spa/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-ssr/package.json +7 -7
- package/templates/apps/frontend-ssr/src/pages/{feed.page.test.tsx → feed/page.test.tsx} +2 -2
- package/templates/apps/frontend-ssr/src/pages/{feed.page.tsx → feed/page.tsx} +1 -1
- package/templates/apps/frontend-ssr/src/pages/{feed-swr.page.test.tsx → feed-swr/page.test.tsx} +2 -2
- package/templates/apps/frontend-ssr/src/pages/{feed-swr.page.tsx → feed-swr/page.tsx} +1 -1
- package/templates/apps/frontend-ssr/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-ssr-api/package.json +8 -8
- package/templates/apps/frontend-ssr-api/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/templates/apps/frontend-static-blog/package.json +6 -6
- package/templates/apps/frontend-static-blog/src/pages/[locale]/blog/{[slug].page.tsx → [slug]/page.tsx} +4 -4
- package/templates/apps/frontend-static-blog/src/pages/[locale]/mirrors.test.tsx +2 -2
- package/templates/apps/frontend-static-blog/src/pages/[locale]/{index.page.tsx → page.tsx} +2 -2
- package/templates/apps/frontend-static-blog/src/pages/blog/{[slug].page.test.tsx → [slug]/page.test.tsx} +3 -3
- package/templates/apps/frontend-static-blog/src/pages/blog/{[slug].page.tsx → [slug]/page.tsx} +3 -3
- package/templates/apps/frontend-static-blog/src/pages/{index.page.test.tsx → page.test.tsx} +1 -1
- package/dist/apiBuild-BOczx9-m.js +0 -2
- package/dist/dbCommand-DNQ6l-su.js +0 -2
- package/dist/frameworkTableAssembly-D1zJSgOU.js +0 -2
- /package/templates/apps/changelog/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-admin/src/pages/(marketing)/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-admin/src/pages/admin/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-app/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-blank/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-contact/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-dashboard/src/pages/(marketing)/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-docs/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-i18n/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-landing/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-spa/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-ssr/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-ssr-api/src/pages/{index.page.tsx → page.tsx} +0 -0
- /package/templates/apps/frontend-static-blog/src/pages/{index.page.tsx → page.tsx} +0 -0
|
@@ -11,18 +11,18 @@
|
|
|
11
11
|
"typecheck": "tsc --noEmit"
|
|
12
12
|
},
|
|
13
13
|
"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.
|
|
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.
|
|
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",
|
|
@@ -29,7 +29,7 @@ vi.mock('@voltro/client', () => ({
|
|
|
29
29
|
useMutation: (...a: unknown[]) => useMutation(...(a as [])),
|
|
30
30
|
}))
|
|
31
31
|
|
|
32
|
-
const { default: IndexPage } = await import('./
|
|
32
|
+
const { default: IndexPage } = await import('./page')
|
|
33
33
|
|
|
34
34
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
35
35
|
|
package/templates/apps/frontend-app/src/pages/{schema-ui.page.test.tsx → schema-ui/page.test.tsx}
RENAMED
|
@@ -10,7 +10,7 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
|
|
|
10
10
|
import { act, createElement, type ReactNode } from 'react'
|
|
11
11
|
import { createRoot, type Root } from 'react-dom/client'
|
|
12
12
|
import { I18nProvider } from '@voltro/i18n'
|
|
13
|
-
import enCatalog from '
|
|
13
|
+
import enCatalog from '../../locales/en'
|
|
14
14
|
|
|
15
15
|
interface AutoFormProps {
|
|
16
16
|
api: string
|
|
@@ -41,7 +41,7 @@ vi.mock('@voltro/web', () => ({
|
|
|
41
41
|
createElement('span', { 'data-testid': `field-${name}` }, name),
|
|
42
42
|
}))
|
|
43
43
|
|
|
44
|
-
const { default: SchemaUiPage } = await import('./
|
|
44
|
+
const { default: SchemaUiPage } = await import('./page')
|
|
45
45
|
|
|
46
46
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
47
47
|
|
|
@@ -11,7 +11,7 @@ import { AutoForm, DataTable, Field } from '@voltro/web'
|
|
|
11
11
|
import type { PageMeta } from '@voltro/web'
|
|
12
12
|
import type { ReactNode } from 'react'
|
|
13
13
|
import { T, useTFn } from '@voltro/i18n'
|
|
14
|
-
import { getCatalog } from '
|
|
14
|
+
import { getCatalog } from '../../locales/index'
|
|
15
15
|
|
|
16
16
|
const TENANT = 'acme'
|
|
17
17
|
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"typecheck": "tsc --noEmit"
|
|
12
12
|
},
|
|
13
13
|
"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.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/ui-shadcn": "0.18.0",
|
|
19
|
+
"@voltro/web": "0.18.0",
|
|
20
20
|
"react": "^19.0.0",
|
|
21
21
|
"react-dom": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
24
|
+
"@voltro/devtools": "0.18.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 Index from './
|
|
15
|
+
import Index from './page'
|
|
16
16
|
|
|
17
17
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
18
18
|
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@effect/platform": "^0.96.1",
|
|
17
|
-
"@voltro/cli": "0.
|
|
18
|
-
"@voltro/client": "0.
|
|
19
|
-
"@voltro/env": "0.
|
|
20
|
-
"@voltro/i18n": "0.
|
|
21
|
-
"@voltro/serverless": "0.
|
|
22
|
-
"@voltro/web": "0.
|
|
17
|
+
"@voltro/cli": "0.18.0",
|
|
18
|
+
"@voltro/client": "0.18.0",
|
|
19
|
+
"@voltro/env": "0.18.0",
|
|
20
|
+
"@voltro/i18n": "0.18.0",
|
|
21
|
+
"@voltro/serverless": "0.18.0",
|
|
22
|
+
"@voltro/web": "0.18.0",
|
|
23
23
|
"effect": "^3.21.2",
|
|
24
24
|
"react": "^19.0.0",
|
|
25
25
|
"react-dom": "^19.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@voltro/devtools": "0.
|
|
28
|
+
"@voltro/devtools": "0.18.0",
|
|
29
29
|
"@types/react": "^19.0.0",
|
|
30
30
|
"@types/react-dom": "^19.0.0",
|
|
31
31
|
"typescript": "^5.7.0",
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
// locale is NOT listed here — it lives at the bare `/`.
|
|
6
6
|
import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../lib/locale'
|
|
7
7
|
|
|
8
|
-
export { default } from '../
|
|
9
|
-
export { renderMode, interactive, meta } from '../
|
|
8
|
+
export { default } from '../page'
|
|
9
|
+
export { renderMode, interactive, meta } from '../page'
|
|
10
10
|
|
|
11
11
|
export const getStaticPaths = async (): Promise<Array<{ params: { locale: string } }>> =>
|
|
12
12
|
SUPPORTED_LOCALES
|
|
@@ -19,7 +19,7 @@ vi.mock('../components/ContactForm.island', () => ({
|
|
|
19
19
|
default: () => createElement('div', { 'data-testid': 'contact-form' }, 'form'),
|
|
20
20
|
}))
|
|
21
21
|
|
|
22
|
-
const { default: Index, meta, renderMode, interactive } = await import('./
|
|
22
|
+
const { default: Index, meta, renderMode, interactive } = await import('./page')
|
|
23
23
|
|
|
24
24
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
25
25
|
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"test": "voltro test"
|
|
12
12
|
},
|
|
13
13
|
"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.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/ui-shadcn": "0.18.0",
|
|
19
|
+
"@voltro/web": "0.18.0",
|
|
20
20
|
"react": "^19.0.0",
|
|
21
21
|
"react-dom": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
24
|
+
"@voltro/devtools": "0.18.0",
|
|
25
25
|
"@types/react": "^19.0.0",
|
|
26
26
|
"@types/react-dom": "^19.0.0",
|
|
27
27
|
"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 '
|
|
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('./
|
|
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
|
|
package/templates/apps/frontend-dashboard/src/pages/(marketing)/{login.page.tsx → login/page.tsx}
RENAMED
|
@@ -6,8 +6,8 @@ import type { ReactNode } from 'react'
|
|
|
6
6
|
import type { PageMeta } from '@voltro/web'
|
|
7
7
|
import { useNavigate } from '@voltro/web'
|
|
8
8
|
import { T } from '@voltro/i18n'
|
|
9
|
-
import { getCatalog } from '
|
|
10
|
-
import { SESSION_COOKIE } from '
|
|
9
|
+
import { getCatalog } from '../../../locales/index'
|
|
10
|
+
import { SESSION_COOKIE } from '../../../lib/auth'
|
|
11
11
|
|
|
12
12
|
export const renderMode = 'static' as const
|
|
13
13
|
|
|
@@ -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('./
|
|
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
|
|
package/templates/apps/frontend-dashboard/src/pages/dashboard/{index.page.test.tsx → page.test.tsx}
RENAMED
|
@@ -10,7 +10,7 @@ import { createRoot, type Root } from 'react-dom/client'
|
|
|
10
10
|
import { I18nProvider } from '@voltro/i18n'
|
|
11
11
|
import enCatalog from '../../locales/en'
|
|
12
12
|
|
|
13
|
-
const { default: Overview, meta, renderMode } = await import('./
|
|
13
|
+
const { default: Overview, meta, renderMode } = await import('./page')
|
|
14
14
|
|
|
15
15
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
16
16
|
|
|
@@ -8,9 +8,9 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
|
|
|
8
8
|
import { act, createElement, type ReactNode } from 'react'
|
|
9
9
|
import { createRoot, type Root } from 'react-dom/client'
|
|
10
10
|
import { I18nProvider } from '@voltro/i18n'
|
|
11
|
-
import enCatalog from '
|
|
11
|
+
import enCatalog from '../../../locales/en'
|
|
12
12
|
|
|
13
|
-
const { default: Settings, meta, renderMode } = await import('./
|
|
13
|
+
const { default: Settings, meta, renderMode } = await import('./page')
|
|
14
14
|
|
|
15
15
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
16
16
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
import type { ReactNode } from 'react'
|
|
6
6
|
import type { PageMeta } from '@voltro/web'
|
|
7
7
|
import { T } from '@voltro/i18n'
|
|
8
|
-
import { getCatalog } from '
|
|
9
|
-
import { SESSION_COOKIE } from '
|
|
8
|
+
import { getCatalog } from '../../../locales/index'
|
|
9
|
+
import { SESSION_COOKIE } from '../../../lib/auth'
|
|
10
10
|
|
|
11
11
|
export const renderMode = 'ssr' as const
|
|
12
12
|
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"test": "voltro test"
|
|
12
12
|
},
|
|
13
13
|
"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.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/ui-shadcn": "0.18.0",
|
|
19
|
+
"@voltro/web": "0.18.0",
|
|
20
20
|
"react": "^19.0.0",
|
|
21
21
|
"react-dom": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
24
|
+
"@voltro/devtools": "0.18.0",
|
|
25
25
|
"@types/react": "^19.0.0",
|
|
26
26
|
"@types/react-dom": "^19.0.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
// under a DYNAMIC locale segment, so `getStaticPaths` must emit the
|
|
5
5
|
// CROSS-PRODUCT of every non-default locale × every doc slug — otherwise the
|
|
6
6
|
// German docs URLs are never enumerated for pre-render.
|
|
7
|
-
import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '
|
|
8
|
-
import { DOCS } from '
|
|
7
|
+
import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../../../lib/locale'
|
|
8
|
+
import { DOCS } from '../../../docs/[...slug]/page'
|
|
9
9
|
|
|
10
|
-
export { default } from '
|
|
11
|
-
export { renderMode, interactive, meta } from '
|
|
10
|
+
export { default } from '../../../docs/[...slug]/page'
|
|
11
|
+
export { renderMode, interactive, meta } from '../../../docs/[...slug]/page'
|
|
12
12
|
|
|
13
13
|
export const getStaticPaths = async (): Promise<
|
|
14
14
|
Array<{ params: { locale: string; slug: string } }>
|
|
@@ -30,8 +30,8 @@ vi.mock('@voltro/i18n', () => ({
|
|
|
30
30
|
T: ({ id }: { id: string }) => id,
|
|
31
31
|
}))
|
|
32
32
|
|
|
33
|
-
const indexMirror = await import('./
|
|
34
|
-
const slugMirror = await import('./docs/[...slug]
|
|
33
|
+
const indexMirror = await import('./page')
|
|
34
|
+
const slugMirror = await import('./docs/[...slug]/page')
|
|
35
35
|
|
|
36
36
|
describe('home mirror — getStaticPaths', () => {
|
|
37
37
|
test('emits only non-default locales (just /de)', async () => {
|
|
@@ -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 '../
|
|
8
|
-
export { renderMode, interactive, meta } from '../
|
|
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
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
|
|
10
10
|
import { act, createElement, type ReactNode } from 'react'
|
|
11
11
|
import { createRoot, type Root } from 'react-dom/client'
|
|
12
|
-
import en from '
|
|
13
|
-
import de from '
|
|
12
|
+
import en from '../../../locales/en'
|
|
13
|
+
import de from '../../../locales/de'
|
|
14
14
|
|
|
15
15
|
const params = vi.fn<() => Record<string, string>>()
|
|
16
16
|
vi.mock('@voltro/web', () => ({ useParams: () => params() }))
|
|
@@ -37,7 +37,7 @@ vi.mock('@voltro/i18n', () => ({
|
|
|
37
37
|
fill(catalogs[currentLocale]?.[id] ?? id, values),
|
|
38
38
|
}))
|
|
39
39
|
|
|
40
|
-
const { default: DocPage, getStaticPaths, meta, renderMode, interactive } = await import('./
|
|
40
|
+
const { default: DocPage, getStaticPaths, meta, renderMode, interactive } = await import('./page')
|
|
41
41
|
|
|
42
42
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
43
43
|
|
package/templates/apps/frontend-docs/src/pages/docs/{[...slug].page.tsx → [...slug]/page.tsx}
RENAMED
|
@@ -12,7 +12,7 @@ import type { ReactNode } from 'react'
|
|
|
12
12
|
import type { PageMeta } from '@voltro/web'
|
|
13
13
|
import { useParams } from '@voltro/web'
|
|
14
14
|
import { T, useTFn } from '@voltro/i18n'
|
|
15
|
-
import { getCatalog, type Messages } from '
|
|
15
|
+
import { getCatalog, type Messages } from '../../../lib/locale'
|
|
16
16
|
|
|
17
17
|
export const renderMode = 'static' as const
|
|
18
18
|
export const interactive = 'none' as const
|
|
@@ -32,7 +32,7 @@ vi.mock('@voltro/i18n', () => ({
|
|
|
32
32
|
fill(catalogs[currentLocale]?.[id] ?? id, values),
|
|
33
33
|
}))
|
|
34
34
|
|
|
35
|
-
const { default: Index, meta, renderMode, interactive } = await import('./
|
|
35
|
+
const { default: Index, meta, renderMode, interactive } = await import('./page')
|
|
36
36
|
|
|
37
37
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
38
38
|
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"test": "voltro test"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/client": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/i18n": "0.
|
|
18
|
-
"@voltro/web": "0.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/web": "0.18.0",
|
|
19
19
|
"react": "^19.0.0",
|
|
20
20
|
"react-dom": "^19.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@voltro/devtools": "0.
|
|
23
|
+
"@voltro/devtools": "0.18.0",
|
|
24
24
|
"@types/react": "^19.0.0",
|
|
25
25
|
"@types/react-dom": "^19.0.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Locale mirror of `/about` → renders `/de/about`. Same pattern as the
|
|
2
2
|
// home mirror: re-export the bare page, enumerate non-default locales.
|
|
3
|
-
import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '
|
|
3
|
+
import { SUPPORTED_LOCALES, DEFAULT_LOCALE } from '../../../lib/locale'
|
|
4
4
|
|
|
5
|
-
export { default } from '
|
|
6
|
-
export { renderMode, meta } from '
|
|
5
|
+
export { default } from '../../about/page'
|
|
6
|
+
export { renderMode, meta } from '../../about/page'
|
|
7
7
|
|
|
8
8
|
export const getStaticPaths = async (): Promise<Array<{ params: { locale: string } }>> =>
|
|
9
9
|
SUPPORTED_LOCALES
|
|
@@ -22,8 +22,8 @@ vi.mock('@voltro/i18n', () => ({
|
|
|
22
22
|
T: ({ id }: { id: string }) => id,
|
|
23
23
|
}))
|
|
24
24
|
|
|
25
|
-
const indexMirror = await import('./
|
|
26
|
-
const aboutMirror = await import('./about
|
|
25
|
+
const indexMirror = await import('./page')
|
|
26
|
+
const aboutMirror = await import('./about/page')
|
|
27
27
|
|
|
28
28
|
describe('home mirror — getStaticPaths', () => {
|
|
29
29
|
test('emits only non-default locales (just /de)', async () => {
|
|
@@ -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 '../
|
|
8
|
-
export { renderMode, meta } from '../
|
|
7
|
+
export { default } from '../page'
|
|
8
|
+
export { renderMode, meta } from '../page'
|
|
9
9
|
|
|
10
10
|
export const getStaticPaths = async (): Promise<Array<{ params: { locale: string } }>> =>
|
|
11
11
|
SUPPORTED_LOCALES
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import { afterEach, describe, expect, test, vi } from 'vitest'
|
|
8
8
|
import { act, createElement, type ReactNode } from 'react'
|
|
9
9
|
import { createRoot, type Root } from 'react-dom/client'
|
|
10
|
-
import en from '
|
|
11
|
-
import de from '
|
|
10
|
+
import en from '../../locales/en'
|
|
11
|
+
import de from '../../locales/de'
|
|
12
12
|
|
|
13
13
|
const catalogs: Record<string, Record<string, string>> = { en, de }
|
|
14
14
|
let currentLocale = 'en'
|
|
@@ -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('./
|
|
27
|
+
const { default: About, meta, renderMode } = await import('./page')
|
|
28
28
|
|
|
29
29
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
30
30
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { ReactNode } from 'react'
|
|
6
6
|
import type { PageMeta } from '@voltro/web'
|
|
7
7
|
import { T } from '@voltro/i18n'
|
|
8
|
-
import { getCatalog } from '
|
|
8
|
+
import { getCatalog } from '../../lib/locale'
|
|
9
9
|
|
|
10
10
|
export const renderMode = 'static' as const
|
|
11
11
|
|
|
@@ -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('./
|
|
41
|
+
const { default: Index, meta, renderMode } = await import('./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.
|
|
15
|
-
"@voltro/client": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/i18n": "0.
|
|
18
|
-
"@voltro/ui-shadcn": "0.
|
|
19
|
-
"@voltro/web": "0.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/ui-shadcn": "0.18.0",
|
|
19
|
+
"@voltro/web": "0.18.0",
|
|
20
20
|
"react": "^19.0.0",
|
|
21
21
|
"react-dom": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
24
|
+
"@voltro/devtools": "0.18.0",
|
|
25
25
|
"@types/react": "^19.0.0",
|
|
26
26
|
"@types/react-dom": "^19.0.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
@@ -20,7 +20,7 @@ vi.mock('@voltro/i18n', () => ({
|
|
|
20
20
|
T: ({ id }: { id: string }) => id,
|
|
21
21
|
}))
|
|
22
22
|
|
|
23
|
-
const indexMirror = await import('./
|
|
23
|
+
const indexMirror = await import('./page')
|
|
24
24
|
|
|
25
25
|
describe('home mirror — getStaticPaths', () => {
|
|
26
26
|
test('emits only non-default locales (just /de)', async () => {
|
|
@@ -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 '../
|
|
8
|
-
export { renderMode, interactive, meta } from '../
|
|
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
|
|
@@ -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('./
|
|
42
|
+
const { default: Index, meta, renderMode, interactive } = await import('./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.
|
|
15
|
-
"@voltro/client": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/i18n": "0.
|
|
18
|
-
"@voltro/ui-shadcn": "0.
|
|
19
|
-
"@voltro/web": "0.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/ui-shadcn": "0.18.0",
|
|
19
|
+
"@voltro/web": "0.18.0",
|
|
20
20
|
"react": "^19.0.0",
|
|
21
21
|
"react-dom": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
24
|
+
"@voltro/devtools": "0.18.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 './
|
|
15
|
+
import BillSplitter, { renderMode } from './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.
|
|
15
|
-
"@voltro/client": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/i18n": "0.
|
|
18
|
-
"@voltro/ui-shadcn": "0.
|
|
19
|
-
"@voltro/web": "0.
|
|
14
|
+
"@voltro/cli": "0.18.0",
|
|
15
|
+
"@voltro/client": "0.18.0",
|
|
16
|
+
"@voltro/env": "0.18.0",
|
|
17
|
+
"@voltro/i18n": "0.18.0",
|
|
18
|
+
"@voltro/ui-shadcn": "0.18.0",
|
|
19
|
+
"@voltro/web": "0.18.0",
|
|
20
20
|
"react": "^19.0.0",
|
|
21
21
|
"react-dom": "^19.0.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/devtools": "0.
|
|
24
|
+
"@voltro/devtools": "0.18.0",
|
|
25
25
|
"@types/react": "^19.0.0",
|
|
26
26
|
"@types/react-dom": "^19.0.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
@@ -7,12 +7,12 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
|
|
|
7
7
|
import { act, createElement, type ReactNode } from 'react'
|
|
8
8
|
import { createRoot, type Root } from 'react-dom/client'
|
|
9
9
|
import { I18nProvider } from '@voltro/i18n'
|
|
10
|
-
import enCatalog from '
|
|
10
|
+
import enCatalog from '../../locales/en'
|
|
11
11
|
|
|
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('./
|
|
15
|
+
const { default: Feed, meta, loader, renderMode, revalidate, tenantAware } = await import('./page')
|
|
16
16
|
|
|
17
17
|
;(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true
|
|
18
18
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import type { ReactNode } from 'react'
|
|
11
11
|
import { useLoaderData, type LoaderFn, type PageMeta } from '@voltro/web'
|
|
12
12
|
import { T } from '@voltro/i18n'
|
|
13
|
-
import { getCatalog } from '
|
|
13
|
+
import { getCatalog } from '../../locales/index'
|
|
14
14
|
|
|
15
15
|
export const renderMode = 'isr' as const
|
|
16
16
|
|