intor 2.3.6 → 2.3.7
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.
- package/dist/core/export/config/index.js +2 -0
- package/dist/core/export/index.js +8 -4
- package/dist/core/export/server/index.js +1 -4
- package/dist/core/src/config/define-intor-config.js +5 -2
- package/dist/core/src/config/resolvers/resolve-cache-options.js +2 -1
- package/dist/core/src/config/resolvers/resolve-cookie-options.js +2 -1
- package/dist/core/src/config/resolvers/resolve-routing-options.js +7 -2
- package/dist/core/src/config/validators/validate-default-locale.js +3 -1
- package/dist/core/src/config/validators/validate-supported-locales.js +8 -4
- package/dist/{react/src/server → core/src/core}/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +11 -11
- package/dist/core/src/{server → core}/messages/load-remote-messages/load-remote-messages.js +13 -15
- package/dist/core/src/core/utils/resolve-loader-options.js +25 -0
- package/dist/core/src/server/helpers/local-messages-from-url.js +12 -6
- package/dist/core/src/server/intor/intor.js +11 -7
- package/dist/core/src/server/messages/load-local-messages/load-local-messages.js +16 -16
- package/dist/core/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +5 -3
- package/dist/core/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +7 -5
- package/dist/core/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +2 -2
- package/dist/core/src/server/messages/load-messages.js +28 -22
- package/dist/core/src/server/translator/get-translator.js +10 -15
- package/dist/next/src/adapters/next/navigation/link.js +1 -12
- package/dist/next/src/adapters/next/navigation/redirect.js +6 -6
- package/dist/next/src/adapters/next/navigation/use-pathname.js +6 -4
- package/dist/next/src/adapters/next/navigation/use-router.js +1 -14
- package/dist/next/src/adapters/next/proxy/intor-proxy.js +4 -1
- package/dist/next/src/adapters/next/server/get-locale.js +4 -1
- package/dist/next/src/adapters/next/server/get-translator.js +8 -2
- package/dist/next/src/core/error/intor-error.js +9 -0
- package/dist/next/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +11 -11
- package/dist/next/src/{server → core}/messages/load-remote-messages/load-remote-messages.js +13 -15
- package/dist/next/src/core/utils/resolve-loader-options.js +25 -0
- package/dist/next/src/routing/pathname/resolve-pathname.js +4 -1
- package/dist/next/src/routing/resolve-routing.js +6 -3
- package/dist/next/src/server/messages/load-local-messages/load-local-messages.js +16 -16
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +5 -3
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +7 -5
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +2 -2
- package/dist/next/src/server/messages/load-messages.js +28 -22
- package/dist/next/src/server/translator/get-translator.js +10 -15
- package/dist/react/export/react/index.js +5 -15
- package/dist/react/src/client/helpers/get-client-locale.js +4 -1
- package/dist/react/src/client/react/helpers/use-load-messages.js +46 -0
- package/dist/{next → react}/src/client/react/navigation/use-navigation-strategy.js +11 -7
- package/dist/{next → react}/src/client/react/navigation/use-navigation-target.js +6 -3
- package/dist/react/src/client/react/provider/effects/use-locale-effects.js +14 -0
- package/dist/react/src/client/react/provider/effects/use-messages-effects.js +24 -0
- package/dist/react/src/client/react/provider/intor-provider.js +70 -0
- package/dist/react/src/client/react/provider/use-intor.js +11 -0
- package/dist/react/src/client/react/render/create-react-renderer.js +2 -2
- package/dist/react/src/client/react/translator/use-translator.js +9 -20
- package/dist/react/src/client/shared/messages/create-refetch-messages.js +61 -0
- package/dist/react/src/core/constants/prefix-placeholder.js +4 -0
- package/dist/react/src/core/error/intor-error.js +9 -0
- package/dist/{core/src/server → react/src/core}/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +11 -11
- package/dist/react/src/{server → core}/messages/load-remote-messages/load-remote-messages.js +13 -15
- package/dist/react/src/core/utils/is-external-destination.js +11 -0
- package/dist/react/src/core/utils/normalizers/normalize-pathname.js +43 -0
- package/dist/react/src/core/utils/pathname/get-unprefixed-pathname.js +39 -0
- package/dist/react/src/core/utils/pathname/locale-prefix-pathname.js +38 -0
- package/dist/react/src/core/utils/pathname/localize-pathname.js +36 -0
- package/dist/react/src/core/utils/pathname/standardize-pathname.js +30 -0
- package/dist/react/src/core/utils/resolve-loader-options.js +32 -0
- package/dist/{next → react}/src/routing/resolve-navigation-target.js +5 -2
- package/dist/svelte/export/svelte/index.js +6 -0
- package/dist/svelte/src/client/helpers/get-client-locale.js +27 -0
- package/dist/svelte/src/client/shared/messages/create-refetch-messages.js +61 -0
- package/dist/svelte/src/client/shared/utils/locale/detect-browser-locale.js +12 -0
- package/dist/svelte/src/client/shared/utils/locale/get-locale-cookie-browser.js +16 -0
- package/dist/svelte/src/client/shared/utils/locale/set-document-locale.js +12 -0
- package/dist/svelte/src/client/svelte/runtime/create-intor.js +70 -0
- package/dist/svelte/src/client/svelte/runtime/effects/locale-effects.js +19 -0
- package/dist/svelte/src/client/svelte/runtime/effects/messages-effects.js +23 -0
- package/dist/svelte/src/core/error/intor-error.js +9 -0
- package/dist/svelte/src/core/logger/get-logger.js +39 -0
- package/dist/svelte/src/core/logger/global-logger-pool.js +8 -0
- package/dist/svelte/src/core/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +55 -0
- package/dist/svelte/src/core/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
- package/dist/svelte/src/core/messages/load-remote-messages/load-remote-messages.js +108 -0
- package/dist/svelte/src/core/messages/utils/is-valid-messages.js +36 -0
- package/dist/svelte/src/core/utils/deep-merge.js +31 -0
- package/dist/svelte/src/core/utils/normalizers/normalize-cache-key.js +45 -0
- package/dist/svelte/src/core/utils/normalizers/normalize-locale.js +59 -0
- package/dist/svelte/src/core/utils/resolve-loader-options.js +32 -0
- package/dist/types/export/index.d.ts +1 -3
- package/dist/types/export/internal/index.d.ts +1 -1
- package/dist/types/export/react/index.d.ts +4 -1
- package/dist/types/export/server/index.d.ts +1 -1
- package/dist/types/export/svelte/index.d.ts +1 -0
- package/dist/types/export/vue/index.d.ts +1 -0
- package/dist/types/src/adapters/next/navigation/link.d.ts +1 -1
- package/dist/types/src/adapters/next/navigation/redirect.d.ts +1 -1
- package/dist/types/src/adapters/next/navigation/use-router.d.ts +1 -1
- package/dist/types/src/adapters/next/proxy/utils/set-locale-cookie-edge.d.ts +1 -1
- package/dist/types/src/adapters/next/server/get-locale.d.ts +2 -2
- package/dist/types/src/adapters/next/server/get-translator.d.ts +9 -24
- package/dist/types/src/client/react/helpers/index.d.ts +1 -0
- package/dist/types/src/client/react/helpers/use-load-messages.d.ts +10 -0
- package/dist/types/src/client/react/index.d.ts +2 -1
- package/dist/types/src/client/react/navigation/use-navigation-strategy.d.ts +1 -1
- package/dist/types/src/client/react/navigation/use-navigation-target.d.ts +1 -1
- package/dist/types/src/client/react/provider/effects/use-locale-effects.d.ts +3 -0
- package/dist/types/src/client/react/provider/effects/use-messages-effects.d.ts +4 -0
- package/dist/types/src/client/react/{contexts/intor-provider → provider}/index.d.ts +1 -0
- package/dist/types/src/client/react/provider/intor-provider.d.ts +5 -0
- package/dist/types/src/client/react/provider/types.d.ts +22 -0
- package/dist/types/src/client/react/provider/use-intor.d.ts +2 -0
- package/dist/types/src/client/react/render/create-react-renderer.d.ts +1 -0
- package/dist/types/src/client/react/translator/create-t-rich.d.ts +1 -1
- package/dist/types/src/client/react/translator/t.d.ts +2 -2
- package/dist/types/src/client/react/translator/translator-instance.d.ts +12 -8
- package/dist/types/src/client/react/translator/use-translator.d.ts +3 -3
- package/dist/types/src/client/shared/messages/create-refetch-messages.d.ts +18 -0
- package/dist/types/src/client/shared/messages/index.d.ts +1 -0
- package/dist/types/src/client/shared/types/bootstrap.d.ts +16 -0
- package/dist/types/src/client/shared/types/index.d.ts +1 -1
- package/dist/types/src/client/shared/utils/build-cookie-string.d.ts +1 -1
- package/dist/types/src/client/shared/utils/locale/set-locale-cookie-browser.d.ts +1 -1
- package/dist/types/src/client/svelte/helpers/create-messages.d.ts +11 -0
- package/dist/types/src/client/svelte/helpers/index.d.ts +1 -0
- package/dist/types/src/client/svelte/index.d.ts +3 -0
- package/dist/types/src/client/svelte/runtime/create-intor.d.ts +13 -0
- package/dist/types/src/client/svelte/runtime/effects/locale-effects.d.ts +11 -0
- package/dist/types/src/client/svelte/runtime/effects/messages-effects.d.ts +9 -0
- package/dist/types/src/client/svelte/runtime/index.d.ts +1 -0
- package/dist/types/src/client/svelte/runtime/types.d.ts +9 -0
- package/dist/types/src/client/vue/helpers/index.d.ts +1 -0
- package/dist/types/src/client/vue/helpers/use-load-messages.d.ts +11 -0
- package/dist/types/src/client/vue/index.d.ts +4 -0
- package/dist/types/src/client/vue/provider/effects/use-locale-effects.d.ts +4 -0
- package/dist/types/src/client/vue/provider/effects/use-messages-effects.d.ts +11 -0
- package/dist/types/src/client/vue/provider/index.d.ts +2 -0
- package/dist/types/src/client/vue/provider/inject.d.ts +3 -0
- package/dist/types/src/client/vue/provider/intor-provider.d.ts +4 -0
- package/dist/types/src/client/vue/provider/types.d.ts +18 -0
- package/dist/types/src/client/vue/render/create-vue-renderer.d.ts +18 -0
- package/dist/types/src/client/vue/render/index.d.ts +2 -0
- package/dist/types/src/client/vue/render/render-rich-message-react.d.ts +13 -0
- package/dist/types/src/client/vue/render/types.d.ts +15 -0
- package/dist/types/src/client/vue/translator/create-t-rich.d.ts +16 -0
- package/dist/types/src/client/vue/translator/index.d.ts +2 -0
- package/dist/types/src/client/vue/translator/t.d.ts +38 -0
- package/dist/types/src/client/vue/translator/translator-instance.d.ts +16 -0
- package/dist/types/src/client/vue/translator/use-translator.d.ts +8 -0
- package/dist/types/src/config/constants/cache.d.ts +2 -0
- package/dist/types/src/config/constants/cookie.d.ts +2 -0
- package/dist/types/src/config/constants/index.d.ts +3 -0
- package/dist/types/src/config/constants/routing.d.ts +2 -0
- package/dist/types/src/config/define-intor-config.d.ts +1 -1
- package/dist/types/src/config/index.d.ts +2 -1
- package/dist/types/src/config/resolvers/resolve-cache-options.d.ts +1 -1
- package/dist/types/src/config/resolvers/resolve-cookie-options.d.ts +1 -1
- package/dist/types/src/config/resolvers/resolve-fallback-locales.d.ts +1 -1
- package/dist/types/src/config/resolvers/resolve-routing-options.d.ts +1 -1
- package/dist/types/src/config/types/index.d.ts +7 -0
- package/dist/types/src/config/types/{intor-config.types.d.ts → intor-config.d.ts} +28 -24
- package/dist/types/src/config/types/{loader.types.d.ts → loader.d.ts} +15 -12
- package/dist/types/src/config/types/{logger.types.d.ts → logger.d.ts} +1 -0
- package/dist/types/src/config/types/{routing.types.d.ts → routing.d.ts} +1 -1
- package/dist/types/src/config/types/translator.d.ts +7 -0
- package/dist/types/src/config/validators/validate-default-locale.d.ts +1 -1
- package/dist/types/src/config/validators/validate-supported-locales.d.ts +1 -1
- package/dist/types/src/core/index.d.ts +6 -0
- package/dist/types/src/{server/shared → core}/logger/get-logger.d.ts +3 -4
- package/dist/types/src/core/logger/index.d.ts +2 -0
- package/dist/types/src/core/messages/index.d.ts +4 -0
- package/dist/types/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.d.ts +1 -1
- package/dist/types/src/core/messages/load-remote-messages/fetch-locale-messages/types.d.ts +12 -0
- package/dist/types/src/core/messages/load-remote-messages/index.d.ts +1 -0
- package/dist/types/src/{server → core}/messages/load-remote-messages/load-remote-messages.d.ts +1 -1
- package/dist/types/src/core/messages/load-remote-messages/types.d.ts +15 -0
- package/dist/types/src/{server/messages/shared → core/messages}/types.d.ts +8 -5
- package/dist/types/src/{server/messages/shared → core/messages}/utils/is-valid-messages.d.ts +1 -1
- package/dist/types/src/{shared → core}/types/generated.d.ts +1 -1
- package/dist/types/src/core/types/index.d.ts +3 -0
- package/dist/types/src/{shared → core}/types/translator-instance.d.ts +2 -6
- package/dist/types/src/{shared → core}/utils/index.d.ts +2 -0
- package/dist/types/src/{shared → core}/utils/locale/get-locale-from-pathname.d.ts +1 -1
- package/dist/types/src/{shared → core}/utils/locale/get-locale-from-query.d.ts +1 -1
- package/dist/types/src/{shared → core}/utils/pathname/get-unprefixed-pathname.d.ts +1 -1
- package/dist/types/src/{shared → core}/utils/pathname/locale-prefix-pathname.d.ts +1 -1
- package/dist/types/src/{shared → core}/utils/pathname/localize-pathname.d.ts +1 -1
- package/dist/types/src/{shared → core}/utils/pathname/standardize-pathname.d.ts +1 -1
- package/dist/types/src/core/utils/resolve-loader-options.d.ts +21 -0
- package/dist/types/src/routing/index.d.ts +2 -0
- package/dist/types/src/routing/locale/resolve-locale.d.ts +1 -1
- package/dist/types/src/routing/locale/types.d.ts +1 -1
- package/dist/types/src/routing/pathname/resolve-pathname.d.ts +1 -1
- package/dist/types/src/routing/pathname/types.d.ts +1 -1
- package/dist/types/src/routing/resolve-navigation-target.d.ts +1 -1
- package/dist/types/src/routing/resolve-routing.d.ts +1 -1
- package/dist/types/src/server/helpers/index.d.ts +1 -1
- package/dist/types/src/server/helpers/local-messages-from-url.d.ts +15 -5
- package/dist/types/src/server/index.d.ts +3 -5
- package/dist/types/src/server/intor/intor.d.ts +4 -4
- package/dist/types/src/server/intor/types.d.ts +4 -4
- package/dist/types/src/server/messages/index.d.ts +0 -2
- package/dist/types/src/server/messages/load-local-messages/index.d.ts +1 -1
- package/dist/types/src/server/messages/load-local-messages/load-local-messages.d.ts +1 -1
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.d.ts +2 -2
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/types.d.ts +5 -7
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.d.ts +1 -1
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/types.d.ts +5 -7
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.d.ts +1 -1
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.d.ts +1 -1
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.d.ts +2 -2
- package/dist/types/src/server/messages/load-local-messages/read-locale-messages/types.d.ts +6 -8
- package/dist/types/src/server/messages/load-local-messages/types.d.ts +9 -16
- package/dist/types/src/server/messages/load-messages.d.ts +3 -3
- package/dist/types/src/server/messages/types.d.ts +11 -5
- package/dist/types/src/server/translator/get-translator.d.ts +11 -19
- package/dist/types/src/server/translator/index.d.ts +2 -1
- package/dist/types/src/server/translator/translator-instance.d.ts +8 -0
- package/dist/vue/export/vue/index.js +6 -0
- package/dist/vue/src/client/helpers/get-client-locale.js +27 -0
- package/dist/vue/src/client/shared/messages/create-refetch-messages.js +61 -0
- package/dist/vue/src/client/shared/utils/build-cookie-string.js +30 -0
- package/dist/vue/src/client/shared/utils/locale/detect-browser-locale.js +12 -0
- package/dist/vue/src/client/shared/utils/locale/get-locale-cookie-browser.js +16 -0
- package/dist/vue/src/client/shared/utils/locale/set-document-locale.js +12 -0
- package/dist/vue/src/client/shared/utils/locale/set-locale-cookie-browser.js +18 -0
- package/dist/vue/src/client/vue/helpers/use-load-messages.js +44 -0
- package/dist/vue/src/client/vue/provider/effects/use-locale-effects.js +13 -0
- package/dist/vue/src/client/vue/provider/effects/use-messages-effects.js +36 -0
- package/dist/vue/src/client/vue/provider/inject.js +11 -0
- package/dist/vue/src/client/vue/provider/intor-provider.js +79 -0
- package/dist/vue/src/client/vue/render/create-vue-renderer.js +36 -0
- package/dist/vue/src/client/vue/render/render-rich-message-react.js +19 -0
- package/dist/vue/src/client/vue/translator/create-t-rich.js +26 -0
- package/dist/vue/src/client/vue/translator/t.js +32 -0
- package/dist/vue/src/client/vue/translator/use-translator.js +28 -0
- package/dist/vue/src/core/error/intor-error.js +9 -0
- package/dist/vue/src/core/logger/get-logger.js +39 -0
- package/dist/vue/src/core/logger/global-logger-pool.js +8 -0
- package/dist/vue/src/core/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +55 -0
- package/dist/vue/src/core/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
- package/dist/vue/src/core/messages/load-remote-messages/load-remote-messages.js +108 -0
- package/dist/vue/src/core/messages/utils/is-valid-messages.js +36 -0
- package/dist/vue/src/core/utils/deep-merge.js +31 -0
- package/dist/vue/src/core/utils/normalizers/normalize-cache-key.js +45 -0
- package/dist/vue/src/core/utils/normalizers/normalize-locale.js +59 -0
- package/dist/vue/src/core/utils/resolve-loader-options.js +32 -0
- package/package.json +16 -6
- package/dist/next/src/client/react/contexts/config/context.js +0 -3
- package/dist/next/src/client/react/contexts/locale/context.js +0 -3
- package/dist/next/src/client/react/contexts/messages/context.js +0 -3
- package/dist/next/src/client/react/contexts/translator/context.js +0 -3
- package/dist/next/src/client/react/contexts/translator-runtime/context.js +0 -3
- package/dist/next/src/config/constants/cache.constants.js +0 -7
- package/dist/react/src/client/react/contexts/config/context.js +0 -5
- package/dist/react/src/client/react/contexts/config/hook.js +0 -11
- package/dist/react/src/client/react/contexts/config/provider.js +0 -14
- package/dist/react/src/client/react/contexts/intor-provider/intor-provider.js +0 -17
- package/dist/react/src/client/react/contexts/locale/context.js +0 -5
- package/dist/react/src/client/react/contexts/locale/hook.js +0 -11
- package/dist/react/src/client/react/contexts/locale/provider.js +0 -38
- package/dist/react/src/client/react/contexts/locale/utils/change-locale.js +0 -26
- package/dist/react/src/client/react/contexts/messages/context.js +0 -5
- package/dist/react/src/client/react/contexts/messages/hook.js +0 -11
- package/dist/react/src/client/react/contexts/messages/provider.js +0 -39
- package/dist/react/src/client/react/contexts/messages/utils/use-refetch-messages.js +0 -70
- package/dist/react/src/client/react/contexts/translator/context.js +0 -5
- package/dist/react/src/client/react/contexts/translator/hook.js +0 -11
- package/dist/react/src/client/react/contexts/translator/provider.js +0 -58
- package/dist/react/src/client/react/contexts/translator-runtime/context.js +0 -5
- package/dist/react/src/client/react/contexts/translator-runtime/hook.js +0 -9
- package/dist/react/src/client/react/contexts/translator-runtime/provider.js +0 -15
- package/dist/react/src/config/constants/cache.constants.js +0 -7
- package/dist/react/src/server/shared/messages/global-messages-pool.js +0 -10
- package/dist/types/src/client/react/contexts/config/context.d.ts +0 -3
- package/dist/types/src/client/react/contexts/config/hook.d.ts +0 -2
- package/dist/types/src/client/react/contexts/config/index.d.ts +0 -2
- package/dist/types/src/client/react/contexts/config/provider.d.ts +0 -2
- package/dist/types/src/client/react/contexts/config/types.d.ts +0 -11
- package/dist/types/src/client/react/contexts/index.d.ts +0 -6
- package/dist/types/src/client/react/contexts/intor-provider/intor-provider.d.ts +0 -2
- package/dist/types/src/client/react/contexts/intor-provider/types.d.ts +0 -13
- package/dist/types/src/client/react/contexts/locale/context.d.ts +0 -3
- package/dist/types/src/client/react/contexts/locale/hook.d.ts +0 -1
- package/dist/types/src/client/react/contexts/locale/index.d.ts +0 -2
- package/dist/types/src/client/react/contexts/locale/provider.d.ts +0 -3
- package/dist/types/src/client/react/contexts/locale/types.d.ts +0 -13
- package/dist/types/src/client/react/contexts/locale/utils/change-locale.d.ts +0 -20
- package/dist/types/src/client/react/contexts/messages/context.d.ts +0 -3
- package/dist/types/src/client/react/contexts/messages/hook.d.ts +0 -2
- package/dist/types/src/client/react/contexts/messages/index.d.ts +0 -2
- package/dist/types/src/client/react/contexts/messages/provider.d.ts +0 -3
- package/dist/types/src/client/react/contexts/messages/types.d.ts +0 -12
- package/dist/types/src/client/react/contexts/messages/utils/use-refetch-messages.d.ts +0 -20
- package/dist/types/src/client/react/contexts/translator/context.d.ts +0 -3
- package/dist/types/src/client/react/contexts/translator/hook.d.ts +0 -2
- package/dist/types/src/client/react/contexts/translator/index.d.ts +0 -2
- package/dist/types/src/client/react/contexts/translator/provider.d.ts +0 -2
- package/dist/types/src/client/react/contexts/translator/types.d.ts +0 -11
- package/dist/types/src/client/react/contexts/translator-runtime/context.d.ts +0 -3
- package/dist/types/src/client/react/contexts/translator-runtime/hook.d.ts +0 -2
- package/dist/types/src/client/react/contexts/translator-runtime/index.d.ts +0 -3
- package/dist/types/src/client/react/contexts/translator-runtime/provider.d.ts +0 -2
- package/dist/types/src/client/react/contexts/translator-runtime/types.d.ts +0 -13
- package/dist/types/src/client/shared/types/translator-instance.d.ts +0 -11
- package/dist/types/src/config/constants/cache.constants.d.ts +0 -2
- package/dist/types/src/config/constants/cookie.constants.d.ts +0 -2
- package/dist/types/src/config/constants/routing.constants.d.ts +0 -2
- package/dist/types/src/config/types/translator.types.d.ts +0 -7
- package/dist/types/src/server/messages/load-remote-messages/fetch-locale-messages/types.d.ts +0 -14
- package/dist/types/src/server/messages/load-remote-messages/index.d.ts +0 -2
- package/dist/types/src/server/messages/load-remote-messages/types.d.ts +0 -21
- package/dist/types/src/shared/types/index.d.ts +0 -2
- /package/dist/core/src/config/constants/{cache.constants.js → cache.js} +0 -0
- /package/dist/core/src/config/constants/{cookie.constants.js → cookie.js} +0 -0
- /package/dist/core/src/config/constants/{routing.constants.js → routing.js} +0 -0
- /package/dist/core/src/{shared → core}/constants/prefix-placeholder.js +0 -0
- /package/dist/core/src/{shared → core}/error/intor-error.js +0 -0
- /package/dist/core/src/{server/shared → core}/logger/get-logger.js +0 -0
- /package/dist/core/src/{server/shared → core}/logger/global-logger-pool.js +0 -0
- /package/dist/core/src/{server/shared → core}/messages/global-messages-pool.js +0 -0
- /package/dist/core/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +0 -0
- /package/dist/core/src/{server/messages/shared → core/messages}/utils/is-valid-messages.js +0 -0
- /package/dist/core/src/{shared → core}/utils/deep-merge.js +0 -0
- /package/dist/core/src/{shared → core}/utils/normalizers/normalize-cache-key.js +0 -0
- /package/dist/core/src/{shared → core}/utils/normalizers/normalize-pathname.js +0 -0
- /package/dist/core/src/{shared → core}/utils/pathname/get-unprefixed-pathname.js +0 -0
- /package/dist/core/src/{shared → core}/utils/pathname/locale-prefix-pathname.js +0 -0
- /package/dist/core/src/{shared → core}/utils/pathname/localize-pathname.js +0 -0
- /package/dist/core/src/{shared → core}/utils/pathname/standardize-pathname.js +0 -0
- /package/dist/next/src/{shared → core}/constants/prefix-placeholder.js +0 -0
- /package/dist/next/src/{server/shared → core}/logger/get-logger.js +0 -0
- /package/dist/next/src/{server/shared → core}/logger/global-logger-pool.js +0 -0
- /package/dist/next/src/{server/shared → core}/messages/global-messages-pool.js +0 -0
- /package/dist/next/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +0 -0
- /package/dist/next/src/{server/messages/shared → core/messages}/utils/is-valid-messages.js +0 -0
- /package/dist/next/src/{shared → core}/utils/deep-merge.js +0 -0
- /package/dist/next/src/{shared → core}/utils/is-external-destination.js +0 -0
- /package/dist/next/src/{shared → core}/utils/locale/get-locale-from-accept-language.js +0 -0
- /package/dist/next/src/{shared → core}/utils/locale/get-locale-from-host.js +0 -0
- /package/dist/next/src/{shared → core}/utils/locale/get-locale-from-pathname.js +0 -0
- /package/dist/next/src/{shared → core}/utils/locale/get-locale-from-query.js +0 -0
- /package/dist/next/src/{shared → core}/utils/normalizers/normalize-cache-key.js +0 -0
- /package/dist/next/src/{shared → core}/utils/normalizers/normalize-locale.js +0 -0
- /package/dist/next/src/{shared → core}/utils/normalizers/normalize-pathname.js +0 -0
- /package/dist/next/src/{shared → core}/utils/pathname/get-unprefixed-pathname.js +0 -0
- /package/dist/next/src/{shared → core}/utils/pathname/locale-prefix-pathname.js +0 -0
- /package/dist/next/src/{shared → core}/utils/pathname/localize-pathname.js +0 -0
- /package/dist/next/src/{shared → core}/utils/pathname/standardize-pathname.js +0 -0
- /package/dist/react/src/{server/shared → core}/logger/get-logger.js +0 -0
- /package/dist/react/src/{server/shared → core}/logger/global-logger-pool.js +0 -0
- /package/dist/react/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +0 -0
- /package/dist/react/src/{server/messages/shared → core/messages}/utils/is-valid-messages.js +0 -0
- /package/dist/react/src/{shared → core}/utils/deep-merge.js +0 -0
- /package/dist/react/src/{shared → core}/utils/normalizers/normalize-cache-key.js +0 -0
- /package/dist/react/src/{shared → core}/utils/normalizers/normalize-locale.js +0 -0
- /package/dist/{next → svelte}/src/client/shared/utils/build-cookie-string.js +0 -0
- /package/dist/{next → svelte}/src/client/shared/utils/locale/set-locale-cookie-browser.js +0 -0
- /package/dist/types/src/config/types/{cache.types.d.ts → cache.d.ts} +0 -0
- /package/dist/types/src/config/types/{cookie.types.d.ts → cookie.d.ts} +0 -0
- /package/dist/types/src/{shared → core}/constants/index.d.ts +0 -0
- /package/dist/types/src/{shared → core}/constants/prefix-placeholder.d.ts +0 -0
- /package/dist/types/src/{shared → core}/error/index.d.ts +0 -0
- /package/dist/types/src/{shared → core}/error/intor-error.d.ts +0 -0
- /package/dist/types/src/{server/shared → core}/logger/global-logger-pool.d.ts +0 -0
- /package/dist/types/src/{server/shared → core}/messages/global-messages-pool.d.ts +0 -0
- /package/dist/types/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/index.d.ts +0 -0
- /package/dist/types/src/{server → core}/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.d.ts +0 -0
- /package/dist/types/src/{shared → core}/types/routing.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/deep-merge.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/is-external-destination.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/locale/get-locale-from-accept-language.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/locale/get-locale-from-host.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/locale/index.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/normalizers/index.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/normalizers/normalize-cache-key.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/normalizers/normalize-locale.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/normalizers/normalize-pathname.d.ts +0 -0
- /package/dist/types/src/{shared → core}/utils/pathname/index.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { LocaleContext, ResolvedLocale } from "./types";
|
|
1
2
|
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
-
import type { LocaleContext, ResolvedLocale } from "../../routing/locale/types";
|
|
3
3
|
/**
|
|
4
4
|
* Resolve the final locale based on routing configuration.
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type { PathnameContext, ResolvedPathname } from "./types";
|
|
1
2
|
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
-
import type { PathnameContext, ResolvedPathname } from "../../routing/pathname/types";
|
|
3
3
|
/**
|
|
4
4
|
* Resolve the final pathname based on routing configuration.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { loadMessagesFromUrl } from "./local-messages-from-url";
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CacheResolvedOptions, LoggerOptions } from "../../config";
|
|
2
|
+
import type { MessagesPool, MessagesReader } from "../../core";
|
|
3
|
+
export interface LoadMessagesFromUrlOptiosn {
|
|
4
|
+
concurrency?: number;
|
|
5
|
+
exts?: string[];
|
|
6
|
+
messagesReader?: MessagesReader;
|
|
7
|
+
pool?: MessagesPool;
|
|
8
|
+
cacheOptions?: CacheResolvedOptions;
|
|
9
|
+
allowCacheWrite?: boolean;
|
|
10
|
+
loggerOptions?: LoggerOptions;
|
|
11
|
+
}
|
|
2
12
|
/**
|
|
3
|
-
* Load
|
|
13
|
+
* Load locale messages from a URL-based query protocol.
|
|
4
14
|
*
|
|
5
|
-
* -
|
|
15
|
+
* - This helper is intended for building custom HTTP endpoints
|
|
6
16
|
*
|
|
7
17
|
* @example
|
|
8
18
|
* ```ts
|
|
@@ -15,7 +25,7 @@ import type { LoadLocalMessagesExtraOptions } from "../../server/messages/load-l
|
|
|
15
25
|
* "&fallbackLocales=zh-TW"
|
|
16
26
|
* );
|
|
17
27
|
*
|
|
18
|
-
* const messages = await
|
|
28
|
+
* const messages = await loadMessagesFromUrl(url);
|
|
19
29
|
* ```
|
|
20
30
|
*/
|
|
21
|
-
export declare function
|
|
31
|
+
export declare function loadMessagesFromUrl(url: URL, options?: LoadMessagesFromUrlOptiosn): Promise<import("intor-translator").LocaleMessages | undefined>;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export { intor, type IntorResult } from "./intor";
|
|
2
|
-
export { loadMessages
|
|
3
|
-
export { getTranslator } from "./translator";
|
|
4
|
-
export {
|
|
5
|
-
export { clearMessagesPool, setGlobalMessagesPool, } from "./shared/messages/global-messages-pool";
|
|
6
|
-
export { loadLocalMessagesFromUrl } from "./helpers";
|
|
2
|
+
export { loadMessages } from "./messages";
|
|
3
|
+
export { getTranslator, type GetTranslatorParams, type TranslatorInstanceServer, } from "./translator";
|
|
4
|
+
export { loadMessagesFromUrl } from "./helpers";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { IntorResult, LocaleResolver } from "./types";
|
|
1
2
|
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { GenConfigKeys } from "../../shared/types";
|
|
3
|
+
import type { MessagesReader } from "../../core";
|
|
4
|
+
import type { GenConfigKeys, GenLocale } from "../../core";
|
|
5
5
|
/**
|
|
6
6
|
* Entry point for initializing Intor.
|
|
7
7
|
*
|
|
@@ -14,7 +14,7 @@ import type { GenConfigKeys } from "../../shared/types";
|
|
|
14
14
|
* This function does not perform routing decisions itself.
|
|
15
15
|
* Locale resolution is delegated to the provided `getLocale` implementation.
|
|
16
16
|
*/
|
|
17
|
-
export declare const intor: <CK extends GenConfigKeys = "__default__">(config: IntorResolvedConfig, getLocale:
|
|
17
|
+
export declare const intor: <CK extends GenConfigKeys = "__default__">(config: IntorResolvedConfig, getLocale: LocaleResolver<CK> | GenLocale<CK>, loadMessagesOptions?: {
|
|
18
18
|
exts?: string[];
|
|
19
19
|
messagesReader?: MessagesReader;
|
|
20
20
|
}) => Promise<IntorResult<CK>>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { IntorResolvedConfig } from "../../config
|
|
2
|
-
import type { GenConfigKeys, GenLocale } from "../../
|
|
1
|
+
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
+
import type { GenConfigKeys, GenLocale } from "../../core";
|
|
3
3
|
import type { LocaleMessages } from "intor-translator";
|
|
4
|
-
export type
|
|
4
|
+
export type LocaleResolver<CK extends GenConfigKeys = "__default__"> = (config: IntorResolvedConfig) => GenLocale<CK> | Promise<GenLocale<CK>>;
|
|
5
5
|
export interface IntorResult<CK extends GenConfigKeys = "__default__"> {
|
|
6
6
|
config: IntorResolvedConfig;
|
|
7
7
|
initialLocale: GenLocale<CK>;
|
|
8
|
-
|
|
8
|
+
initialMessages: Readonly<LocaleMessages>;
|
|
9
9
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { LoadLocalMessagesParams
|
|
1
|
+
export type { LoadLocalMessagesParams } from "./types";
|
|
2
2
|
export { loadLocalMessages } from "./load-local-messages";
|
|
@@ -12,4 +12,4 @@ import type { LocaleMessages } from "intor-translator";
|
|
|
12
12
|
*
|
|
13
13
|
* File system traversal, parsing, and message validation are delegated to lower-level utilities.
|
|
14
14
|
*/
|
|
15
|
-
export declare const loadLocalMessages: ({
|
|
15
|
+
export declare const loadLocalMessages: ({ locale, fallbackLocales, namespaces, rootDir, concurrency, exts, messagesReader, pool, cacheOptions, allowCacheWrite, loggerOptions, }: LoadLocalMessagesParams) => Promise<LocaleMessages | undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CollectFileEntriesParams } from "./types";
|
|
2
|
-
import type { FileEntry } from "
|
|
2
|
+
import type { FileEntry } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* Recursively collects all message files under a given root directory.
|
|
5
5
|
*
|
|
@@ -17,4 +17,4 @@ import type { FileEntry } from "../../../../../server/messages/load-local-messag
|
|
|
17
17
|
* }, ... ];
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export declare function collectFileEntries({ readdir,
|
|
20
|
+
export declare function collectFileEntries({ readdir, namespaces, rootDir, limit, extraOptions: { exts, loggerOptions }, }: CollectFileEntriesParams): Promise<FileEntry[]>;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import type { LoggerOptions } from "../../../../../config
|
|
1
|
+
import type { LoggerOptions } from "../../../../../config";
|
|
2
2
|
import type fs from "node:fs/promises";
|
|
3
3
|
import type { LimitFunction } from "p-limit";
|
|
4
4
|
export interface CollectFileEntriesParams {
|
|
5
5
|
readdir?: (typeof fs)["readdir"];
|
|
6
|
-
limit: LimitFunction;
|
|
7
|
-
rootDir: string;
|
|
8
6
|
namespaces?: string[];
|
|
9
|
-
|
|
7
|
+
rootDir: string;
|
|
8
|
+
limit: LimitFunction;
|
|
9
|
+
extraOptions: {
|
|
10
10
|
exts?: string[];
|
|
11
|
-
loggerOptions
|
|
12
|
-
id?: string;
|
|
13
|
-
};
|
|
11
|
+
loggerOptions: LoggerOptions;
|
|
14
12
|
};
|
|
15
13
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ParseFileEntriesParams } from "./types";
|
|
2
|
-
import type { Messages } from "../../../../../
|
|
2
|
+
import type { Messages } from "../../../../../core";
|
|
3
3
|
/**
|
|
4
4
|
* Parse locale message files (JSON or custom formats) into a unified LocaleMessages object.
|
|
5
5
|
*
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { MessagesReader, Messages } from "../../../../../
|
|
1
|
+
import type { FileEntry } from "../types";
|
|
2
|
+
import type { LoggerOptions } from "../../../../../config";
|
|
3
|
+
import type { MessagesReader, Messages } from "../../../../../core";
|
|
4
4
|
import type { LimitFunction } from "p-limit";
|
|
5
5
|
export interface ParseFileEntriesParams {
|
|
6
6
|
fileEntries: FileEntry[];
|
|
7
7
|
limit: LimitFunction;
|
|
8
|
-
extraOptions
|
|
9
|
-
loggerOptions?: LoggerOptions & {
|
|
10
|
-
id?: string;
|
|
11
|
-
};
|
|
8
|
+
extraOptions: {
|
|
12
9
|
messagesReader?: MessagesReader;
|
|
10
|
+
loggerOptions: LoggerOptions;
|
|
13
11
|
};
|
|
14
12
|
}
|
|
15
13
|
export interface ParsedFileEntries {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ReadLocaleMessagesParams } from "
|
|
1
|
+
import type { ReadLocaleMessagesParams } from "./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: ({
|
|
10
|
+
export declare const readLocaleMessages: ({ locale, namespaces, rootDir, limit, extraOptions: { exts, messagesReader, loggerOptions }, }: ReadLocaleMessagesParams) => Promise<LocaleMessages>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { LoggerOptions } from "../../../../config
|
|
2
|
-
import type { MessagesReader } from "../../../../
|
|
1
|
+
import type { LoggerOptions } from "../../../../config";
|
|
2
|
+
import type { MessagesReader } from "../../../../core";
|
|
3
3
|
import type { LimitFunction } from "p-limit";
|
|
4
4
|
export interface FileEntry {
|
|
5
5
|
namespace: string;
|
|
@@ -9,15 +9,13 @@ export interface FileEntry {
|
|
|
9
9
|
basename: string;
|
|
10
10
|
}
|
|
11
11
|
export interface ReadLocaleMessagesParams {
|
|
12
|
-
limit: LimitFunction;
|
|
13
|
-
rootDir?: string;
|
|
14
12
|
locale: string;
|
|
15
13
|
namespaces?: string[];
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
};
|
|
14
|
+
rootDir?: string;
|
|
15
|
+
limit: LimitFunction;
|
|
16
|
+
extraOptions: {
|
|
20
17
|
exts?: string[];
|
|
21
18
|
messagesReader?: MessagesReader;
|
|
19
|
+
loggerOptions: LoggerOptions;
|
|
22
20
|
};
|
|
23
21
|
}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
import type { CacheResolvedOptions } from "../../../config
|
|
2
|
-
import type {
|
|
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
|
-
}
|
|
1
|
+
import type { CacheResolvedOptions, LoggerOptions } from "../../../config";
|
|
2
|
+
import type { MessagesPool, MessagesReader } from "../../../core";
|
|
14
3
|
export interface LoadLocalMessagesParams {
|
|
15
|
-
pool?: MessagesPool;
|
|
16
|
-
rootDir?: string;
|
|
17
4
|
locale: string;
|
|
18
5
|
fallbackLocales?: string[];
|
|
19
6
|
namespaces?: string[];
|
|
20
|
-
|
|
7
|
+
rootDir?: string;
|
|
8
|
+
concurrency?: number;
|
|
9
|
+
exts?: string[];
|
|
10
|
+
messagesReader?: MessagesReader;
|
|
11
|
+
pool?: MessagesPool;
|
|
12
|
+
cacheOptions: CacheResolvedOptions;
|
|
21
13
|
allowCacheWrite?: boolean;
|
|
14
|
+
loggerOptions: LoggerOptions;
|
|
22
15
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { LoadMessagesParams } from "./types";
|
|
2
|
+
import type { LocaleMessages } from "intor-translator";
|
|
3
3
|
/**
|
|
4
4
|
* Load locale messages based on the resolved Intor configuration.
|
|
5
5
|
*
|
|
@@ -11,4 +11,4 @@ import type { GenConfigKeys } from "../../shared/types/generated";
|
|
|
11
11
|
*
|
|
12
12
|
* It does not perform message normalization or transformation itself.
|
|
13
13
|
*/
|
|
14
|
-
export declare const loadMessages:
|
|
14
|
+
export declare const loadMessages: ({ config, locale, extraOptions: { exts, messagesReader }, allowCacheWrite, }: LoadMessagesParams) => Promise<LocaleMessages | undefined>;
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import type { IntorResolvedConfig } from "../../config
|
|
2
|
-
import type { MessagesReader } from "../../
|
|
3
|
-
import type { GenConfigKeys, GenMessages } from "../../shared/types/generated";
|
|
1
|
+
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
+
import type { MessagesReader } from "../../core";
|
|
4
3
|
import type { Locale } from "intor-translator";
|
|
5
|
-
export type
|
|
4
|
+
export type LoadMessagesParams = {
|
|
6
5
|
config: IntorResolvedConfig;
|
|
7
6
|
locale: Locale;
|
|
8
7
|
extraOptions?: {
|
|
9
8
|
exts?: string[];
|
|
10
9
|
messagesReader?: MessagesReader;
|
|
11
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Controls whether this load operation is allowed to write into
|
|
13
|
+
* the shared messages cache.
|
|
14
|
+
*
|
|
15
|
+
* This is intended for internal orchestration (e.g. `intor`)
|
|
16
|
+
* to act as the primary cache writer, while other helpers
|
|
17
|
+
* may perform read-only loads.
|
|
18
|
+
*/
|
|
12
19
|
allowCacheWrite?: boolean;
|
|
13
20
|
};
|
|
14
|
-
export type LoadMessagesResult<CK extends GenConfigKeys = "__default__"> = Promise<GenMessages<CK> | undefined>;
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import type { TranslatorInstanceServer } from "./translator-instance";
|
|
2
|
+
import type { IntorResolvedConfig } from "../../config";
|
|
3
|
+
import type { MessagesReader, GenConfigKeys, GenLocale, GenMessages } from "../../core";
|
|
4
4
|
import type { LocalizedNodeKeys, TranslateHandlers, TranslateHook, TranslatorPlugin } from "intor-translator";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Create a translator instance for a specific locale.
|
|
8
|
-
*/
|
|
9
|
-
export declare function getTranslator<CK extends GenConfigKeys = "__default__">(options: {
|
|
10
|
-
config: IntorResolvedConfig;
|
|
11
|
-
locale: GenLocale<CK>;
|
|
12
|
-
handlers?: TranslateHandlers;
|
|
13
|
-
plugins?: (TranslatorPlugin | TranslateHook)[];
|
|
14
|
-
extraOptions?: {
|
|
15
|
-
exts?: string[];
|
|
16
|
-
messagesReader?: MessagesReader;
|
|
17
|
-
};
|
|
18
|
-
}): Promise<TranslatorInstance<GenMessages<CK>>>;
|
|
19
|
-
export declare function getTranslator<CK extends GenConfigKeys = "__default__", PK extends string = LocalizedNodeKeys<GenMessages<CK>>>(options: {
|
|
5
|
+
export interface GetTranslatorParams<CK extends GenConfigKeys = "__default__"> {
|
|
20
6
|
config: IntorResolvedConfig;
|
|
21
7
|
locale: GenLocale<CK>;
|
|
22
8
|
handlers?: TranslateHandlers;
|
|
@@ -25,5 +11,11 @@ export declare function getTranslator<CK extends GenConfigKeys = "__default__",
|
|
|
25
11
|
exts?: string[];
|
|
26
12
|
messagesReader?: MessagesReader;
|
|
27
13
|
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a translator instance for server-side usage.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getTranslator<CK extends GenConfigKeys = "__default__">(params: GetTranslatorParams<CK>): Promise<TranslatorInstanceServer<GenMessages<CK>>>;
|
|
19
|
+
export declare function getTranslator<CK extends GenConfigKeys = "__default__", PK extends string = LocalizedNodeKeys<GenMessages<CK>>>(params: GetTranslatorParams<CK> & {
|
|
28
20
|
preKey?: PK;
|
|
29
|
-
}): Promise<
|
|
21
|
+
}): Promise<TranslatorInstanceServer<GenMessages<CK>, PK>>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { getTranslator } from "./get-translator";
|
|
1
|
+
export { getTranslator, type GetTranslatorParams } from "./get-translator";
|
|
2
|
+
export type { TranslatorInstanceServer } from "./translator-instance";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { KeyMode, TranslatorInstance } from "../../core";
|
|
2
|
+
import { type Locale, type LocaleMessages } from "intor-translator";
|
|
3
|
+
export type TranslatorInstanceServer<M extends LocaleMessages, PK extends string | undefined = undefined, Mode extends KeyMode = "auto"> = TranslatorInstance<M, PK, Mode> & {
|
|
4
|
+
/** `messages`: The message object containing all translations. */
|
|
5
|
+
messages: M;
|
|
6
|
+
/** Current locale in use. */
|
|
7
|
+
locale: Locale<M>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { IntorProvider } from '../../src/client/vue/provider/intor-provider.js';
|
|
2
|
+
import 'vue';
|
|
3
|
+
export { useTranslator } from '../../src/client/vue/translator/use-translator.js';
|
|
4
|
+
export { T } from '../../src/client/vue/translator/t.js';
|
|
5
|
+
export { useLoadMessages } from '../../src/client/vue/helpers/use-load-messages.js';
|
|
6
|
+
export { getClientLocale } from '../../src/client/helpers/get-client-locale.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import '../../core/error/intor-error.js';
|
|
2
|
+
import { normalizeLocale } from '../../core/utils/normalizers/normalize-locale.js';
|
|
3
|
+
import 'logry';
|
|
4
|
+
import 'keyv';
|
|
5
|
+
import { detectBrowserLocale } from '../shared/utils/locale/detect-browser-locale.js';
|
|
6
|
+
import { getLocaleCookieBrowser } from '../shared/utils/locale/get-locale-cookie-browser.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the locale in a client-only environment.
|
|
10
|
+
*
|
|
11
|
+
* This helper is intended for pure CSR setups (e.g. Vite).
|
|
12
|
+
*
|
|
13
|
+
* For framework-based apps, prefer `useTranslator()`.
|
|
14
|
+
*
|
|
15
|
+
* - Client-side only
|
|
16
|
+
*/
|
|
17
|
+
function getClientLocale(config) {
|
|
18
|
+
const { defaultLocale, supportedLocales, cookie } = config;
|
|
19
|
+
// Locale from browser cookie
|
|
20
|
+
const cookieLocale = getLocaleCookieBrowser(cookie.name);
|
|
21
|
+
// Locale from browser preference
|
|
22
|
+
const browserLocale = detectBrowserLocale();
|
|
23
|
+
const localeCandidate = cookieLocale || browserLocale;
|
|
24
|
+
return normalizeLocale(localeCandidate, supportedLocales) || defaultLocale;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { getClientLocale };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import '../../../core/error/intor-error.js';
|
|
2
|
+
import { deepMerge } from '../../../core/utils/deep-merge.js';
|
|
3
|
+
import { resolveLoaderOptions } from '../../../core/utils/resolve-loader-options.js';
|
|
4
|
+
import 'logry';
|
|
5
|
+
import { loadRemoteMessages } from '../../../core/messages/load-remote-messages/load-remote-messages.js';
|
|
6
|
+
import 'keyv';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates a framework-agnostic message refetcher.
|
|
10
|
+
*
|
|
11
|
+
* - At most one remote request is active at any time
|
|
12
|
+
* - Previous in-flight requests are aborted on subsequent calls
|
|
13
|
+
* - State updates are applied only for the latest, non-aborted request
|
|
14
|
+
*/
|
|
15
|
+
const createRefetchMessages = ({ config, onLoadingStart, onLoadingEnd, onMessages, }) => {
|
|
16
|
+
// Tracks the currently active remote request for this refetcher instance
|
|
17
|
+
let controller = null;
|
|
18
|
+
return async function refetchMessages(newLocale) {
|
|
19
|
+
// No-op when remote loading is not enabled
|
|
20
|
+
const loader = resolveLoaderOptions(config);
|
|
21
|
+
if (!loader || loader.type !== "remote")
|
|
22
|
+
return;
|
|
23
|
+
// Abort previous request
|
|
24
|
+
controller?.abort();
|
|
25
|
+
const currentController = new AbortController();
|
|
26
|
+
controller = currentController;
|
|
27
|
+
onLoadingStart?.();
|
|
28
|
+
try {
|
|
29
|
+
const loadedMessages = await loadRemoteMessages({
|
|
30
|
+
// --- Messages Scope ---
|
|
31
|
+
locale: newLocale,
|
|
32
|
+
fallbackLocales: config.fallbackLocales[newLocale] || [],
|
|
33
|
+
namespaces: loader.namespaces,
|
|
34
|
+
rootDir: loader.rootDir,
|
|
35
|
+
// --- Remote Source ---
|
|
36
|
+
url: loader.url,
|
|
37
|
+
headers: loader.headers,
|
|
38
|
+
signal: currentController.signal,
|
|
39
|
+
// --- Caching ---
|
|
40
|
+
cacheOptions: config.cache,
|
|
41
|
+
// --- Observability ---
|
|
42
|
+
loggerOptions: config.logger,
|
|
43
|
+
});
|
|
44
|
+
// Apply state updates only when this request is still the active one
|
|
45
|
+
// and has not been aborted.
|
|
46
|
+
if (controller === currentController &&
|
|
47
|
+
!currentController.signal.aborted) {
|
|
48
|
+
onMessages?.(deepMerge(config.messages, loadedMessages));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
// Clear loading state only if this request is still the active one
|
|
53
|
+
if (controller === currentController &&
|
|
54
|
+
!currentController.signal.aborted) {
|
|
55
|
+
onLoadingEnd?.();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export { createRefetchMessages };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a serialized cookie string.
|
|
3
|
+
*/
|
|
4
|
+
const buildCookieString = (cookieOptions, value) => {
|
|
5
|
+
const { name, maxAge, path, domain, sameSite, secure } = cookieOptions;
|
|
6
|
+
// Cookie name and encoded value
|
|
7
|
+
const parts = [`${name}=${encodeURIComponent(value)}`];
|
|
8
|
+
// Add expiration and max-age if provided
|
|
9
|
+
if (maxAge) {
|
|
10
|
+
const expires = new Date(Date.now() + maxAge * 1000).toUTCString();
|
|
11
|
+
parts.push(`expires=${expires}`, `max-age=${maxAge}`);
|
|
12
|
+
}
|
|
13
|
+
// Set path (default to "/")
|
|
14
|
+
parts.push(`path=${path ?? "/"}`);
|
|
15
|
+
// Add domain if specified
|
|
16
|
+
if (domain) {
|
|
17
|
+
parts.push(`domain=${domain}`);
|
|
18
|
+
}
|
|
19
|
+
// Add SameSite policy (e.g., Lax, Strict)
|
|
20
|
+
if (sameSite) {
|
|
21
|
+
parts.push(`SameSite=${sameSite[0].toUpperCase()}${sameSite.slice(1).toLowerCase()}`);
|
|
22
|
+
}
|
|
23
|
+
// Add Secure flag if not explicitly disabled
|
|
24
|
+
if (secure !== false) {
|
|
25
|
+
parts.push(`Secure`);
|
|
26
|
+
}
|
|
27
|
+
return parts.join("; ");
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { buildCookieString };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect the preferred locale from the browser.
|
|
3
|
+
*
|
|
4
|
+
* - Client-side only
|
|
5
|
+
*/
|
|
6
|
+
function detectBrowserLocale() {
|
|
7
|
+
if (typeof navigator === "undefined")
|
|
8
|
+
return undefined;
|
|
9
|
+
return navigator.languages?.[0] || navigator.language || undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { detectBrowserLocale };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the locale value from the browser cookie.
|
|
3
|
+
*
|
|
4
|
+
* - Client-side only
|
|
5
|
+
*/
|
|
6
|
+
function getLocaleCookieBrowser(cookieName) {
|
|
7
|
+
if (typeof document === "undefined")
|
|
8
|
+
return undefined;
|
|
9
|
+
const cookies = document.cookie.split(";").map((c) => c.trim());
|
|
10
|
+
const entry = cookies.find((c) => c.startsWith(`${cookieName}=`));
|
|
11
|
+
if (!entry)
|
|
12
|
+
return undefined;
|
|
13
|
+
return decodeURIComponent(entry.slice(cookieName.length + 1));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { getLocaleCookieBrowser };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { buildCookieString } from '../build-cookie-string.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Persist locale to browser cookie.
|
|
5
|
+
*
|
|
6
|
+
* - Client-side only
|
|
7
|
+
*/
|
|
8
|
+
const setLocaleCookieBrowser = (cookieOptions, locale) => {
|
|
9
|
+
if (typeof document === "undefined")
|
|
10
|
+
return;
|
|
11
|
+
// Skip when cookie persistence is disabled
|
|
12
|
+
if (!cookieOptions.enabled || !cookieOptions.persist)
|
|
13
|
+
return;
|
|
14
|
+
// Build and apply the cookie string
|
|
15
|
+
document.cookie = buildCookieString(cookieOptions, locale);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { setLocaleCookieBrowser };
|