intor 2.2.14 → 2.3.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 (246) hide show
  1. package/dist/exports/config/index.d.ts +2 -0
  2. package/dist/exports/config/index.js +4 -0
  3. package/dist/exports/index.d.ts +5 -0
  4. package/dist/exports/index.js +11 -0
  5. package/dist/exports/next/index.d.ts +3 -0
  6. package/dist/exports/next/index.js +9 -0
  7. package/dist/exports/next/proxy/index.d.ts +2 -0
  8. package/dist/exports/next/proxy/index.js +2 -0
  9. package/dist/exports/next/server/index.d.ts +2 -0
  10. package/dist/exports/next/server/index.js +2 -0
  11. package/dist/exports/react/index.d.ts +2 -0
  12. package/dist/exports/react/index.js +6 -0
  13. package/dist/exports/server/index.d.ts +2 -0
  14. package/dist/exports/server/index.js +7 -0
  15. package/dist/src/adapters/next/navigation/index.d.ts +4 -0
  16. package/dist/src/adapters/next/navigation/link.d.ts +16 -0
  17. package/dist/src/adapters/next/navigation/link.js +25 -0
  18. package/dist/src/adapters/next/navigation/redirect.d.ts +16 -0
  19. package/dist/src/adapters/next/navigation/redirect.js +36 -0
  20. package/dist/src/adapters/next/navigation/use-pathname.d.ts +17 -0
  21. package/dist/src/adapters/next/navigation/use-pathname.js +49 -0
  22. package/dist/src/adapters/next/navigation/use-router.d.ts +20 -0
  23. package/dist/src/adapters/next/navigation/use-router.js +31 -0
  24. package/dist/src/adapters/next/navigation/utils/should-full-reload.d.ts +7 -0
  25. package/dist/src/adapters/next/navigation/utils/should-full-reload.js +19 -0
  26. package/dist/src/adapters/next/navigation/utils/use-locale-switch.d.ts +16 -0
  27. package/dist/src/adapters/next/navigation/utils/use-locale-switch.js +58 -0
  28. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-all.d.ts +12 -0
  29. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-all.js +60 -0
  30. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-except-default.d.ts +16 -0
  31. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-except-default.js +81 -0
  32. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-none.d.ts +10 -0
  33. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-none.js +22 -0
  34. package/dist/src/adapters/next/proxy/index.d.ts +2 -0
  35. package/dist/src/adapters/next/proxy/intor-proxy.d.ts +6 -0
  36. package/dist/src/adapters/next/proxy/intor-proxy.js +22 -0
  37. package/dist/src/adapters/next/proxy/utils/create-response.d.ts +17 -0
  38. package/dist/src/adapters/next/proxy/utils/create-response.js +42 -0
  39. package/dist/src/adapters/next/proxy/utils/determine-initial-locale.d.ts +8 -0
  40. package/dist/src/adapters/next/proxy/utils/determine-initial-locale.js +28 -0
  41. package/dist/src/adapters/next/proxy/utils/set-locale-cookie-edge.d.ts +15 -0
  42. package/dist/src/adapters/next/proxy/utils/set-locale-cookie-edge.js +24 -0
  43. package/dist/src/adapters/next/proxy/utils/set-pathname-header.d.ts +12 -0
  44. package/dist/src/adapters/next/proxy/utils/set-pathname-header.js +13 -0
  45. package/dist/src/adapters/next/server/get-i18n-context.d.ts +9 -0
  46. package/dist/src/adapters/next/server/get-i18n-context.js +47 -0
  47. package/dist/src/adapters/next/server/get-translator.d.ts +30 -0
  48. package/dist/src/adapters/next/server/get-translator.js +19 -0
  49. package/dist/src/adapters/next/server/index.d.ts +2 -0
  50. package/dist/src/adapters/next/shared/constants/pathname-header-name.d.ts +1 -0
  51. package/dist/src/adapters/next/shared/constants/pathname-header-name.js +4 -0
  52. package/dist/src/adapters/next/shared/utils/locale-prefix-pathname.d.ts +16 -0
  53. package/dist/src/adapters/next/shared/utils/locale-prefix-pathname.js +33 -0
  54. package/dist/src/adapters/next/shared/utils/localize-pathname.d.ts +18 -0
  55. package/dist/src/adapters/next/shared/utils/localize-pathname.js +36 -0
  56. package/dist/src/client/react/contexts/config/context.d.ts +3 -0
  57. package/dist/src/client/react/contexts/config/context.js +6 -0
  58. package/dist/src/client/react/contexts/config/hook.d.ts +2 -0
  59. package/dist/src/client/react/contexts/config/hook.js +12 -0
  60. package/dist/src/client/react/contexts/config/index.d.ts +2 -0
  61. package/dist/src/client/react/contexts/config/provider.d.ts +2 -0
  62. package/dist/src/client/react/contexts/config/provider.js +11 -0
  63. package/dist/src/client/react/contexts/config/types.d.ts +10 -0
  64. package/dist/src/client/react/contexts/intor-provider/index.d.ts +2 -0
  65. package/dist/src/client/react/contexts/intor-provider/intor-provider.d.ts +2 -0
  66. package/dist/src/client/react/contexts/intor-provider/intor-provider.js +17 -0
  67. package/dist/src/client/react/contexts/intor-provider/types.d.ts +14 -0
  68. package/dist/src/client/react/contexts/locale/context.d.ts +3 -0
  69. package/dist/src/client/react/contexts/locale/context.js +6 -0
  70. package/dist/src/client/react/contexts/locale/hook.d.ts +1 -0
  71. package/dist/src/client/react/contexts/locale/hook.js +12 -0
  72. package/dist/src/client/react/contexts/locale/index.d.ts +2 -0
  73. package/dist/src/client/react/contexts/locale/provider.d.ts +3 -0
  74. package/dist/src/client/react/contexts/locale/provider.js +48 -0
  75. package/dist/src/client/react/contexts/locale/types.d.ts +13 -0
  76. package/dist/src/client/react/contexts/locale/utils/change-locale.d.ts +22 -0
  77. package/dist/src/client/react/contexts/locale/utils/change-locale.js +35 -0
  78. package/dist/src/client/react/contexts/locale/utils/use-init-locale-cookie.d.ts +8 -0
  79. package/dist/src/client/react/contexts/locale/utils/use-init-locale-cookie.js +28 -0
  80. package/dist/src/client/react/contexts/messages/context.d.ts +3 -0
  81. package/dist/src/client/react/contexts/messages/context.js +6 -0
  82. package/dist/src/client/react/contexts/messages/hook.d.ts +2 -0
  83. package/dist/src/client/react/contexts/messages/hook.js +12 -0
  84. package/dist/src/client/react/contexts/messages/index.d.ts +2 -0
  85. package/dist/src/client/react/contexts/messages/provider.d.ts +3 -0
  86. package/dist/src/client/react/contexts/messages/provider.js +32 -0
  87. package/dist/src/client/react/contexts/messages/types.d.ts +15 -0
  88. package/dist/src/client/react/contexts/messages/utils/use-refetch-messages.d.ts +16 -0
  89. package/dist/src/client/react/contexts/messages/utils/use-refetch-messages.js +57 -0
  90. package/dist/src/client/react/contexts/translate-handlers/context.d.ts +2 -0
  91. package/dist/src/client/react/contexts/translate-handlers/context.js +6 -0
  92. package/dist/src/client/react/contexts/translate-handlers/hook.d.ts +2 -0
  93. package/dist/src/client/react/contexts/translate-handlers/hook.js +10 -0
  94. package/dist/src/client/react/contexts/translate-handlers/index.d.ts +3 -0
  95. package/dist/src/client/react/contexts/translate-handlers/provider.d.ts +2 -0
  96. package/dist/src/client/react/contexts/translate-handlers/provider.js +11 -0
  97. package/dist/src/client/react/contexts/translate-handlers/types.d.ts +7 -0
  98. package/dist/src/client/react/contexts/translator/context.d.ts +3 -0
  99. package/dist/src/client/react/contexts/translator/context.js +6 -0
  100. package/dist/src/client/react/contexts/translator/hook.d.ts +2 -0
  101. package/dist/src/client/react/contexts/translator/hook.js +12 -0
  102. package/dist/src/client/react/contexts/translator/index.d.ts +2 -0
  103. package/dist/src/client/react/contexts/translator/provider.d.ts +2 -0
  104. package/dist/src/client/react/contexts/translator/provider.js +53 -0
  105. package/dist/src/client/react/contexts/translator/types.d.ts +11 -0
  106. package/dist/src/client/react/hooks/use-translator.d.ts +12 -0
  107. package/dist/src/client/react/hooks/use-translator.js +38 -0
  108. package/dist/src/client/react/index.d.ts +4 -0
  109. package/dist/src/client/shared/utils/get-initial-locale.d.ts +11 -0
  110. package/dist/src/client/shared/utils/get-initial-locale.js +21 -0
  111. package/dist/src/config/constants/cache.constants.d.ts +2 -0
  112. package/dist/src/config/constants/cache.constants.js +7 -0
  113. package/dist/src/config/constants/cookie.constants.d.ts +2 -0
  114. package/dist/src/config/constants/cookie.constants.js +14 -0
  115. package/dist/src/config/constants/routing.constants.d.ts +2 -0
  116. package/dist/src/config/constants/routing.constants.js +11 -0
  117. package/dist/src/config/define-intor-config.d.ts +2 -0
  118. package/dist/src/config/define-intor-config.js +34 -0
  119. package/dist/src/config/index.d.ts +5 -0
  120. package/dist/src/config/resolvers/resolve-cache-options.d.ts +2 -0
  121. package/dist/src/config/resolvers/resolve-cache-options.js +10 -0
  122. package/dist/src/config/resolvers/resolve-cookie-options.d.ts +11 -0
  123. package/dist/src/config/resolvers/resolve-cookie-options.js +19 -0
  124. package/dist/src/config/resolvers/resolve-fallback-locales.d.ts +3 -0
  125. package/dist/src/config/resolvers/resolve-fallback-locales.js +33 -0
  126. package/dist/src/config/resolvers/resolve-routing-options.d.ts +13 -0
  127. package/dist/src/config/resolvers/resolve-routing-options.js +28 -0
  128. package/dist/src/config/types/cache.types.d.ts +7 -0
  129. package/dist/src/config/types/cookie.types.d.ts +23 -0
  130. package/dist/src/config/types/intor-config.types.d.ts +41 -0
  131. package/dist/src/config/types/loader.types.d.ts +38 -0
  132. package/dist/src/config/types/logger.types.d.ts +7 -0
  133. package/dist/src/config/types/routing.types.d.ts +15 -0
  134. package/dist/src/config/types/translator.types.d.ts +4 -0
  135. package/dist/src/config/validators/validate-default-locale.d.ts +3 -0
  136. package/dist/src/config/validators/validate-default-locale.js +24 -0
  137. package/dist/src/config/validators/validate-supported-locales.d.ts +7 -0
  138. package/dist/src/config/validators/validate-supported-locales.js +22 -0
  139. package/dist/src/server/index.d.ts +4 -0
  140. package/dist/src/server/intor/index.d.ts +2 -0
  141. package/dist/src/server/intor/intor.d.ts +14 -0
  142. package/dist/src/server/intor/intor.js +67 -0
  143. package/dist/src/server/intor/types.d.ts +14 -0
  144. package/dist/src/server/messages/index.d.ts +7 -0
  145. package/dist/src/server/messages/load-local-messages/index.d.ts +2 -0
  146. package/dist/src/server/messages/load-local-messages/load-local-messages.d.ts +11 -0
  147. package/dist/src/server/messages/load-local-messages/load-local-messages.js +85 -0
  148. package/dist/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.d.ts +29 -0
  149. package/dist/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +95 -0
  150. package/dist/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/index.d.ts +1 -0
  151. package/dist/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/types.d.ts +15 -0
  152. package/dist/src/server/messages/load-local-messages/read-locale-messages/index.d.ts +2 -0
  153. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/index.d.ts +1 -0
  154. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.d.ts +34 -0
  155. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +85 -0
  156. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/types.d.ts +18 -0
  157. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.d.ts +6 -0
  158. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.js +12 -0
  159. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.d.ts +14 -0
  160. package/dist/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.js +21 -0
  161. package/dist/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.d.ts +10 -0
  162. package/dist/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +31 -0
  163. package/dist/src/server/messages/load-local-messages/read-locale-messages/types.d.ts +23 -0
  164. package/dist/src/server/messages/load-local-messages/types.d.ts +21 -0
  165. package/dist/src/server/messages/load-messages.d.ts +11 -0
  166. package/dist/src/server/messages/load-messages.js +77 -0
  167. package/dist/src/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.d.ts +9 -0
  168. package/dist/src/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +50 -0
  169. package/dist/src/server/messages/load-remote-messages/fetch-locale-messages/index.d.ts +1 -0
  170. package/dist/src/server/messages/load-remote-messages/fetch-locale-messages/types.d.ts +13 -0
  171. package/dist/src/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.d.ts +5 -0
  172. package/dist/src/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
  173. package/dist/src/server/messages/load-remote-messages/index.d.ts +2 -0
  174. package/dist/src/server/messages/load-remote-messages/load-remote-messages.d.ts +9 -0
  175. package/dist/src/server/messages/load-remote-messages/load-remote-messages.js +79 -0
  176. package/dist/src/server/messages/load-remote-messages/types.d.ts +20 -0
  177. package/dist/src/server/messages/shared/global-messages-pool.d.ts +15 -0
  178. package/dist/src/server/messages/shared/global-messages-pool.js +10 -0
  179. package/dist/src/server/messages/shared/types.d.ts +39 -0
  180. package/dist/src/server/messages/shared/utils/is-valid-messages.d.ts +15 -0
  181. package/dist/src/server/messages/shared/utils/is-valid-messages.js +36 -0
  182. package/dist/src/server/messages/types.d.ts +15 -0
  183. package/dist/src/server/shared/logger/get-logger.d.ts +11 -0
  184. package/dist/src/server/shared/logger/get-logger.js +34 -0
  185. package/dist/src/server/shared/logger/global-logger-pool.d.ts +15 -0
  186. package/dist/src/server/shared/logger/global-logger-pool.js +8 -0
  187. package/dist/src/server/translator/get-translator.d.ts +33 -0
  188. package/dist/src/server/translator/get-translator.js +39 -0
  189. package/dist/src/server/translator/index.d.ts +1 -0
  190. package/dist/src/shared/constants/prefix-placeholder.d.ts +1 -0
  191. package/dist/src/shared/constants/prefix-placeholder.js +4 -0
  192. package/dist/src/shared/error/index.d.ts +1 -0
  193. package/dist/src/shared/error/intor-error.d.ts +16 -0
  194. package/dist/src/shared/error/intor-error.js +21 -0
  195. package/dist/src/shared/types/generated.types.d.ts +30 -0
  196. package/dist/src/shared/types/translator-instance.types.d.ts +33 -0
  197. package/dist/src/shared/utils/client/build-cookie-string.d.ts +9 -0
  198. package/dist/src/shared/utils/client/build-cookie-string.js +33 -0
  199. package/dist/src/shared/utils/client/set-locale-cookie-browser.d.ts +13 -0
  200. package/dist/src/shared/utils/client/set-locale-cookie-browser.js +21 -0
  201. package/dist/src/shared/utils/index.d.ts +8 -0
  202. package/dist/src/shared/utils/locale/normalize-locale.d.ts +4 -0
  203. package/dist/src/shared/utils/locale/normalize-locale.js +42 -0
  204. package/dist/src/shared/utils/locale/resolve-preferred-locale.d.ts +5 -0
  205. package/dist/src/shared/utils/locale/resolve-preferred-locale.js +26 -0
  206. package/dist/src/shared/utils/merge-messages.d.ts +6 -0
  207. package/dist/src/shared/utils/merge-messages.js +13 -0
  208. package/dist/src/shared/utils/normalize-cache-key.d.ts +3 -0
  209. package/dist/src/shared/utils/normalize-cache-key.js +29 -0
  210. package/dist/src/shared/utils/pathname/extract-pathname.d.ts +28 -0
  211. package/dist/src/shared/utils/pathname/extract-pathname.js +58 -0
  212. package/dist/src/shared/utils/pathname/normalize-pathname.d.ts +12 -0
  213. package/dist/src/shared/utils/pathname/normalize-pathname.js +43 -0
  214. package/dist/src/shared/utils/pathname/standardize-pathname.d.ts +18 -0
  215. package/dist/src/shared/utils/pathname/standardize-pathname.js +30 -0
  216. package/dist/src/shared/utils/resolve-namespaces.d.ts +10 -0
  217. package/dist/src/shared/utils/resolve-namespaces.js +33 -0
  218. package/package.json +32 -30
  219. package/dist/config/index.cjs +0 -198
  220. package/dist/config/index.d.cts +0 -145
  221. package/dist/config/index.d.ts +0 -145
  222. package/dist/config/index.js +0 -193
  223. package/dist/index.cjs +0 -234
  224. package/dist/index.d.cts +0 -224
  225. package/dist/index.d.ts +0 -224
  226. package/dist/index.js +0 -214
  227. package/dist/next/index.cjs +0 -940
  228. package/dist/next/index.d.cts +0 -282
  229. package/dist/next/index.d.ts +0 -282
  230. package/dist/next/index.js +0 -907
  231. package/dist/next/middleware/index.cjs +0 -387
  232. package/dist/next/middleware/index.d.cts +0 -128
  233. package/dist/next/middleware/index.d.ts +0 -128
  234. package/dist/next/middleware/index.js +0 -384
  235. package/dist/next/server/index.cjs +0 -734
  236. package/dist/next/server/index.d.cts +0 -277
  237. package/dist/next/server/index.d.ts +0 -277
  238. package/dist/next/server/index.js +0 -723
  239. package/dist/react/index.cjs +0 -649
  240. package/dist/react/index.d.cts +0 -224
  241. package/dist/react/index.d.ts +0 -224
  242. package/dist/react/index.js +0 -620
  243. package/dist/server/index.cjs +0 -696
  244. package/dist/server/index.d.cts +0 -377
  245. package/dist/server/index.d.ts +0 -377
  246. package/dist/server/index.js +0 -680
package/dist/index.js DELETED
@@ -1,214 +0,0 @@
1
- import merge from 'lodash.merge';
2
- export { Translator } from 'intor-translator';
3
-
4
- // src/shared/constants/prefix-placeholder.ts
5
- var PREFIX_PLACEHOLDER = "{locale}";
6
- var mergeMessages = (staticMessages = {}, loadedMessages = {}) => {
7
- if (!loadedMessages) return { ...staticMessages };
8
- return merge({}, staticMessages, loadedMessages);
9
- };
10
-
11
- // src/shared/utils/normalize-cache-key.ts
12
- var CACHE_KEY_DELIMITER = "|";
13
- var sanitize = (k) => k.replaceAll(/[\u200B-\u200D\uFEFF]/g, "").replaceAll(/[\r\n]/g, "").trim();
14
- var normalizeCacheKey = (key, delimiter = CACHE_KEY_DELIMITER) => {
15
- if (key === null || key === void 0) return null;
16
- if (Array.isArray(key)) {
17
- if (key.length === 0) return null;
18
- const normalized = key.map((k) => {
19
- if (k === null) return "__null";
20
- if (k === void 0) return "__undefined";
21
- if (typeof k === "boolean") return k ? "__true" : "__false";
22
- return sanitize(String(k));
23
- });
24
- return normalized.join(delimiter);
25
- }
26
- if (typeof key === "boolean") return key ? "__true" : "__false";
27
- return String(key);
28
- };
29
-
30
- // src/shared/utils/resolve-namespaces.ts
31
- var resolveNamespaces = ({
32
- config,
33
- pathname
34
- }) => {
35
- const { loader } = config;
36
- const { routeNamespaces = {}, namespaces } = loader || {};
37
- if (Object.keys(routeNamespaces).length === 0 && !namespaces)
38
- return void 0;
39
- const standardizedPathname = standardizePathname({ config, pathname });
40
- const placeholderRemovedPathname = standardizedPathname.replace(
41
- `/${PREFIX_PLACEHOLDER}`,
42
- ""
43
- );
44
- const collected = [
45
- ...routeNamespaces.default || [],
46
- // default
47
- ...namespaces || [],
48
- // default
49
- ...routeNamespaces[standardizedPathname] || [],
50
- // exact match
51
- ...routeNamespaces[placeholderRemovedPathname] || []
52
- // exact match
53
- ];
54
- const prefixPatterns = Object.keys(routeNamespaces).filter(
55
- (pattern) => pattern.endsWith("/*")
56
- );
57
- for (const pattern of prefixPatterns) {
58
- const basePath = pattern.replace(/\/\*$/, "");
59
- if (standardizedPathname.startsWith(basePath) || placeholderRemovedPathname.startsWith(basePath)) {
60
- collected.push(...routeNamespaces[pattern] || []);
61
- }
62
- }
63
- return [...new Set(collected)];
64
- };
65
-
66
- // src/shared/utils/locale/normalize-locale.ts
67
- var toCanonical = (input) => {
68
- try {
69
- return Intl.getCanonicalLocales(input)[0]?.toLowerCase();
70
- } catch {
71
- return;
72
- }
73
- };
74
- var normalizeLocale = (locale = "", supportedLocales = []) => {
75
- if (!locale || supportedLocales.length === 0) return;
76
- const canonicalLocale = toCanonical(locale);
77
- if (!canonicalLocale) return;
78
- const supportedCanonicalMap = /* @__PURE__ */ new Map();
79
- for (const l of supportedLocales) {
80
- const normalized = toCanonical(l);
81
- if (normalized) {
82
- supportedCanonicalMap.set(normalized, l);
83
- }
84
- }
85
- if (supportedCanonicalMap.has(canonicalLocale)) {
86
- return supportedCanonicalMap.get(canonicalLocale);
87
- }
88
- const baseLang = canonicalLocale.split("-")[0];
89
- for (const [key, original] of supportedCanonicalMap) {
90
- const supportedBase = key.split("-")[0];
91
- if (supportedBase === baseLang) {
92
- return original;
93
- }
94
- }
95
- return;
96
- };
97
-
98
- // src/shared/utils/locale/resolve-preferred-locale.ts
99
- var resolvePreferredLocale = (acceptLanguageHeader, supportedLocales) => {
100
- if (!acceptLanguageHeader || !supportedLocales || supportedLocales.length === 0) {
101
- return;
102
- }
103
- const supportedLocalesSet = new Set(supportedLocales);
104
- const preferred = acceptLanguageHeader.split(",").map((part) => {
105
- const [lang, qValue] = part.split(";");
106
- const q = qValue ? Number.parseFloat(qValue.split("=")[1]) : 1;
107
- if (Number.isNaN(q)) {
108
- return { lang: lang.trim(), q: 0 };
109
- }
110
- return { lang: lang.trim(), q };
111
- }).toSorted((a, b) => b.q - a.q).find(({ lang }) => supportedLocalesSet.has(lang))?.lang;
112
- return preferred;
113
- };
114
-
115
- // src/shared/utils/pathname/normalize-pathname.ts
116
- var normalizePathname = (rawPathname, options = {}) => {
117
- const length = rawPathname.length;
118
- let start = 0;
119
- let end = length - 1;
120
- while (start <= end && (rawPathname.codePointAt(start) ?? 0) <= 32) start++;
121
- while (end >= start && (rawPathname.codePointAt(end) ?? 0) <= 32) end--;
122
- if (start > end) return "/";
123
- let result = "";
124
- let hasSlash = false;
125
- for (let i = start; i <= end; i++) {
126
- const char = rawPathname[i];
127
- if (char === "/") {
128
- if (!hasSlash) {
129
- hasSlash = true;
130
- }
131
- } else {
132
- result += hasSlash || result === "" ? "/" + char : char;
133
- hasSlash = false;
134
- }
135
- }
136
- if (options.removeLeadingSlash && result.startsWith("/")) {
137
- result = result.slice(1);
138
- }
139
- return result || "/";
140
- };
141
-
142
- // src/shared/utils/pathname/extract-pathname.ts
143
- var extractPathname = ({
144
- config,
145
- pathname: rawPathname
146
- }) => {
147
- const { routing, defaultLocale } = config;
148
- const { basePath, prefix } = routing;
149
- const normalizedPathname = normalizePathname(rawPathname);
150
- let prefixedPathname = normalizedPathname;
151
- if (basePath && normalizedPathname.startsWith(basePath + "/")) {
152
- prefixedPathname = normalizedPathname.slice(basePath.length) || "/";
153
- } else if (basePath && normalizedPathname === basePath) {
154
- prefixedPathname = "/";
155
- }
156
- const pathPart = prefixedPathname.split("/").find(Boolean);
157
- const maybeLocale = pathPart || "";
158
- const isLocalePrefixed = config.supportedLocales?.includes(maybeLocale);
159
- let unprefixedPathname = prefixedPathname;
160
- if (prefix === "all") {
161
- if (isLocalePrefixed) {
162
- unprefixedPathname = prefixedPathname.slice(maybeLocale.length + 1) || "/";
163
- }
164
- } else if (prefix === "except-default") {
165
- if (maybeLocale && maybeLocale !== defaultLocale && isLocalePrefixed) {
166
- unprefixedPathname = prefixedPathname.slice(maybeLocale.length + 1) || "/";
167
- }
168
- }
169
- return {
170
- basePath,
171
- prefixedPathname,
172
- unprefixedPathname,
173
- maybeLocale,
174
- isLocalePrefixed: Boolean(isLocalePrefixed)
175
- };
176
- };
177
-
178
- // src/shared/utils/pathname/standardize-pathname.ts
179
- var standardizePathname = ({
180
- config,
181
- pathname
182
- }) => {
183
- const { routing } = config;
184
- const { basePath } = routing;
185
- const parts = [
186
- normalizePathname(basePath),
187
- PREFIX_PLACEHOLDER,
188
- normalizePathname(pathname)
189
- ];
190
- const standardizedPathname = parts.join("/").replaceAll(/\/{2,}/g, "/");
191
- return normalizePathname(standardizedPathname);
192
- };
193
-
194
- // src/shared/error/intor-error.ts
195
- var IntorError = class extends Error {
196
- code;
197
- id;
198
- constructor({ message, code, id }) {
199
- const fullMessage = id ? `[${id}] ${message}` : message;
200
- super(fullMessage);
201
- this.name = "IntorError";
202
- this.id = id;
203
- this.code = code;
204
- Object.setPrototypeOf(this, new.target.prototype);
205
- }
206
- };
207
- var IntorErrorCode = /* @__PURE__ */ ((IntorErrorCode2) => {
208
- IntorErrorCode2["MISSING_SUPPORTED_LOCALES"] = "INTOR_MISSING_SUPPORTED_LOCALES";
209
- IntorErrorCode2["MISSING_DEFAULT_LOCALE"] = "INTOR_MISSING_DEFAULT_LOCALE";
210
- IntorErrorCode2["UNSUPPORTED_DEFAULT_LOCALE"] = "INTOR_UNSUPPORTED_DEFAULT_LOCALE";
211
- return IntorErrorCode2;
212
- })(IntorErrorCode || {});
213
-
214
- export { IntorError, IntorErrorCode, PREFIX_PLACEHOLDER, extractPathname, mergeMessages, normalizeCacheKey, normalizeLocale, normalizePathname, resolveNamespaces, resolvePreferredLocale, standardizePathname };