@intlayer/core 7.0.9-canary.0 → 7.0.9-canary.3

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 (301) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/config/dist/esm/_virtual/rolldown_runtime.cjs +20 -0
  3. package/dist/cjs/config/dist/esm/_virtual/rolldown_runtime.cjs.map +1 -0
  4. package/dist/cjs/config/dist/esm/built.cjs +8 -0
  5. package/dist/cjs/config/dist/esm/built.cjs.map +1 -0
  6. package/dist/cjs/config/dist/esm/configFile/buildConfigurationFields.cjs +119 -0
  7. package/dist/cjs/config/dist/esm/configFile/buildConfigurationFields.cjs.map +1 -0
  8. package/dist/cjs/config/dist/esm/configFile/getConfiguration.cjs +69 -0
  9. package/dist/cjs/config/dist/esm/configFile/getConfiguration.cjs.map +1 -0
  10. package/dist/cjs/config/dist/esm/configFile/loadConfigurationFile.cjs +26 -0
  11. package/dist/cjs/config/dist/esm/configFile/loadConfigurationFile.cjs.map +1 -0
  12. package/dist/cjs/config/dist/esm/configFile/searchConfigurationFile.cjs +51 -0
  13. package/dist/cjs/config/dist/esm/configFile/searchConfigurationFile.cjs.map +1 -0
  14. package/dist/cjs/config/dist/esm/defaultValues/build.cjs +24 -0
  15. package/dist/cjs/config/dist/esm/defaultValues/build.cjs.map +1 -0
  16. package/dist/cjs/config/dist/esm/defaultValues/content.cjs +78 -0
  17. package/dist/cjs/config/dist/esm/defaultValues/content.cjs.map +1 -0
  18. package/dist/cjs/config/dist/esm/defaultValues/dictionary.cjs +7 -0
  19. package/dist/cjs/config/dist/esm/defaultValues/dictionary.cjs.map +1 -0
  20. package/dist/cjs/config/dist/esm/defaultValues/editor.cjs +36 -0
  21. package/dist/cjs/config/dist/esm/defaultValues/editor.cjs.map +1 -0
  22. package/dist/cjs/config/dist/esm/defaultValues/index.cjs +21 -0
  23. package/dist/cjs/config/dist/esm/defaultValues/index.cjs.map +1 -0
  24. package/dist/cjs/config/dist/esm/defaultValues/internationalization.cjs +22 -0
  25. package/dist/cjs/config/dist/esm/defaultValues/internationalization.cjs.map +1 -0
  26. package/dist/cjs/config/dist/esm/defaultValues/log.cjs +16 -0
  27. package/dist/cjs/config/dist/esm/defaultValues/log.cjs.map +1 -0
  28. package/dist/cjs/config/dist/esm/defaultValues/routing.cjs +26 -0
  29. package/dist/cjs/config/dist/esm/defaultValues/routing.cjs.map +1 -0
  30. package/dist/cjs/config/dist/esm/loadEnvFile.cjs +26 -0
  31. package/dist/cjs/config/dist/esm/loadEnvFile.cjs.map +1 -0
  32. package/dist/cjs/config/dist/esm/loadExternalFile/bundleFile.cjs +23 -0
  33. package/dist/cjs/config/dist/esm/loadExternalFile/bundleFile.cjs.map +1 -0
  34. package/dist/cjs/config/dist/esm/loadExternalFile/loadExternalFile.cjs +47 -0
  35. package/dist/cjs/config/dist/esm/loadExternalFile/loadExternalFile.cjs.map +1 -0
  36. package/dist/cjs/config/dist/esm/loadExternalFile/parseFileContent.cjs +65 -0
  37. package/dist/cjs/config/dist/esm/loadExternalFile/parseFileContent.cjs.map +1 -0
  38. package/dist/cjs/config/dist/esm/loadExternalFile/transpileTSToMJS.cjs +45 -0
  39. package/dist/cjs/config/dist/esm/loadExternalFile/transpileTSToMJS.cjs.map +1 -0
  40. package/dist/cjs/config/dist/esm/logger.cjs +65 -0
  41. package/dist/cjs/config/dist/esm/logger.cjs.map +1 -0
  42. package/dist/cjs/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.cjs +15 -0
  43. package/dist/cjs/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.cjs.map +1 -0
  44. package/dist/cjs/config/dist/esm/types/dist/esm/locales.cjs +1128 -0
  45. package/dist/cjs/config/dist/esm/types/dist/esm/locales.cjs.map +1 -0
  46. package/dist/cjs/config/dist/esm/utils/ESMxCJSHelpers.cjs +27 -0
  47. package/dist/cjs/config/dist/esm/utils/ESMxCJSHelpers.cjs.map +1 -0
  48. package/dist/cjs/config/dist/esm/utils/cache.cjs +261 -0
  49. package/dist/cjs/config/dist/esm/utils/cache.cjs.map +1 -0
  50. package/dist/cjs/config/dist/esm/utils/clearModuleCache.cjs +26 -0
  51. package/dist/cjs/config/dist/esm/utils/clearModuleCache.cjs.map +1 -0
  52. package/dist/cjs/config/dist/esm/utils/getPackageJsonPath.cjs +34 -0
  53. package/dist/cjs/config/dist/esm/utils/getPackageJsonPath.cjs.map +1 -0
  54. package/dist/cjs/config/dist/esm/utils/normalizePath.cjs +17 -0
  55. package/dist/cjs/config/dist/esm/utils/normalizePath.cjs.map +1 -0
  56. package/dist/cjs/dictionaries-entry/dist/esm/_virtual/rolldown_runtime.cjs +10 -0
  57. package/dist/cjs/dictionaries-entry/dist/esm/_virtual/rolldown_runtime.cjs.map +1 -0
  58. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/_virtual/rolldown_runtime.cjs +11 -0
  59. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/_virtual/rolldown_runtime.cjs.map +1 -0
  60. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/built.cjs +8 -0
  61. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/built.cjs.map +1 -0
  62. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/buildConfigurationFields.cjs +119 -0
  63. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/buildConfigurationFields.cjs.map +1 -0
  64. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/getConfiguration.cjs +69 -0
  65. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/getConfiguration.cjs.map +1 -0
  66. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/loadConfigurationFile.cjs +26 -0
  67. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/loadConfigurationFile.cjs.map +1 -0
  68. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/searchConfigurationFile.cjs +51 -0
  69. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/configFile/searchConfigurationFile.cjs.map +1 -0
  70. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/build.cjs +15 -0
  71. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/build.cjs.map +1 -0
  72. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/content.cjs +54 -0
  73. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/content.cjs.map +1 -0
  74. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/dictionary.cjs +7 -0
  75. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/dictionary.cjs.map +1 -0
  76. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/editor.cjs +23 -0
  77. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/editor.cjs.map +1 -0
  78. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/internationalization.cjs +14 -0
  79. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/internationalization.cjs.map +1 -0
  80. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/log.cjs +10 -0
  81. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/log.cjs.map +1 -0
  82. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/routing.cjs +11 -0
  83. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/routing.cjs.map +1 -0
  84. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadEnvFile.cjs +26 -0
  85. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadEnvFile.cjs.map +1 -0
  86. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/bundleFile.cjs +23 -0
  87. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/bundleFile.cjs.map +1 -0
  88. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.cjs +47 -0
  89. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.cjs.map +1 -0
  90. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.cjs +65 -0
  91. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.cjs.map +1 -0
  92. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.cjs +45 -0
  93. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.cjs.map +1 -0
  94. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/logger.cjs +47 -0
  95. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/logger.cjs.map +1 -0
  96. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.cjs +15 -0
  97. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.cjs.map +1 -0
  98. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/locales.cjs +1128 -0
  99. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/locales.cjs.map +1 -0
  100. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.cjs +27 -0
  101. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.cjs.map +1 -0
  102. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/cache.cjs +261 -0
  103. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/cache.cjs.map +1 -0
  104. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/getPackageJsonPath.cjs +34 -0
  105. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/getPackageJsonPath.cjs.map +1 -0
  106. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/normalizePath.cjs +17 -0
  107. package/dist/cjs/dictionaries-entry/dist/esm/config/dist/esm/utils/normalizePath.cjs.map +1 -0
  108. package/dist/cjs/dictionaries-entry/dist/esm/index.cjs +27 -0
  109. package/dist/cjs/dictionaries-entry/dist/esm/index.cjs.map +1 -0
  110. package/dist/cjs/index.cjs +3 -1
  111. package/dist/cjs/localization/getLocalizedUrl.cjs +33 -10
  112. package/dist/cjs/localization/getLocalizedUrl.cjs.map +1 -1
  113. package/dist/cjs/localization/getMultilingualUrls.cjs +16 -33
  114. package/dist/cjs/localization/getMultilingualUrls.cjs.map +1 -1
  115. package/dist/cjs/localization/getPrefix.cjs +47 -0
  116. package/dist/cjs/localization/getPrefix.cjs.map +1 -0
  117. package/dist/cjs/localization/index.cjs +3 -1
  118. package/dist/cjs/types/dist/esm/_virtual/rolldown_runtime.cjs +15 -0
  119. package/dist/cjs/types/dist/esm/_virtual/rolldown_runtime.cjs.map +1 -0
  120. package/dist/cjs/types/dist/esm/locales.cjs +1128 -0
  121. package/dist/cjs/types/dist/esm/locales.cjs.map +1 -0
  122. package/dist/cjs/types/dist/esm/nodeType.cjs +31 -0
  123. package/dist/cjs/types/dist/esm/nodeType.cjs.map +1 -0
  124. package/dist/esm/_virtual/rolldown_runtime.mjs +8 -0
  125. package/dist/esm/config/dist/esm/_virtual/rolldown_runtime.mjs +20 -0
  126. package/dist/esm/config/dist/esm/_virtual/rolldown_runtime.mjs.map +1 -0
  127. package/dist/esm/config/dist/esm/built.mjs +8 -0
  128. package/dist/esm/config/dist/esm/built.mjs.map +1 -0
  129. package/dist/esm/config/dist/esm/configFile/buildConfigurationFields.mjs +118 -0
  130. package/dist/esm/config/dist/esm/configFile/buildConfigurationFields.mjs.map +1 -0
  131. package/dist/esm/config/dist/esm/configFile/getConfiguration.mjs +67 -0
  132. package/dist/esm/config/dist/esm/configFile/getConfiguration.mjs.map +1 -0
  133. package/dist/esm/config/dist/esm/configFile/loadConfigurationFile.mjs +26 -0
  134. package/dist/esm/config/dist/esm/configFile/loadConfigurationFile.mjs.map +1 -0
  135. package/dist/esm/config/dist/esm/configFile/searchConfigurationFile.mjs +50 -0
  136. package/dist/esm/config/dist/esm/configFile/searchConfigurationFile.mjs.map +1 -0
  137. package/dist/esm/config/dist/esm/defaultValues/build.mjs +19 -0
  138. package/dist/esm/config/dist/esm/defaultValues/build.mjs.map +1 -0
  139. package/dist/esm/config/dist/esm/defaultValues/content.mjs +64 -0
  140. package/dist/esm/config/dist/esm/defaultValues/content.mjs.map +1 -0
  141. package/dist/esm/config/dist/esm/defaultValues/dictionary.mjs +6 -0
  142. package/dist/esm/config/dist/esm/defaultValues/dictionary.mjs.map +1 -0
  143. package/dist/esm/config/dist/esm/defaultValues/editor.mjs +27 -0
  144. package/dist/esm/config/dist/esm/defaultValues/editor.mjs.map +1 -0
  145. package/dist/esm/config/dist/esm/defaultValues/index.mjs +21 -0
  146. package/dist/esm/config/dist/esm/defaultValues/index.mjs.map +1 -0
  147. package/dist/esm/config/dist/esm/defaultValues/internationalization.mjs +18 -0
  148. package/dist/esm/config/dist/esm/defaultValues/internationalization.mjs.map +1 -0
  149. package/dist/esm/config/dist/esm/defaultValues/log.mjs +14 -0
  150. package/dist/esm/config/dist/esm/defaultValues/log.mjs.map +1 -0
  151. package/dist/esm/config/dist/esm/defaultValues/routing.mjs +23 -0
  152. package/dist/esm/config/dist/esm/defaultValues/routing.mjs.map +1 -0
  153. package/dist/esm/config/dist/esm/loadEnvFile.mjs +24 -0
  154. package/dist/esm/config/dist/esm/loadEnvFile.mjs.map +1 -0
  155. package/dist/esm/config/dist/esm/loadExternalFile/bundleFile.mjs +23 -0
  156. package/dist/esm/config/dist/esm/loadExternalFile/bundleFile.mjs.map +1 -0
  157. package/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.mjs +47 -0
  158. package/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.mjs.map +1 -0
  159. package/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.mjs +63 -0
  160. package/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.mjs.map +1 -0
  161. package/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.mjs +44 -0
  162. package/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.mjs.map +1 -0
  163. package/dist/esm/config/dist/esm/logger.mjs +59 -0
  164. package/dist/esm/config/dist/esm/logger.mjs.map +1 -0
  165. package/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs +14 -0
  166. package/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs.map +1 -0
  167. package/dist/esm/config/dist/esm/types/dist/esm/locales.mjs +1128 -0
  168. package/dist/esm/config/dist/esm/types/dist/esm/locales.mjs.map +1 -0
  169. package/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.mjs +25 -0
  170. package/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.mjs.map +1 -0
  171. package/dist/esm/config/dist/esm/utils/cache.mjs +263 -0
  172. package/dist/esm/config/dist/esm/utils/cache.mjs.map +1 -0
  173. package/dist/esm/config/dist/esm/utils/getPackageJsonPath.mjs +33 -0
  174. package/dist/esm/config/dist/esm/utils/getPackageJsonPath.mjs.map +1 -0
  175. package/dist/esm/config/dist/esm/utils/normalizePath.mjs +16 -0
  176. package/dist/esm/config/dist/esm/utils/normalizePath.mjs.map +1 -0
  177. package/dist/esm/dictionaries-entry/dist/esm/_virtual/rolldown_runtime.mjs +11 -0
  178. package/dist/esm/dictionaries-entry/dist/esm/_virtual/rolldown_runtime.mjs.map +1 -0
  179. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/_virtual/rolldown_runtime.mjs +11 -0
  180. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/_virtual/rolldown_runtime.mjs.map +1 -0
  181. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/built.mjs +8 -0
  182. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/built.mjs.map +1 -0
  183. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/buildConfigurationFields.mjs +118 -0
  184. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/buildConfigurationFields.mjs.map +1 -0
  185. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/getConfiguration.mjs +67 -0
  186. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/getConfiguration.mjs.map +1 -0
  187. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/loadConfigurationFile.mjs +26 -0
  188. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/loadConfigurationFile.mjs.map +1 -0
  189. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/searchConfigurationFile.mjs +50 -0
  190. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/configFile/searchConfigurationFile.mjs.map +1 -0
  191. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/build.mjs +10 -0
  192. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/build.mjs.map +1 -0
  193. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/content.mjs +40 -0
  194. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/content.mjs.map +1 -0
  195. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/dictionary.mjs +6 -0
  196. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/dictionary.mjs.map +1 -0
  197. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/editor.mjs +14 -0
  198. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/editor.mjs.map +1 -0
  199. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/internationalization.mjs +11 -0
  200. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/internationalization.mjs.map +1 -0
  201. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/log.mjs +9 -0
  202. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/log.mjs.map +1 -0
  203. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/routing.mjs +8 -0
  204. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/defaultValues/routing.mjs.map +1 -0
  205. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadEnvFile.mjs +24 -0
  206. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadEnvFile.mjs.map +1 -0
  207. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/bundleFile.mjs +23 -0
  208. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/bundleFile.mjs.map +1 -0
  209. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.mjs +47 -0
  210. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.mjs.map +1 -0
  211. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.mjs +63 -0
  212. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.mjs.map +1 -0
  213. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.mjs +44 -0
  214. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.mjs.map +1 -0
  215. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/logger.mjs +45 -0
  216. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/logger.mjs.map +1 -0
  217. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs +14 -0
  218. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs.map +1 -0
  219. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/locales.mjs +1128 -0
  220. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/types/dist/esm/locales.mjs.map +1 -0
  221. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.mjs +25 -0
  222. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.mjs.map +1 -0
  223. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/cache.mjs +263 -0
  224. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/cache.mjs.map +1 -0
  225. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/getPackageJsonPath.mjs +33 -0
  226. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/getPackageJsonPath.mjs.map +1 -0
  227. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/normalizePath.mjs +16 -0
  228. package/dist/esm/dictionaries-entry/dist/esm/config/dist/esm/utils/normalizePath.mjs.map +1 -0
  229. package/dist/esm/dictionaries-entry/dist/esm/index.mjs +25 -0
  230. package/dist/esm/dictionaries-entry/dist/esm/index.mjs.map +1 -0
  231. package/dist/esm/index.mjs +3 -2
  232. package/dist/esm/localization/getLocalizedUrl.mjs +33 -10
  233. package/dist/esm/localization/getLocalizedUrl.mjs.map +1 -1
  234. package/dist/esm/localization/getMultilingualUrls.mjs +16 -33
  235. package/dist/esm/localization/getMultilingualUrls.mjs.map +1 -1
  236. package/dist/esm/localization/getPrefix.mjs +45 -0
  237. package/dist/esm/localization/getPrefix.mjs.map +1 -0
  238. package/dist/esm/localization/index.mjs +3 -2
  239. package/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs +14 -0
  240. package/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs.map +1 -0
  241. package/dist/esm/types/dist/esm/locales.mjs +1128 -0
  242. package/dist/esm/types/dist/esm/locales.mjs.map +1 -0
  243. package/dist/esm/types/dist/esm/nodeType.mjs +29 -0
  244. package/dist/esm/types/dist/esm/nodeType.mjs.map +1 -0
  245. package/dist/index.d.mts +1323 -0
  246. package/dist/index.mjs +3348 -0
  247. package/dist/types/deepTransformPlugins/getFilterMissingTranslationsContent.d.ts +7 -7
  248. package/dist/types/deepTransformPlugins/getFilterMissingTranslationsContent.d.ts.map +1 -1
  249. package/dist/types/deepTransformPlugins/getFilterTranslationsOnlyContent.d.ts +7 -7
  250. package/dist/types/deepTransformPlugins/getFilterTranslationsOnlyContent.d.ts.map +1 -1
  251. package/dist/types/deepTransformPlugins/getFilteredLocalesContent.d.ts +7 -7
  252. package/dist/types/deepTransformPlugins/getFilteredLocalesContent.d.ts.map +1 -1
  253. package/dist/types/dictionaryManipulator/orderDictionaries.d.ts +2 -2
  254. package/dist/types/dictionaryManipulator/orderDictionaries.d.ts.map +1 -1
  255. package/dist/types/index.d.ts +2 -1
  256. package/dist/types/localization/getLocalizedUrl.d.ts +13 -8
  257. package/dist/types/localization/getLocalizedUrl.d.ts.map +1 -1
  258. package/dist/types/localization/getMultilingualUrls.d.ts +13 -8
  259. package/dist/types/localization/getMultilingualUrls.d.ts.map +1 -1
  260. package/dist/types/localization/getPrefix.d.ts +46 -0
  261. package/dist/types/localization/getPrefix.d.ts.map +1 -0
  262. package/dist/types/localization/index.d.ts +2 -1
  263. package/package.json +20 -17
  264. package/dist/cjs/dictionaryManipulator/getUnmergedDictionaryByKeyPath.cjs +0 -20
  265. package/dist/cjs/dictionaryManipulator/getUnmergedDictionaryByKeyPath.cjs.map +0 -1
  266. package/dist/esm/dictionaryManipulator/getUnmergedDictionaryByKeyPath.mjs +0 -17
  267. package/dist/esm/dictionaryManipulator/getUnmergedDictionaryByKeyPath.mjs.map +0 -1
  268. package/dist/types/deepTransformPlugins/index.d.ts.map +0 -1
  269. package/dist/types/dictionaryManipulator/getUnmergedDictionaryByKeyPath.d.ts +0 -9
  270. package/dist/types/dictionaryManipulator/getUnmergedDictionaryByKeyPath.d.ts.map +0 -1
  271. package/dist/types/dictionaryManipulator/index.d.ts.map +0 -1
  272. package/dist/types/formatters/index.d.ts.map +0 -1
  273. package/dist/types/index.d.ts.map +0 -1
  274. package/dist/types/interpreter/getContent/index.d.ts.map +0 -1
  275. package/dist/types/interpreter/getIntlayerAsync.d.ts +0 -13
  276. package/dist/types/interpreter/getIntlayerAsync.d.ts.map +0 -1
  277. package/dist/types/interpreter/index.d.ts.map +0 -1
  278. package/dist/types/localization/index.d.ts.map +0 -1
  279. package/dist/types/localization/localeList.d.ts +0 -3
  280. package/dist/types/localization/localeList.d.ts.map +0 -1
  281. package/dist/types/transpiler/condition/index.d.ts.map +0 -1
  282. package/dist/types/transpiler/enumeration/index.d.ts.map +0 -1
  283. package/dist/types/transpiler/file/index.d.ts.map +0 -1
  284. package/dist/types/transpiler/gender/index.d.ts.map +0 -1
  285. package/dist/types/transpiler/index.d.ts.map +0 -1
  286. package/dist/types/transpiler/insertion/index.d.ts.map +0 -1
  287. package/dist/types/transpiler/markdown/index.d.ts.map +0 -1
  288. package/dist/types/transpiler/nesting/index.d.ts.map +0 -1
  289. package/dist/types/transpiler/translation/index.d.ts.map +0 -1
  290. package/dist/types/types/dictionary.d.ts +0 -307
  291. package/dist/types/types/dictionary.d.ts.map +0 -1
  292. package/dist/types/types/index.d.ts +0 -5
  293. package/dist/types/types/index.d.ts.map +0 -1
  294. package/dist/types/types/intlayer.d.ts +0 -5
  295. package/dist/types/types/intlayer.d.ts.map +0 -1
  296. package/dist/types/types/keyPath.d.ts +0 -47
  297. package/dist/types/types/keyPath.d.ts.map +0 -1
  298. package/dist/types/types/nodeType.d.ts +0 -30
  299. package/dist/types/types/nodeType.d.ts.map +0 -1
  300. package/dist/types/types/translation.d.ts +0 -25
  301. package/dist/types/types/translation.d.ts.map +0 -1
@@ -1,4 +1,6 @@
1
- import { getMultilingualUrls } from "./getMultilingualUrls.mjs";
1
+ import { checkIsURLAbsolute } from "../utils/checkIsURLAbsolute.mjs";
2
+ import { getPathWithoutLocale } from "./getPathWithoutLocale.mjs";
3
+ import { DefaultValues } from "@intlayer/config/client";
2
4
  import configuration from "@intlayer/config/built";
3
5
 
4
6
  //#region src/localization/getLocalizedUrl.ts
@@ -12,33 +14,54 @@ import configuration from "@intlayer/config/built";
12
14
  *
13
15
  * ```ts
14
16
  * // prefix-no-default mode
15
- * getLocalizedUrl('/about', 'fr', ['en', 'fr'], 'en', 'prefix-no-default');
17
+ * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' });
16
18
  * // Returns '/fr/about' for the French locale
17
19
  * // Returns '/about' for the English locale (default)
18
20
  *
19
21
  * // prefix-all mode
20
- * getLocalizedUrl('/about', 'en', ['en', 'fr'], 'en', 'prefix-all');
22
+ * getLocalizedUrl('/about', 'en', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' });
21
23
  * // Returns '/en/about' for the English locale
22
24
  * // Returns '/fr/about' for the French locale
23
25
  *
24
26
  * // search-params mode
25
- * getLocalizedUrl('/about', 'fr', ['en', 'fr'], 'en', 'search-params');
27
+ * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' });
26
28
  * // Returns '/about?locale=fr' for the French locale
27
29
  *
28
30
  * // no-prefix mode
29
- * getLocalizedUrl('/about', 'fr', ['en', 'fr'], 'en', 'no-prefix');
31
+ * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' });
30
32
  * // Returns '/about' for any locale
31
33
  * ```
32
34
  *
33
35
  * @param url - The original URL string to be processed.
34
36
  * @param currentLocale - The current locale.
35
- * @param locales - Optional array of supported locales. Defaults to configured locales.
36
- * @param defaultLocale - The default locale. Defaults to configured default locale.
37
- * @param mode - URL routing mode for locale handling. Defaults to configured mode.
37
+ * @param options - Configuration options
38
+ * @param options.locales - Optional array of supported locales. Defaults to configured locales.
39
+ * @param options.defaultLocale - The default locale. Defaults to configured default locale.
40
+ * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.
38
41
  * @returns The localized URL for the current locale.
39
42
  */
40
- const getLocalizedUrl = (url, currentLocale, locales = configuration?.internationalization?.locales, defaultLocale = configuration?.internationalization?.defaultLocale, mode = configuration?.routing?.mode) => {
41
- return getMultilingualUrls(url, locales, defaultLocale, mode)[currentLocale] ?? url;
43
+ const getLocalizedUrl = (url, currentLocale, options = {}) => {
44
+ const { locales = configuration?.internationalization?.locales ?? DefaultValues.Internationalization.LOCALES, defaultLocale = configuration?.internationalization?.defaultLocale ?? DefaultValues.Internationalization.DEFAULT_LOCALE, mode = configuration?.routing?.mode ?? DefaultValues.Routing.ROUTING_MODE } = options;
45
+ const urlWithoutLocale = getPathWithoutLocale(url, locales);
46
+ if (mode === "no-prefix") return urlWithoutLocale;
47
+ const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);
48
+ const parsedUrl = isAbsoluteUrl ? new URL(urlWithoutLocale) : new URL(urlWithoutLocale, "http://example.com");
49
+ let pathname = parsedUrl.pathname;
50
+ if (!pathname.startsWith("/")) pathname = `/${pathname}`;
51
+ const baseUrl = isAbsoluteUrl ? `${parsedUrl.protocol}//${parsedUrl.host}` : "";
52
+ if (mode === "search-params") {
53
+ const searchParams = new URLSearchParams(parsedUrl.search);
54
+ searchParams.set("locale", currentLocale.toString());
55
+ const queryString = searchParams.toString();
56
+ const pathWithQuery = queryString ? `${pathname}?${queryString}` : pathname;
57
+ if (isAbsoluteUrl) return `${baseUrl}${pathWithQuery}${parsedUrl.hash}`;
58
+ return `${pathWithQuery}${parsedUrl.hash}`;
59
+ }
60
+ const isDefaultLocale = currentLocale?.toString() === defaultLocale?.toString();
61
+ let localizedPath = mode === "prefix-all" || mode === "prefix-no-default" && !isDefaultLocale ? `/${currentLocale}${pathname}` : pathname;
62
+ if (localizedPath.length > 1 && localizedPath.endsWith("/")) localizedPath = localizedPath.slice(0, -1);
63
+ if (isAbsoluteUrl) return `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;
64
+ return `${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;
42
65
  };
43
66
 
44
67
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"getLocalizedUrl.mjs","names":[],"sources":["../../../src/localization/getLocalizedUrl.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/types';\nimport { getMultilingualUrls } from './getMultilingualUrls';\n\n/**\n * Generate URL by prefixing the given URL with the referenced locale or adding search parameters\n * based on the routing mode. Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode\n * getLocalizedUrl('/about', 'fr', ['en', 'fr'], 'en', 'prefix-no-default');\n * // Returns '/fr/about' for the French locale\n * // Returns '/about' for the English locale (default)\n *\n * // prefix-all mode\n * getLocalizedUrl('/about', 'en', ['en', 'fr'], 'en', 'prefix-all');\n * // Returns '/en/about' for the English locale\n * // Returns '/fr/about' for the French locale\n *\n * // search-params mode\n * getLocalizedUrl('/about', 'fr', ['en', 'fr'], 'en', 'search-params');\n * // Returns '/about?locale=fr' for the French locale\n *\n * // no-prefix mode\n * getLocalizedUrl('/about', 'fr', ['en', 'fr'], 'en', 'no-prefix');\n * // Returns '/about' for any locale\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param currentLocale - The current locale.\n * @param locales - Optional array of supported locales. Defaults to configured locales.\n * @param defaultLocale - The default locale. Defaults to configured default locale.\n * @param mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns The localized URL for the current locale.\n */\nexport const getLocalizedUrl = (\n url: string,\n currentLocale: LocalesValues,\n locales: LocalesValues[] | undefined = configuration?.internationalization\n ?.locales,\n defaultLocale: LocalesValues | undefined = configuration?.internationalization\n ?.defaultLocale,\n mode:\n | 'prefix-no-default'\n | 'prefix-all'\n | 'no-prefix'\n | 'search-params'\n | undefined = configuration?.routing?.mode\n): string => {\n // Get all multilingual URLs\n const urlWithoutLocale = getMultilingualUrls(\n url,\n locales,\n defaultLocale,\n mode\n );\n\n return (\n urlWithoutLocale[\n currentLocale as unknown as keyof typeof urlWithoutLocale\n ] ?? url\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,mBACX,KACA,eACA,UAAuC,eAAe,sBAClD,SACJ,gBAA2C,eAAe,sBACtD,eACJ,OAKgB,eAAe,SAAS,SAC7B;AASX,QAPyB,oBACvB,KACA,SACA,eACA,KACD,CAIG,kBACG"}
1
+ {"version":3,"file":"getLocalizedUrl.mjs","names":[],"sources":["../../../src/localization/getLocalizedUrl.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { DefaultValues } from '@intlayer/config/client';\nimport type { LocalesValues } from '@intlayer/types';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\nimport { getPathWithoutLocale } from './getPathWithoutLocale';\n\n/**\n * Generate URL by prefixing the given URL with the referenced locale or adding search parameters\n * based on the routing mode. Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode\n * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' });\n * // Returns '/fr/about' for the French locale\n * // Returns '/about' for the English locale (default)\n *\n * // prefix-all mode\n * getLocalizedUrl('/about', 'en', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' });\n * // Returns '/en/about' for the English locale\n * // Returns '/fr/about' for the French locale\n *\n * // search-params mode\n * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' });\n * // Returns '/about?locale=fr' for the French locale\n *\n * // no-prefix mode\n * getLocalizedUrl('/about', 'fr', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' });\n * // Returns '/about' for any locale\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param currentLocale - The current locale.\n * @param options - Configuration options\n * @param options.locales - Optional array of supported locales. Defaults to configured locales.\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns The localized URL for the current locale.\n */\nexport const getLocalizedUrl = (\n url: string,\n currentLocale: LocalesValues,\n options: {\n locales?: LocalesValues[];\n defaultLocale?: LocalesValues;\n mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';\n } = {}\n): string => {\n const {\n locales = configuration?.internationalization?.locales ??\n DefaultValues.Internationalization.LOCALES,\n defaultLocale = configuration?.internationalization?.defaultLocale ??\n DefaultValues.Internationalization.DEFAULT_LOCALE,\n mode = configuration?.routing?.mode ?? DefaultValues.Routing.ROUTING_MODE,\n } = options;\n // Remove any existing locale segment from the URL\n const urlWithoutLocale = getPathWithoutLocale(url, locales);\n\n if (mode === 'no-prefix') {\n // No locale prefixing\n return urlWithoutLocale;\n }\n\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);\n\n // Initialize a URL object if the URL is absolute\n // For relative URLs, use a dummy base to leverage the URL API\n const parsedUrl = isAbsoluteUrl\n ? new URL(urlWithoutLocale)\n : new URL(urlWithoutLocale, 'http://example.com');\n\n // Extract the pathname from the parsed URL\n let pathname = parsedUrl.pathname;\n\n // Ensure the pathname starts with a '/'\n if (!pathname.startsWith('/')) {\n pathname = `/${pathname}`;\n }\n\n // Prepare the base URL (protocol + host) if it's absolute\n const baseUrl = isAbsoluteUrl\n ? `${parsedUrl.protocol}//${parsedUrl.host}`\n : '';\n\n if (mode === 'search-params') {\n // Use search parameters for locale handling\n const searchParams = new URLSearchParams(parsedUrl.search);\n searchParams.set('locale', currentLocale.toString());\n\n const queryString = searchParams.toString();\n const pathWithQuery = queryString ? `${pathname}?${queryString}` : pathname;\n\n if (isAbsoluteUrl) {\n return `${baseUrl}${pathWithQuery}${parsedUrl.hash}`;\n }\n\n return `${pathWithQuery}${parsedUrl.hash}`;\n }\n\n // Prefix-based routing (prefix-all or prefix-no-default)\n const isDefaultLocale =\n currentLocale?.toString() === defaultLocale?.toString();\n\n const shouldPrefix =\n mode === 'prefix-all' || (mode === 'prefix-no-default' && !isDefaultLocale);\n\n // Construct the new pathname with or without the locale prefix\n let localizedPath = shouldPrefix ? `/${currentLocale}${pathname}` : pathname;\n\n // Remove trailing slash for non-root paths\n if (localizedPath.length > 1 && localizedPath.endsWith('/')) {\n localizedPath = localizedPath.slice(0, -1);\n }\n\n // Combine with the base URL if the original URL was absolute\n if (isAbsoluteUrl) {\n return `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;\n }\n\n return `${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAa,mBACX,KACA,eACA,UAII,EAAE,KACK;CACX,MAAM,EACJ,UAAU,eAAe,sBAAsB,WAC7C,cAAc,qBAAqB,SACrC,gBAAgB,eAAe,sBAAsB,iBACnD,cAAc,qBAAqB,gBACrC,OAAO,eAAe,SAAS,QAAQ,cAAc,QAAQ,iBAC3D;CAEJ,MAAM,mBAAmB,qBAAqB,KAAK,QAAQ;AAE3D,KAAI,SAAS,YAEX,QAAO;CAIT,MAAM,gBAAgB,mBAAmB,iBAAiB;CAI1D,MAAM,YAAY,gBACd,IAAI,IAAI,iBAAiB,GACzB,IAAI,IAAI,kBAAkB,qBAAqB;CAGnD,IAAI,WAAW,UAAU;AAGzB,KAAI,CAAC,SAAS,WAAW,IAAI,CAC3B,YAAW,IAAI;CAIjB,MAAM,UAAU,gBACZ,GAAG,UAAU,SAAS,IAAI,UAAU,SACpC;AAEJ,KAAI,SAAS,iBAAiB;EAE5B,MAAM,eAAe,IAAI,gBAAgB,UAAU,OAAO;AAC1D,eAAa,IAAI,UAAU,cAAc,UAAU,CAAC;EAEpD,MAAM,cAAc,aAAa,UAAU;EAC3C,MAAM,gBAAgB,cAAc,GAAG,SAAS,GAAG,gBAAgB;AAEnE,MAAI,cACF,QAAO,GAAG,UAAU,gBAAgB,UAAU;AAGhD,SAAO,GAAG,gBAAgB,UAAU;;CAItC,MAAM,kBACJ,eAAe,UAAU,KAAK,eAAe,UAAU;CAMzD,IAAI,gBAHF,SAAS,gBAAiB,SAAS,uBAAuB,CAAC,kBAG1B,IAAI,gBAAgB,aAAa;AAGpE,KAAI,cAAc,SAAS,KAAK,cAAc,SAAS,IAAI,CACzD,iBAAgB,cAAc,MAAM,GAAG,GAAG;AAI5C,KAAI,cACF,QAAO,GAAG,UAAU,gBAAgB,UAAU,SAAS,UAAU;AAGnE,QAAO,GAAG,gBAAgB,UAAU,SAAS,UAAU"}
@@ -1,6 +1,4 @@
1
- import { checkIsURLAbsolute } from "../utils/checkIsURLAbsolute.mjs";
2
- import { getPathWithoutLocale } from "./getPathWithoutLocale.mjs";
3
- import { DefaultValues } from "@intlayer/config/client";
1
+ import { getLocalizedUrl } from "./getLocalizedUrl.mjs";
4
2
  import configuration from "@intlayer/config/built";
5
3
 
6
4
  //#region src/localization/getMultilingualUrls.ts
@@ -15,52 +13,37 @@ import configuration from "@intlayer/config/built";
15
13
  *
16
14
  * ```ts
17
15
  * // prefix-no-default mode
18
- * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'prefix-no-default')
16
+ * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' })
19
17
  * // Returns { en: '/dashboard', fr: '/fr/dashboard' }
20
18
  *
21
19
  * // prefix-all mode
22
- * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'prefix-all')
20
+ * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' })
23
21
  * // Returns { en: '/en/dashboard', fr: '/fr/dashboard' }
24
22
  *
25
23
  * // search-params mode
26
- * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'search-params')
24
+ * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' })
27
25
  * // Returns { en: '/dashboard?locale=en', fr: '/dashboard?locale=fr' }
28
26
  *
29
27
  * // no-prefix mode
30
- * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'no-prefix')
28
+ * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' })
31
29
  * // Returns { en: '/dashboard', fr: '/dashboard' }
32
30
  * ```
33
31
  *
34
32
  * @param url - The original URL string to be processed.
35
- * @param locales - Optional array of supported locales. Defaults to configured locales.
36
- * @param defaultLocale - The default locale. Defaults to configured default locale.
37
- * @param mode - URL routing mode for locale handling. Defaults to configured mode.
33
+ * @param options - Configuration options
34
+ * @param options.locales - Optional array of supported locales. Defaults to configured locales.
35
+ * @param options.defaultLocale - The default locale. Defaults to configured default locale.
36
+ * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.
38
37
  * @returns An object mapping each locale to its corresponding multilingual URL.
39
38
  */
40
- const getMultilingualUrls = (url, locales = configuration?.internationalization?.locales, defaultLocale = configuration?.internationalization?.defaultLocale, mode = configuration?.routing?.mode) => {
41
- const urlWithoutLocale = getPathWithoutLocale(url, locales);
42
- const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);
43
- const parsedUrl = isAbsoluteUrl ? new URL(urlWithoutLocale) : new URL(urlWithoutLocale, "http://example.com");
44
- let pathname = parsedUrl.pathname;
45
- if (!pathname.startsWith("/")) pathname = `/${pathname}`;
46
- const baseUrl = isAbsoluteUrl ? `${parsedUrl.protocol}//${parsedUrl.host}` : "";
47
- const routingMode = mode ?? DefaultValues.Routing.ROUTING_MODE;
39
+ const getMultilingualUrls = (url, options = {}) => {
40
+ const { locales = configuration?.internationalization?.locales, defaultLocale = configuration?.internationalization?.defaultLocale, mode = configuration?.routing?.mode } = options;
48
41
  return (locales ?? []).reduce((acc, locale) => {
49
- const isDefaultLocale = locale?.toString() === defaultLocale?.toString();
50
- let localizedUrl;
51
- if (routingMode === "search-params") {
52
- const searchParams = new URLSearchParams(parsedUrl.search);
53
- searchParams.set("locale", locale.toString());
54
- const queryString = searchParams.toString();
55
- const pathWithQuery = queryString ? `${pathname}?${queryString}` : pathname;
56
- localizedUrl = isAbsoluteUrl ? `${baseUrl}${pathWithQuery}${parsedUrl.hash}` : `${pathWithQuery}${parsedUrl.hash}`;
57
- } else if (routingMode === "no-prefix") localizedUrl = isAbsoluteUrl ? `${baseUrl}${pathname}${parsedUrl.search}${parsedUrl.hash}` : `${pathname}${parsedUrl.search}${parsedUrl.hash}`;
58
- else {
59
- let localizedPath = routingMode === "prefix-all" || routingMode === "prefix-no-default" && !isDefaultLocale ? `/${locale}${pathname}` : pathname;
60
- if (localizedPath.length > 1 && localizedPath.endsWith("/")) localizedPath = localizedPath.slice(0, -1);
61
- localizedUrl = isAbsoluteUrl ? `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}` : `${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;
62
- }
63
- acc[locale] = localizedUrl;
42
+ acc[locale] = getLocalizedUrl(url, locale, {
43
+ locales,
44
+ defaultLocale,
45
+ mode
46
+ });
64
47
  return acc;
65
48
  }, {});
66
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getMultilingualUrls.mjs","names":["localizedUrl: string"],"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport { DefaultValues } from '@intlayer/config/client';\nimport type { LocalesValues, StrictModeLocaleMap } from '@intlayer/types';\nimport { checkIsURLAbsolute } from '../utils/checkIsURLAbsolute';\nimport { getPathWithoutLocale } from './getPathWithoutLocale';\n\n/**\n * Generates multilingual URLs by prefixing the given URL with each supported locale\n * or adding search parameters based on the routing mode.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode\n * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'prefix-no-default')\n * // Returns { en: '/dashboard', fr: '/fr/dashboard' }\n *\n * // prefix-all mode\n * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'prefix-all')\n * // Returns { en: '/en/dashboard', fr: '/fr/dashboard' }\n *\n * // search-params mode\n * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'search-params')\n * // Returns { en: '/dashboard?locale=en', fr: '/dashboard?locale=fr' }\n *\n * // no-prefix mode\n * getMultilingualUrls('/dashboard', ['en', 'fr'], 'en', 'no-prefix')\n * // Returns { en: '/dashboard', fr: '/dashboard' }\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param locales - Optional array of supported locales. Defaults to configured locales.\n * @param defaultLocale - The default locale. Defaults to configured default locale.\n * @param mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getMultilingualUrls = (\n url: string,\n locales: LocalesValues[] | undefined = configuration?.internationalization\n ?.locales,\n defaultLocale: LocalesValues | undefined = configuration?.internationalization\n ?.defaultLocale,\n mode:\n | 'prefix-no-default'\n | 'prefix-all'\n | 'no-prefix'\n | 'search-params'\n | undefined = configuration?.routing?.mode\n): StrictModeLocaleMap<string> => {\n // Remove any existing locale segment from the URL\n const urlWithoutLocale = getPathWithoutLocale(url, locales);\n\n // Determine if the original URL is absolute (includes protocol)\n const isAbsoluteUrl = checkIsURLAbsolute(urlWithoutLocale);\n\n // Initialize a URL object if the URL is absolute\n // For relative URLs, use a dummy base to leverage the URL API\n const parsedUrl = isAbsoluteUrl\n ? new URL(urlWithoutLocale)\n : new URL(urlWithoutLocale, 'http://example.com');\n\n // Extract the pathname from the parsed URL\n let pathname = parsedUrl.pathname;\n\n // Ensure the pathname starts with a '/'\n if (!pathname.startsWith('/')) {\n pathname = `/${pathname}`;\n }\n\n // Prepare the base URL (protocol + host) if it's absolute\n const baseUrl = isAbsoluteUrl\n ? `${parsedUrl.protocol}//${parsedUrl.host}`\n : '';\n\n // Default mode to 'prefix-no-default' if not provided\n const routingMode = mode ?? DefaultValues.Routing.ROUTING_MODE;\n\n // Generate multilingual URLs by iterating over each locale\n const multilingualUrls = (locales ?? []).reduce<StrictModeLocaleMap<string>>(\n (acc, locale) => {\n // Determine if the current locale is the default locale\n const isDefaultLocale = locale?.toString() === defaultLocale?.toString();\n\n let localizedUrl: string;\n\n if (routingMode === 'search-params') {\n // Use search parameters for locale handling\n const searchParams = new URLSearchParams(parsedUrl.search);\n searchParams.set('locale', locale.toString());\n\n const queryString = searchParams.toString();\n const pathWithQuery = queryString\n ? `${pathname}?${queryString}`\n : pathname;\n\n localizedUrl = isAbsoluteUrl\n ? `${baseUrl}${pathWithQuery}${parsedUrl.hash}`\n : `${pathWithQuery}${parsedUrl.hash}`;\n } else if (routingMode === 'no-prefix') {\n // No locale prefixing\n localizedUrl = isAbsoluteUrl\n ? `${baseUrl}${pathname}${parsedUrl.search}${parsedUrl.hash}`\n : `${pathname}${parsedUrl.search}${parsedUrl.hash}`;\n } else {\n // Handle prefix-based modes (prefix-all or prefix-no-default)\n const shouldPrefix =\n routingMode === 'prefix-all' ||\n (routingMode === 'prefix-no-default' && !isDefaultLocale);\n\n // Construct the new pathname with or without the locale prefix\n let localizedPath = shouldPrefix ? `/${locale}${pathname}` : pathname;\n\n if (localizedPath.length > 1 && localizedPath.endsWith('/')) {\n localizedPath = localizedPath.slice(0, -1);\n }\n\n // Combine with the base URL if the original URL was absolute\n localizedUrl = isAbsoluteUrl\n ? `${baseUrl}${localizedPath}${parsedUrl.search}${parsedUrl.hash}`\n : `${localizedPath}${parsedUrl.search}${parsedUrl.hash}`;\n }\n\n // Assign the constructed URL to the corresponding locale key\n acc[locale as unknown as keyof typeof acc] = localizedUrl;\n\n return acc;\n },\n {} as StrictModeLocaleMap<string>\n );\n\n return multilingualUrls;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,uBACX,KACA,UAAuC,eAAe,sBAClD,SACJ,gBAA2C,eAAe,sBACtD,eACJ,OAKgB,eAAe,SAAS,SACR;CAEhC,MAAM,mBAAmB,qBAAqB,KAAK,QAAQ;CAG3D,MAAM,gBAAgB,mBAAmB,iBAAiB;CAI1D,MAAM,YAAY,gBACd,IAAI,IAAI,iBAAiB,GACzB,IAAI,IAAI,kBAAkB,qBAAqB;CAGnD,IAAI,WAAW,UAAU;AAGzB,KAAI,CAAC,SAAS,WAAW,IAAI,CAC3B,YAAW,IAAI;CAIjB,MAAM,UAAU,gBACZ,GAAG,UAAU,SAAS,IAAI,UAAU,SACpC;CAGJ,MAAM,cAAc,QAAQ,cAAc,QAAQ;AAuDlD,SApD0B,WAAW,EAAE,EAAE,QACtC,KAAK,WAAW;EAEf,MAAM,kBAAkB,QAAQ,UAAU,KAAK,eAAe,UAAU;EAExE,IAAIA;AAEJ,MAAI,gBAAgB,iBAAiB;GAEnC,MAAM,eAAe,IAAI,gBAAgB,UAAU,OAAO;AAC1D,gBAAa,IAAI,UAAU,OAAO,UAAU,CAAC;GAE7C,MAAM,cAAc,aAAa,UAAU;GAC3C,MAAM,gBAAgB,cAClB,GAAG,SAAS,GAAG,gBACf;AAEJ,kBAAe,gBACX,GAAG,UAAU,gBAAgB,UAAU,SACvC,GAAG,gBAAgB,UAAU;aACxB,gBAAgB,YAEzB,gBAAe,gBACX,GAAG,UAAU,WAAW,UAAU,SAAS,UAAU,SACrD,GAAG,WAAW,UAAU,SAAS,UAAU;OAC1C;GAOL,IAAI,gBAJF,gBAAgB,gBACf,gBAAgB,uBAAuB,CAAC,kBAGR,IAAI,SAAS,aAAa;AAE7D,OAAI,cAAc,SAAS,KAAK,cAAc,SAAS,IAAI,CACzD,iBAAgB,cAAc,MAAM,GAAG,GAAG;AAI5C,kBAAe,gBACX,GAAG,UAAU,gBAAgB,UAAU,SAAS,UAAU,SAC1D,GAAG,gBAAgB,UAAU,SAAS,UAAU;;AAItD,MAAI,UAAyC;AAE7C,SAAO;IAET,EAAE,CACH"}
1
+ {"version":3,"file":"getMultilingualUrls.mjs","names":[],"sources":["../../../src/localization/getMultilingualUrls.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues, StrictModeLocaleMap } from '@intlayer/types';\nimport { getLocalizedUrl } from './getLocalizedUrl';\n\n/**\n * Generates multilingual URLs by prefixing the given URL with each supported locale\n * or adding search parameters based on the routing mode.\n * Handles both absolute and relative URLs appropriately.\n *\n * This function gets the locales, default locale, and routing mode from the configuration if not provided.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns { en: '/dashboard', fr: '/fr/dashboard' }\n *\n * // prefix-all mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'prefix-all' })\n * // Returns { en: '/en/dashboard', fr: '/fr/dashboard' }\n *\n * // search-params mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'search-params' })\n * // Returns { en: '/dashboard?locale=en', fr: '/dashboard?locale=fr' }\n *\n * // no-prefix mode\n * getMultilingualUrls('/dashboard', { locales: ['en', 'fr'], defaultLocale: 'en', mode: 'no-prefix' })\n * // Returns { en: '/dashboard', fr: '/dashboard' }\n * ```\n *\n * @param url - The original URL string to be processed.\n * @param options - Configuration options\n * @param options.locales - Optional array of supported locales. Defaults to configured locales.\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @returns An object mapping each locale to its corresponding multilingual URL.\n */\nexport const getMultilingualUrls = (\n url: string,\n options: {\n locales?: LocalesValues[];\n defaultLocale?: LocalesValues;\n mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';\n } = {}\n): StrictModeLocaleMap<string> => {\n const {\n locales = configuration?.internationalization?.locales,\n defaultLocale = configuration?.internationalization?.defaultLocale,\n mode = configuration?.routing?.mode,\n } = options;\n\n // Generate multilingual URLs by iterating over each locale and calling getLocalizedUrl\n const multilingualUrls = (locales ?? []).reduce<StrictModeLocaleMap<string>>(\n (acc, locale) => {\n // Get the localized URL for this locale\n const localizedUrl = getLocalizedUrl(url, locale, {\n locales,\n defaultLocale,\n mode,\n });\n\n // Assign the constructed URL to the corresponding locale key\n acc[locale as unknown as keyof typeof acc] = localizedUrl;\n\n return acc;\n },\n {} as StrictModeLocaleMap<string>\n );\n\n return multilingualUrls;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,MAAa,uBACX,KACA,UAII,EAAE,KAC0B;CAChC,MAAM,EACJ,UAAU,eAAe,sBAAsB,SAC/C,gBAAgB,eAAe,sBAAsB,eACrD,OAAO,eAAe,SAAS,SAC7B;AAoBJ,SAjB0B,WAAW,EAAE,EAAE,QACtC,KAAK,WAAW;AASf,MAAI,UAPiB,gBAAgB,KAAK,QAAQ;GAChD;GACA;GACA;GACD,CAAC;AAKF,SAAO;IAET,EAAE,CACH"}
@@ -0,0 +1,45 @@
1
+ import configuration from "@intlayer/config/built";
2
+
3
+ //#region src/localization/getPrefix.ts
4
+ /**
5
+ * Determines the URL prefix for a given locale based on the routing mode configuration.
6
+ *
7
+ * Example:
8
+ *
9
+ * ```ts
10
+ * // prefix-no-default mode with default locale
11
+ * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-no-default' })
12
+ * // Returns ''
13
+ *
14
+ * // prefix-no-default mode with non-default locale
15
+ * getPrefix('fr', { defaultLocale: 'en', mode: 'prefix-no-default' })
16
+ * // Returns 'en/'
17
+ *
18
+ * // prefix-all mode
19
+ * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-all' })
20
+ * // Returns 'en/'
21
+ *
22
+ * // search-params mode
23
+ * getPrefix('en', { defaultLocale: 'en', mode: 'search-params' })
24
+ * // Returns ''
25
+ *
26
+ * // no-prefix mode
27
+ * getPrefix('en', { defaultLocale: 'en', mode: 'no-prefix' })
28
+ * // Returns ''
29
+ * ```
30
+ *
31
+ * @param locale - The locale to check for prefix. If not provided, uses configured default locale.
32
+ * @param options - Configuration options
33
+ * @param options.defaultLocale - The default locale. Defaults to configured default locale.
34
+ * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.
35
+ * @param options.addSlash - Whether to add a trailing slash to the prefix. Defaults to true.
36
+ * @returns The prefix string for the given locale (e.g., 'en/', 'fr/') or an empty string.
37
+ */
38
+ const getPrefix = (locale, options = {}) => {
39
+ const { defaultLocale = configuration?.internationalization?.defaultLocale, mode = configuration?.routing?.mode, addSlash = true } = options;
40
+ return mode === "prefix-all" || mode === "prefix-no-default" && defaultLocale !== locale ? `${defaultLocale}${addSlash ? "/" : ""}` : "";
41
+ };
42
+
43
+ //#endregion
44
+ export { getPrefix };
45
+ //# sourceMappingURL=getPrefix.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPrefix.mjs","names":[],"sources":["../../../src/localization/getPrefix.ts"],"sourcesContent":["import configuration from '@intlayer/config/built';\nimport type { LocalesValues } from '@intlayer/types';\n\n/**\n * Determines the URL prefix for a given locale based on the routing mode configuration.\n *\n * Example:\n *\n * ```ts\n * // prefix-no-default mode with default locale\n * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns ''\n *\n * // prefix-no-default mode with non-default locale\n * getPrefix('fr', { defaultLocale: 'en', mode: 'prefix-no-default' })\n * // Returns 'en/'\n *\n * // prefix-all mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'prefix-all' })\n * // Returns 'en/'\n *\n * // search-params mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'search-params' })\n * // Returns ''\n *\n * // no-prefix mode\n * getPrefix('en', { defaultLocale: 'en', mode: 'no-prefix' })\n * // Returns ''\n * ```\n *\n * @param locale - The locale to check for prefix. If not provided, uses configured default locale.\n * @param options - Configuration options\n * @param options.defaultLocale - The default locale. Defaults to configured default locale.\n * @param options.mode - URL routing mode for locale handling. Defaults to configured mode.\n * @param options.addSlash - Whether to add a trailing slash to the prefix. Defaults to true.\n * @returns The prefix string for the given locale (e.g., 'en/', 'fr/') or an empty string.\n */\nexport const getPrefix = (\n locale?: LocalesValues,\n options: {\n defaultLocale?: LocalesValues;\n mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';\n addSlash?: boolean;\n } = {}\n): string => {\n const {\n defaultLocale = configuration?.internationalization?.defaultLocale,\n mode = configuration?.routing?.mode,\n addSlash = true,\n } = options;\n\n // Handle prefix-based modes (prefix-all or prefix-no-default)\n const shouldPrefix =\n mode === 'prefix-all' ||\n (mode === 'prefix-no-default' && defaultLocale !== locale);\n\n return shouldPrefix ? `${defaultLocale}${addSlash ? '/' : ''}` : '';\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,MAAa,aACX,QACA,UAII,EAAE,KACK;CACX,MAAM,EACJ,gBAAgB,eAAe,sBAAsB,eACrD,OAAO,eAAe,SAAS,MAC/B,WAAW,SACT;AAOJ,QAHE,SAAS,gBACR,SAAS,uBAAuB,kBAAkB,SAE/B,GAAG,gBAAgB,WAAW,MAAM,OAAO"}
@@ -6,8 +6,9 @@ import { getLocaleFromPath } from "./getLocaleFromPath.mjs";
6
6
  import { getLocaleLang } from "./getLocaleLang.mjs";
7
7
  import { getLocaleName } from "./getLocaleName.mjs";
8
8
  import { getPathWithoutLocale } from "./getPathWithoutLocale.mjs";
9
- import { getMultilingualUrls } from "./getMultilingualUrls.mjs";
10
9
  import { getLocalizedUrl } from "./getLocalizedUrl.mjs";
10
+ import { getMultilingualUrls } from "./getMultilingualUrls.mjs";
11
+ import { getPrefix } from "./getPrefix.mjs";
11
12
  import { localeFlatMap, localeMap, localeRecord } from "./localeMapper.mjs";
12
13
 
13
- export { getBrowserLocale, getHTMLTextDir, getLocaleFromPath, getLocaleLang, getLocaleName, getLocalizedUrl, getMultilingualUrls, getPathWithoutLocale, localeDetector, localeFlatMap, localeMap, localeRecord, localeResolver, localeStorageOptions };
14
+ export { getBrowserLocale, getHTMLTextDir, getLocaleFromPath, getLocaleLang, getLocaleName, getLocalizedUrl, getMultilingualUrls, getPathWithoutLocale, getPrefix, localeDetector, localeFlatMap, localeMap, localeRecord, localeResolver, localeStorageOptions };
@@ -0,0 +1,14 @@
1
+ //#region ../types/dist/esm/_virtual/rolldown_runtime.mjs
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (all) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ return target;
10
+ };
11
+
12
+ //#endregion
13
+ export { __export };
14
+ //# sourceMappingURL=rolldown_runtime.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolldown_runtime.mjs","names":[],"sources":["../../../../../../../types/dist/esm/_virtual/rolldown_runtime.mjs"],"sourcesContent":["//#region rolldown:runtime\nvar __defProp = Object.defineProperty;\nvar __export = (all) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\treturn target;\n};\n\n//#endregion\nexport { __export };"],"mappings":";AACA,IAAI,YAAY,OAAO;AACvB,IAAI,YAAY,QAAQ;CACvB,IAAI,SAAS,EAAE;AACf,MAAK,IAAI,QAAQ,IAAK,WAAU,QAAQ,MAAM;EAC7C,KAAK,IAAI;EACT,YAAY;EACZ,CAAC;AACF,QAAO"}