intor 2.5.0 → 2.5.1

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 (294) hide show
  1. package/dist/core/src/client/shared/helpers/get-client-locale.js +5 -20
  2. package/dist/core/src/client/shared/utils/locale/detect-browser-locale.js +2 -8
  3. package/dist/core/src/client/shared/utils/locale/get-locale-from-cookie.js +5 -12
  4. package/dist/core/src/config/constants/cookie.js +9 -9
  5. package/dist/core/src/config/constants/routing.js +13 -14
  6. package/dist/core/src/config/define-intor-config.js +28 -44
  7. package/dist/core/src/config/resolvers/resolve-cookie-options.js +4 -4
  8. package/dist/core/src/config/resolvers/resolve-fallback-locales.js +33 -50
  9. package/dist/core/src/config/resolvers/resolve-routing-options.js +32 -61
  10. package/dist/core/src/config/validators/validate-default-locale.js +8 -13
  11. package/dist/core/src/config/validators/validate-id.js +8 -13
  12. package/dist/core/src/config/validators/validate-supported-locales.js +8 -13
  13. package/dist/core/src/core/constants/locale-placeholder.js +0 -1
  14. package/dist/core/src/core/error/intor-error.js +14 -29
  15. package/dist/core/src/core/locale/canonicalize-locale.js +7 -18
  16. package/dist/core/src/core/locale/match-locale.js +24 -50
  17. package/dist/core/src/core/locale/parse-locale.js +12 -22
  18. package/dist/core/src/core/logger/get-logger.js +26 -31
  19. package/dist/core/src/core/logger/global-logger-pool.js +4 -4
  20. package/dist/core/src/core/messages/internal-metadata.js +1 -1
  21. package/dist/core/src/core/messages/load-remote-messages/collect-remote-resources.js +13 -22
  22. package/dist/core/src/core/messages/load-remote-messages/fetch-remote-resource.js +30 -39
  23. package/dist/core/src/core/messages/load-remote-messages/load-remote-messages.js +72 -89
  24. package/dist/core/src/core/messages/load-remote-messages/resolve-remote-resources.js +7 -17
  25. package/dist/core/src/core/messages/merge-messages.js +17 -28
  26. package/dist/core/src/core/messages/utils/is-valid-messages.js +22 -37
  27. package/dist/core/src/core/messages/utils/nest-object-from-path.js +5 -17
  28. package/dist/core/src/core/render/create-html-renderer.js +29 -37
  29. package/dist/core/src/core/render/utils/escape-html.js +1 -6
  30. package/dist/core/src/core/render/utils/render-attributes.js +6 -11
  31. package/dist/core/src/core/translator/create-t-rich.js +6 -15
  32. package/dist/core/src/core/translator/create-translator.js +16 -24
  33. package/dist/core/src/core/utils/deep-merge.js +24 -42
  34. package/dist/core/src/core/utils/normalizers/normalize-cache-key.js +14 -40
  35. package/dist/core/src/core/utils/normalizers/normalize-pathname.js +19 -37
  36. package/dist/core/src/core/utils/normalizers/normalize-query.js +6 -20
  37. package/dist/core/src/core/utils/parse-cookie-header.js +11 -18
  38. package/dist/core/src/core/utils/resolve-loader-options.js +6 -32
  39. package/dist/core/src/edge/helpers/get-translator.js +14 -20
  40. package/dist/core/src/edge/translator/init-translator.js +23 -31
  41. package/dist/core/src/routing/inbound/helpers/resolve-inbound-from-request.js +21 -28
  42. package/dist/core/src/routing/inbound/resolve-inbound.js +22 -37
  43. package/dist/core/src/routing/inbound/resolve-locale/resolve-locale.js +22 -39
  44. package/dist/core/src/routing/inbound/resolve-pathname/resolve-pathname.js +24 -30
  45. package/dist/core/src/routing/inbound/resolve-pathname/strategies/all.js +10 -23
  46. package/dist/core/src/routing/inbound/resolve-pathname/strategies/except-default.js +11 -24
  47. package/dist/core/src/routing/inbound/resolve-pathname/strategies/none.js +1 -4
  48. package/dist/core/src/routing/locale/get-locale-from-accept-language.js +21 -36
  49. package/dist/core/src/routing/locale/get-locale-from-host.js +5 -28
  50. package/dist/core/src/routing/locale/get-locale-from-pathname.js +11 -37
  51. package/dist/core/src/routing/locale/get-locale-from-query.js +2 -17
  52. package/dist/core/src/routing/pathname/canonicalize-pathname.js +25 -67
  53. package/dist/core/src/routing/pathname/localize-pathname.js +12 -30
  54. package/dist/core/src/routing/pathname/materialize-pathname.js +9 -44
  55. package/dist/core/src/routing/pathname/standardize-pathname.js +6 -30
  56. package/dist/core/src/server/helpers/get-translator.js +26 -23
  57. package/dist/core/src/server/intor/intor.js +20 -25
  58. package/dist/core/src/server/messages/load-local-messages/cache/messages-pool.js +4 -7
  59. package/dist/core/src/server/messages/load-local-messages/load-local-messages.js +76 -92
  60. package/dist/core/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +59 -80
  61. package/dist/core/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +53 -87
  62. package/dist/core/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.js +3 -6
  63. package/dist/core/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +23 -35
  64. package/dist/core/src/server/messages/load-messages.js +56 -69
  65. package/dist/core/src/server/translator/init-translator.js +28 -30
  66. package/dist/express/src/adapters/express/create-intor-handler.js +35 -46
  67. package/dist/express/src/adapters/express/get-translator.js +2 -9
  68. package/dist/express/src/core/constants/locale-placeholder.js +0 -1
  69. package/dist/express/src/core/locale/canonicalize-locale.js +7 -18
  70. package/dist/express/src/core/locale/match-locale.js +24 -50
  71. package/dist/express/src/core/locale/parse-locale.js +12 -22
  72. package/dist/express/src/core/utils/normalizers/normalize-pathname.js +19 -37
  73. package/dist/express/src/core/utils/normalizers/normalize-query.js +6 -20
  74. package/dist/express/src/core/utils/parse-cookie-header.js +11 -18
  75. package/dist/express/src/routing/inbound/resolve-inbound.js +22 -37
  76. package/dist/express/src/routing/inbound/resolve-locale/resolve-locale.js +22 -39
  77. package/dist/express/src/routing/inbound/resolve-pathname/resolve-pathname.js +24 -30
  78. package/dist/express/src/routing/inbound/resolve-pathname/strategies/all.js +10 -23
  79. package/dist/express/src/routing/inbound/resolve-pathname/strategies/except-default.js +11 -24
  80. package/dist/express/src/routing/inbound/resolve-pathname/strategies/none.js +1 -4
  81. package/dist/express/src/routing/locale/get-locale-from-accept-language.js +21 -36
  82. package/dist/express/src/routing/locale/get-locale-from-host.js +5 -28
  83. package/dist/express/src/routing/locale/get-locale-from-pathname.js +11 -37
  84. package/dist/express/src/routing/locale/get-locale-from-query.js +2 -17
  85. package/dist/express/src/routing/pathname/canonicalize-pathname.js +25 -67
  86. package/dist/express/src/routing/pathname/localize-pathname.js +12 -30
  87. package/dist/express/src/routing/pathname/materialize-pathname.js +9 -44
  88. package/dist/express/src/routing/pathname/standardize-pathname.js +6 -30
  89. package/dist/fastify/src/adapters/fastify/create-intor-handler.js +35 -47
  90. package/dist/fastify/src/adapters/fastify/get-translator.js +2 -9
  91. package/dist/fastify/src/adapters/fastify/intor-fastify-plugin.js +29 -38
  92. package/dist/fastify/src/core/constants/locale-placeholder.js +0 -1
  93. package/dist/fastify/src/core/locale/canonicalize-locale.js +7 -18
  94. package/dist/fastify/src/core/locale/match-locale.js +24 -50
  95. package/dist/fastify/src/core/locale/parse-locale.js +12 -22
  96. package/dist/fastify/src/core/utils/normalizers/normalize-pathname.js +19 -37
  97. package/dist/fastify/src/core/utils/normalizers/normalize-query.js +6 -20
  98. package/dist/fastify/src/core/utils/parse-cookie-header.js +11 -18
  99. package/dist/fastify/src/routing/inbound/resolve-inbound.js +22 -37
  100. package/dist/fastify/src/routing/inbound/resolve-locale/resolve-locale.js +22 -39
  101. package/dist/fastify/src/routing/inbound/resolve-pathname/resolve-pathname.js +24 -30
  102. package/dist/fastify/src/routing/inbound/resolve-pathname/strategies/all.js +10 -23
  103. package/dist/fastify/src/routing/inbound/resolve-pathname/strategies/except-default.js +11 -24
  104. package/dist/fastify/src/routing/inbound/resolve-pathname/strategies/none.js +1 -4
  105. package/dist/fastify/src/routing/locale/get-locale-from-accept-language.js +21 -36
  106. package/dist/fastify/src/routing/locale/get-locale-from-host.js +5 -28
  107. package/dist/fastify/src/routing/locale/get-locale-from-pathname.js +11 -37
  108. package/dist/fastify/src/routing/locale/get-locale-from-query.js +2 -17
  109. package/dist/fastify/src/routing/pathname/canonicalize-pathname.js +25 -67
  110. package/dist/fastify/src/routing/pathname/localize-pathname.js +12 -30
  111. package/dist/fastify/src/routing/pathname/materialize-pathname.js +9 -44
  112. package/dist/fastify/src/routing/pathname/standardize-pathname.js +6 -30
  113. package/dist/hono/src/adapters/hono/create-intor-handler.js +33 -44
  114. package/dist/hono/src/adapters/hono/get-translator.js +2 -9
  115. package/dist/hono/src/core/constants/locale-placeholder.js +0 -1
  116. package/dist/hono/src/core/locale/canonicalize-locale.js +7 -18
  117. package/dist/hono/src/core/locale/match-locale.js +24 -50
  118. package/dist/hono/src/core/locale/parse-locale.js +12 -22
  119. package/dist/hono/src/core/utils/normalizers/normalize-pathname.js +19 -37
  120. package/dist/hono/src/core/utils/normalizers/normalize-query.js +6 -20
  121. package/dist/hono/src/core/utils/parse-cookie-header.js +11 -18
  122. package/dist/hono/src/routing/inbound/resolve-inbound.js +22 -37
  123. package/dist/hono/src/routing/inbound/resolve-locale/resolve-locale.js +22 -39
  124. package/dist/hono/src/routing/inbound/resolve-pathname/resolve-pathname.js +24 -30
  125. package/dist/hono/src/routing/inbound/resolve-pathname/strategies/all.js +10 -23
  126. package/dist/hono/src/routing/inbound/resolve-pathname/strategies/except-default.js +11 -24
  127. package/dist/hono/src/routing/inbound/resolve-pathname/strategies/none.js +1 -4
  128. package/dist/hono/src/routing/locale/get-locale-from-accept-language.js +21 -36
  129. package/dist/hono/src/routing/locale/get-locale-from-host.js +5 -28
  130. package/dist/hono/src/routing/locale/get-locale-from-pathname.js +11 -37
  131. package/dist/hono/src/routing/locale/get-locale-from-query.js +2 -17
  132. package/dist/hono/src/routing/pathname/canonicalize-pathname.js +25 -67
  133. package/dist/hono/src/routing/pathname/localize-pathname.js +12 -30
  134. package/dist/hono/src/routing/pathname/materialize-pathname.js +9 -44
  135. package/dist/hono/src/routing/pathname/standardize-pathname.js +6 -30
  136. package/dist/next/src/adapters/next/create-intor-handler.js +29 -47
  137. package/dist/next/src/adapters/next/link.js +33 -28
  138. package/dist/next/src/adapters/next/redirect.js +12 -15
  139. package/dist/next/src/adapters/next/server/get-locale.js +12 -23
  140. package/dist/next/src/adapters/next/server/get-translator.js +2 -9
  141. package/dist/next/src/adapters/next/server/intor.js +5 -13
  142. package/dist/next/src/adapters/next/use-router.js +47 -66
  143. package/dist/next/src/client/shared/navigation/execute-navigation.js +20 -38
  144. package/dist/next/src/client/shared/utils/build-cookie-string.js +18 -27
  145. package/dist/next/src/client/shared/utils/locale/set-locale-cookie.js +2 -9
  146. package/dist/next/src/core/constants/headers.js +4 -4
  147. package/dist/next/src/core/constants/locale-placeholder.js +0 -1
  148. package/dist/next/src/core/locale/canonicalize-locale.js +7 -18
  149. package/dist/next/src/core/locale/match-locale.js +24 -50
  150. package/dist/next/src/core/locale/parse-locale.js +12 -22
  151. package/dist/next/src/core/utils/normalizers/normalize-pathname.js +19 -37
  152. package/dist/next/src/core/utils/normalizers/normalize-query.js +6 -20
  153. package/dist/next/src/core/utils/resolve-loader-options.js +6 -29
  154. package/dist/next/src/policies/shoud-full-reload.js +2 -5
  155. package/dist/next/src/policies/should-sync-locale.js +1 -4
  156. package/dist/next/src/routing/inbound/resolve-inbound.js +24 -39
  157. package/dist/next/src/routing/inbound/resolve-locale/resolve-locale.js +22 -39
  158. package/dist/next/src/routing/inbound/resolve-pathname/resolve-pathname.js +24 -30
  159. package/dist/next/src/routing/inbound/resolve-pathname/strategies/all.js +13 -29
  160. package/dist/next/src/routing/inbound/resolve-pathname/strategies/except-default.js +14 -30
  161. package/dist/next/src/routing/inbound/resolve-pathname/strategies/none.js +1 -4
  162. package/dist/next/src/routing/locale/get-locale-from-accept-language.js +21 -36
  163. package/dist/next/src/routing/locale/get-locale-from-host.js +5 -28
  164. package/dist/next/src/routing/locale/get-locale-from-pathname.js +11 -37
  165. package/dist/next/src/routing/locale/get-locale-from-query.js +2 -17
  166. package/dist/next/src/routing/outbound/decide-strategy.js +9 -9
  167. package/dist/next/src/routing/outbound/determine-target.js +28 -44
  168. package/dist/next/src/routing/outbound/resolve-outbound.js +12 -16
  169. package/dist/next/src/routing/outbound/utils/derive-host-destination.js +5 -9
  170. package/dist/next/src/routing/outbound/utils/derive-query-destination.js +4 -7
  171. package/dist/next/src/routing/outbound/utils/is-external-destination.js +1 -7
  172. package/dist/next/src/routing/pathname/canonicalize-pathname.js +25 -67
  173. package/dist/next/src/routing/pathname/localize-pathname.js +12 -30
  174. package/dist/next/src/routing/pathname/materialize-pathname.js +9 -44
  175. package/dist/next/src/routing/pathname/standardize-pathname.js +6 -30
  176. package/dist/react/src/client/react/helpers/use-intor.js +25 -44
  177. package/dist/react/src/client/react/provider/effects/use-locale-effects.js +20 -25
  178. package/dist/react/src/client/react/provider/effects/use-messages-effects.js +17 -16
  179. package/dist/react/src/client/react/provider/intor-provider.js +63 -66
  180. package/dist/react/src/client/react/provider/use-intor-context.js +4 -4
  181. package/dist/react/src/client/react/render/create-react-renderer.js +18 -24
  182. package/dist/react/src/client/react/translator/create-t-rich.js +9 -22
  183. package/dist/react/src/client/react/translator/use-translator.js +11 -16
  184. package/dist/react/src/client/shared/messages/create-refetch-messages.js +41 -51
  185. package/dist/react/src/client/shared/provider/effective-state.js +2 -6
  186. package/dist/react/src/client/shared/utils/build-cookie-string.js +18 -27
  187. package/dist/react/src/client/shared/utils/locale/get-locale-from-cookie.js +5 -12
  188. package/dist/react/src/client/shared/utils/locale/set-document-locale.js +2 -8
  189. package/dist/react/src/client/shared/utils/locale/set-locale-cookie.js +2 -9
  190. package/dist/react/src/core/logger/get-logger.js +26 -31
  191. package/dist/react/src/core/logger/global-logger-pool.js +4 -4
  192. package/dist/react/src/core/messages/load-remote-messages/collect-remote-resources.js +13 -22
  193. package/dist/react/src/core/messages/load-remote-messages/fetch-remote-resource.js +30 -39
  194. package/dist/react/src/core/messages/load-remote-messages/load-remote-messages.js +72 -89
  195. package/dist/react/src/core/messages/load-remote-messages/resolve-remote-resources.js +7 -17
  196. package/dist/react/src/core/messages/merge-messages.js +17 -28
  197. package/dist/react/src/core/messages/utils/is-valid-messages.js +22 -37
  198. package/dist/react/src/core/messages/utils/nest-object-from-path.js +5 -17
  199. package/dist/react/src/core/utils/deep-merge.js +24 -42
  200. package/dist/react/src/core/utils/resolve-loader-options.js +6 -29
  201. package/dist/react/src/policies/should-persist-on-first-visit.js +1 -4
  202. package/dist/svelte/export/svelte/index.js +0 -6
  203. package/dist/svelte/src/client/shared/messages/create-refetch-messages.js +41 -51
  204. package/dist/svelte/src/client/shared/provider/effective-state.js +2 -6
  205. package/dist/svelte/src/client/shared/utils/build-cookie-string.js +18 -27
  206. package/dist/svelte/src/client/shared/utils/locale/get-locale-from-cookie.js +5 -12
  207. package/dist/svelte/src/client/shared/utils/locale/set-document-locale.js +2 -8
  208. package/dist/svelte/src/client/shared/utils/locale/set-locale-cookie.js +2 -9
  209. package/dist/svelte/src/client/svelte/provider/create-intor-store.js +59 -63
  210. package/dist/svelte/src/client/svelte/provider/effects/attach-locale-effects.js +20 -25
  211. package/dist/svelte/src/client/svelte/provider/effects/attach-messages-effects.js +21 -18
  212. package/dist/svelte/src/client/svelte/provider/get-intor-context.js +4 -4
  213. package/dist/svelte/src/client/svelte/translator/use-translator.js +11 -16
  214. package/dist/svelte/src/core/logger/get-logger.js +26 -31
  215. package/dist/svelte/src/core/logger/global-logger-pool.js +4 -4
  216. package/dist/svelte/src/core/messages/load-remote-messages/collect-remote-resources.js +13 -22
  217. package/dist/svelte/src/core/messages/load-remote-messages/fetch-remote-resource.js +30 -39
  218. package/dist/svelte/src/core/messages/load-remote-messages/load-remote-messages.js +72 -89
  219. package/dist/svelte/src/core/messages/load-remote-messages/resolve-remote-resources.js +7 -17
  220. package/dist/svelte/src/core/messages/merge-messages.js +17 -28
  221. package/dist/svelte/src/core/messages/utils/is-valid-messages.js +22 -37
  222. package/dist/svelte/src/core/messages/utils/nest-object-from-path.js +5 -17
  223. package/dist/svelte/src/core/render/create-html-renderer.js +29 -37
  224. package/dist/svelte/src/core/render/utils/escape-html.js +1 -6
  225. package/dist/svelte/src/core/render/utils/render-attributes.js +6 -11
  226. package/dist/svelte/src/core/translator/create-t-rich.js +6 -15
  227. package/dist/svelte/src/core/utils/deep-merge.js +24 -42
  228. package/dist/svelte/src/core/utils/resolve-loader-options.js +6 -29
  229. package/dist/svelte/src/policies/should-persist-on-first-visit.js +1 -4
  230. package/dist/svelte-kit/src/adapters/svelte-kit/create-intor-handler.js +37 -57
  231. package/dist/svelte-kit/src/adapters/svelte-kit/use-navigation.js +29 -27
  232. package/dist/svelte-kit/src/adapters/svelte-kit/utils/is-svelte-kit-ssg.js +4 -11
  233. package/dist/svelte-kit/src/client/shared/navigation/execute-navigation.js +19 -37
  234. package/dist/svelte-kit/src/client/shared/utils/build-cookie-string.js +18 -27
  235. package/dist/svelte-kit/src/client/shared/utils/locale/set-locale-cookie.js +2 -9
  236. package/dist/svelte-kit/src/core/constants/locale-placeholder.js +0 -1
  237. package/dist/svelte-kit/src/core/locale/canonicalize-locale.js +7 -18
  238. package/dist/svelte-kit/src/core/locale/match-locale.js +24 -50
  239. package/dist/svelte-kit/src/core/locale/parse-locale.js +12 -22
  240. package/dist/svelte-kit/src/core/utils/normalizers/normalize-pathname.js +19 -37
  241. package/dist/svelte-kit/src/core/utils/normalizers/normalize-query.js +6 -20
  242. package/dist/svelte-kit/src/core/utils/resolve-loader-options.js +6 -29
  243. package/dist/svelte-kit/src/policies/shoud-full-reload.js +2 -5
  244. package/dist/svelte-kit/src/policies/should-sync-locale.js +1 -4
  245. package/dist/svelte-kit/src/routing/inbound/resolve-inbound.js +22 -37
  246. package/dist/svelte-kit/src/routing/inbound/resolve-locale/resolve-locale.js +22 -39
  247. package/dist/svelte-kit/src/routing/inbound/resolve-pathname/resolve-pathname.js +24 -30
  248. package/dist/svelte-kit/src/routing/inbound/resolve-pathname/strategies/all.js +10 -23
  249. package/dist/svelte-kit/src/routing/inbound/resolve-pathname/strategies/except-default.js +11 -24
  250. package/dist/svelte-kit/src/routing/inbound/resolve-pathname/strategies/none.js +1 -4
  251. package/dist/svelte-kit/src/routing/locale/get-locale-from-accept-language.js +21 -36
  252. package/dist/svelte-kit/src/routing/locale/get-locale-from-host.js +5 -28
  253. package/dist/svelte-kit/src/routing/locale/get-locale-from-pathname.js +11 -37
  254. package/dist/svelte-kit/src/routing/locale/get-locale-from-query.js +2 -17
  255. package/dist/svelte-kit/src/routing/outbound/decide-strategy.js +9 -9
  256. package/dist/svelte-kit/src/routing/outbound/determine-target.js +28 -44
  257. package/dist/svelte-kit/src/routing/outbound/resolve-outbound.js +12 -16
  258. package/dist/svelte-kit/src/routing/outbound/utils/derive-host-destination.js +5 -9
  259. package/dist/svelte-kit/src/routing/outbound/utils/derive-query-destination.js +4 -7
  260. package/dist/svelte-kit/src/routing/outbound/utils/is-external-destination.js +1 -7
  261. package/dist/svelte-kit/src/routing/pathname/canonicalize-pathname.js +25 -67
  262. package/dist/svelte-kit/src/routing/pathname/localize-pathname.js +12 -30
  263. package/dist/svelte-kit/src/routing/pathname/materialize-pathname.js +9 -44
  264. package/dist/svelte-kit/src/routing/pathname/standardize-pathname.js +6 -30
  265. package/dist/types/src/routing/outbound/decide-strategy.d.ts +1 -1
  266. package/dist/types/src/routing/outbound/decide-strategy.d.ts.map +1 -1
  267. package/dist/vue/src/client/shared/messages/create-refetch-messages.js +41 -51
  268. package/dist/vue/src/client/shared/provider/effective-state.js +2 -6
  269. package/dist/vue/src/client/shared/utils/build-cookie-string.js +18 -27
  270. package/dist/vue/src/client/shared/utils/locale/get-locale-from-cookie.js +5 -12
  271. package/dist/vue/src/client/shared/utils/locale/set-document-locale.js +2 -8
  272. package/dist/vue/src/client/shared/utils/locale/set-locale-cookie.js +2 -9
  273. package/dist/vue/src/client/vue/helpers/use-intor.js +20 -42
  274. package/dist/vue/src/client/vue/provider/effects/use-locale-effects.js +23 -24
  275. package/dist/vue/src/client/vue/provider/effects/use-messages-effects.js +15 -24
  276. package/dist/vue/src/client/vue/provider/inject-intor-context.js +4 -4
  277. package/dist/vue/src/client/vue/provider/intor-provider.js +61 -66
  278. package/dist/vue/src/client/vue/render/create-vue-renderer.js +18 -24
  279. package/dist/vue/src/client/vue/translator/create-t-rich.js +5 -17
  280. package/dist/vue/src/client/vue/translator/trans.js +24 -31
  281. package/dist/vue/src/client/vue/translator/use-translator.js +12 -17
  282. package/dist/vue/src/core/logger/get-logger.js +26 -31
  283. package/dist/vue/src/core/logger/global-logger-pool.js +4 -4
  284. package/dist/vue/src/core/messages/load-remote-messages/collect-remote-resources.js +13 -22
  285. package/dist/vue/src/core/messages/load-remote-messages/fetch-remote-resource.js +30 -39
  286. package/dist/vue/src/core/messages/load-remote-messages/load-remote-messages.js +72 -89
  287. package/dist/vue/src/core/messages/load-remote-messages/resolve-remote-resources.js +7 -17
  288. package/dist/vue/src/core/messages/merge-messages.js +17 -28
  289. package/dist/vue/src/core/messages/utils/is-valid-messages.js +22 -37
  290. package/dist/vue/src/core/messages/utils/nest-object-from-path.js +5 -17
  291. package/dist/vue/src/core/utils/deep-merge.js +24 -42
  292. package/dist/vue/src/core/utils/resolve-loader-options.js +6 -29
  293. package/dist/vue/src/policies/should-persist-on-first-visit.js +1 -4
  294. package/package.json +2 -2
@@ -1,44 +1,29 @@
1
- /** Check if a value is a plain object (not null, not array) */
2
1
  function isPlainObject(value) {
3
- return typeof value === "object" && value !== null && !Array.isArray(value);
2
+ return typeof value === "object" && value !== null && !Array.isArray(value);
4
3
  }
5
- /**
6
- * Check if a value is a valid MessageObject.
7
- *
8
- * - Supports all MessageValue variants (primitive, array, object).
9
- * - Uses an iterative approach to avoid stack overflow.
10
- */
11
4
  function isValidMessages(value) {
12
- if (!isPlainObject(value))
13
- return false;
14
- const stack = [value];
15
- while (stack.length > 0) {
16
- const current = stack.pop();
17
- // primitives are always valid
18
- if (current === null ||
19
- typeof current === "string" ||
20
- typeof current === "number" ||
21
- typeof current === "boolean") {
22
- continue;
23
- }
24
- // array → validate each item
25
- if (Array.isArray(current)) {
26
- for (const item of current) {
27
- stack.push(item);
28
- }
29
- continue;
30
- }
31
- // object → validate each value
32
- if (isPlainObject(current)) {
33
- for (const v of Object.values(current)) {
34
- stack.push(v);
35
- }
36
- continue;
37
- }
38
- // everything else is invalid
39
- return false;
5
+ if (!isPlainObject(value)) return false;
6
+ const stack = [value];
7
+ while (stack.length > 0) {
8
+ const current = stack.pop();
9
+ if (current === null || typeof current === "string" || typeof current === "number" || typeof current === "boolean") {
10
+ continue;
40
11
  }
41
- return true;
12
+ if (Array.isArray(current)) {
13
+ for (const item of current) {
14
+ stack.push(item);
15
+ }
16
+ continue;
17
+ }
18
+ if (isPlainObject(current)) {
19
+ for (const v of Object.values(current)) {
20
+ stack.push(v);
21
+ }
22
+ continue;
23
+ }
24
+ return false;
25
+ }
26
+ return true;
42
27
  }
43
28
 
44
29
  export { isPlainObject, isValidMessages };
@@ -1,21 +1,9 @@
1
- /**
2
- * Wraps a value inside nested objects according to a given path.
3
- *
4
- * @example
5
- * ```ts
6
- * const value = { a: "A" };
7
- *
8
- * nestObjectFromPath(["auth", "verify"], value); // → { auth: { verify: { a: "A" } } }
9
- *
10
- * nestObjectFromPath([], value); // → { a: "A" }
11
- * ```
12
- */
13
1
  function nestObjectFromPath(path, value) {
14
- let obj = value;
15
- for (let i = path.length - 1; i >= 0; i--) {
16
- obj = { [path[i]]: obj };
17
- }
18
- return obj;
2
+ let obj = value;
3
+ for (let i = path.length - 1; i >= 0; i--) {
4
+ obj = { [path[i]]: obj };
5
+ }
6
+ return obj;
19
7
  }
20
8
 
21
9
  export { nestObjectFromPath };
@@ -1,47 +1,29 @@
1
- /**
2
- * Deeply merges two plain objects.
3
- *
4
- * - Nested plain objects → merged recursively
5
- * - Arrays / primitives → `b` overwrites `a`
6
- *
7
- * Debug behavior (optional):
8
- * - Emits override events via `onOverride`
9
- * - Zero overhead when no options are provided
10
- *
11
- * This function always returns a new plain object.
12
- */
13
1
  const deepMerge = (a = {}, b = {}, options) => {
14
- const result = { ...a };
15
- const basePath = options?._path ?? [];
16
- // Iterate only over b's own enumerable properties
17
- for (const key in b) {
18
- if (!Object.prototype.hasOwnProperty.call(b, key))
19
- continue;
20
- const aValue = a[key];
21
- const bValue = b[key];
22
- const nextPath = [...basePath, key];
23
- // Recursively merge when both sides are plain objects
24
- if (aValue &&
25
- bValue &&
26
- typeof aValue === "object" &&
27
- typeof bValue === "object" &&
28
- !Array.isArray(aValue) &&
29
- !Array.isArray(bValue)) {
30
- result[key] = deepMerge(aValue, bValue, options ? { ...options, _path: nextPath } : undefined);
31
- }
32
- else {
33
- // Emit override event only when debugging is enabled
34
- const isAdd = aValue === undefined;
35
- options?.onOverride?.({
36
- path: nextPath.join("."),
37
- prev: aValue,
38
- next: bValue,
39
- kind: isAdd ? "add" : "override",
40
- });
41
- result[key] = bValue;
42
- }
2
+ const result = { ...a };
3
+ const basePath = options?._path ?? [];
4
+ for (const key in b) {
5
+ if (!Object.prototype.hasOwnProperty.call(b, key)) continue;
6
+ const aValue = a[key];
7
+ const bValue = b[key];
8
+ const nextPath = [...basePath, key];
9
+ if (aValue && bValue && typeof aValue === "object" && typeof bValue === "object" && !Array.isArray(aValue) && !Array.isArray(bValue)) {
10
+ result[key] = deepMerge(
11
+ aValue,
12
+ bValue,
13
+ options ? { ...options, _path: nextPath } : void 0
14
+ );
15
+ } else {
16
+ const isAdd = aValue === void 0;
17
+ options?.onOverride?.({
18
+ path: nextPath.join("."),
19
+ prev: aValue,
20
+ next: bValue,
21
+ kind: isAdd ? "add" : "override"
22
+ });
23
+ result[key] = bValue;
43
24
  }
44
- return result;
25
+ }
26
+ return result;
45
27
  };
46
28
 
47
29
  export { deepMerge };
@@ -1,34 +1,11 @@
1
- /**
2
- * Resolve the effective message loader for a given runtime.
3
- *
4
- * Loader resolution follows an inheritance-based priority model:
5
- *
6
- * - client runtime:
7
- * client.loader → server.loader → root loader
8
- *
9
- * - server runtime:
10
- * server.loader → root loader
11
- *
12
- * This allows the client runtime to inherit server behavior
13
- * when no explicit client loader is provided.
14
- *
15
- * Notes:
16
- * - Static `messages` are intentionally NOT handled here.
17
- * - Returning `undefined` indicates that no loader is enabled
18
- * for the given runtime.
19
- */
20
1
  const resolveLoaderOptions = (config, runtime) => {
21
- // ------------------------------------------------
22
- // runtime: client
23
- // ------------------------------------------------
24
- {
25
- const client = config.client?.loader;
26
- if (client) {
27
- // Client loader is always remote by design
28
- return { mode: "remote", ...client };
29
- }
30
- return config.server?.loader ?? config.loader;
2
+ {
3
+ const client = config.client?.loader;
4
+ if (client) {
5
+ return { mode: "remote", ...client };
31
6
  }
7
+ return config.server?.loader ?? config.loader;
8
+ }
32
9
  };
33
10
 
34
11
  export { resolveLoaderOptions };
@@ -1,8 +1,5 @@
1
- /**
2
- * Allow locale persistence based on first-visit policy.
3
- */
4
1
  function shouldPersistOnFirstVisit(isFirstVisit, persistOnFirstVisit) {
5
- return !isFirstVisit || persistOnFirstVisit;
2
+ return !isFirstVisit || persistOnFirstVisit;
6
3
  }
7
4
 
8
5
  export { shouldPersistOnFirstVisit };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intor",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "description": "The i18n library for modern JavaScript",
5
5
  "author": "Yiming Liao",
6
6
  "homepage": "https://intor.dev",
@@ -126,7 +126,6 @@
126
126
  "devDependencies": {
127
127
  "@microsoft/api-extractor": "^7.57.6",
128
128
  "@rollup/plugin-alias": "6.0.0",
129
- "@rollup/plugin-typescript": "12.3.0",
130
129
  "@rollup/pluginutils": "5.3.0",
131
130
  "@sveltejs/kit": "2.50.1",
132
131
  "@testing-library/dom": "10.4.1",
@@ -162,6 +161,7 @@
162
161
  "remark-gfm": "4.0.1",
163
162
  "rollup": "4.53.3",
164
163
  "rollup-plugin-copy": "3.5.0",
164
+ "rollup-plugin-esbuild": "^6.2.1",
165
165
  "svelte": "5.46.1",
166
166
  "tsc-alias": "1.8.16",
167
167
  "tsd": "0.33.0",