@analogjs/vite-plugin-nitro 2.5.0-beta.9 → 2.5.1-beta.1
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/package.json +2 -3
- package/src/index.d.ts +1 -1
- package/src/index.js.map +1 -1
- package/src/lib/build-sitemap.d.ts +16 -2
- package/src/lib/build-sitemap.js +65 -6
- package/src/lib/build-sitemap.js.map +1 -1
- package/src/lib/options.d.ts +27 -0
- package/src/lib/plugins/dev-server-plugin.js +12 -1
- package/src/lib/plugins/dev-server-plugin.js.map +1 -1
- package/src/lib/utils/get-content-files.d.ts +1 -1
- package/src/lib/utils/get-content-files.js +17 -4
- package/src/lib/utils/get-content-files.js.map +1 -1
- package/src/lib/utils/i18n-prerender.d.ts +36 -0
- package/src/lib/utils/i18n-prerender.js +80 -0
- package/src/lib/utils/i18n-prerender.js.map +1 -0
- package/src/lib/utils/register-i18n-watcher.d.ts +15 -0
- package/src/lib/utils/register-i18n-watcher.js +25 -0
- package/src/lib/utils/register-i18n-watcher.js.map +1 -0
- package/src/lib/vite-plugin-nitro.js +22 -3
- package/src/lib/vite-plugin-nitro.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/vite-plugin-nitro",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.1-beta.1",
|
|
4
4
|
"description": "A Vite plugin for adding a nitro API server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Brandon Roberts <robertsbt@gmail.com>",
|
|
@@ -44,8 +44,7 @@
|
|
|
44
44
|
"@analogjs/storybook-angular",
|
|
45
45
|
"@analogjs/vite-plugin-angular",
|
|
46
46
|
"@analogjs/vite-plugin-nitro",
|
|
47
|
-
"@analogjs/vitest-angular"
|
|
48
|
-
"@analogjs/angular-compiler"
|
|
47
|
+
"@analogjs/vitest-angular"
|
|
49
48
|
],
|
|
50
49
|
"migrations": "./migrations/migration.json"
|
|
51
50
|
},
|
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { nitro } from './lib/vite-plugin-nitro.js';
|
|
2
|
-
export { Options, SitemapConfig, PrerenderRouteConfig, PrerenderContentDir, PrerenderContentFile, } from './lib/options.js';
|
|
2
|
+
export { Options, SitemapConfig, PrerenderRouteConfig, PrerenderContentDir, PrerenderContentFile, I18nPrerenderOptions, } from './lib/options.js';
|
|
3
3
|
declare module 'nitropack' {
|
|
4
4
|
interface NitroRouteConfig {
|
|
5
5
|
ssr?: boolean;
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/vite-plugin-nitro/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/vite-plugin-nitro/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAoBnD,eAAe,KAAK,CAAC"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import { UserConfig } from 'vite';
|
|
2
|
-
import { PrerenderSitemapConfig, SitemapConfig } from './options';
|
|
2
|
+
import { I18nPrerenderOptions, PrerenderSitemapConfig, SitemapConfig } from './options';
|
|
3
3
|
export type PagesJson = {
|
|
4
4
|
page: string;
|
|
5
5
|
lastMod: string;
|
|
6
6
|
changefreq?: string;
|
|
7
7
|
priority?: string;
|
|
8
8
|
};
|
|
9
|
-
export declare function buildSitemap(config: UserConfig, sitemapConfig: SitemapConfig, routes: (string | undefined)[] | (() => Promise<(string | undefined)[]>), outputDir: string, routeSitemaps: Record<string, PrerenderSitemapConfig | (() => PrerenderSitemapConfig) | undefined
|
|
9
|
+
export declare function buildSitemap(config: UserConfig, sitemapConfig: SitemapConfig, routes: (string | undefined)[] | (() => Promise<(string | undefined)[]>), outputDir: string, routeSitemaps: Record<string, PrerenderSitemapConfig | (() => PrerenderSitemapConfig) | undefined>, i18nOptions?: I18nPrerenderOptions): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Generates hreflang alternate URLs for a given page URL.
|
|
12
|
+
* For a URL like `https://example.com/fr/about`, it produces alternates
|
|
13
|
+
* for all configured locales.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getHreflangAlternates(pageUrl: string, host: string, i18n: I18nPrerenderOptions): {
|
|
16
|
+
locale: string;
|
|
17
|
+
href: string;
|
|
18
|
+
}[];
|
|
19
|
+
/**
|
|
20
|
+
* Strips a locale prefix from a URL path.
|
|
21
|
+
* E.g., '/fr/about' -> '/about', '/en' -> '/'
|
|
22
|
+
*/
|
|
23
|
+
export declare function stripLocalePrefix(path: string, locales: string[]): string;
|
package/src/lib/build-sitemap.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writeFileSync } from 'node:fs';
|
|
2
2
|
import { create } from 'xmlbuilder2';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
|
-
export async function buildSitemap(config, sitemapConfig, routes, outputDir, routeSitemaps) {
|
|
4
|
+
export async function buildSitemap(config, sitemapConfig, routes, outputDir, routeSitemaps, i18nOptions) {
|
|
5
5
|
const routeList = await optionHasRoutes(routes);
|
|
6
6
|
if (routeList.length) {
|
|
7
7
|
const slash = checkSlash(sitemapConfig.host || '');
|
|
@@ -16,7 +16,8 @@ export async function buildSitemap(config, sitemapConfig, routes, outputDir, rou
|
|
|
16
16
|
priority: props?.priority,
|
|
17
17
|
};
|
|
18
18
|
});
|
|
19
|
-
const
|
|
19
|
+
const hasI18n = i18nOptions && i18nOptions.locales.length > 1;
|
|
20
|
+
const sitemap = createXml('urlset', hasI18n);
|
|
20
21
|
for (const item of sitemapData) {
|
|
21
22
|
const page = sitemap.ele('url');
|
|
22
23
|
page.ele('loc').txt(item.page);
|
|
@@ -27,6 +28,17 @@ export async function buildSitemap(config, sitemapConfig, routes, outputDir, rou
|
|
|
27
28
|
if (item.priority) {
|
|
28
29
|
page.ele('priority').txt(item.priority);
|
|
29
30
|
}
|
|
31
|
+
// Add hreflang alternate links for each locale
|
|
32
|
+
if (hasI18n) {
|
|
33
|
+
const alternates = getHreflangAlternates(item.page, sitemapConfig.host, i18nOptions);
|
|
34
|
+
for (const alt of alternates) {
|
|
35
|
+
page
|
|
36
|
+
.ele('xhtml:link')
|
|
37
|
+
.att('rel', 'alternate')
|
|
38
|
+
.att('hreflang', alt.locale)
|
|
39
|
+
.att('href', alt.href);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
30
42
|
}
|
|
31
43
|
const mapPath = `${resolve(outputDir)}/sitemap.xml`;
|
|
32
44
|
try {
|
|
@@ -38,11 +50,58 @@ export async function buildSitemap(config, sitemapConfig, routes, outputDir, rou
|
|
|
38
50
|
}
|
|
39
51
|
}
|
|
40
52
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Generates hreflang alternate URLs for a given page URL.
|
|
55
|
+
* For a URL like `https://example.com/fr/about`, it produces alternates
|
|
56
|
+
* for all configured locales.
|
|
57
|
+
*/
|
|
58
|
+
export function getHreflangAlternates(pageUrl, host, i18n) {
|
|
59
|
+
const alternates = [];
|
|
60
|
+
const normalizedHost = host.replace(/\/+$/, '');
|
|
61
|
+
// Extract the path portion after the host
|
|
62
|
+
const path = pageUrl.replace(normalizedHost, '');
|
|
63
|
+
// Strip locale prefix to get the base path
|
|
64
|
+
const basePath = stripLocalePrefix(path, i18n.locales);
|
|
65
|
+
for (const locale of i18n.locales) {
|
|
66
|
+
const localizedPath = basePath === '/' || basePath === ''
|
|
67
|
+
? `/${locale}`
|
|
68
|
+
: `/${locale}${basePath}`;
|
|
69
|
+
alternates.push({
|
|
70
|
+
locale,
|
|
71
|
+
href: `${normalizedHost}${localizedPath}`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Add x-default pointing to the default locale variant
|
|
75
|
+
const defaultPath = basePath === '/' || basePath === ''
|
|
76
|
+
? `/${i18n.defaultLocale}`
|
|
77
|
+
: `/${i18n.defaultLocale}${basePath}`;
|
|
78
|
+
alternates.push({
|
|
79
|
+
locale: 'x-default',
|
|
80
|
+
href: `${normalizedHost}${defaultPath}`,
|
|
81
|
+
});
|
|
82
|
+
return alternates;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Strips a locale prefix from a URL path.
|
|
86
|
+
* E.g., '/fr/about' -> '/about', '/en' -> '/'
|
|
87
|
+
*/
|
|
88
|
+
export function stripLocalePrefix(path, locales) {
|
|
89
|
+
const segments = path.split('/').filter(Boolean);
|
|
90
|
+
if (segments.length > 0 && locales.includes(segments[0])) {
|
|
91
|
+
const rest = segments.slice(1).join('/');
|
|
92
|
+
return rest ? `/${rest}` : '/';
|
|
93
|
+
}
|
|
94
|
+
return path || '/';
|
|
95
|
+
}
|
|
96
|
+
function createXml(elementName, includeXhtml = false) {
|
|
97
|
+
const attrs = {
|
|
44
98
|
xmlns: 'https://www.sitemaps.org/schemas/sitemap/0.9',
|
|
45
|
-
}
|
|
99
|
+
};
|
|
100
|
+
if (includeXhtml) {
|
|
101
|
+
attrs['xmlns:xhtml'] = 'https://www.w3.org/1999/xhtml';
|
|
102
|
+
}
|
|
103
|
+
return create({ version: '1.0', encoding: 'UTF-8' })
|
|
104
|
+
.ele(elementName, attrs)
|
|
46
105
|
.com(`This file was automatically generated by Analog.`);
|
|
47
106
|
}
|
|
48
107
|
function checkSlash(host) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-sitemap.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/build-sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"build-sitemap.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/build-sitemap.ts"],"names":[],"mappings":"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"}
|
package/src/lib/options.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import { PrerenderRoute } from 'nitropack';
|
|
2
|
+
export interface I18nPrerenderOptions {
|
|
3
|
+
/**
|
|
4
|
+
* The default/source locale for the application.
|
|
5
|
+
*/
|
|
6
|
+
defaultLocale: string;
|
|
7
|
+
/**
|
|
8
|
+
* List of supported locale identifiers.
|
|
9
|
+
* Each route will be prerendered once per locale with a locale prefix.
|
|
10
|
+
*/
|
|
11
|
+
locales: string[];
|
|
12
|
+
}
|
|
2
13
|
export interface Options {
|
|
3
14
|
ssr?: boolean;
|
|
4
15
|
ssrBuildDir?: string;
|
|
@@ -36,6 +47,12 @@ export interface Options {
|
|
|
36
47
|
* for API routes.
|
|
37
48
|
*/
|
|
38
49
|
useAPIMiddleware?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* i18n configuration for locale-aware prerendering.
|
|
52
|
+
* When set, routes are expanded with locale prefixes and
|
|
53
|
+
* prerendered HTML receives the appropriate `lang` attribute.
|
|
54
|
+
*/
|
|
55
|
+
i18n?: I18nPrerenderOptions;
|
|
39
56
|
}
|
|
40
57
|
export interface PrerenderOptions {
|
|
41
58
|
/**
|
|
@@ -79,6 +96,14 @@ export interface PrerenderContentDir {
|
|
|
79
96
|
* @returns the markdown content string to output, or `false` to skip outputting for this file
|
|
80
97
|
*/
|
|
81
98
|
outputSourceFile?: (file: PrerenderContentFile) => string | false;
|
|
99
|
+
/**
|
|
100
|
+
* Recurse into subdirectories of `contentDir` when discovering files.
|
|
101
|
+
* When enabled, the matching file's directory relative to `contentDir`
|
|
102
|
+
* is exposed via `PrerenderContentFile.relativePath` so transforms can
|
|
103
|
+
* disambiguate identically-named files across subdirectories.
|
|
104
|
+
* @default false
|
|
105
|
+
*/
|
|
106
|
+
recursive?: boolean;
|
|
82
107
|
}
|
|
83
108
|
/**
|
|
84
109
|
* @param path the path to the content file
|
|
@@ -86,6 +111,7 @@ export interface PrerenderContentDir {
|
|
|
86
111
|
* @param extension the file extension
|
|
87
112
|
* @param attributes the frontmatter attributes extracted from the frontmatter section of the file
|
|
88
113
|
* @param content the raw file content including frontmatter
|
|
114
|
+
* @param relativePath when `recursive` is enabled, the directory of the file relative to `contentDir` (empty string for files at the top level)
|
|
89
115
|
* @returns a string with the route should be returned (e. g. `/blog/<slug>`) or the value `false`, when the route should not be prerendered.
|
|
90
116
|
*/
|
|
91
117
|
export interface PrerenderContentFile {
|
|
@@ -94,6 +120,7 @@ export interface PrerenderContentFile {
|
|
|
94
120
|
name: string;
|
|
95
121
|
extension: string;
|
|
96
122
|
content: string;
|
|
123
|
+
relativePath?: string;
|
|
97
124
|
}
|
|
98
125
|
export interface PrerenderSitemapConfig {
|
|
99
126
|
lastmod?: string;
|
|
@@ -7,6 +7,8 @@ import { createEvent, sendWebResponse } from 'h3';
|
|
|
7
7
|
import { createRouter as createRadixRouter, toRouteMatcher } from 'radix3';
|
|
8
8
|
import { defu } from 'defu';
|
|
9
9
|
import { registerDevServerMiddleware } from '../utils/register-dev-middleware.js';
|
|
10
|
+
import { registerI18nWatcher } from '../utils/register-i18n-watcher.js';
|
|
11
|
+
import { detectLocaleFromRoute, setHtmlLang } from '../utils/i18n-prerender.js';
|
|
10
12
|
export function devServerPlugin(options) {
|
|
11
13
|
const workspaceRoot = options?.workspaceRoot || process.cwd();
|
|
12
14
|
const sourceRoot = options?.sourceRoot ?? 'src';
|
|
@@ -35,6 +37,9 @@ export function devServerPlugin(options) {
|
|
|
35
37
|
return async () => {
|
|
36
38
|
remove_html_middlewares(viteServer.middlewares);
|
|
37
39
|
registerDevServerMiddleware(root, sourceRoot, viteServer);
|
|
40
|
+
if (options.i18n) {
|
|
41
|
+
registerI18nWatcher(viteServer);
|
|
42
|
+
}
|
|
38
43
|
viteServer.middlewares.use(async (req, res) => {
|
|
39
44
|
let template = readFileSync(resolve(viteServer.config.root, index), 'utf-8');
|
|
40
45
|
template = await viteServer.transformIndexHtml(req.originalUrl, template);
|
|
@@ -57,8 +62,14 @@ export function devServerPlugin(options) {
|
|
|
57
62
|
sendWebResponse(createEvent(req, res), result);
|
|
58
63
|
return;
|
|
59
64
|
}
|
|
65
|
+
// Inject lang attribute when i18n is configured
|
|
66
|
+
let html = typeof result === 'string' ? result : template;
|
|
67
|
+
if (options.i18n) {
|
|
68
|
+
const locale = detectLocaleFromRoute(req.originalUrl, options.i18n);
|
|
69
|
+
html = setHtmlLang(html, locale);
|
|
70
|
+
}
|
|
60
71
|
res.setHeader('Content-Type', 'text/html');
|
|
61
|
-
res.end(
|
|
72
|
+
res.end(html);
|
|
62
73
|
}
|
|
63
74
|
catch (e) {
|
|
64
75
|
viteServer.ssrFixStacktrace(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server-plugin.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/plugins/dev-server-plugin.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,gFAAgF;AAEhF,OAAO,EAKL,aAAa,GACd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAClD,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-server-plugin.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/plugins/dev-server-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,4 +53,4 @@ import { PrerenderContentFile } from '../options';
|
|
|
53
53
|
* - Determines file extension for content type handling
|
|
54
54
|
* - Maintains relative path structure for routing
|
|
55
55
|
*/
|
|
56
|
-
export declare function getMatchingContentFilesWithFrontMatter(workspaceRoot: string, rootDir: string, glob: string): PrerenderContentFile[];
|
|
56
|
+
export declare function getMatchingContentFilesWithFrontMatter(workspaceRoot: string, rootDir: string, glob: string, recursive?: boolean): PrerenderContentFile[];
|
|
@@ -58,7 +58,7 @@ const require = createRequire(import.meta.url);
|
|
|
58
58
|
* - Determines file extension for content type handling
|
|
59
59
|
* - Maintains relative path structure for routing
|
|
60
60
|
*/
|
|
61
|
-
export function getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, glob) {
|
|
61
|
+
export function getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, glob, recursive = false) {
|
|
62
62
|
// Dynamically require front-matter library
|
|
63
63
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
64
64
|
const fm = require('front-matter');
|
|
@@ -66,12 +66,17 @@ export function getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, g
|
|
|
66
66
|
const root = normalizePath(resolve(workspaceRoot, rootDir));
|
|
67
67
|
// Resolve the content directory path relative to the project root
|
|
68
68
|
const resolvedDir = normalizePath(relative(root, join(root, glob)));
|
|
69
|
-
// Discover all content files in the specified directory
|
|
70
|
-
//
|
|
71
|
-
const
|
|
69
|
+
// Discover all content files in the specified directory.
|
|
70
|
+
// Default pattern matches only top-level files; recursive opt-in walks subdirectories.
|
|
71
|
+
const pattern = recursive
|
|
72
|
+
? `${root}/${resolvedDir}/**/*`
|
|
73
|
+
: `${root}/${resolvedDir}/*`;
|
|
74
|
+
const contentFiles = globSync([pattern], {
|
|
72
75
|
dot: true,
|
|
73
76
|
absolute: true,
|
|
77
|
+
onlyFiles: true,
|
|
74
78
|
});
|
|
79
|
+
const dirPrefix = `${root}/${resolvedDir}`;
|
|
75
80
|
// Process each discovered content file to extract metadata and front matter
|
|
76
81
|
const mappedFilesWithFm = contentFiles.map((f) => {
|
|
77
82
|
// Read the file contents as UTF-8 text
|
|
@@ -89,6 +94,13 @@ export function getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, g
|
|
|
89
94
|
name = match[1]; // File name without extension
|
|
90
95
|
extension = match[3] || ''; // File extension or empty string if no extension
|
|
91
96
|
}
|
|
97
|
+
// Path of the file's directory relative to the configured contentDir.
|
|
98
|
+
// For top-level files this is an empty string; for nested files it
|
|
99
|
+
// gives transforms enough context to disambiguate identically-named
|
|
100
|
+
// files (e.g. docs/a/post.md vs docs/b/post.md).
|
|
101
|
+
const relativeDir = normalizePath(relative(dirPrefix, f));
|
|
102
|
+
const lastSlash = relativeDir.lastIndexOf('/');
|
|
103
|
+
const relativePath = lastSlash === -1 ? '' : relativeDir.slice(0, lastSlash);
|
|
92
104
|
// Return structured content file data for prerendering
|
|
93
105
|
return {
|
|
94
106
|
name,
|
|
@@ -96,6 +108,7 @@ export function getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, g
|
|
|
96
108
|
path: resolvedDir,
|
|
97
109
|
attributes: raw.attributes,
|
|
98
110
|
content: fileContents,
|
|
111
|
+
relativePath,
|
|
99
112
|
};
|
|
100
113
|
});
|
|
101
114
|
return mappedFilesWithFm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-content-files.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/utils/get-content-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,UAAU,sCAAsC,CACpD,aAAqB,EACrB,OAAe,EACf,IAAY;
|
|
1
|
+
{"version":3,"file":"get-content-files.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/utils/get-content-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { PrerenderRoute } from 'nitropack';
|
|
2
|
+
import { I18nPrerenderOptions } from '../options.js';
|
|
3
|
+
/**
|
|
4
|
+
* Expands a list of routes to include locale-prefixed variants.
|
|
5
|
+
*
|
|
6
|
+
* For each route and each locale, generates a prefixed route:
|
|
7
|
+
* '/' + locale + route
|
|
8
|
+
*
|
|
9
|
+
* The default locale's routes are included both with and without the prefix
|
|
10
|
+
* so that `/about` and `/en/about` both render.
|
|
11
|
+
*
|
|
12
|
+
* @param routes - The original routes to expand
|
|
13
|
+
* @param i18n - The i18n prerender configuration
|
|
14
|
+
* @returns Expanded routes with locale prefixes
|
|
15
|
+
*/
|
|
16
|
+
export declare function expandRoutesWithLocales(routes: string[], i18n: I18nPrerenderOptions): string[];
|
|
17
|
+
/**
|
|
18
|
+
* Creates a post-rendering hook that injects the `lang` attribute
|
|
19
|
+
* into the `<html>` tag of prerendered pages based on the route's
|
|
20
|
+
* locale prefix.
|
|
21
|
+
*
|
|
22
|
+
* @param i18n - The i18n prerender configuration
|
|
23
|
+
* @returns A post-rendering hook function
|
|
24
|
+
*/
|
|
25
|
+
export declare function createI18nPostRenderingHook(i18n: I18nPrerenderOptions): (route: PrerenderRoute) => Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Detects the locale from a prerendered route path by checking
|
|
28
|
+
* the first path segment against the configured locales.
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectLocaleFromRoute(route: string, i18n: I18nPrerenderOptions): string;
|
|
31
|
+
/**
|
|
32
|
+
* Sets the `lang` attribute on the `<html>` tag in an HTML string.
|
|
33
|
+
* If a `lang` attribute already exists, it is replaced.
|
|
34
|
+
* If no `lang` attribute exists, it is added.
|
|
35
|
+
*/
|
|
36
|
+
export declare function setHtmlLang(html: string, locale: string): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expands a list of routes to include locale-prefixed variants.
|
|
3
|
+
*
|
|
4
|
+
* For each route and each locale, generates a prefixed route:
|
|
5
|
+
* '/' + locale + route
|
|
6
|
+
*
|
|
7
|
+
* The default locale's routes are included both with and without the prefix
|
|
8
|
+
* so that `/about` and `/en/about` both render.
|
|
9
|
+
*
|
|
10
|
+
* @param routes - The original routes to expand
|
|
11
|
+
* @param i18n - The i18n prerender configuration
|
|
12
|
+
* @returns Expanded routes with locale prefixes
|
|
13
|
+
*/
|
|
14
|
+
export function expandRoutesWithLocales(routes, i18n) {
|
|
15
|
+
const expanded = [];
|
|
16
|
+
for (const route of routes) {
|
|
17
|
+
// Skip API routes — they don't need locale prefixes
|
|
18
|
+
if (route.includes('/_analog/') || route.startsWith('/api/')) {
|
|
19
|
+
expanded.push(route);
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
for (const locale of i18n.locales) {
|
|
23
|
+
const prefix = `/${locale}`;
|
|
24
|
+
const localizedRoute = route === '/' ? prefix : `${prefix}${route}`;
|
|
25
|
+
expanded.push(localizedRoute);
|
|
26
|
+
}
|
|
27
|
+
// Keep the unprefixed route for the default locale
|
|
28
|
+
if (!expanded.includes(route)) {
|
|
29
|
+
expanded.push(route);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return expanded;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a post-rendering hook that injects the `lang` attribute
|
|
36
|
+
* into the `<html>` tag of prerendered pages based on the route's
|
|
37
|
+
* locale prefix.
|
|
38
|
+
*
|
|
39
|
+
* @param i18n - The i18n prerender configuration
|
|
40
|
+
* @returns A post-rendering hook function
|
|
41
|
+
*/
|
|
42
|
+
export function createI18nPostRenderingHook(i18n) {
|
|
43
|
+
return async (route) => {
|
|
44
|
+
if (!route.contents || typeof route.contents !== 'string') {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const locale = detectLocaleFromRoute(route.route, i18n);
|
|
48
|
+
if (!locale) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Inject or replace the lang attribute on <html>
|
|
52
|
+
route.contents = setHtmlLang(route.contents, locale);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Detects the locale from a prerendered route path by checking
|
|
57
|
+
* the first path segment against the configured locales.
|
|
58
|
+
*/
|
|
59
|
+
export function detectLocaleFromRoute(route, i18n) {
|
|
60
|
+
const segments = route.split('/').filter(Boolean);
|
|
61
|
+
const firstSegment = segments[0];
|
|
62
|
+
if (firstSegment && i18n.locales.includes(firstSegment)) {
|
|
63
|
+
return firstSegment;
|
|
64
|
+
}
|
|
65
|
+
return i18n.defaultLocale;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sets the `lang` attribute on the `<html>` tag in an HTML string.
|
|
69
|
+
* If a `lang` attribute already exists, it is replaced.
|
|
70
|
+
* If no `lang` attribute exists, it is added.
|
|
71
|
+
*/
|
|
72
|
+
export function setHtmlLang(html, locale) {
|
|
73
|
+
// Replace existing lang attribute
|
|
74
|
+
if (/<html[^>]*\slang\s*=\s*["'][^"']*["']/i.test(html)) {
|
|
75
|
+
return html.replace(/(<html[^>]*\s)lang\s*=\s*["'][^"']*["']/i, `$1lang="${locale}"`);
|
|
76
|
+
}
|
|
77
|
+
// Add lang attribute to <html> tag
|
|
78
|
+
return html.replace(/<html/i, `<html lang="${locale}"`);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=i18n-prerender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-prerender.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/utils/i18n-prerender.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAgB,EAChB,IAA0B;IAE1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,oDAAoD;QACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAA0B;IAE1B,OAAO,KAAK,EAAE,KAAqB,EAAE,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,IAA0B;IAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC,aAAa,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,kCAAkC;IAClC,IAAI,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,CACjB,0CAA0C,EAC1C,WAAW,MAAM,GAAG,CACrB,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,MAAM,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ViteDevServer } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* Registers a file watcher that triggers a full page reload
|
|
4
|
+
* when translation files are added or modified.
|
|
5
|
+
*
|
|
6
|
+
* Matches files in i18n directories with .json, .xlf, .xmb, or .arb extensions.
|
|
7
|
+
*
|
|
8
|
+
* @param viteServer The Vite development server instance
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerI18nWatcher(viteServer: ViteDevServer): void;
|
|
11
|
+
/**
|
|
12
|
+
* Checks whether a file path looks like a translation file
|
|
13
|
+
* based on its location in an i18n directory and its extension.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isTranslationFile(path: string): boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registers a file watcher that triggers a full page reload
|
|
3
|
+
* when translation files are added or modified.
|
|
4
|
+
*
|
|
5
|
+
* Matches files in i18n directories with .json, .xlf, .xmb, or .arb extensions.
|
|
6
|
+
*
|
|
7
|
+
* @param viteServer The Vite development server instance
|
|
8
|
+
*/
|
|
9
|
+
export function registerI18nWatcher(viteServer) {
|
|
10
|
+
const triggerReload = (path) => {
|
|
11
|
+
if (isTranslationFile(path)) {
|
|
12
|
+
viteServer.ws.send({ type: 'full-reload' });
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
viteServer.watcher.on('change', triggerReload);
|
|
16
|
+
viteServer.watcher.on('add', triggerReload);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Checks whether a file path looks like a translation file
|
|
20
|
+
* based on its location in an i18n directory and its extension.
|
|
21
|
+
*/
|
|
22
|
+
export function isTranslationFile(path) {
|
|
23
|
+
return /i18n.*\.(json|xlf|xmb|arb)$/.test(path);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=register-i18n-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-i18n-watcher.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-nitro/src/lib/utils/register-i18n-watcher.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAyB;IAC3D,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;QACrC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC/C,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -13,6 +13,7 @@ import { buildSitemap } from './build-sitemap.js';
|
|
|
13
13
|
import { devServerPlugin } from './plugins/dev-server-plugin.js';
|
|
14
14
|
import { getMatchingContentFilesWithFrontMatter } from './utils/get-content-files.js';
|
|
15
15
|
import { ssrRenderer, clientRenderer, apiMiddleware, } from './utils/renderers.js';
|
|
16
|
+
import { expandRoutesWithLocales, createI18nPostRenderingHook, } from './utils/i18n-prerender.js';
|
|
16
17
|
const isWindows = platform() === 'win32';
|
|
17
18
|
const filePrefix = isWindows ? 'file:///' : '';
|
|
18
19
|
let clientOutputPath = '';
|
|
@@ -44,6 +45,7 @@ export function nitro(options, nitroOptions) {
|
|
|
44
45
|
entryServer: options?.entryServer,
|
|
45
46
|
index: options?.index,
|
|
46
47
|
routeRules: nitroOptions?.routeRules,
|
|
48
|
+
i18n: options?.i18n,
|
|
47
49
|
})
|
|
48
50
|
: false),
|
|
49
51
|
{
|
|
@@ -193,7 +195,7 @@ export function nitro(options, nitroOptions) {
|
|
|
193
195
|
}
|
|
194
196
|
return prev;
|
|
195
197
|
}
|
|
196
|
-
const affectedFiles = getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, current.contentDir);
|
|
198
|
+
const affectedFiles = getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, current.contentDir, current.recursive);
|
|
197
199
|
affectedFiles.forEach((f) => {
|
|
198
200
|
const result = current.transform(f);
|
|
199
201
|
if (result) {
|
|
@@ -218,6 +220,17 @@ export function nitro(options, nitroOptions) {
|
|
|
218
220
|
});
|
|
219
221
|
return prev;
|
|
220
222
|
}, []);
|
|
223
|
+
// Expand routes with locale prefixes when i18n is configured
|
|
224
|
+
if (options?.i18n && nitroConfig.prerender?.routes) {
|
|
225
|
+
nitroConfig.prerender.routes = expandRoutesWithLocales(nitroConfig.prerender.routes.filter(Boolean), options.i18n);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Register i18n post-rendering hook for lang attribute injection
|
|
229
|
+
if (options?.i18n) {
|
|
230
|
+
options.prerender = options.prerender ?? {};
|
|
231
|
+
options.prerender.postRenderingHooks =
|
|
232
|
+
options.prerender.postRenderingHooks ?? [];
|
|
233
|
+
options.prerender.postRenderingHooks.push(createI18nPostRenderingHook(options.i18n));
|
|
221
234
|
}
|
|
222
235
|
if (ssrBuild) {
|
|
223
236
|
if (isWindows) {
|
|
@@ -298,7 +311,7 @@ export function nitro(options, nitroOptions) {
|
|
|
298
311
|
}
|
|
299
312
|
console.log('Building Sitemap...');
|
|
300
313
|
// sitemap needs to be built after all directories are built
|
|
301
|
-
await buildSitemap(config, options.prerender.sitemap, nitroConfig.prerender.routes, publicDir, routeSitemaps);
|
|
314
|
+
await buildSitemap(config, options.prerender.sitemap, nitroConfig.prerender.routes, publicDir, routeSitemaps, options.i18n);
|
|
302
315
|
}
|
|
303
316
|
console.log(`\n\nThe '@analogjs/platform' server has been successfully built.`);
|
|
304
317
|
},
|
|
@@ -356,7 +369,7 @@ export function nitro(options, nitroOptions) {
|
|
|
356
369
|
options?.prerender?.sitemap) {
|
|
357
370
|
console.log('Building Sitemap...');
|
|
358
371
|
// sitemap needs to be built after all directories are built
|
|
359
|
-
await buildSitemap(config, options.prerender.sitemap, nitroConfig.prerender.routes, clientOutputPath, routeSitemaps);
|
|
372
|
+
await buildSitemap(config, options.prerender.sitemap, nitroConfig.prerender.routes, clientOutputPath, routeSitemaps, options.i18n);
|
|
360
373
|
}
|
|
361
374
|
let ssrEntryPath = resolve(options?.ssrBuildDir ||
|
|
362
375
|
resolve(workspaceRoot, 'dist', rootDir, `ssr`), `main.server${filePrefix ? '.js' : ''}`);
|
|
@@ -380,6 +393,12 @@ export function nitro(options, nitroOptions) {
|
|
|
380
393
|
return {
|
|
381
394
|
define: {
|
|
382
395
|
ANALOG_API_PREFIX: `"${baseURL.substring(1)}${apiPrefix.substring(1)}"`,
|
|
396
|
+
...(options?.i18n
|
|
397
|
+
? {
|
|
398
|
+
ANALOG_I18N_DEFAULT_LOCALE: JSON.stringify(options.i18n.defaultLocale),
|
|
399
|
+
ANALOG_I18N_LOCALES: JSON.stringify(options.i18n.locales),
|
|
400
|
+
}
|
|
401
|
+
: {}),
|
|
383
402
|
},
|
|
384
403
|
};
|
|
385
404
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin-nitro.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vite-plugin-nitro.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts"],"names":[],"mappings":"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"}
|