@inlang/paraglide-js 2.23.1 → 2.24.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 (454) hide show
  1. package/dist/bundler-plugins/esbuild.d.ts +0 -1
  2. package/dist/bundler-plugins/esbuild.js.map +1 -1
  3. package/dist/bundler-plugins/index.d.ts +0 -1
  4. package/dist/bundler-plugins/index.js.map +1 -1
  5. package/dist/bundler-plugins/per-locale-build/constants.d.ts +0 -1
  6. package/dist/bundler-plugins/per-locale-build/constants.js.map +1 -1
  7. package/dist/bundler-plugins/per-locale-build/index.d.ts +0 -1
  8. package/dist/bundler-plugins/per-locale-build/index.js.map +1 -1
  9. package/dist/bundler-plugins/per-locale-build/locale-id.d.ts +0 -1
  10. package/dist/bundler-plugins/per-locale-build/locale-id.js.map +1 -1
  11. package/dist/bundler-plugins/per-locale-build/types.d.ts +0 -1
  12. package/dist/bundler-plugins/per-locale-build/types.js.map +1 -1
  13. package/dist/bundler-plugins/per-locale-build/vite-environments.d.ts +0 -1
  14. package/dist/bundler-plugins/per-locale-build/vite-environments.js +12 -7
  15. package/dist/bundler-plugins/per-locale-build/vite-environments.js.map +1 -1
  16. package/dist/bundler-plugins/per-locale-build/vite-environments.test.d.ts +0 -1
  17. package/dist/bundler-plugins/per-locale-build/vite-environments.test.js.map +1 -1
  18. package/dist/bundler-plugins/rolldown.d.ts +0 -1
  19. package/dist/bundler-plugins/rolldown.js.map +1 -1
  20. package/dist/bundler-plugins/rollup.d.ts +0 -1
  21. package/dist/bundler-plugins/rollup.js.map +1 -1
  22. package/dist/bundler-plugins/rspack.d.ts +0 -1
  23. package/dist/bundler-plugins/rspack.js.map +1 -1
  24. package/dist/bundler-plugins/unplugin.d.ts +0 -1
  25. package/dist/bundler-plugins/unplugin.js +134 -4
  26. package/dist/bundler-plugins/unplugin.js.map +1 -1
  27. package/dist/bundler-plugins/unplugin.test.d.ts +0 -1
  28. package/dist/bundler-plugins/unplugin.test.js +77 -0
  29. package/dist/bundler-plugins/unplugin.test.js.map +1 -1
  30. package/dist/bundler-plugins/vite.d.ts +0 -1
  31. package/dist/bundler-plugins/vite.js.map +1 -1
  32. package/dist/bundler-plugins/vite.test.d.ts +0 -1
  33. package/dist/bundler-plugins/vite.test.js.map +1 -1
  34. package/dist/bundler-plugins/webpack.d.ts +0 -1
  35. package/dist/bundler-plugins/webpack.js.map +1 -1
  36. package/dist/cli/commands/compile/command.d.ts +0 -1
  37. package/dist/cli/commands/compile/command.js +8 -1
  38. package/dist/cli/commands/compile/command.js.map +1 -1
  39. package/dist/cli/commands/compile/command.test.d.ts +0 -1
  40. package/dist/cli/commands/compile/command.test.js +45 -0
  41. package/dist/cli/commands/compile/command.test.js.map +1 -1
  42. package/dist/cli/commands/init/command.d.ts +0 -1
  43. package/dist/cli/commands/init/command.js.map +1 -1
  44. package/dist/cli/defaults.d.ts +0 -1
  45. package/dist/cli/defaults.js.map +1 -1
  46. package/dist/cli/index.d.ts +0 -1
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/steps/add-vite-plugin.d.ts +0 -1
  49. package/dist/cli/steps/add-vite-plugin.js.map +1 -1
  50. package/dist/cli/steps/add-vite-plugin.test.d.ts +0 -1
  51. package/dist/cli/steps/add-vite-plugin.test.js.map +1 -1
  52. package/dist/cli/steps/check-for-uncomitted-changes.d.ts +0 -1
  53. package/dist/cli/steps/check-for-uncomitted-changes.js.map +1 -1
  54. package/dist/cli/steps/detect-bundler.d.ts +0 -1
  55. package/dist/cli/steps/detect-bundler.js.map +1 -1
  56. package/dist/cli/steps/detect-bundler.test.d.ts +0 -1
  57. package/dist/cli/steps/detect-bundler.test.js.map +1 -1
  58. package/dist/cli/steps/initialize-inlang-project.d.ts +0 -1
  59. package/dist/cli/steps/initialize-inlang-project.js.map +1 -1
  60. package/dist/cli/steps/maybe-add-machine-translation.d.ts +0 -1
  61. package/dist/cli/steps/maybe-add-machine-translation.js.map +1 -1
  62. package/dist/cli/steps/maybe-add-sherlock.d.ts +0 -1
  63. package/dist/cli/steps/maybe-add-sherlock.js.map +1 -1
  64. package/dist/cli/steps/prompt-for-outdir.d.ts +0 -1
  65. package/dist/cli/steps/prompt-for-outdir.js.map +1 -1
  66. package/dist/cli/steps/update-package-json.d.ts +0 -1
  67. package/dist/cli/steps/update-package-json.js.map +1 -1
  68. package/dist/cli/steps/update-ts-config.d.ts +0 -1
  69. package/dist/cli/steps/update-ts-config.js.map +1 -1
  70. package/dist/cli/steps/update-ts-config.test.d.ts +0 -1
  71. package/dist/cli/steps/update-ts-config.test.js.map +1 -1
  72. package/dist/cli/utils.d.ts +0 -1
  73. package/dist/cli/utils.js.map +1 -1
  74. package/dist/compiler/compile-annotation.d.ts +0 -1
  75. package/dist/compiler/compile-annotation.js.map +1 -1
  76. package/dist/compiler/compile-bundle.d.ts +0 -1
  77. package/dist/compiler/compile-bundle.js.map +1 -1
  78. package/dist/compiler/compile-bundle.test.d.ts +0 -1
  79. package/dist/compiler/compile-bundle.test.js.map +1 -1
  80. package/dist/compiler/compile-local-variable.d.ts +0 -1
  81. package/dist/compiler/compile-local-variable.js.map +1 -1
  82. package/dist/compiler/compile-local-variable.test.d.ts +0 -1
  83. package/dist/compiler/compile-local-variable.test.js.map +1 -1
  84. package/dist/compiler/compile-message.d.ts +0 -1
  85. package/dist/compiler/compile-message.js.map +1 -1
  86. package/dist/compiler/compile-message.test.d.ts +0 -1
  87. package/dist/compiler/compile-message.test.js.map +1 -1
  88. package/dist/compiler/compile-pattern.d.ts +0 -1
  89. package/dist/compiler/compile-pattern.js.map +1 -1
  90. package/dist/compiler/compile-pattern.test.d.ts +0 -1
  91. package/dist/compiler/compile-pattern.test.js.map +1 -1
  92. package/dist/compiler/compile-project.d.ts +0 -1
  93. package/dist/compiler/compile-project.js.map +1 -1
  94. package/dist/compiler/compile-project.test.d.ts +0 -1
  95. package/dist/compiler/compile-project.test.js.map +1 -1
  96. package/dist/compiler/compile.bench.d.ts +0 -1
  97. package/dist/compiler/compile.bench.js.map +1 -1
  98. package/dist/compiler/compile.d.ts +0 -1
  99. package/dist/compiler/compile.js +0 -15
  100. package/dist/compiler/compile.js.map +1 -1
  101. package/dist/compiler/compile.test.d.ts +0 -1
  102. package/dist/compiler/compile.test.js +0 -52
  103. package/dist/compiler/compile.test.js.map +1 -1
  104. package/dist/compiler/compiler-options.d.ts +8 -1
  105. package/dist/compiler/compiler-options.js.map +1 -1
  106. package/dist/compiler/create-paraglide.d.ts +0 -1
  107. package/dist/compiler/create-paraglide.js.map +1 -1
  108. package/dist/compiler/create-paraglide.test.d.ts +0 -1
  109. package/dist/compiler/create-paraglide.test.js.map +1 -1
  110. package/dist/compiler/create-readme.d.ts +0 -1
  111. package/dist/compiler/create-readme.js.map +1 -1
  112. package/dist/compiler/emit-ts-declarations.d.ts +0 -1
  113. package/dist/compiler/emit-ts-declarations.interop.test.d.ts +0 -1
  114. package/dist/compiler/emit-ts-declarations.interop.test.js.map +1 -1
  115. package/dist/compiler/emit-ts-declarations.js.map +1 -1
  116. package/dist/compiler/emit-ts-declarations.test.d.ts +0 -1
  117. package/dist/compiler/emit-ts-declarations.test.js.map +1 -1
  118. package/dist/compiler/index.d.ts +0 -1
  119. package/dist/compiler/index.js.map +1 -1
  120. package/dist/compiler/jsdoc-types.d.ts +0 -1
  121. package/dist/compiler/jsdoc-types.js.map +1 -1
  122. package/dist/compiler/jsdoc-types.test.d.ts +0 -1
  123. package/dist/compiler/jsdoc-types.test.js.map +1 -1
  124. package/dist/compiler/match-literals.d.ts +0 -1
  125. package/dist/compiler/match-literals.js.map +1 -1
  126. package/dist/compiler/output-structure/locale-modules.d.ts +0 -1
  127. package/dist/compiler/output-structure/locale-modules.js.map +1 -1
  128. package/dist/compiler/output-structure/locale-modules.test.d.ts +0 -1
  129. package/dist/compiler/output-structure/locale-modules.test.js.map +1 -1
  130. package/dist/compiler/output-structure/message-modules.d.ts +0 -1
  131. package/dist/compiler/output-structure/message-modules.js.map +1 -1
  132. package/dist/compiler/output-structure/message-modules.test.d.ts +0 -1
  133. package/dist/compiler/output-structure/message-modules.test.js.map +1 -1
  134. package/dist/compiler/per-locale-build.d.ts +0 -1
  135. package/dist/compiler/per-locale-build.js.map +1 -1
  136. package/dist/compiler/registry.d.ts +0 -1
  137. package/dist/compiler/registry.js.map +1 -1
  138. package/dist/compiler/resolve-tsc-js-path.d.ts +0 -1
  139. package/dist/compiler/resolve-tsc-js-path.js.map +1 -1
  140. package/dist/compiler/runtime/check-locale.d.ts +0 -1
  141. package/dist/compiler/runtime/check-locale.js.map +1 -1
  142. package/dist/compiler/runtime/check-locale.test.d.ts +0 -1
  143. package/dist/compiler/runtime/check-locale.test.js.map +1 -1
  144. package/dist/compiler/runtime/create-runtime.d.ts +1 -1
  145. package/dist/compiler/runtime/create-runtime.js +11 -0
  146. package/dist/compiler/runtime/create-runtime.js.map +1 -1
  147. package/dist/compiler/runtime/exec-url-pattern.d.ts +9 -0
  148. package/dist/compiler/runtime/exec-url-pattern.js +31 -0
  149. package/dist/compiler/runtime/exec-url-pattern.js.map +1 -0
  150. package/dist/compiler/runtime/extract-locale-from-cookie.d.ts +0 -1
  151. package/dist/compiler/runtime/extract-locale-from-cookie.js.map +1 -1
  152. package/dist/compiler/runtime/extract-locale-from-cookie.test.d.ts +0 -1
  153. package/dist/compiler/runtime/extract-locale-from-cookie.test.js.map +1 -1
  154. package/dist/compiler/runtime/extract-locale-from-header.d.ts +0 -1
  155. package/dist/compiler/runtime/extract-locale-from-header.js.map +1 -1
  156. package/dist/compiler/runtime/extract-locale-from-header.test.d.ts +0 -1
  157. package/dist/compiler/runtime/extract-locale-from-header.test.js.map +1 -1
  158. package/dist/compiler/runtime/extract-locale-from-navigator.d.ts +0 -1
  159. package/dist/compiler/runtime/extract-locale-from-navigator.js.map +1 -1
  160. package/dist/compiler/runtime/extract-locale-from-navigator.test.d.ts +0 -1
  161. package/dist/compiler/runtime/extract-locale-from-navigator.test.js.map +1 -1
  162. package/dist/compiler/runtime/extract-locale-from-request-async.d.ts +0 -1
  163. package/dist/compiler/runtime/extract-locale-from-request-async.js.map +1 -1
  164. package/dist/compiler/runtime/extract-locale-from-request-async.test.d.ts +0 -1
  165. package/dist/compiler/runtime/extract-locale-from-request-async.test.js.map +1 -1
  166. package/dist/compiler/runtime/extract-locale-from-request.d.ts +0 -1
  167. package/dist/compiler/runtime/extract-locale-from-request.js.map +1 -1
  168. package/dist/compiler/runtime/extract-locale-from-request.test.d.ts +0 -1
  169. package/dist/compiler/runtime/extract-locale-from-request.test.js.map +1 -1
  170. package/dist/compiler/runtime/extract-locale-from-url.d.ts +0 -1
  171. package/dist/compiler/runtime/extract-locale-from-url.js +8 -3
  172. package/dist/compiler/runtime/extract-locale-from-url.js.map +1 -1
  173. package/dist/compiler/runtime/extract-locale-from-url.test.d.ts +0 -1
  174. package/dist/compiler/runtime/extract-locale-from-url.test.js.map +1 -1
  175. package/dist/compiler/runtime/generate-static-localized-urls.d.ts +0 -1
  176. package/dist/compiler/runtime/generate-static-localized-urls.js +12 -6
  177. package/dist/compiler/runtime/generate-static-localized-urls.js.map +1 -1
  178. package/dist/compiler/runtime/generate-static-localized-urls.test.d.ts +0 -1
  179. package/dist/compiler/runtime/generate-static-localized-urls.test.js +46 -0
  180. package/dist/compiler/runtime/generate-static-localized-urls.test.js.map +1 -1
  181. package/dist/compiler/runtime/get-locale.d.ts +0 -1
  182. package/dist/compiler/runtime/get-locale.js.map +1 -1
  183. package/dist/compiler/runtime/get-locale.test.d.ts +0 -1
  184. package/dist/compiler/runtime/get-locale.test.js.map +1 -1
  185. package/dist/compiler/runtime/get-text-direction.d.ts +0 -1
  186. package/dist/compiler/runtime/get-text-direction.js.map +1 -1
  187. package/dist/compiler/runtime/get-text-direction.test.d.ts +0 -1
  188. package/dist/compiler/runtime/get-text-direction.test.js.map +1 -1
  189. package/dist/compiler/runtime/get-url-origin.d.ts +0 -1
  190. package/dist/compiler/runtime/get-url-origin.js.map +1 -1
  191. package/dist/compiler/runtime/get-url-origin.test.d.ts +0 -1
  192. package/dist/compiler/runtime/get-url-origin.test.js.map +1 -1
  193. package/dist/compiler/runtime/localize-href.bench.d.ts +1 -0
  194. package/dist/compiler/runtime/localize-href.bench.js +77 -0
  195. package/dist/compiler/runtime/localize-href.bench.js.map +1 -0
  196. package/dist/compiler/runtime/localize-href.d.ts +0 -1
  197. package/dist/compiler/runtime/localize-href.js.map +1 -1
  198. package/dist/compiler/runtime/localize-href.test.d.ts +0 -1
  199. package/dist/compiler/runtime/localize-href.test.js +43 -0
  200. package/dist/compiler/runtime/localize-href.test.js.map +1 -1
  201. package/dist/compiler/runtime/localize-url.d.ts +14 -1
  202. package/dist/compiler/runtime/localize-url.js +376 -18
  203. package/dist/compiler/runtime/localize-url.js.map +1 -1
  204. package/dist/compiler/runtime/localize-url.test.d.ts +0 -1
  205. package/dist/compiler/runtime/localize-url.test.js +163 -0
  206. package/dist/compiler/runtime/localize-url.test.js.map +1 -1
  207. package/dist/compiler/runtime/normalize-trailing-slash.d.ts +10 -0
  208. package/dist/compiler/runtime/normalize-trailing-slash.js +23 -0
  209. package/dist/compiler/runtime/normalize-trailing-slash.js.map +1 -0
  210. package/dist/compiler/runtime/route-strategy.d.ts +0 -1
  211. package/dist/compiler/runtime/route-strategy.js +4 -2
  212. package/dist/compiler/runtime/route-strategy.js.map +1 -1
  213. package/dist/compiler/runtime/set-locale.d.ts +0 -1
  214. package/dist/compiler/runtime/set-locale.js.map +1 -1
  215. package/dist/compiler/runtime/set-locale.test.d.ts +0 -1
  216. package/dist/compiler/runtime/set-locale.test.js.map +1 -1
  217. package/dist/compiler/runtime/should-redirect.d.ts +0 -1
  218. package/dist/compiler/runtime/should-redirect.js +4 -1
  219. package/dist/compiler/runtime/should-redirect.js.map +1 -1
  220. package/dist/compiler/runtime/should-redirect.test.d.ts +0 -1
  221. package/dist/compiler/runtime/should-redirect.test.js +30 -2
  222. package/dist/compiler/runtime/should-redirect.test.js.map +1 -1
  223. package/dist/compiler/runtime/strategy.d.ts +0 -1
  224. package/dist/compiler/runtime/strategy.js.map +1 -1
  225. package/dist/compiler/runtime/strategy.test.d.ts +0 -1
  226. package/dist/compiler/runtime/strategy.test.js.map +1 -1
  227. package/dist/compiler/runtime/track-message-call.d.ts +0 -1
  228. package/dist/compiler/runtime/track-message-call.js.map +1 -1
  229. package/dist/compiler/runtime/track-message-call.test.d.ts +0 -1
  230. package/dist/compiler/runtime/track-message-call.test.js.map +1 -1
  231. package/dist/compiler/runtime/type-definitions.d.ts +0 -1
  232. package/dist/compiler/runtime/type-definitions.js.map +1 -1
  233. package/dist/compiler/runtime/type.d.ts +1 -1
  234. package/dist/compiler/runtime/type.js.map +1 -1
  235. package/dist/compiler/runtime/type.test.d.ts +0 -1
  236. package/dist/compiler/runtime/type.test.js.map +1 -1
  237. package/dist/compiler/runtime/variables.d.ts +6 -1
  238. package/dist/compiler/runtime/variables.js +6 -0
  239. package/dist/compiler/runtime/variables.js.map +1 -1
  240. package/dist/compiler/safe-module-id.d.ts +0 -1
  241. package/dist/compiler/safe-module-id.js.map +1 -1
  242. package/dist/compiler/safe-module-id.test.d.ts +0 -1
  243. package/dist/compiler/safe-module-id.test.js.map +1 -1
  244. package/dist/compiler/seed-previous-compilation.d.ts +0 -1
  245. package/dist/compiler/seed-previous-compilation.js.map +1 -1
  246. package/dist/compiler/server/create-server-file.d.ts +0 -1
  247. package/dist/compiler/server/create-server-file.js.map +1 -1
  248. package/dist/compiler/server/create-server-file.test.d.ts +0 -1
  249. package/dist/compiler/server/create-server-file.test.js.map +1 -1
  250. package/dist/compiler/server/middleware.d.ts +0 -1
  251. package/dist/compiler/server/middleware.js +6 -2
  252. package/dist/compiler/server/middleware.js.map +1 -1
  253. package/dist/compiler/server/middleware.test.d.ts +0 -1
  254. package/dist/compiler/server/middleware.test.js +34 -0
  255. package/dist/compiler/server/middleware.test.js.map +1 -1
  256. package/dist/compiler/server/type.d.ts +0 -1
  257. package/dist/compiler/server/type.js.map +1 -1
  258. package/dist/compiler/types.d.ts +0 -1
  259. package/dist/compiler/types.js.map +1 -1
  260. package/dist/compiler/variable-access.d.ts +0 -1
  261. package/dist/compiler/variable-access.js.map +1 -1
  262. package/dist/index.d.ts +0 -1
  263. package/dist/index.js.map +1 -1
  264. package/dist/index.test.d.ts +1 -0
  265. package/dist/index.test.js +9 -0
  266. package/dist/index.test.js.map +1 -0
  267. package/dist/services/codegen/escape.d.ts +0 -1
  268. package/dist/services/codegen/escape.js.map +1 -1
  269. package/dist/services/codegen/quotes.d.ts +0 -1
  270. package/dist/services/codegen/quotes.js.map +1 -1
  271. package/dist/services/env-variables/create-index-file.d.ts +0 -1
  272. package/dist/services/env-variables/create-index-file.js.map +1 -1
  273. package/dist/services/env-variables/index.d.ts +0 -1
  274. package/dist/services/env-variables/index.js +1 -1
  275. package/dist/services/env-variables/index.js.map +1 -1
  276. package/dist/services/environment/package.d.ts +0 -1
  277. package/dist/services/environment/package.js.map +1 -1
  278. package/dist/services/environment/package.test.d.ts +0 -1
  279. package/dist/services/environment/package.test.js.map +1 -1
  280. package/dist/services/error-handling.d.ts +0 -1
  281. package/dist/services/error-handling.js.map +1 -1
  282. package/dist/services/error-handling.test.d.ts +0 -1
  283. package/dist/services/error-handling.test.js.map +1 -1
  284. package/dist/services/file-handling/exists.d.ts +0 -1
  285. package/dist/services/file-handling/exists.js.map +1 -1
  286. package/dist/services/file-handling/exists.test.d.ts +0 -1
  287. package/dist/services/file-handling/exists.test.js.map +1 -1
  288. package/dist/services/file-handling/types.d.ts +0 -1
  289. package/dist/services/file-handling/types.js.map +1 -1
  290. package/dist/services/file-handling/write-output.bench.d.ts +1 -0
  291. package/dist/services/file-handling/write-output.bench.js +24 -0
  292. package/dist/services/file-handling/write-output.bench.js.map +1 -0
  293. package/dist/services/file-handling/write-output.d.ts +0 -1
  294. package/dist/services/file-handling/write-output.js +16 -20
  295. package/dist/services/file-handling/write-output.js.map +1 -1
  296. package/dist/services/file-handling/write-output.test.d.ts +0 -1
  297. package/dist/services/file-handling/write-output.test.js +27 -0
  298. package/dist/services/file-handling/write-output.test.js.map +1 -1
  299. package/dist/services/file-watching/tracked-fs.d.ts +0 -1
  300. package/dist/services/file-watching/tracked-fs.js.map +1 -1
  301. package/dist/services/file-watching/tracked-fs.test.d.ts +0 -1
  302. package/dist/services/file-watching/tracked-fs.test.js.map +1 -1
  303. package/dist/services/logger/index.d.ts +0 -1
  304. package/dist/services/logger/index.js.map +1 -1
  305. package/dist/services/lookup.d.ts +0 -1
  306. package/dist/services/lookup.js.map +1 -1
  307. package/dist/urlpattern-polyfill/index.d.ts +0 -1
  308. package/dist/urlpattern-polyfill/index.js.map +1 -1
  309. package/dist/utilities/detect-json-formatting.d.ts +0 -1
  310. package/dist/utilities/detect-json-formatting.js.map +1 -1
  311. package/dist/utilities/node-normalize-path.d.ts +0 -1
  312. package/dist/utilities/node-normalize-path.js.map +1 -1
  313. package/package.json +2 -2
  314. package/dist/bundler-plugins/esbuild.d.ts.map +0 -1
  315. package/dist/bundler-plugins/index.d.ts.map +0 -1
  316. package/dist/bundler-plugins/per-locale-build/constants.d.ts.map +0 -1
  317. package/dist/bundler-plugins/per-locale-build/index.d.ts.map +0 -1
  318. package/dist/bundler-plugins/per-locale-build/locale-id.d.ts.map +0 -1
  319. package/dist/bundler-plugins/per-locale-build/types.d.ts.map +0 -1
  320. package/dist/bundler-plugins/per-locale-build/vite-environments.d.ts.map +0 -1
  321. package/dist/bundler-plugins/per-locale-build/vite-environments.test.d.ts.map +0 -1
  322. package/dist/bundler-plugins/rolldown.d.ts.map +0 -1
  323. package/dist/bundler-plugins/rollup.d.ts.map +0 -1
  324. package/dist/bundler-plugins/rspack.d.ts.map +0 -1
  325. package/dist/bundler-plugins/unplugin.d.ts.map +0 -1
  326. package/dist/bundler-plugins/unplugin.test.d.ts.map +0 -1
  327. package/dist/bundler-plugins/vite.d.ts.map +0 -1
  328. package/dist/bundler-plugins/vite.test.d.ts.map +0 -1
  329. package/dist/bundler-plugins/webpack.d.ts.map +0 -1
  330. package/dist/cli/commands/compile/command.d.ts.map +0 -1
  331. package/dist/cli/commands/compile/command.test.d.ts.map +0 -1
  332. package/dist/cli/commands/init/command.d.ts.map +0 -1
  333. package/dist/cli/defaults.d.ts.map +0 -1
  334. package/dist/cli/index.d.ts.map +0 -1
  335. package/dist/cli/steps/add-vite-plugin.d.ts.map +0 -1
  336. package/dist/cli/steps/add-vite-plugin.test.d.ts.map +0 -1
  337. package/dist/cli/steps/check-for-uncomitted-changes.d.ts.map +0 -1
  338. package/dist/cli/steps/detect-bundler.d.ts.map +0 -1
  339. package/dist/cli/steps/detect-bundler.test.d.ts.map +0 -1
  340. package/dist/cli/steps/initialize-inlang-project.d.ts.map +0 -1
  341. package/dist/cli/steps/maybe-add-machine-translation.d.ts.map +0 -1
  342. package/dist/cli/steps/maybe-add-sherlock.d.ts.map +0 -1
  343. package/dist/cli/steps/prompt-for-outdir.d.ts.map +0 -1
  344. package/dist/cli/steps/update-package-json.d.ts.map +0 -1
  345. package/dist/cli/steps/update-ts-config.d.ts.map +0 -1
  346. package/dist/cli/steps/update-ts-config.test.d.ts.map +0 -1
  347. package/dist/cli/utils.d.ts.map +0 -1
  348. package/dist/compiler/compile-annotation.d.ts.map +0 -1
  349. package/dist/compiler/compile-bundle.d.ts.map +0 -1
  350. package/dist/compiler/compile-bundle.test.d.ts.map +0 -1
  351. package/dist/compiler/compile-local-variable.d.ts.map +0 -1
  352. package/dist/compiler/compile-local-variable.test.d.ts.map +0 -1
  353. package/dist/compiler/compile-message.d.ts.map +0 -1
  354. package/dist/compiler/compile-message.test.d.ts.map +0 -1
  355. package/dist/compiler/compile-pattern.d.ts.map +0 -1
  356. package/dist/compiler/compile-pattern.test.d.ts.map +0 -1
  357. package/dist/compiler/compile-project.d.ts.map +0 -1
  358. package/dist/compiler/compile-project.test.d.ts.map +0 -1
  359. package/dist/compiler/compile.bench.d.ts.map +0 -1
  360. package/dist/compiler/compile.d.ts.map +0 -1
  361. package/dist/compiler/compile.test.d.ts.map +0 -1
  362. package/dist/compiler/compiler-options.d.ts.map +0 -1
  363. package/dist/compiler/create-paraglide.d.ts.map +0 -1
  364. package/dist/compiler/create-paraglide.test.d.ts.map +0 -1
  365. package/dist/compiler/create-readme.d.ts.map +0 -1
  366. package/dist/compiler/emit-ts-declarations.d.ts.map +0 -1
  367. package/dist/compiler/emit-ts-declarations.interop.test.d.ts.map +0 -1
  368. package/dist/compiler/emit-ts-declarations.test.d.ts.map +0 -1
  369. package/dist/compiler/index.d.ts.map +0 -1
  370. package/dist/compiler/jsdoc-types.d.ts.map +0 -1
  371. package/dist/compiler/jsdoc-types.test.d.ts.map +0 -1
  372. package/dist/compiler/match-literals.d.ts.map +0 -1
  373. package/dist/compiler/output-structure/locale-modules.d.ts.map +0 -1
  374. package/dist/compiler/output-structure/locale-modules.test.d.ts.map +0 -1
  375. package/dist/compiler/output-structure/message-modules.d.ts.map +0 -1
  376. package/dist/compiler/output-structure/message-modules.test.d.ts.map +0 -1
  377. package/dist/compiler/per-locale-build.d.ts.map +0 -1
  378. package/dist/compiler/registry.d.ts.map +0 -1
  379. package/dist/compiler/resolve-tsc-js-path.d.ts.map +0 -1
  380. package/dist/compiler/runtime/check-locale.d.ts.map +0 -1
  381. package/dist/compiler/runtime/check-locale.test.d.ts.map +0 -1
  382. package/dist/compiler/runtime/create-runtime.d.ts.map +0 -1
  383. package/dist/compiler/runtime/extract-locale-from-cookie.d.ts.map +0 -1
  384. package/dist/compiler/runtime/extract-locale-from-cookie.test.d.ts.map +0 -1
  385. package/dist/compiler/runtime/extract-locale-from-header.d.ts.map +0 -1
  386. package/dist/compiler/runtime/extract-locale-from-header.test.d.ts.map +0 -1
  387. package/dist/compiler/runtime/extract-locale-from-navigator.d.ts.map +0 -1
  388. package/dist/compiler/runtime/extract-locale-from-navigator.test.d.ts.map +0 -1
  389. package/dist/compiler/runtime/extract-locale-from-request-async.d.ts.map +0 -1
  390. package/dist/compiler/runtime/extract-locale-from-request-async.test.d.ts.map +0 -1
  391. package/dist/compiler/runtime/extract-locale-from-request.d.ts.map +0 -1
  392. package/dist/compiler/runtime/extract-locale-from-request.test.d.ts.map +0 -1
  393. package/dist/compiler/runtime/extract-locale-from-url.d.ts.map +0 -1
  394. package/dist/compiler/runtime/extract-locale-from-url.test.d.ts.map +0 -1
  395. package/dist/compiler/runtime/generate-static-localized-urls.d.ts.map +0 -1
  396. package/dist/compiler/runtime/generate-static-localized-urls.test.d.ts.map +0 -1
  397. package/dist/compiler/runtime/get-locale.d.ts.map +0 -1
  398. package/dist/compiler/runtime/get-locale.test.d.ts.map +0 -1
  399. package/dist/compiler/runtime/get-text-direction.d.ts.map +0 -1
  400. package/dist/compiler/runtime/get-text-direction.test.d.ts.map +0 -1
  401. package/dist/compiler/runtime/get-url-origin.d.ts.map +0 -1
  402. package/dist/compiler/runtime/get-url-origin.test.d.ts.map +0 -1
  403. package/dist/compiler/runtime/localize-href.d.ts.map +0 -1
  404. package/dist/compiler/runtime/localize-href.test.d.ts.map +0 -1
  405. package/dist/compiler/runtime/localize-url.d.ts.map +0 -1
  406. package/dist/compiler/runtime/localize-url.test.d.ts.map +0 -1
  407. package/dist/compiler/runtime/route-strategy.d.ts.map +0 -1
  408. package/dist/compiler/runtime/set-locale.d.ts.map +0 -1
  409. package/dist/compiler/runtime/set-locale.test.d.ts.map +0 -1
  410. package/dist/compiler/runtime/should-redirect.d.ts.map +0 -1
  411. package/dist/compiler/runtime/should-redirect.test.d.ts.map +0 -1
  412. package/dist/compiler/runtime/strategy.d.ts.map +0 -1
  413. package/dist/compiler/runtime/strategy.test.d.ts.map +0 -1
  414. package/dist/compiler/runtime/track-message-call.d.ts.map +0 -1
  415. package/dist/compiler/runtime/track-message-call.test.d.ts.map +0 -1
  416. package/dist/compiler/runtime/type-definitions.d.ts.map +0 -1
  417. package/dist/compiler/runtime/type.d.ts.map +0 -1
  418. package/dist/compiler/runtime/type.test.d.ts.map +0 -1
  419. package/dist/compiler/runtime/variables.d.ts.map +0 -1
  420. package/dist/compiler/safe-module-id.d.ts.map +0 -1
  421. package/dist/compiler/safe-module-id.test.d.ts.map +0 -1
  422. package/dist/compiler/seed-previous-compilation.d.ts.map +0 -1
  423. package/dist/compiler/server/create-server-file.d.ts.map +0 -1
  424. package/dist/compiler/server/create-server-file.test.d.ts.map +0 -1
  425. package/dist/compiler/server/middleware.d.ts.map +0 -1
  426. package/dist/compiler/server/middleware.test.d.ts.map +0 -1
  427. package/dist/compiler/server/type.d.ts.map +0 -1
  428. package/dist/compiler/types.d.ts.map +0 -1
  429. package/dist/compiler/variable-access.d.ts.map +0 -1
  430. package/dist/index.d.ts.map +0 -1
  431. package/dist/services/account/index.d.ts +0 -15
  432. package/dist/services/account/index.d.ts.map +0 -1
  433. package/dist/services/account/index.js +0 -43
  434. package/dist/services/account/index.js.map +0 -1
  435. package/dist/services/codegen/escape.d.ts.map +0 -1
  436. package/dist/services/codegen/quotes.d.ts.map +0 -1
  437. package/dist/services/env-variables/create-index-file.d.ts.map +0 -1
  438. package/dist/services/env-variables/index.d.ts.map +0 -1
  439. package/dist/services/environment/package.d.ts.map +0 -1
  440. package/dist/services/environment/package.test.d.ts.map +0 -1
  441. package/dist/services/error-handling.d.ts.map +0 -1
  442. package/dist/services/error-handling.test.d.ts.map +0 -1
  443. package/dist/services/file-handling/exists.d.ts.map +0 -1
  444. package/dist/services/file-handling/exists.test.d.ts.map +0 -1
  445. package/dist/services/file-handling/types.d.ts.map +0 -1
  446. package/dist/services/file-handling/write-output.d.ts.map +0 -1
  447. package/dist/services/file-handling/write-output.test.d.ts.map +0 -1
  448. package/dist/services/file-watching/tracked-fs.d.ts.map +0 -1
  449. package/dist/services/file-watching/tracked-fs.test.d.ts.map +0 -1
  450. package/dist/services/logger/index.d.ts.map +0 -1
  451. package/dist/services/lookup.d.ts.map +0 -1
  452. package/dist/urlpattern-polyfill/index.d.ts.map +0 -1
  453. package/dist/utilities/detect-json-formatting.d.ts.map +0 -1
  454. package/dist/utilities/node-normalize-path.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"match-literals.js","sourceRoot":"","sources":["../../src/compiler/match-literals.ts"],"names":[],"mappings":"AAAA,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AAC7D,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEhD,MAAM,UAAU,yBAAyB,CACxC,eAAuB,EACvB,YAAoB;IAEpB,MAAM,cAAc,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAE9D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,GAAG,eAAe,QAAQ,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,eAAe,QAAQ,cAAc,OAAO,eAAe,QAAQ,IAAI,CAAC,SAAS,CAC3F,YAAY,CACZ,GAAG,CAAC;AACN,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,YAAoB;IAChE,MAAM,cAAc,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,GAAG,CACX,cAAc,KAAK,UAAU,IAAI,cAAc,KAAK,WAAW;YAC9D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,cAAc,CACjB,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACrD,IACC,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,YAAY,CAAC,IAAI,EAAE,KAAK,YAAY;QACpC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,EAClD,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"match-literals.js","sourceRoot":"","sources":["../../src/compiler/match-literals.ts"],"names":[],"mappings":"AAAA,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AAC7D,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEhD,MAAM,UAAU,yBAAyB,CACxC,eAAuB,EACvB,YAAoB;IAEpB,MAAM,cAAc,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAE9D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,GAAG,eAAe,QAAQ,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,eAAe,QAAQ,cAAc,OAAO,eAAe,QAAQ,IAAI,CAAC,SAAS,CAC3F,YAAY,CACZ,GAAG,CAAC;AACN,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,YAAoB;IAChE,MAAM,cAAc,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,QAAQ,CAAC,GAAG,CACX,cAAc,KAAK,UAAU,IAAI,cAAc,KAAK,WAAW;YAC9D,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,cAAc,CACjB,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACrD,IACC,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,YAAY,CAAC,IAAI,EAAE,KAAK,YAAY;QACpC,gCAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,EAClD,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAEpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC","sourcesContent":["const UNSUPPORTED_NUMERIC_MATCH_PREFIX = /^(0[bBoOxX]|NaN$)/;\nconst INFINITY_MATCH_LITERAL = /^[+]?Infinity$/;\n\nexport function renderInputMatchCondition(\n\tinputExpression: string,\n\tliteralValue: string\n): string {\n\tconst numericLiteral = parseNumericMatchLiteral(literalValue);\n\n\tif (numericLiteral === undefined) {\n\t\treturn `${inputExpression} === ${JSON.stringify(literalValue)}`;\n\t}\n\n\treturn `(${inputExpression} === ${numericLiteral} || ${inputExpression} === ${JSON.stringify(\n\t\tliteralValue\n\t)})`;\n}\n\nexport function renderInputMatchTypeVariants(literalValue: string): string[] {\n\tconst numericLiteral = parseNumericMatchLiteral(literalValue);\n\tconst variants = new Set<string>();\n\n\tif (numericLiteral !== undefined) {\n\t\tvariants.add(\n\t\t\tnumericLiteral === \"Infinity\" || numericLiteral === \"-Infinity\"\n\t\t\t\t? \"number\"\n\t\t\t\t: numericLiteral\n\t\t);\n\t}\n\n\tvariants.add(JSON.stringify(literalValue));\n\n\treturn Array.from(variants);\n}\n\nfunction parseNumericMatchLiteral(literalValue: string): string | undefined {\n\tif (\n\t\tliteralValue.length === 0 ||\n\t\tliteralValue.trim() !== literalValue ||\n\t\tUNSUPPORTED_NUMERIC_MATCH_PREFIX.test(literalValue)\n\t) {\n\t\treturn undefined;\n\t}\n\n\tif (INFINITY_MATCH_LITERAL.test(literalValue)) {\n\t\treturn \"Infinity\";\n\t}\n\n\tif (literalValue === \"-Infinity\") {\n\t\treturn \"-Infinity\";\n\t}\n\n\tconst parsed = Number(literalValue);\n\n\tif (!Number.isFinite(parsed)) {\n\t\treturn undefined;\n\t}\n\n\tif (Number.isInteger(parsed) && !Number.isSafeInteger(parsed)) {\n\t\treturn undefined;\n\t}\n\n\treturn String(parsed);\n}\n"]}
@@ -2,4 +2,3 @@ import type { ProjectSettings } from "@inlang/sdk";
2
2
  import type { CompiledBundleWithMessages } from "../compile-bundle.js";
3
3
  export declare function messageReferenceExpression(locale: string, bundleId: string): string;
4
4
  export declare function generateOutput(compiledBundles: CompiledBundleWithMessages[], settings: Pick<ProjectSettings, "locales" | "baseLocale">, fallbackMap: Record<string, string | undefined>, experimentalMiddlewareLocaleSplitting?: boolean): Record<string, string>;
5
- //# sourceMappingURL=locale-modules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locale-modules.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/locale-modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locale-modules.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/locale-modules.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ProjectSettings } from \"@inlang/sdk\";\nimport type { CompiledBundleWithMessages } from \"../compile-bundle.js\";\nimport { toSafeModuleId } from \"../safe-module-id.js\";\nimport { inputsType } from \"../jsdoc-types.js\";\nimport { toBundleInputTypeAliasName } from \"../compile-bundle.js\";\n\nconst localeImportPrefix = \"__\";\n\nexport function messageReferenceExpression(locale: string, bundleId: string) {\n\treturn `${localeImportPrefix}${toSafeModuleId(locale)}.${toSafeModuleId(bundleId)}`;\n}\n\nexport function generateOutput(\n\tcompiledBundles: CompiledBundleWithMessages[],\n\tsettings: Pick<ProjectSettings, \"locales\" | \"baseLocale\">,\n\tfallbackMap: Record<string, string | undefined>,\n\texperimentalMiddlewareLocaleSplitting = false\n): Record<string, string> {\n\tconst runtimeImport = experimentalMiddlewareLocaleSplitting\n\t\t? `import { getLocale, trackMessageCall, experimentalMiddlewareLocaleSplitting, isServer, experimentalStaticLocale } from \"../runtime.js\"`\n\t\t: `import { getLocale, experimentalStaticLocale } from \"../runtime.js\"`;\n\n\tconst indexFile = [\n\t\truntimeImport,\n\t\t\"\",\n\t\t`/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */`,\n\t\t...compiledBundles.map((compiledBundle) => {\n\t\t\tconst bundleModuleId = toSafeModuleId(compiledBundle.bundle.node.id);\n\t\t\tconst inputTypeAliasName =\n\t\t\t\tcompiledBundle.inputTypeAliasName ??\n\t\t\t\ttoBundleInputTypeAliasName(bundleModuleId);\n\t\t\tconst inputs =\n\t\t\t\tcompiledBundle.bundle.node.declarations?.filter(\n\t\t\t\t\t(decl) => decl.type === \"input-variable\"\n\t\t\t\t) ?? [];\n\t\t\treturn `/** @typedef {${inputsType(inputs, compiledBundle.matchTypes)}} ${inputTypeAliasName} */`;\n\t\t}),\n\t\tsettings.locales\n\t\t\t.map(\n\t\t\t\t(locale) =>\n\t\t\t\t\t`import * as ${localeImportPrefix}${toSafeModuleId(locale)} from \"./${locale}.js\"`\n\t\t\t)\n\t\t\t.join(\"\\n\"),\n\t\tcompiledBundles.map(({ bundle }) => bundle.code).join(\"\\n\"),\n\t].join(\"\\n\");\n\n\tconst output: Record<string, string> = {\n\t\t[\"messages/_index.js\"]: indexFile,\n\t};\n\n\t// generate message files\n\tfor (const locale of settings.locales) {\n\t\tconst filename = `messages/${locale}.js`;\n\t\tlet file = \"\";\n\t\tconst inputTypeDefs: string[] = [];\n\t\tconst emittedInputTypeDefs = new Set<string>();\n\n\t\tfor (const compiledBundle of compiledBundles) {\n\t\t\tconst compiledMessage = compiledBundle.messages[locale];\n\t\t\tconst bundleModuleId = toSafeModuleId(compiledBundle.bundle.node.id);\n\t\t\tconst bundleId = compiledBundle.bundle.node.id;\n\t\t\tconst inputs =\n\t\t\t\tcompiledBundle.bundle.node.declarations?.filter(\n\t\t\t\t\t(decl) => decl.type === \"input-variable\"\n\t\t\t\t) ?? [];\n\t\t\tconst matchTypes = compiledBundle.matchTypes;\n\t\t\tconst inputTypeAliasName =\n\t\t\t\tcompiledBundle.inputTypeAliasName ??\n\t\t\t\ttoBundleInputTypeAliasName(bundleModuleId);\n\t\t\tif (!emittedInputTypeDefs.has(inputTypeAliasName)) {\n\t\t\t\tinputTypeDefs.push(\n\t\t\t\t\t`/** @typedef {${inputsType(inputs, matchTypes)}} ${inputTypeAliasName} */`\n\t\t\t\t);\n\t\t\t\temittedInputTypeDefs.add(inputTypeAliasName);\n\t\t\t}\n\t\t\tif (!compiledMessage) {\n\t\t\t\tconst fallbackLocale = fallbackMap[locale];\n\t\t\t\tif (fallbackLocale) {\n\t\t\t\t\t// use the fall back locale e.g. render the message in English if the German message is missing\n\t\t\t\t\tfile += `\\nexport { ${bundleModuleId} } from \"./${fallbackLocale}.js\"`;\n\t\t\t\t} else {\n\t\t\t\t\t// no fallback exists, render the bundleId\n\t\t\t\t\tfile += `\\n/** @type {(inputs: ${inputTypeAliasName}) => LocalizedString} */\\nexport const ${bundleModuleId} = () => /** @type {LocalizedString} */ ('${bundleId}')`;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfile += `\\n\\nexport const ${bundleModuleId} = ${compiledMessage.code}`;\n\t\t}\n\n\t\t// add import if used\n\t\tif (file.includes(\"registry.\")) {\n\t\t\tfile = `import * as registry from \"../registry.js\"\\n` + file;\n\t\t}\n\n\t\t// add LocalizedString typedef reference if used\n\t\tif (file.includes(\"LocalizedString\")) {\n\t\t\tconst inputTypeDefsBlock = inputTypeDefs.length\n\t\t\t\t? `${inputTypeDefs.join(\"\\n\")}\\n`\n\t\t\t\t: \"\";\n\t\t\tfile =\n\t\t\t\t`/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */\\n` +\n\t\t\t\tinputTypeDefsBlock +\n\t\t\t\tfile;\n\t\t}\n\n\t\toutput[filename] = file;\n\t}\n\treturn output;\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=locale-modules.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locale-modules.test.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/locale-modules.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locale-modules.test.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/locale-modules.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"vitest\";\nimport {\n\tgenerateOutput,\n\tmessageReferenceExpression,\n} from \"./locale-modules.js\";\nimport type { Bundle, Message, ProjectSettings } from \"@inlang/sdk\";\nimport type { CompiledBundleWithMessages } from \"../compile-bundle.js\";\n\ntest(\"should emit per locale message files\", () => {\n\tconst bundles: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: 'console.log(\"bundle code\");',\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"happy_elephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: 'console.log(\"message in English\");',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t\tde: {\n\t\t\t\t\tcode: 'console.log(\"message in German\");',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"en\", \"de\"],\n\t\tbaseLocale: \"en\",\n\t};\n\n\tconst fallbackMap: Record<string, string | undefined> = {\n\t\ten: \"de\",\n\t\tde: \"en\",\n\t};\n\n\tconst output = generateOutput(bundles, settings, fallbackMap);\n\n\texpect(output).toHaveProperty(\"messages/en.js\");\n\texpect(output).toHaveProperty(\"messages/de.js\");\n\n\texpect(output[\"messages/en.js\"]).toContain(\n\t\t`console.log(\"message in English\");`\n\t);\n});\n\ntest(\"the files should include files for each locale, even if there are no messages\", () => {\n\tconst bundles: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: 'console.log(\"bundle code\");',\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"happy_elephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"en\", \"de\", \"fr\"],\n\t\tbaseLocale: \"en\",\n\t};\n\n\tconst fallbackMap: Record<string, string | undefined> = {\n\t\ten: \"de\",\n\t\tde: \"en\",\n\t};\n\n\tconst output = generateOutput(bundles, settings, fallbackMap);\n\n\texpect(output).toHaveProperty(\"messages/en.js\");\n\texpect(output).toHaveProperty(\"messages/de.js\");\n\texpect(output).toHaveProperty(\"messages/fr.js\");\n});\n\ntest(\"should handle case sensitivity in message IDs correctly\", () => {\n\tconst bundles: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: 'console.log(\"bundle code\");',\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"sad_penguin_bundle\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: 'console.log(\"sad_penguin_bundle\");',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: 'console.log(\"bundle code\");',\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"Sad_penguin_bundle\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: 'console.log(\"Sad_penguin_bundle\");',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"en\"],\n\t\tbaseLocale: \"en\",\n\t};\n\n\tconst fallbackMap: Record<string, string | undefined> = {};\n\n\tconst output = generateOutput(bundles, settings, fallbackMap);\n\n\t// Check that the output exists\n\texpect(output).toHaveProperty(\"messages/_index.js\");\n\texpect(output).toHaveProperty(\"messages/en.js\");\n\n\t// The exported constants should not conflict\n\tconst content = output[\"messages/en.js\"];\n\texpect(content).toContain(\"export const sad_penguin_bundle\");\n\texpect(content).toContain(\"export const sad_penguin_bundle1\"); // or some other unique name\n});\n\ntest(\"prefixes locale imports to avoid message name collisions\", () => {\n\t// https://github.com/opral/paraglide-js/issues/492\n\tconst bundles: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: \"const no = () => 'No';\",\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"no\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\tno: {\n\t\t\t\t\tcode: \"const no = () => 'Nei';\",\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"no\"],\n\t\tbaseLocale: \"no\",\n\t};\n\n\tconst output = generateOutput(bundles, settings, {});\n\n\texpect(output[\"messages/_index.js\"]).toContain(\n\t\t`import * as __no from \"./no.js\"`\n\t);\n\texpect(output[\"messages/_index.js\"]).not.toContain(\n\t\t`import * as no from \"./no.js\"`\n\t);\n\texpect(messageReferenceExpression(\"no\", \"no\")).toBe(\"__no.no\");\n});\n\ntest(\"emits minimal runtime imports in index when middleware splitting is disabled\", () => {\n\tconst bundles: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: \"export const happy_elephant = () => __en.happy_elephant()\",\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"happy_elephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: '() => \"happy\"',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst output = generateOutput(\n\t\tbundles,\n\t\t{ locales: [\"en\"], baseLocale: \"en\" },\n\t\t{},\n\t\tfalse\n\t);\n\n\texpect(output[\"messages/_index.js\"]).toContain(\n\t\t'import { getLocale, experimentalStaticLocale } from \"../runtime.js\"'\n\t);\n\texpect(output[\"messages/_index.js\"]).not.toContain(\"trackMessageCall\");\n\texpect(output[\"messages/_index.js\"]).not.toContain(\"experimentalMiddlewareLocaleSplitting\");\n\texpect(output[\"messages/_index.js\"]).not.toContain(\"isServer\");\n});\n"]}
@@ -2,4 +2,3 @@ import type { ProjectSettings } from "@inlang/sdk";
2
2
  import type { CompiledBundleWithMessages } from "../compile-bundle.js";
3
3
  export declare function messageReferenceExpression(locale: string, bundleId: string): string;
4
4
  export declare function generateOutput(compiledBundles: CompiledBundleWithMessages[], settings: Pick<ProjectSettings, "locales" | "baseLocale">, fallbackMap: Record<string, string | undefined>, experimentalMiddlewareLocaleSplitting?: boolean): Record<string, string>;
5
- //# sourceMappingURL=message-modules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-modules.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/message-modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-modules.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/message-modules.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ProjectSettings } from \"@inlang/sdk\";\nimport type { CompiledBundleWithMessages } from \"../compile-bundle.js\";\nimport { escapeForSingleQuoteString } from \"../../services/codegen/escape.js\";\nimport { toSafeModuleId } from \"../safe-module-id.js\";\nimport { inputsType } from \"../jsdoc-types.js\";\nimport { toBundleInputTypeAliasName } from \"../compile-bundle.js\";\n\nexport function messageReferenceExpression(locale: string, bundleId: string) {\n\treturn `${toSafeModuleId(locale)}_${toSafeModuleId(bundleId)}`;\n}\n\nexport function generateOutput(\n\tcompiledBundles: CompiledBundleWithMessages[],\n\tsettings: Pick<ProjectSettings, \"locales\" | \"baseLocale\">,\n\tfallbackMap: Record<string, string | undefined>,\n\texperimentalMiddlewareLocaleSplitting = false\n): Record<string, string> {\n\tconst output: Record<string, string> = {};\n\n\tconst moduleFilenames = new Set<string>();\n\n\tfor (const compiledBundle of compiledBundles) {\n\t\tconst bundleId = compiledBundle.bundle.node.id;\n\t\tconst safeModuleId = toSafeModuleId(compiledBundle.bundle.node.id);\n\t\tconst inputs =\n\t\t\tcompiledBundle.bundle.node.declarations?.filter(\n\t\t\t\t(decl) => decl.type === \"input-variable\"\n\t\t\t) ?? [];\n\t\tconst matchTypes = compiledBundle.matchTypes;\n\t\tconst inputTypeAliasName =\n\t\t\tcompiledBundle.inputTypeAliasName ??\n\t\t\ttoBundleInputTypeAliasName(safeModuleId);\n\t\tconst inputTypeDefinition = inputsType(inputs, matchTypes);\n\n\t\t// bundle file\n\t\tconst filename = `messages/${safeModuleId}.js`;\n\n\t\tmoduleFilenames.add(`${safeModuleId}.js`);\n\n\t\t// create fresh bundle file\n\t\toutput[filename] = compiledBundle.bundle.code;\n\n\t\tconst needsFallback: string[] = [];\n\n\t\tconst messages: string[] = [];\n\n\t\t// messages\n\t\tfor (const locale of settings.locales) {\n\t\t\tconst safeLocale = toSafeModuleId(locale);\n\t\t\tconst compiledMessage = compiledBundle.messages[locale];\n\n\t\t\tif (!compiledMessage) {\n\t\t\t\tneedsFallback.push(locale);\n\t\t\t} else {\n\t\t\t\tmessages.push(\n\t\t\t\t\t`const ${safeLocale}_${safeModuleId} = ${compiledMessage.code}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// add the fallbacks (needs to be done after the messages to avoid referencing\n\t\t// the message before they are defined)\n\t\tconst needsFallbackSet = new Set(needsFallback);\n\t\tconst emittedFallbacks = new Set<string>();\n\t\tconst emittingFallbacks = new Set<string>();\n\n\t\t/**\n\t\t * Emits the fallback definition for a locale ensuring that dependent fallbacks\n\t\t * are declared beforehand.\n\t\t *\n\t\t * @example\n\t\t * emitFallback(\"fr-ca\");\n\t\t */\n\t\tconst emitFallback = (locale: string) => {\n\t\t\tif (emittedFallbacks.has(locale)) return;\n\t\t\tif (emittingFallbacks.has(locale)) return;\n\n\t\t\temittingFallbacks.add(locale);\n\n\t\t\tconst safeLocale = toSafeModuleId(locale);\n\t\t\tconst fallbackLocale = fallbackMap[locale];\n\n\t\t\tif (\n\t\t\t\tfallbackLocale &&\n\t\t\t\tneedsFallbackSet.has(fallbackLocale) &&\n\t\t\t\t!compiledBundle.messages[fallbackLocale]\n\t\t\t) {\n\t\t\t\temitFallback(fallbackLocale);\n\t\t\t}\n\n\t\t\tif (fallbackLocale) {\n\t\t\t\tconst safeFallbackLocale = toSafeModuleId(fallbackLocale);\n\t\t\t\tmessages.push(\n\t\t\t\t\t`/** @type {(inputs: ${inputTypeAliasName}) => LocalizedString} */\\nconst ${safeLocale}_${safeModuleId} = ${safeFallbackLocale}_${safeModuleId};`\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmessages.push(\n\t\t\t\t\t`/** @type {(inputs: ${inputTypeAliasName}) => LocalizedString} */\\nconst ${safeLocale}_${safeModuleId} = () => /** @type {LocalizedString} */ ('${escapeForSingleQuoteString(\n\t\t\t\t\t\tbundleId\n\t\t\t\t\t)}')`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\temittingFallbacks.delete(locale);\n\t\t\temittedFallbacks.add(locale);\n\t\t};\n\n\t\tfor (const locale of needsFallback) {\n\t\t\temitFallback(locale);\n\t\t}\n\n\t\toutput[filename] = messages.join(\"\\n\\n\") + \"\\n\\n\" + output[filename];\n\n\t\t// add the imports and type reference (LocalizedString is defined in runtime.js)\n\t\tconst runtimeImport = experimentalMiddlewareLocaleSplitting\n\t\t\t? `import { getLocale, trackMessageCall, experimentalMiddlewareLocaleSplitting, isServer, experimentalStaticLocale } from '../runtime.js';\\n\\n`\n\t\t\t: `import { getLocale, experimentalStaticLocale } from '../runtime.js';\\n\\n`;\n\n\t\toutput[filename] =\n\t\t\truntimeImport +\n\t\t\t`/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */\\n\\n` +\n\t\t\t`/** @typedef {${inputTypeDefinition}} ${inputTypeAliasName} */\\n\\n` +\n\t\t\toutput[filename];\n\n\t\t// Add the registry import to the message file\n\t\t// if registry is used\n\t\tif (output[filename]?.includes(\"registry.\")) {\n\t\t\toutput[filename] =\n\t\t\t\t`import * as registry from '../registry.js'\\n` + output[filename];\n\t\t}\n\t}\n\n\t// all messages index file\n\toutput[\"messages/_index.js\"] =\n\t\t`/** @typedef {import('../runtime.js').LocalizedString} LocalizedString */\\n` +\n\t\tArray.from(moduleFilenames)\n\t\t\t.map((filename) => `export * from './${filename}'`)\n\t\t\t.join(\"\\n\");\n\n\treturn output;\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=message-modules.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-modules.test.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/message-modules.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-modules.test.js","sourceRoot":"","sources":["../../../src/compiler/output-structure/message-modules.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"vitest\";\nimport { generateOutput } from \"./message-modules.js\";\nimport type { Bundle, Message, ProjectSettings } from \"@inlang/sdk\";\nimport type { CompiledBundleWithMessages } from \"../compile-bundle.js\";\n\ntest(\"should emit per locale message files\", () => {\n\tconst resources: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: 'console.log(\"bundle code\");',\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"happy_elephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: 'console.log(\"message in English\");',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t\tde: {\n\t\t\t\t\tcode: 'console.log(\"message in German\");',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"en\", \"de\"],\n\t\tbaseLocale: \"en\",\n\t};\n\n\tconst fallbackMap: Record<string, string | undefined> = {\n\t\ten: \"de\",\n\t\tde: \"en\",\n\t};\n\n\tconst output = generateOutput(resources, settings, fallbackMap);\n\n\texpect(output).not.toHaveProperty(\"messages/en.js\");\n\texpect(output).not.toHaveProperty(\"messages/de.js\");\n\texpect(output).toHaveProperty(\"messages/happy_elephant.js\");\n});\n\ntest(\"handles case senstivity by creating directories and files only in lowercase\", () => {\n\tconst resources: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: \"export const HappyElephant = () => en.HappyElephant\",\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"HappyElephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: 'export const HappyElephant = () => \"HappyElephant0\"',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: \"export const happyelephant = () => en.happyelephant\",\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"happyelephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: 'export const happyelephant = () => \"happyelephant1\"',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"en\"],\n\t\tbaseLocale: \"en\",\n\t};\n\tconst output = generateOutput(resources, settings, {});\n\n\t// expecting only lowercase directories and files\n\texpect(output).toHaveProperty(\"messages/happyelephant.js\");\n\texpect(output).toHaveProperty(\"messages/happyelephant2.js\");\n\texpect(output).not.toHaveProperty(\"messages/HappyElephant.js\");\n});\n\ntest(\"emits minimal runtime imports when middleware splitting is disabled\", () => {\n\tconst resources: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: \"export const happy_elephant = () => en_happy_elephant()\",\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"happy_elephant\",\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: '() => \"happy\"',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst output = generateOutput(\n\t\tresources,\n\t\t{ locales: [\"en\"], baseLocale: \"en\" },\n\t\t{},\n\t\tfalse\n\t);\n\n\texpect(output[\"messages/happy_elephant.js\"]).toContain(\n\t\t\"import { getLocale, experimentalStaticLocale } from '../runtime.js';\"\n\t);\n\texpect(output[\"messages/happy_elephant.js\"]).not.toContain(\n\t\t\"trackMessageCall\"\n\t);\n\texpect(output[\"messages/happy_elephant.js\"]).not.toContain(\n\t\t\"experimentalMiddlewareLocaleSplitting\"\n\t);\n\texpect(output[\"messages/happy_elephant.js\"]).not.toContain(\"isServer\");\n});\n\n// Regression test for https://github.com/opral/inlang-paraglide-js/issues/507\ntest(\"emits fallback definitions after their dependencies\", () => {\n\tconst resources: CompiledBundleWithMessages[] = [\n\t\t{\n\t\t\tbundle: {\n\t\t\t\tcode: \"export const admin_tasks = (inputs) => inputs;\",\n\t\t\t\tnode: {\n\t\t\t\t\tid: \"admin_tasks\",\n\t\t\t\t\tdeclarations: [],\n\t\t\t\t} as unknown as Bundle,\n\t\t\t},\n\t\t\tmessages: {\n\t\t\t\ten: {\n\t\t\t\t\tcode: '/** @type {(inputs: {}) => string} */ () => \"admin\"',\n\t\t\t\t\tnode: {} as unknown as Message,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmatchTypes: new Map(),\n\t\t},\n\t];\n\n\tconst settings: Pick<ProjectSettings, \"locales\" | \"baseLocale\"> = {\n\t\tlocales: [\"fr-ca\", \"fr\", \"en\"],\n\t\tbaseLocale: \"en\",\n\t};\n\n\tconst fallbackMap: Record<string, string | undefined> = {\n\t\t\"fr-ca\": \"fr\",\n\t\tfr: \"en\",\n\t\ten: undefined,\n\t};\n\n\tconst output = generateOutput(resources, settings, fallbackMap);\n\n\tconst file = output[\"messages/admin_tasks.js\"];\n\n\texpect(file).toBeDefined();\n\n\tif (!file) {\n\t\tthrow new Error(\"messages/admin_tasks.js should have been generated\");\n\t}\n\n\texpect(file).toContain(\"const fr_admin_tasks = en_admin_tasks;\");\n\texpect(file).toContain(\"const fr_ca_admin_tasks = fr_admin_tasks;\");\n\n\tconst frIndex = file.indexOf(\"const fr_admin_tasks\");\n\tconst frCaIndex = file.indexOf(\"const fr_ca_admin_tasks\");\n\n\texpect(frIndex).toBeGreaterThan(-1);\n\texpect(frCaIndex).toBeGreaterThan(-1);\n\texpect(frIndex).toBeLessThan(frCaIndex);\n});\n"]}
@@ -1,3 +1,2 @@
1
1
  /** Internal compiler/bundler contract for locale-specialized client builds. */
2
2
  export declare const perLocaleBuildStaticLocaleExpression = "/** @type {any} */ (globalThis).__PARAGLIDE_STATIC_LOCALE__";
3
- //# sourceMappingURL=per-locale-build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"per-locale-build.js","sourceRoot":"","sources":["../../src/compiler/per-locale-build.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oCAAoC,GAChD,6DAA6D,CAAC"}
1
+ {"version":3,"file":"per-locale-build.js","sourceRoot":"","sources":["../../src/compiler/per-locale-build.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oCAAoC,GAChD,6DAA6D,CAAC","sourcesContent":["/** Internal compiler/bundler contract for locale-specialized client builds. */\nexport const perLocaleBuildStaticLocaleExpression =\n\t\"/** @type {any} */ (globalThis).__PARAGLIDE_STATIC_LOCALE__\";\n"]}
@@ -11,4 +11,3 @@
11
11
  * Creates the Registry file
12
12
  */
13
13
  export declare function createRegistry(): string;
14
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/compiler/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/compiler/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CL,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Re: CUSTOMIZING THE REGISTRY\n *\n * We want to enable anyone (designer, developer, translator) to\n * specify options for functions. That requires design work in\n * the inlang SDK.\n *\n * For now, Paraglide ships a custom solution with INTL functions.\n */\n\n/**\n * Creates the Registry file\n */\nexport function createRegistry(): string {\n\treturn `\n/**\n * @typedef {\"year\" | \"years\" | \"quarter\" | \"quarters\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\"} RelativeTimeFormatUnit\n */\n\n/**\n * @param {import(\"./runtime.js\").Locale} locale\n * @param {unknown} input\n * @param {Intl.PluralRulesOptions} [options]\n * @returns {string}\n */\nexport function plural(locale, input, options) { \n\treturn new Intl.PluralRules(locale, options).select(Number(input))\n};\n\n/**\n * @param {import(\"./runtime.js\").Locale} locale\n * @param {unknown} input\n * @param {Intl.NumberFormatOptions} [options]\n * @returns {string}\n */\nexport function number(locale, input, options) {\n\treturn new Intl.NumberFormat(locale, options).format(Number(input))\n};\n\n/**\n * @param {import(\"./runtime.js\").Locale} locale\n * @param {unknown} input\n * @param {Intl.DateTimeFormatOptions} [options]\n * @returns {string}\n */\nexport function datetime(locale, input, options) {\n\treturn new Intl.DateTimeFormat(locale, options).format(new Date(/** @type {string} */ (input)))\n};\n\n/**\n * @param {import(\"./runtime.js\").Locale} locale\n * @param {unknown} input\n * @param {Intl.RelativeTimeFormatOptions & { unit: RelativeTimeFormatUnit }} options\n * @returns {string}\n */\nexport function relativetime(locale, input, options) {\n\tconst { unit, ...intlOptions } = options;\n\treturn new Intl.RelativeTimeFormat(locale, intlOptions).format(Number(input), unit);\n};`;\n}\n"]}
@@ -7,4 +7,3 @@
7
7
  * itself depends on.
8
8
  */
9
9
  export declare function resolveTscJsPath(): string;
10
- //# sourceMappingURL=resolve-tsc-js-path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-tsc-js-path.js","sourceRoot":"","sources":["../../src/compiler/resolve-tsc-js-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACd,sFAAsF,SAAS,gFAAgF,CAC/K,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"resolve-tsc-js-path.js","sourceRoot":"","sources":["../../src/compiler/resolve-tsc-js-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACd,sFAAsF,SAAS,gFAAgF,CAC/K,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC","sourcesContent":["import { createRequire } from \"node:module\";\nimport { existsSync } from \"node:fs\";\nimport path from \"node:path\";\n\n/**\n * Resolves the path to the `tsc` CLI entry point of the installed\n * `typescript` package.\n *\n * Lives in its own module so tests can point the TypeScript 7 emit\n * path at a different TypeScript installation than the one the repo\n * itself depends on.\n */\nexport function resolveTscJsPath(): string {\n\tconst require = createRequire(import.meta.url);\n\tconst packageJsonPath = require.resolve(\"typescript/package.json\");\n\tconst tscJsPath = path.join(path.dirname(packageJsonPath), \"lib\", \"tsc.js\");\n\t// `lib/tsc.js` is internal package layout rather than a public export, so\n\t// fail with a pointed error if a future TypeScript version moves it.\n\tif (existsSync(tscJsPath) === false) {\n\t\tthrow new Error(\n\t\t\t`Paraglide's \"emitTsDeclarations\" option could not locate TypeScript's \"tsc\" CLI at ${tscJsPath}. As a workaround, install TypeScript 5 or 6, or disable \"emitTsDeclarations\".`\n\t\t);\n\t}\n\treturn tscJsPath;\n}\n"]}
@@ -29,4 +29,3 @@ export declare function isLocale(locale: unknown): locale is Locale;
29
29
  * @throws {Error} If the input is not a locale.
30
30
  */
31
31
  export declare function assertIsLocale(input: unknown): Locale;
32
- //# sourceMappingURL=check-locale.d.ts.map
@@ -1 +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"}
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","sourcesContent":["import { locales } from \"./variables.js\";\n\n/**\n * Coerces a locale-like string to the canonical locale value used by the runtime.\n *\n * @param {unknown} value\n * @returns {Locale | undefined}\n */\nexport function toLocale(value) {\n\tif (typeof value !== \"string\") {\n\t\treturn undefined;\n\t}\n\n\tconst lowerValue = value.toLowerCase();\n\tfor (const locale of locales) {\n\t\tif (locale.toLowerCase() === lowerValue) {\n\t\t\treturn locale;\n\t\t}\n\t}\n\treturn undefined;\n}\n\n/**\n * Check if something is an available locale with the canonical project casing.\n *\n * @example\n * if (isLocale(params.locale)) {\n * setLocale(params.locale);\n * } else {\n * setLocale('en');\n * }\n *\n * Use `toLocale()` when you want case-insensitive matching and canonicalization.\n *\n * @param {unknown} locale\n * @returns {locale is Locale}\n */\nexport function isLocale(locale) {\n\treturn !!locale && locales.some((item) => item === locale);\n}\n\n/**\n * Asserts that the input can be normalized to a locale.\n *\n * @param {unknown} input - The input to check.\n * @returns {Locale} The input normalized to a Locale.\n * @throws {Error} If the input is not a locale.\n */\nexport function assertIsLocale(input) {\n\tconst locale = toLocale(input);\n\tif (locale) return locale;\n\tthrow new Error(\n\t\t`Invalid locale: ${input}. Expected one of: ${locales.join(\", \")}`\n\t);\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=check-locale.test.d.ts.map
@@ -1 +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
+ {"version":3,"file":"check-locale.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/check-locale.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { newProject } from \"@inlang/sdk\";\nimport { expect, test } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\nimport type { Locale } from \"./type-definitions.js\";\n\ntest(\"toLocale canonicalizes case-insensitive matches without throwing\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"pt-BR\", \"de-ch\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(runtime.toLocale(\"EN\")).toBe(\"en\");\n\texpect(runtime.toLocale(\"pT-bR\")).toBe(\"pt-BR\");\n\texpect(runtime.toLocale(\"de-CH\")).toBe(\"de-ch\");\n\texpect(runtime.toLocale(\"es\")).toBeUndefined();\n\texpect(runtime.toLocale(null)).toBeUndefined();\n\texpect(runtime.toLocale(undefined)).toBeUndefined();\n\texpect(runtime.toLocale(123)).toBeUndefined();\n\texpect(runtime.toLocale({})).toBeUndefined();\n});\n\ntest(\"isLocale still checks canonical locale casing\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"pt-BR\", \"de-ch\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(runtime.isLocale(\"pt-BR\")).toBe(true);\n\texpect(runtime.isLocale(\"EN\")).toBe(false);\n\texpect(runtime.isLocale(null)).toBe(false);\n});\n\ntest(\"isLocale returns false for non-existent locales\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"pt-BR\", \"de-ch\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(runtime.isLocale(\"es\")).toBe(false);\n\texpect(runtime.isLocale(\"xx\")).toBe(false);\n\texpect(runtime.isLocale(\"\")).toBe(false);\n\texpect(runtime.isLocale(undefined)).toBe(false);\n\texpect(runtime.isLocale(123)).toBe(false);\n\texpect(runtime.isLocale({})).toBe(false);\n\texpect(runtime.isLocale([])).toBe(false);\n});\n\ntest(\"assertIsLocale throws if the locale is not available\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(() => runtime.assertIsLocale(\"es\")).toThrow();\n});\n\ntest(\"assertIsLocale throws for non-string inputs\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(() => runtime.assertIsLocale(null)).toThrow();\n\texpect(() => runtime.assertIsLocale(undefined)).toThrow();\n\texpect(() => runtime.assertIsLocale(123)).toThrow();\n\texpect(() => runtime.assertIsLocale({})).toThrow();\n\texpect(() => runtime.assertIsLocale([])).toThrow();\n});\n\ntest(\"assertIsLocale passes if the locale is available\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(() => runtime.assertIsLocale(\"en\")).not.toThrow();\n});\n\ntest(\"assertIsLocale return value is a Locale\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\tconst locale = runtime.assertIsLocale(\"en\");\n\tlocale satisfies Locale;\n});\n\ntest(\"assertIsLocale is case-insensitive\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"pt-BR\", \"de-ch\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(() => runtime.assertIsLocale(\"EN\")).not.toThrow();\n\texpect(() => runtime.assertIsLocale(\"pt-br\")).not.toThrow();\n\texpect(() => runtime.assertIsLocale(\"de-CH\")).not.toThrow();\n\n\texpect(runtime.assertIsLocale(\"EN\")).toBe(\"en\");\n\texpect(runtime.assertIsLocale(\"pT-bR\")).toBe(\"pt-BR\");\n\texpect(runtime.assertIsLocale(\"de-CH\")).toBe(\"de-ch\");\n});\n"]}
@@ -12,6 +12,7 @@ export declare function createRuntimeFile(args: {
12
12
  cookieMaxAge: NonNullable<CompilerOptions["cookieMaxAge"]>;
13
13
  cookieDomain: CompilerOptions["cookieDomain"];
14
14
  urlPatterns?: CompilerOptions["urlPatterns"];
15
+ trailingSlash?: CompilerOptions["trailingSlash"];
15
16
  experimentalMiddlewareLocaleSplitting: CompilerOptions["experimentalMiddlewareLocaleSplitting"];
16
17
  isServer: CompilerOptions["isServer"];
17
18
  experimentalStaticLocale?: CompilerOptions["experimentalStaticLocale"];
@@ -19,4 +20,3 @@ export declare function createRuntimeFile(args: {
19
20
  disableAsyncLocalStorage: NonNullable<CompilerOptions["disableAsyncLocalStorage"]>;
20
21
  };
21
22
  }): string;
22
- //# sourceMappingURL=create-runtime.d.ts.map
@@ -58,6 +58,9 @@ ${injectCode("./variables.js")
58
58
  .replace(`export const TREE_SHAKE_GLOBAL_VARIABLE_STRATEGY_USED = false;`, `const TREE_SHAKE_GLOBAL_VARIABLE_STRATEGY_USED = ${allUsedStrategies.has("globalVariable")};`)
59
59
  .replace(`export const TREE_SHAKE_PREFERRED_LANGUAGE_STRATEGY_USED = false;`, `const TREE_SHAKE_PREFERRED_LANGUAGE_STRATEGY_USED = ${allUsedStrategies.has("preferredLanguage")};`)
60
60
  .replace(`export const urlPatterns = [];`, `export const urlPatterns = ${JSON.stringify(urlPatterns, null, 2)};`)
61
+ .replace(`export const trailingSlash = undefined;`, `export const trailingSlash = ${args.compilerOptions.trailingSlash === undefined
62
+ ? "undefined"
63
+ : JSON.stringify(args.compilerOptions.trailingSlash)};`)
61
64
  .replace(`export const disableAsyncLocalStorage = false;`, `export const disableAsyncLocalStorage = ${args.compilerOptions.disableAsyncLocalStorage};`)
62
65
  .replace(`export const TREE_SHAKE_DEFAULT_URL_PATTERN_USED = false;`, `const TREE_SHAKE_DEFAULT_URL_PATTERN_USED = ${defaultUrlPatternUsed};`)
63
66
  .replace(`export const experimentalMiddlewareLocaleSplitting = false;`, `export const experimentalMiddlewareLocaleSplitting = ${args.compilerOptions.experimentalMiddlewareLocaleSplitting};`)
@@ -86,6 +89,14 @@ ${injectCode("./get-url-origin.js")}
86
89
 
87
90
  ${injectCode("./check-locale.js")}
88
91
 
92
+ ${injectCode("./normalize-trailing-slash.js", {
93
+ privateExports: ["normalizeTrailingSlash"],
94
+ })}
95
+
96
+ ${injectCode("./exec-url-pattern.js", {
97
+ privateExports: ["execUrlPattern"],
98
+ })}
99
+
89
100
  ${injectCode("./extract-locale-from-request.js")}
90
101
 
91
102
  ${injectCode("./extract-locale-from-request-async.js")}
@@ -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;AAEzB,OAAO,EAAE,oCAAoC,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAmBjC;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,yCAAyC,EACzC,gCACC,IAAI,CAAC,eAAe,CAAC,aAAa,KAAK,SAAS;QAC/C,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CACrD,GAAG,CACH;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,2CACA,IAAI,CAAC,eAAe,CAAC,wBAAwB;YAC7C,oCAAoC;YACnC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,wBAAwB;YAC/C,CAAC,CAAC,kBAAkB,IAAI,CAAC,eAAe,CAAC,wBAAwB,GACnE,GAAG;QACJ,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,+BAA+B,EAAE;QAC7C,cAAc,EAAE,CAAC,wBAAwB,CAAC;KAC1C,CAAC;;EAEA,UAAU,CAAC,uBAAuB,EAAE;QACrC,cAAc,EAAE,CAAC,gBAAgB,CAAC;KAClC,CAAC;;EAEA,UAAU,CAAC,kCAAkC,CAAC;;EAE9C,UAAU,CAAC,wCAAwC,CAAC;;EAEpD,UAAU,CAAC,iCAAiC,EAAE;QAC/C,cAAc,EAAE,CAAC,wBAAwB,CAAC;KAC1C,CAAC;;EAEA,UAAU,CAAC,iCAAiC,CAAC;;EAE7C,UAAU,CAAC,oCAAoC,CAAC;;EAEhD,UAAU,CAAC,8BAA8B,CAAC;;EAE1C,UAAU,CAAC,mBAAmB,CAAC;;EAE/B,UAAU,CAAC,qBAAqB,CAAC;;EAEjC,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;;;;;;;;;GASG;AACH,SAAS,UAAU,CAClB,IAAY,EACZ,OAAuC;IAEvC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,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,IAAI,QAAQ,GAAG,IAAI;SACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,IAAI,EAAE,CAAC;IACT,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,cAAc,IAAI,EAAE,EAAE,CAAC;QACxD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAC1B,IAAI,MAAM,CAAC,4BAA4B,UAAU,KAAK,EAAE,GAAG,CAAC,EAC5D,YAAY,UAAU,EAAE,CACxB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC","sourcesContent":["import fs from \"node:fs\";\nimport type { CompilerOptions } from \"../compiler-options.js\";\nimport { perLocaleBuildStaticLocaleExpression } from \"../per-locale-build.js\";\n\n/**\n * Returns the code for the `runtime.js` module\n */\nexport function createRuntimeFile(args: {\n\tbaseLocale: string;\n\tlocales: string[];\n\tcompilerOptions: {\n\t\tstrategy: NonNullable<CompilerOptions[\"strategy\"]>;\n\t\trouteStrategies?: CompilerOptions[\"routeStrategies\"];\n\t\tcookieName: NonNullable<CompilerOptions[\"cookieName\"]>;\n\t\tcookieMaxAge: NonNullable<CompilerOptions[\"cookieMaxAge\"]>;\n\t\tcookieDomain: CompilerOptions[\"cookieDomain\"];\n\t\turlPatterns?: CompilerOptions[\"urlPatterns\"];\n\t\ttrailingSlash?: CompilerOptions[\"trailingSlash\"];\n\t\texperimentalMiddlewareLocaleSplitting: CompilerOptions[\"experimentalMiddlewareLocaleSplitting\"];\n\t\tisServer: CompilerOptions[\"isServer\"];\n\t\texperimentalStaticLocale?: CompilerOptions[\"experimentalStaticLocale\"];\n\t\tlocalStorageKey: CompilerOptions[\"localStorageKey\"];\n\t\tdisableAsyncLocalStorage: NonNullable<\n\t\t\tCompilerOptions[\"disableAsyncLocalStorage\"]\n\t\t>;\n\t};\n}): string {\n\tconst urlPatterns = args.compilerOptions.urlPatterns ?? [];\n\tconst routeStrategies = args.compilerOptions.routeStrategies ?? [];\n\n\tlet defaultUrlPatternUsed = false;\n\n\t// add default urlPatterns for a good out of the box experience\n\tif (args.compilerOptions.urlPatterns === undefined) {\n\t\tdefaultUrlPatternUsed = true;\n\t\turlPatterns.push({\n\t\t\tpattern: `:protocol://:domain(.*)::port?/:path(.*)?`,\n\t\t\tlocalized: [],\n\t\t});\n\t\tfor (const locale of args.locales) {\n\t\t\tif (locale === args.baseLocale) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\turlPatterns[0]?.localized.push([\n\t\t\t\tlocale,\n\t\t\t\t`:protocol://:domain(.*)::port?/${locale}/:path(.*)?`,\n\t\t\t]);\n\t\t}\n\t\turlPatterns[0]?.localized.push([\n\t\t\targs.baseLocale,\n\t\t\t`:protocol://:domain(.*)::port?/:path(.*)?`,\n\t\t]);\n\t}\n\tconst strategiesUsedByRoutes = routeStrategies.flatMap((routeStrategy) =>\n\t\t\"strategy\" in routeStrategy ? routeStrategy.strategy : []\n\t);\n\tconst allUsedStrategies = new Set([\n\t\t...args.compilerOptions.strategy,\n\t\t...strategiesUsedByRoutes,\n\t]);\n\tconst needsUrlPatternPolyfill =\n\t\t!defaultUrlPatternUsed || routeStrategies.length > 0;\n\n\t// verify that urlPatterns' locales are valid\n\tfor (const urlPattern of urlPatterns) {\n\t\tfor (const [locale] of urlPattern.localized) {\n\t\t\tif (!args.locales.includes(locale)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid locale \"${locale}\" in urlPatterns. It must be one of the locales defined in the \"locales\" array.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst code = `\n${needsUrlPatternPolyfill ? `import \"@inlang/paraglide-js/urlpattern-polyfill\";` : \"/** @type {any} */\\nconst URLPattern = {}\"}\n\n${injectCode(\"./variables.js\")\n\t.replace(\n\t\t`export const baseLocale = \"en\";`,\n\t\t`export const baseLocale = \"${args.baseLocale}\";`\n\t)\n\t.replace(\n\t\t`export const locales = /** @type {readonly string[]} */ ([\"en\", \"de\"]);`,\n\t\t`export const locales = /** @type {const} */ (${JSON.stringify(args.locales)});`\n\t)\n\t.replace(\n\t\t`export const strategy = [\"globalVariable\"];`,\n\t\t`export const strategy = ${JSON.stringify(args.compilerOptions.strategy, null, 2)};`\n\t)\n\t.replace(`<cookie-name>`, `${args.compilerOptions.cookieName}`)\n\t.replace(`60 * 60 * 24 * 400`, `${args.compilerOptions.cookieMaxAge}`)\n\t.replace(`<cookie-domain>`, `${args.compilerOptions.cookieDomain}`)\n\t.replace(\n\t\t`export const routeStrategies = [];`,\n\t\t`export const routeStrategies = ${JSON.stringify(routeStrategies, null, 2)};`\n\t)\n\t.replace(\n\t\t`export const TREE_SHAKE_COOKIE_STRATEGY_USED = false;`,\n\t\t`const TREE_SHAKE_COOKIE_STRATEGY_USED = ${allUsedStrategies.has(\"cookie\")};`\n\t)\n\t.replace(\n\t\t`export const TREE_SHAKE_URL_STRATEGY_USED = false;`,\n\t\t`const TREE_SHAKE_URL_STRATEGY_USED = ${allUsedStrategies.has(\"url\")};`\n\t)\n\t.replace(\n\t\t`export const TREE_SHAKE_GLOBAL_VARIABLE_STRATEGY_USED = false;`,\n\t\t`const TREE_SHAKE_GLOBAL_VARIABLE_STRATEGY_USED = ${allUsedStrategies.has(\"globalVariable\")};`\n\t)\n\t.replace(\n\t\t`export const TREE_SHAKE_PREFERRED_LANGUAGE_STRATEGY_USED = false;`,\n\t\t`const TREE_SHAKE_PREFERRED_LANGUAGE_STRATEGY_USED = ${allUsedStrategies.has(\"preferredLanguage\")};`\n\t)\n\t.replace(\n\t\t`export const urlPatterns = [];`,\n\t\t`export const urlPatterns = ${JSON.stringify(urlPatterns, null, 2)};`\n\t)\n\t.replace(\n\t\t`export const trailingSlash = undefined;`,\n\t\t`export const trailingSlash = ${\n\t\t\targs.compilerOptions.trailingSlash === undefined\n\t\t\t\t? \"undefined\"\n\t\t\t\t: JSON.stringify(args.compilerOptions.trailingSlash)\n\t\t};`\n\t)\n\t.replace(\n\t\t`export const disableAsyncLocalStorage = false;`,\n\t\t`export const disableAsyncLocalStorage = ${args.compilerOptions.disableAsyncLocalStorage};`\n\t)\n\t.replace(\n\t\t`export const TREE_SHAKE_DEFAULT_URL_PATTERN_USED = false;`,\n\t\t`const TREE_SHAKE_DEFAULT_URL_PATTERN_USED = ${defaultUrlPatternUsed};`\n\t)\n\t.replace(\n\t\t`export const experimentalMiddlewareLocaleSplitting = false;`,\n\t\t`export const experimentalMiddlewareLocaleSplitting = ${args.compilerOptions.experimentalMiddlewareLocaleSplitting};`\n\t)\n\t.replace(\n\t\t`export const isServer = typeof window === \"undefined\";`,\n\t\t`export const isServer = ${args.compilerOptions.isServer};`\n\t)\n\t.replace(\n\t\t`export const experimentalStaticLocale = undefined;`,\n\t\targs.compilerOptions.experimentalStaticLocale\n\t\t\t? `export const experimentalStaticLocale = ${\n\t\t\t\t\targs.compilerOptions.experimentalStaticLocale ===\n\t\t\t\t\tperLocaleBuildStaticLocaleExpression\n\t\t\t\t\t\t? args.compilerOptions.experimentalStaticLocale\n\t\t\t\t\t\t: `assertIsLocale(${args.compilerOptions.experimentalStaticLocale})`\n\t\t\t\t};`\n\t\t\t: `export const experimentalStaticLocale = undefined;`\n\t)\n\t.replace(\n\t\t`export const localStorageKey = \"PARAGLIDE_LOCALE\";`,\n\t\t`export const localStorageKey = \"${args.compilerOptions.localStorageKey}\";`\n\t)\n\t.replace(\n\t\t`export const TREE_SHAKE_LOCAL_STORAGE_STRATEGY_USED = false;`,\n\t\t`const TREE_SHAKE_LOCAL_STORAGE_STRATEGY_USED = ${allUsedStrategies.has(\"localStorage\")};`\n\t)}\n\n/** @type {any} */ (globalThis).__paraglide =\n\t/** @type {any} */ (globalThis).__paraglide ?? {};\n/** @type {any} */ (globalThis).__paraglide.ssr =\n\t/** @type {any} */ (globalThis).__paraglide.ssr ?? {};\n\n${injectCode(\"./get-locale.js\")}\n\n${injectCode(\"./get-text-direction.js\")}\n\n${injectCode(\"./set-locale.js\")}\n\n${injectCode(\"./get-url-origin.js\")}\n\n${injectCode(\"./check-locale.js\")}\n\n${injectCode(\"./normalize-trailing-slash.js\", {\n\tprivateExports: [\"normalizeTrailingSlash\"],\n})}\n\n${injectCode(\"./exec-url-pattern.js\", {\n\tprivateExports: [\"execUrlPattern\"],\n})}\n\n${injectCode(\"./extract-locale-from-request.js\")}\n\n${injectCode(\"./extract-locale-from-request-async.js\")}\n\n${injectCode(\"./extract-locale-from-cookie.js\", {\n\tprivateExports: [\"clearLocaleCookieCache\"],\n})}\n\n${injectCode(\"./extract-locale-from-header.js\")}\n\n${injectCode(\"./extract-locale-from-navigator.js\")}\n\n${injectCode(\"./extract-locale-from-url.js\")}\n\n${injectCode(\"./localize-url.js\")}\n\n${injectCode(\"./route-strategy.js\")}\n\n${injectCode(\"./should-redirect.js\")}\n\n${injectCode(\"./localize-href.js\")}\n\n${injectCode(\"./track-message-call.js\")}\n\n${injectCode(\"./generate-static-localized-urls.js\")}\n\n${injectCode(\"./strategy.js\")}\n\n${injectCode(\"./type-definitions.js\").replace(\n\t`@typedef {string} Locale`,\n\t`@typedef {typeof locales[number]} Locale`\n)}\n`;\n\n\treturn code;\n}\n\n/**\n * Load a file from the current directory.\n *\n * Prunes the imports on top of the file as the runtime is\n * self-contained.\n *\n * @param {string} path\n * @param {{ privateExports?: string[] }} [options]\n * @returns {string}\n */\nfunction injectCode(\n\tpath: string,\n\toptions?: { privateExports?: string[] }\n): string {\n\tconst code = fs.readFileSync(new URL(path, import.meta.url), \"utf-8\");\n\t// Regex to match single-line and multi-line imports\n\tconst importRegex = /import\\s+[\\s\\S]*?from\\s+['\"][^'\"]+['\"]\\s*;?/g;\n\tconst sourceMapRegex = /\\/\\/# sourceMappingURL=.*$/gm;\n\tconst blockSourceMapRegex = /\\/\\*# sourceMappingURL=.*?\\*\\//g;\n\tlet injected = code\n\t\t.replace(importRegex, \"\")\n\t\t.replace(sourceMapRegex, \"\")\n\t\t.replace(blockSourceMapRegex, \"\")\n\t\t.trim();\n\tfor (const exportName of options?.privateExports ?? []) {\n\t\tinjected = injected.replace(\n\t\t\tnew RegExp(`\\\\bexport\\\\s+function\\\\s+${exportName}\\\\b`, \"g\"),\n\t\t\t`function ${exportName}`\n\t\t);\n\t}\n\treturn injected;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Matches a canonical URL while allowing configured patterns to retain their
3
+ * existing trailing slash style.
4
+ *
5
+ * @param {URLPattern} pattern
6
+ * @param {URL} url
7
+ * @returns {any}
8
+ */
9
+ export declare function execUrlPattern(pattern: URLPattern, url: URL): any;
@@ -0,0 +1,31 @@
1
+ import { trailingSlash } from "./variables.js";
2
+ /**
3
+ * Matches a canonical URL while allowing configured patterns to retain their
4
+ * existing trailing slash style.
5
+ *
6
+ * @param {URLPattern} pattern
7
+ * @param {URL} url
8
+ * @returns {any}
9
+ */
10
+ export function execUrlPattern(pattern, url) {
11
+ if (trailingSlash === undefined || url.pathname === "/") {
12
+ return pattern.exec(url.href);
13
+ }
14
+ const alias = new URL(url);
15
+ if (trailingSlash === "always") {
16
+ alias.pathname = alias.pathname.replace(/\/+$/, "") || "/";
17
+ // Prefer the slashless alias so the canonical slash does not become part
18
+ // of a terminal wildcard capture.
19
+ return pattern.exec(alias.href) ?? pattern.exec(url.href);
20
+ }
21
+ else if (trailingSlash === "never") {
22
+ const match = pattern.exec(url.href);
23
+ if (match) {
24
+ return match;
25
+ }
26
+ alias.pathname = alias.pathname.replace(/\/+$/, "") + "/";
27
+ return pattern.exec(alias.href);
28
+ }
29
+ return pattern.exec(url.href);
30
+ }
31
+ //# sourceMappingURL=exec-url-pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec-url-pattern.js","sourceRoot":"","sources":["../../../src/compiler/runtime/exec-url-pattern.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,EAAE,GAAG;IAC1C,IAAI,aAAa,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAChC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QAC3D,yEAAyE;QACzE,kCAAkC;QAClC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACd,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["import { trailingSlash } from \"./variables.js\";\n\n/**\n * Matches a canonical URL while allowing configured patterns to retain their\n * existing trailing slash style.\n *\n * @param {URLPattern} pattern\n * @param {URL} url\n * @returns {any}\n */\nexport function execUrlPattern(pattern, url) {\n\tif (trailingSlash === undefined || url.pathname === \"/\") {\n\t\treturn pattern.exec(url.href);\n\t}\n\n\tconst alias = new URL(url);\n\tif (trailingSlash === \"always\") {\n\t\talias.pathname = alias.pathname.replace(/\\/+$/, \"\") || \"/\";\n\t\t// Prefer the slashless alias so the canonical slash does not become part\n\t\t// of a terminal wildcard capture.\n\t\treturn pattern.exec(alias.href) ?? pattern.exec(url.href);\n\t} else if (trailingSlash === \"never\") {\n\t\tconst match = pattern.exec(url.href);\n\t\tif (match) {\n\t\t\treturn match;\n\t\t}\n\t\talias.pathname = alias.pathname.replace(/\\/+$/, \"\") + \"/\";\n\t\treturn pattern.exec(alias.href);\n\t}\n\treturn pattern.exec(url.href);\n}\n"]}
@@ -11,4 +11,3 @@ export declare function clearLocaleCookieCache(): void;
11
11
  * @returns {Locale | undefined}
12
12
  */
13
13
  export declare function extractLocaleFromCookie(): Locale | undefined;
14
- //# sourceMappingURL=extract-locale-from-cookie.d.ts.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,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,IAAI,MAAM,CACrC,cAAc,iBAAiB,UAAU,CACzC,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;AAChC,yDAAyD;AACzD,IAAI,sBAAsB,GAAG,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,sBAAsB,GAAG,cAAc,CAAC;AACzC,CAAC;AAED,SAAS,8BAA8B;IACtC,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QAC1C,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACtC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;IACR,CAAC;IACD,IAAI,sBAAsB,KAAK,cAAc,EAAE,CAAC;QAC/C,OAAO,sBAAsB,CAAC;IAC/B,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,8BAA8B,EAAE,CAAC;IACjC,OAAO,sBAAsB,CAAC;AAC/B,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,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAC5E,MAAM,mBAAmB,GAAG,IAAI,MAAM,CACrC,cAAc,iBAAiB,UAAU,CACzC,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;AAChC,yDAAyD;AACzD,IAAI,sBAAsB,GAAG,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACrC,sBAAsB,GAAG,cAAc,CAAC;AACzC,CAAC;AAED,SAAS,8BAA8B;IACtC,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QAC1C,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACtC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;IACR,CAAC;IACD,IAAI,sBAAsB,KAAK,cAAc,EAAE,CAAC;QAC/C,OAAO,sBAAsB,CAAC;IAC/B,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,8BAA8B,EAAE,CAAC;IACjC,OAAO,sBAAsB,CAAC;AAC/B,CAAC","sourcesContent":["import { toLocale } from \"./check-locale.js\";\nimport { cookieName } from \"./variables.js\";\n\nconst cookieNamePattern = cookieName.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\nconst localeCookiePattern = new RegExp(\n\t`(?:^|;\\\\s*)${cookieNamePattern}=([^;]*)`\n);\n\nconst noCachedLocale = Symbol();\n/** @type {Locale | undefined | typeof noCachedLocale} */\nlet cachedLocaleFromCookie = noCachedLocale;\n\n/**\n * Clears the cached locale from `document.cookie`.\n */\nexport function clearLocaleCookieCache() {\n\tcachedLocaleFromCookie = noCachedLocale;\n}\n\nfunction scheduleLocaleCookieCacheClear() {\n\tif (typeof queueMicrotask === \"function\") {\n\t\tqueueMicrotask(clearLocaleCookieCache);\n\t} else {\n\t\tPromise.resolve().then(clearLocaleCookieCache);\n\t}\n}\n\n/**\n * Extracts a cookie from the document.\n *\n * Will return undefined if the document is not available or if the cookie is not set.\n * The `document` object is not available in server-side rendering, so this function should not be called in that context.\n *\n * @returns {Locale | undefined}\n */\nexport function extractLocaleFromCookie() {\n\tif (typeof document === \"undefined\") {\n\t\treturn;\n\t}\n\tif (cachedLocaleFromCookie !== noCachedLocale) {\n\t\treturn cachedLocaleFromCookie;\n\t}\n\tconst match = document.cookie.match(localeCookiePattern);\n\tconst locale = match?.[1];\n\tcachedLocaleFromCookie = toLocale(locale);\n\tscheduleLocaleCookieCacheClear();\n\treturn cachedLocaleFromCookie;\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=extract-locale-from-cookie.test.d.ts.map
@@ -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,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,CAAC;aACrB;SACD,CAAC;QACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,UAAU,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IAEH,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG;QACrB,IAAI,MAAM;YACT,eAAe,IAAI,CAAC,CAAC;YACrB,OAAO,0DAA0D,CAAC;QACnE,CAAC;KACD,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;IAClD,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,IAAI,MAAM,GAAG,sBAAsB,CAAC;IACpC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG;QACrB,IAAI,MAAM;YACT,eAAe,IAAI,CAAC,CAAC;YACrB,OAAO,MAAM,CAAC;QACf,CAAC;KACD,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,GAAG,sBAAsB,CAAC;IAChC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAExB,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IACrE,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;QAC9B,QAAQ,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,sBAAsB,CAAC;IACpC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG;QACrB,IAAI,MAAM;YACT,eAAe,IAAI,CAAC,CAAC;YACrB,OAAO,MAAM,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,KAAK;YACf,MAAM,GAAG,KAAK,CAAC;QAChB,CAAC;KACD,CAAC;IACD,UAAkB,CAAC,MAAM,GAAG;QAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,KAAI,CAAC,EAAE;KACtD,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IAC3D,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,uBAAuB;KACnC,CAAC,CAAC;IAEH,gDAAgD;IAChD,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,UAAU,CAAC,QAAQ,CAAC,MAAM;QACzB,oDAAoD,CAAC;IAEtD,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;IAC/D,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,oCAAoC,CAAC;IAElE,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;AAC3D,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
+ {"version":3,"file":"extract-locale-from-cookie.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-cookie.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\nimport { newProject } from \"@inlang/sdk\";\n\ntest(\"returns undefined if document is not available\", async () => {\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = undefined;\n\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\texpect(runtime.extractLocaleFromCookie()).toBeUndefined();\n});\n\ntest(\"matches the locale of a cookie\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t});\n\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {};\n\tglobalThis.document.cookie =\n\t\t\"OTHER_COOKIE=fr; PARAGLIDE_LOCALE=de; ANOTHER_COOKIE=en; EXPIRES_COOKIE=es; Max-Age=3600\";\n\n\tconst locale = runtime.extractLocaleFromCookie();\n\texpect(locale).toBe(\"de\");\n});\n\ntest(\"caches the locale during immediate repeated cookie reads\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t});\n\n\tlet cookieReadCount = 0;\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {\n\t\tget cookie() {\n\t\t\tcookieReadCount += 1;\n\t\t\treturn \"OTHER_COOKIE=fr; PARAGLIDE_LOCALE=de; ANOTHER_COOKIE=en;\";\n\t\t},\n\t};\n\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"de\");\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"de\");\n\texpect(cookieReadCount).toBe(1);\n});\n\ntest(\"cache expires after a microtask\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t});\n\n\tlet cookie = \"PARAGLIDE_LOCALE=en;\";\n\tlet cookieReadCount = 0;\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {\n\t\tget cookie() {\n\t\t\tcookieReadCount += 1;\n\t\t\treturn cookie;\n\t\t},\n\t};\n\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"en\");\n\tcookie = \"PARAGLIDE_LOCALE=de;\";\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"en\");\n\n\tawait Promise.resolve();\n\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"de\");\n\texpect(cookieReadCount).toBe(2);\n});\n\ntest(\"clears the cache after setLocale writes the cookie\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t\tisServer: \"false\",\n\t});\n\n\tlet cookie = \"PARAGLIDE_LOCALE=en;\";\n\tlet cookieReadCount = 0;\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {\n\t\tget cookie() {\n\t\t\tcookieReadCount += 1;\n\t\t\treturn cookie;\n\t\t},\n\t\tset cookie(value) {\n\t\t\tcookie = value;\n\t\t},\n\t};\n\t(globalThis as any).window = {\n\t\tlocation: { href: \"https://example.com\", reload() {} },\n\t};\n\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"en\");\n\truntime.setLocale(\"de\", { reload: false });\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"de\");\n\texpect(cookieReadCount).toBe(2);\n});\n\ntest(\"escapes regex characters in cookie names\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE.LOCALE[app]\",\n\t});\n\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {};\n\tglobalThis.document.cookie =\n\t\t\"PARAGLIDE_LOCALE_APP_=en;PARAGLIDE.LOCALE[app]=de;\";\n\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"de\");\n});\n\ntest(\"returns undefined for an empty cookie locale\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t});\n\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {};\n\tglobalThis.document.cookie = \"OTHER_COOKIE=de;PARAGLIDE_LOCALE=;\";\n\n\texpect(runtime.extractLocaleFromCookie()).toBeUndefined();\n});\n\ntest(\"canonicalizes cookie locale casing\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de-CH\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t});\n\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {};\n\tglobalThis.document.cookie = \"PARAGLIDE_LOCALE=de-ch;\";\n\n\texpect(runtime.extractLocaleFromCookie()).toBe(\"de-CH\");\n});\n\n// useful scenario that avoids throws if the cookie uses an old locale that is\n// not supported anymore or development on localhost shares multiple apps with\n// different locales\ntest(\"returns undefined if the locale is not defined in the locales\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t});\n\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = {};\n\tglobalThis.document.cookie = \"PARAGLIDE_LOCALE=fr;\";\n\n\tconst locale = runtime.extractLocaleFromCookie();\n\texpect(locale).toBeUndefined();\n});\n"]}
@@ -11,4 +11,3 @@
11
11
  * @returns {Locale | undefined} The negotiated preferred language.
12
12
  */
13
13
  export declare function extractLocaleFromHeader(request: Request): Locale | undefined;
14
- //# sourceMappingURL=extract-locale-from-header.d.ts.map
@@ -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,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"}
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","sourcesContent":["import { toLocale } from \"./check-locale.js\";\n\n/**\n * Extracts a locale from the accept-language header.\n *\n * Use the function on the server to extract the locale\n * from the accept-language header that is sent by the client.\n *\n * @example\n * const locale = extractLocaleFromHeader(request);\n *\n * @param {Request} request - The request object to extract the locale from.\n * @returns {Locale | undefined} The negotiated preferred language.\n */\nexport function extractLocaleFromHeader(request) {\n\tconst acceptLanguageHeader = request.headers.get(\"accept-language\");\n\tif (acceptLanguageHeader) {\n\t\t// Parse language preferences with their q-values and base language codes\n\t\tconst languages = acceptLanguageHeader\n\t\t\t.split(\",\")\n\t\t\t.map((lang) => {\n\t\t\t\tconst [tag, q = \"1\"] = lang.trim().split(\";q=\");\n\t\t\t\t// Get both the full tag and base language code\n\t\t\t\tconst baseTag = tag?.split(\"-\")[0];\n\t\t\t\treturn {\n\t\t\t\t\tfullTag: tag,\n\t\t\t\t\tbaseTag,\n\t\t\t\t\tq: Number(q),\n\t\t\t\t};\n\t\t\t})\n\t\t\t.sort((a, b) => b.q - a.q);\n\n\t\tfor (const lang of languages) {\n\t\t\tconst fullLocale = toLocale(lang.fullTag);\n\t\t\tif (fullLocale) {\n\t\t\t\treturn fullLocale;\n\t\t\t}\n\n\t\t\tconst baseLocale = toLocale(lang.baseTag);\n\t\t\tif (baseLocale) {\n\t\t\t\treturn baseLocale;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\treturn undefined;\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=extract-locale-from-header.test.d.ts.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;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
+ {"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","sourcesContent":["import { test, expect } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\nimport { newProject } from \"@inlang/sdk\";\n\ntest(\"returns the preferred locale from Accept-Language header\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"fr\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\t// simple direct match\n\tconst request = new Request(\"http://example.com\", {\n\t\theaders: {\n\t\t\t\"Accept-Language\": \"en-US;q=0.8,fr;q=0.9,de;q=0.6\",\n\t\t},\n\t});\n\tconst locale = runtime.extractLocaleFromHeader(request);\n\texpect(locale).toBe(\"fr\");\n\n\t// language tag match\n\tconst request2 = new Request(\"http://example.com\", {\n\t\theaders: {\n\t\t\t\"Accept-Language\": \"en-US;q=0.8,nl;q=0.9,de;q=0.7\",\n\t\t},\n\t});\n\tconst locale2 = runtime.extractLocaleFromHeader(request2);\n\t// Since \"nl\" isn't in our locales, and \"de\" has the highest q-value after \"nl\"\n\texpect(locale2).toBe(\"en\");\n\n\t// no match\n\tconst request3 = new Request(\"http://example.com\", {\n\t\theaders: {\n\t\t\t\"Accept-Language\": \"nl;q=0.9,es;q=0.6\",\n\t\t},\n\t});\n\tconst locale3 = runtime.extractLocaleFromHeader(request3);\n\texpect(locale3).toBeUndefined();\n});\n\ntest(\"returns undefined if no Accept-Language header is present\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"fr\", \"de\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\tconst request = new Request(\"http://example.com\");\n\tconst locale = runtime.extractLocaleFromHeader(request);\n\texpect(locale).toBeUndefined();\n});\n\ntest(\"canonicalizes matched locale from Accept-Language header\", async () => {\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"pt-BR\"],\n\t\t\t},\n\t\t}),\n\t});\n\n\tconst request = new Request(\"http://example.com\", {\n\t\theaders: {\n\t\t\t\"Accept-Language\": \"pt-br, en;q=0.8\",\n\t\t},\n\t});\n\n\texpect(runtime.extractLocaleFromHeader(request)).toBe(\"pt-BR\");\n});\n"]}
@@ -10,4 +10,3 @@
10
10
  * @returns {Locale | undefined}
11
11
  */
12
12
  export declare function extractLocaleFromNavigator(): Locale | undefined;
13
- //# sourceMappingURL=extract-locale-from-navigator.d.ts.map
@@ -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,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"}
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","sourcesContent":["import { toLocale } from \"./check-locale.js\";\n\n/**\n * Negotiates a preferred language from navigator.languages.\n *\n * Use the function on the client to extract the locale\n * from the navigator.languages array.\n *\n * @example\n * const locale = extractLocaleFromNavigator();\n *\n * @returns {Locale | undefined}\n */\nexport function extractLocaleFromNavigator() {\n\tif (!navigator?.languages?.length) {\n\t\treturn undefined;\n\t}\n\n\tconst languages = navigator.languages.map((lang) => ({\n\t\tfullTag: lang,\n\t\tbaseTag: lang.split(\"-\")[0],\n\t}));\n\n\tfor (const lang of languages) {\n\t\tconst fullLocale = toLocale(lang.fullTag);\n\t\tif (fullLocale) {\n\t\t\treturn fullLocale;\n\t\t}\n\n\t\tconst baseLocale = toLocale(lang.baseTag);\n\t\tif (baseLocale) {\n\t\t\treturn baseLocale;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=extract-locale-from-navigator.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-locale-from-navigator.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-navigator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC;IAE/C,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;QACF,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAC/B,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE;YACN,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;SACnC;QACD,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvC,6BAA6B;IAC7B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;IACxD,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC;IAE/C,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,OAAO;QACjB,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAC/B,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE;YACN,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SAC7B;QACD,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"extract-locale-from-navigator.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/extract-locale-from-navigator.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC;IAE/C,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;QACF,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAC/B,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE;YACN,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;SACnC;QACD,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvC,6BAA6B;IAC7B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;IACxD,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAAC;IAE/C,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,OAAO;QACjB,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAC/B,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE;YACN,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SAC7B;QACD,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9C,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { newProject } from \"@inlang/sdk\";\nimport { expect, test } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\n\ntest(\"returns the preferred locale from navigator.languages\", async () => {\n\tconst originalNavigator = globalThis.navigator;\n\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"fr\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tisServer: \"false\",\n\t\tstrategy: [\"preferredLanguage\"],\n\t});\n\n\t// Mock navigator.languages\n\tObject.defineProperty(globalThis, \"navigator\", {\n\t\tvalue: {\n\t\t\tlanguages: [\"fr-FR\", \"en-US\", \"de\"],\n\t\t},\n\t\tconfigurable: true,\n\t});\n\n\texpect(runtime.getLocale()).toBe(\"fr\");\n\n\t// Restore original navigator\n\tObject.defineProperty(globalThis, \"navigator\", {\n\t\tvalue: originalNavigator,\n\t\tconfigurable: true,\n\t});\n});\n\ntest(\"canonicalizes navigator locale casing\", async () => {\n\tconst originalNavigator = globalThis.navigator;\n\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale: \"en\",\n\t\t\t\tlocales: [\"en\", \"pt-BR\"],\n\t\t\t},\n\t\t}),\n\t\tisServer: \"false\",\n\t\tstrategy: [\"preferredLanguage\"],\n\t});\n\n\tObject.defineProperty(globalThis, \"navigator\", {\n\t\tvalue: {\n\t\t\tlanguages: [\"pt-br\", \"en-US\"],\n\t\t},\n\t\tconfigurable: true,\n\t});\n\n\texpect(runtime.getLocale()).toBe(\"pt-BR\");\n\n\tObject.defineProperty(globalThis, \"navigator\", {\n\t\tvalue: originalNavigator,\n\t\tconfigurable: true,\n\t});\n});\n"]}
@@ -32,4 +32,3 @@
32
32
  export declare const extractLocaleFromRequestAsync: (request: Request, options?: {
33
33
  effectiveRequestUrl?: string | URL;
34
34
  }) => Promise<Locale>;
35
- //# sourceMappingURL=extract-locale-from-request-async.d.ts.map