intor 2.3.3 → 2.3.5

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 (422) hide show
  1. package/README.md +79 -0
  2. package/dist/core/export/config/index.js +1 -0
  3. package/dist/core/export/index.js +4 -0
  4. package/dist/core/export/server/index.js +7 -0
  5. package/dist/{src → core/src}/config/constants/cookie.constants.js +2 -2
  6. package/dist/{src → core/src}/config/constants/routing.constants.js +6 -0
  7. package/dist/{src → core/src}/config/define-intor-config.js +18 -4
  8. package/dist/core/src/config/resolvers/resolve-cookie-options.js +10 -0
  9. package/dist/{src → core/src}/config/resolvers/resolve-fallback-locales.js +17 -0
  10. package/dist/core/src/config/resolvers/resolve-routing-options.js +20 -0
  11. package/dist/{src → core/src}/config/validators/validate-default-locale.js +9 -0
  12. package/dist/{src → core/src}/config/validators/validate-supported-locales.js +8 -3
  13. package/dist/core/src/server/helpers/local-messages-from-url.js +48 -0
  14. package/dist/core/src/server/intor/intor.js +49 -0
  15. package/dist/core/src/server/messages/load-local-messages/load-local-messages.js +93 -0
  16. package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +12 -29
  17. package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +8 -5
  18. package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +3 -3
  19. package/dist/{src → core/src}/server/messages/load-messages.js +21 -21
  20. package/dist/{src → core/src}/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +6 -1
  21. package/dist/core/src/server/messages/load-remote-messages/load-remote-messages.js +110 -0
  22. package/dist/{src → core/src}/server/shared/logger/get-logger.js +10 -5
  23. package/dist/core/src/server/shared/logger/global-logger-pool.js +16 -0
  24. package/dist/core/src/server/shared/messages/global-messages-pool.js +27 -0
  25. package/dist/{src → core/src}/server/translator/get-translator.js +6 -10
  26. package/dist/core/src/shared/utils/deep-merge.js +36 -0
  27. package/dist/{src/shared/utils → core/src/shared/utils/normalizers}/normalize-cache-key.js +17 -1
  28. package/dist/{src/shared/utils/pathname → core/src/shared/utils/normalizers}/normalize-pathname.js +1 -1
  29. package/dist/core/src/shared/utils/pathname/get-unprefixed-pathname.js +39 -0
  30. package/dist/{src/adapters/next/shared/utils → core/src/shared/utils/pathname}/locale-prefix-pathname.js +17 -12
  31. package/dist/core/src/shared/utils/pathname/localize-pathname.js +36 -0
  32. package/dist/{src → core/src}/shared/utils/pathname/standardize-pathname.js +8 -8
  33. package/dist/next/export/next/index.js +4 -0
  34. package/dist/{exports → next/export}/next/proxy/index.js +0 -1
  35. package/dist/next/export/next/server/index.js +2 -0
  36. package/dist/next/src/adapters/next/navigation/link.js +54 -0
  37. package/dist/next/src/adapters/next/navigation/redirect.js +37 -0
  38. package/dist/next/src/adapters/next/navigation/use-pathname.js +31 -0
  39. package/dist/next/src/adapters/next/navigation/use-router.js +68 -0
  40. package/dist/next/src/adapters/next/proxy/intor-proxy.js +44 -0
  41. package/dist/{src → next/src}/adapters/next/proxy/utils/set-locale-cookie-edge.js +2 -7
  42. package/dist/next/src/adapters/next/server/get-locale.js +25 -0
  43. package/dist/{src → next/src}/adapters/next/server/get-translator.js +4 -4
  44. package/dist/next/src/client/react/contexts/config/context.js +3 -0
  45. package/dist/next/src/client/react/contexts/locale/context.js +3 -0
  46. package/dist/next/src/client/react/contexts/messages/context.js +3 -0
  47. package/dist/next/src/client/react/contexts/translator/context.js +3 -0
  48. package/dist/next/src/client/react/contexts/translator-runtime/context.js +3 -0
  49. package/dist/next/src/client/react/navigation/use-navigation-strategy.js +32 -0
  50. package/dist/next/src/client/react/navigation/use-navigation-target.js +20 -0
  51. package/dist/next/src/client/shared/utils/build-cookie-string.js +30 -0
  52. package/dist/next/src/client/shared/utils/locale/set-locale-cookie-browser.js +18 -0
  53. package/dist/next/src/config/constants/cache.constants.js +7 -0
  54. package/dist/next/src/routing/locale/resolve-locale.js +32 -0
  55. package/dist/next/src/routing/pathname/resolve-pathname.js +53 -0
  56. package/dist/next/src/routing/pathname/strategies/all.js +23 -0
  57. package/dist/next/src/routing/pathname/strategies/except-default.js +33 -0
  58. package/dist/next/src/routing/pathname/strategies/none.js +14 -0
  59. package/dist/next/src/routing/resolve-navigation-target.js +28 -0
  60. package/dist/next/src/routing/resolve-routing.js +38 -0
  61. package/dist/next/src/server/messages/load-local-messages/load-local-messages.js +93 -0
  62. package/dist/next/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +78 -0
  63. package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +88 -0
  64. package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.js +12 -0
  65. package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.js +21 -0
  66. package/dist/next/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +31 -0
  67. package/dist/next/src/server/messages/load-messages.js +77 -0
  68. package/dist/next/src/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +55 -0
  69. package/dist/next/src/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
  70. package/dist/next/src/server/messages/load-remote-messages/load-remote-messages.js +110 -0
  71. package/dist/next/src/server/messages/shared/utils/is-valid-messages.js +36 -0
  72. package/dist/next/src/server/shared/logger/get-logger.js +39 -0
  73. package/dist/next/src/server/translator/get-translator.js +35 -0
  74. package/dist/next/src/shared/constants/prefix-placeholder.js +4 -0
  75. package/dist/next/src/shared/utils/deep-merge.js +36 -0
  76. package/dist/next/src/shared/utils/is-external-destination.js +11 -0
  77. package/dist/next/src/shared/utils/locale/get-locale-from-accept-language.js +45 -0
  78. package/dist/next/src/shared/utils/locale/get-locale-from-host.js +31 -0
  79. package/dist/next/src/shared/utils/locale/get-locale-from-pathname.js +52 -0
  80. package/dist/next/src/shared/utils/locale/get-locale-from-query.js +33 -0
  81. package/dist/next/src/shared/utils/normalizers/normalize-cache-key.js +45 -0
  82. package/dist/{src/shared/utils/locale → next/src/shared/utils/normalizers}/normalize-locale.js +21 -4
  83. package/dist/next/src/shared/utils/normalizers/normalize-pathname.js +43 -0
  84. package/dist/next/src/shared/utils/pathname/get-unprefixed-pathname.js +39 -0
  85. package/dist/next/src/shared/utils/pathname/locale-prefix-pathname.js +38 -0
  86. package/dist/next/src/shared/utils/pathname/localize-pathname.js +36 -0
  87. package/dist/next/src/shared/utils/pathname/standardize-pathname.js +30 -0
  88. package/dist/react/export/react/index.js +18 -0
  89. package/dist/react/src/client/helpers/get-client-locale.js +24 -0
  90. package/dist/{src → react/src}/client/react/contexts/config/context.js +0 -1
  91. package/dist/{src → react/src}/client/react/contexts/config/hook.js +0 -1
  92. package/dist/{src → react/src}/client/react/contexts/config/provider.js +5 -2
  93. package/dist/{src → react/src}/client/react/contexts/intor-provider/intor-provider.js +3 -3
  94. package/dist/{src → react/src}/client/react/contexts/locale/context.js +0 -1
  95. package/dist/{src → react/src}/client/react/contexts/locale/hook.js +0 -1
  96. package/dist/react/src/client/react/contexts/locale/provider.js +38 -0
  97. package/dist/react/src/client/react/contexts/locale/utils/change-locale.js +26 -0
  98. package/dist/{src → react/src}/client/react/contexts/messages/context.js +0 -1
  99. package/dist/{src → react/src}/client/react/contexts/messages/hook.js +0 -1
  100. package/dist/{src → react/src}/client/react/contexts/messages/provider.js +18 -11
  101. package/dist/react/src/client/react/contexts/messages/utils/use-refetch-messages.js +70 -0
  102. package/dist/{src → react/src}/client/react/contexts/translator/context.js +0 -1
  103. package/dist/{src → react/src}/client/react/contexts/translator/hook.js +0 -1
  104. package/dist/{src → react/src}/client/react/contexts/translator/provider.js +23 -26
  105. package/dist/react/src/client/react/contexts/translator-runtime/context.js +5 -0
  106. package/dist/react/src/client/react/contexts/translator-runtime/hook.js +9 -0
  107. package/dist/react/src/client/react/contexts/translator-runtime/provider.js +15 -0
  108. package/dist/react/src/client/react/render/create-react-renderer.js +36 -0
  109. package/dist/react/src/client/react/render/render-rich-message-react.js +22 -0
  110. package/dist/react/src/client/react/translator/create-t-rich.js +23 -0
  111. package/dist/react/src/client/react/translator/t.js +15 -0
  112. package/dist/{src/client/react/hooks → react/src/client/react/translator}/use-translator.js +7 -10
  113. package/dist/react/src/client/shared/utils/build-cookie-string.js +30 -0
  114. package/dist/react/src/client/shared/utils/locale/detect-browser-locale.js +12 -0
  115. package/dist/react/src/client/shared/utils/locale/get-locale-cookie-browser.js +16 -0
  116. package/dist/react/src/client/shared/utils/locale/set-document-locale.js +12 -0
  117. package/dist/react/src/client/shared/utils/locale/set-locale-cookie-browser.js +18 -0
  118. package/dist/react/src/config/constants/cache.constants.js +7 -0
  119. package/dist/react/src/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +55 -0
  120. package/dist/react/src/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
  121. package/dist/react/src/server/messages/load-remote-messages/load-remote-messages.js +110 -0
  122. package/dist/react/src/server/messages/shared/utils/is-valid-messages.js +36 -0
  123. package/dist/react/src/server/shared/logger/get-logger.js +39 -0
  124. package/dist/react/src/server/shared/logger/global-logger-pool.js +8 -0
  125. package/dist/react/src/server/shared/messages/global-messages-pool.js +10 -0
  126. package/dist/react/src/shared/utils/deep-merge.js +36 -0
  127. package/dist/react/src/shared/utils/normalizers/normalize-cache-key.js +45 -0
  128. package/dist/react/src/shared/utils/normalizers/normalize-locale.js +59 -0
  129. package/dist/types/export/config/index.d.ts +1 -0
  130. package/dist/types/export/index.d.ts +4 -0
  131. package/dist/types/export/internal/index.d.ts +1 -0
  132. package/dist/types/export/next/index.d.ts +1 -0
  133. package/dist/types/export/next/proxy/index.d.ts +1 -0
  134. package/dist/types/export/next/server/index.d.ts +1 -0
  135. package/dist/types/export/react/index.d.ts +1 -0
  136. package/dist/types/export/server/index.d.ts +1 -0
  137. package/dist/types/src/adapters/next/navigation/link.d.ts +26 -0
  138. package/dist/types/src/adapters/next/navigation/redirect.d.ts +18 -0
  139. package/dist/{src → types/src}/adapters/next/navigation/use-pathname.d.ts +5 -5
  140. package/dist/types/src/adapters/next/navigation/use-router.d.ts +25 -0
  141. package/dist/types/src/adapters/next/proxy/index.d.ts +1 -0
  142. package/dist/types/src/adapters/next/proxy/intor-proxy.d.ts +13 -0
  143. package/dist/{src → types/src}/adapters/next/proxy/utils/set-locale-cookie-edge.d.ts +2 -4
  144. package/dist/types/src/adapters/next/server/get-locale.d.ts +6 -0
  145. package/dist/{src → types/src}/adapters/next/server/get-translator.d.ts +7 -8
  146. package/dist/types/src/adapters/next/server/index.d.ts +2 -0
  147. package/dist/types/src/client/helpers/get-client-locale.d.ts +11 -0
  148. package/dist/types/src/client/helpers/index.d.ts +1 -0
  149. package/dist/types/src/client/react/contexts/config/provider.d.ts +2 -0
  150. package/dist/{src → types/src}/client/react/contexts/config/types.d.ts +6 -5
  151. package/dist/types/src/client/react/contexts/index.d.ts +6 -0
  152. package/dist/types/src/client/react/contexts/intor-provider/intor-provider.d.ts +2 -0
  153. package/dist/{src → types/src}/client/react/contexts/intor-provider/types.d.ts +1 -2
  154. package/dist/types/src/client/react/contexts/locale/utils/change-locale.d.ts +20 -0
  155. package/dist/{src → types/src}/client/react/contexts/messages/types.d.ts +4 -7
  156. package/dist/types/src/client/react/contexts/messages/utils/use-refetch-messages.d.ts +20 -0
  157. package/dist/types/src/client/react/contexts/translator/hook.d.ts +2 -0
  158. package/dist/types/src/client/react/contexts/translator/types.d.ts +11 -0
  159. package/dist/types/src/client/react/contexts/translator-runtime/context.d.ts +3 -0
  160. package/dist/types/src/client/react/contexts/translator-runtime/hook.d.ts +2 -0
  161. package/dist/types/src/client/react/contexts/translator-runtime/index.d.ts +3 -0
  162. package/dist/types/src/client/react/contexts/translator-runtime/provider.d.ts +2 -0
  163. package/dist/types/src/client/react/contexts/translator-runtime/types.d.ts +13 -0
  164. package/dist/types/src/client/react/index.d.ts +4 -0
  165. package/dist/types/src/client/react/navigation/index.d.ts +2 -0
  166. package/dist/types/src/client/react/navigation/use-navigation-strategy.d.ts +22 -0
  167. package/dist/types/src/client/react/navigation/use-navigation-target.d.ts +12 -0
  168. package/dist/types/src/client/react/render/create-react-renderer.d.ts +17 -0
  169. package/dist/types/src/client/react/render/index.d.ts +2 -0
  170. package/dist/types/src/client/react/render/render-rich-message-react.d.ts +13 -0
  171. package/dist/types/src/client/react/render/types.d.ts +17 -0
  172. package/dist/types/src/client/react/translator/create-t-rich.d.ts +15 -0
  173. package/dist/types/src/client/react/translator/index.d.ts +2 -0
  174. package/dist/types/src/client/react/translator/t.d.ts +27 -0
  175. package/dist/types/src/client/react/translator/translator-instance.d.ts +12 -0
  176. package/dist/types/src/client/react/translator/use-translator.d.ts +8 -0
  177. package/dist/types/src/client/shared/types/index.d.ts +1 -0
  178. package/dist/types/src/client/shared/types/translator-instance.d.ts +11 -0
  179. package/dist/types/src/client/shared/utils/build-cookie-string.d.ts +5 -0
  180. package/dist/types/src/client/shared/utils/index.d.ts +1 -0
  181. package/dist/types/src/client/shared/utils/locale/detect-browser-locale.d.ts +6 -0
  182. package/dist/types/src/client/shared/utils/locale/get-locale-cookie-browser.d.ts +6 -0
  183. package/dist/types/src/client/shared/utils/locale/index.d.ts +4 -0
  184. package/dist/types/src/client/shared/utils/locale/set-document-locale.d.ts +6 -0
  185. package/dist/types/src/client/shared/utils/locale/set-locale-cookie-browser.d.ts +7 -0
  186. package/dist/types/src/config/define-intor-config.d.ts +18 -0
  187. package/dist/types/src/config/index.d.ts +2 -0
  188. package/dist/types/src/config/resolvers/resolve-cookie-options.d.ts +2 -0
  189. package/dist/types/src/config/resolvers/resolve-fallback-locales.d.ts +20 -0
  190. package/dist/types/src/config/resolvers/resolve-routing-options.d.ts +2 -0
  191. package/dist/{src → types/src}/config/types/cache.types.d.ts +2 -2
  192. package/dist/types/src/config/types/cookie.types.d.ts +23 -0
  193. package/dist/{src → types/src}/config/types/intor-config.types.d.ts +2 -0
  194. package/dist/types/src/config/types/loader.types.d.ts +34 -0
  195. package/dist/types/src/config/types/logger.types.d.ts +9 -0
  196. package/dist/types/src/config/types/routing.types.d.ts +39 -0
  197. package/dist/types/src/config/types/translator.types.d.ts +7 -0
  198. package/dist/types/src/config/validators/validate-default-locale.d.ts +12 -0
  199. package/dist/types/src/config/validators/validate-supported-locales.d.ts +12 -0
  200. package/dist/types/src/routing/index.d.ts +1 -0
  201. package/dist/types/src/routing/locale/index.d.ts +1 -0
  202. package/dist/types/src/routing/locale/resolve-locale.d.ts +16 -0
  203. package/dist/types/src/routing/locale/types.d.ts +36 -0
  204. package/dist/types/src/routing/pathname/index.d.ts +1 -0
  205. package/dist/types/src/routing/pathname/resolve-pathname.d.ts +19 -0
  206. package/dist/types/src/routing/pathname/strategies/all.d.ts +6 -0
  207. package/dist/types/src/routing/pathname/strategies/except-default.d.ts +6 -0
  208. package/dist/types/src/routing/pathname/strategies/index.d.ts +3 -0
  209. package/dist/types/src/routing/pathname/strategies/none.d.ts +5 -0
  210. package/dist/types/src/routing/pathname/types.d.ts +28 -0
  211. package/dist/types/src/routing/resolve-navigation-target.d.ts +20 -0
  212. package/dist/types/src/routing/resolve-routing.d.ts +30 -0
  213. package/dist/types/src/server/helpers/index.d.ts +1 -0
  214. package/dist/types/src/server/helpers/local-messages-from-url.d.ts +21 -0
  215. package/dist/types/src/server/index.d.ts +6 -0
  216. package/dist/types/src/server/intor/index.d.ts +2 -0
  217. package/dist/types/src/server/intor/intor.d.ts +20 -0
  218. package/dist/types/src/server/intor/types.d.ts +9 -0
  219. package/dist/types/src/server/messages/index.d.ts +3 -0
  220. package/dist/types/src/server/messages/load-local-messages/index.d.ts +2 -0
  221. package/dist/types/src/server/messages/load-local-messages/load-local-messages.d.ts +15 -0
  222. package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.d.ts +5 -14
  223. package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/types.d.ts +1 -1
  224. package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.d.ts +2 -2
  225. package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/types.d.ts +1 -1
  226. package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/read-locale-messages.d.ts +2 -2
  227. package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/types.d.ts +1 -1
  228. package/dist/types/src/server/messages/load-local-messages/types.d.ts +22 -0
  229. package/dist/types/src/server/messages/load-messages.d.ts +14 -0
  230. package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.d.ts +1 -1
  231. package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/types.d.ts +1 -0
  232. package/dist/types/src/server/messages/load-remote-messages/index.d.ts +2 -0
  233. package/dist/types/src/server/messages/load-remote-messages/load-remote-messages.d.ts +15 -0
  234. package/dist/{src → types/src}/server/messages/load-remote-messages/types.d.ts +4 -3
  235. package/dist/{src → types/src}/server/messages/types.d.ts +2 -3
  236. package/dist/{src → types/src}/server/shared/logger/get-logger.d.ts +1 -1
  237. package/dist/{src/server/messages/shared → types/src/server/shared/messages}/global-messages-pool.d.ts +8 -1
  238. package/dist/{src → types/src}/server/translator/get-translator.d.ts +8 -12
  239. package/dist/types/src/shared/constants/index.d.ts +1 -0
  240. package/dist/{src → types/src}/shared/error/intor-error.d.ts +4 -4
  241. package/dist/types/src/shared/types/generated.d.ts +53 -0
  242. package/dist/types/src/shared/types/index.d.ts +2 -0
  243. package/dist/types/src/shared/types/routing.d.ts +6 -0
  244. package/dist/types/src/shared/types/translator-instance.d.ts +27 -0
  245. package/dist/types/src/shared/utils/deep-merge.d.ts +8 -0
  246. package/dist/types/src/shared/utils/index.d.ts +4 -0
  247. package/dist/types/src/shared/utils/is-external-destination.d.ts +7 -0
  248. package/dist/types/src/shared/utils/locale/get-locale-from-accept-language.d.ts +19 -0
  249. package/dist/types/src/shared/utils/locale/get-locale-from-host.d.ts +17 -0
  250. package/dist/types/src/shared/utils/locale/get-locale-from-pathname.d.ts +31 -0
  251. package/dist/types/src/shared/utils/locale/get-locale-from-query.d.ts +20 -0
  252. package/dist/types/src/shared/utils/locale/index.d.ts +4 -0
  253. package/dist/types/src/shared/utils/normalizers/index.d.ts +3 -0
  254. package/dist/types/src/shared/utils/normalizers/normalize-cache-key.d.ts +14 -0
  255. package/dist/types/src/shared/utils/normalizers/normalize-locale.d.ts +22 -0
  256. package/dist/{src/shared/utils/pathname → types/src/shared/utils/normalizers}/normalize-pathname.d.ts +1 -1
  257. package/dist/types/src/shared/utils/pathname/get-unprefixed-pathname.d.ts +14 -0
  258. package/dist/types/src/shared/utils/pathname/index.d.ts +1 -0
  259. package/dist/types/src/shared/utils/pathname/locale-prefix-pathname.d.ts +16 -0
  260. package/dist/types/src/shared/utils/pathname/localize-pathname.d.ts +23 -0
  261. package/dist/types/src/shared/utils/pathname/standardize-pathname.d.ts +13 -0
  262. package/package.json +76 -65
  263. package/dist/exports/config/index.d.ts +0 -2
  264. package/dist/exports/config/index.js +0 -4
  265. package/dist/exports/index.d.ts +0 -5
  266. package/dist/exports/index.js +0 -11
  267. package/dist/exports/next/index.d.ts +0 -3
  268. package/dist/exports/next/index.js +0 -9
  269. package/dist/exports/next/proxy/index.d.ts +0 -2
  270. package/dist/exports/next/server/index.d.ts +0 -2
  271. package/dist/exports/next/server/index.js +0 -2
  272. package/dist/exports/react/index.d.ts +0 -2
  273. package/dist/exports/react/index.js +0 -6
  274. package/dist/exports/server/index.d.ts +0 -2
  275. package/dist/exports/server/index.js +0 -6
  276. package/dist/src/adapters/next/navigation/link.d.ts +0 -16
  277. package/dist/src/adapters/next/navigation/link.js +0 -25
  278. package/dist/src/adapters/next/navigation/redirect.d.ts +0 -16
  279. package/dist/src/adapters/next/navigation/redirect.js +0 -36
  280. package/dist/src/adapters/next/navigation/use-pathname.js +0 -49
  281. package/dist/src/adapters/next/navigation/use-router.d.ts +0 -20
  282. package/dist/src/adapters/next/navigation/use-router.js +0 -31
  283. package/dist/src/adapters/next/navigation/utils/should-full-reload.d.ts +0 -7
  284. package/dist/src/adapters/next/navigation/utils/should-full-reload.js +0 -19
  285. package/dist/src/adapters/next/navigation/utils/use-locale-switch.d.ts +0 -16
  286. package/dist/src/adapters/next/navigation/utils/use-locale-switch.js +0 -58
  287. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-all.d.ts +0 -12
  288. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-all.js +0 -60
  289. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-except-default.d.ts +0 -16
  290. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-except-default.js +0 -81
  291. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-none.d.ts +0 -10
  292. package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-none.js +0 -22
  293. package/dist/src/adapters/next/proxy/index.d.ts +0 -2
  294. package/dist/src/adapters/next/proxy/intor-proxy.d.ts +0 -6
  295. package/dist/src/adapters/next/proxy/intor-proxy.js +0 -22
  296. package/dist/src/adapters/next/proxy/utils/create-response.d.ts +0 -17
  297. package/dist/src/adapters/next/proxy/utils/create-response.js +0 -42
  298. package/dist/src/adapters/next/proxy/utils/determine-initial-locale.d.ts +0 -8
  299. package/dist/src/adapters/next/proxy/utils/determine-initial-locale.js +0 -28
  300. package/dist/src/adapters/next/proxy/utils/set-pathname-header.d.ts +0 -12
  301. package/dist/src/adapters/next/proxy/utils/set-pathname-header.js +0 -13
  302. package/dist/src/adapters/next/server/get-i18n-context.d.ts +0 -9
  303. package/dist/src/adapters/next/server/get-i18n-context.js +0 -47
  304. package/dist/src/adapters/next/server/index.d.ts +0 -2
  305. package/dist/src/adapters/next/shared/constants/pathname-header-name.d.ts +0 -1
  306. package/dist/src/adapters/next/shared/constants/pathname-header-name.js +0 -4
  307. package/dist/src/adapters/next/shared/utils/locale-prefix-pathname.d.ts +0 -16
  308. package/dist/src/adapters/next/shared/utils/localize-pathname.d.ts +0 -18
  309. package/dist/src/adapters/next/shared/utils/localize-pathname.js +0 -36
  310. package/dist/src/client/react/contexts/config/provider.d.ts +0 -2
  311. package/dist/src/client/react/contexts/intor-provider/intor-provider.d.ts +0 -2
  312. package/dist/src/client/react/contexts/locale/provider.js +0 -48
  313. package/dist/src/client/react/contexts/locale/utils/change-locale.d.ts +0 -22
  314. package/dist/src/client/react/contexts/locale/utils/change-locale.js +0 -35
  315. package/dist/src/client/react/contexts/locale/utils/use-init-locale-cookie.d.ts +0 -8
  316. package/dist/src/client/react/contexts/locale/utils/use-init-locale-cookie.js +0 -28
  317. package/dist/src/client/react/contexts/messages/utils/use-refetch-messages.d.ts +0 -16
  318. package/dist/src/client/react/contexts/messages/utils/use-refetch-messages.js +0 -57
  319. package/dist/src/client/react/contexts/translate-handlers/context.d.ts +0 -2
  320. package/dist/src/client/react/contexts/translate-handlers/context.js +0 -6
  321. package/dist/src/client/react/contexts/translate-handlers/hook.d.ts +0 -2
  322. package/dist/src/client/react/contexts/translate-handlers/hook.js +0 -10
  323. package/dist/src/client/react/contexts/translate-handlers/index.d.ts +0 -3
  324. package/dist/src/client/react/contexts/translate-handlers/provider.d.ts +0 -2
  325. package/dist/src/client/react/contexts/translate-handlers/provider.js +0 -11
  326. package/dist/src/client/react/contexts/translate-handlers/types.d.ts +0 -7
  327. package/dist/src/client/react/contexts/translator/hook.d.ts +0 -3
  328. package/dist/src/client/react/contexts/translator/types.d.ts +0 -11
  329. package/dist/src/client/react/hooks/use-translator.d.ts +0 -12
  330. package/dist/src/client/react/index.d.ts +0 -4
  331. package/dist/src/client/shared/utils/get-initial-locale.d.ts +0 -11
  332. package/dist/src/client/shared/utils/get-initial-locale.js +0 -21
  333. package/dist/src/config/define-intor-config.d.ts +0 -2
  334. package/dist/src/config/index.d.ts +0 -5
  335. package/dist/src/config/resolvers/resolve-cookie-options.d.ts +0 -11
  336. package/dist/src/config/resolvers/resolve-cookie-options.js +0 -19
  337. package/dist/src/config/resolvers/resolve-fallback-locales.d.ts +0 -3
  338. package/dist/src/config/resolvers/resolve-routing-options.d.ts +0 -13
  339. package/dist/src/config/resolvers/resolve-routing-options.js +0 -28
  340. package/dist/src/config/types/cookie.types.d.ts +0 -23
  341. package/dist/src/config/types/loader.types.d.ts +0 -38
  342. package/dist/src/config/types/logger.types.d.ts +0 -7
  343. package/dist/src/config/types/routing.types.d.ts +0 -15
  344. package/dist/src/config/types/translator.types.d.ts +0 -4
  345. package/dist/src/config/validators/validate-default-locale.d.ts +0 -3
  346. package/dist/src/config/validators/validate-supported-locales.d.ts +0 -7
  347. package/dist/src/server/index.d.ts +0 -4
  348. package/dist/src/server/intor/index.d.ts +0 -2
  349. package/dist/src/server/intor/intor.d.ts +0 -14
  350. package/dist/src/server/intor/intor.js +0 -67
  351. package/dist/src/server/intor/types.d.ts +0 -14
  352. package/dist/src/server/messages/index.d.ts +0 -7
  353. package/dist/src/server/messages/load-local-messages/index.d.ts +0 -2
  354. package/dist/src/server/messages/load-local-messages/load-local-messages.d.ts +0 -11
  355. package/dist/src/server/messages/load-local-messages/load-local-messages.js +0 -85
  356. package/dist/src/server/messages/load-local-messages/types.d.ts +0 -21
  357. package/dist/src/server/messages/load-messages.d.ts +0 -11
  358. package/dist/src/server/messages/load-remote-messages/index.d.ts +0 -2
  359. package/dist/src/server/messages/load-remote-messages/load-remote-messages.d.ts +0 -9
  360. package/dist/src/server/messages/load-remote-messages/load-remote-messages.js +0 -79
  361. package/dist/src/shared/types/generated.types.d.ts +0 -30
  362. package/dist/src/shared/types/translator-instance.types.d.ts +0 -33
  363. package/dist/src/shared/utils/client/build-cookie-string.d.ts +0 -9
  364. package/dist/src/shared/utils/client/build-cookie-string.js +0 -33
  365. package/dist/src/shared/utils/client/set-locale-cookie-browser.d.ts +0 -13
  366. package/dist/src/shared/utils/client/set-locale-cookie-browser.js +0 -21
  367. package/dist/src/shared/utils/index.d.ts +0 -8
  368. package/dist/src/shared/utils/locale/normalize-locale.d.ts +0 -4
  369. package/dist/src/shared/utils/locale/resolve-preferred-locale.d.ts +0 -5
  370. package/dist/src/shared/utils/locale/resolve-preferred-locale.js +0 -26
  371. package/dist/src/shared/utils/merge-messages.d.ts +0 -6
  372. package/dist/src/shared/utils/merge-messages.js +0 -13
  373. package/dist/src/shared/utils/normalize-cache-key.d.ts +0 -3
  374. package/dist/src/shared/utils/pathname/extract-pathname.d.ts +0 -28
  375. package/dist/src/shared/utils/pathname/extract-pathname.js +0 -58
  376. package/dist/src/shared/utils/pathname/standardize-pathname.d.ts +0 -18
  377. package/dist/src/shared/utils/resolve-namespaces.d.ts +0 -10
  378. package/dist/src/shared/utils/resolve-namespaces.js +0 -33
  379. package/dist/{src → core/src}/config/constants/cache.constants.js +0 -0
  380. package/dist/{src → core/src}/config/resolvers/resolve-cache-options.js +0 -0
  381. package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.js +0 -0
  382. package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.js +0 -0
  383. package/dist/{src → core/src}/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +0 -0
  384. package/dist/{src → core/src}/server/messages/shared/utils/is-valid-messages.js +0 -0
  385. package/dist/{src → core/src}/shared/constants/prefix-placeholder.js +0 -0
  386. package/dist/{src → core/src}/shared/error/intor-error.js +0 -0
  387. package/dist/{src → next/src}/server/shared/logger/global-logger-pool.js +0 -0
  388. package/dist/{src/server/messages/shared → next/src/server/shared/messages}/global-messages-pool.js +0 -0
  389. package/dist/{src → types/src}/adapters/next/navigation/index.d.ts +0 -0
  390. package/dist/{src → types/src}/client/react/contexts/config/context.d.ts +0 -0
  391. package/dist/{src → types/src}/client/react/contexts/config/hook.d.ts +0 -0
  392. package/dist/{src → types/src}/client/react/contexts/config/index.d.ts +0 -0
  393. package/dist/{src → types/src}/client/react/contexts/intor-provider/index.d.ts +0 -0
  394. package/dist/{src → types/src}/client/react/contexts/locale/context.d.ts +0 -0
  395. package/dist/{src → types/src}/client/react/contexts/locale/hook.d.ts +0 -0
  396. package/dist/{src → types/src}/client/react/contexts/locale/index.d.ts +0 -0
  397. package/dist/{src → types/src}/client/react/contexts/locale/provider.d.ts +0 -0
  398. package/dist/{src → types/src}/client/react/contexts/locale/types.d.ts +4 -4
  399. /package/dist/{src → types/src}/client/react/contexts/messages/context.d.ts +0 -0
  400. /package/dist/{src → types/src}/client/react/contexts/messages/hook.d.ts +0 -0
  401. /package/dist/{src → types/src}/client/react/contexts/messages/index.d.ts +0 -0
  402. /package/dist/{src → types/src}/client/react/contexts/messages/provider.d.ts +0 -0
  403. /package/dist/{src → types/src}/client/react/contexts/translator/context.d.ts +0 -0
  404. /package/dist/{src → types/src}/client/react/contexts/translator/index.d.ts +0 -0
  405. /package/dist/{src → types/src}/client/react/contexts/translator/provider.d.ts +0 -0
  406. /package/dist/{src → types/src}/config/constants/cache.constants.d.ts +0 -0
  407. /package/dist/{src → types/src}/config/constants/cookie.constants.d.ts +0 -0
  408. /package/dist/{src → types/src}/config/constants/routing.constants.d.ts +0 -0
  409. /package/dist/{src → types/src}/config/resolvers/resolve-cache-options.d.ts +0 -0
  410. /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/index.d.ts +0 -0
  411. /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/index.d.ts +0 -0
  412. /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/index.d.ts +0 -0
  413. /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.d.ts +0 -0
  414. /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.d.ts +0 -0
  415. /package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/index.d.ts +0 -0
  416. /package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.d.ts +0 -0
  417. /package/dist/{src → types/src}/server/messages/shared/types.d.ts +0 -0
  418. /package/dist/{src → types/src}/server/messages/shared/utils/is-valid-messages.d.ts +0 -0
  419. /package/dist/{src → types/src}/server/shared/logger/global-logger-pool.d.ts +0 -0
  420. /package/dist/{src → types/src}/server/translator/index.d.ts +0 -0
  421. /package/dist/{src → types/src}/shared/constants/prefix-placeholder.d.ts +0 -0
  422. /package/dist/{src → types/src}/shared/error/index.d.ts +0 -0
@@ -0,0 +1,36 @@
1
+ import type { RoutingLocaleSource } from "../../shared/types/routing";
2
+ /** Context for locale resolution. */
3
+ export interface LocaleContext {
4
+ /** Locale extracted from the URL pathname, if present */
5
+ path?: {
6
+ locale?: string;
7
+ };
8
+ /** Locale inferred from the request host, if applicable */
9
+ host?: {
10
+ locale?: string;
11
+ };
12
+ /** Locale provided via query parameters, if applicable */
13
+ query?: {
14
+ locale?: string;
15
+ };
16
+ /** Locale read from cookies, if present */
17
+ cookie?: {
18
+ locale?: string;
19
+ };
20
+ /**
21
+ * Fallback locale determined by the system.
22
+ *
23
+ * - This value is always available and represents the
24
+ * final fallback when no other source matches.
25
+ */
26
+ detected: {
27
+ locale: string;
28
+ };
29
+ }
30
+ /** Final resolved locale. */
31
+ export interface ResolvedLocale {
32
+ /** Resolved locale identifier */
33
+ locale: string;
34
+ /** Source from which the locale was resolved */
35
+ localeSource: RoutingLocaleSource;
36
+ }
@@ -0,0 +1 @@
1
+ export { resolvePathname } from "./resolve-pathname";
@@ -0,0 +1,19 @@
1
+ import type { IntorResolvedConfig } from "../../config";
2
+ import type { PathnameContext, ResolvedPathname } from "../../routing/pathname/types";
3
+ /**
4
+ * Resolve the final pathname based on routing configuration.
5
+ *
6
+ * - This function determines how locale prefixes should be
7
+ * applied to the given pathname based on `config.routing.prefix`.
8
+ *
9
+ * - It delegates the decision to a corresponding prefix
10
+ * strategy (`all`, `except-default`, or `none`) and derives
11
+ * a routing directive from the current pathname context.
12
+ *
13
+ * - The pathname is then localized into its final form,
14
+ * producing a single canonical pathname for the routing flow.
15
+ *
16
+ * - The result also indicates whether a redirect is required
17
+ * to reach the resolved pathname.
18
+ */
19
+ export declare const resolvePathname: (config: IntorResolvedConfig, pathname: string, context: PathnameContext) => ResolvedPathname;
@@ -0,0 +1,6 @@
1
+ import type { PathnameContext, PathnameDirective } from "../types";
2
+ import type { IntorResolvedConfig } from "../../../config";
3
+ /**
4
+ * Resolve pathname decision for routing prefix strategy: "all".
5
+ */
6
+ export declare function all(context: PathnameContext, config: IntorResolvedConfig): PathnameDirective;
@@ -0,0 +1,6 @@
1
+ import type { PathnameContext, PathnameDirective } from "../types";
2
+ import type { IntorResolvedConfig } from "../../../config";
3
+ /**
4
+ * Resolve pathname decision for routing prefix strategy: "except-default".
5
+ */
6
+ export declare function exceptDefault(context: PathnameContext, config: IntorResolvedConfig): PathnameDirective;
@@ -0,0 +1,3 @@
1
+ export { all } from "./all";
2
+ export { exceptDefault } from "./except-default";
3
+ export { none } from "./none";
@@ -0,0 +1,5 @@
1
+ import type { PathnameContext, PathnameDirective } from "../types";
2
+ /**
3
+ * Resolve pathname decision for routing prefix strategy: "none".
4
+ */
5
+ export declare function none(context: PathnameContext): PathnameDirective;
@@ -0,0 +1,28 @@
1
+ import type { RoutingLocaleSource } from "../../shared/types/routing";
2
+ /**
3
+ * Context for pathname processing.
4
+ *
5
+ * - Assumes the locale has already been resolved.
6
+ */
7
+ export interface PathnameContext {
8
+ /** Final resolved locale (single source of truth) */
9
+ locale: string;
10
+ /** Source from which the locale was resolved */
11
+ localeSource: RoutingLocaleSource;
12
+ }
13
+ /**
14
+ * Directive describing how the pathname should be handled.
15
+ */
16
+ export interface PathnameDirective {
17
+ /** Indicates whether a redirect is required */
18
+ type: "pass" | "redirect";
19
+ }
20
+ /**
21
+ * Final resolved pathname result.
22
+ */
23
+ export interface ResolvedPathname {
24
+ /** Normalized pathname after applying routing rules */
25
+ pathname: string;
26
+ /** Whether a redirect should occur */
27
+ shouldRedirect: boolean;
28
+ }
@@ -0,0 +1,20 @@
1
+ import type { IntorResolvedConfig } from "../config/types/intor-config.types";
2
+ import type { Locale } from "intor-translator";
3
+ export interface NavigationTarget {
4
+ /** Locale selected for this navigation */
5
+ locale: Locale;
6
+ /** Final navigation destination (app-relative or external) */
7
+ destination: string;
8
+ /** Whether the destination should bypass app routing */
9
+ isExternal: boolean;
10
+ }
11
+ /**
12
+ * Resolves the destination of a navigation attempt.
13
+ *
14
+ * This is pure decision logic.
15
+ * No side effects and no framework-specific behavior.
16
+ */
17
+ export declare function resolveNavigationTarget(config: IntorResolvedConfig, currentLocale: Locale, currentPathname: string, input: {
18
+ destination?: string;
19
+ locale?: Locale;
20
+ }): NavigationTarget;
@@ -0,0 +1,30 @@
1
+ import type { IntorResolvedConfig } from "../config";
2
+ import type { RoutingLocaleSource } from "../shared/types/routing";
3
+ interface ResolveRoutingResult {
4
+ /** Final resolved locale */
5
+ locale: string;
6
+ /** Source from which the locale was resolved */
7
+ localeSource: RoutingLocaleSource;
8
+ /** Final resolved pathname */
9
+ pathname: string;
10
+ /** Whether a redirect is required */
11
+ shouldRedirect: boolean;
12
+ }
13
+ /**
14
+ * Resolves routing decision based on locale inputs and routing config.
15
+ *
16
+ * This function orchestrates locale resolution and pathname resolution
17
+ * as a single routing decision step.
18
+ *
19
+ * Responsibilities:
20
+ * - Collect locale candidates from different sources
21
+ * - Resolve the final locale and its source
22
+ * - Resolve the final pathname and redirect behavior
23
+ */
24
+ export declare function resolveRouting(config: IntorResolvedConfig, pathname: string, localeInputs: {
25
+ host?: string;
26
+ query?: Record<string, string | string[] | undefined>;
27
+ cookie?: string;
28
+ detected: string;
29
+ }): ResolveRoutingResult;
30
+ export {};
@@ -0,0 +1 @@
1
+ export { loadLocalMessagesFromUrl } from "./local-messages-from-url";
@@ -0,0 +1,21 @@
1
+ import type { LoadLocalMessagesExtraOptions } from "../../server/messages/load-local-messages";
2
+ /**
3
+ * Load local locale messages from a URL-based query protocol.
4
+ *
5
+ * - A convenience helper for exposing local messages through a URL-accessible interface.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const url = new URL(
10
+ * "https://example.com/messages" +
11
+ * "?locale=en-US" +
12
+ * "&rootDir=./messages" +
13
+ * "&namespaces=common" +
14
+ * "&namespaces=homepage" +
15
+ * "&fallbackLocales=zh-TW"
16
+ * );
17
+ *
18
+ * const messages = await loadLocalMessagesFromUrl(url);
19
+ * ```
20
+ */
21
+ export declare function loadLocalMessagesFromUrl(url: URL, extraOptions?: LoadLocalMessagesExtraOptions): Promise<import("intor-translator").LocaleMessages | undefined>;
@@ -0,0 +1,6 @@
1
+ export { intor, type IntorResult } from "./intor";
2
+ export { loadMessages, isValidMessages, type Messages, type MessagesReader, } from "./messages";
3
+ export { getTranslator } from "./translator";
4
+ export { clearLoggerPool } from "./shared/logger/global-logger-pool";
5
+ export { clearMessagesPool, setGlobalMessagesPool, } from "./shared/messages/global-messages-pool";
6
+ export { loadLocalMessagesFromUrl } from "./helpers";
@@ -0,0 +1,2 @@
1
+ export { intor } from "./intor";
2
+ export type { IntorResult } from "./types";
@@ -0,0 +1,20 @@
1
+ import type { IntorResolvedConfig } from "../../config";
2
+ import type { GetLocale, IntorResult } from "../../server/intor/types";
3
+ import type { MessagesReader } from "../../server/messages";
4
+ import type { GenConfigKeys } from "../../shared/types";
5
+ /**
6
+ * Entry point for initializing Intor.
7
+ *
8
+ * This function orchestrates the initialization flow:
9
+ *
10
+ * - Resolves the initial locale using a provided locale resolver
11
+ * - Loads locale messages if the message loader is enabled
12
+ * - Returns a fully-initialized Intor result
13
+ *
14
+ * This function does not perform routing decisions itself.
15
+ * Locale resolution is delegated to the provided `getLocale` implementation.
16
+ */
17
+ export declare const intor: <CK extends GenConfigKeys = "__default__">(config: IntorResolvedConfig, getLocale: GetLocale, loadMessagesOptions?: {
18
+ exts?: string[];
19
+ messagesReader?: MessagesReader;
20
+ }) => Promise<IntorResult<CK>>;
@@ -0,0 +1,9 @@
1
+ import type { IntorResolvedConfig } from "../../config/types/intor-config.types";
2
+ import type { GenConfigKeys, GenLocale } from "../../shared/types/generated";
3
+ import type { LocaleMessages } from "intor-translator";
4
+ export type GetLocale<CK extends GenConfigKeys = "__default__"> = GenLocale<CK> | ((config: IntorResolvedConfig) => GenLocale<CK> | Promise<GenLocale<CK>>);
5
+ export interface IntorResult<CK extends GenConfigKeys = "__default__"> {
6
+ config: IntorResolvedConfig;
7
+ initialLocale: GenLocale<CK>;
8
+ messages: LocaleMessages;
9
+ }
@@ -0,0 +1,3 @@
1
+ export { loadMessages } from "./load-messages";
2
+ export { isValidMessages } from "./shared/utils/is-valid-messages";
3
+ export type { Messages, MessagesReader } from "./shared/types";
@@ -0,0 +1,2 @@
1
+ export type { LoadLocalMessagesParams, LoadLocalMessagesExtraOptions, } from "./types";
2
+ export { loadLocalMessages } from "./load-local-messages";
@@ -0,0 +1,15 @@
1
+ import type { LoadLocalMessagesParams } from "./types";
2
+ import type { LocaleMessages } from "intor-translator";
3
+ /**
4
+ * Load locale messages from the local file system.
5
+ *
6
+ * This function acts as the orchestration layer for local message loading.
7
+ * It is responsible for:
8
+ *
9
+ * - Resolving fallback locales in order
10
+ * - Coordinating cache read / write behavior
11
+ * - Limiting concurrent file reads for performance
12
+ *
13
+ * File system traversal, parsing, and message validation are delegated to lower-level utilities.
14
+ */
15
+ export declare const loadLocalMessages: ({ pool, rootDir, locale, fallbackLocales, namespaces, extraOptions: { concurrency, cacheOptions, loggerOptions, exts, messagesReader, }, allowCacheWrite, }: LoadLocalMessagesParams) => Promise<LocaleMessages | undefined>;
@@ -1,4 +1,4 @@
1
- import type { CollectFileEntriesOptions } from "./types";
1
+ import type { CollectFileEntriesParams } from "./types";
2
2
  import type { FileEntry } from "../../../../../server/messages/load-local-messages/read-locale-messages";
3
3
  /**
4
4
  * Recursively collects all message files under a given root directory.
@@ -8,22 +8,13 @@ import type { FileEntry } from "../../../../../server/messages/load-local-messag
8
8
  *
9
9
  * @example
10
10
  * ```ts
11
- * [
12
- * {
13
- * namespace: "index", // "index" = messages under locale root (no namespace)
14
- * fullPath: "/Users/john/my-app/messages/en-US/index.json",
15
- * relativePath: "index.json",
16
- * segments: ["index"],
17
- * basename: "index",
18
- * },
19
- * {
20
- * namespace: "auth",
11
+ * [{
12
+ * namespace: "auth", // If messages under locale root (no namespace) -> "index"
21
13
  * fullPath: "/Users/john/my-app/messages/en-US/auth/login.json",
22
14
  * relativePath: "auth/login.json",
23
15
  * segments: ["auth", "login"],
24
16
  * basename: "login",
25
- * },
26
- * ];
17
+ * }, ... ];
27
18
  * ```
28
19
  */
29
- export declare function collectFileEntries({ readdir, limit, rootDir, namespaces, extraOptions: { exts, loggerOptions }, }: CollectFileEntriesOptions): Promise<FileEntry[]>;
20
+ export declare function collectFileEntries({ readdir, limit, rootDir, namespaces, extraOptions: { exts, loggerOptions }, }: CollectFileEntriesParams): Promise<FileEntry[]>;
@@ -1,7 +1,7 @@
1
1
  import type { LoggerOptions } from "../../../../../config/types/logger.types";
2
2
  import type fs from "node:fs/promises";
3
3
  import type { LimitFunction } from "p-limit";
4
- export interface CollectFileEntriesOptions {
4
+ export interface CollectFileEntriesParams {
5
5
  readdir?: (typeof fs)["readdir"];
6
6
  limit: LimitFunction;
7
7
  rootDir: string;
@@ -1,4 +1,4 @@
1
- import type { ParseFileEntriesOptions } from "./types";
1
+ import type { ParseFileEntriesParams } from "./types";
2
2
  import type { Messages } from "../../../../../server/messages/shared/types";
3
3
  /**
4
4
  * Parse locale message files (JSON or custom formats) into a unified LocaleMessages object.
@@ -31,4 +31,4 @@ import type { Messages } from "../../../../../server/messages/shared/types";
31
31
  * }
32
32
  * ```
33
33
  */
34
- export declare function parseFileEntries({ fileEntries, limit, extraOptions: { messagesReader, loggerOptions }, }: ParseFileEntriesOptions): Promise<Messages>;
34
+ export declare function parseFileEntries({ fileEntries, limit, extraOptions: { messagesReader, loggerOptions }, }: ParseFileEntriesParams): Promise<Messages>;
@@ -2,7 +2,7 @@ import type { LoggerOptions } from "../../../../../config/types/logger.types";
2
2
  import type { FileEntry } from "../../../../../server/messages/load-local-messages/read-locale-messages/types";
3
3
  import type { MessagesReader, Messages } from "../../../../../server/messages/shared/types";
4
4
  import type { LimitFunction } from "p-limit";
5
- export interface ParseFileEntriesOptions {
5
+ export interface ParseFileEntriesParams {
6
6
  fileEntries: FileEntry[];
7
7
  limit: LimitFunction;
8
8
  extraOptions?: {
@@ -1,4 +1,4 @@
1
- import type { ReadLocaleMessagesOptions } from "./types";
1
+ import type { ReadLocaleMessagesParams } from "../../../../server/messages/load-local-messages/read-locale-messages/types";
2
2
  import type { LocaleMessages } from "intor-translator";
3
3
  /**
4
4
  * Read messages for a specific locale from the file system.
@@ -7,4 +7,4 @@ import type { LocaleMessages } from "intor-translator";
7
7
  * 2. Parses each file into a messages object.
8
8
  * 3. Wraps the parsed messages under the locale key.
9
9
  */
10
- export declare const readLocaleMessages: ({ limit, rootDir, locale, namespaces, extraOptions: { exts, messagesReader, loggerOptions }, }: ReadLocaleMessagesOptions) => Promise<LocaleMessages>;
10
+ export declare const readLocaleMessages: ({ limit, rootDir, locale, namespaces, extraOptions: { exts, messagesReader, loggerOptions }, }: ReadLocaleMessagesParams) => Promise<LocaleMessages>;
@@ -8,7 +8,7 @@ export interface FileEntry {
8
8
  segments: string[];
9
9
  basename: string;
10
10
  }
11
- export interface ReadLocaleMessagesOptions {
11
+ export interface ReadLocaleMessagesParams {
12
12
  limit: LimitFunction;
13
13
  rootDir?: string;
14
14
  locale: string;
@@ -0,0 +1,22 @@
1
+ import type { CacheResolvedOptions } from "../../../config/types/cache.types";
2
+ import type { LoggerOptions } from "../../../config/types/logger.types";
3
+ import type { MessagesReader } from "../../../server/messages/shared/types";
4
+ import type { MessagesPool } from "../../../server/shared/messages/global-messages-pool";
5
+ export interface LoadLocalMessagesExtraOptions {
6
+ concurrency?: number;
7
+ cacheOptions?: CacheResolvedOptions;
8
+ loggerOptions?: LoggerOptions & {
9
+ id?: string;
10
+ };
11
+ exts?: string[];
12
+ messagesReader?: MessagesReader;
13
+ }
14
+ export interface LoadLocalMessagesParams {
15
+ pool?: MessagesPool;
16
+ rootDir?: string;
17
+ locale: string;
18
+ fallbackLocales?: string[];
19
+ namespaces?: string[];
20
+ extraOptions?: LoadLocalMessagesExtraOptions;
21
+ allowCacheWrite?: boolean;
22
+ }
@@ -0,0 +1,14 @@
1
+ import type { LoadMessagesOptions, LoadMessagesResult } from "../../server/messages/types";
2
+ import type { GenConfigKeys } from "../../shared/types/generated";
3
+ /**
4
+ * Load locale messages based on the resolved Intor configuration.
5
+ *
6
+ * This function acts as a thin orchestration layer that:
7
+ *
8
+ * - Selects the appropriate message loader (local or remote)
9
+ * - Applies fallback locale resolution
10
+ * - Delegates caching and concurrency behavior to the underlying loader
11
+ *
12
+ * It does not perform message normalization or transformation itself.
13
+ */
14
+ export declare const loadMessages: <CK extends GenConfigKeys = "__default__">({ config, locale, extraOptions: { exts, messagesReader }, allowCacheWrite, }: LoadMessagesOptions) => LoadMessagesResult<CK>;
@@ -6,4 +6,4 @@ import type { LocaleMessages } from "intor-translator";
6
6
  * - Validates that the returned JSON matches the expected `NamespaceMessages` structure.
7
7
  * - Uses `fetch` with `no-store` cache to always get fresh data.
8
8
  */
9
- export declare const fetchLocaleMessages: ({ remoteUrl, remoteHeaders, searchParams, locale, extraOptions: { loggerOptions }, }: FetcherOptions) => Promise<LocaleMessages | undefined>;
9
+ export declare const fetchLocaleMessages: ({ remoteUrl, remoteHeaders, searchParams, locale, extraOptions: { loggerOptions }, signal, }: FetcherOptions) => Promise<LocaleMessages | undefined>;
@@ -10,4 +10,5 @@ export interface FetcherOptions {
10
10
  id?: string;
11
11
  };
12
12
  };
13
+ signal?: AbortSignal;
13
14
  }
@@ -0,0 +1,2 @@
1
+ export { loadRemoteMessages } from "./load-remote-messages";
2
+ export type { LoadRemoteMessagesParams as LoadRemoteMessagesOptions } from "./types";
@@ -0,0 +1,15 @@
1
+ import type { LoadRemoteMessagesParams } from "./types";
2
+ import type { LocaleMessages } from "intor-translator";
3
+ /**
4
+ * Load locale messages from a remote API.
5
+ *
6
+ * This function acts as the orchestration layer for remote message loading.
7
+ * It is responsible for:
8
+ *
9
+ * - Resolving fallback locales in order
10
+ * - Coordinating cache read / write behavior
11
+ * - Respecting abort signals across the entire async flow
12
+ *
13
+ * Network fetching and data validation are delegated to lower-level utilities.
14
+ */
15
+ export declare const loadRemoteMessages: ({ pool, rootDir, locale, fallbackLocales, namespaces, remoteUrl, remoteHeaders, extraOptions: { cacheOptions, loggerOptions, }, allowCacheWrite, signal, }: LoadRemoteMessagesParams) => Promise<LocaleMessages | undefined>;
@@ -1,12 +1,12 @@
1
1
  import type { CacheResolvedOptions } from "../../../config/types/cache.types";
2
2
  import type { RemoteHeaders } from "../../../config/types/loader.types";
3
3
  import type { LoggerOptions } from "../../../config/types/logger.types";
4
- import type { MessagesPool } from "../../../server/messages/shared/global-messages-pool";
5
- export interface LoadRemoteMessagesOptions {
4
+ import type { MessagesPool } from "../../../server/shared/messages/global-messages-pool";
5
+ export interface LoadRemoteMessagesParams {
6
6
  pool?: MessagesPool;
7
7
  rootDir?: string;
8
8
  locale: string;
9
- fallbackLocales: string[];
9
+ fallbackLocales?: string[];
10
10
  namespaces?: string[];
11
11
  remoteUrl: string;
12
12
  remoteHeaders?: RemoteHeaders;
@@ -17,4 +17,5 @@ export interface LoadRemoteMessagesOptions {
17
17
  };
18
18
  };
19
19
  allowCacheWrite?: boolean;
20
+ signal?: AbortSignal;
20
21
  }
@@ -1,15 +1,14 @@
1
1
  import type { IntorResolvedConfig } from "../../config/types/intor-config.types";
2
2
  import type { MessagesReader } from "../../server/messages/shared/types";
3
- import type { GenConfigKeys, GenMessages } from "../../shared/types/generated.types";
3
+ import type { GenConfigKeys, GenMessages } from "../../shared/types/generated";
4
4
  import type { Locale } from "intor-translator";
5
5
  export type LoadMessagesOptions = {
6
6
  config: IntorResolvedConfig;
7
7
  locale: Locale;
8
- pathname?: string;
9
8
  extraOptions?: {
10
9
  exts?: string[];
11
10
  messagesReader?: MessagesReader;
12
11
  };
13
12
  allowCacheWrite?: boolean;
14
13
  };
15
- export type LoadMessagesResult<C extends GenConfigKeys = "__default__"> = Promise<GenMessages<C> | undefined>;
14
+ export type LoadMessagesResult<CK extends GenConfigKeys = "__default__"> = Promise<GenMessages<CK> | undefined>;
@@ -5,7 +5,7 @@ import type { Logger } from "logry";
5
5
  * - Safe across hot reloads
6
6
  * - Prevents unbounded memory usage via soft LRU
7
7
  */
8
- export declare function getLogger({ id, formatterConfig, preset, ...options }: {
8
+ export declare function getLogger({ id, formatConfig, renderConfig, preset, ...options }: {
9
9
  id?: string;
10
10
  scope?: string;
11
11
  } & LoggerOptions): Logger;
@@ -8,8 +8,15 @@ declare global {
8
8
  var __INTOR_MESSAGES_POOL__: MessagesPool | undefined;
9
9
  }
10
10
  export declare function getGlobalMessagesPool(): MessagesPool;
11
+ /**
12
+ * Replace the global messages pool.
13
+ *
14
+ * - Intended for advanced usage (e.g. Redis, custom cache backends).
15
+ * - Must be called during application bootstrap.
16
+ */
17
+ export declare function setGlobalMessagesPool(pool: MessagesPool): void;
11
18
  /**
12
19
  * Optional: clear all cache
13
- * Useful in tests or dynamic reloads.
20
+ * - Useful in tests or dynamic reloads.
14
21
  */
15
22
  export declare function clearMessagesPool(): void;
@@ -1,20 +1,16 @@
1
1
  import type { IntorResolvedConfig } from "../../config/types/intor-config.types";
2
- import type { GenConfigKeys, GenLocale, GenMessages } from "../../shared/types/generated.types";
3
- import type { TranslatorInstance } from "../../shared/types/translator-instance.types";
4
- import type { LocalizedNodeKeys, TranslateHandlers } from "intor-translator";
2
+ import type { GenConfigKeys, GenLocale, GenMessages } from "../../shared/types/generated";
3
+ import type { TranslatorInstance } from "../../shared/types/translator-instance";
4
+ import type { LocalizedNodeKeys, TranslateHandlers, TranslateHook, TranslatorPlugin } from "intor-translator";
5
5
  import { type MessagesReader } from "../../server/messages";
6
6
  /**
7
- * Create a translator instance for a specific locale and pathname
8
- *
9
- * - Loads messages using the provided config, locale, and pathname.
10
- * - Initializes a translator with `t`, `hasKey`, and optional scoped methods.
11
- * - Supports optional `preKey` to create a scoped translator for nested keys.
7
+ * Create a translator instance for a specific locale.
12
8
  */
13
9
  export declare function getTranslator<CK extends GenConfigKeys = "__default__">(options: {
14
10
  config: IntorResolvedConfig;
15
- locale: GenLocale;
16
- pathname?: string;
11
+ locale: GenLocale<CK>;
17
12
  handlers?: TranslateHandlers;
13
+ plugins?: (TranslatorPlugin | TranslateHook)[];
18
14
  extraOptions?: {
19
15
  exts?: string[];
20
16
  messagesReader?: MessagesReader;
@@ -22,9 +18,9 @@ export declare function getTranslator<CK extends GenConfigKeys = "__default__">(
22
18
  }): Promise<TranslatorInstance<GenMessages<CK>>>;
23
19
  export declare function getTranslator<CK extends GenConfigKeys = "__default__", PK extends string = LocalizedNodeKeys<GenMessages<CK>>>(options: {
24
20
  config: IntorResolvedConfig;
25
- locale: GenLocale;
26
- pathname?: string;
21
+ locale: GenLocale<CK>;
27
22
  handlers?: TranslateHandlers;
23
+ plugins?: (TranslatorPlugin | TranslateHook)[];
28
24
  extraOptions?: {
29
25
  exts?: string[];
30
26
  messagesReader?: MessagesReader;
@@ -0,0 +1 @@
1
+ export { PREFIX_PLACEHOLDER } from "./prefix-placeholder";
@@ -1,10 +1,10 @@
1
- type IntorErrorOptions = {
1
+ interface IntorErrorOptions {
2
2
  message: string;
3
- code?: string;
3
+ code?: IntorErrorCode;
4
4
  id?: string;
5
- };
5
+ }
6
6
  export declare class IntorError extends Error {
7
- readonly code?: string;
7
+ readonly code?: IntorErrorCode;
8
8
  readonly id?: string;
9
9
  constructor({ message, code, id }: IntorErrorOptions);
10
10
  }
@@ -0,0 +1,53 @@
1
+ import type { PREFIX_PLACEHOLDER } from "../../shared/constants/prefix-placeholder";
2
+ import type { LocaleMessages } from "intor-translator";
3
+ /**
4
+ * ================================================
5
+ * Generated-aware type system for Intor.
6
+ *
7
+ * This module defines conditional and fallback types that adapt
8
+ * based on whether generated types are present.
9
+ * ================================================
10
+ */
11
+ /**
12
+ * Internal sentinel key indicating that Intor generated types are present.
13
+ * - Used by conditional types to switch between fallback and generated modes.
14
+ * - Type-level only. Not for runtime or user-facing usage.
15
+ */
16
+ export type INTOR_GENERATED_KEY = "__intor_generated__";
17
+ /**
18
+ * Conditional type for generated types.
19
+ * - Uses key presence on `IntorGeneratedTypes` to detect generation.
20
+ */
21
+ export type IfGen<Then, Else = never> = IntorGeneratedTypes extends {
22
+ [K in INTOR_GENERATED_KEY]: true;
23
+ } ? Then : Else;
24
+ /**
25
+ * Config keys provided by generated types.
26
+ * - Excludes internal sentinel
27
+ */
28
+ type GeneratedConfigKeys = Exclude<keyof IntorGeneratedTypes, INTOR_GENERATED_KEY>;
29
+ /**
30
+ * Union of all configuration keys.
31
+ * - Defaults to `string` if `IntorGeneratedTypes` does not exist.
32
+ */
33
+ export type GenConfigKeys = IfGen<GeneratedConfigKeys, string>;
34
+ /**
35
+ * Configuration shape for a given config key.
36
+ * - If `IntorGeneratedTypes` is not defined, falls back to default shape.
37
+ * Otherwise, picks `Locales` and `Messages` according to the key.
38
+ */
39
+ export type GenConfig<CK extends GenConfigKeys> = IfGen<CK extends keyof IntorGeneratedTypes ? IntorGeneratedTypes[CK] extends {
40
+ Locales: infer L extends string;
41
+ Messages: Record<typeof PREFIX_PLACEHOLDER, infer M>;
42
+ } ? {
43
+ Locales: L;
44
+ Messages: Record<L, M>;
45
+ } : never : never, {
46
+ Locales: string;
47
+ Messages: LocaleMessages;
48
+ }>;
49
+ /** Extracts messages for a given config key */
50
+ export type GenMessages<CK extends GenConfigKeys> = GenConfig<CK>["Messages"];
51
+ /** Extracts locales for a given config key */
52
+ export type GenLocale<CK extends GenConfigKeys> = GenConfig<CK>["Locales"];
53
+ export {};
@@ -0,0 +1,2 @@
1
+ export type { INTOR_GENERATED_KEY, GenConfigKeys, GenConfig, GenMessages, GenLocale, } from "./generated";
2
+ export type { MessageKey, TranslatorInstance, KeyMode, } from "./translator-instance";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Locale resolution sources used by routing and config.
3
+ *
4
+ * - Represents resolved data sources, not detection strategies.
5
+ */
6
+ export type RoutingLocaleSource = "path" | "host" | "query" | "cookie" | "detected";