@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.
Files changed (98) hide show
  1. package/dist/cli/steps/initialize-inlang-project.d.ts.map +1 -1
  2. package/dist/cli/steps/initialize-inlang-project.js +0 -3
  3. package/dist/cli/steps/initialize-inlang-project.js.map +1 -1
  4. package/dist/compiler/compile.d.ts.map +1 -1
  5. package/dist/compiler/compile.js +0 -2
  6. package/dist/compiler/compile.js.map +1 -1
  7. package/dist/compiler/runtime/check-locale.d.ts +32 -0
  8. package/dist/compiler/runtime/check-locale.d.ts.map +1 -0
  9. package/dist/compiler/runtime/check-locale.js +51 -0
  10. package/dist/compiler/runtime/check-locale.js.map +1 -0
  11. package/dist/compiler/runtime/check-locale.test.d.ts +2 -0
  12. package/dist/compiler/runtime/check-locale.test.d.ts.map +1 -0
  13. package/dist/compiler/runtime/check-locale.test.js +117 -0
  14. package/dist/compiler/runtime/check-locale.test.js.map +1 -0
  15. package/dist/compiler/runtime/create-runtime.d.ts.map +1 -1
  16. package/dist/compiler/runtime/create-runtime.js +12 -6
  17. package/dist/compiler/runtime/create-runtime.js.map +1 -1
  18. package/dist/compiler/runtime/extract-locale-from-cookie.d.ts.map +1 -1
  19. package/dist/compiler/runtime/extract-locale-from-cookie.js +2 -5
  20. package/dist/compiler/runtime/extract-locale-from-cookie.js.map +1 -1
  21. package/dist/compiler/runtime/extract-locale-from-cookie.test.js +16 -0
  22. package/dist/compiler/runtime/extract-locale-from-cookie.test.js.map +1 -1
  23. package/dist/compiler/runtime/extract-locale-from-header.d.ts.map +1 -1
  24. package/dist/compiler/runtime/extract-locale-from-header.js +9 -7
  25. package/dist/compiler/runtime/extract-locale-from-header.js.map +1 -1
  26. package/dist/compiler/runtime/extract-locale-from-header.test.js +16 -0
  27. package/dist/compiler/runtime/extract-locale-from-header.test.js.map +1 -1
  28. package/dist/compiler/runtime/extract-locale-from-navigator.d.ts.map +1 -1
  29. package/dist/compiler/runtime/extract-locale-from-navigator.js +9 -7
  30. package/dist/compiler/runtime/extract-locale-from-navigator.js.map +1 -1
  31. package/dist/compiler/runtime/extract-locale-from-navigator.test.js +24 -0
  32. package/dist/compiler/runtime/extract-locale-from-navigator.test.js.map +1 -1
  33. package/dist/compiler/runtime/extract-locale-from-request-async.d.ts.map +1 -1
  34. package/dist/compiler/runtime/extract-locale-from-request-async.js +5 -6
  35. package/dist/compiler/runtime/extract-locale-from-request-async.js.map +1 -1
  36. package/dist/compiler/runtime/extract-locale-from-request.d.ts.map +1 -1
  37. package/dist/compiler/runtime/extract-locale-from-request.js +4 -9
  38. package/dist/compiler/runtime/extract-locale-from-request.js.map +1 -1
  39. package/dist/compiler/runtime/extract-locale-from-url.d.ts +4 -0
  40. package/dist/compiler/runtime/extract-locale-from-url.d.ts.map +1 -1
  41. package/dist/compiler/runtime/extract-locale-from-url.js +8 -15
  42. package/dist/compiler/runtime/extract-locale-from-url.js.map +1 -1
  43. package/dist/compiler/runtime/extract-locale-from-url.test.js +32 -0
  44. package/dist/compiler/runtime/extract-locale-from-url.test.js.map +1 -1
  45. package/dist/compiler/runtime/get-locale.d.ts.map +1 -1
  46. package/dist/compiler/runtime/get-locale.js +10 -7
  47. package/dist/compiler/runtime/get-locale.js.map +1 -1
  48. package/dist/compiler/runtime/get-locale.test.js +12 -0
  49. package/dist/compiler/runtime/get-locale.test.js.map +1 -1
  50. package/dist/compiler/runtime/localize-href.d.ts +2 -2
  51. package/dist/compiler/runtime/localize-href.js +2 -2
  52. package/dist/compiler/runtime/localize-href.test.js +13 -0
  53. package/dist/compiler/runtime/localize-href.test.js.map +1 -1
  54. package/dist/compiler/runtime/localize-url.d.ts +2 -2
  55. package/dist/compiler/runtime/localize-url.d.ts.map +1 -1
  56. package/dist/compiler/runtime/localize-url.js +11 -11
  57. package/dist/compiler/runtime/localize-url.js.map +1 -1
  58. package/dist/compiler/runtime/localize-url.test.js +32 -0
  59. package/dist/compiler/runtime/localize-url.test.js.map +1 -1
  60. package/dist/compiler/runtime/set-locale.js +2 -2
  61. package/dist/compiler/runtime/set-locale.js.map +1 -1
  62. package/dist/compiler/runtime/set-locale.test.js +28 -0
  63. package/dist/compiler/runtime/set-locale.test.js.map +1 -1
  64. package/dist/compiler/runtime/should-redirect.d.ts +4 -5
  65. package/dist/compiler/runtime/should-redirect.d.ts.map +1 -1
  66. package/dist/compiler/runtime/should-redirect.js +9 -8
  67. package/dist/compiler/runtime/should-redirect.js.map +1 -1
  68. package/dist/compiler/runtime/type-definitions.js +1 -1
  69. package/dist/compiler/runtime/type.d.ts +3 -2
  70. package/dist/compiler/runtime/type.d.ts.map +1 -1
  71. package/dist/compiler/runtime/type.test.js +18 -0
  72. package/dist/compiler/runtime/type.test.js.map +1 -1
  73. package/dist/compiler/runtime/variables.d.ts.map +1 -1
  74. package/dist/compiler/runtime/variables.js +2 -4
  75. package/dist/compiler/runtime/variables.js.map +1 -1
  76. package/dist/services/env-variables/create-index-file.js +0 -1
  77. package/dist/services/env-variables/create-index-file.js.map +1 -1
  78. package/dist/services/env-variables/index.d.ts +0 -1
  79. package/dist/services/env-variables/index.d.ts.map +1 -1
  80. package/dist/services/env-variables/index.js +1 -2
  81. package/dist/services/env-variables/index.js.map +1 -1
  82. package/package.json +2 -2
  83. package/dist/compiler/runtime/assert-is-locale.d.ts +0 -9
  84. package/dist/compiler/runtime/assert-is-locale.d.ts.map +0 -1
  85. package/dist/compiler/runtime/assert-is-locale.js +0 -20
  86. package/dist/compiler/runtime/assert-is-locale.js.map +0 -1
  87. package/dist/compiler/runtime/assert-is-locale.test.d.ts +0 -2
  88. package/dist/compiler/runtime/assert-is-locale.test.d.ts.map +0 -1
  89. package/dist/compiler/runtime/assert-is-locale.test.js +0 -70
  90. package/dist/compiler/runtime/assert-is-locale.test.js.map +0 -1
  91. package/dist/compiler/runtime/is-locale.d.ts +0 -16
  92. package/dist/compiler/runtime/is-locale.d.ts.map +0 -1
  93. package/dist/compiler/runtime/is-locale.js +0 -23
  94. package/dist/compiler/runtime/is-locale.js.map +0 -1
  95. package/dist/compiler/runtime/is-locale.test.d.ts +0 -2
  96. package/dist/compiler/runtime/is-locale.test.d.ts.map +0 -1
  97. package/dist/compiler/runtime/is-locale.test.js +0 -32
  98. 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;AAGzB,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;AAgHF,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,CAwEA,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAazD;AAcD;;GAEG;AACH,eAAO,MAAM,OAAO,sbACga,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":"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"}
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":"AASA,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,CAwE5B"}
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"}
@@ -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,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,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;gBACzB,KAAK,EAAE,aAAa,CAAC,YAAY;aACjC,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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=check-locale.test.d.ts.map
@@ -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,CA6JT"}
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;`, `export const experimentalStaticLocale = ${args.compilerOptions.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("./is-locale.js")}
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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAkBjC;IACA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,IAAI,EAAE,CAAC;IAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,IAAI,EAAE,CAAC;IAEnE,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAElC,+DAA+D;IAC/D,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACpD,qBAAqB,GAAG,IAAI,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC;YAChB,OAAO,EAAE,2CAA2C;YACpD,SAAS,EAAE,EAAE;SACb,CAAC,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,SAAS;YACV,CAAC;YACD,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;gBAC9B,MAAM;gBACN,kCAAkC,MAAM,aAAa;aACrD,CAAC,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,UAAU;YACf,2CAA2C;SAC3C,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,CACxE,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CACzD,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;QACjC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;QAChC,GAAG,sBAAsB;KACzB,CAAC,CAAC;IACH,MAAM,uBAAuB,GAC5B,CAAC,qBAAqB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtD,6CAA6C;IAC7C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACd,mBAAmB,MAAM,iFAAiF,CAC1G,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,IAAI,GAAG;EACZ,uBAAuB,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,2CAA2C;;EAE5H,UAAU,CAAC,gBAAgB,CAAC;SAC5B,OAAO,CACP,iCAAiC,EACjC,8BAA8B,IAAI,CAAC,UAAU,IAAI,CACjD;SACA,OAAO,CACP,yEAAyE,EACzE,gDAAgD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAChF;SACA,OAAO,CACP,6CAA6C,EAC7C,2BAA2B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CACpF;SACA,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;SAC9D,OAAO,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;SACrE,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;SAClE,OAAO,CACP,oCAAoC,EACpC,kCAAkC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAC7E;SACA,OAAO,CACP,uDAAuD,EACvD,2CAA2C,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAC7E;SACA,OAAO,CACP,oDAAoD,EACpD,wCAAwC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CACvE;SACA,OAAO,CACP,gEAAgE,EAChE,oDAAoD,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAC9F;SACA,OAAO,CACP,mEAAmE,EACnE,uDAAuD,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CACpG;SACA,OAAO,CACP,gCAAgC,EAChC,8BAA8B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CACrE;SACA,OAAO,CACP,gDAAgD,EAChD,2CAA2C,IAAI,CAAC,eAAe,CAAC,wBAAwB,GAAG,CAC3F;SACA,OAAO,CACP,2DAA2D,EAC3D,+CAA+C,qBAAqB,GAAG,CACvE;SACA,OAAO,CACP,6DAA6D,EAC7D,wDAAwD,IAAI,CAAC,eAAe,CAAC,qCAAqC,GAAG,CACrH;SACA,OAAO,CACP,wDAAwD,EACxD,2BAA2B,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,CAC3D;SACA,OAAO,CACP,oDAAoD,EACpD,IAAI,CAAC,eAAe,CAAC,wBAAwB;QAC5C,CAAC,CAAC,0DAA0D,IAAI,CAAC,eAAe,CAAC,wBAAwB,IAAI;QAC7G,CAAC,CAAC,oDAAoD,CACvD;SACA,OAAO,CACP,oDAAoD,EACpD,mCAAmC,IAAI,CAAC,eAAe,CAAC,eAAe,IAAI,CAC3E;SACA,OAAO,CACP,8DAA8D,EAC9D,kDAAkD,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAC1F;;;;;;;EAOA,UAAU,CAAC,iBAAiB,CAAC;;EAE7B,UAAU,CAAC,yBAAyB,CAAC;;EAErC,UAAU,CAAC,iBAAiB,CAAC;;EAE7B,UAAU,CAAC,qBAAqB,CAAC;;EAEjC,UAAU,CAAC,mBAAmB,CAAC;;EAE/B,UAAU,CAAC,kCAAkC,CAAC;;EAE9C,UAAU,CAAC,wCAAwC,CAAC;;EAEpD,UAAU,CAAC,iCAAiC,CAAC;;EAE7C,UAAU,CAAC,iCAAiC,CAAC;;EAE7C,UAAU,CAAC,oCAAoC,CAAC;;EAEhD,UAAU,CAAC,8BAA8B,CAAC;;EAE1C,UAAU,CAAC,mBAAmB,CAAC;;EAE/B,UAAU,CAAC,sBAAsB,CAAC;;EAElC,UAAU,CAAC,oBAAoB,CAAC;;EAEhC,UAAU,CAAC,yBAAyB,CAAC;;EAErC,UAAU,CAAC,qCAAqC,CAAC;;EAEjD,UAAU,CAAC,eAAe,CAAC;;EAE3B,UAAU,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAC5C,0BAA0B,EAC1B,0CAA0C,CAC1C;CACA,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,IAAY;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,oDAAoD;IACpD,MAAM,WAAW,GAAG,8CAA8C,CAAC;IACnE,MAAM,cAAc,GAAG,8BAA8B,CAAC;IACtD,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;IAC9D,OAAO,IAAI;SACT,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,IAAI,EAAE,CAAC;AACV,CAAC"}
@@ -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,CAY9B"}
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 { isLocale } from "./is-locale.js";
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
- if (isLocale(locale)) {
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,gBAAgB,CAAC;AAC1C,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,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
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,CAgC9B"}
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 { isLocale } from "./is-locale.js";
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]?.toLowerCase();
23
+ const baseTag = tag?.split("-")[0];
24
24
  return {
25
- fullTag: tag?.toLowerCase(),
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
- if (isLocale(lang.fullTag)) {
33
- return lang.fullTag;
32
+ const fullLocale = toLocale(lang.fullTag);
33
+ if (fullLocale) {
34
+ return fullLocale;
34
35
  }
35
- else if (isLocale(lang.baseTag)) {
36
- return lang.baseTag;
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,gBAAgB,CAAC;AAE1C;;;;;;;;;;;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,EAAE,WAAW,EAAE,CAAC;YAClD,OAAO;gBACN,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE;gBAC3B,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,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;YACrB,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,OAAO,CAAC;YACrB,CAAC;QACF,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
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,CAqB9B"}
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 { isLocale } from "./is-locale.js";
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.toLowerCase(),
19
- baseTag: lang.split("-")[0]?.toLowerCase(),
18
+ fullTag: lang,
19
+ baseTag: lang.split("-")[0],
20
20
  }));
21
21
  for (const lang of languages) {
22
- if (isLocale(lang.fullTag)) {
23
- return lang.fullTag;
22
+ const fullLocale = toLocale(lang.fullTag);
23
+ if (fullLocale) {
24
+ return fullLocale;
24
25
  }
25
- else if (isLocale(lang.baseTag)) {
26
- return lang.baseTag;
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,gBAAgB,CAAC;AAE1C;;;;;;;;;;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,CAAC,WAAW,EAAE;QAC3B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;KAC1C,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
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