@inlang/paraglide-js 2.14.0 → 2.15.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/dist/cli/steps/initialize-inlang-project.d.ts.map +1 -1
- package/dist/cli/steps/initialize-inlang-project.js +0 -3
- package/dist/cli/steps/initialize-inlang-project.js.map +1 -1
- package/dist/compiler/compile.d.ts.map +1 -1
- package/dist/compiler/compile.js +0 -2
- package/dist/compiler/compile.js.map +1 -1
- package/dist/compiler/runtime/check-locale.d.ts +32 -0
- package/dist/compiler/runtime/check-locale.d.ts.map +1 -0
- package/dist/compiler/runtime/check-locale.js +51 -0
- package/dist/compiler/runtime/check-locale.js.map +1 -0
- package/dist/compiler/runtime/check-locale.test.d.ts +2 -0
- package/dist/compiler/runtime/check-locale.test.d.ts.map +1 -0
- package/dist/compiler/runtime/check-locale.test.js +117 -0
- package/dist/compiler/runtime/check-locale.test.js.map +1 -0
- package/dist/compiler/runtime/create-runtime.d.ts.map +1 -1
- package/dist/compiler/runtime/create-runtime.js +12 -6
- package/dist/compiler/runtime/create-runtime.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-cookie.d.ts.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-cookie.js +2 -5
- package/dist/compiler/runtime/extract-locale-from-cookie.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-cookie.test.js +16 -0
- package/dist/compiler/runtime/extract-locale-from-cookie.test.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-header.d.ts.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-header.js +9 -7
- package/dist/compiler/runtime/extract-locale-from-header.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-header.test.js +16 -0
- package/dist/compiler/runtime/extract-locale-from-header.test.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-navigator.d.ts.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-navigator.js +9 -7
- package/dist/compiler/runtime/extract-locale-from-navigator.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-navigator.test.js +24 -0
- package/dist/compiler/runtime/extract-locale-from-navigator.test.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-request-async.d.ts.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-request-async.js +5 -6
- package/dist/compiler/runtime/extract-locale-from-request-async.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-request.d.ts.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-request.js +4 -9
- package/dist/compiler/runtime/extract-locale-from-request.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-url.d.ts +4 -0
- package/dist/compiler/runtime/extract-locale-from-url.d.ts.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-url.js +8 -15
- package/dist/compiler/runtime/extract-locale-from-url.js.map +1 -1
- package/dist/compiler/runtime/extract-locale-from-url.test.js +32 -0
- package/dist/compiler/runtime/extract-locale-from-url.test.js.map +1 -1
- package/dist/compiler/runtime/get-locale.d.ts.map +1 -1
- package/dist/compiler/runtime/get-locale.js +10 -7
- package/dist/compiler/runtime/get-locale.js.map +1 -1
- package/dist/compiler/runtime/get-locale.test.js +12 -0
- package/dist/compiler/runtime/get-locale.test.js.map +1 -1
- package/dist/compiler/runtime/localize-href.d.ts +2 -2
- package/dist/compiler/runtime/localize-href.js +2 -2
- package/dist/compiler/runtime/localize-href.test.js +13 -0
- package/dist/compiler/runtime/localize-href.test.js.map +1 -1
- package/dist/compiler/runtime/localize-url.d.ts +2 -2
- package/dist/compiler/runtime/localize-url.d.ts.map +1 -1
- package/dist/compiler/runtime/localize-url.js +11 -11
- package/dist/compiler/runtime/localize-url.js.map +1 -1
- package/dist/compiler/runtime/localize-url.test.js +32 -0
- package/dist/compiler/runtime/localize-url.test.js.map +1 -1
- package/dist/compiler/runtime/set-locale.js +2 -2
- package/dist/compiler/runtime/set-locale.js.map +1 -1
- package/dist/compiler/runtime/set-locale.test.js +28 -0
- package/dist/compiler/runtime/set-locale.test.js.map +1 -1
- package/dist/compiler/runtime/should-redirect.d.ts +4 -5
- package/dist/compiler/runtime/should-redirect.d.ts.map +1 -1
- package/dist/compiler/runtime/should-redirect.js +9 -8
- package/dist/compiler/runtime/should-redirect.js.map +1 -1
- package/dist/compiler/runtime/type-definitions.js +1 -1
- package/dist/compiler/runtime/type.d.ts +3 -2
- package/dist/compiler/runtime/type.d.ts.map +1 -1
- package/dist/compiler/runtime/type.test.js +18 -0
- package/dist/compiler/runtime/type.test.js.map +1 -1
- package/dist/compiler/runtime/variables.d.ts.map +1 -1
- package/dist/compiler/runtime/variables.js +2 -4
- package/dist/compiler/runtime/variables.js.map +1 -1
- package/dist/services/env-variables/create-index-file.js +0 -1
- package/dist/services/env-variables/create-index-file.js.map +1 -1
- package/dist/services/env-variables/index.d.ts +0 -1
- package/dist/services/env-variables/index.d.ts.map +1 -1
- package/dist/services/env-variables/index.js +1 -2
- package/dist/services/env-variables/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/compiler/runtime/assert-is-locale.d.ts +0 -9
- package/dist/compiler/runtime/assert-is-locale.d.ts.map +0 -1
- package/dist/compiler/runtime/assert-is-locale.js +0 -20
- package/dist/compiler/runtime/assert-is-locale.js.map +0 -1
- package/dist/compiler/runtime/assert-is-locale.test.d.ts +0 -2
- package/dist/compiler/runtime/assert-is-locale.test.d.ts.map +0 -1
- package/dist/compiler/runtime/assert-is-locale.test.js +0 -70
- package/dist/compiler/runtime/assert-is-locale.test.js.map +0 -1
- package/dist/compiler/runtime/is-locale.d.ts +0 -16
- package/dist/compiler/runtime/is-locale.d.ts.map +0 -1
- package/dist/compiler/runtime/is-locale.js +0 -23
- package/dist/compiler/runtime/is-locale.js.map +0 -1
- package/dist/compiler/runtime/is-locale.test.d.ts +0 -2
- package/dist/compiler/runtime/is-locale.test.d.ts.map +0 -1
- package/dist/compiler/runtime/is-locale.test.js +0 -32
- package/dist/compiler/runtime/is-locale.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-inlang-project.d.ts","sourceRoot":"","sources":["../../../src/cli/steps/initialize-inlang-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,aAAa,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"initialize-inlang-project.d.ts","sourceRoot":"","sources":["../../../src/cli/steps/initialize-inlang-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,aAAa,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAC5C;IACC,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IACvB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb,EACD;IACC,OAAO,EAAE,aAAa,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;CACpB,CA2BD,CAAC;AA+GF,eAAO,MAAM,oBAAoB,GAAU,KAAK;IAC/C,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IACvB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CACf,KAAG,OAAO,CAAC;IACX,OAAO,EAAE,aAAa,CAAC;IACvB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;CACpB,CAuEA,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAazD;AAcD;;GAEG;AACH,eAAO,MAAM,OAAO,sbACga,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { loadProjectFromDirectory, loadProjectInMemory, newProject, saveProjectT
|
|
|
2
2
|
import { DEFAULT_PROJECT_PATH, getNewProjectTemplate } from "../defaults.js";
|
|
3
3
|
import nodePath from "node:path";
|
|
4
4
|
import fs from "node:fs";
|
|
5
|
-
import { ENV_VARIABLES } from "../../services/env-variables/index.js";
|
|
6
5
|
export const initializeInlangProject = async (ctx) => {
|
|
7
6
|
// const existingProjectPaths =
|
|
8
7
|
// // checking for undefined if node version is lower than 22
|
|
@@ -59,7 +58,6 @@ export const initializeInlangProject = async (ctx) => {
|
|
|
59
58
|
// const project = await loadProjectFromDirectory({
|
|
60
59
|
// path: projectPath,
|
|
61
60
|
// fs: ctx.syncFs,
|
|
62
|
-
// appId: ENV_VARIABLES.PARJS_APP_ID,
|
|
63
61
|
// });
|
|
64
62
|
// if ((await project.errors.get()).length > 0) {
|
|
65
63
|
// ctx.logger.error(
|
|
@@ -160,7 +158,6 @@ export const createNewProjectFlow = async (ctx) => {
|
|
|
160
158
|
const project = await loadProjectFromDirectory({
|
|
161
159
|
path: projectPath,
|
|
162
160
|
fs: ctx.syncFs,
|
|
163
|
-
appId: ENV_VARIABLES.PARJS_APP_ID,
|
|
164
161
|
});
|
|
165
162
|
if ((await project.errors.get()).length > 0) {
|
|
166
163
|
ctx.logger.error("Failed to create a new inlang project.\n\nThis is likely an internal bug. Please file an issue at https://github.com/opral/inlang-paraglide-js.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-inlang-project.js","sourceRoot":"","sources":["../../../src/cli/steps/initialize-inlang-project.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,UAAU,EACV,sBAAsB,GAEtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"initialize-inlang-project.js","sourceRoot":"","sources":["../../../src/cli/steps/initialize-inlang-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAQA,OAAO,EAEN,KAAK,eAAe,EACpB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,MAAM,iBAAiB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACjD,CAAC;AAIF;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAC5B,OAAO,EAAE,eAAe,GAAG;IAC1B,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;CACxC,GACC,OAAO,CAAC,iBAAiB,CAAC,CAuE5B"}
|
package/dist/compiler/compile.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { loadProjectFromDirectory } from "@inlang/sdk";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { ENV_VARIABLES } from "../services/env-variables/index.js";
|
|
4
3
|
import { compileProject } from "./compile-project.js";
|
|
5
4
|
import { writeOutput } from "../services/file-handling/write-output.js";
|
|
6
5
|
// import {
|
|
@@ -43,7 +42,6 @@ export async function compile(options) {
|
|
|
43
42
|
path: withDefaultOptions.project,
|
|
44
43
|
fs,
|
|
45
44
|
// account: localAccount,
|
|
46
|
-
appId: ENV_VARIABLES.PARJS_APP_ID,
|
|
47
45
|
});
|
|
48
46
|
const output = await compileProject({
|
|
49
47
|
compilerOptions: withDefaultOptions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACxE,WAAW;AACX,oBAAoB;AACpB,qBAAqB;AACrB,yCAAyC;AACzC,OAAO,EACN,sBAAsB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,uFAAuF;AACvF,kFAAkF;AAClF,IAAI,qBAAqB,GAEb,IAAI,CAAC;AAMjB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAE5B;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC5B,OAEC;IAED,MAAM,kBAAkB,GAAG;QAC1B,GAAG,sBAAsB;QACzB,GAAG,OAAO;KACV,CAAC;IAEF,IAAI,qBAAqB,EAAE,CAAC;QAC3B,MAAM,qBAAqB,CAAC;IAC7B,CAAC;IAED,qBAAqB,GAAG,CAAC,KAAK,IAAI,EAAE;QACnC,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,kBAAkB,CAAC,EAAE,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAClC,OAAO,CAAC,GAAG,EAAE,EACb,kBAAkB,CAAC,MAAM,CACzB,CAAC;YAEF,gDAAgD;YAEhD,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;gBAC9C,IAAI,EAAE,kBAAkB,CAAC,OAAO;gBAChC,EAAE;gBACF,yBAAyB;aACzB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;gBACnC,eAAe,EAAE,kBAAkB;gBACnC,OAAO;gBACP,WAAW,EAAE,kBAAkB,CAAC,OAAO;aACvC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;gBACtC,SAAS,EAAE,cAAc;gBACzB,MAAM;gBACN,cAAc,EAAE,kBAAkB,CAAC,WAAW;gBAC9C,EAAE,EAAE,EAAE,CAAC,QAAQ;gBACf,oBAAoB,EAAE,OAAO,CAAC,mBAAmB,EAAE,YAAY;aAC/D,CAAC,CAAC;YAEH,uBAAuB;YACvB,8CAA8C;YAC9C,wCAAwC;YACxC,4DAA4D;YAC5D,iDAAiD;YACjD,gCAAgC;YAChC,gCAAgC;YAEhC,qDAAqD;YACrD,IAAI;YAEJ,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAErD,KAAK,MAAM,cAAc,IAAI,iBAAiB,EAAE,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAEtB,OAAO,EAAE,YAAY,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,uCAAuC;YACvC,qBAAqB,GAAG,IAAI,CAAC;YAC7B,MAAM,CAAC,CAAC;QACT,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAC5D,qBAAqB,GAAG,IAAI,CAAC;IAE7B,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coerces a locale-like string to the canonical locale value used by the runtime.
|
|
3
|
+
*
|
|
4
|
+
* @param {unknown} value
|
|
5
|
+
* @returns {Locale | undefined}
|
|
6
|
+
*/
|
|
7
|
+
export function toLocale(value: unknown): Locale | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Check if something is an available locale with the canonical project casing.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* if (isLocale(params.locale)) {
|
|
13
|
+
* setLocale(params.locale);
|
|
14
|
+
* } else {
|
|
15
|
+
* setLocale('en');
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* Use `toLocale()` when you want case-insensitive matching and canonicalization.
|
|
19
|
+
*
|
|
20
|
+
* @param {unknown} locale
|
|
21
|
+
* @returns {locale is Locale}
|
|
22
|
+
*/
|
|
23
|
+
export function isLocale(locale: unknown): locale is Locale;
|
|
24
|
+
/**
|
|
25
|
+
* Asserts that the input can be normalized to a locale.
|
|
26
|
+
*
|
|
27
|
+
* @param {unknown} input - The input to check.
|
|
28
|
+
* @returns {Locale} The input normalized to a Locale.
|
|
29
|
+
* @throws {Error} If the input is not a locale.
|
|
30
|
+
*/
|
|
31
|
+
export function assertIsLocale(input: unknown): Locale;
|
|
32
|
+
//# sourceMappingURL=check-locale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-locale.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/check-locale.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,gCAHW,OAAO,GACL,MAAM,GAAG,SAAS,CAc9B;AAED;;;;;;;;;;;;;;GAcG;AACH,iCAHW,OAAO,GACL,MAAM,IAAI,MAAM,CAI5B;AAED;;;;;;GAMG;AACH,sCAJW,OAAO,GACL,MAAM,CASlB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { locales } from "./variables.js";
|
|
2
|
+
/**
|
|
3
|
+
* Coerces a locale-like string to the canonical locale value used by the runtime.
|
|
4
|
+
*
|
|
5
|
+
* @param {unknown} value
|
|
6
|
+
* @returns {Locale | undefined}
|
|
7
|
+
*/
|
|
8
|
+
export function toLocale(value) {
|
|
9
|
+
if (typeof value !== "string") {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const lowerValue = value.toLowerCase();
|
|
13
|
+
for (const locale of locales) {
|
|
14
|
+
if (locale.toLowerCase() === lowerValue) {
|
|
15
|
+
return locale;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if something is an available locale with the canonical project casing.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* if (isLocale(params.locale)) {
|
|
25
|
+
* setLocale(params.locale);
|
|
26
|
+
* } else {
|
|
27
|
+
* setLocale('en');
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* Use `toLocale()` when you want case-insensitive matching and canonicalization.
|
|
31
|
+
*
|
|
32
|
+
* @param {unknown} locale
|
|
33
|
+
* @returns {locale is Locale}
|
|
34
|
+
*/
|
|
35
|
+
export function isLocale(locale) {
|
|
36
|
+
return !!locale && locales.some((item) => item === locale);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Asserts that the input can be normalized to a locale.
|
|
40
|
+
*
|
|
41
|
+
* @param {unknown} input - The input to check.
|
|
42
|
+
* @returns {Locale} The input normalized to a Locale.
|
|
43
|
+
* @throws {Error} If the input is not a locale.
|
|
44
|
+
*/
|
|
45
|
+
export function assertIsLocale(input) {
|
|
46
|
+
const locale = toLocale(input);
|
|
47
|
+
if (locale)
|
|
48
|
+
return locale;
|
|
49
|
+
throw new Error(`Invalid locale: ${input}. Expected one of: ${locales.join(", ")}`);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=check-locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-locale.js","sourceRoot":"","sources":["../../../src/compiler/runtime/check-locale.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAK;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAM;IAC9B,OAAO,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAK;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,IAAI,KAAK,CACd,mBAAmB,KAAK,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-locale.test.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/check-locale.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { newProject } from "@inlang/sdk";
|
|
2
|
+
import { expect, test } from "vitest";
|
|
3
|
+
import { createParaglide } from "../create-paraglide.js";
|
|
4
|
+
test("toLocale canonicalizes case-insensitive matches without throwing", async () => {
|
|
5
|
+
const runtime = await createParaglide({
|
|
6
|
+
blob: await newProject({
|
|
7
|
+
settings: {
|
|
8
|
+
baseLocale: "en",
|
|
9
|
+
locales: ["en", "pt-BR", "de-ch"],
|
|
10
|
+
},
|
|
11
|
+
}),
|
|
12
|
+
});
|
|
13
|
+
expect(runtime.toLocale("EN")).toBe("en");
|
|
14
|
+
expect(runtime.toLocale("pT-bR")).toBe("pt-BR");
|
|
15
|
+
expect(runtime.toLocale("de-CH")).toBe("de-ch");
|
|
16
|
+
expect(runtime.toLocale("es")).toBeUndefined();
|
|
17
|
+
expect(runtime.toLocale(null)).toBeUndefined();
|
|
18
|
+
expect(runtime.toLocale(undefined)).toBeUndefined();
|
|
19
|
+
expect(runtime.toLocale(123)).toBeUndefined();
|
|
20
|
+
expect(runtime.toLocale({})).toBeUndefined();
|
|
21
|
+
});
|
|
22
|
+
test("isLocale still checks canonical locale casing", async () => {
|
|
23
|
+
const runtime = await createParaglide({
|
|
24
|
+
blob: await newProject({
|
|
25
|
+
settings: {
|
|
26
|
+
baseLocale: "en",
|
|
27
|
+
locales: ["en", "pt-BR", "de-ch"],
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
expect(runtime.isLocale("pt-BR")).toBe(true);
|
|
32
|
+
expect(runtime.isLocale("EN")).toBe(false);
|
|
33
|
+
expect(runtime.isLocale(null)).toBe(false);
|
|
34
|
+
});
|
|
35
|
+
test("isLocale returns false for non-existent locales", async () => {
|
|
36
|
+
const runtime = await createParaglide({
|
|
37
|
+
blob: await newProject({
|
|
38
|
+
settings: {
|
|
39
|
+
baseLocale: "en",
|
|
40
|
+
locales: ["en", "pt-BR", "de-ch"],
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
expect(runtime.isLocale("es")).toBe(false);
|
|
45
|
+
expect(runtime.isLocale("xx")).toBe(false);
|
|
46
|
+
expect(runtime.isLocale("")).toBe(false);
|
|
47
|
+
expect(runtime.isLocale(undefined)).toBe(false);
|
|
48
|
+
expect(runtime.isLocale(123)).toBe(false);
|
|
49
|
+
expect(runtime.isLocale({})).toBe(false);
|
|
50
|
+
expect(runtime.isLocale([])).toBe(false);
|
|
51
|
+
});
|
|
52
|
+
test("assertIsLocale throws if the locale is not available", async () => {
|
|
53
|
+
const runtime = await createParaglide({
|
|
54
|
+
blob: await newProject({
|
|
55
|
+
settings: {
|
|
56
|
+
baseLocale: "en",
|
|
57
|
+
locales: ["en", "de"],
|
|
58
|
+
},
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
expect(() => runtime.assertIsLocale("es")).toThrow();
|
|
62
|
+
});
|
|
63
|
+
test("assertIsLocale throws for non-string inputs", async () => {
|
|
64
|
+
const runtime = await createParaglide({
|
|
65
|
+
blob: await newProject({
|
|
66
|
+
settings: {
|
|
67
|
+
baseLocale: "en",
|
|
68
|
+
locales: ["en", "de"],
|
|
69
|
+
},
|
|
70
|
+
}),
|
|
71
|
+
});
|
|
72
|
+
expect(() => runtime.assertIsLocale(null)).toThrow();
|
|
73
|
+
expect(() => runtime.assertIsLocale(undefined)).toThrow();
|
|
74
|
+
expect(() => runtime.assertIsLocale(123)).toThrow();
|
|
75
|
+
expect(() => runtime.assertIsLocale({})).toThrow();
|
|
76
|
+
expect(() => runtime.assertIsLocale([])).toThrow();
|
|
77
|
+
});
|
|
78
|
+
test("assertIsLocale passes if the locale is available", async () => {
|
|
79
|
+
const runtime = await createParaglide({
|
|
80
|
+
blob: await newProject({
|
|
81
|
+
settings: {
|
|
82
|
+
baseLocale: "en",
|
|
83
|
+
locales: ["en", "de"],
|
|
84
|
+
},
|
|
85
|
+
}),
|
|
86
|
+
});
|
|
87
|
+
expect(() => runtime.assertIsLocale("en")).not.toThrow();
|
|
88
|
+
});
|
|
89
|
+
test("assertIsLocale return value is a Locale", async () => {
|
|
90
|
+
const runtime = await createParaglide({
|
|
91
|
+
blob: await newProject({
|
|
92
|
+
settings: {
|
|
93
|
+
baseLocale: "en",
|
|
94
|
+
locales: ["en", "de"],
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
98
|
+
const locale = runtime.assertIsLocale("en");
|
|
99
|
+
locale;
|
|
100
|
+
});
|
|
101
|
+
test("assertIsLocale is case-insensitive", async () => {
|
|
102
|
+
const runtime = await createParaglide({
|
|
103
|
+
blob: await newProject({
|
|
104
|
+
settings: {
|
|
105
|
+
baseLocale: "en",
|
|
106
|
+
locales: ["en", "pt-BR", "de-ch"],
|
|
107
|
+
},
|
|
108
|
+
}),
|
|
109
|
+
});
|
|
110
|
+
expect(() => runtime.assertIsLocale("EN")).not.toThrow();
|
|
111
|
+
expect(() => runtime.assertIsLocale("pt-br")).not.toThrow();
|
|
112
|
+
expect(() => runtime.assertIsLocale("de-CH")).not.toThrow();
|
|
113
|
+
expect(runtime.assertIsLocale("EN")).toBe("en");
|
|
114
|
+
expect(runtime.assertIsLocale("pT-bR")).toBe("pt-BR");
|
|
115
|
+
expect(runtime.assertIsLocale("de-CH")).toBe("de-ch");
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=check-locale.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-locale.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/check-locale.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-runtime.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/create-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE;QAChB,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACrD,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;QACvD,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3D,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;QAC9C,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAC7C,qCAAqC,EAAE,eAAe,CAAC,uCAAuC,CAAC,CAAC;QAChG,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QACtC,wBAAwB,CAAC,EAAE,eAAe,CAAC,0BAA0B,CAAC,CAAC;QACvE,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACpD,wBAAwB,EAAE,WAAW,CACpC,eAAe,CAAC,0BAA0B,CAAC,CAC3C,CAAC;KACF,CAAC;CACF,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"create-runtime.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/create-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE;QAChB,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACrD,UAAU,EAAE,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;QACvD,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3D,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;QAC9C,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QAC7C,qCAAqC,EAAE,eAAe,CAAC,uCAAuC,CAAC,CAAC;QAChG,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QACtC,wBAAwB,CAAC,EAAE,eAAe,CAAC,0BAA0B,CAAC,CAAC;QACvE,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACpD,wBAAwB,EAAE,WAAW,CACpC,eAAe,CAAC,0BAA0B,CAAC,CAC3C,CAAC;KACF,CAAC;CACF,GAAG,MAAM,CAwKT"}
|
|
@@ -33,6 +33,14 @@ export function createRuntimeFile(args) {
|
|
|
33
33
|
...strategiesUsedByRoutes,
|
|
34
34
|
]);
|
|
35
35
|
const needsUrlPatternPolyfill = !defaultUrlPatternUsed || routeStrategies.length > 0;
|
|
36
|
+
// verify that urlPatterns' locales are valid
|
|
37
|
+
for (const urlPattern of urlPatterns) {
|
|
38
|
+
for (const [locale] of urlPattern.localized) {
|
|
39
|
+
if (!args.locales.includes(locale)) {
|
|
40
|
+
throw new Error(`Invalid locale "${locale}" in urlPatterns. It must be one of the locales defined in the "locales" array.`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
36
44
|
const code = `
|
|
37
45
|
${needsUrlPatternPolyfill ? `import "@inlang/paraglide-js/urlpattern-polyfill";` : "/** @type {any} */\nconst URLPattern = {}"}
|
|
38
46
|
|
|
@@ -53,7 +61,9 @@ ${injectCode("./variables.js")
|
|
|
53
61
|
.replace(`export const TREE_SHAKE_DEFAULT_URL_PATTERN_USED = false;`, `const TREE_SHAKE_DEFAULT_URL_PATTERN_USED = ${defaultUrlPatternUsed};`)
|
|
54
62
|
.replace(`export const experimentalMiddlewareLocaleSplitting = false;`, `export const experimentalMiddlewareLocaleSplitting = ${args.compilerOptions.experimentalMiddlewareLocaleSplitting};`)
|
|
55
63
|
.replace(`export const isServer = typeof window === "undefined";`, `export const isServer = ${args.compilerOptions.isServer};`)
|
|
56
|
-
.replace(`export const experimentalStaticLocale = undefined;`,
|
|
64
|
+
.replace(`export const experimentalStaticLocale = undefined;`, args.compilerOptions.experimentalStaticLocale
|
|
65
|
+
? `export const experimentalStaticLocale = assertIsLocale(${args.compilerOptions.experimentalStaticLocale});`
|
|
66
|
+
: `export const experimentalStaticLocale = undefined;`)
|
|
57
67
|
.replace(`export const localStorageKey = "PARAGLIDE_LOCALE";`, `export const localStorageKey = "${args.compilerOptions.localStorageKey}";`)
|
|
58
68
|
.replace(`export const TREE_SHAKE_LOCAL_STORAGE_STRATEGY_USED = false;`, `const TREE_SHAKE_LOCAL_STORAGE_STRATEGY_USED = ${allUsedStrategies.has("localStorage")};`)}
|
|
59
69
|
|
|
@@ -70,9 +80,7 @@ ${injectCode("./set-locale.js")}
|
|
|
70
80
|
|
|
71
81
|
${injectCode("./get-url-origin.js")}
|
|
72
82
|
|
|
73
|
-
${injectCode("./
|
|
74
|
-
|
|
75
|
-
${injectCode("./assert-is-locale.js")}
|
|
83
|
+
${injectCode("./check-locale.js")}
|
|
76
84
|
|
|
77
85
|
${injectCode("./extract-locale-from-request.js")}
|
|
78
86
|
|
|
@@ -114,12 +122,10 @@ ${injectCode("./type-definitions.js").replace(`@typedef {string} Locale`, `@type
|
|
|
114
122
|
function injectCode(path) {
|
|
115
123
|
const code = fs.readFileSync(new URL(path, import.meta.url), "utf-8");
|
|
116
124
|
// Regex to match single-line and multi-line imports
|
|
117
|
-
const importJsdocRegex = /\/\*\*(?:(?!\*\/)[\s\S])*?@import\b[\s\S]*?\*\//g;
|
|
118
125
|
const importRegex = /import\s+[\s\S]*?from\s+['"][^'"]+['"]\s*;?/g;
|
|
119
126
|
const sourceMapRegex = /\/\/# sourceMappingURL=.*$/gm;
|
|
120
127
|
const blockSourceMapRegex = /\/\*# sourceMappingURL=.*?\*\//g;
|
|
121
128
|
return code
|
|
122
|
-
.replace(importJsdocRegex, "")
|
|
123
129
|
.replace(importRegex, "")
|
|
124
130
|
.replace(sourceMapRegex, "")
|
|
125
131
|
.replace(blockSourceMapRegex, "")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-runtime.js","sourceRoot":"","sources":["../../../src/compiler/runtime/create-runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-runtime.js","sourceRoot":"","sources":["../../../src/compiler/runtime/create-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-cookie.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,2CAFa,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"extract-locale-from-cookie.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,2CAFa,MAAM,GAAG,SAAS,CAS9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toLocale } from "./check-locale.js";
|
|
2
2
|
import { cookieName } from "./variables.js";
|
|
3
3
|
/**
|
|
4
4
|
* Extracts a cookie from the document.
|
|
@@ -14,9 +14,6 @@ export function extractLocaleFromCookie() {
|
|
|
14
14
|
}
|
|
15
15
|
const match = document.cookie.match(new RegExp(`(^| )${cookieName}=([^;]+)`));
|
|
16
16
|
const locale = match?.[2];
|
|
17
|
-
|
|
18
|
-
return locale;
|
|
19
|
-
}
|
|
20
|
-
return undefined;
|
|
17
|
+
return toLocale(locale);
|
|
21
18
|
}
|
|
22
19
|
//# sourceMappingURL=extract-locale-from-cookie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-cookie.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"extract-locale-from-cookie.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACtC,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzD,OAAO;IACR,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,UAAU,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -32,6 +32,22 @@ test("matches the locale of a cookie", async () => {
|
|
|
32
32
|
const locale = runtime.extractLocaleFromCookie();
|
|
33
33
|
expect(locale).toBe("de");
|
|
34
34
|
});
|
|
35
|
+
test("canonicalizes cookie locale casing", async () => {
|
|
36
|
+
const runtime = await createParaglide({
|
|
37
|
+
blob: await newProject({
|
|
38
|
+
settings: {
|
|
39
|
+
baseLocale: "en",
|
|
40
|
+
locales: ["en", "de-CH"],
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
strategy: ["cookie"],
|
|
44
|
+
cookieName: "PARAGLIDE_LOCALE",
|
|
45
|
+
});
|
|
46
|
+
// @ts-expect-error - global variable definition
|
|
47
|
+
globalThis.document = {};
|
|
48
|
+
globalThis.document.cookie = "PARAGLIDE_LOCALE=de-ch;";
|
|
49
|
+
expect(runtime.extractLocaleFromCookie()).toBe("de-CH");
|
|
50
|
+
});
|
|
35
51
|
// useful scenario that avoids throws if the cookie uses an old locale that is
|
|
36
52
|
// not supported anymore or development on localhost shares multiple apps with
|
|
37
53
|
// different locales
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-cookie.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IACjE,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACrB;SACD,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;IACjD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACrB;SACD,CAAC;QACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,UAAU,CAAC,QAAQ,CAAC,MAAM;QACzB,0FAA0F,CAAC;IAE5F,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,8EAA8E;AAC9E,oBAAoB;AACpB,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAChF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACrB;SACD,CAAC;QACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,sBAAsB,CAAC;IAEpD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"extract-locale-from-cookie.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IACjE,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACrB;SACD,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;IACjD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACrB;SACD,CAAC;QACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,UAAU,CAAC,QAAQ,CAAC,MAAM;QACzB,0FAA0F,CAAC;IAE5F,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;IACrD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;aACxB;SACD,CAAC;QACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,yBAAyB,CAAC;IAEvD,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,8EAA8E;AAC9E,oBAAoB;AACpB,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAChF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACrB;SACD,CAAC;QACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,sBAAsB,CAAC;IAEpD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-header.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-header.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,iDAHW,OAAO,GACL,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"extract-locale-from-header.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-header.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,iDAHW,OAAO,GACL,MAAM,GAAG,SAAS,CAoC9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toLocale } from "./check-locale.js";
|
|
2
2
|
/**
|
|
3
3
|
* Extracts a locale from the accept-language header.
|
|
4
4
|
*
|
|
@@ -20,20 +20,22 @@ export function extractLocaleFromHeader(request) {
|
|
|
20
20
|
.map((lang) => {
|
|
21
21
|
const [tag, q = "1"] = lang.trim().split(";q=");
|
|
22
22
|
// Get both the full tag and base language code
|
|
23
|
-
const baseTag = tag?.split("-")[0]
|
|
23
|
+
const baseTag = tag?.split("-")[0];
|
|
24
24
|
return {
|
|
25
|
-
fullTag: tag
|
|
25
|
+
fullTag: tag,
|
|
26
26
|
baseTag,
|
|
27
27
|
q: Number(q),
|
|
28
28
|
};
|
|
29
29
|
})
|
|
30
30
|
.sort((a, b) => b.q - a.q);
|
|
31
31
|
for (const lang of languages) {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
const fullLocale = toLocale(lang.fullTag);
|
|
33
|
+
if (fullLocale) {
|
|
34
|
+
return fullLocale;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
const baseLocale = toLocale(lang.baseTag);
|
|
37
|
+
if (baseLocale) {
|
|
38
|
+
return baseLocale;
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-header.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-header.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"extract-locale-from-header.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-header.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAO;IAC9C,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,oBAAoB,EAAE,CAAC;QAC1B,yEAAyE;QACzE,MAAM,SAAS,GAAG,oBAAoB;aACpC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,+CAA+C;YAC/C,MAAM,OAAO,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;gBACN,OAAO,EAAE,GAAG;gBACZ,OAAO;gBACP,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;aACZ,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBAChB,OAAO,UAAU,CAAC;YACnB,CAAC;YAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBAChB,OAAO,UAAU,CAAC;YACnB,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -49,4 +49,20 @@ test("returns undefined if no Accept-Language header is present", async () => {
|
|
|
49
49
|
const locale = runtime.extractLocaleFromHeader(request);
|
|
50
50
|
expect(locale).toBeUndefined();
|
|
51
51
|
});
|
|
52
|
+
test("canonicalizes matched locale from Accept-Language header", async () => {
|
|
53
|
+
const runtime = await createParaglide({
|
|
54
|
+
blob: await newProject({
|
|
55
|
+
settings: {
|
|
56
|
+
baseLocale: "en",
|
|
57
|
+
locales: ["en", "pt-BR"],
|
|
58
|
+
},
|
|
59
|
+
}),
|
|
60
|
+
});
|
|
61
|
+
const request = new Request("http://example.com", {
|
|
62
|
+
headers: {
|
|
63
|
+
"Accept-Language": "pt-br, en;q=0.8",
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
expect(runtime.extractLocaleFromHeader(request)).toBe("pt-BR");
|
|
67
|
+
});
|
|
52
68
|
//# sourceMappingURL=extract-locale-from-header.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-header.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-header.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC3E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;aAC3B;SACD,CAAC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QACjD,OAAO,EAAE;YACR,iBAAiB,EAAE,+BAA+B;SAClD;KACD,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1B,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QAClD,OAAO,EAAE;YACR,iBAAiB,EAAE,+BAA+B;SAClD;KACD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,+EAA+E;IAC/E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,WAAW;IACX,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QAClD,OAAO,EAAE;YACR,iBAAiB,EAAE,mBAAmB;SACtC;KACD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;IAC5E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;aAC3B;SACD,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"extract-locale-from-header.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-header.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC3E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;aAC3B;SACD,CAAC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QACjD,OAAO,EAAE;YACR,iBAAiB,EAAE,+BAA+B;SAClD;KACD,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1B,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QAClD,OAAO,EAAE;YACR,iBAAiB,EAAE,+BAA+B;SAClD;KACD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,+EAA+E;IAC/E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,WAAW;IACX,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QAClD,OAAO,EAAE;YACR,iBAAiB,EAAE,mBAAmB;SACtC;KACD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;IAC5E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;aAC3B;SACD,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IAC3E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,IAAI,EAAE,MAAM,UAAU,CAAC;YACtB,QAAQ,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;aACxB;SACD,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QACjD,OAAO,EAAE;YACR,iBAAiB,EAAE,iBAAiB;SACpC;KACD,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-navigator.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-navigator.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,8CAFa,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"extract-locale-from-navigator.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-navigator.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,8CAFa,MAAM,GAAG,SAAS,CAyB9B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toLocale } from "./check-locale.js";
|
|
2
2
|
/**
|
|
3
3
|
* Negotiates a preferred language from navigator.languages.
|
|
4
4
|
*
|
|
@@ -15,15 +15,17 @@ export function extractLocaleFromNavigator() {
|
|
|
15
15
|
return undefined;
|
|
16
16
|
}
|
|
17
17
|
const languages = navigator.languages.map((lang) => ({
|
|
18
|
-
fullTag: lang
|
|
19
|
-
baseTag: lang.split("-")[0]
|
|
18
|
+
fullTag: lang,
|
|
19
|
+
baseTag: lang.split("-")[0],
|
|
20
20
|
}));
|
|
21
21
|
for (const lang of languages) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const fullLocale = toLocale(lang.fullTag);
|
|
23
|
+
if (fullLocale) {
|
|
24
|
+
return fullLocale;
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
const baseLocale = toLocale(lang.baseTag);
|
|
27
|
+
if (baseLocale) {
|
|
28
|
+
return baseLocale;
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-locale-from-navigator.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-navigator.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"extract-locale-from-navigator.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-navigator.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B;IACzC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3B,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,UAAU,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -27,4 +27,28 @@ test("returns the preferred locale from navigator.languages", async () => {
|
|
|
27
27
|
configurable: true,
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
|
+
test("canonicalizes navigator locale casing", async () => {
|
|
31
|
+
const originalNavigator = globalThis.navigator;
|
|
32
|
+
const runtime = await createParaglide({
|
|
33
|
+
blob: await newProject({
|
|
34
|
+
settings: {
|
|
35
|
+
baseLocale: "en",
|
|
36
|
+
locales: ["en", "pt-BR"],
|
|
37
|
+
},
|
|
38
|
+
}),
|
|
39
|
+
isServer: "false",
|
|
40
|
+
strategy: ["preferredLanguage"],
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(globalThis, "navigator", {
|
|
43
|
+
value: {
|
|
44
|
+
languages: ["pt-br", "en-US"],
|
|
45
|
+
},
|
|
46
|
+
configurable: true,
|
|
47
|
+
});
|
|
48
|
+
expect(runtime.getLocale()).toBe("pt-BR");
|
|
49
|
+
Object.defineProperty(globalThis, "navigator", {
|
|
50
|
+
value: originalNavigator,
|
|
51
|
+
configurable: true,
|
|
52
|
+
});
|
|
53
|
+
});
|
|
30
54
|
//# sourceMappingURL=extract-locale-from-navigator.test.js.map
|