@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":"get-locale.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-locale.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-locale.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-locale.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { newProject } from \"@inlang/sdk\";\nimport { expect, test, vi } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\n\ntest(\"matching by strategy works\", async () => {\n\tconst baseLocale = \"en\";\n\n\tconst runtime = await createParaglide({\n\t\tblob: await newProject({\n\t\t\tsettings: {\n\t\t\t\tbaseLocale,\n\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"cookie\", \"baseLocale\"],\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=blaba;\";\n\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(baseLocale);\n});\n\ntest(\"experimentalStaticLocale overrides runtime strategies\", 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\", \"baseLocale\"],\n\t\texperimentalStaticLocale: JSON.stringify(\"de\"),\n\t});\n\n\texpect(runtime.getLocale()).toBe(\"de\");\n});\n\ntest(\"invalid experimentalStaticLocale throws during runtime creation\", async () => {\n\tawait expect(\n\t\tcreateParaglide({\n\t\t\tblob: await newProject({\n\t\t\t\tsettings: {\n\t\t\t\t\tbaseLocale: \"en\",\n\t\t\t\t\tlocales: [\"en\", \"de\"],\n\t\t\t\t},\n\t\t\t}),\n\t\t\tstrategy: [\"cookie\", \"baseLocale\"],\n\t\t\texperimentalStaticLocale: JSON.stringify(\"fr\"),\n\t\t})\n\t).rejects.toThrow(\"Invalid locale: fr. Expected one of: en, de\");\n});\n\ntest(\"throws if variable is used without baseLocale as fallback strategy\", 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: [\"globalVariable\"],\n\t});\n\n\texpect(() => runtime.getLocale()).toThrow();\n\n\truntime.setLocale(\"de\");\n\n\texpect(runtime.getLocale()).toBe(\"de\");\n});\n\ntest(\"retrieves the locale for a url pattern\", 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: [\"url\"],\n\t\tisServer: \"false\",\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"https://example.:tld/:path*\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"en\", \"https://example.com/:path*\"],\n\t\t\t\t\t[\"de\", \"https://example.de/:path*\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\tglobalThis.window = { location: { href: \"https://example.com/page\" } } as any;\n\n\texpect(runtime.getLocale()).toBe(\"en\");\n\n\tglobalThis.window = { location: { href: \"https://example.de/page\" } } as any;\n\n\texpect(runtime.getLocale()).toBe(\"de\");\n});\n\ntest(\"url pattern strategy doesn't throw during SSR\", 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: [\"url\", \"baseLocale\"],\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"https://example.:tld/:path*\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"en\", \"https://example.com/:path*\"],\n\t\t\t\t\t[\"de\", \"https://example.de/:path*\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\texpect(() => runtime.getLocale()).not.toThrow();\n});\n\ntest(\"doesn't throw for an old cookie locale\", async () => {\n\tconst baseLocale = \"en\";\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\tstrategy: [\"cookie\", \"baseLocale\"],\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.getLocale();\n\texpect(locale).toBe(baseLocale);\n});\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(\"returns the locale from local storage\", 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: [\"localStorage\"],\n\t\tlocalStorageKey: \"PARAGLIDE_LOCALE\",\n\t\tisServer: \"false\",\n\t});\n\n\t// @ts-expect-error - global variable definition\n\tglobalThis.localStorage = {\n\t\tsetItem: vi.fn(),\n\t\tgetItem: vi.fn(() => \"de\"),\n\t};\n\n\texpect(runtime.getLocale()).toBe(\"de\");\n});\n\ntest(\"initially sets the locale after resolving it for the first time\", async () => {\n\t// Create runtime with multiple strategies\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\", \"fr\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"url\", \"cookie\"],\n\t\tisServer: \"false\",\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"https://example.com/:path*\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"en\", \"https://example.com/en/:path*\"],\n\t\t\t\t\t[\"de\", \"https://example.com/de/:path*\"],\n\t\t\t\t\t[\"fr\", \"https://example.com/fr/:path*\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\t// Setup global objects for URL strategy\n\tglobalThis.window = {\n\t\t// @ts-expect-error - global variable definition\n\t\tlocation: {\n\t\t\thostname: \"example.com\",\n\t\t\thref: \"https://example.com/de/page\",\n\t\t},\n\t};\n\n\t// Create a spy on the internal _locale variable to verify it was set\n\t// We can do this by checking if setLocale works without explicitly setting it first\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = { cookie: \"\" };\n\n\t// First call to getLocale should resolve and set the locale\n\texpect(runtime.getLocale()).toBe(\"de\");\n\t// Cookie should be set, proving that the locale was initially set\n\texpect(globalThis.document.cookie).toBe(\n\t\t\"PARAGLIDE_LOCALE=de; path=/; max-age=34560000\"\n\t);\n\texpect(globalThis.window.location.href).toBe(\"https://example.com/de/page\");\n});\n\ntest(\"returns locale from custom strategy\", 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\tstrategy: [\"custom-client\", \"baseLocale\"],\n\t\tisServer: \"false\",\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-client\", {\n\t\tgetLocale: () => \"fr\",\n\t\tsetLocale: () => {},\n\t});\n\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(\"fr\");\n});\n\ntest(\"falls back to next strategy when custom strategy returns undefined\", 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\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"custom-undefined\", \"baseLocale\"],\n\t\tisServer: \"false\",\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-undefined\", {\n\t\tgetLocale: () => undefined,\n\t\tsetLocale: () => {},\n\t});\n\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(\"en\"); // Should fall back to baseLocale\n});\n\ntest(\"throws error if custom strategy returns invalid 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\", \"fr\"],\n\t\t\t},\n\t\t}),\n\t\tstrategy: [\"custom-invalid\", \"baseLocale\"],\n\t\tisServer: \"false\",\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-invalid\", {\n\t\tgetLocale: () => \"invalid-locale\",\n\t\tsetLocale: () => {},\n\t});\n\n\texpect(() => runtime.getLocale()).toThrow();\n});\n\ntest(\"custom strategy takes precedence over built-in strategies in getLocale\", async () => {\n\t// @ts-expect-error - global variable definition\n\tglobalThis.document = { cookie: \"PARAGLIDE_LOCALE=fr\" };\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\tstrategy: [\"custom-priority\", \"cookie\", \"baseLocale\"],\n\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t\tisServer: \"false\",\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-priority\", {\n\t\tgetLocale: () => \"de\",\n\t\tsetLocale: () => {},\n\t});\n\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(\"de\"); // Should use custom strategy, not cookie\n});\n\ntest(\"multiple custom strategies work in order in getLocale\", 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\tstrategy: [\"custom-first\", \"custom-second\", \"baseLocale\"],\n\t\tisServer: \"false\",\n\t});\n\n\t// Define two custom strategies\n\truntime.defineCustomClientStrategy(\"custom-first\", {\n\t\tgetLocale: () => undefined, // This one returns undefined\n\t\tsetLocale: () => {},\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-second\", {\n\t\tgetLocale: () => \"fr\", // This one returns a locale\n\t\tsetLocale: () => {},\n\t});\n\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(\"fr\"); // Should use second custom strategy\n});\n\ntest(\"custom strategy works with session storage simulation\", async () => {\n\t// Simulate a custom strategy that reads from session storage\n\tlet sessionData = \"de\";\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\tstrategy: [\"custom-session\", \"baseLocale\"],\n\t\tisServer: \"false\",\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-session\", {\n\t\tgetLocale: () => sessionData,\n\t\tsetLocale: (locale) => {\n\t\t\tsessionData = locale;\n\t\t},\n\t});\n\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(\"de\");\n});\n\ntest(\"custom strategy integrates with locale initialization\", async () => {\n\t// @ts-expect-error - global variable definition\n\tglobalThis.window = {};\n\n\t// Define a custom strategy that tracks if it was called\n\tlet getLocaleCalled = false;\n\tlet setLocaleCalled = false;\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\tstrategy: [\"custom-tracking\"],\n\t\tisServer: \"false\",\n\t});\n\n\truntime.defineCustomClientStrategy(\"custom-tracking\", {\n\t\tgetLocale: () => {\n\t\t\tgetLocaleCalled = true;\n\t\t\treturn \"fr\";\n\t\t},\n\t\tsetLocale: () => {\n\t\t\tsetLocaleCalled = true;\n\t\t},\n\t});\n\n\t// First call should trigger the custom strategy\n\tconst locale = runtime.getLocale();\n\texpect(locale).toBe(\"fr\");\n\texpect(getLocaleCalled).toBe(true);\n\n\t// Setting the locale should also call the custom strategy\n\truntime.setLocale(\"de\");\n\n\t// The locale should be set internally after first resolution\n\texpect(setLocaleCalled).toBe(true);\n});\n"]}
@@ -13,4 +13,3 @@
13
13
  * @returns {"ltr" | "rtl"}
14
14
  */
15
15
  export declare function getTextDirection(locale?: string): "ltr" | "rtl";
16
- //# sourceMappingURL=get-text-direction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-text-direction.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-text-direction.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC5B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACJ,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAM,GAAG,SAAS,EAAE;IACpD,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG;;;aAGd,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,GACd,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;QAExE,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,oEAAoE;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACrD,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"get-text-direction.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-text-direction.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC5B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACJ,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAM,GAAG,SAAS,EAAE;IACpD,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG;;;aAGd,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,GACd,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;QAExE,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAChD,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,oEAAoE;IACrE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACrD,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACzD,CAAC","sourcesContent":["import { getLocale } from \"./get-locale.js\";\n\nconst rtlLanguages = new Set([\n\t\"ar\",\n\t\"dv\",\n\t\"fa\",\n\t\"he\",\n\t\"ks\",\n\t\"ku\",\n\t\"ps\",\n\t\"sd\",\n\t\"ug\",\n\t\"ur\",\n\t\"yi\",\n]);\n\n/**\n * Get writing direction for a locale.\n *\n * Uses `Intl.Locale` text info when available and falls back to a\n * language-based RTL check for runtimes without `getTextInfo()`.\n *\n * @example\n * getTextDirection(); // \"ltr\" or \"rtl\" for current locale\n * getTextDirection(\"ar\"); // \"rtl\"\n * getTextDirection(\"en\"); // \"ltr\"\n *\n * @param {string} [locale] - Target locale. If not provided, uses `getLocale()`\n * @returns {\"ltr\" | \"rtl\"}\n */\nexport function getTextDirection(locale = getLocale()) {\n\ttry {\n\t\tconst intlLocale = /** @type {Intl.Locale & {\n\t\t\tgetTextInfo?: () => { direction?: string };\n\t\t\ttextInfo?: { direction?: string };\n\t\t}} */ (new Intl.Locale(locale));\n\t\tconst direction =\n\t\t\tintlLocale.getTextInfo?.().direction ?? intlLocale.textInfo?.direction;\n\n\t\tif (direction === \"ltr\" || direction === \"rtl\") {\n\t\t\treturn direction;\n\t\t}\n\t} catch {\n\t\t// Ignore Intl.Locale parsing/runtime errors and use fallback below.\n\t}\n\n\tconst language = locale.split(\"-\")[0]?.toLowerCase();\n\treturn rtlLanguages.has(language ?? \"\") ? \"rtl\" : \"ltr\";\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=get-text-direction.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-text-direction.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-text-direction.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,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;IACrC,IAAI,EAAE,MAAM,UAAU,CAAC;QACtB,QAAQ,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SACrB;KACD,CAAC;CACF,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACpD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC3D,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACjE,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IAEnC,MAAM,UAAU;QACf,YAAY,OAAe,IAAG,CAAC;KAC/B;IAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;QACrC,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;YACrC,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"get-text-direction.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-text-direction.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,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;IACrC,IAAI,EAAE,MAAM,UAAU,CAAC;QACtB,QAAQ,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SACrB;KACD,CAAC;CACF,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACpD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC3D,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACjE,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IAEnC,MAAM,UAAU;QACf,YAAY,OAAe,IAAG,CAAC;KAC/B;IAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;QACrC,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,CAAC;QACJ,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;YACrC,KAAK,EAAE,cAAc;YACrB,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC,CAAC","sourcesContent":["import { newProject } from \"@inlang/sdk\";\nimport { expect, test } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\n\nconst runtime = await createParaglide({\n\tblob: await newProject({\n\t\tsettings: {\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"ar\"],\n\t\t},\n\t}),\n});\n\ntest(\"returns direction for a provided locale\", () => {\n\texpect(runtime.getTextDirection(\"en\")).toBe(\"ltr\");\n\texpect(runtime.getTextDirection(\"ar\")).toBe(\"rtl\");\n});\n\ntest(\"uses current locale when no locale is provided\", () => {\n\truntime.setLocale(\"ar\", { reload: false });\n\texpect(runtime.getTextDirection()).toBe(\"rtl\");\n\truntime.setLocale(\"en\", { reload: false });\n\texpect(runtime.getTextDirection()).toBe(\"ltr\");\n});\n\ntest(\"falls back when Intl.Locale text info is unavailable\", () => {\n\tconst OriginalLocale = Intl.Locale;\n\n\tclass MockLocale {\n\t\tconstructor(_locale: string) {}\n\t}\n\n\tObject.defineProperty(Intl, \"Locale\", {\n\t\tvalue: MockLocale,\n\t\tconfigurable: true,\n\t});\n\n\ttry {\n\t\texpect(runtime.getTextDirection(\"ar\")).toBe(\"rtl\");\n\t\texpect(runtime.getTextDirection(\"ug\")).toBe(\"rtl\");\n\t\texpect(runtime.getTextDirection(\"sd\")).toBe(\"rtl\");\n\t\texpect(runtime.getTextDirection(\"ks\")).toBe(\"rtl\");\n\t\texpect(runtime.getTextDirection(\"en\")).toBe(\"ltr\");\n\t} finally {\n\t\tObject.defineProperty(Intl, \"Locale\", {\n\t\t\tvalue: OriginalLocale,\n\t\t\tconfigurable: true,\n\t\t});\n\t}\n});\n"]}
@@ -17,4 +17,3 @@ export declare let getUrlOrigin: () => string;
17
17
  * @param {() => string} fn - The new implementation for `getUrlOrigin()`.
18
18
  */
19
19
  export declare let overwriteGetUrlOrigin: (fn: () => string) => void;
20
- //# sourceMappingURL=get-url-origin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-url-origin.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-url-origin.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,IAAI,YAAY,GAAG,GAAG,EAAE;IAC9B,IAAI,uBAAuB,EAAE,CAAC;QAC7B,OAAO,uBAAuB,CAAC,QAAQ,EAAE,EAAE,MAAM,IAAI,qBAAqB,CAAC;IAC5E,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,IAAI,qBAAqB,GAAG,CAAC,EAAE,EAAE,EAAE;IACzC,YAAY,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"get-url-origin.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-url-origin.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,IAAI,YAAY,GAAG,GAAG,EAAE;IAC9B,IAAI,uBAAuB,EAAE,CAAC;QAC7B,OAAO,uBAAuB,CAAC,QAAQ,EAAE,EAAE,MAAM,IAAI,qBAAqB,CAAC;IAC5E,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/B,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,IAAI,qBAAqB,GAAG,CAAC,EAAE,EAAE,EAAE;IACzC,YAAY,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC","sourcesContent":["import { serverAsyncLocalStorage } from \"./variables.js\";\n\n/**\n * The origin of the current URL.\n *\n * Defaults to \"http://example.com\" in non-browser environments. If this\n * behavior is not desired, the implementation can be overwritten\n * by `overwriteGetUrlOrigin()`.\n *\n * @type {() => string}\n */\nexport let getUrlOrigin = () => {\n\tif (serverAsyncLocalStorage) {\n\t\treturn serverAsyncLocalStorage.getStore()?.origin ?? \"http://fallback.com\";\n\t} else if (typeof window !== \"undefined\") {\n\t\treturn window.location.origin;\n\t}\n\treturn \"http://fallback.com\";\n};\n\n/**\n * Overwrite the getUrlOrigin function.\n *\n * Use this function in server environments to\n * define how the URL origin is resolved.\n *\n * @param {() => string} fn - The new implementation for `getUrlOrigin()`.\n */\nexport let overwriteGetUrlOrigin = (fn) => {\n\tgetUrlOrigin = fn;\n};\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=get-url-origin.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-url-origin.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-url-origin.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,wFAAwF,EAAE,KAAK,IAAI,EAAE;IACzG,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,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IAClE,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,UAAU,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAS,CAAC;IAE3E,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"get-url-origin.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/get-url-origin.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,wFAAwF,EAAE,KAAK,IAAI,EAAE;IACzG,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,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IAClE,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,UAAU,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAS,CAAC;IAE3E,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC","sourcesContent":["import { test, expect } from \"vitest\";\nimport { createParaglide } from \"../create-paraglide.js\";\nimport { newProject } from \"@inlang/sdk\";\n\ntest(\"returns a placeholder in server environment as placeholder to make dependent apis work\", 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.getUrlOrigin()).toBeDefined();\n});\n\ntest(\"returns the window.location.origin if 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\tglobalThis.window = { location: { origin: \"https://example.com\" } } as any;\n\n\texpect(runtime.getUrlOrigin()).toBe(\"https://example.com\");\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,77 @@
1
+ import { bench } from "vitest";
2
+ import { newProject } from "@inlang/sdk";
3
+ import { createParaglide } from "../create-paraglide.js";
4
+ const runtime = await createParaglide({
5
+ blob: await newProject({
6
+ settings: {
7
+ baseLocale: "en",
8
+ locales: ["en", "de", "fr", "es"],
9
+ },
10
+ }),
11
+ isServer: "false",
12
+ strategy: ["url"],
13
+ urlPatterns: [
14
+ {
15
+ pattern: "https://example.com/:path*",
16
+ localized: [
17
+ ["en", "https://example.com/:path*"],
18
+ ["de", "https://de.example.com/:path*"],
19
+ ["fr", "https://fr.example.com/:path*"],
20
+ ["es", "https://es.example.com/:path*"],
21
+ ],
22
+ },
23
+ {
24
+ pattern: "https://example.com/blog/:path*",
25
+ localized: [
26
+ ["en", "https://example.com/blog/:path*"],
27
+ ["de", "https://de.example.com/blog/:path*"],
28
+ ["fr", "https://fr.example.com/blog/:path*"],
29
+ ["es", "https://es.example.com/blog/:path*"],
30
+ ],
31
+ },
32
+ ],
33
+ });
34
+ const genericRuntime = await createParaglide({
35
+ blob: await newProject({
36
+ settings: {
37
+ baseLocale: "en",
38
+ locales: ["en", "de", "fr", "es"],
39
+ },
40
+ }),
41
+ isServer: "false",
42
+ strategy: ["url"],
43
+ urlPatterns: [
44
+ {
45
+ // A custom group name intentionally keeps this route on the generic
46
+ // URLPattern fallback while matching the same URLs.
47
+ pattern: "/:slug(.*)?",
48
+ localized: [
49
+ ["en", "/:slug(.*)?"],
50
+ ["de", "/de/:slug(.*)?"],
51
+ ["fr", "/fr/:slug(.*)?"],
52
+ ["es", "/es/:slug(.*)?"],
53
+ ],
54
+ },
55
+ ],
56
+ });
57
+ runtime.overwriteGetLocale(() => "en");
58
+ runtime.overwriteGetUrlOrigin(() => "https://example.com");
59
+ genericRuntime.overwriteGetLocale(() => "en");
60
+ genericRuntime.overwriteGetUrlOrigin(() => "https://example.com");
61
+ for (let i = 0; i < 1000; i++) {
62
+ runtime.localizeHref(`/page-${i % 100}.html`, { locale: "de" });
63
+ }
64
+ bench("localizeHref with repeated routes", () => {
65
+ for (let i = 0; i < 1000; i++) {
66
+ runtime.localizeHref(`/page-${i % 100}.html`, { locale: "de" });
67
+ }
68
+ }, { time: 1000 });
69
+ for (let i = 0; i < 1000; i++) {
70
+ genericRuntime.localizeHref(`/page-${i % 100}.html`, { locale: "de" });
71
+ }
72
+ bench("localizeHref with generic URLPattern fallback", () => {
73
+ for (let i = 0; i < 1000; i++) {
74
+ genericRuntime.localizeHref(`/page-${i % 100}.html`, { locale: "de" });
75
+ }
76
+ }, { time: 1000 });
77
+ //# sourceMappingURL=localize-href.bench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localize-href.bench.js","sourceRoot":"","sources":["../../../src/compiler/runtime/localize-href.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;IACrC,IAAI,EAAE,MAAM,UAAU,CAAC;QACtB,QAAQ,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;SACjC;KACD,CAAC;IACF,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,WAAW,EAAE;QACZ;YACC,OAAO,EAAE,4BAA4B;YACrC,SAAS,EAAE;gBACV,CAAC,IAAI,EAAE,4BAA4B,CAAC;gBACpC,CAAC,IAAI,EAAE,+BAA+B,CAAC;gBACvC,CAAC,IAAI,EAAE,+BAA+B,CAAC;gBACvC,CAAC,IAAI,EAAE,+BAA+B,CAAC;aACvC;SACD;QACD;YACC,OAAO,EAAE,iCAAiC;YAC1C,SAAS,EAAE;gBACV,CAAC,IAAI,EAAE,iCAAiC,CAAC;gBACzC,CAAC,IAAI,EAAE,oCAAoC,CAAC;gBAC5C,CAAC,IAAI,EAAE,oCAAoC,CAAC;gBAC5C,CAAC,IAAI,EAAE,oCAAoC,CAAC;aAC5C;SACD;KACD;CACD,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;IAC5C,IAAI,EAAE,MAAM,UAAU,CAAC;QACtB,QAAQ,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;SACjC;KACD,CAAC;IACF,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,WAAW,EAAE;QACZ;YACC,oEAAoE;YACpE,oDAAoD;YACpD,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE;gBACV,CAAC,IAAI,EAAE,aAAa,CAAC;gBACrB,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBACxB,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBACxB,CAAC,IAAI,EAAE,gBAAgB,CAAC;aACxB;SACD;KACD;CACD,CAAC,CAAC;AAEH,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACvC,OAAO,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAC3D,cAAc,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9C,cAAc,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,CACJ,mCAAmC,EACnC,GAAG,EAAE;IACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;AACF,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACd,CAAC;AAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/B,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,CACJ,+CAA+C,EAC/C,GAAG,EAAE;IACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;AACF,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACd,CAAC","sourcesContent":["import { bench } from \"vitest\";\nimport { newProject } from \"@inlang/sdk\";\nimport { createParaglide } from \"../create-paraglide.js\";\n\nconst runtime = await createParaglide({\n\tblob: await newProject({\n\t\tsettings: {\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\", \"fr\", \"es\"],\n\t\t},\n\t}),\n\tisServer: \"false\",\n\tstrategy: [\"url\"],\n\turlPatterns: [\n\t\t{\n\t\t\tpattern: \"https://example.com/:path*\",\n\t\t\tlocalized: [\n\t\t\t\t[\"en\", \"https://example.com/:path*\"],\n\t\t\t\t[\"de\", \"https://de.example.com/:path*\"],\n\t\t\t\t[\"fr\", \"https://fr.example.com/:path*\"],\n\t\t\t\t[\"es\", \"https://es.example.com/:path*\"],\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tpattern: \"https://example.com/blog/:path*\",\n\t\t\tlocalized: [\n\t\t\t\t[\"en\", \"https://example.com/blog/:path*\"],\n\t\t\t\t[\"de\", \"https://de.example.com/blog/:path*\"],\n\t\t\t\t[\"fr\", \"https://fr.example.com/blog/:path*\"],\n\t\t\t\t[\"es\", \"https://es.example.com/blog/:path*\"],\n\t\t\t],\n\t\t},\n\t],\n});\n\nconst genericRuntime = await createParaglide({\n\tblob: await newProject({\n\t\tsettings: {\n\t\t\tbaseLocale: \"en\",\n\t\t\tlocales: [\"en\", \"de\", \"fr\", \"es\"],\n\t\t},\n\t}),\n\tisServer: \"false\",\n\tstrategy: [\"url\"],\n\turlPatterns: [\n\t\t{\n\t\t\t// A custom group name intentionally keeps this route on the generic\n\t\t\t// URLPattern fallback while matching the same URLs.\n\t\t\tpattern: \"/:slug(.*)?\",\n\t\t\tlocalized: [\n\t\t\t\t[\"en\", \"/:slug(.*)?\"],\n\t\t\t\t[\"de\", \"/de/:slug(.*)?\"],\n\t\t\t\t[\"fr\", \"/fr/:slug(.*)?\"],\n\t\t\t\t[\"es\", \"/es/:slug(.*)?\"],\n\t\t\t],\n\t\t},\n\t],\n});\n\nruntime.overwriteGetLocale(() => \"en\");\nruntime.overwriteGetUrlOrigin(() => \"https://example.com\");\ngenericRuntime.overwriteGetLocale(() => \"en\");\ngenericRuntime.overwriteGetUrlOrigin(() => \"https://example.com\");\n\nfor (let i = 0; i < 1000; i++) {\n\truntime.localizeHref(`/page-${i % 100}.html`, { locale: \"de\" });\n}\n\nbench(\n\t\"localizeHref with repeated routes\",\n\t() => {\n\t\tfor (let i = 0; i < 1000; i++) {\n\t\t\truntime.localizeHref(`/page-${i % 100}.html`, { locale: \"de\" });\n\t\t}\n\t},\n\t{ time: 1000 }\n);\n\nfor (let i = 0; i < 1000; i++) {\n\tgenericRuntime.localizeHref(`/page-${i % 100}.html`, { locale: \"de\" });\n}\n\nbench(\n\t\"localizeHref with generic URLPattern fallback\",\n\t() => {\n\t\tfor (let i = 0; i < 1000; i++) {\n\t\t\tgenericRuntime.localizeHref(`/page-${i % 100}.html`, { locale: \"de\" });\n\t\t}\n\t},\n\t{ time: 1000 }\n);\n"]}
@@ -82,4 +82,3 @@ export declare function localizeHref(href: string, options?: {
82
82
  * @returns {string} The de-localized href, relative if input was relative
83
83
  */
84
84
  export declare function deLocalizeHref(href: string): string;
85
- //# sourceMappingURL=localize-href.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localize-href.js","sourceRoot":"","sources":["../../../src/compiler/runtime/localize-href.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO;IACzC,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,aAAa,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/C,uDAAuD;IACvD,2BAA2B;IAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7D,sFAAsF;QACtF,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC9B,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC/C,MAAM,EAAE,aAAa;aACrB,CAAC,CAAC;YACH,IAAI,sBAAsB,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBACxD,OAAO,SAAS,CAAC,IAAI,CAAC;YACvB,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,cAAc,CAAC,IAAI;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAEvC,uDAAuD;IACvD,oDAAoD;IACpD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/D,OAAO,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"localize-href.js","sourceRoot":"","sources":["../../../src/compiler/runtime/localize-href.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO;IACzC,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,aAAa,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/C,uDAAuD;IACvD,2BAA2B;IAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC7D,sFAAsF;QACtF,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC9B,MAAM,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC/C,MAAM,EAAE,aAAa;aACrB,CAAC,CAAC;YACH,IAAI,sBAAsB,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;gBACxD,OAAO,SAAS,CAAC,IAAI,CAAC;YACvB,CAAC;QACF,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,cAAc,CAAC,IAAI;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAEvC,uDAAuD;IACvD,oDAAoD;IACpD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/D,OAAO,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AACzB,CAAC","sourcesContent":["import { getLocale } from \"./get-locale.js\";\nimport { getUrlOrigin } from \"./get-url-origin.js\";\nimport { deLocalizeUrl, localizeUrl } from \"./localize-url.js\";\n\n/**\n * High-level URL localization function optimized for client-side UI usage.\n *\n * This is a convenience wrapper around `localizeUrl()` that provides features\n * needed in UI:\n *\n * - Accepts relative paths (e.g., \"/about\")\n * - Returns relative paths when possible\n * - Automatically detects current locale if not specified\n * - Handles string input/output instead of URL objects\n *\n * @see https://paraglidejs.com/i18n-routing\n *\n * @example\n * ```typescript\n * // In a React/Vue/Svelte component\n * const NavLink = ({ href }) => {\n * // Automatically uses current locale, keeps path relative\n * return <a href={localizeHref(href)}>...</a>;\n * };\n *\n * // Examples:\n * localizeHref(\"/about\")\n * // => \"/de/about\" (if current locale is \"de\")\n * localizeHref(\"/store\", { locale: \"fr\" })\n * // => \"/fr/store\" (explicit locale)\n *\n * // Cross-origin links remain absolute\n * localizeHref(\"https://other-site.com/about\")\n * // => \"https://other-site.com/de/about\"\n * ```\n *\n * For server-side URL localization (e.g., in middleware), use `localizeUrl()`\n * which provides more precise control over URL handling.\n *\n * @param {string} href - The href to localize (can be relative or absolute)\n * @param {object} [options] - Options for localization\n * @param {Locale} [options.locale] - Target locale. If not provided, uses `getLocale()`\n * @returns {string} The localized href, relative if input was relative\n */\nexport function localizeHref(href, options) {\n\tconst currentLocale = getLocale();\n\tconst locale = options?.locale ?? currentLocale;\n\tconst url = new URL(href, getUrlOrigin());\n\n\tconst localized = localizeUrl(url, { locale });\n\n\t// if the origin is identical and the href is relative,\n\t// return the relative path\n\tif (href.startsWith(\"/\") && url.origin === localized.origin) {\n\t\t// check for cross origin localization in which case an absolute URL must be returned.\n\t\tif (locale !== currentLocale) {\n\t\t\tconst localizedCurrentLocale = localizeUrl(url, {\n\t\t\t\tlocale: currentLocale,\n\t\t\t});\n\t\t\tif (localizedCurrentLocale.origin !== localized.origin) {\n\t\t\t\treturn localized.href;\n\t\t\t}\n\t\t}\n\t\treturn localized.pathname + localized.search + localized.hash;\n\t}\n\n\treturn localized.href;\n}\n\n/**\n * High-level URL de-localization function optimized for client-side UI usage.\n *\n * This is a convenience wrapper around `deLocalizeUrl()` that provides features\n * needed in the UI:\n *\n * - Accepts relative paths (e.g., \"/de/about\")\n * - Returns relative paths when possible\n * - Handles string input/output instead of URL objects\n *\n * @see https://paraglidejs.com/i18n-routing\n *\n * @example\n * ```typescript\n * // In a React/Vue/Svelte component\n * const LocaleSwitcher = ({ href }) => {\n * // Remove locale prefix before switching\n * const baseHref = deLocalizeHref(href);\n * return locales.map(locale =>\n * <a href={localizeHref(baseHref, { locale })}>\n * Switch to {locale}\n * </a>\n * );\n * };\n *\n * // Examples:\n * deLocalizeHref(\"/de/about\") // => \"/about\"\n * deLocalizeHref(\"/fr/store\") // => \"/store\"\n *\n * // Cross-origin links remain absolute\n * deLocalizeHref(\"https://example.com/de/about\")\n * // => \"https://example.com/about\"\n * ```\n *\n * For server-side URL de-localization (e.g., in middleware), use `deLocalizeUrl()`\n * which provides more precise control over URL handling.\n *\n * @param {string} href - The href to de-localize (can be relative or absolute)\n * @returns {string} The de-localized href, relative if input was relative\n */\nexport function deLocalizeHref(href) {\n\tconst url = new URL(href, getUrlOrigin());\n\n\tconst deLocalized = deLocalizeUrl(url);\n\n\t// If the origin is identical and the href is relative,\n\t// return the relative path instead of the full URL.\n\tif (href.startsWith(\"/\") && url.origin === deLocalized.origin) {\n\t\treturn deLocalized.pathname + deLocalized.search + deLocalized.hash;\n\t}\n\n\treturn deLocalized.href;\n}\n"]}
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=localize-href.test.d.ts.map
@@ -148,6 +148,23 @@ test("default url patterns to improve out of the box experience", async () => {
148
148
  expect(runtime.localizeHref("http://localhost:5173/about", { locale: "de" })).toBe("http://localhost:5173/de/about");
149
149
  expect(runtime.deLocalizeHref("http://localhost:5173/de/about")).toBe("http://localhost:5173/about");
150
150
  });
151
+ test("normalizes localized root hrefs and anchors", async () => {
152
+ const runtime = await createParaglide({
153
+ blob: await newProject({
154
+ settings: {
155
+ baseLocale: "en",
156
+ locales: ["en", "de"],
157
+ },
158
+ }),
159
+ isServer: "false",
160
+ strategy: ["url"],
161
+ trailingSlash: "never",
162
+ });
163
+ globalThis.window = { location: new URL("http://example.com") };
164
+ expect(runtime.localizeHref("/", { locale: "de" })).toBe("/de");
165
+ expect(runtime.localizeHref("/#section", { locale: "de" })).toBe("/de#section");
166
+ expect(runtime.deLocalizeHref("/de/")).toBe("/");
167
+ });
151
168
  test("normalizes mixed-case explicit locales in localizeHref", async () => {
152
169
  const runtime = await createParaglide({
153
170
  blob: await newProject({
@@ -161,4 +178,30 @@ test("normalizes mixed-case explicit locales in localizeHref", async () => {
161
178
  expect(runtime.localizeHref("/about", { locale: "DE" })).toBe("/de/about");
162
179
  expect(runtime.localizeHref("/de/about", { locale: "EN" })).toBe("/about");
163
180
  });
181
+ test("keeps custom URLPattern path expressions on the generic fallback", async () => {
182
+ const runtime = await createParaglide({
183
+ blob: await newProject({
184
+ settings: {
185
+ baseLocale: "en",
186
+ locales: ["en", "de"],
187
+ },
188
+ }),
189
+ strategy: ["url"],
190
+ urlPatterns: [
191
+ {
192
+ pattern: "/:slug(.)?",
193
+ localized: [
194
+ ["en", "/:slug(.)?"],
195
+ ["de", "/de/:slug(.)?"],
196
+ ],
197
+ },
198
+ ],
199
+ });
200
+ runtime.overwriteGetLocale(() => "en");
201
+ runtime.overwriteGetUrlOrigin(() => "https://example.com");
202
+ // `(.)` matches exactly one character in URLPattern. A prefix-only
203
+ // implementation must not broaden this route into a catch-all.
204
+ expect(runtime.localizeHref("/a", { locale: "de" })).toBe("/de/a");
205
+ expect(runtime.localizeHref("/about", { locale: "de" })).toBe("/about");
206
+ });
164
207
  //# sourceMappingURL=localize-href.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localize-href.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/localize-href.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localize-href.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/localize-href.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(\"uses the locale from getLocale() if no locale is provided\", 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: [\"url\", \"globalVariable\", \"baseLocale\"],\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"http://:domain(.*)/:locale(de|en)?/:path(.*)?\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"de\", \"http://:domain(.*)/de/:path(.*)?\"],\n\t\t\t\t\t[\"en\", \"http://:domain(.*)/:path(.*)?\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\truntime.overwriteGetLocale(() => \"de\");\n\n\texpect(runtime.localizeHref(\"/hello\")).toBe(\"/de/hello\");\n\texpect(runtime.deLocalizeHref(\"/de/hello\")).toBe(\"/hello\");\n});\n\ntest(\"returns an absolute href if the provided href is absolute\", 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: [\"url\", \"globalVariable\", \"baseLocale\"],\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"http://:domain(.*)/:locale(de|en)?/:path(.*)?\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"de\", \"http://:domain(.*)/de/:path(.*)?\"],\n\t\t\t\t\t[\"en\", \"http://:domain(.*)/:path(.*)?\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\texpect(\n\t\truntime.localizeHref(\"http://example.com/hello\", { locale: \"de\" })\n\t).toBe(\"http://example.com/de/hello\");\n\texpect(runtime.deLocalizeHref(\"http://example.com/de/hello\")).toBe(\n\t\t\"http://example.com/hello\"\n\t);\n});\n\n// useful if domain based localization is used for example\ntest(\"returns an absolute href if the provided href is relative but the origin of the localized href differs\", 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: [\"url\", \"globalVariable\", \"baseLocale\"],\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"http://example.com/:path(.*)?\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"de\", \"http://de.example.com/:path(.*)?\"],\n\t\t\t\t\t[\"en\", \"http://example.com/:path(.*)?\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\t// simulating routing from current en page to de page\n\truntime.overwriteGetLocale(() => \"en\");\n\truntime.overwriteGetUrlOrigin(() => \"http://example.com\");\n\n\texpect(runtime.localizeHref(\"/hello\", { locale: \"de\" })).toBe(\n\t\t\"http://de.example.com/hello\"\n\t);\n\texpect(runtime.deLocalizeHref(\"http://de.example.com/hello\")).toBe(\n\t\t\"http://example.com/hello\"\n\t);\n\n\t// simulating routing from current de page to en page\n\truntime.overwriteGetLocale(() => \"de\");\n\n\texpect(runtime.localizeHref(\"/hello\", { locale: \"en\" })).toBe(\n\t\t\"http://example.com/hello\"\n\t);\n\texpect(runtime.deLocalizeHref(\"http://example.com/hello\")).toBe(\n\t\t\"http://example.com/hello\"\n\t);\n});\n\n// https://github.com/opral/inlang-paraglide-js/issues/362\ntest(\"adding a base path\", async () => {\n\tconst base = \"shop\";\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\tstrategy: [\"url\"],\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: `/{${base}/}?:path(.*)?`,\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"de\", `/{${base}/}?de/:path(.*)?`],\n\t\t\t\t\t[\"en\", `/{${base}/}?:path(.*)?`],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\n\t// simulating the current locale to be en\n\truntime.overwriteGetLocale(() => \"en\");\n\n\texpect(runtime.localizeHref(\"/about\")).toBe(\"/shop/about\");\n\texpect(runtime.deLocalizeHref(\"/about\")).toBe(\"/shop/about\");\n\n\t// simulating current locale to be de\n\truntime.overwriteGetLocale(() => \"de\");\n\texpect(runtime.localizeHref(\"/about\")).toBe(\"/shop/de/about\");\n\texpect(runtime.deLocalizeHref(\"/de/about\")).toBe(\"/shop/about\");\n});\n\ntest(\"default url patterns to improve out of the box experience\", 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\", \"fr\"],\n\t\t\t},\n\t\t}),\n\t\tisServer: \"false\",\n\t\tstrategy: [\"url\"],\n\t\turlPatterns: undefined,\n\t});\n\n\t// polyfilling window\n\tglobalThis.window = { location: new URL(\"http://example.com\") } as any;\n\n\texpect(runtime.urlPatterns).toStrictEqual([\n\t\t{\n\t\t\tpattern: \":protocol://:domain(.*)::port?/:path(.*)?\",\n\t\t\tlocalized: [\n\t\t\t\t[\"de\", \":protocol://:domain(.*)::port?/de/:path(.*)?\"],\n\t\t\t\t[\"fr\", \":protocol://:domain(.*)::port?/fr/:path(.*)?\"],\n\t\t\t\t[\"en\", \":protocol://:domain(.*)::port?/:path(.*)?\"],\n\t\t\t],\n\t\t},\n\t]);\n\n\t// expecting the baseLocale to not be included in the url\n\texpect(runtime.localizeHref(\"/about\", { locale: \"en\" })).toBe(\"/about\");\n\texpect(runtime.localizeHref(\"/about\", { locale: \"de\" })).toBe(\"/de/about\");\n\n\t// expecting root path to work\n\texpect(runtime.localizeHref(\"/\", { locale: \"en\" })).toBe(\"/\");\n\texpect(runtime.localizeHref(\"/\", { locale: \"de\" })).toBe(\"/de/\");\n\n\t// expecting de-localization to work\n\texpect(runtime.deLocalizeHref(\"/de/\")).toBe(\"/\");\n\texpect(runtime.deLocalizeHref(\"/de/about\")).toBe(\"/about\");\n\texpect(runtime.deLocalizeHref(\"/about\")).toBe(\"/about\");\n\n\t// expecting localhost to work (for development)\n\texpect(runtime.localizeHref(\"http://localhost:5173/\", { locale: \"de\" })).toBe(\n\t\t\"http://localhost:5173/de/\"\n\t);\n\n\t// de-localizing localhost\n\texpect(runtime.deLocalizeHref(\"http://localhost:5173/de\")).toBe(\n\t\t\"http://localhost:5173/\"\n\t);\n\n\t// pathnames\n\texpect(\n\t\truntime.localizeHref(\"http://localhost:5173/about\", { locale: \"de\" })\n\t).toBe(\"http://localhost:5173/de/about\");\n\n\texpect(runtime.deLocalizeHref(\"http://localhost:5173/de/about\")).toBe(\n\t\t\"http://localhost:5173/about\"\n\t);\n});\n\ntest(\"normalizes localized root hrefs and anchors\", 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\tisServer: \"false\",\n\t\tstrategy: [\"url\"],\n\t\ttrailingSlash: \"never\",\n\t});\n\n\tglobalThis.window = { location: new URL(\"http://example.com\") } as any;\n\n\texpect(runtime.localizeHref(\"/\", { locale: \"de\" })).toBe(\"/de\");\n\texpect(runtime.localizeHref(\"/#section\", { locale: \"de\" })).toBe(\n\t\t\"/de#section\"\n\t);\n\texpect(runtime.deLocalizeHref(\"/de/\")).toBe(\"/\");\n});\n\ntest(\"normalizes mixed-case explicit locales in localizeHref\", 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: [\"url\"],\n\t});\n\n\texpect(runtime.localizeHref(\"/about\", { locale: \"DE\" })).toBe(\"/de/about\");\n\n\texpect(runtime.localizeHref(\"/de/about\", { locale: \"EN\" })).toBe(\"/about\");\n});\n\ntest(\"keeps custom URLPattern path expressions on the generic fallback\", 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: [\"url\"],\n\t\turlPatterns: [\n\t\t\t{\n\t\t\t\tpattern: \"/:slug(.)?\",\n\t\t\t\tlocalized: [\n\t\t\t\t\t[\"en\", \"/:slug(.)?\"],\n\t\t\t\t\t[\"de\", \"/de/:slug(.)?\"],\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t});\n\truntime.overwriteGetLocale(() => \"en\");\n\truntime.overwriteGetUrlOrigin(() => \"https://example.com\");\n\n\t// `(.)` matches exactly one character in URLPattern. A prefix-only\n\t// implementation must not broaden this route into a catch-all.\n\texpect(runtime.localizeHref(\"/a\", { locale: \"de\" })).toBe(\"/de/a\");\n\texpect(runtime.localizeHref(\"/about\", { locale: \"de\" })).toBe(\"/about\");\n});\n"]}
@@ -93,4 +93,17 @@ export declare function deLocalizeUrl(url: string | URL): URL;
93
93
  * @returns {Record<string, string | null | undefined>} An object containing all named groups from the match.
94
94
  */
95
95
  export declare function aggregateGroups(match: any): Record<string, string | null | undefined>;
96
- //# sourceMappingURL=localize-url.d.ts.map
96
+ export type FastPathPattern = {
97
+ protocol: string | undefined;
98
+ hostname: string | undefined;
99
+ port: string | undefined;
100
+ pathnamePrefix: string;
101
+ pathMode: "segments" | "catch-all-optional" | "catch-all-required";
102
+ };
103
+ export type FastPathRoute = {
104
+ base: FastPathPattern;
105
+ localized: Array<{
106
+ locale: string;
107
+ pattern: FastPathPattern;
108
+ }>;
109
+ };