@inlang/paraglide-js 2.22.0 → 2.23.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.
Files changed (107) hide show
  1. package/README.md +6 -3
  2. package/dist/bundler-plugins/per-locale-build/constants.d.ts +0 -1
  3. package/dist/bundler-plugins/per-locale-build/constants.d.ts.map +1 -1
  4. package/dist/bundler-plugins/per-locale-build/constants.js +0 -1
  5. package/dist/bundler-plugins/per-locale-build/constants.js.map +1 -1
  6. package/dist/bundler-plugins/per-locale-build/index.d.ts.map +1 -1
  7. package/dist/bundler-plugins/per-locale-build/index.js +15 -38
  8. package/dist/bundler-plugins/per-locale-build/index.js.map +1 -1
  9. package/dist/bundler-plugins/per-locale-build/types.d.ts +0 -37
  10. package/dist/bundler-plugins/per-locale-build/types.d.ts.map +1 -1
  11. package/dist/bundler-plugins/per-locale-build/vite-environments.d.ts +52 -0
  12. package/dist/bundler-plugins/per-locale-build/vite-environments.d.ts.map +1 -0
  13. package/dist/bundler-plugins/per-locale-build/vite-environments.js +250 -0
  14. package/dist/bundler-plugins/per-locale-build/vite-environments.js.map +1 -0
  15. package/dist/bundler-plugins/per-locale-build/vite-environments.test.d.ts +2 -0
  16. package/dist/bundler-plugins/per-locale-build/vite-environments.test.d.ts.map +1 -0
  17. package/dist/bundler-plugins/per-locale-build/vite-environments.test.js +260 -0
  18. package/dist/bundler-plugins/per-locale-build/vite-environments.test.js.map +1 -0
  19. package/dist/bundler-plugins/vite.d.ts +4 -3
  20. package/dist/bundler-plugins/vite.d.ts.map +1 -1
  21. package/dist/bundler-plugins/vite.js.map +1 -1
  22. package/dist/bundler-plugins/vite.test.js +21 -46
  23. package/dist/bundler-plugins/vite.test.js.map +1 -1
  24. package/dist/compiler/compile-bundle.d.ts.map +1 -1
  25. package/dist/compiler/compile-bundle.js +16 -4
  26. package/dist/compiler/compile-bundle.js.map +1 -1
  27. package/dist/compiler/compile-bundle.test.js +42 -0
  28. package/dist/compiler/compile-bundle.test.js.map +1 -1
  29. package/dist/compiler/compile-project.d.ts.map +1 -1
  30. package/dist/compiler/compile-project.js +7 -6
  31. package/dist/compiler/compile-project.js.map +1 -1
  32. package/dist/compiler/compile-project.test.js +12 -29
  33. package/dist/compiler/compile-project.test.js.map +1 -1
  34. package/dist/compiler/runtime/create-runtime.d.ts.map +1 -1
  35. package/dist/compiler/runtime/create-runtime.js +2 -0
  36. package/dist/compiler/runtime/create-runtime.js.map +1 -1
  37. package/dist/compiler/runtime/extract-locale-from-request-async.d.ts.map +1 -1
  38. package/dist/compiler/runtime/extract-locale-from-request-async.js +1 -1
  39. package/dist/compiler/runtime/extract-locale-from-request-async.js.map +1 -1
  40. package/dist/compiler/runtime/extract-locale-from-request.d.ts.map +1 -1
  41. package/dist/compiler/runtime/extract-locale-from-request.js +2 -1
  42. package/dist/compiler/runtime/extract-locale-from-request.js.map +1 -1
  43. package/dist/compiler/runtime/extract-locale-from-url.js +1 -1
  44. package/dist/compiler/runtime/extract-locale-from-url.js.map +1 -1
  45. package/dist/compiler/runtime/get-locale.js +2 -1
  46. package/dist/compiler/runtime/get-locale.js.map +1 -1
  47. package/dist/compiler/runtime/get-url-origin.d.ts +1 -1
  48. package/dist/compiler/runtime/get-url-origin.js +1 -1
  49. package/dist/compiler/runtime/route-strategy.d.ts +33 -0
  50. package/dist/compiler/runtime/route-strategy.d.ts.map +1 -0
  51. package/dist/compiler/runtime/route-strategy.js +72 -0
  52. package/dist/compiler/runtime/route-strategy.js.map +1 -0
  53. package/dist/compiler/runtime/set-locale.d.ts +6 -3
  54. package/dist/compiler/runtime/set-locale.d.ts.map +1 -1
  55. package/dist/compiler/runtime/set-locale.js +8 -4
  56. package/dist/compiler/runtime/set-locale.js.map +1 -1
  57. package/dist/compiler/runtime/should-redirect.d.ts.map +1 -1
  58. package/dist/compiler/runtime/should-redirect.js +5 -3
  59. package/dist/compiler/runtime/should-redirect.js.map +1 -1
  60. package/dist/compiler/runtime/type.d.ts +3 -2
  61. package/dist/compiler/runtime/type.d.ts.map +1 -1
  62. package/dist/compiler/runtime/variables.d.ts +9 -17
  63. package/dist/compiler/runtime/variables.d.ts.map +1 -1
  64. package/dist/compiler/runtime/variables.js +11 -56
  65. package/dist/compiler/runtime/variables.js.map +1 -1
  66. package/dist/compiler/server/create-server-file.d.ts.map +1 -1
  67. package/dist/compiler/server/create-server-file.js +15 -6
  68. package/dist/compiler/server/create-server-file.js.map +1 -1
  69. package/dist/compiler/server/create-server-file.test.d.ts +2 -0
  70. package/dist/compiler/server/create-server-file.test.d.ts.map +1 -0
  71. package/dist/compiler/server/create-server-file.test.js +48 -0
  72. package/dist/compiler/server/create-server-file.test.js.map +1 -0
  73. package/dist/compiler/server/middleware.d.ts.map +1 -1
  74. package/dist/compiler/server/middleware.js +3 -2
  75. package/dist/compiler/server/middleware.js.map +1 -1
  76. package/dist/compiler/server/middleware.test.js +27 -0
  77. package/dist/compiler/server/middleware.test.js.map +1 -1
  78. package/dist/services/env-variables/index.js +1 -1
  79. package/package.json +1 -1
  80. package/dist/bundler-plugins/per-locale-build/framework-helpers.test.d.ts +0 -2
  81. package/dist/bundler-plugins/per-locale-build/framework-helpers.test.d.ts.map +0 -1
  82. package/dist/bundler-plugins/per-locale-build/framework-helpers.test.js +0 -57
  83. package/dist/bundler-plugins/per-locale-build/framework-helpers.test.js.map +0 -1
  84. package/dist/bundler-plugins/per-locale-build/frameworks/index.d.ts +0 -5
  85. package/dist/bundler-plugins/per-locale-build/frameworks/index.d.ts.map +0 -1
  86. package/dist/bundler-plugins/per-locale-build/frameworks/index.js +0 -21
  87. package/dist/bundler-plugins/per-locale-build/frameworks/index.js.map +0 -1
  88. package/dist/bundler-plugins/per-locale-build/frameworks/sveltekit.d.ts +0 -21
  89. package/dist/bundler-plugins/per-locale-build/frameworks/sveltekit.d.ts.map +0 -1
  90. package/dist/bundler-plugins/per-locale-build/frameworks/sveltekit.js +0 -137
  91. package/dist/bundler-plugins/per-locale-build/frameworks/sveltekit.js.map +0 -1
  92. package/dist/bundler-plugins/per-locale-build/frameworks/tanstack-start.d.ts +0 -23
  93. package/dist/bundler-plugins/per-locale-build/frameworks/tanstack-start.d.ts.map +0 -1
  94. package/dist/bundler-plugins/per-locale-build/frameworks/tanstack-start.js +0 -104
  95. package/dist/bundler-plugins/per-locale-build/frameworks/tanstack-start.js.map +0 -1
  96. package/dist/bundler-plugins/per-locale-build/specialize-bundle.d.ts +0 -18
  97. package/dist/bundler-plugins/per-locale-build/specialize-bundle.d.ts.map +0 -1
  98. package/dist/bundler-plugins/per-locale-build/specialize-bundle.js +0 -184
  99. package/dist/bundler-plugins/per-locale-build/specialize-bundle.js.map +0 -1
  100. package/dist/bundler-plugins/per-locale-build/vite-plugin.d.ts +0 -9
  101. package/dist/bundler-plugins/per-locale-build/vite-plugin.d.ts.map +0 -1
  102. package/dist/bundler-plugins/per-locale-build/vite-plugin.js +0 -87
  103. package/dist/bundler-plugins/per-locale-build/vite-plugin.js.map +0 -1
  104. package/dist/bundler-plugins/per-locale-build/vite-plugin.test.d.ts +0 -2
  105. package/dist/bundler-plugins/per-locale-build/vite-plugin.test.d.ts.map +0 -1
  106. package/dist/bundler-plugins/per-locale-build/vite-plugin.test.js +0 -429
  107. package/dist/bundler-plugins/per-locale-build/vite-plugin.test.js.map +0 -1
@@ -1,104 +0,0 @@
1
- import { getPerLocaleBuildLocaleId } from "../locale-id.js";
2
- export const PER_LOCALE_BUILD_ASSET_PREFIX = "/__paraglide";
3
- export function getPerLocaleBuildPrefix(locale) {
4
- return `${PER_LOCALE_BUILD_ASSET_PREFIX}/${getPerLocaleBuildLocaleId(locale)}`;
5
- }
6
- export function prefixPerLocaleAssetUrl(url, prefix) {
7
- if (url.startsWith("//") || /^[A-Za-z][A-Za-z\d+.-]*:/.test(url)) {
8
- throw new Error("experimentalPerLocaleBuild supports only root-relative and relative TanStack Start asset URLs.");
9
- }
10
- if (prefix === "")
11
- return url;
12
- return `${prefix}/${url.replace(/^\/+/, "")}`;
13
- }
14
- export function getTanStackStartEffectiveRequestUrl(request) {
15
- const requestUrl = new URL(request.url);
16
- if (request.headers.get("x-tsr-serverFn") !== "true")
17
- return requestUrl;
18
- const referer = request.headers.get("Referer");
19
- if (referer === null)
20
- return requestUrl;
21
- try {
22
- const refererUrl = new URL(referer);
23
- return refererUrl.origin === requestUrl.origin ? refererUrl : requestUrl;
24
- }
25
- catch {
26
- return requestUrl;
27
- }
28
- }
29
- export function isTanStackStartConfig(config) {
30
- return config.plugins.some((plugin) => plugin.name === "tanstack-start-core:config");
31
- }
32
- export function createTanStackStartFramework() {
33
- return {
34
- generatedFiles: {
35
- "tanstack-start.server.js": tanstackStartServerRuntime,
36
- },
37
- layout: {
38
- getLocalePrefix(locale, baseLocale) {
39
- return locale === baseLocale ? "" : getPerLocaleBuildPrefix(locale);
40
- },
41
- getLocalizedFileName(fileName, locale, baseLocale) {
42
- if (locale === baseLocale)
43
- return fileName;
44
- return `${getPerLocaleBuildPrefix(locale).replace(/^\//, "")}/${fileName}`;
45
- },
46
- },
47
- };
48
- }
49
- export function configureTanStackStartBuild(config) {
50
- if (config.experimental?.renderBuiltUrl) {
51
- throw new Error("experimentalPerLocaleBuild cannot be combined with experimental.renderBuiltUrl because locale asset trees require relative client URLs and canonical SSR URLs.");
52
- }
53
- return {
54
- base: "",
55
- experimental: {
56
- renderBuiltUrl(filename, context) {
57
- if (context.ssr)
58
- return `/${filename.replace(/^\/+/, "")}`;
59
- return { relative: true };
60
- },
61
- },
62
- };
63
- }
64
- const tanstackStartServerRuntime = String.raw `
65
- // @ts-nocheck -- generated only for experimentalPerLocaleBuild on TanStack Start
66
- import {
67
- createStartHandler,
68
- defaultStreamHandler,
69
- } from "@tanstack/react-start/server";
70
- import { baseLocale, getLocale } from "./runtime.js";
71
- import { paraglideMiddleware } from "./server.js";
72
-
73
- const getPerLocaleBuildLocaleId = ${getPerLocaleBuildLocaleId.toString()};
74
- const PER_LOCALE_BUILD_ASSET_PREFIX = "/__paraglide";
75
- const getLocalePrefix = ${getPerLocaleBuildPrefix.toString()};
76
- const prefixAssetUrl = ${prefixPerLocaleAssetUrl.toString()};
77
- const getEffectiveRequestUrl = ${getTanStackStartEffectiveRequestUrl.toString()};
78
-
79
- const fetch = createStartHandler({
80
- handler: defaultStreamHandler,
81
- transformAssets: {
82
- cache: false,
83
- createTransform() {
84
- const locale = getLocale();
85
- const prefix =
86
- import.meta.env?.PROD === true && locale !== baseLocale
87
- ? getLocalePrefix(locale)
88
- : "";
89
- return ({ url }) => prefixAssetUrl(url, prefix);
90
- },
91
- },
92
- });
93
-
94
- export default {
95
- fetch(request, ...args) {
96
- return paraglideMiddleware(
97
- request,
98
- () => fetch(request, ...args),
99
- { effectiveRequestUrl: getEffectiveRequestUrl(request) },
100
- );
101
- },
102
- };
103
- `.trimStart();
104
- //# sourceMappingURL=tanstack-start.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tanstack-start.js","sourceRoot":"","sources":["../../../../src/bundler-plugins/per-locale-build/frameworks/tanstack-start.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { OutputBundle } from "rolldown";
2
- import type { PerLocaleBuildLayout, PerLocaleBuildManifest, PerLocaleBuildSettings, ViteOxcApi } from "./types.js";
3
- export declare function specializePerLocaleBundle(args: {
4
- bundle: OutputBundle;
5
- layout: PerLocaleBuildLayout;
6
- settings: PerLocaleBuildSettings;
7
- vite: ViteOxcApi;
8
- }): Promise<{
9
- manifest: PerLocaleBuildManifest;
10
- assets: Array<{
11
- fileName: string;
12
- source: string | Uint8Array;
13
- }>;
14
- }>;
15
- export declare function loadViteOxcApi(): Promise<ViteOxcApi>;
16
- export declare function assertVite8OxcApi(vite: Partial<ViteOxcApi>): asserts vite is ViteOxcApi;
17
- export declare function validatePerLocaleBuildSettings(settings: PerLocaleBuildSettings): PerLocaleBuildSettings;
18
- //# sourceMappingURL=specialize-bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specialize-bundle.d.ts","sourceRoot":"","sources":["../../../src/bundler-plugins/per-locale-build/specialize-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAO7C,OAAO,KAAK,EACX,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,MAAM,YAAY,CAAC;AAEpB,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACrD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,IAAI,EAAE,UAAU,CAAC;CACjB,GAAG,OAAO,CAAC;IACX,QAAQ,EAAE,sBAAsB,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC,CAAC;CACjE,CAAC,CAsGD;AAuGD,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAS1D;AAED,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,GACvB,OAAO,CAAC,IAAI,IAAI,UAAU,CAY5B;AAED,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,sBAAsB,GAC9B,sBAAsB,CAsBxB"}
@@ -1,184 +0,0 @@
1
- import path from "node:path";
2
- import { PER_LOCALE_BUILD_DEFINE, PER_LOCALE_BUILD_MANIFEST, PER_LOCALE_BUILD_MARKER, } from "./constants.js";
3
- export async function specializePerLocaleBundle(args) {
4
- const settings = validatePerLocaleBuildSettings(args.settings);
5
- assertVite8OxcApi(args.vite);
6
- const originals = Object.entries(args.bundle)
7
- .filter(([fileName]) => fileName !== PER_LOCALE_BUILD_MANIFEST)
8
- .sort(([left], [right]) => left.localeCompare(right))
9
- .map(([fileName, output]) => ({
10
- fileName,
11
- output,
12
- // Base-locale specialization mutates the canonical OutputChunk. Every
13
- // locale must nevertheless start from this immutable source graph.
14
- code: output.type === "chunk" ? output.code : undefined,
15
- }));
16
- const originalFileNames = originals.map(({ fileName }) => fileName);
17
- const originalFileNameSet = new Set(originalFileNames);
18
- for (const { fileName, output } of originals) {
19
- args.layout.validateOutput?.(fileName, output.type);
20
- }
21
- for (const { fileName, output } of originals) {
22
- if (output.type !== "asset" || !fileName.endsWith(".css"))
23
- continue;
24
- output.source = rewriteCssPublicAssetReferences({
25
- source: output.source,
26
- fileName,
27
- originalFileNames: originalFileNameSet,
28
- });
29
- }
30
- const manifest = {
31
- version: 1,
32
- baseLocale: settings.baseLocale,
33
- locales: {},
34
- };
35
- for (const locale of settings.locales) {
36
- manifest.locales[locale] = {
37
- prefix: args.layout.getLocalePrefix(locale, settings.baseLocale),
38
- assets: Object.fromEntries(originalFileNames.map((fileName) => [
39
- `/${fileName}`,
40
- `/${args.layout.getLocalizedFileName(fileName, locale, settings.baseLocale)}`,
41
- ])),
42
- };
43
- }
44
- const localizedAssets = [];
45
- const emittedFileNames = new Set(Object.keys(args.bundle));
46
- for (const locale of settings.locales) {
47
- const specializedChunks = new Map();
48
- await Promise.all(originals.map(async ({ fileName, output, code }) => {
49
- if (output.type !== "chunk")
50
- return;
51
- specializedChunks.set(fileName, await specializeChunk({
52
- code: code,
53
- fileName,
54
- locale,
55
- vite: args.vite,
56
- }));
57
- }));
58
- for (const { fileName, output } of originals) {
59
- const specializedCode = output.type === "chunk" ? specializedChunks.get(fileName) : undefined;
60
- if (output.type === "chunk" && specializedCode === undefined) {
61
- throw new Error(`Failed to specialize Vite chunk ${fileName}.`);
62
- }
63
- if (locale === settings.baseLocale) {
64
- if (output.type === "chunk") {
65
- output.code = specializedCode;
66
- output.map = null;
67
- }
68
- continue;
69
- }
70
- const localizedFileName = args.layout.getLocalizedFileName(fileName, locale, settings.baseLocale);
71
- if (localizedFileName === fileName)
72
- continue;
73
- if (emittedFileNames.has(localizedFileName)) {
74
- throw new Error(`experimentalPerLocaleBuild cannot emit ${localizedFileName} because another Vite plugin already emitted that file.`);
75
- }
76
- emittedFileNames.add(localizedFileName);
77
- localizedAssets.push({
78
- fileName: localizedFileName,
79
- source: output.type === "chunk" ? specializedCode : output.source,
80
- });
81
- }
82
- }
83
- return { manifest, assets: localizedAssets };
84
- }
85
- function rewriteCssPublicAssetReferences(args) {
86
- let css;
87
- if (typeof args.source === "string") {
88
- css = args.source;
89
- }
90
- else {
91
- css = new TextDecoder().decode(args.source);
92
- }
93
- const rewrite = (reference) => {
94
- if (!isRelativeCssReference(reference))
95
- return reference;
96
- const suffixIndex = reference.search(/[?#]/);
97
- const pathname = suffixIndex === -1 ? reference : reference.slice(0, suffixIndex);
98
- const suffix = suffixIndex === -1 ? "" : reference.slice(suffixIndex);
99
- const canonicalPath = path.posix.normalize(path.posix.join("/", path.posix.dirname(args.fileName), pathname));
100
- if (args.originalFileNames.has(canonicalPath.replace(/^\//, ""))) {
101
- return reference;
102
- }
103
- return `${canonicalPath}${suffix}`;
104
- };
105
- css = css.replace(/url\(\s*(?:(["'])(.*?)\1|([^"')]+))\s*\)/g, (full, quote, quoted, unquoted) => {
106
- const reference = (quote ? quoted : unquoted).trim();
107
- const rewritten = rewrite(reference);
108
- return rewritten === reference
109
- ? full
110
- : `url(${quote ?? ""}${rewritten}${quote ?? ""})`;
111
- });
112
- css = css.replace(/@import\s+(["'])(.*?)\1/g, (full, quote, reference) => {
113
- const rewritten = rewrite(reference);
114
- return rewritten === reference
115
- ? full
116
- : `@import ${quote}${rewritten}${quote}`;
117
- });
118
- return typeof args.source === "string" ? css : new TextEncoder().encode(css);
119
- }
120
- function isRelativeCssReference(reference) {
121
- return (reference !== "" &&
122
- !reference.startsWith("/") &&
123
- !reference.startsWith("#") &&
124
- !reference.startsWith("?") &&
125
- !reference.startsWith("//") &&
126
- !reference.startsWith("var(") &&
127
- !reference.startsWith("data:") &&
128
- !/^[A-Za-z][A-Za-z\d+.-]*:/.test(reference));
129
- }
130
- async function specializeChunk(args) {
131
- const transformed = await args.vite.transformWithOxc(args.code, args.fileName, {
132
- lang: "js",
133
- sourceType: "module",
134
- define: {
135
- [PER_LOCALE_BUILD_DEFINE]: JSON.stringify(args.locale),
136
- },
137
- sourcemap: false,
138
- });
139
- const minified = await args.vite.minify(args.fileName, transformed.code, {
140
- module: true,
141
- compress: true,
142
- mangle: true,
143
- });
144
- if (minified.errors.length > 0) {
145
- throw new Error(`Oxc failed to minify ${args.fileName} for locale ${JSON.stringify(args.locale)}: ${minified.errors.map((error) => error.message).join("\n")}`);
146
- }
147
- if (minified.code.includes(PER_LOCALE_BUILD_MARKER)) {
148
- throw new Error(`Oxc left ${PER_LOCALE_BUILD_MARKER} in ${args.fileName} for locale ${JSON.stringify(args.locale)}.`);
149
- }
150
- return minified.code;
151
- }
152
- export async function loadViteOxcApi() {
153
- try {
154
- return await import("vite");
155
- }
156
- catch (error) {
157
- throw new Error("experimentalPerLocaleBuild requires Vite 8 to be installed in the application.", { cause: error });
158
- }
159
- }
160
- export function assertVite8OxcApi(vite) {
161
- const major = Number.parseInt(vite.version?.split(".")[0] ?? "", 10);
162
- if (!Number.isFinite(major) ||
163
- major !== 8 ||
164
- typeof vite.transformWithOxc !== "function" ||
165
- typeof vite.minify !== "function") {
166
- throw new Error(`experimentalPerLocaleBuild requires Vite 8 with the Oxc transform and minify APIs (received ${vite.version ?? "an unknown version"}).`);
167
- }
168
- }
169
- export function validatePerLocaleBuildSettings(settings) {
170
- if (!settings.baseLocale) {
171
- throw new Error("experimentalPerLocaleBuild requires the inlang project to define a baseLocale.");
172
- }
173
- if (!Array.isArray(settings.locales) || settings.locales.length === 0) {
174
- throw new Error("experimentalPerLocaleBuild requires the inlang project to define at least one locale.");
175
- }
176
- if (!settings.locales.includes(settings.baseLocale)) {
177
- throw new Error(`experimentalPerLocaleBuild baseLocale ${JSON.stringify(settings.baseLocale)} is not present in the project's locales.`);
178
- }
179
- if (new Set(settings.locales).size !== settings.locales.length) {
180
- throw new Error("experimentalPerLocaleBuild requires every project locale to be unique.");
181
- }
182
- return settings;
183
- }
184
- //# sourceMappingURL=specialize-bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specialize-bundle.js","sourceRoot":"","sources":["../../../src/bundler-plugins/per-locale-build/specialize-bundle.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { Plugin } from "vite";
2
- import type { PerLocaleBuildSettings, ViteOxcApi } from "./types.js";
3
- export declare function createPerLocaleBuildVitePlugin(args: {
4
- settings: () => Promise<PerLocaleBuildSettings>;
5
- generatedDirectory: string;
6
- loadVite?: () => Promise<ViteOxcApi>;
7
- onFrameworkDetected?: (generatedFiles: Record<string, string>) => void;
8
- }): Plugin;
9
- //# sourceMappingURL=vite-plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../src/bundler-plugins/per-locale-build/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAanC,OAAO,KAAK,EAGX,sBAAsB,EACtB,UAAU,EACV,MAAM,YAAY,CAAC;AAEpB,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACpD,QAAQ,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,mBAAmB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACvE,GAAG,MAAM,CAsFT"}
@@ -1,87 +0,0 @@
1
- import { PER_LOCALE_BUILD_DEFINE, PER_LOCALE_BUILD_MANIFEST, } from "./constants.js";
2
- import { configurePerLocaleBuild, detectPerLocaleBuildFramework, } from "./frameworks/index.js";
3
- import { loadViteOxcApi, specializePerLocaleBundle, } from "./specialize-bundle.js";
4
- export function createPerLocaleBuildVitePlugin(args) {
5
- let framework;
6
- let serverIntegration;
7
- return {
8
- name: "paraglide-per-locale-build",
9
- enforce: "post",
10
- config(config, env) {
11
- if (env.command !== "build")
12
- return;
13
- if (![undefined, "", "/", "./"].includes(config.base)) {
14
- throw new Error("experimentalPerLocaleBuild does not support a custom Vite base.");
15
- }
16
- assertSupportedClientBuild(config.build);
17
- return configurePerLocaleBuild(config);
18
- },
19
- configEnvironment(name, config, env) {
20
- const isClient = env.command === "build" &&
21
- (config.consumer === "client" || name === "client");
22
- if (!isClient) {
23
- return {
24
- define: { [PER_LOCALE_BUILD_DEFINE]: "undefined" },
25
- };
26
- }
27
- assertSupportedClientBuild(config.build);
28
- return { build: { minify: false, sourcemap: false } };
29
- },
30
- configResolved(config) {
31
- framework = detectPerLocaleBuildFramework(config);
32
- args.onFrameworkDetected?.(framework.generatedFiles ?? {});
33
- serverIntegration = framework.createServerIntegration?.({
34
- root: config.root,
35
- generatedDirectory: args.generatedDirectory,
36
- });
37
- },
38
- resolveId(id) {
39
- return serverIntegration?.resolveId(id);
40
- },
41
- load(id) {
42
- return serverIntegration?.load(id);
43
- },
44
- transform(code, id, options) {
45
- if (!serverIntegration || options?.ssr === false)
46
- return;
47
- return serverIntegration.transform(code, id);
48
- },
49
- generateBundle: {
50
- order: "post",
51
- async handler(_outputOptions, bundle) {
52
- const isClient = this.environment.config.consumer === "client";
53
- if (!isClient) {
54
- serverIntegration?.assertPatched();
55
- return;
56
- }
57
- if (!framework) {
58
- throw new Error("experimentalPerLocaleBuild could not identify the active framework.");
59
- }
60
- const specialized = await specializePerLocaleBundle({
61
- bundle,
62
- layout: framework.layout,
63
- settings: await args.settings(),
64
- vite: await (args.loadVite ?? loadViteOxcApi)(),
65
- });
66
- for (const asset of specialized.assets) {
67
- this.emitFile({
68
- type: "asset",
69
- fileName: asset.fileName,
70
- source: asset.source,
71
- });
72
- }
73
- this.emitFile({
74
- type: "asset",
75
- fileName: PER_LOCALE_BUILD_MANIFEST,
76
- source: JSON.stringify(specialized.manifest, undefined, "\t") + "\n",
77
- });
78
- },
79
- },
80
- };
81
- }
82
- function assertSupportedClientBuild(build) {
83
- if (build?.minify === false || build?.sourcemap) {
84
- throw new Error("experimentalPerLocaleBuild requires client minification and does not support client sourcemaps.");
85
- }
86
- }
87
- //# sourceMappingURL=vite-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../../../src/bundler-plugins/per-locale-build/vite-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=vite-plugin.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite-plugin.test.d.ts","sourceRoot":"","sources":["../../../src/bundler-plugins/per-locale-build/vite-plugin.test.ts"],"names":[],"mappings":""}