@sebbro/paraglide-lite 0.1.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 (715) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/bin/run.js +4 -0
  4. package/dist/bundler-plugins/esbuild.d.ts +1 -0
  5. package/dist/bundler-plugins/esbuild.d.ts.map +1 -0
  6. package/dist/bundler-plugins/esbuild.js +4 -0
  7. package/dist/bundler-plugins/esbuild.js.map +1 -0
  8. package/dist/bundler-plugins/index.d.ts +6 -0
  9. package/dist/bundler-plugins/index.d.ts.map +1 -0
  10. package/dist/bundler-plugins/index.js +7 -0
  11. package/dist/bundler-plugins/index.js.map +1 -0
  12. package/dist/bundler-plugins/lazy-modules/scan-message-keys.d.ts +19 -0
  13. package/dist/bundler-plugins/lazy-modules/scan-message-keys.d.ts.map +1 -0
  14. package/dist/bundler-plugins/lazy-modules/scan-message-keys.js +85 -0
  15. package/dist/bundler-plugins/lazy-modules/scan-message-keys.js.map +1 -0
  16. package/dist/bundler-plugins/lazy-modules/scan-message-keys.test.d.ts +2 -0
  17. package/dist/bundler-plugins/lazy-modules/scan-message-keys.test.d.ts.map +1 -0
  18. package/dist/bundler-plugins/lazy-modules/scan-message-keys.test.js +53 -0
  19. package/dist/bundler-plugins/lazy-modules/scan-message-keys.test.js.map +1 -0
  20. package/dist/bundler-plugins/lazy-modules/ssr.d.ts +31 -0
  21. package/dist/bundler-plugins/lazy-modules/ssr.d.ts.map +1 -0
  22. package/dist/bundler-plugins/lazy-modules/ssr.js +42 -0
  23. package/dist/bundler-plugins/lazy-modules/ssr.js.map +1 -0
  24. package/dist/bundler-plugins/lazy-modules/ssr.test.d.ts +2 -0
  25. package/dist/bundler-plugins/lazy-modules/ssr.test.d.ts.map +1 -0
  26. package/dist/bundler-plugins/lazy-modules/ssr.test.js +48 -0
  27. package/dist/bundler-plugins/lazy-modules/ssr.test.js.map +1 -0
  28. package/dist/bundler-plugins/lazy-modules/virtual-ids.d.ts +7 -0
  29. package/dist/bundler-plugins/lazy-modules/virtual-ids.d.ts.map +1 -0
  30. package/dist/bundler-plugins/lazy-modules/virtual-ids.js +30 -0
  31. package/dist/bundler-plugins/lazy-modules/virtual-ids.js.map +1 -0
  32. package/dist/bundler-plugins/lazy-modules/virtual.d.ts +86 -0
  33. package/dist/bundler-plugins/lazy-modules/virtual.d.ts.map +1 -0
  34. package/dist/bundler-plugins/lazy-modules/virtual.js +2 -0
  35. package/dist/bundler-plugins/lazy-modules/virtual.js.map +1 -0
  36. package/dist/bundler-plugins/lazy-modules/vite-plugin.d.ts +18 -0
  37. package/dist/bundler-plugins/lazy-modules/vite-plugin.d.ts.map +1 -0
  38. package/dist/bundler-plugins/lazy-modules/vite-plugin.js +328 -0
  39. package/dist/bundler-plugins/lazy-modules/vite-plugin.js.map +1 -0
  40. package/dist/bundler-plugins/lazy-modules/vite-plugin.test.d.ts +2 -0
  41. package/dist/bundler-plugins/lazy-modules/vite-plugin.test.d.ts.map +1 -0
  42. package/dist/bundler-plugins/lazy-modules/vite-plugin.test.js +45 -0
  43. package/dist/bundler-plugins/lazy-modules/vite-plugin.test.js.map +1 -0
  44. package/dist/bundler-plugins/per-locale-build/constants.d.ts +2 -0
  45. package/dist/bundler-plugins/per-locale-build/constants.d.ts.map +1 -0
  46. package/dist/bundler-plugins/per-locale-build/constants.js +3 -0
  47. package/dist/bundler-plugins/per-locale-build/constants.js.map +1 -0
  48. package/dist/bundler-plugins/per-locale-build/index.d.ts +6 -0
  49. package/dist/bundler-plugins/per-locale-build/index.d.ts.map +1 -0
  50. package/dist/bundler-plugins/per-locale-build/index.js +43 -0
  51. package/dist/bundler-plugins/per-locale-build/index.js.map +1 -0
  52. package/dist/bundler-plugins/per-locale-build/locale-id.d.ts +8 -0
  53. package/dist/bundler-plugins/per-locale-build/locale-id.d.ts.map +1 -0
  54. package/dist/bundler-plugins/per-locale-build/locale-id.js +13 -0
  55. package/dist/bundler-plugins/per-locale-build/locale-id.js.map +1 -0
  56. package/dist/bundler-plugins/per-locale-build/types.d.ts +4 -0
  57. package/dist/bundler-plugins/per-locale-build/types.d.ts.map +1 -0
  58. package/dist/bundler-plugins/per-locale-build/types.js +2 -0
  59. package/dist/bundler-plugins/per-locale-build/types.js.map +1 -0
  60. package/dist/bundler-plugins/per-locale-build/vite-environments.d.ts +51 -0
  61. package/dist/bundler-plugins/per-locale-build/vite-environments.d.ts.map +1 -0
  62. package/dist/bundler-plugins/per-locale-build/vite-environments.js +250 -0
  63. package/dist/bundler-plugins/per-locale-build/vite-environments.js.map +1 -0
  64. package/dist/bundler-plugins/per-locale-build/vite-environments.test.d.ts +1 -0
  65. package/dist/bundler-plugins/per-locale-build/vite-environments.test.d.ts.map +1 -0
  66. package/dist/bundler-plugins/per-locale-build/vite-environments.test.js +250 -0
  67. package/dist/bundler-plugins/per-locale-build/vite-environments.test.js.map +1 -0
  68. package/dist/bundler-plugins/plugin-core.d.ts +74 -0
  69. package/dist/bundler-plugins/plugin-core.d.ts.map +1 -0
  70. package/dist/bundler-plugins/plugin-core.js +292 -0
  71. package/dist/bundler-plugins/plugin-core.js.map +1 -0
  72. package/dist/bundler-plugins/rolldown.d.ts +10 -0
  73. package/dist/bundler-plugins/rolldown.d.ts.map +1 -0
  74. package/dist/bundler-plugins/rolldown.js +36 -0
  75. package/dist/bundler-plugins/rolldown.js.map +1 -0
  76. package/dist/bundler-plugins/rolldown.test.d.ts +1 -0
  77. package/dist/bundler-plugins/rolldown.test.d.ts.map +1 -0
  78. package/dist/bundler-plugins/rolldown.test.js +72 -0
  79. package/dist/bundler-plugins/rolldown.test.js.map +1 -0
  80. package/dist/bundler-plugins/rollup.d.ts +1 -0
  81. package/dist/bundler-plugins/rollup.d.ts.map +1 -0
  82. package/dist/bundler-plugins/rollup.js +4 -0
  83. package/dist/bundler-plugins/rollup.js.map +1 -0
  84. package/dist/bundler-plugins/rspack.d.ts +1 -0
  85. package/dist/bundler-plugins/rspack.d.ts.map +1 -0
  86. package/dist/bundler-plugins/rspack.js +4 -0
  87. package/dist/bundler-plugins/rspack.js.map +1 -0
  88. package/dist/bundler-plugins/unplugin.d.ts +3 -0
  89. package/dist/bundler-plugins/unplugin.d.ts.map +1 -0
  90. package/dist/bundler-plugins/unplugin.js +62 -0
  91. package/dist/bundler-plugins/unplugin.js.map +1 -0
  92. package/dist/bundler-plugins/unplugin.test.d.ts +1 -0
  93. package/dist/bundler-plugins/unplugin.test.d.ts.map +1 -0
  94. package/dist/bundler-plugins/unplugin.test.js +256 -0
  95. package/dist/bundler-plugins/unplugin.test.js.map +1 -0
  96. package/dist/bundler-plugins/virtual-modules.test.d.ts +1 -0
  97. package/dist/bundler-plugins/virtual-modules.test.d.ts.map +1 -0
  98. package/dist/bundler-plugins/virtual-modules.test.js +77 -0
  99. package/dist/bundler-plugins/virtual-modules.test.js.map +1 -0
  100. package/dist/bundler-plugins/vite.d.ts +17 -0
  101. package/dist/bundler-plugins/vite.d.ts.map +1 -0
  102. package/dist/bundler-plugins/vite.js +15 -0
  103. package/dist/bundler-plugins/vite.js.map +1 -0
  104. package/dist/bundler-plugins/vite.test.d.ts +1 -0
  105. package/dist/bundler-plugins/vite.test.d.ts.map +1 -0
  106. package/dist/bundler-plugins/vite.test.js +61 -0
  107. package/dist/bundler-plugins/vite.test.js.map +1 -0
  108. package/dist/bundler-plugins/webpack.d.ts +1 -0
  109. package/dist/bundler-plugins/webpack.d.ts.map +1 -0
  110. package/dist/bundler-plugins/webpack.js +4 -0
  111. package/dist/bundler-plugins/webpack.js.map +1 -0
  112. package/dist/cli/commands/compile/command.d.ts +2 -0
  113. package/dist/cli/commands/compile/command.d.ts.map +1 -0
  114. package/dist/cli/commands/compile/command.js +225 -0
  115. package/dist/cli/commands/compile/command.js.map +1 -0
  116. package/dist/cli/commands/compile/command.test.d.ts +1 -0
  117. package/dist/cli/commands/compile/command.test.d.ts.map +1 -0
  118. package/dist/cli/commands/compile/command.test.js +69 -0
  119. package/dist/cli/commands/compile/command.test.js.map +1 -0
  120. package/dist/cli/commands/init/command.d.ts +2 -0
  121. package/dist/cli/commands/init/command.d.ts.map +1 -0
  122. package/dist/cli/commands/init/command.js +90 -0
  123. package/dist/cli/commands/init/command.js.map +1 -0
  124. package/dist/cli/defaults.d.ts +11 -0
  125. package/dist/cli/defaults.d.ts.map +1 -0
  126. package/dist/cli/defaults.js +13 -0
  127. package/dist/cli/defaults.js.map +1 -0
  128. package/dist/cli/index.d.ts +2 -0
  129. package/dist/cli/index.d.ts.map +1 -0
  130. package/dist/cli/index.js +11 -0
  131. package/dist/cli/index.js.map +1 -0
  132. package/dist/cli/steps/add-vite-plugin.d.ts +31 -0
  133. package/dist/cli/steps/add-vite-plugin.d.ts.map +1 -0
  134. package/dist/cli/steps/add-vite-plugin.js +65 -0
  135. package/dist/cli/steps/add-vite-plugin.js.map +1 -0
  136. package/dist/cli/steps/add-vite-plugin.test.d.ts +1 -0
  137. package/dist/cli/steps/add-vite-plugin.test.d.ts.map +1 -0
  138. package/dist/cli/steps/add-vite-plugin.test.js +74 -0
  139. package/dist/cli/steps/add-vite-plugin.test.js.map +1 -0
  140. package/dist/cli/steps/check-for-uncomitted-changes.d.ts +5 -0
  141. package/dist/cli/steps/check-for-uncomitted-changes.d.ts.map +1 -0
  142. package/dist/cli/steps/check-for-uncomitted-changes.js +37 -0
  143. package/dist/cli/steps/check-for-uncomitted-changes.js.map +1 -0
  144. package/dist/cli/steps/detect-bundler.d.ts +10 -0
  145. package/dist/cli/steps/detect-bundler.d.ts.map +1 -0
  146. package/dist/cli/steps/detect-bundler.js +22 -0
  147. package/dist/cli/steps/detect-bundler.js.map +1 -0
  148. package/dist/cli/steps/detect-bundler.test.d.ts +1 -0
  149. package/dist/cli/steps/detect-bundler.test.d.ts.map +1 -0
  150. package/dist/cli/steps/detect-bundler.test.js +29 -0
  151. package/dist/cli/steps/detect-bundler.test.js.map +1 -0
  152. package/dist/cli/steps/initialize-messages.d.ts +11 -0
  153. package/dist/cli/steps/initialize-messages.d.ts.map +1 -0
  154. package/dist/cli/steps/initialize-messages.js +31 -0
  155. package/dist/cli/steps/initialize-messages.js.map +1 -0
  156. package/dist/cli/steps/prompt-for-outdir.d.ts +8 -0
  157. package/dist/cli/steps/prompt-for-outdir.d.ts.map +1 -0
  158. package/dist/cli/steps/prompt-for-outdir.js +19 -0
  159. package/dist/cli/steps/prompt-for-outdir.js.map +1 -0
  160. package/dist/cli/steps/update-package-json.d.ts +11 -0
  161. package/dist/cli/steps/update-package-json.d.ts.map +1 -0
  162. package/dist/cli/steps/update-package-json.js +34 -0
  163. package/dist/cli/steps/update-package-json.js.map +1 -0
  164. package/dist/cli/steps/update-ts-config.d.ts +26 -0
  165. package/dist/cli/steps/update-ts-config.d.ts.map +1 -0
  166. package/dist/cli/steps/update-ts-config.js +270 -0
  167. package/dist/cli/steps/update-ts-config.js.map +1 -0
  168. package/dist/cli/steps/update-ts-config.test.d.ts +1 -0
  169. package/dist/cli/steps/update-ts-config.test.d.ts.map +1 -0
  170. package/dist/cli/steps/update-ts-config.test.js +60 -0
  171. package/dist/cli/steps/update-ts-config.test.js.map +1 -0
  172. package/dist/cli/utils.d.ts +36 -0
  173. package/dist/cli/utils.d.ts.map +1 -0
  174. package/dist/cli/utils.js +20 -0
  175. package/dist/cli/utils.js.map +1 -0
  176. package/dist/compiler/assert-url-pattern-available.d.ts +7 -0
  177. package/dist/compiler/assert-url-pattern-available.d.ts.map +1 -0
  178. package/dist/compiler/assert-url-pattern-available.js +17 -0
  179. package/dist/compiler/assert-url-pattern-available.js.map +1 -0
  180. package/dist/compiler/compile-annotation.d.ts +12 -0
  181. package/dist/compiler/compile-annotation.d.ts.map +1 -0
  182. package/dist/compiler/compile-annotation.js +136 -0
  183. package/dist/compiler/compile-annotation.js.map +1 -0
  184. package/dist/compiler/compile-bundle.d.ts +28 -0
  185. package/dist/compiler/compile-bundle.d.ts.map +1 -0
  186. package/dist/compiler/compile-bundle.js +431 -0
  187. package/dist/compiler/compile-bundle.js.map +1 -0
  188. package/dist/compiler/compile-bundle.test.d.ts +1 -0
  189. package/dist/compiler/compile-bundle.test.d.ts.map +1 -0
  190. package/dist/compiler/compile-bundle.test.js +399 -0
  191. package/dist/compiler/compile-bundle.test.js.map +1 -0
  192. package/dist/compiler/compile-local-variable.d.ts +16 -0
  193. package/dist/compiler/compile-local-variable.d.ts.map +1 -0
  194. package/dist/compiler/compile-local-variable.js +28 -0
  195. package/dist/compiler/compile-local-variable.js.map +1 -0
  196. package/dist/compiler/compile-local-variable.test.d.ts +1 -0
  197. package/dist/compiler/compile-local-variable.test.d.ts.map +1 -0
  198. package/dist/compiler/compile-local-variable.test.js +359 -0
  199. package/dist/compiler/compile-local-variable.test.js.map +1 -0
  200. package/dist/compiler/compile-message.d.ts +8 -0
  201. package/dist/compiler/compile-message.d.ts.map +1 -0
  202. package/dist/compiler/compile-message.js +174 -0
  203. package/dist/compiler/compile-message.js.map +1 -0
  204. package/dist/compiler/compile-message.test.d.ts +1 -0
  205. package/dist/compiler/compile-message.test.d.ts.map +1 -0
  206. package/dist/compiler/compile-message.test.js +1060 -0
  207. package/dist/compiler/compile-message.test.js.map +1 -0
  208. package/dist/compiler/compile-pattern.d.ts +29 -0
  209. package/dist/compiler/compile-pattern.d.ts.map +1 -0
  210. package/dist/compiler/compile-pattern.js +143 -0
  211. package/dist/compiler/compile-pattern.js.map +1 -0
  212. package/dist/compiler/compile-pattern.test.d.ts +1 -0
  213. package/dist/compiler/compile-pattern.test.d.ts.map +1 -0
  214. package/dist/compiler/compile-pattern.test.js +255 -0
  215. package/dist/compiler/compile-pattern.test.js.map +1 -0
  216. package/dist/compiler/compile-project.d.ts +21 -0
  217. package/dist/compiler/compile-project.d.ts.map +1 -0
  218. package/dist/compiler/compile-project.js +147 -0
  219. package/dist/compiler/compile-project.js.map +1 -0
  220. package/dist/compiler/compile-project.test.d.ts +1 -0
  221. package/dist/compiler/compile-project.test.d.ts.map +1 -0
  222. package/dist/compiler/compile-project.test.js +1709 -0
  223. package/dist/compiler/compile-project.test.js.map +1 -0
  224. package/dist/compiler/compile.bench.d.ts +1 -0
  225. package/dist/compiler/compile.bench.d.ts.map +1 -0
  226. package/dist/compiler/compile.bench.js +89 -0
  227. package/dist/compiler/compile.bench.js.map +1 -0
  228. package/dist/compiler/compile.d.ts +24 -0
  229. package/dist/compiler/compile.d.ts.map +1 -0
  230. package/dist/compiler/compile.js +106 -0
  231. package/dist/compiler/compile.js.map +1 -0
  232. package/dist/compiler/compile.test.d.ts +1 -0
  233. package/dist/compiler/compile.test.d.ts.map +1 -0
  234. package/dist/compiler/compile.test.js +66 -0
  235. package/dist/compiler/compile.test.js.map +1 -0
  236. package/dist/compiler/compiler-options.d.ts +466 -0
  237. package/dist/compiler/compiler-options.d.ts.map +1 -0
  238. package/dist/compiler/compiler-options.js +22 -0
  239. package/dist/compiler/compiler-options.js.map +1 -0
  240. package/dist/compiler/create-paraglide.d.ts +21 -0
  241. package/dist/compiler/create-paraglide.d.ts.map +1 -0
  242. package/dist/compiler/create-paraglide.js +69 -0
  243. package/dist/compiler/create-paraglide.js.map +1 -0
  244. package/dist/compiler/create-paraglide.test.d.ts +1 -0
  245. package/dist/compiler/create-paraglide.test.d.ts.map +1 -0
  246. package/dist/compiler/create-paraglide.test.js +55 -0
  247. package/dist/compiler/create-paraglide.test.js.map +1 -0
  248. package/dist/compiler/create-readme.d.ts +9 -0
  249. package/dist/compiler/create-readme.d.ts.map +1 -0
  250. package/dist/compiler/create-readme.js +127 -0
  251. package/dist/compiler/create-readme.js.map +1 -0
  252. package/dist/compiler/emit-files.d.ts +15 -0
  253. package/dist/compiler/emit-files.d.ts.map +1 -0
  254. package/dist/compiler/emit-files.js +58 -0
  255. package/dist/compiler/emit-files.js.map +1 -0
  256. package/dist/compiler/emit-files.test.d.ts +1 -0
  257. package/dist/compiler/emit-files.test.d.ts.map +1 -0
  258. package/dist/compiler/emit-files.test.js +43 -0
  259. package/dist/compiler/emit-files.test.js.map +1 -0
  260. package/dist/compiler/emit-ts-declarations.d.ts +11 -0
  261. package/dist/compiler/emit-ts-declarations.d.ts.map +1 -0
  262. package/dist/compiler/emit-ts-declarations.interop.test.d.ts +1 -0
  263. package/dist/compiler/emit-ts-declarations.interop.test.d.ts.map +1 -0
  264. package/dist/compiler/emit-ts-declarations.interop.test.js +33 -0
  265. package/dist/compiler/emit-ts-declarations.interop.test.js.map +1 -0
  266. package/dist/compiler/emit-ts-declarations.js +353 -0
  267. package/dist/compiler/emit-ts-declarations.js.map +1 -0
  268. package/dist/compiler/emit-ts-declarations.test.d.ts +1 -0
  269. package/dist/compiler/emit-ts-declarations.test.d.ts.map +1 -0
  270. package/dist/compiler/emit-ts-declarations.test.js +161 -0
  271. package/dist/compiler/emit-ts-declarations.test.js.map +1 -0
  272. package/dist/compiler/index.d.ts +13 -0
  273. package/dist/compiler/index.d.ts.map +1 -0
  274. package/dist/compiler/index.js +11 -0
  275. package/dist/compiler/index.js.map +1 -0
  276. package/dist/compiler/jsdoc-types.d.ts +21 -0
  277. package/dist/compiler/jsdoc-types.d.ts.map +1 -0
  278. package/dist/compiler/jsdoc-types.js +59 -0
  279. package/dist/compiler/jsdoc-types.js.map +1 -0
  280. package/dist/compiler/jsdoc-types.test.d.ts +1 -0
  281. package/dist/compiler/jsdoc-types.test.d.ts.map +1 -0
  282. package/dist/compiler/jsdoc-types.test.js +100 -0
  283. package/dist/compiler/jsdoc-types.test.js.map +1 -0
  284. package/dist/compiler/lazy-modules/compile-cache.d.ts +37 -0
  285. package/dist/compiler/lazy-modules/compile-cache.d.ts.map +1 -0
  286. package/dist/compiler/lazy-modules/compile-cache.js +34 -0
  287. package/dist/compiler/lazy-modules/compile-cache.js.map +1 -0
  288. package/dist/compiler/lazy-modules/compile-project.lazy.test.d.ts +2 -0
  289. package/dist/compiler/lazy-modules/compile-project.lazy.test.d.ts.map +1 -0
  290. package/dist/compiler/lazy-modules/compile-project.lazy.test.js +65 -0
  291. package/dist/compiler/lazy-modules/compile-project.lazy.test.js.map +1 -0
  292. package/dist/compiler/lazy-modules/create-loader.d.ts +18 -0
  293. package/dist/compiler/lazy-modules/create-loader.d.ts.map +1 -0
  294. package/dist/compiler/lazy-modules/create-loader.js +182 -0
  295. package/dist/compiler/lazy-modules/create-loader.js.map +1 -0
  296. package/dist/compiler/lazy-modules/create-loader.test.d.ts +2 -0
  297. package/dist/compiler/lazy-modules/create-loader.test.d.ts.map +1 -0
  298. package/dist/compiler/lazy-modules/create-loader.test.js +82 -0
  299. package/dist/compiler/lazy-modules/create-loader.test.js.map +1 -0
  300. package/dist/compiler/lazy-modules/manifest.d.ts +32 -0
  301. package/dist/compiler/lazy-modules/manifest.d.ts.map +1 -0
  302. package/dist/compiler/lazy-modules/manifest.js +11 -0
  303. package/dist/compiler/lazy-modules/manifest.js.map +1 -0
  304. package/dist/compiler/match-literals.d.ts +2 -0
  305. package/dist/compiler/match-literals.d.ts.map +1 -0
  306. package/dist/compiler/match-literals.js +42 -0
  307. package/dist/compiler/match-literals.js.map +1 -0
  308. package/dist/compiler/output-structure/lazy-modules.d.ts +27 -0
  309. package/dist/compiler/output-structure/lazy-modules.d.ts.map +1 -0
  310. package/dist/compiler/output-structure/lazy-modules.js +157 -0
  311. package/dist/compiler/output-structure/lazy-modules.js.map +1 -0
  312. package/dist/compiler/output-structure/lazy-modules.test.d.ts +2 -0
  313. package/dist/compiler/output-structure/lazy-modules.test.d.ts.map +1 -0
  314. package/dist/compiler/output-structure/lazy-modules.test.js +128 -0
  315. package/dist/compiler/output-structure/lazy-modules.test.js.map +1 -0
  316. package/dist/compiler/output-structure/locale-modules.d.ts +4 -0
  317. package/dist/compiler/output-structure/locale-modules.d.ts.map +1 -0
  318. package/dist/compiler/output-structure/locale-modules.js +81 -0
  319. package/dist/compiler/output-structure/locale-modules.js.map +1 -0
  320. package/dist/compiler/output-structure/locale-modules.test.d.ts +1 -0
  321. package/dist/compiler/output-structure/locale-modules.test.d.ts.map +1 -0
  322. package/dist/compiler/output-structure/locale-modules.test.js +163 -0
  323. package/dist/compiler/output-structure/locale-modules.test.js.map +1 -0
  324. package/dist/compiler/output-structure/message-modules.d.ts +4 -0
  325. package/dist/compiler/output-structure/message-modules.d.ts.map +1 -0
  326. package/dist/compiler/output-structure/message-modules.js +100 -0
  327. package/dist/compiler/output-structure/message-modules.js.map +1 -0
  328. package/dist/compiler/output-structure/message-modules.test.d.ts +1 -0
  329. package/dist/compiler/output-structure/message-modules.test.d.ts.map +1 -0
  330. package/dist/compiler/output-structure/message-modules.test.js +148 -0
  331. package/dist/compiler/output-structure/message-modules.test.js.map +1 -0
  332. package/dist/compiler/per-locale-build.d.ts +2 -0
  333. package/dist/compiler/per-locale-build.d.ts.map +1 -0
  334. package/dist/compiler/per-locale-build.js +3 -0
  335. package/dist/compiler/per-locale-build.js.map +1 -0
  336. package/dist/compiler/registry.d.ts +13 -0
  337. package/dist/compiler/registry.d.ts.map +1 -0
  338. package/dist/compiler/registry.js +60 -0
  339. package/dist/compiler/registry.js.map +1 -0
  340. package/dist/compiler/resolve-tsc-js-path.d.ts +9 -0
  341. package/dist/compiler/resolve-tsc-js-path.d.ts.map +1 -0
  342. package/dist/compiler/resolve-tsc-js-path.js +23 -0
  343. package/dist/compiler/resolve-tsc-js-path.js.map +1 -0
  344. package/dist/compiler/runtime/check-locale.d.ts +31 -0
  345. package/dist/compiler/runtime/check-locale.d.ts.map +1 -0
  346. package/dist/compiler/runtime/check-locale.js +51 -0
  347. package/dist/compiler/runtime/check-locale.js.map +1 -0
  348. package/dist/compiler/runtime/check-locale.test.d.ts +1 -0
  349. package/dist/compiler/runtime/check-locale.test.d.ts.map +1 -0
  350. package/dist/compiler/runtime/check-locale.test.js +84 -0
  351. package/dist/compiler/runtime/check-locale.test.js.map +1 -0
  352. package/dist/compiler/runtime/create-runtime.d.ts +35 -0
  353. package/dist/compiler/runtime/create-runtime.d.ts.map +1 -0
  354. package/dist/compiler/runtime/create-runtime.js +196 -0
  355. package/dist/compiler/runtime/create-runtime.js.map +1 -0
  356. package/dist/compiler/runtime/extract-locale-from-cookie.d.ts +13 -0
  357. package/dist/compiler/runtime/extract-locale-from-cookie.d.ts.map +1 -0
  358. package/dist/compiler/runtime/extract-locale-from-cookie.js +43 -0
  359. package/dist/compiler/runtime/extract-locale-from-cookie.js.map +1 -0
  360. package/dist/compiler/runtime/extract-locale-from-cookie.test.d.ts +1 -0
  361. package/dist/compiler/runtime/extract-locale-from-cookie.test.d.ts.map +1 -0
  362. package/dist/compiler/runtime/extract-locale-from-cookie.test.js +149 -0
  363. package/dist/compiler/runtime/extract-locale-from-cookie.test.js.map +1 -0
  364. package/dist/compiler/runtime/extract-locale-from-header.d.ts +13 -0
  365. package/dist/compiler/runtime/extract-locale-from-header.d.ts.map +1 -0
  366. package/dist/compiler/runtime/extract-locale-from-header.js +45 -0
  367. package/dist/compiler/runtime/extract-locale-from-header.js.map +1 -0
  368. package/dist/compiler/runtime/extract-locale-from-header.test.d.ts +1 -0
  369. package/dist/compiler/runtime/extract-locale-from-header.test.d.ts.map +1 -0
  370. package/dist/compiler/runtime/extract-locale-from-header.test.js +55 -0
  371. package/dist/compiler/runtime/extract-locale-from-header.test.js.map +1 -0
  372. package/dist/compiler/runtime/extract-locale-from-navigator.d.ts +12 -0
  373. package/dist/compiler/runtime/extract-locale-from-navigator.d.ts.map +1 -0
  374. package/dist/compiler/runtime/extract-locale-from-navigator.js +33 -0
  375. package/dist/compiler/runtime/extract-locale-from-navigator.js.map +1 -0
  376. package/dist/compiler/runtime/extract-locale-from-navigator.test.d.ts +1 -0
  377. package/dist/compiler/runtime/extract-locale-from-navigator.test.d.ts.map +1 -0
  378. package/dist/compiler/runtime/extract-locale-from-navigator.test.js +45 -0
  379. package/dist/compiler/runtime/extract-locale-from-navigator.test.js.map +1 -0
  380. package/dist/compiler/runtime/extract-locale-from-request-async.d.ts +34 -0
  381. package/dist/compiler/runtime/extract-locale-from-request-async.d.ts.map +1 -0
  382. package/dist/compiler/runtime/extract-locale-from-request-async.js +70 -0
  383. package/dist/compiler/runtime/extract-locale-from-request-async.js.map +1 -0
  384. package/dist/compiler/runtime/extract-locale-from-request-async.test.d.ts +1 -0
  385. package/dist/compiler/runtime/extract-locale-from-request-async.test.d.ts.map +1 -0
  386. package/dist/compiler/runtime/extract-locale-from-request-async.test.js +119 -0
  387. package/dist/compiler/runtime/extract-locale-from-request-async.test.js.map +1 -0
  388. package/dist/compiler/runtime/extract-locale-from-request.d.ts +41 -0
  389. package/dist/compiler/runtime/extract-locale-from-request.d.ts.map +1 -0
  390. package/dist/compiler/runtime/extract-locale-from-request.js +96 -0
  391. package/dist/compiler/runtime/extract-locale-from-request.js.map +1 -0
  392. package/dist/compiler/runtime/extract-locale-from-request.test.d.ts +1 -0
  393. package/dist/compiler/runtime/extract-locale-from-request.test.d.ts.map +1 -0
  394. package/dist/compiler/runtime/extract-locale-from-request.test.js +351 -0
  395. package/dist/compiler/runtime/extract-locale-from-request.test.js.map +1 -0
  396. package/dist/compiler/runtime/extract-locale-from-url.d.ts +11 -0
  397. package/dist/compiler/runtime/extract-locale-from-url.d.ts.map +1 -0
  398. package/dist/compiler/runtime/extract-locale-from-url.js +68 -0
  399. package/dist/compiler/runtime/extract-locale-from-url.js.map +1 -0
  400. package/dist/compiler/runtime/extract-locale-from-url.test.d.ts +1 -0
  401. package/dist/compiler/runtime/extract-locale-from-url.test.d.ts.map +1 -0
  402. package/dist/compiler/runtime/extract-locale-from-url.test.js +127 -0
  403. package/dist/compiler/runtime/extract-locale-from-url.test.js.map +1 -0
  404. package/dist/compiler/runtime/generate-static-localized-urls.d.ts +44 -0
  405. package/dist/compiler/runtime/generate-static-localized-urls.d.ts.map +1 -0
  406. package/dist/compiler/runtime/generate-static-localized-urls.js +133 -0
  407. package/dist/compiler/runtime/generate-static-localized-urls.js.map +1 -0
  408. package/dist/compiler/runtime/generate-static-localized-urls.test.d.ts +1 -0
  409. package/dist/compiler/runtime/generate-static-localized-urls.test.d.ts.map +1 -0
  410. package/dist/compiler/runtime/generate-static-localized-urls.test.js +159 -0
  411. package/dist/compiler/runtime/generate-static-localized-urls.test.js.map +1 -0
  412. package/dist/compiler/runtime/get-locale.d.ts +42 -0
  413. package/dist/compiler/runtime/get-locale.d.ts.map +1 -0
  414. package/dist/compiler/runtime/get-locale.js +158 -0
  415. package/dist/compiler/runtime/get-locale.js.map +1 -0
  416. package/dist/compiler/runtime/get-locale.test.d.ts +1 -0
  417. package/dist/compiler/runtime/get-locale.test.d.ts.map +1 -0
  418. package/dist/compiler/runtime/get-locale.test.js +295 -0
  419. package/dist/compiler/runtime/get-locale.test.js.map +1 -0
  420. package/dist/compiler/runtime/get-text-direction.d.ts +15 -0
  421. package/dist/compiler/runtime/get-text-direction.d.ts.map +1 -0
  422. package/dist/compiler/runtime/get-text-direction.js +46 -0
  423. package/dist/compiler/runtime/get-text-direction.js.map +1 -0
  424. package/dist/compiler/runtime/get-text-direction.test.d.ts +1 -0
  425. package/dist/compiler/runtime/get-text-direction.test.d.ts.map +1 -0
  426. package/dist/compiler/runtime/get-text-direction.test.js +40 -0
  427. package/dist/compiler/runtime/get-text-direction.test.js.map +1 -0
  428. package/dist/compiler/runtime/get-url-origin.d.ts +19 -0
  429. package/dist/compiler/runtime/get-url-origin.d.ts.map +1 -0
  430. package/dist/compiler/runtime/get-url-origin.js +31 -0
  431. package/dist/compiler/runtime/get-url-origin.js.map +1 -0
  432. package/dist/compiler/runtime/get-url-origin.test.d.ts +1 -0
  433. package/dist/compiler/runtime/get-url-origin.test.d.ts.map +1 -0
  434. package/dist/compiler/runtime/get-url-origin.test.js +18 -0
  435. package/dist/compiler/runtime/get-url-origin.test.js.map +1 -0
  436. package/dist/compiler/runtime/host-routing.d.ts +28 -0
  437. package/dist/compiler/runtime/host-routing.d.ts.map +1 -0
  438. package/dist/compiler/runtime/host-routing.js +79 -0
  439. package/dist/compiler/runtime/host-routing.js.map +1 -0
  440. package/dist/compiler/runtime/host-routing.test.d.ts +1 -0
  441. package/dist/compiler/runtime/host-routing.test.d.ts.map +1 -0
  442. package/dist/compiler/runtime/host-routing.test.js +128 -0
  443. package/dist/compiler/runtime/host-routing.test.js.map +1 -0
  444. package/dist/compiler/runtime/localize-href.d.ts +84 -0
  445. package/dist/compiler/runtime/localize-href.d.ts.map +1 -0
  446. package/dist/compiler/runtime/localize-href.js +115 -0
  447. package/dist/compiler/runtime/localize-href.js.map +1 -0
  448. package/dist/compiler/runtime/localize-href.test.d.ts +1 -0
  449. package/dist/compiler/runtime/localize-href.test.d.ts.map +1 -0
  450. package/dist/compiler/runtime/localize-href.test.js +139 -0
  451. package/dist/compiler/runtime/localize-href.test.js.map +1 -0
  452. package/dist/compiler/runtime/localize-url.d.ts +95 -0
  453. package/dist/compiler/runtime/localize-url.d.ts.map +1 -0
  454. package/dist/compiler/runtime/localize-url.js +327 -0
  455. package/dist/compiler/runtime/localize-url.js.map +1 -0
  456. package/dist/compiler/runtime/localize-url.test.d.ts +1 -0
  457. package/dist/compiler/runtime/localize-url.test.d.ts.map +1 -0
  458. package/dist/compiler/runtime/localize-url.test.js +533 -0
  459. package/dist/compiler/runtime/localize-url.test.js.map +1 -0
  460. package/dist/compiler/runtime/route-strategy.d.ts +32 -0
  461. package/dist/compiler/runtime/route-strategy.d.ts.map +1 -0
  462. package/dist/compiler/runtime/route-strategy.js +72 -0
  463. package/dist/compiler/runtime/route-strategy.js.map +1 -0
  464. package/dist/compiler/runtime/set-locale.d.ts +46 -0
  465. package/dist/compiler/runtime/set-locale.d.ts.map +1 -0
  466. package/dist/compiler/runtime/set-locale.js +172 -0
  467. package/dist/compiler/runtime/set-locale.js.map +1 -0
  468. package/dist/compiler/runtime/set-locale.test.d.ts +1 -0
  469. package/dist/compiler/runtime/set-locale.test.d.ts.map +1 -0
  470. package/dist/compiler/runtime/set-locale.test.js +555 -0
  471. package/dist/compiler/runtime/set-locale.test.js.map +1 -0
  472. package/dist/compiler/runtime/should-redirect.d.ts +100 -0
  473. package/dist/compiler/runtime/should-redirect.d.ts.map +1 -0
  474. package/dist/compiler/runtime/should-redirect.js +155 -0
  475. package/dist/compiler/runtime/should-redirect.js.map +1 -0
  476. package/dist/compiler/runtime/should-redirect.test.d.ts +1 -0
  477. package/dist/compiler/runtime/should-redirect.test.d.ts.map +1 -0
  478. package/dist/compiler/runtime/should-redirect.test.js +270 -0
  479. package/dist/compiler/runtime/should-redirect.test.js.map +1 -0
  480. package/dist/compiler/runtime/strategy.d.ts +63 -0
  481. package/dist/compiler/runtime/strategy.d.ts.map +1 -0
  482. package/dist/compiler/runtime/strategy.js +65 -0
  483. package/dist/compiler/runtime/strategy.js.map +1 -0
  484. package/dist/compiler/runtime/strategy.test.d.ts +1 -0
  485. package/dist/compiler/runtime/strategy.test.d.ts.map +1 -0
  486. package/dist/compiler/runtime/strategy.test.js +90 -0
  487. package/dist/compiler/runtime/strategy.test.js.map +1 -0
  488. package/dist/compiler/runtime/track-message-call.d.ts +5 -0
  489. package/dist/compiler/runtime/track-message-call.d.ts.map +1 -0
  490. package/dist/compiler/runtime/track-message-call.js +14 -0
  491. package/dist/compiler/runtime/track-message-call.js.map +1 -0
  492. package/dist/compiler/runtime/track-message-call.test.d.ts +1 -0
  493. package/dist/compiler/runtime/track-message-call.test.d.ts.map +1 -0
  494. package/dist/compiler/runtime/track-message-call.test.js +22 -0
  495. package/dist/compiler/runtime/track-message-call.test.js.map +1 -0
  496. package/dist/compiler/runtime/type-definitions.d.ts +197 -0
  497. package/dist/compiler/runtime/type-definitions.d.ts.map +1 -0
  498. package/dist/compiler/runtime/type-definitions.js +150 -0
  499. package/dist/compiler/runtime/type-definitions.js.map +1 -0
  500. package/dist/compiler/runtime/type.d.ts +47 -0
  501. package/dist/compiler/runtime/type.d.ts.map +1 -0
  502. package/dist/compiler/runtime/type.js +2 -0
  503. package/dist/compiler/runtime/type.js.map +1 -0
  504. package/dist/compiler/runtime/type.test.d.ts +1 -0
  505. package/dist/compiler/runtime/type.test.d.ts.map +1 -0
  506. package/dist/compiler/runtime/type.test.js +153 -0
  507. package/dist/compiler/runtime/type.test.js.map +1 -0
  508. package/dist/compiler/runtime/url-pattern.d.ts +12 -0
  509. package/dist/compiler/runtime/url-pattern.d.ts.map +1 -0
  510. package/dist/compiler/runtime/url-pattern.js +35 -0
  511. package/dist/compiler/runtime/url-pattern.js.map +1 -0
  512. package/dist/compiler/runtime/variables.d.ts +128 -0
  513. package/dist/compiler/runtime/variables.d.ts.map +1 -0
  514. package/dist/compiler/runtime/variables.js +111 -0
  515. package/dist/compiler/runtime/variables.js.map +1 -0
  516. package/dist/compiler/safe-module-id.d.ts +7 -0
  517. package/dist/compiler/safe-module-id.d.ts.map +1 -0
  518. package/dist/compiler/safe-module-id.js +78 -0
  519. package/dist/compiler/safe-module-id.js.map +1 -0
  520. package/dist/compiler/safe-module-id.test.d.ts +1 -0
  521. package/dist/compiler/safe-module-id.test.d.ts.map +1 -0
  522. package/dist/compiler/safe-module-id.test.js +36 -0
  523. package/dist/compiler/safe-module-id.test.js.map +1 -0
  524. package/dist/compiler/seed-previous-compilation.d.ts +7 -0
  525. package/dist/compiler/seed-previous-compilation.d.ts.map +1 -0
  526. package/dist/compiler/seed-previous-compilation.js +9 -0
  527. package/dist/compiler/seed-previous-compilation.js.map +1 -0
  528. package/dist/compiler/server/create-server-file.d.ts +12 -0
  529. package/dist/compiler/server/create-server-file.d.ts.map +1 -0
  530. package/dist/compiler/server/create-server-file.js +91 -0
  531. package/dist/compiler/server/create-server-file.js.map +1 -0
  532. package/dist/compiler/server/create-server-file.test.d.ts +1 -0
  533. package/dist/compiler/server/create-server-file.test.d.ts.map +1 -0
  534. package/dist/compiler/server/create-server-file.test.js +48 -0
  535. package/dist/compiler/server/create-server-file.test.js.map +1 -0
  536. package/dist/compiler/server/middleware.d.ts +98 -0
  537. package/dist/compiler/server/middleware.d.ts.map +1 -0
  538. package/dist/compiler/server/middleware.js +278 -0
  539. package/dist/compiler/server/middleware.js.map +1 -0
  540. package/dist/compiler/server/middleware.test.d.ts +1 -0
  541. package/dist/compiler/server/middleware.test.d.ts.map +1 -0
  542. package/dist/compiler/server/middleware.test.js +1001 -0
  543. package/dist/compiler/server/middleware.test.js.map +1 -0
  544. package/dist/compiler/server/type.d.ts +6 -0
  545. package/dist/compiler/server/type.d.ts.map +1 -0
  546. package/dist/compiler/server/type.js +2 -0
  547. package/dist/compiler/server/type.js.map +1 -0
  548. package/dist/compiler/test-helpers.d.ts +30 -0
  549. package/dist/compiler/test-helpers.d.ts.map +1 -0
  550. package/dist/compiler/test-helpers.js +50 -0
  551. package/dist/compiler/test-helpers.js.map +1 -0
  552. package/dist/compiler/types.d.ts +7 -0
  553. package/dist/compiler/types.d.ts.map +1 -0
  554. package/dist/compiler/types.js +2 -0
  555. package/dist/compiler/types.js.map +1 -0
  556. package/dist/compiler/variable-access.d.ts +3 -0
  557. package/dist/compiler/variable-access.d.ts.map +1 -0
  558. package/dist/compiler/variable-access.js +15 -0
  559. package/dist/compiler/variable-access.js.map +1 -0
  560. package/dist/index.d.ts +2 -0
  561. package/dist/index.d.ts.map +1 -0
  562. package/dist/index.js +3 -0
  563. package/dist/index.js.map +1 -0
  564. package/dist/messages/ast.d.ts +102 -0
  565. package/dist/messages/ast.d.ts.map +1 -0
  566. package/dist/messages/ast.js +8 -0
  567. package/dist/messages/ast.js.map +1 -0
  568. package/dist/messages/create-bundle-nested.d.ts +16 -0
  569. package/dist/messages/create-bundle-nested.d.ts.map +1 -0
  570. package/dist/messages/create-bundle-nested.js +22 -0
  571. package/dist/messages/create-bundle-nested.js.map +1 -0
  572. package/dist/messages/index.d.ts +5 -0
  573. package/dist/messages/index.d.ts.map +1 -0
  574. package/dist/messages/index.js +5 -0
  575. package/dist/messages/index.js.map +1 -0
  576. package/dist/messages/load-messages.d.ts +19 -0
  577. package/dist/messages/load-messages.d.ts.map +1 -0
  578. package/dist/messages/load-messages.js +49 -0
  579. package/dist/messages/load-messages.js.map +1 -0
  580. package/dist/messages/message-format/flatten.d.ts +9 -0
  581. package/dist/messages/message-format/flatten.d.ts.map +1 -0
  582. package/dist/messages/message-format/flatten.js +32 -0
  583. package/dist/messages/message-format/flatten.js.map +1 -0
  584. package/dist/messages/message-format/import-files.d.ts +32 -0
  585. package/dist/messages/message-format/import-files.d.ts.map +1 -0
  586. package/dist/messages/message-format/import-files.js +53 -0
  587. package/dist/messages/message-format/import-files.js.map +1 -0
  588. package/dist/messages/message-format/import-files.test.d.ts +1 -0
  589. package/dist/messages/message-format/import-files.test.d.ts.map +1 -0
  590. package/dist/messages/message-format/import-files.test.js +145 -0
  591. package/dist/messages/message-format/import-files.test.js.map +1 -0
  592. package/dist/messages/message-format/index.d.ts +6 -0
  593. package/dist/messages/message-format/index.d.ts.map +1 -0
  594. package/dist/messages/message-format/index.js +7 -0
  595. package/dist/messages/message-format/index.js.map +1 -0
  596. package/dist/messages/message-format/parse-bundle.d.ts +31 -0
  597. package/dist/messages/message-format/parse-bundle.d.ts.map +1 -0
  598. package/dist/messages/message-format/parse-bundle.js +169 -0
  599. package/dist/messages/message-format/parse-bundle.js.map +1 -0
  600. package/dist/messages/message-format/parse-declaration.d.ts +2 -0
  601. package/dist/messages/message-format/parse-declaration.d.ts.map +1 -0
  602. package/dist/messages/message-format/parse-declaration.js +56 -0
  603. package/dist/messages/message-format/parse-declaration.js.map +1 -0
  604. package/dist/messages/message-format/parse-markup.d.ts +4 -0
  605. package/dist/messages/message-format/parse-markup.d.ts.map +1 -0
  606. package/dist/messages/message-format/parse-markup.js +167 -0
  607. package/dist/messages/message-format/parse-markup.js.map +1 -0
  608. package/dist/messages/message-format/parse-matches.d.ts +5 -0
  609. package/dist/messages/message-format/parse-matches.d.ts.map +1 -0
  610. package/dist/messages/message-format/parse-matches.js +31 -0
  611. package/dist/messages/message-format/parse-matches.js.map +1 -0
  612. package/dist/messages/message-format/parse-pattern.d.ts +5 -0
  613. package/dist/messages/message-format/parse-pattern.d.ts.map +1 -0
  614. package/dist/messages/message-format/parse-pattern.js +120 -0
  615. package/dist/messages/message-format/parse-pattern.js.map +1 -0
  616. package/dist/messages/message-format/unique.d.ts +2 -0
  617. package/dist/messages/message-format/unique.d.ts.map +1 -0
  618. package/dist/messages/message-format/unique.js +5 -0
  619. package/dist/messages/message-format/unique.js.map +1 -0
  620. package/dist/messages/nest-bundles.d.ts +19 -0
  621. package/dist/messages/nest-bundles.d.ts.map +1 -0
  622. package/dist/messages/nest-bundles.js +49 -0
  623. package/dist/messages/nest-bundles.js.map +1 -0
  624. package/dist/services/account/index.d.ts +14 -0
  625. package/dist/services/account/index.d.ts.map +1 -0
  626. package/dist/services/account/index.js +43 -0
  627. package/dist/services/account/index.js.map +1 -0
  628. package/dist/services/account/types.d.ts +4 -0
  629. package/dist/services/account/types.d.ts.map +1 -0
  630. package/dist/services/account/types.js +2 -0
  631. package/dist/services/account/types.js.map +1 -0
  632. package/dist/services/codegen/escape.d.ts +9 -0
  633. package/dist/services/codegen/escape.d.ts.map +1 -0
  634. package/dist/services/codegen/escape.js +19 -0
  635. package/dist/services/codegen/escape.js.map +1 -0
  636. package/dist/services/codegen/quotes.d.ts +4 -0
  637. package/dist/services/codegen/quotes.d.ts.map +1 -0
  638. package/dist/services/codegen/quotes.js +5 -0
  639. package/dist/services/codegen/quotes.js.map +1 -0
  640. package/dist/services/env-variables/create-index-file.d.ts +9 -0
  641. package/dist/services/env-variables/create-index-file.d.ts.map +1 -0
  642. package/dist/services/env-variables/create-index-file.js +28 -0
  643. package/dist/services/env-variables/create-index-file.js.map +1 -0
  644. package/dist/services/env-variables/index.d.ts +3 -0
  645. package/dist/services/env-variables/index.d.ts.map +1 -0
  646. package/dist/services/env-variables/index.js +4 -0
  647. package/dist/services/env-variables/index.js.map +1 -0
  648. package/dist/services/environment/package.d.ts +9 -0
  649. package/dist/services/environment/package.d.ts.map +1 -0
  650. package/dist/services/environment/package.js +31 -0
  651. package/dist/services/environment/package.js.map +1 -0
  652. package/dist/services/environment/package.test.d.ts +1 -0
  653. package/dist/services/environment/package.test.d.ts.map +1 -0
  654. package/dist/services/environment/package.test.js +21 -0
  655. package/dist/services/environment/package.test.js.map +1 -0
  656. package/dist/services/error-handling.d.ts +12 -0
  657. package/dist/services/error-handling.d.ts.map +1 -0
  658. package/dist/services/error-handling.js +27 -0
  659. package/dist/services/error-handling.js.map +1 -0
  660. package/dist/services/error-handling.test.d.ts +1 -0
  661. package/dist/services/error-handling.test.d.ts.map +1 -0
  662. package/dist/services/error-handling.test.js +10 -0
  663. package/dist/services/error-handling.test.js.map +1 -0
  664. package/dist/services/file-handling/content-hash.d.ts +9 -0
  665. package/dist/services/file-handling/content-hash.js +19 -0
  666. package/dist/services/file-handling/content-hash.js.map +1 -0
  667. package/dist/services/file-handling/exists.d.ts +7 -0
  668. package/dist/services/file-handling/exists.d.ts.map +1 -0
  669. package/dist/services/file-handling/exists.js +24 -0
  670. package/dist/services/file-handling/exists.js.map +1 -0
  671. package/dist/services/file-handling/exists.test.d.ts +1 -0
  672. package/dist/services/file-handling/exists.test.d.ts.map +1 -0
  673. package/dist/services/file-handling/exists.test.js +27 -0
  674. package/dist/services/file-handling/exists.test.js.map +1 -0
  675. package/dist/services/file-handling/types.d.ts +4 -0
  676. package/dist/services/file-handling/types.d.ts.map +1 -0
  677. package/dist/services/file-handling/types.js +2 -0
  678. package/dist/services/file-handling/types.js.map +1 -0
  679. package/dist/services/file-handling/write-output.d.ts +21 -0
  680. package/dist/services/file-handling/write-output.d.ts.map +1 -0
  681. package/dist/services/file-handling/write-output.js +157 -0
  682. package/dist/services/file-handling/write-output.js.map +1 -0
  683. package/dist/services/file-handling/write-output.test.d.ts +1 -0
  684. package/dist/services/file-handling/write-output.test.d.ts.map +1 -0
  685. package/dist/services/file-handling/write-output.test.js +217 -0
  686. package/dist/services/file-handling/write-output.test.js.map +1 -0
  687. package/dist/services/file-watching/tracked-fs.d.ts +25 -0
  688. package/dist/services/file-watching/tracked-fs.d.ts.map +1 -0
  689. package/dist/services/file-watching/tracked-fs.js +94 -0
  690. package/dist/services/file-watching/tracked-fs.js.map +1 -0
  691. package/dist/services/file-watching/tracked-fs.test.d.ts +1 -0
  692. package/dist/services/file-watching/tracked-fs.test.d.ts.map +1 -0
  693. package/dist/services/file-watching/tracked-fs.test.js +87 -0
  694. package/dist/services/file-watching/tracked-fs.test.js.map +1 -0
  695. package/dist/services/logger/index.d.ts +17 -0
  696. package/dist/services/logger/index.d.ts.map +1 -0
  697. package/dist/services/logger/index.js +58 -0
  698. package/dist/services/logger/index.js.map +1 -0
  699. package/dist/services/lookup.d.ts +14 -0
  700. package/dist/services/lookup.d.ts.map +1 -0
  701. package/dist/services/lookup.js +24 -0
  702. package/dist/services/lookup.js.map +1 -0
  703. package/dist/urlpattern-polyfill/index.d.ts +2 -0
  704. package/dist/urlpattern-polyfill/index.d.ts.map +1 -0
  705. package/dist/urlpattern-polyfill/index.js +2 -0
  706. package/dist/urlpattern-polyfill/index.js.map +1 -0
  707. package/dist/utilities/detect-json-formatting.d.ts +10 -0
  708. package/dist/utilities/detect-json-formatting.d.ts.map +1 -0
  709. package/dist/utilities/detect-json-formatting.js +80 -0
  710. package/dist/utilities/detect-json-formatting.js.map +1 -0
  711. package/dist/utilities/node-normalize-path.d.ts +1 -0
  712. package/dist/utilities/node-normalize-path.d.ts.map +1 -0
  713. package/dist/utilities/node-normalize-path.js +10 -0
  714. package/dist/utilities/node-normalize-path.js.map +1 -0
  715. package/package.json +87 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @typedef {"cookie" | "baseLocale" | "globalVariable" | "url" | "preferredLanguage" | "localStorage"} BuiltInStrategy
3
+ */
4
+ /**
5
+ * @typedef {`custom_${string}`} CustomStrategy
6
+ */
7
+ /**
8
+ * @typedef {BuiltInStrategy | CustomStrategy} Strategy
9
+ */
10
+ /**
11
+ * @typedef {Array<Strategy>} Strategies
12
+ */
13
+ /**
14
+ * @typedef {{ getLocale: (request?: Request) => Promise<string | undefined> | (string | undefined) }} CustomServerStrategyHandler
15
+ */
16
+ /**
17
+ * @typedef {{ getLocale: () => Promise<string|undefined> | (string | undefined), setLocale: (locale: string) => Promise<void> | void }} CustomClientStrategyHandler
18
+ */
19
+ /** @type {Map<string, CustomServerStrategyHandler>} */
20
+ export const customServerStrategies = new Map();
21
+ /** @type {Map<string, CustomClientStrategyHandler>} */
22
+ export const customClientStrategies = new Map();
23
+ /**
24
+ * Checks if the given strategy is a custom strategy.
25
+ *
26
+ * @param {unknown} strategy The name of the custom strategy to validate.
27
+ * Must be a string that starts with "custom-" followed by alphanumeric characters, hyphens, or underscores.
28
+ * @returns {boolean} Returns true if it is a custom strategy, false otherwise.
29
+ */
30
+ export function isCustomStrategy(strategy) {
31
+ return (typeof strategy === "string" && /^custom-[A-Za-z0-9_-]+$/.test(strategy));
32
+ }
33
+ /**
34
+ * Defines a custom strategy that is executed on the server.
35
+ *
36
+ * @see https://paraglidejs.com/strategy#write-your-own-strategy
37
+ *
38
+ * @param {string} strategy The name of the custom strategy to define. Must follow the pattern custom-name with alphanumeric characters, hyphens, or underscores.
39
+ * @param {CustomServerStrategyHandler} handler The handler for the custom strategy, which should implement
40
+ * the method getLocale.
41
+ * @returns {void}
42
+ */
43
+ export function defineCustomServerStrategy(strategy, handler) {
44
+ if (!isCustomStrategy(strategy)) {
45
+ throw new Error(`Invalid custom strategy: "${strategy}". Must be a custom strategy following the pattern custom-name.`);
46
+ }
47
+ customServerStrategies.set(strategy, handler);
48
+ }
49
+ /**
50
+ * Defines a custom strategy that is executed on the client.
51
+ *
52
+ * @see https://paraglidejs.com/strategy#write-your-own-strategy
53
+ *
54
+ * @param {string} strategy The name of the custom strategy to define. Must follow the pattern custom-name with alphanumeric characters, hyphens, or underscores.
55
+ * @param {CustomClientStrategyHandler} handler The handler for the custom strategy, which should implement the
56
+ * methods getLocale and setLocale.
57
+ * @returns {void}
58
+ */
59
+ export function defineCustomClientStrategy(strategy, handler) {
60
+ if (!isCustomStrategy(strategy)) {
61
+ throw new Error(`Invalid custom strategy: "${strategy}". Must be a custom strategy following the pattern custom-name.`);
62
+ }
63
+ customClientStrategies.set(strategy, handler);
64
+ }
65
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/compiler/runtime/strategy.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH;;GAEG;AAEH,uDAAuD;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;AAChD,uDAAuD;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAQ;IACxC,OAAO,CACN,OAAO,QAAQ,KAAK,QAAQ,IAAI,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CACxE,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAQ,EAAE,OAAO;IAC3D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACd,6BAA6B,QAAQ,iEAAiE,CACtG,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAQ,EAAE,OAAO;IAC3D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACd,6BAA6B,QAAQ,iEAAiE,CACtG,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["/**\n * @typedef {\"cookie\" | \"baseLocale\" | \"globalVariable\" | \"url\" | \"preferredLanguage\" | \"localStorage\"} BuiltInStrategy\n */\n\n/**\n * @typedef {`custom_${string}`} CustomStrategy\n */\n\n/**\n * @typedef {BuiltInStrategy | CustomStrategy} Strategy\n */\n\n/**\n * @typedef {Array<Strategy>} Strategies\n */\n\n/**\n * @typedef {{ getLocale: (request?: Request) => Promise<string | undefined> | (string | undefined) }} CustomServerStrategyHandler\n */\n\n/**\n * @typedef {{ getLocale: () => Promise<string|undefined> | (string | undefined), setLocale: (locale: string) => Promise<void> | void }} CustomClientStrategyHandler\n */\n\n/** @type {Map<string, CustomServerStrategyHandler>} */\nexport const customServerStrategies = new Map();\n/** @type {Map<string, CustomClientStrategyHandler>} */\nexport const customClientStrategies = new Map();\n\n/**\n * Checks if the given strategy is a custom strategy.\n *\n * @param {unknown} strategy The name of the custom strategy to validate.\n * Must be a string that starts with \"custom-\" followed by alphanumeric characters, hyphens, or underscores.\n * @returns {boolean} Returns true if it is a custom strategy, false otherwise.\n */\nexport function isCustomStrategy(strategy) {\n\treturn (\n\t\ttypeof strategy === \"string\" && /^custom-[A-Za-z0-9_-]+$/.test(strategy)\n\t);\n}\n\n/**\n * Defines a custom strategy that is executed on the server.\n *\n * @see https://paraglidejs.com/strategy#write-your-own-strategy\n *\n * @param {string} strategy The name of the custom strategy to define. Must follow the pattern custom-name with alphanumeric characters, hyphens, or underscores.\n * @param {CustomServerStrategyHandler} handler The handler for the custom strategy, which should implement\n * the method getLocale.\n * @returns {void}\n */\nexport function defineCustomServerStrategy(strategy, handler) {\n\tif (!isCustomStrategy(strategy)) {\n\t\tthrow new Error(\n\t\t\t`Invalid custom strategy: \"${strategy}\". Must be a custom strategy following the pattern custom-name.`\n\t\t);\n\t}\n\n\tcustomServerStrategies.set(strategy, handler);\n}\n\n/**\n * Defines a custom strategy that is executed on the client.\n *\n * @see https://paraglidejs.com/strategy#write-your-own-strategy\n *\n * @param {string} strategy The name of the custom strategy to define. Must follow the pattern custom-name with alphanumeric characters, hyphens, or underscores.\n * @param {CustomClientStrategyHandler} handler The handler for the custom strategy, which should implement the\n * methods getLocale and setLocale.\n * @returns {void}\n */\nexport function defineCustomClientStrategy(strategy, handler) {\n\tif (!isCustomStrategy(strategy)) {\n\t\tthrow new Error(\n\t\t\t`Invalid custom strategy: \"${strategy}\". Must be a custom strategy following the pattern custom-name.`\n\t\t);\n\t}\n\n\tcustomClientStrategies.set(strategy, handler);\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.test.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/strategy.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
1
+ import { test, expect, describe, beforeEach } from "vitest";
2
+ import { defineCustomServerStrategy, defineCustomClientStrategy, isCustomStrategy, } from "./strategy.js";
3
+ import { createParaglide } from "../create-paraglide.js";
4
+ describe("isCustomStrategy", () => {
5
+ test("returns true for valid custom strategy patterns", () => {
6
+ expect(isCustomStrategy("custom-header")).toBe(true);
7
+ expect(isCustomStrategy("custom-auth123")).toBe(true);
8
+ expect(isCustomStrategy("custom-API")).toBe(true);
9
+ expect(isCustomStrategy("custom-sessionStorage")).toBe(true);
10
+ expect(isCustomStrategy("custom-oAuth2")).toBe(true);
11
+ expect(isCustomStrategy("custom-a")).toBe(true);
12
+ expect(isCustomStrategy("custom-1")).toBe(true);
13
+ expect(isCustomStrategy("custom-Z")).toBe(true);
14
+ expect(isCustomStrategy("custom-9")).toBe(true);
15
+ expect(isCustomStrategy("custom-aZ19")).toBe(true);
16
+ });
17
+ test("returns false for invalid custom strategy patterns", () => {
18
+ expect(isCustomStrategy("")).toBe(false);
19
+ expect(isCustomStrategy("custom_")).toBe(false);
20
+ expect(isCustomStrategy("custom-")).toBe(false);
21
+ expect(isCustomStrategy("header")).toBe(false);
22
+ expect(isCustomStrategy("custom")).toBe(false);
23
+ // These are now valid with our relaxed pattern:
24
+ expect(isCustomStrategy("custom-invalid-name")).toBe(true);
25
+ expect(isCustomStrategy("custom-invalid_name")).toBe(true);
26
+ // But spaces and special chars are still invalid:
27
+ expect(isCustomStrategy("custom-invalid name")).toBe(false);
28
+ expect(isCustomStrategy("custom-invalid@")).toBe(false);
29
+ expect(isCustomStrategy("Custom-header")).toBe(false);
30
+ expect(isCustomStrategy("CUSTOM-header")).toBe(false);
31
+ expect(isCustomStrategy(null)).toBe(false);
32
+ expect(isCustomStrategy(undefined)).toBe(false);
33
+ expect(isCustomStrategy(123)).toBe(false);
34
+ expect(isCustomStrategy({})).toBe(false);
35
+ expect(isCustomStrategy([])).toBe(false);
36
+ });
37
+ test("returns false for built-in strategy names", () => {
38
+ expect(isCustomStrategy("cookie")).toBe(false);
39
+ expect(isCustomStrategy("baseLocale")).toBe(false);
40
+ expect(isCustomStrategy("globalVariable")).toBe(false);
41
+ expect(isCustomStrategy("url")).toBe(false);
42
+ expect(isCustomStrategy("preferredLanguage")).toBe(false);
43
+ expect(isCustomStrategy("localStorage")).toBe(false);
44
+ });
45
+ });
46
+ describe.each([
47
+ ["defineCustomServerStrategy", defineCustomServerStrategy],
48
+ ["defineCustomClientStrategy", defineCustomClientStrategy],
49
+ ])("%s", (strategyName, defineStrategy) => {
50
+ beforeEach(() => {
51
+ // Reset global variables before each test
52
+ if (typeof globalThis !== "undefined") {
53
+ // @ts-expect-error - Testing environment cleanup
54
+ delete globalThis.document;
55
+ // @ts-expect-error - Testing environment cleanup
56
+ delete globalThis.window;
57
+ // @ts-expect-error - Testing environment cleanup
58
+ delete globalThis.localStorage;
59
+ // @ts-expect-error - Testing environment cleanup
60
+ delete globalThis.navigator;
61
+ }
62
+ });
63
+ const defaultHandler = { getLocale: () => "en", setLocale: () => { } };
64
+ const invalidInputs = [
65
+ ["", "empty name"],
66
+ ["@invalid", "names with special characters (@)"],
67
+ ["invalid!", "names with special characters (!)"],
68
+ ["inva lid", "names with spaces"],
69
+ ];
70
+ test.each(invalidInputs)(`${strategyName} throws error for %s (%s)`, (input) => {
71
+ expect(() => defineStrategy(input, defaultHandler)).toThrow(`Invalid custom strategy: "${input}". Must be a custom strategy following the pattern custom-name.`);
72
+ });
73
+ test(`${strategyName} should compile with custom strategies in strategy array`, async () => {
74
+ // Test that compile accepts custom strategies
75
+ const runtime = await createParaglide({
76
+ baseLocale: "en",
77
+ locales: ["en", "de", "fr"],
78
+ strategy: ["custom-auth", "custom-header", "cookie", "baseLocale"],
79
+ cookieName: "PARAGLIDE_LOCALE",
80
+ });
81
+ // Verify the runtime contains the strategy array
82
+ expect(runtime.strategy).toEqual([
83
+ "custom-auth",
84
+ "custom-header",
85
+ "cookie",
86
+ "baseLocale",
87
+ ]);
88
+ });
89
+ });
90
+ //# sourceMappingURL=strategy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/strategy.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect, describe, beforeEach } from \"vitest\";\nimport {\n\tdefineCustomServerStrategy,\n\tdefineCustomClientStrategy,\n\tisCustomStrategy,\n} from \"./strategy.js\";\nimport { createParaglide } from \"../create-paraglide.js\";\n\ndescribe(\"isCustomStrategy\", () => {\n\ttest(\"returns true for valid custom strategy patterns\", () => {\n\t\texpect(isCustomStrategy(\"custom-header\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-auth123\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-API\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-sessionStorage\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-oAuth2\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-a\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-1\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-Z\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-9\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-aZ19\")).toBe(true);\n\t});\n\n\ttest(\"returns false for invalid custom strategy patterns\", () => {\n\t\texpect(isCustomStrategy(\"\")).toBe(false);\n\t\texpect(isCustomStrategy(\"custom_\")).toBe(false);\n\t\texpect(isCustomStrategy(\"custom-\")).toBe(false);\n\t\texpect(isCustomStrategy(\"header\")).toBe(false);\n\t\texpect(isCustomStrategy(\"custom\")).toBe(false);\n\t\t// These are now valid with our relaxed pattern:\n\t\texpect(isCustomStrategy(\"custom-invalid-name\")).toBe(true);\n\t\texpect(isCustomStrategy(\"custom-invalid_name\")).toBe(true);\n\t\t// But spaces and special chars are still invalid:\n\t\texpect(isCustomStrategy(\"custom-invalid name\")).toBe(false);\n\t\texpect(isCustomStrategy(\"custom-invalid@\")).toBe(false);\n\t\texpect(isCustomStrategy(\"Custom-header\")).toBe(false);\n\t\texpect(isCustomStrategy(\"CUSTOM-header\")).toBe(false);\n\t\texpect(isCustomStrategy(null)).toBe(false);\n\t\texpect(isCustomStrategy(undefined)).toBe(false);\n\t\texpect(isCustomStrategy(123)).toBe(false);\n\t\texpect(isCustomStrategy({})).toBe(false);\n\t\texpect(isCustomStrategy([])).toBe(false);\n\t});\n\n\ttest(\"returns false for built-in strategy names\", () => {\n\t\texpect(isCustomStrategy(\"cookie\")).toBe(false);\n\t\texpect(isCustomStrategy(\"baseLocale\")).toBe(false);\n\t\texpect(isCustomStrategy(\"globalVariable\")).toBe(false);\n\t\texpect(isCustomStrategy(\"url\")).toBe(false);\n\t\texpect(isCustomStrategy(\"preferredLanguage\")).toBe(false);\n\t\texpect(isCustomStrategy(\"localStorage\")).toBe(false);\n\t});\n});\n\ndescribe.each([\n\t[\"defineCustomServerStrategy\", defineCustomServerStrategy],\n\t[\"defineCustomClientStrategy\", defineCustomClientStrategy],\n])(\"%s\", (strategyName, defineStrategy) => {\n\tbeforeEach(() => {\n\t\t// Reset global variables before each test\n\t\tif (typeof globalThis !== \"undefined\") {\n\t\t\t// @ts-expect-error - Testing environment cleanup\n\t\t\tdelete globalThis.document;\n\t\t\t// @ts-expect-error - Testing environment cleanup\n\t\t\tdelete globalThis.window;\n\t\t\t// @ts-expect-error - Testing environment cleanup\n\t\t\tdelete globalThis.localStorage;\n\t\t\t// @ts-expect-error - Testing environment cleanup\n\t\t\tdelete globalThis.navigator;\n\t\t}\n\t});\n\n\tconst defaultHandler = { getLocale: () => \"en\", setLocale: () => {} };\n\n\tconst invalidInputs = [\n\t\t[\"\", \"empty name\"],\n\t\t[\"@invalid\", \"names with special characters (@)\"],\n\t\t[\"invalid!\", \"names with special characters (!)\"],\n\t\t[\"inva lid\", \"names with spaces\"],\n\t];\n\n\ttest.each(invalidInputs)(\n\t\t`${strategyName} throws error for %s (%s)`,\n\t\t(input) => {\n\t\t\texpect(() => defineStrategy(input, defaultHandler)).toThrow(\n\t\t\t\t`Invalid custom strategy: \"${input}\". Must be a custom strategy following the pattern custom-name.`\n\t\t\t);\n\t\t}\n\t);\n\n\ttest(`${strategyName} should compile with custom strategies in strategy array`, async () => {\n\t\t// Test that compile accepts custom strategies\n\t\tconst runtime = await createParaglide({\n\t\t\tbaseLocale: \"en\",\n\t\tlocales: [\"en\", \"de\", \"fr\"],\n\t\t\tstrategy: [\"custom-auth\", \"custom-header\", \"cookie\", \"baseLocale\"],\n\t\t\tcookieName: \"PARAGLIDE_LOCALE\",\n\t\t});\n\n\t\t// Verify the runtime contains the strategy array\n\t\texpect(runtime.strategy).toEqual([\n\t\t\t\"custom-auth\",\n\t\t\t\"custom-header\",\n\t\t\t\"cookie\",\n\t\t\t\"baseLocale\",\n\t\t]);\n\t});\n});\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {string} safeModuleId
3
+ * @param {Locale} locale
4
+ */
5
+ export declare function trackMessageCall(safeModuleId: string, locale: Locale): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-message-call.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/track-message-call.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAHlC,MAGkC,EAAE,MAAM,EAF1C,MAE0C,QAQpD"}
@@ -0,0 +1,14 @@
1
+ import { serverAsyncLocalStorage, isServer } from "./variables.js";
2
+ /**
3
+ * @param {string} safeModuleId
4
+ * @param {Locale} locale
5
+ */
6
+ export function trackMessageCall(safeModuleId, locale) {
7
+ if (isServer === false)
8
+ return;
9
+ const store = serverAsyncLocalStorage?.getStore();
10
+ if (store) {
11
+ store.messageCalls?.add(`${safeModuleId}:${locale}`);
12
+ }
13
+ }
14
+ //# sourceMappingURL=track-message-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-message-call.js","sourceRoot":"","sources":["../../../src/compiler/runtime/track-message-call.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAY,EAAE,MAAM;IACpD,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO;IAE/B,MAAM,KAAK,GAAG,uBAAuB,EAAE,QAAQ,EAAE,CAAC;IAElD,IAAI,KAAK,EAAE,CAAC;QACX,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,YAAY,IAAI,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;AACF,CAAC","sourcesContent":["import { serverAsyncLocalStorage, isServer } from \"./variables.js\";\n\n/**\n * @param {string} safeModuleId\n * @param {Locale} locale\n */\nexport function trackMessageCall(safeModuleId, locale) {\n\tif (isServer === false) return;\n\n\tconst store = serverAsyncLocalStorage?.getStore();\n\n\tif (store) {\n\t\tstore.messageCalls?.add(`${safeModuleId}:${locale}`);\n\t}\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-message-call.test.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/track-message-call.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { createParaglide } from "../create-paraglide.js";
3
+ import { test, expect } from "vitest";
4
+ test("tracks message calls", async () => {
5
+ const runtime = await createParaglide({
6
+ baseLocale: "en",
7
+ locales: ["en", "de"],
8
+ });
9
+ const mockMessage = (str) => {
10
+ runtime.trackMessageCall(str, "de");
11
+ };
12
+ runtime.overwriteServerAsyncLocalStorage(new AsyncLocalStorage());
13
+ const messageCalls = new Set();
14
+ const result = runtime.serverAsyncLocalStorage?.run({ messageCalls }, () => {
15
+ mockMessage("test1");
16
+ mockMessage("test2");
17
+ return "test3";
18
+ });
19
+ expect(result).toBe("test3");
20
+ expect(messageCalls).toEqual(new Set(["test1:de", "test2:de"]));
21
+ });
22
+ //# sourceMappingURL=track-message-call.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-message-call.test.js","sourceRoot":"","sources":["../../../src/compiler/runtime/track-message-call.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACrC,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACrB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;QACnC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CAAC,gCAAgC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAElE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAC1E,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { createParaglide } from \"../create-paraglide.js\";\nimport { test, expect } from \"vitest\";\n\ntest(\"tracks message calls\", async () => {\n\tconst runtime = await createParaglide({\n\t\tbaseLocale: \"en\",\n\t\tlocales: [\"en\", \"de\"],\n\t});\n\n\tconst mockMessage = (str: string) => {\n\t\truntime.trackMessageCall(str, \"de\");\n\t};\n\n\truntime.overwriteServerAsyncLocalStorage(new AsyncLocalStorage());\n\n\tconst messageCalls = new Set<string>();\n\n\tconst result = runtime.serverAsyncLocalStorage?.run({ messageCalls }, () => {\n\t\tmockMessage(\"test1\");\n\t\tmockMessage(\"test2\");\n\t\treturn \"test3\";\n\t});\n\n\texpect(result).toBe(\"test3\");\n\texpect(messageCalls).toEqual(new Set([\"test1:de\", \"test2:de\"]));\n});\n"]}
@@ -0,0 +1,197 @@
1
+ export type Locale = string;
2
+ export type LocalizedString = string & {
3
+ readonly __brand: 'LocalizedString';
4
+ };
5
+ export type MessageMarkupOption = {
6
+ name: string;
7
+ value: unknown;
8
+ };
9
+ export type MessageMarkupAttribute = {
10
+ name: string;
11
+ value: string | true;
12
+ };
13
+ export type MessageMarkupOptions = Record<string, unknown>;
14
+ export type MessageMarkupAttributes = Record<string, string | true>;
15
+ export type MessageMarkupTag = {
16
+ options: MessageMarkupOptions;
17
+ attributes: MessageMarkupAttributes;
18
+ children: boolean;
19
+ };
20
+ export type MessageMarkupSchema = Record<string, MessageMarkupTag>;
21
+ export type MessageMetadata<Inputs, Options, Markup extends MessageMarkupSchema = MessageMarkupSchema> = {
22
+ readonly __paraglide?: {
23
+ inputs: Inputs;
24
+ options: Options;
25
+ markup: Markup;
26
+ };
27
+ };
28
+ export type MessagePart = {
29
+ type: "text";
30
+ value: string;
31
+ } | {
32
+ type: "markup-start";
33
+ name: string;
34
+ options: MessageMarkupOptions;
35
+ attributes: MessageMarkupAttributes;
36
+ } | {
37
+ type: "markup-end";
38
+ name: string;
39
+ options: MessageMarkupOptions;
40
+ attributes: MessageMarkupAttributes;
41
+ } | {
42
+ type: "markup-standalone";
43
+ name: string;
44
+ options: MessageMarkupOptions;
45
+ attributes: MessageMarkupAttributes;
46
+ };
47
+ export type MessageFunction = (inputs?: Record<string, never>) => LocalizedString;
48
+ export type MessageBundleFunction<T extends string> = (params: Record<string, never>, options: {
49
+ locale: T;
50
+ }) => LocalizedString;
51
+ /**
52
+ * A locale that is available in the project.
53
+ *
54
+ * @example
55
+ * setLocale(request.locale as Locale)
56
+ *
57
+ * @typedef {string} Locale
58
+ */
59
+ /**
60
+ * A branded type representing a localized string.
61
+ *
62
+ * Message functions return this type instead of \`string\`, enabling TypeScript
63
+ * to distinguish translated strings from regular strings at compile time.
64
+ * This allows you to enforce that only properly localized content is used
65
+ * in your UI components.
66
+ *
67
+ * Since \`LocalizedString\` is a branded subtype of \`string\`, it remains fully
68
+ * backward compatible—you can pass it anywhere a \`string\` is expected.
69
+ *
70
+ * @example
71
+ * // Enforce localized strings in your components
72
+ * function PageTitle(props: { title: LocalizedString }) {
73
+ * return <h1>{props.title}</h1>
74
+ * }
75
+ *
76
+ * // ✅ Correct: using a message function
77
+ * <PageTitle title={m.welcome_title()} />
78
+ *
79
+ * // ❌ Type error: raw strings are not LocalizedString
80
+ * <PageTitle title="Welcome" />
81
+ *
82
+ * @example
83
+ * // LocalizedString is assignable to string (backward compatible)
84
+ * const localized: LocalizedString = m.greeting()
85
+ * const str: string = localized // ✅ works fine
86
+ *
87
+ * // But string is not assignable to LocalizedString
88
+ * const raw: LocalizedString = "Hello" // ❌ Type error
89
+ *
90
+ * @example
91
+ * // Catches accidental string concatenation
92
+ * function showMessage(msg: LocalizedString) { ... }
93
+ *
94
+ * showMessage(m.hello()) // ✅
95
+ * showMessage("Hello " + userName) // ❌ Type error
96
+ * showMessage(m.hello_user({ name: userName })) // ✅ use params instead
97
+ *
98
+ * @typedef {string & { readonly __brand: 'LocalizedString' }} LocalizedString
99
+ */
100
+ /**
101
+ * A single markup option passed to a tag instance.
102
+ *
103
+ * @typedef {{
104
+ * name: string;
105
+ * value: unknown;
106
+ * }} MessageMarkupOption
107
+ */
108
+ /**
109
+ * A single static markup attribute attached to a tag instance.
110
+ *
111
+ * @typedef {{
112
+ * name: string;
113
+ * value: string | true;
114
+ * }} MessageMarkupAttribute
115
+ */
116
+ /**
117
+ * Record of markup options for a tag instance.
118
+ *
119
+ * @typedef {Record<string, unknown>} MessageMarkupOptions
120
+ */
121
+ /**
122
+ * Record of markup attributes for a tag instance.
123
+ *
124
+ * @typedef {Record<string, string | true>} MessageMarkupAttributes
125
+ */
126
+ /**
127
+ * Type-level schema for a single markup tag.
128
+ *
129
+ * @typedef {{
130
+ * options: MessageMarkupOptions;
131
+ * attributes: MessageMarkupAttributes;
132
+ * children: boolean;
133
+ * }} MessageMarkupTag
134
+ */
135
+ /**
136
+ * Type-level schema for all markup tags in a message.
137
+ *
138
+ * @typedef {Record<string, MessageMarkupTag>} MessageMarkupSchema
139
+ */
140
+ /**
141
+ * Type-only metadata attached to compiled message functions.
142
+ *
143
+ * @template Inputs
144
+ * @template Options
145
+ * @template {MessageMarkupSchema} [Markup = MessageMarkupSchema]
146
+ * @typedef {{
147
+ * readonly __paraglide?: {
148
+ * inputs: Inputs;
149
+ * options: Options;
150
+ * markup: Markup;
151
+ * };
152
+ * }} MessageMetadata
153
+ */
154
+ /**
155
+ * A compiled, framework-neutral message part.
156
+ *
157
+ * @typedef {{
158
+ * type: "text";
159
+ * value: string;
160
+ * } | {
161
+ * type: "markup-start";
162
+ * name: string;
163
+ * options: MessageMarkupOptions;
164
+ * attributes: MessageMarkupAttributes;
165
+ * } | {
166
+ * type: "markup-end";
167
+ * name: string;
168
+ * options: MessageMarkupOptions;
169
+ * attributes: MessageMarkupAttributes;
170
+ * } | {
171
+ * type: "markup-standalone";
172
+ * name: string;
173
+ * options: MessageMarkupOptions;
174
+ * attributes: MessageMarkupAttributes;
175
+ * }} MessagePart
176
+ */
177
+ /**
178
+ * A message function is a message for a specific locale.
179
+ *
180
+ * @example
181
+ * m.hello({ name: 'world' })
182
+ *
183
+ * @typedef {(inputs?: Record<string, never>) => LocalizedString} MessageFunction
184
+ */
185
+ /**
186
+ * A message bundle function that selects the message to be returned.
187
+ *
188
+ * Uses `getLocale()` under the hood to determine the locale with an option.
189
+ *
190
+ * @template {string} T
191
+ *
192
+ * @example
193
+ * import { m } from './messages.js'
194
+ * m.hello({ name: 'world' }, { locale: "en" })
195
+ *
196
+ * @typedef {(params: Record<string, never>, options: { locale: T }) => LocalizedString} MessageBundleFunction
197
+ */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-definitions.d.ts","sourceRoot":"","sources":["../../../src/compiler/runtime/type-definitions.js"],"names":[],"mappings":"AAQG,YAAkB,MAAM,GAAd,MAAM,CAAQ;AA0CxB,YAA4D,eAAe,GAAjE,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAAiB;AAM3E,YAGG,mBAAmB,GAHZ;IACR,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB,CAAqB;AAMtB,YAGG,sBAAsB,GAHf;IACR,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAwB;AAMzB,YAAmC,oBAAoB,GAA7C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAsB;AAMvD,YAAyC,uBAAuB,GAAtD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAyB;AAMhE,YAIG,gBAAgB,GAJT;IACR,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,uBAAuB,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAkB;AAMnB,YAA4C,mBAAmB,GAArD,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAqB;AAS/D,YAMG,eAAe,CATR,MAAM,EACN,OAAO,EACgB,MAAM,SAA5B,mBAAmB,GAAY,mBAAoB,IACpD;IACZ,QAAY,CAAC,WAAW,CAAC,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAiB;AAMlB,YAkBG,WAAW,GAlBJ;IACR,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GAAG;IACF,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,uBAAuB,CAAC;CACrC,GAAG;IACF,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,uBAAuB,CAAC;CACrC,GAAG;IACF,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAa;AASd,YAA+D,eAAe,GAApE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,eAAe,CAAiB;AAc9E,YAAsF,qBAAqB,CANxF,CAAC,SAAT,MAAS,IAMV,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,CAAC,CAAA;CAAE,KAAK,eAAe,CAAuB;AA5J9G;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;;;;;;GAOG;AAEH;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,150 @@
1
+ // ------ TYPES ------
2
+ export {};
3
+ /**
4
+ * A locale that is available in the project.
5
+ *
6
+ * @example
7
+ * setLocale(request.locale as Locale)
8
+ *
9
+ * @typedef {string} Locale
10
+ */
11
+ /**
12
+ * A branded type representing a localized string.
13
+ *
14
+ * Message functions return this type instead of \`string\`, enabling TypeScript
15
+ * to distinguish translated strings from regular strings at compile time.
16
+ * This allows you to enforce that only properly localized content is used
17
+ * in your UI components.
18
+ *
19
+ * Since \`LocalizedString\` is a branded subtype of \`string\`, it remains fully
20
+ * backward compatible—you can pass it anywhere a \`string\` is expected.
21
+ *
22
+ * @example
23
+ * // Enforce localized strings in your components
24
+ * function PageTitle(props: { title: LocalizedString }) {
25
+ * return <h1>{props.title}</h1>
26
+ * }
27
+ *
28
+ * // ✅ Correct: using a message function
29
+ * <PageTitle title={m.welcome_title()} />
30
+ *
31
+ * // ❌ Type error: raw strings are not LocalizedString
32
+ * <PageTitle title="Welcome" />
33
+ *
34
+ * @example
35
+ * // LocalizedString is assignable to string (backward compatible)
36
+ * const localized: LocalizedString = m.greeting()
37
+ * const str: string = localized // ✅ works fine
38
+ *
39
+ * // But string is not assignable to LocalizedString
40
+ * const raw: LocalizedString = "Hello" // ❌ Type error
41
+ *
42
+ * @example
43
+ * // Catches accidental string concatenation
44
+ * function showMessage(msg: LocalizedString) { ... }
45
+ *
46
+ * showMessage(m.hello()) // ✅
47
+ * showMessage("Hello " + userName) // ❌ Type error
48
+ * showMessage(m.hello_user({ name: userName })) // ✅ use params instead
49
+ *
50
+ * @typedef {string & { readonly __brand: 'LocalizedString' }} LocalizedString
51
+ */
52
+ /**
53
+ * A single markup option passed to a tag instance.
54
+ *
55
+ * @typedef {{
56
+ * name: string;
57
+ * value: unknown;
58
+ * }} MessageMarkupOption
59
+ */
60
+ /**
61
+ * A single static markup attribute attached to a tag instance.
62
+ *
63
+ * @typedef {{
64
+ * name: string;
65
+ * value: string | true;
66
+ * }} MessageMarkupAttribute
67
+ */
68
+ /**
69
+ * Record of markup options for a tag instance.
70
+ *
71
+ * @typedef {Record<string, unknown>} MessageMarkupOptions
72
+ */
73
+ /**
74
+ * Record of markup attributes for a tag instance.
75
+ *
76
+ * @typedef {Record<string, string | true>} MessageMarkupAttributes
77
+ */
78
+ /**
79
+ * Type-level schema for a single markup tag.
80
+ *
81
+ * @typedef {{
82
+ * options: MessageMarkupOptions;
83
+ * attributes: MessageMarkupAttributes;
84
+ * children: boolean;
85
+ * }} MessageMarkupTag
86
+ */
87
+ /**
88
+ * Type-level schema for all markup tags in a message.
89
+ *
90
+ * @typedef {Record<string, MessageMarkupTag>} MessageMarkupSchema
91
+ */
92
+ /**
93
+ * Type-only metadata attached to compiled message functions.
94
+ *
95
+ * @template Inputs
96
+ * @template Options
97
+ * @template {MessageMarkupSchema} [Markup = MessageMarkupSchema]
98
+ * @typedef {{
99
+ * readonly __paraglide?: {
100
+ * inputs: Inputs;
101
+ * options: Options;
102
+ * markup: Markup;
103
+ * };
104
+ * }} MessageMetadata
105
+ */
106
+ /**
107
+ * A compiled, framework-neutral message part.
108
+ *
109
+ * @typedef {{
110
+ * type: "text";
111
+ * value: string;
112
+ * } | {
113
+ * type: "markup-start";
114
+ * name: string;
115
+ * options: MessageMarkupOptions;
116
+ * attributes: MessageMarkupAttributes;
117
+ * } | {
118
+ * type: "markup-end";
119
+ * name: string;
120
+ * options: MessageMarkupOptions;
121
+ * attributes: MessageMarkupAttributes;
122
+ * } | {
123
+ * type: "markup-standalone";
124
+ * name: string;
125
+ * options: MessageMarkupOptions;
126
+ * attributes: MessageMarkupAttributes;
127
+ * }} MessagePart
128
+ */
129
+ /**
130
+ * A message function is a message for a specific locale.
131
+ *
132
+ * @example
133
+ * m.hello({ name: 'world' })
134
+ *
135
+ * @typedef {(inputs?: Record<string, never>) => LocalizedString} MessageFunction
136
+ */
137
+ /**
138
+ * A message bundle function that selects the message to be returned.
139
+ *
140
+ * Uses `getLocale()` under the hood to determine the locale with an option.
141
+ *
142
+ * @template {string} T
143
+ *
144
+ * @example
145
+ * import { m } from './messages.js'
146
+ * m.hello({ name: 'world' }, { locale: "en" })
147
+ *
148
+ * @typedef {(params: Record<string, never>, options: { locale: T }) => LocalizedString} MessageBundleFunction
149
+ */
150
+ //# sourceMappingURL=type-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-definitions.js","sourceRoot":"","sources":["../../../src/compiler/runtime/type-definitions.js"],"names":[],"mappings":"AAAA,sBAAsB;;AAEtB;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;;;;;;GAOG;AAEH;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;;GAYG","sourcesContent":["// ------ TYPES ------\n\n/**\n * A locale that is available in the project.\n *\n * @example\n * setLocale(request.locale as Locale)\n *\n * @typedef {string} Locale\n */\n\n/**\n * A branded type representing a localized string.\n *\n * Message functions return this type instead of \\`string\\`, enabling TypeScript\n * to distinguish translated strings from regular strings at compile time.\n * This allows you to enforce that only properly localized content is used\n * in your UI components.\n *\n * Since \\`LocalizedString\\` is a branded subtype of \\`string\\`, it remains fully\n * backward compatible—you can pass it anywhere a \\`string\\` is expected.\n *\n * @example\n * // Enforce localized strings in your components\n * function PageTitle(props: { title: LocalizedString }) {\n * return <h1>{props.title}</h1>\n * }\n *\n * // ✅ Correct: using a message function\n * <PageTitle title={m.welcome_title()} />\n *\n * // ❌ Type error: raw strings are not LocalizedString\n * <PageTitle title=\"Welcome\" />\n *\n * @example\n * // LocalizedString is assignable to string (backward compatible)\n * const localized: LocalizedString = m.greeting()\n * const str: string = localized // ✅ works fine\n *\n * // But string is not assignable to LocalizedString\n * const raw: LocalizedString = \"Hello\" // ❌ Type error\n *\n * @example\n * // Catches accidental string concatenation\n * function showMessage(msg: LocalizedString) { ... }\n *\n * showMessage(m.hello()) // ✅\n * showMessage(\"Hello \" + userName) // ❌ Type error\n * showMessage(m.hello_user({ name: userName })) // ✅ use params instead\n *\n * @typedef {string & { readonly __brand: 'LocalizedString' }} LocalizedString\n */\n\n/**\n * A single markup option passed to a tag instance.\n *\n * @typedef {{\n * name: string;\n * value: unknown;\n * }} MessageMarkupOption\n */\n\n/**\n * A single static markup attribute attached to a tag instance.\n *\n * @typedef {{\n * name: string;\n * value: string | true;\n * }} MessageMarkupAttribute\n */\n\n/**\n * Record of markup options for a tag instance.\n *\n * @typedef {Record<string, unknown>} MessageMarkupOptions\n */\n\n/**\n * Record of markup attributes for a tag instance.\n *\n * @typedef {Record<string, string | true>} MessageMarkupAttributes\n */\n\n/**\n * Type-level schema for a single markup tag.\n *\n * @typedef {{\n * options: MessageMarkupOptions;\n * attributes: MessageMarkupAttributes;\n * children: boolean;\n * }} MessageMarkupTag\n */\n\n/**\n * Type-level schema for all markup tags in a message.\n *\n * @typedef {Record<string, MessageMarkupTag>} MessageMarkupSchema\n */\n\n/**\n * Type-only metadata attached to compiled message functions.\n *\n * @template Inputs\n * @template Options\n * @template {MessageMarkupSchema} [Markup = MessageMarkupSchema]\n * @typedef {{\n * readonly __paraglide?: {\n * inputs: Inputs;\n * options: Options;\n * markup: Markup;\n * };\n * }} MessageMetadata\n */\n\n/**\n * A compiled, framework-neutral message part.\n *\n * @typedef {{\n * type: \"text\";\n * value: string;\n * } | {\n * type: \"markup-start\";\n * name: string;\n * options: MessageMarkupOptions;\n * attributes: MessageMarkupAttributes;\n * } | {\n * type: \"markup-end\";\n * name: string;\n * options: MessageMarkupOptions;\n * attributes: MessageMarkupAttributes;\n * } | {\n * type: \"markup-standalone\";\n * name: string;\n * options: MessageMarkupOptions;\n * attributes: MessageMarkupAttributes;\n * }} MessagePart\n */\n\n/**\n * A message function is a message for a specific locale.\n *\n * @example\n * m.hello({ name: 'world' })\n *\n * @typedef {(inputs?: Record<string, never>) => LocalizedString} MessageFunction\n */\n\n/**\n * A message bundle function that selects the message to be returned.\n *\n * Uses `getLocale()` under the hood to determine the locale with an option.\n *\n * @template {string} T\n *\n * @example\n * import { m } from './messages.js'\n * m.hello({ name: 'world' }, { locale: \"en\" })\n *\n * @typedef {(params: Record<string, never>, options: { locale: T }) => LocalizedString} MessageBundleFunction\n */\n"]}