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
@@ -1,47 +0,0 @@
1
- import { cookies, headers } from 'next/headers';
2
- import { PATHNAME_HEADER_NAME } from '../shared/constants/pathname-header-name.js';
3
- import { getLogger } from '../../../server/shared/logger/get-logger.js';
4
- import 'lodash.merge';
5
- import { normalizeLocale } from '../../../shared/utils/locale/normalize-locale.js';
6
- import { resolvePreferredLocale } from '../../../shared/utils/locale/resolve-preferred-locale.js';
7
-
8
- /**
9
- * Retrieves the i18n context for the current request.
10
- *
11
- * Next.js adapter implementation: uses `next/headers` and `next/cookies`.
12
- */
13
- const getI18nContext = async (config) => {
14
- const baseLogger = getLogger({ id: config.id, ...config.logger });
15
- const logger = baseLogger.child({ scope: "next-adapter" });
16
- const cookiesStore = await cookies();
17
- const headersStore = await headers();
18
- const { defaultLocale, supportedLocales = [], cookie, routing } = config;
19
- let locale;
20
- // Locale from cookie (if cookie is enabled)
21
- if (cookie.enabled) {
22
- const localeFromCookie = cookiesStore.get(cookie.name)?.value;
23
- locale = normalizeLocale(localeFromCookie, supportedLocales);
24
- if (locale) {
25
- logger.trace("Locale retrieved from cookie.", { locale });
26
- }
27
- }
28
- //====== ▼ Locale from cookie not found ======
29
- // Locale source set to "browser", retrieve from Accept-Language header
30
- if (!locale && routing.firstVisit.localeSource === "browser") {
31
- const aLHeader = headersStore.get("accept-language") || undefined;
32
- const preferredLocale = resolvePreferredLocale(aLHeader, supportedLocales);
33
- locale = normalizeLocale(preferredLocale, supportedLocales);
34
- logger.trace("Locale retrieved from header.", { locale });
35
- }
36
- // Retrieve pathname from headers (next/headers)
37
- const pathname = headersStore.get(PATHNAME_HEADER_NAME);
38
- if (pathname) {
39
- logger.trace("Pathname retrieved from header.", { pathname });
40
- }
41
- return {
42
- locale: (locale || defaultLocale),
43
- pathname: pathname || "",
44
- };
45
- };
46
-
47
- export { getI18nContext };
@@ -1,2 +0,0 @@
1
- export { getI18nContext } from "./get-i18n-context";
2
- export { getTranslator } from "./get-translator";
@@ -1 +0,0 @@
1
- export declare const PATHNAME_HEADER_NAME = "x-intor-pathname";
@@ -1,4 +0,0 @@
1
- // Default pathname header name
2
- const PATHNAME_HEADER_NAME = "x-intor-pathname";
3
-
4
- export { PATHNAME_HEADER_NAME };
@@ -1,16 +0,0 @@
1
- import type { IntorResolvedConfig } from "../../../../config/types/intor-config.types";
2
- interface LocalePrefixPathnameOptions {
3
- pathname: string;
4
- config: IntorResolvedConfig;
5
- locale?: string;
6
- }
7
- /**
8
- * Converts a standardized pathname by applying the locale prefix according to the configured strategy.
9
- *
10
- * Based on the `routing.prefix` setting in the config:
11
- * - "all": Always add the locale prefix.
12
- * - "except-default": Add the locale prefix unless the locale is the default.
13
- * - "none": Remove the locale prefix entirely.
14
- */
15
- export declare const localePrefixPathname: ({ config, pathname: standardizedPathname, locale, }: LocalePrefixPathnameOptions) => string;
16
- export {};
@@ -1,18 +0,0 @@
1
- import type { IntorResolvedConfig } from "../../../../config/types/intor-config.types";
2
- interface LocalizePathnameOptions {
3
- config: IntorResolvedConfig;
4
- pathname: string;
5
- locale?: string;
6
- }
7
- /**
8
- * Localizes a given pathname by:
9
- * 1. Removing the basePath and locale prefix (if necessary) using `extractPathname`.
10
- * 2. Standardizing the pathname by appending basePath and the prefixPlaceholder using `standardizedPathname`.
11
- * 3. Adding the correct locale prefix back to the standardized pathname using `localePrefixPathname`.
12
- */
13
- export declare const localizePathname: ({ config, pathname: rawPathname, locale, }: LocalizePathnameOptions) => {
14
- unprefixedPathname: string;
15
- standardizedPathname: string;
16
- localePrefixedPathname: string;
17
- };
18
- export {};
@@ -1,36 +0,0 @@
1
- import { localePrefixPathname } from './locale-prefix-pathname.js';
2
- import 'lodash.merge';
3
- import { standardizePathname } from '../../../../shared/utils/pathname/standardize-pathname.js';
4
- import { extractPathname } from '../../../../shared/utils/pathname/extract-pathname.js';
5
-
6
- /**
7
- * Localizes a given pathname by:
8
- * 1. Removing the basePath and locale prefix (if necessary) using `extractPathname`.
9
- * 2. Standardizing the pathname by appending basePath and the prefixPlaceholder using `standardizedPathname`.
10
- * 3. Adding the correct locale prefix back to the standardized pathname using `localePrefixPathname`.
11
- */
12
- const localizePathname = ({ config, pathname: rawPathname, locale, }) => {
13
- // Remove the locale prefix if necessary
14
- const { unprefixedPathname } = extractPathname({
15
- config,
16
- pathname: rawPathname,
17
- });
18
- // Standardize pathname
19
- const standardizedPathname = standardizePathname({
20
- config,
21
- pathname: unprefixedPathname,
22
- });
23
- // Add locale prefix to pathname
24
- const localePrefixedPathname = localePrefixPathname({
25
- config,
26
- pathname: standardizedPathname,
27
- locale,
28
- });
29
- return {
30
- unprefixedPathname,
31
- standardizedPathname,
32
- localePrefixedPathname,
33
- };
34
- };
35
-
36
- export { localizePathname };
@@ -1,2 +0,0 @@
1
- import type { ConfigProviderProps } from "./types";
2
- export declare function ConfigProvider({ value: { config, pathname }, children, }: ConfigProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import type { IntorProviderProps } from "./types";
2
- export declare const IntorProvider: ({ value: { config, pathname, initialLocale, messages, onLocaleChange, isLoading, }, children, }: IntorProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,48 +0,0 @@
1
- "use client";
2
- import { jsx } from 'react/jsx-runtime';
3
- import * as React from 'react';
4
- import '../config/context.js';
5
- import { useConfig } from '../config/hook.js';
6
- import { useInitLocaleCookie } from './utils/use-init-locale-cookie.js';
7
-
8
-
9
-
10
- import '../../../../config/constants/cache.constants.js';
11
-
12
-
13
-
14
-
15
- import '../messages/context.js';
16
- import { useMessages } from '../messages/hook.js';
17
- import { LocaleContext } from './context.js';
18
- import { changeLocale } from './utils/change-locale.js';
19
-
20
- // provider
21
- function LocaleProvider({ value: { initialLocale, onLocaleChange }, children, }) {
22
- const { config } = useConfig();
23
- const { refetchMessages } = useMessages();
24
- const { loader, cookie } = config;
25
- // Current locale
26
- const [currentLocale, setCurrentLocale] = React.useState(initialLocale);
27
- useInitLocaleCookie({ config, locale: initialLocale }); // Hook: Initialize cookie (If cookie not exist yet)
28
- // Change locale and set cookie (If using dynamic api: refetch messages)
29
- const setLocale = React.useCallback(async (newLocale) => {
30
- changeLocale({
31
- currentLocale,
32
- newLocale,
33
- loader,
34
- cookie,
35
- setLocale: setCurrentLocale,
36
- refetchMessages,
37
- });
38
- onLocaleChange?.(newLocale);
39
- }, [currentLocale, loader, cookie, refetchMessages, onLocaleChange]);
40
- // context value
41
- const value = React.useMemo(() => ({
42
- locale: currentLocale,
43
- setLocale,
44
- }), [currentLocale, setLocale]);
45
- return (jsx(LocaleContext.Provider, { value: value, children: children }));
46
- }
47
-
48
- export { LocaleProvider };
@@ -1,22 +0,0 @@
1
- import type { CookieResolvedOptions } from "../../../../../config/types/cookie.types";
2
- import type { LoaderOptions } from "../../../../../config/types/loader.types";
3
- import type { Locale } from "intor-translator";
4
- type Params = {
5
- currentLocale: Locale;
6
- newLocale: Locale;
7
- loader?: LoaderOptions;
8
- cookie: CookieResolvedOptions;
9
- setLocale: (locale: Locale) => void;
10
- refetchMessages?: (locale: Locale) => Promise<void>;
11
- };
12
- /**
13
- * Change the locale on the client side.
14
- *
15
- * The following steps will be performed:
16
- * 1. Update the locale state
17
- * 2. Set the locale cookie (if not disabled and autoSetCookie is enabled)
18
- * 3. Update the <html lang> attribute
19
- * 4. Refetch messages if using a remote API loader
20
- */
21
- export declare const changeLocale: ({ currentLocale, newLocale, loader, cookie, setLocale, refetchMessages, }: Params) => void;
22
- export {};
@@ -1,35 +0,0 @@
1
- import { setLocaleCookieBrowser } from '../../../../../shared/utils/client/set-locale-cookie-browser.js';
2
-
3
- /**
4
- * Change the locale on the client side.
5
- *
6
- * The following steps will be performed:
7
- * 1. Update the locale state
8
- * 2. Set the locale cookie (if not disabled and autoSetCookie is enabled)
9
- * 3. Update the <html lang> attribute
10
- * 4. Refetch messages if using a remote API loader
11
- */
12
- const changeLocale = ({ currentLocale, newLocale, loader, cookie, setLocale, refetchMessages, }) => {
13
- if (typeof document === "undefined")
14
- return;
15
- const { type } = loader || {};
16
- // Exit early if the new locale is the same as the current one
17
- if (newLocale === currentLocale)
18
- return;
19
- // Warn: Using dynamic local cannot switch locale with CSR only
20
- if (type === "local") {
21
- console.warn(`[Intor] You are using "loader type: local" to switch languages. Please make sure to use the wrapped <Link> component to trigger a page reload, ensuring that the translation data is dynamically updated.`);
22
- }
23
- // Update the locale state
24
- setLocale(newLocale);
25
- // Set the locale cookie on client side
26
- setLocaleCookieBrowser({ cookie, locale: newLocale });
27
- // Update the <html lang> attribute
28
- document.documentElement.lang = newLocale;
29
- // Refetch messages via remote API, if applicable
30
- if (type === "remote" && refetchMessages) {
31
- void refetchMessages(newLocale);
32
- }
33
- };
34
-
35
- export { changeLocale };
@@ -1,8 +0,0 @@
1
- import type { IntorResolvedConfig } from "../../../../../config/types/intor-config.types";
2
- /**
3
- * Init locale cookie
4
- */
5
- export declare const useInitLocaleCookie: ({ config, locale, }: {
6
- config: IntorResolvedConfig;
7
- locale: string;
8
- }) => void;
@@ -1,28 +0,0 @@
1
- import * as React from 'react';
2
- import { setLocaleCookieBrowser } from '../../../../../shared/utils/client/set-locale-cookie-browser.js';
3
-
4
- /**
5
- * Init locale cookie
6
- */
7
- const useInitLocaleCookie = ({ config, locale, }) => {
8
- React.useEffect(() => {
9
- if (typeof document === "undefined")
10
- return;
11
- const { cookie, routing } = config;
12
- const { firstVisit } = routing;
13
- const cookies = document.cookie.split(";").map((c) => c.trim());
14
- const isCookieExists = cookies.some((c) => c.startsWith(`${cookie.name}=`));
15
- // Cookie already exists
16
- if (isCookieExists)
17
- return;
18
- // If first visit is not using redirect, do not set cookie
19
- if (!firstVisit.redirect)
20
- return;
21
- // Cookie is disabled or autoSetCookie is disabled
22
- if (!cookie.enabled || !cookie.autoSetCookie)
23
- return;
24
- setLocaleCookieBrowser({ cookie, locale });
25
- }, []); // Mount only once
26
- };
27
-
28
- export { useInitLocaleCookie };
@@ -1,16 +0,0 @@
1
- import type { IntorResolvedConfig } from "../../../../../config/types/intor-config.types";
2
- import type { LocaleMessages } from "intor-translator";
3
- import * as React from "react";
4
- type UseRefetchMessagesParams = {
5
- config: IntorResolvedConfig;
6
- pathname: string;
7
- setLoadedMessages: React.Dispatch<React.SetStateAction<LocaleMessages | null>>;
8
- setIsLoadingMessages: React.Dispatch<React.SetStateAction<boolean>>;
9
- };
10
- /**
11
- * Refetch messages (Dynamic API)
12
- */
13
- export declare const useRefetchMessages: ({ config, pathname, setLoadedMessages, setIsLoadingMessages, }: UseRefetchMessagesParams) => {
14
- refetchMessages: (newLocale: string) => Promise<void>;
15
- };
16
- export {};
@@ -1,57 +0,0 @@
1
- import * as React from 'react';
2
-
3
-
4
-
5
- import '../../../../../config/constants/cache.constants.js';
6
-
7
-
8
-
9
-
10
- import { mergeMessages } from '../../../../../shared/utils/merge-messages.js';
11
- import { resolveNamespaces } from '../../../../../shared/utils/resolve-namespaces.js';
12
- import { loadRemoteMessages } from '../../../../../server/messages/load-remote-messages/load-remote-messages.js';
13
-
14
- /**
15
- * Refetch messages (Dynamic API)
16
- */
17
- const useRefetchMessages = ({ config, pathname, setLoadedMessages, setIsLoadingMessages, }) => {
18
- const { messages: staticMessages, loader } = config;
19
- const namespaces = React.useMemo(() => {
20
- if (!loader)
21
- return [];
22
- return resolveNamespaces({ config, pathname });
23
- }, [config, pathname]);
24
- // Refetch messages
25
- const refetchMessages = React.useCallback(async (newLocale) => {
26
- if (loader?.type === "remote") {
27
- setIsLoadingMessages(true);
28
- const loadedMessages = await loadRemoteMessages({
29
- rootDir: loader.rootDir,
30
- remoteUrl: loader.remoteUrl,
31
- remoteHeaders: loader.remoteHeaders,
32
- locale: newLocale,
33
- fallbackLocales: config.fallbackLocales[newLocale] || [],
34
- namespaces,
35
- extraOptions: {
36
- cacheOptions: config.cache,
37
- loggerOptions: { id: config.id },
38
- },
39
- });
40
- const messages = mergeMessages(staticMessages, loadedMessages);
41
- setLoadedMessages(messages);
42
- setIsLoadingMessages(false);
43
- }
44
- }, [
45
- loader,
46
- config.fallbackLocales,
47
- config.cache,
48
- config.id,
49
- setIsLoadingMessages,
50
- namespaces,
51
- staticMessages,
52
- setLoadedMessages,
53
- ]);
54
- return { refetchMessages };
55
- };
56
-
57
- export { useRefetchMessages };
@@ -1,2 +0,0 @@
1
- import * as React from "react";
2
- export declare const TranslateHandlersContext: React.Context<import("intor-translator").TranslateHandlers | undefined>;
@@ -1,6 +0,0 @@
1
- import * as React from 'react';
2
-
3
- // context
4
- const TranslateHandlersContext = React.createContext(undefined);
5
-
6
- export { TranslateHandlersContext };
@@ -1,2 +0,0 @@
1
- import type { TranslateHandlersContextValue } from "../../../../client/react/contexts/translate-handlers/types";
2
- export declare function useTranslateHandlers(): TranslateHandlersContextValue;
@@ -1,10 +0,0 @@
1
- import * as React from 'react';
2
- import { TranslateHandlersContext } from './context.js';
3
-
4
- // hook
5
- function useTranslateHandlers() {
6
- const context = React.useContext(TranslateHandlersContext);
7
- return context;
8
- }
9
-
10
- export { useTranslateHandlers };
@@ -1,3 +0,0 @@
1
- export { TranslateHandlersProvider } from "./provider";
2
- export { useTranslateHandlers } from "./hook";
3
- export type { TranslateHandlersProviderProps } from "./types";
@@ -1,2 +0,0 @@
1
- import type { TranslateHandlersProviderProps } from "./types";
2
- export declare const TranslateHandlersProvider: ({ handlers, children, }: TranslateHandlersProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,11 +0,0 @@
1
- "use client";
2
- import { jsx } from 'react/jsx-runtime';
3
- import 'react';
4
- import { TranslateHandlersContext } from './context.js';
5
-
6
- // provider
7
- const TranslateHandlersProvider = ({ handlers, children, }) => {
8
- return (jsx(TranslateHandlersContext.Provider, { value: handlers, children: children }));
9
- };
10
-
11
- export { TranslateHandlersProvider };
@@ -1,7 +0,0 @@
1
- import type { TranslateHandlers } from "intor-translator";
2
- import type * as React from "react";
3
- export type TranslateHandlersContextValue = TranslateHandlers;
4
- export type TranslateHandlersProviderProps = {
5
- handlers: TranslateHandlers;
6
- children: React.ReactNode;
7
- };
@@ -1,3 +0,0 @@
1
- import type { TranslatorContextValue } from "./types";
2
- import type { LocaleMessages } from "intor-translator";
3
- export declare function useTranslator<M extends LocaleMessages = LocaleMessages>(): TranslatorContextValue<M>;
@@ -1,11 +0,0 @@
1
- import type { LocaleMessages, Translator } from "intor-translator";
2
- import type * as React from "react";
3
- export type TranslatorContextValue<M extends LocaleMessages = LocaleMessages> = {
4
- translator: Translator<M>;
5
- };
6
- export type TranslatorProviderProps = {
7
- value: {
8
- isLoading?: boolean;
9
- };
10
- children: React.ReactNode;
11
- };
@@ -1,12 +0,0 @@
1
- import type { IfGen, GenConfigKeys, GenMessages } from "../../../shared/types/generated.types";
2
- import type { TranslatorInstance } from "../../../shared/types/translator-instance.types";
3
- import type { LocalizedNodeKeys } from "intor-translator";
4
- /**
5
- * React hook to access a ready-to-use translator instance in the client.
6
- *
7
- * - Provides `t`, `hasKey`, `messages`, `locale`, `isLoading` and `setLocale`.
8
- * - Supports optional `preKey` to create a scoped translator for nested keys.
9
- * - Can accept a generic type parameter `M` to strongly type your messages.
10
- */
11
- export declare function useTranslator<CK extends GenConfigKeys = "__default__">(): TranslatorInstance<GenMessages<CK>>;
12
- export declare function useTranslator<CK extends GenConfigKeys = "__default__", PK extends string = LocalizedNodeKeys<GenMessages<CK>>>(preKey: IfGen<PK, string>): TranslatorInstance<GenMessages<CK>, PK>;
@@ -1,4 +0,0 @@
1
- export { IntorProvider, type IntorProviderProps, } from "./contexts/intor-provider";
2
- export { TranslateHandlersProvider, type TranslateHandlersProviderProps, } from "./contexts/translate-handlers";
3
- export { useTranslator } from "./hooks/use-translator";
4
- export { getInitialLocale } from "../../client/shared/utils/get-initial-locale";
@@ -1,11 +0,0 @@
1
- import type { IntorResolvedConfig } from "../../../config";
2
- /**
3
- * Get the initial locale from cookie, browser, or default.
4
- *
5
- * - This function is intended for client-side use only.
6
- *
7
- * @param {IntorResolvedConfig} config - The intor configuration.
8
- * @param {string} [cookieName=config.cookie.name] - Optional cookie name to check.
9
- * @returns {string} The matched locale or the default locale.
10
- */
11
- export declare function getInitialLocale(config: IntorResolvedConfig, cookieName?: string): string;
@@ -1,21 +0,0 @@
1
- /**
2
- * Get the initial locale from cookie, browser, or default.
3
- *
4
- * - This function is intended for client-side use only.
5
- *
6
- * @param {IntorResolvedConfig} config - The intor configuration.
7
- * @param {string} [cookieName=config.cookie.name] - Optional cookie name to check.
8
- * @returns {string} The matched locale or the default locale.
9
- */
10
- function getInitialLocale(config, cookieName = config.cookie.name) {
11
- const { defaultLocale, supportedLocales } = config;
12
- const match = document.cookie.match(new RegExp(`(?:^|; )${cookieName.replaceAll(/([.$?*|{}()[\]\\/+^])/g, String.raw `\$1`)}=([^;]*)`));
13
- const cookieLocale = match ? decodeURIComponent(match[1]) : null;
14
- const browserLocale = navigator.languages?.[0] || navigator.language;
15
- const locale = cookieLocale || browserLocale || defaultLocale;
16
- const normalized = locale.toLowerCase();
17
- const matched = supportedLocales.find((l) => l.toLowerCase() === normalized);
18
- return matched ?? defaultLocale;
19
- }
20
-
21
- export { getInitialLocale };
@@ -1,2 +0,0 @@
1
- import type { IntorRawConfig, IntorResolvedConfig } from "../config/types/intor-config.types";
2
- export declare const defineIntorConfig: (config: IntorRawConfig) => IntorResolvedConfig;
@@ -1,5 +0,0 @@
1
- export { defineIntorConfig } from "./define-intor-config";
2
- export { DEFAULT_CACHE_OPTIONS } from "./constants/cache.constants";
3
- export { DEFAULT_COOKIE_OPTIONS } from "./constants/cookie.constants";
4
- export { DEFAULT_ROUTING_OPTIONS } from "./constants/routing.constants";
5
- export type { IntorRawConfig, IntorResolvedConfig, } from "./types/intor-config.types";
@@ -1,11 +0,0 @@
1
- import type { CookieRawOptions, CookieResolvedOptions } from "../../config/types/cookie.types";
2
- /**
3
- * Resolves the final cookie options by merging the provided options with the default ones.
4
- *
5
- * This function accepts custom cookie options and merges them with the default values. If no custom options
6
- * are provided, the default options will be used. The function returns the resolved cookie options.
7
- *
8
- * @param cookie - The custom cookie options to override the defaults (optional).
9
- * @returns The resolved cookie options, merging the defaults and the provided options.
10
- */
11
- export declare const resolveCookieOptions: (cookie?: CookieRawOptions) => CookieResolvedOptions;
@@ -1,19 +0,0 @@
1
- import { DEFAULT_COOKIE_OPTIONS } from '../constants/cookie.constants.js';
2
-
3
- /**
4
- * Resolves the final cookie options by merging the provided options with the default ones.
5
- *
6
- * This function accepts custom cookie options and merges them with the default values. If no custom options
7
- * are provided, the default options will be used. The function returns the resolved cookie options.
8
- *
9
- * @param cookie - The custom cookie options to override the defaults (optional).
10
- * @returns The resolved cookie options, merging the defaults and the provided options.
11
- */
12
- const resolveCookieOptions = (cookie = {}) => {
13
- return {
14
- ...DEFAULT_COOKIE_OPTIONS,
15
- ...cookie,
16
- };
17
- };
18
-
19
- export { resolveCookieOptions };
@@ -1,3 +0,0 @@
1
- import type { IntorRawConfig } from "../../config/types/intor-config.types";
2
- import type { FallbackLocalesMap, Locale } from "intor-translator";
3
- export declare const resolveFallbackLocales: (config: IntorRawConfig, supportedLocales?: readonly Locale[]) => FallbackLocalesMap;
@@ -1,13 +0,0 @@
1
- import type { RoutingRawOptions, RoutingResolvedOptions } from "../../config/types/routing.types";
2
- /**
3
- * Resolves routing options by merging default routing options with the provided custom options.
4
- * If any specific routing options are not provided, the default values will be used.
5
- * The function also normalizes the basePath if provided.
6
- *
7
- * @param {RoutingRawOptions} [routing={}] - The custom routing options to override the defaults.
8
- * It should be an object that may contain properties like `firstVisit`, `basePath`, etc.
9
- * If not provided, the default values will be used.
10
- * @returns {RoutingResolvedOptions} - The resolved routing options, merged from the defaults and provided values.
11
- * This includes the normalized `basePath` and any customized `firstVisit` settings.
12
- */
13
- export declare const resolveRoutingOptions: (routing?: RoutingRawOptions) => RoutingResolvedOptions;
@@ -1,28 +0,0 @@
1
- import { DEFAULT_ROUTING_OPTIONS } from '../constants/routing.constants.js';
2
- import 'lodash.merge';
3
- import { normalizePathname } from '../../shared/utils/pathname/normalize-pathname.js';
4
-
5
- /**
6
- * Resolves routing options by merging default routing options with the provided custom options.
7
- * If any specific routing options are not provided, the default values will be used.
8
- * The function also normalizes the basePath if provided.
9
- *
10
- * @param {RoutingRawOptions} [routing={}] - The custom routing options to override the defaults.
11
- * It should be an object that may contain properties like `firstVisit`, `basePath`, etc.
12
- * If not provided, the default values will be used.
13
- * @returns {RoutingResolvedOptions} - The resolved routing options, merged from the defaults and provided values.
14
- * This includes the normalized `basePath` and any customized `firstVisit` settings.
15
- */
16
- const resolveRoutingOptions = (routing = {}) => {
17
- return {
18
- ...DEFAULT_ROUTING_OPTIONS,
19
- ...routing,
20
- firstVisit: {
21
- ...DEFAULT_ROUTING_OPTIONS.firstVisit,
22
- ...routing.firstVisit,
23
- },
24
- basePath: normalizePathname(routing?.basePath || ""),
25
- };
26
- };
27
-
28
- export { resolveRoutingOptions };
@@ -1,23 +0,0 @@
1
- export type CookieRawOptions = {
2
- /** Enable cookie usage (read/write) - default: true */
3
- enabled?: boolean;
4
- /** Allow the system to automatically set cookies - default: true */
5
- autoSetCookie?: boolean;
6
- /** default: "intor.i18n.locale" */
7
- name?: string;
8
- /** default: null */
9
- domain?: string | null;
10
- /** default: "/" */
11
- path?: string;
12
- /** default: 60 * 60 * 24 * 365 (365 days) */
13
- maxAge?: number;
14
- /** default: false */
15
- httpOnly?: boolean;
16
- /** default: process.env.NODE_ENV !== "development" */
17
- secure?: boolean;
18
- /** default: lax */
19
- sameSite?: "lax" | "strict" | "none";
20
- };
21
- export type CookieResolvedOptions = Required<Omit<CookieRawOptions, "domain">> & {
22
- domain: string | null;
23
- };