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.
- package/README.md +79 -0
- package/dist/core/export/config/index.js +1 -0
- package/dist/core/export/index.js +4 -0
- package/dist/core/export/server/index.js +7 -0
- package/dist/{src → core/src}/config/constants/cookie.constants.js +2 -2
- package/dist/{src → core/src}/config/constants/routing.constants.js +6 -0
- package/dist/{src → core/src}/config/define-intor-config.js +18 -4
- package/dist/core/src/config/resolvers/resolve-cookie-options.js +10 -0
- package/dist/{src → core/src}/config/resolvers/resolve-fallback-locales.js +17 -0
- package/dist/core/src/config/resolvers/resolve-routing-options.js +20 -0
- package/dist/{src → core/src}/config/validators/validate-default-locale.js +9 -0
- package/dist/{src → core/src}/config/validators/validate-supported-locales.js +8 -3
- package/dist/core/src/server/helpers/local-messages-from-url.js +48 -0
- package/dist/core/src/server/intor/intor.js +49 -0
- package/dist/core/src/server/messages/load-local-messages/load-local-messages.js +93 -0
- package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +12 -29
- package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +8 -5
- package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +3 -3
- package/dist/{src → core/src}/server/messages/load-messages.js +21 -21
- package/dist/{src → core/src}/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +6 -1
- package/dist/core/src/server/messages/load-remote-messages/load-remote-messages.js +110 -0
- package/dist/{src → core/src}/server/shared/logger/get-logger.js +10 -5
- package/dist/core/src/server/shared/logger/global-logger-pool.js +16 -0
- package/dist/core/src/server/shared/messages/global-messages-pool.js +27 -0
- package/dist/{src → core/src}/server/translator/get-translator.js +6 -10
- package/dist/core/src/shared/utils/deep-merge.js +36 -0
- package/dist/{src/shared/utils → core/src/shared/utils/normalizers}/normalize-cache-key.js +17 -1
- package/dist/{src/shared/utils/pathname → core/src/shared/utils/normalizers}/normalize-pathname.js +1 -1
- package/dist/core/src/shared/utils/pathname/get-unprefixed-pathname.js +39 -0
- package/dist/{src/adapters/next/shared/utils → core/src/shared/utils/pathname}/locale-prefix-pathname.js +17 -12
- package/dist/core/src/shared/utils/pathname/localize-pathname.js +36 -0
- package/dist/{src → core/src}/shared/utils/pathname/standardize-pathname.js +8 -8
- package/dist/next/export/next/index.js +4 -0
- package/dist/{exports → next/export}/next/proxy/index.js +0 -1
- package/dist/next/export/next/server/index.js +2 -0
- package/dist/next/src/adapters/next/navigation/link.js +54 -0
- package/dist/next/src/adapters/next/navigation/redirect.js +37 -0
- package/dist/next/src/adapters/next/navigation/use-pathname.js +31 -0
- package/dist/next/src/adapters/next/navigation/use-router.js +68 -0
- package/dist/next/src/adapters/next/proxy/intor-proxy.js +44 -0
- package/dist/{src → next/src}/adapters/next/proxy/utils/set-locale-cookie-edge.js +2 -7
- package/dist/next/src/adapters/next/server/get-locale.js +25 -0
- package/dist/{src → next/src}/adapters/next/server/get-translator.js +4 -4
- package/dist/next/src/client/react/contexts/config/context.js +3 -0
- package/dist/next/src/client/react/contexts/locale/context.js +3 -0
- package/dist/next/src/client/react/contexts/messages/context.js +3 -0
- package/dist/next/src/client/react/contexts/translator/context.js +3 -0
- package/dist/next/src/client/react/contexts/translator-runtime/context.js +3 -0
- package/dist/next/src/client/react/navigation/use-navigation-strategy.js +32 -0
- package/dist/next/src/client/react/navigation/use-navigation-target.js +20 -0
- package/dist/next/src/client/shared/utils/build-cookie-string.js +30 -0
- package/dist/next/src/client/shared/utils/locale/set-locale-cookie-browser.js +18 -0
- package/dist/next/src/config/constants/cache.constants.js +7 -0
- package/dist/next/src/routing/locale/resolve-locale.js +32 -0
- package/dist/next/src/routing/pathname/resolve-pathname.js +53 -0
- package/dist/next/src/routing/pathname/strategies/all.js +23 -0
- package/dist/next/src/routing/pathname/strategies/except-default.js +33 -0
- package/dist/next/src/routing/pathname/strategies/none.js +14 -0
- package/dist/next/src/routing/resolve-navigation-target.js +28 -0
- package/dist/next/src/routing/resolve-routing.js +38 -0
- package/dist/next/src/server/messages/load-local-messages/load-local-messages.js +93 -0
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.js +78 -0
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.js +88 -0
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.js +12 -0
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.js +21 -0
- package/dist/next/src/server/messages/load-local-messages/read-locale-messages/read-locale-messages.js +31 -0
- package/dist/next/src/server/messages/load-messages.js +77 -0
- package/dist/next/src/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +55 -0
- package/dist/next/src/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
- package/dist/next/src/server/messages/load-remote-messages/load-remote-messages.js +110 -0
- package/dist/next/src/server/messages/shared/utils/is-valid-messages.js +36 -0
- package/dist/next/src/server/shared/logger/get-logger.js +39 -0
- package/dist/next/src/server/translator/get-translator.js +35 -0
- package/dist/next/src/shared/constants/prefix-placeholder.js +4 -0
- package/dist/next/src/shared/utils/deep-merge.js +36 -0
- package/dist/next/src/shared/utils/is-external-destination.js +11 -0
- package/dist/next/src/shared/utils/locale/get-locale-from-accept-language.js +45 -0
- package/dist/next/src/shared/utils/locale/get-locale-from-host.js +31 -0
- package/dist/next/src/shared/utils/locale/get-locale-from-pathname.js +52 -0
- package/dist/next/src/shared/utils/locale/get-locale-from-query.js +33 -0
- package/dist/next/src/shared/utils/normalizers/normalize-cache-key.js +45 -0
- package/dist/{src/shared/utils/locale → next/src/shared/utils/normalizers}/normalize-locale.js +21 -4
- package/dist/next/src/shared/utils/normalizers/normalize-pathname.js +43 -0
- package/dist/next/src/shared/utils/pathname/get-unprefixed-pathname.js +39 -0
- package/dist/next/src/shared/utils/pathname/locale-prefix-pathname.js +38 -0
- package/dist/next/src/shared/utils/pathname/localize-pathname.js +36 -0
- package/dist/next/src/shared/utils/pathname/standardize-pathname.js +30 -0
- package/dist/react/export/react/index.js +18 -0
- package/dist/react/src/client/helpers/get-client-locale.js +24 -0
- package/dist/{src → react/src}/client/react/contexts/config/context.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/config/hook.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/config/provider.js +5 -2
- package/dist/{src → react/src}/client/react/contexts/intor-provider/intor-provider.js +3 -3
- package/dist/{src → react/src}/client/react/contexts/locale/context.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/locale/hook.js +0 -1
- package/dist/react/src/client/react/contexts/locale/provider.js +38 -0
- package/dist/react/src/client/react/contexts/locale/utils/change-locale.js +26 -0
- package/dist/{src → react/src}/client/react/contexts/messages/context.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/messages/hook.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/messages/provider.js +18 -11
- package/dist/react/src/client/react/contexts/messages/utils/use-refetch-messages.js +70 -0
- package/dist/{src → react/src}/client/react/contexts/translator/context.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/translator/hook.js +0 -1
- package/dist/{src → react/src}/client/react/contexts/translator/provider.js +23 -26
- package/dist/react/src/client/react/contexts/translator-runtime/context.js +5 -0
- package/dist/react/src/client/react/contexts/translator-runtime/hook.js +9 -0
- package/dist/react/src/client/react/contexts/translator-runtime/provider.js +15 -0
- package/dist/react/src/client/react/render/create-react-renderer.js +36 -0
- package/dist/react/src/client/react/render/render-rich-message-react.js +22 -0
- package/dist/react/src/client/react/translator/create-t-rich.js +23 -0
- package/dist/react/src/client/react/translator/t.js +15 -0
- package/dist/{src/client/react/hooks → react/src/client/react/translator}/use-translator.js +7 -10
- package/dist/react/src/client/shared/utils/build-cookie-string.js +30 -0
- package/dist/react/src/client/shared/utils/locale/detect-browser-locale.js +12 -0
- package/dist/react/src/client/shared/utils/locale/get-locale-cookie-browser.js +16 -0
- package/dist/react/src/client/shared/utils/locale/set-document-locale.js +12 -0
- package/dist/react/src/client/shared/utils/locale/set-locale-cookie-browser.js +18 -0
- package/dist/react/src/config/constants/cache.constants.js +7 -0
- package/dist/react/src/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.js +55 -0
- package/dist/react/src/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +25 -0
- package/dist/react/src/server/messages/load-remote-messages/load-remote-messages.js +110 -0
- package/dist/react/src/server/messages/shared/utils/is-valid-messages.js +36 -0
- package/dist/react/src/server/shared/logger/get-logger.js +39 -0
- package/dist/react/src/server/shared/logger/global-logger-pool.js +8 -0
- package/dist/react/src/server/shared/messages/global-messages-pool.js +10 -0
- package/dist/react/src/shared/utils/deep-merge.js +36 -0
- package/dist/react/src/shared/utils/normalizers/normalize-cache-key.js +45 -0
- package/dist/react/src/shared/utils/normalizers/normalize-locale.js +59 -0
- package/dist/types/export/config/index.d.ts +1 -0
- package/dist/types/export/index.d.ts +4 -0
- package/dist/types/export/internal/index.d.ts +1 -0
- package/dist/types/export/next/index.d.ts +1 -0
- package/dist/types/export/next/proxy/index.d.ts +1 -0
- package/dist/types/export/next/server/index.d.ts +1 -0
- package/dist/types/export/react/index.d.ts +1 -0
- package/dist/types/export/server/index.d.ts +1 -0
- package/dist/types/src/adapters/next/navigation/link.d.ts +26 -0
- package/dist/types/src/adapters/next/navigation/redirect.d.ts +18 -0
- package/dist/{src → types/src}/adapters/next/navigation/use-pathname.d.ts +5 -5
- package/dist/types/src/adapters/next/navigation/use-router.d.ts +25 -0
- package/dist/types/src/adapters/next/proxy/index.d.ts +1 -0
- package/dist/types/src/adapters/next/proxy/intor-proxy.d.ts +13 -0
- package/dist/{src → types/src}/adapters/next/proxy/utils/set-locale-cookie-edge.d.ts +2 -4
- package/dist/types/src/adapters/next/server/get-locale.d.ts +6 -0
- package/dist/{src → types/src}/adapters/next/server/get-translator.d.ts +7 -8
- package/dist/types/src/adapters/next/server/index.d.ts +2 -0
- package/dist/types/src/client/helpers/get-client-locale.d.ts +11 -0
- package/dist/types/src/client/helpers/index.d.ts +1 -0
- package/dist/types/src/client/react/contexts/config/provider.d.ts +2 -0
- package/dist/{src → types/src}/client/react/contexts/config/types.d.ts +6 -5
- package/dist/types/src/client/react/contexts/index.d.ts +6 -0
- package/dist/types/src/client/react/contexts/intor-provider/intor-provider.d.ts +2 -0
- package/dist/{src → types/src}/client/react/contexts/intor-provider/types.d.ts +1 -2
- package/dist/types/src/client/react/contexts/locale/utils/change-locale.d.ts +20 -0
- package/dist/{src → types/src}/client/react/contexts/messages/types.d.ts +4 -7
- package/dist/types/src/client/react/contexts/messages/utils/use-refetch-messages.d.ts +20 -0
- package/dist/types/src/client/react/contexts/translator/hook.d.ts +2 -0
- package/dist/types/src/client/react/contexts/translator/types.d.ts +11 -0
- package/dist/types/src/client/react/contexts/translator-runtime/context.d.ts +3 -0
- package/dist/types/src/client/react/contexts/translator-runtime/hook.d.ts +2 -0
- package/dist/types/src/client/react/contexts/translator-runtime/index.d.ts +3 -0
- package/dist/types/src/client/react/contexts/translator-runtime/provider.d.ts +2 -0
- package/dist/types/src/client/react/contexts/translator-runtime/types.d.ts +13 -0
- package/dist/types/src/client/react/index.d.ts +4 -0
- package/dist/types/src/client/react/navigation/index.d.ts +2 -0
- package/dist/types/src/client/react/navigation/use-navigation-strategy.d.ts +22 -0
- package/dist/types/src/client/react/navigation/use-navigation-target.d.ts +12 -0
- package/dist/types/src/client/react/render/create-react-renderer.d.ts +17 -0
- package/dist/types/src/client/react/render/index.d.ts +2 -0
- package/dist/types/src/client/react/render/render-rich-message-react.d.ts +13 -0
- package/dist/types/src/client/react/render/types.d.ts +17 -0
- package/dist/types/src/client/react/translator/create-t-rich.d.ts +15 -0
- package/dist/types/src/client/react/translator/index.d.ts +2 -0
- package/dist/types/src/client/react/translator/t.d.ts +27 -0
- package/dist/types/src/client/react/translator/translator-instance.d.ts +12 -0
- package/dist/types/src/client/react/translator/use-translator.d.ts +8 -0
- package/dist/types/src/client/shared/types/index.d.ts +1 -0
- package/dist/types/src/client/shared/types/translator-instance.d.ts +11 -0
- package/dist/types/src/client/shared/utils/build-cookie-string.d.ts +5 -0
- package/dist/types/src/client/shared/utils/index.d.ts +1 -0
- package/dist/types/src/client/shared/utils/locale/detect-browser-locale.d.ts +6 -0
- package/dist/types/src/client/shared/utils/locale/get-locale-cookie-browser.d.ts +6 -0
- package/dist/types/src/client/shared/utils/locale/index.d.ts +4 -0
- package/dist/types/src/client/shared/utils/locale/set-document-locale.d.ts +6 -0
- package/dist/types/src/client/shared/utils/locale/set-locale-cookie-browser.d.ts +7 -0
- package/dist/types/src/config/define-intor-config.d.ts +18 -0
- package/dist/types/src/config/index.d.ts +2 -0
- package/dist/types/src/config/resolvers/resolve-cookie-options.d.ts +2 -0
- package/dist/types/src/config/resolvers/resolve-fallback-locales.d.ts +20 -0
- package/dist/types/src/config/resolvers/resolve-routing-options.d.ts +2 -0
- package/dist/{src → types/src}/config/types/cache.types.d.ts +2 -2
- package/dist/types/src/config/types/cookie.types.d.ts +23 -0
- package/dist/{src → types/src}/config/types/intor-config.types.d.ts +2 -0
- package/dist/types/src/config/types/loader.types.d.ts +34 -0
- package/dist/types/src/config/types/logger.types.d.ts +9 -0
- package/dist/types/src/config/types/routing.types.d.ts +39 -0
- package/dist/types/src/config/types/translator.types.d.ts +7 -0
- package/dist/types/src/config/validators/validate-default-locale.d.ts +12 -0
- package/dist/types/src/config/validators/validate-supported-locales.d.ts +12 -0
- package/dist/types/src/routing/index.d.ts +1 -0
- package/dist/types/src/routing/locale/index.d.ts +1 -0
- package/dist/types/src/routing/locale/resolve-locale.d.ts +16 -0
- package/dist/types/src/routing/locale/types.d.ts +36 -0
- package/dist/types/src/routing/pathname/index.d.ts +1 -0
- package/dist/types/src/routing/pathname/resolve-pathname.d.ts +19 -0
- package/dist/types/src/routing/pathname/strategies/all.d.ts +6 -0
- package/dist/types/src/routing/pathname/strategies/except-default.d.ts +6 -0
- package/dist/types/src/routing/pathname/strategies/index.d.ts +3 -0
- package/dist/types/src/routing/pathname/strategies/none.d.ts +5 -0
- package/dist/types/src/routing/pathname/types.d.ts +28 -0
- package/dist/types/src/routing/resolve-navigation-target.d.ts +20 -0
- package/dist/types/src/routing/resolve-routing.d.ts +30 -0
- package/dist/types/src/server/helpers/index.d.ts +1 -0
- package/dist/types/src/server/helpers/local-messages-from-url.d.ts +21 -0
- package/dist/types/src/server/index.d.ts +6 -0
- package/dist/types/src/server/intor/index.d.ts +2 -0
- package/dist/types/src/server/intor/intor.d.ts +20 -0
- package/dist/types/src/server/intor/types.d.ts +9 -0
- package/dist/types/src/server/messages/index.d.ts +3 -0
- package/dist/types/src/server/messages/load-local-messages/index.d.ts +2 -0
- package/dist/types/src/server/messages/load-local-messages/load-local-messages.d.ts +15 -0
- package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/collect-file-entries.d.ts +5 -14
- package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/types.d.ts +1 -1
- package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/parse-file-entries.d.ts +2 -2
- package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/types.d.ts +1 -1
- package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/read-locale-messages.d.ts +2 -2
- package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/types.d.ts +1 -1
- package/dist/types/src/server/messages/load-local-messages/types.d.ts +22 -0
- package/dist/types/src/server/messages/load-messages.d.ts +14 -0
- package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/fetch-locale-messages.d.ts +1 -1
- package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/types.d.ts +1 -0
- package/dist/types/src/server/messages/load-remote-messages/index.d.ts +2 -0
- package/dist/types/src/server/messages/load-remote-messages/load-remote-messages.d.ts +15 -0
- package/dist/{src → types/src}/server/messages/load-remote-messages/types.d.ts +4 -3
- package/dist/{src → types/src}/server/messages/types.d.ts +2 -3
- package/dist/{src → types/src}/server/shared/logger/get-logger.d.ts +1 -1
- package/dist/{src/server/messages/shared → types/src/server/shared/messages}/global-messages-pool.d.ts +8 -1
- package/dist/{src → types/src}/server/translator/get-translator.d.ts +8 -12
- package/dist/types/src/shared/constants/index.d.ts +1 -0
- package/dist/{src → types/src}/shared/error/intor-error.d.ts +4 -4
- package/dist/types/src/shared/types/generated.d.ts +53 -0
- package/dist/types/src/shared/types/index.d.ts +2 -0
- package/dist/types/src/shared/types/routing.d.ts +6 -0
- package/dist/types/src/shared/types/translator-instance.d.ts +27 -0
- package/dist/types/src/shared/utils/deep-merge.d.ts +8 -0
- package/dist/types/src/shared/utils/index.d.ts +4 -0
- package/dist/types/src/shared/utils/is-external-destination.d.ts +7 -0
- package/dist/types/src/shared/utils/locale/get-locale-from-accept-language.d.ts +19 -0
- package/dist/types/src/shared/utils/locale/get-locale-from-host.d.ts +17 -0
- package/dist/types/src/shared/utils/locale/get-locale-from-pathname.d.ts +31 -0
- package/dist/types/src/shared/utils/locale/get-locale-from-query.d.ts +20 -0
- package/dist/types/src/shared/utils/locale/index.d.ts +4 -0
- package/dist/types/src/shared/utils/normalizers/index.d.ts +3 -0
- package/dist/types/src/shared/utils/normalizers/normalize-cache-key.d.ts +14 -0
- package/dist/types/src/shared/utils/normalizers/normalize-locale.d.ts +22 -0
- package/dist/{src/shared/utils/pathname → types/src/shared/utils/normalizers}/normalize-pathname.d.ts +1 -1
- package/dist/types/src/shared/utils/pathname/get-unprefixed-pathname.d.ts +14 -0
- package/dist/types/src/shared/utils/pathname/index.d.ts +1 -0
- package/dist/types/src/shared/utils/pathname/locale-prefix-pathname.d.ts +16 -0
- package/dist/types/src/shared/utils/pathname/localize-pathname.d.ts +23 -0
- package/dist/types/src/shared/utils/pathname/standardize-pathname.d.ts +13 -0
- package/package.json +76 -65
- package/dist/exports/config/index.d.ts +0 -2
- package/dist/exports/config/index.js +0 -4
- package/dist/exports/index.d.ts +0 -5
- package/dist/exports/index.js +0 -11
- package/dist/exports/next/index.d.ts +0 -3
- package/dist/exports/next/index.js +0 -9
- package/dist/exports/next/proxy/index.d.ts +0 -2
- package/dist/exports/next/server/index.d.ts +0 -2
- package/dist/exports/next/server/index.js +0 -2
- package/dist/exports/react/index.d.ts +0 -2
- package/dist/exports/react/index.js +0 -6
- package/dist/exports/server/index.d.ts +0 -2
- package/dist/exports/server/index.js +0 -6
- package/dist/src/adapters/next/navigation/link.d.ts +0 -16
- package/dist/src/adapters/next/navigation/link.js +0 -25
- package/dist/src/adapters/next/navigation/redirect.d.ts +0 -16
- package/dist/src/adapters/next/navigation/redirect.js +0 -36
- package/dist/src/adapters/next/navigation/use-pathname.js +0 -49
- package/dist/src/adapters/next/navigation/use-router.d.ts +0 -20
- package/dist/src/adapters/next/navigation/use-router.js +0 -31
- package/dist/src/adapters/next/navigation/utils/should-full-reload.d.ts +0 -7
- package/dist/src/adapters/next/navigation/utils/should-full-reload.js +0 -19
- package/dist/src/adapters/next/navigation/utils/use-locale-switch.d.ts +0 -16
- package/dist/src/adapters/next/navigation/utils/use-locale-switch.js +0 -58
- package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-all.d.ts +0 -12
- package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-all.js +0 -60
- package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-except-default.d.ts +0 -16
- package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-except-default.js +0 -81
- package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-none.d.ts +0 -10
- package/dist/src/adapters/next/proxy/handle-prefix/handle-prefix-none.js +0 -22
- package/dist/src/adapters/next/proxy/index.d.ts +0 -2
- package/dist/src/adapters/next/proxy/intor-proxy.d.ts +0 -6
- package/dist/src/adapters/next/proxy/intor-proxy.js +0 -22
- package/dist/src/adapters/next/proxy/utils/create-response.d.ts +0 -17
- package/dist/src/adapters/next/proxy/utils/create-response.js +0 -42
- package/dist/src/adapters/next/proxy/utils/determine-initial-locale.d.ts +0 -8
- package/dist/src/adapters/next/proxy/utils/determine-initial-locale.js +0 -28
- package/dist/src/adapters/next/proxy/utils/set-pathname-header.d.ts +0 -12
- package/dist/src/adapters/next/proxy/utils/set-pathname-header.js +0 -13
- package/dist/src/adapters/next/server/get-i18n-context.d.ts +0 -9
- package/dist/src/adapters/next/server/get-i18n-context.js +0 -47
- package/dist/src/adapters/next/server/index.d.ts +0 -2
- package/dist/src/adapters/next/shared/constants/pathname-header-name.d.ts +0 -1
- package/dist/src/adapters/next/shared/constants/pathname-header-name.js +0 -4
- package/dist/src/adapters/next/shared/utils/locale-prefix-pathname.d.ts +0 -16
- package/dist/src/adapters/next/shared/utils/localize-pathname.d.ts +0 -18
- package/dist/src/adapters/next/shared/utils/localize-pathname.js +0 -36
- package/dist/src/client/react/contexts/config/provider.d.ts +0 -2
- package/dist/src/client/react/contexts/intor-provider/intor-provider.d.ts +0 -2
- package/dist/src/client/react/contexts/locale/provider.js +0 -48
- package/dist/src/client/react/contexts/locale/utils/change-locale.d.ts +0 -22
- package/dist/src/client/react/contexts/locale/utils/change-locale.js +0 -35
- package/dist/src/client/react/contexts/locale/utils/use-init-locale-cookie.d.ts +0 -8
- package/dist/src/client/react/contexts/locale/utils/use-init-locale-cookie.js +0 -28
- package/dist/src/client/react/contexts/messages/utils/use-refetch-messages.d.ts +0 -16
- package/dist/src/client/react/contexts/messages/utils/use-refetch-messages.js +0 -57
- package/dist/src/client/react/contexts/translate-handlers/context.d.ts +0 -2
- package/dist/src/client/react/contexts/translate-handlers/context.js +0 -6
- package/dist/src/client/react/contexts/translate-handlers/hook.d.ts +0 -2
- package/dist/src/client/react/contexts/translate-handlers/hook.js +0 -10
- package/dist/src/client/react/contexts/translate-handlers/index.d.ts +0 -3
- package/dist/src/client/react/contexts/translate-handlers/provider.d.ts +0 -2
- package/dist/src/client/react/contexts/translate-handlers/provider.js +0 -11
- package/dist/src/client/react/contexts/translate-handlers/types.d.ts +0 -7
- package/dist/src/client/react/contexts/translator/hook.d.ts +0 -3
- package/dist/src/client/react/contexts/translator/types.d.ts +0 -11
- package/dist/src/client/react/hooks/use-translator.d.ts +0 -12
- package/dist/src/client/react/index.d.ts +0 -4
- package/dist/src/client/shared/utils/get-initial-locale.d.ts +0 -11
- package/dist/src/client/shared/utils/get-initial-locale.js +0 -21
- package/dist/src/config/define-intor-config.d.ts +0 -2
- package/dist/src/config/index.d.ts +0 -5
- package/dist/src/config/resolvers/resolve-cookie-options.d.ts +0 -11
- package/dist/src/config/resolvers/resolve-cookie-options.js +0 -19
- package/dist/src/config/resolvers/resolve-fallback-locales.d.ts +0 -3
- package/dist/src/config/resolvers/resolve-routing-options.d.ts +0 -13
- package/dist/src/config/resolvers/resolve-routing-options.js +0 -28
- package/dist/src/config/types/cookie.types.d.ts +0 -23
- package/dist/src/config/types/loader.types.d.ts +0 -38
- package/dist/src/config/types/logger.types.d.ts +0 -7
- package/dist/src/config/types/routing.types.d.ts +0 -15
- package/dist/src/config/types/translator.types.d.ts +0 -4
- package/dist/src/config/validators/validate-default-locale.d.ts +0 -3
- package/dist/src/config/validators/validate-supported-locales.d.ts +0 -7
- package/dist/src/server/index.d.ts +0 -4
- package/dist/src/server/intor/index.d.ts +0 -2
- package/dist/src/server/intor/intor.d.ts +0 -14
- package/dist/src/server/intor/intor.js +0 -67
- package/dist/src/server/intor/types.d.ts +0 -14
- package/dist/src/server/messages/index.d.ts +0 -7
- package/dist/src/server/messages/load-local-messages/index.d.ts +0 -2
- package/dist/src/server/messages/load-local-messages/load-local-messages.d.ts +0 -11
- package/dist/src/server/messages/load-local-messages/load-local-messages.js +0 -85
- package/dist/src/server/messages/load-local-messages/types.d.ts +0 -21
- package/dist/src/server/messages/load-messages.d.ts +0 -11
- package/dist/src/server/messages/load-remote-messages/index.d.ts +0 -2
- package/dist/src/server/messages/load-remote-messages/load-remote-messages.d.ts +0 -9
- package/dist/src/server/messages/load-remote-messages/load-remote-messages.js +0 -79
- package/dist/src/shared/types/generated.types.d.ts +0 -30
- package/dist/src/shared/types/translator-instance.types.d.ts +0 -33
- package/dist/src/shared/utils/client/build-cookie-string.d.ts +0 -9
- package/dist/src/shared/utils/client/build-cookie-string.js +0 -33
- package/dist/src/shared/utils/client/set-locale-cookie-browser.d.ts +0 -13
- package/dist/src/shared/utils/client/set-locale-cookie-browser.js +0 -21
- package/dist/src/shared/utils/index.d.ts +0 -8
- package/dist/src/shared/utils/locale/normalize-locale.d.ts +0 -4
- package/dist/src/shared/utils/locale/resolve-preferred-locale.d.ts +0 -5
- package/dist/src/shared/utils/locale/resolve-preferred-locale.js +0 -26
- package/dist/src/shared/utils/merge-messages.d.ts +0 -6
- package/dist/src/shared/utils/merge-messages.js +0 -13
- package/dist/src/shared/utils/normalize-cache-key.d.ts +0 -3
- package/dist/src/shared/utils/pathname/extract-pathname.d.ts +0 -28
- package/dist/src/shared/utils/pathname/extract-pathname.js +0 -58
- package/dist/src/shared/utils/pathname/standardize-pathname.d.ts +0 -18
- package/dist/src/shared/utils/resolve-namespaces.d.ts +0 -10
- package/dist/src/shared/utils/resolve-namespaces.js +0 -33
- package/dist/{src → core/src}/config/constants/cache.constants.js +0 -0
- package/dist/{src → core/src}/config/resolvers/resolve-cache-options.js +0 -0
- package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.js +0 -0
- package/dist/{src → core/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/nest-object-from-path.js +0 -0
- package/dist/{src → core/src}/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.js +0 -0
- package/dist/{src → core/src}/server/messages/shared/utils/is-valid-messages.js +0 -0
- package/dist/{src → core/src}/shared/constants/prefix-placeholder.js +0 -0
- package/dist/{src → core/src}/shared/error/intor-error.js +0 -0
- package/dist/{src → next/src}/server/shared/logger/global-logger-pool.js +0 -0
- package/dist/{src/server/messages/shared → next/src/server/shared/messages}/global-messages-pool.js +0 -0
- package/dist/{src → types/src}/adapters/next/navigation/index.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/config/context.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/config/hook.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/config/index.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/intor-provider/index.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/locale/context.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/locale/hook.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/locale/index.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/locale/provider.d.ts +0 -0
- package/dist/{src → types/src}/client/react/contexts/locale/types.d.ts +4 -4
- /package/dist/{src → types/src}/client/react/contexts/messages/context.d.ts +0 -0
- /package/dist/{src → types/src}/client/react/contexts/messages/hook.d.ts +0 -0
- /package/dist/{src → types/src}/client/react/contexts/messages/index.d.ts +0 -0
- /package/dist/{src → types/src}/client/react/contexts/messages/provider.d.ts +0 -0
- /package/dist/{src → types/src}/client/react/contexts/translator/context.d.ts +0 -0
- /package/dist/{src → types/src}/client/react/contexts/translator/index.d.ts +0 -0
- /package/dist/{src → types/src}/client/react/contexts/translator/provider.d.ts +0 -0
- /package/dist/{src → types/src}/config/constants/cache.constants.d.ts +0 -0
- /package/dist/{src → types/src}/config/constants/cookie.constants.d.ts +0 -0
- /package/dist/{src → types/src}/config/constants/routing.constants.d.ts +0 -0
- /package/dist/{src → types/src}/config/resolvers/resolve-cache-options.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/collect-file-entries/index.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/index.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/index.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/load-local-messages/read-locale-messages/parse-file-entries/utils/json-reader.d.ts +0 -0
- /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
- /package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/index.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/load-remote-messages/fetch-locale-messages/utils/build-search-params.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/shared/types.d.ts +0 -0
- /package/dist/{src → types/src}/server/messages/shared/utils/is-valid-messages.d.ts +0 -0
- /package/dist/{src → types/src}/server/shared/logger/global-logger-pool.d.ts +0 -0
- /package/dist/{src → types/src}/server/translator/index.d.ts +0 -0
- /package/dist/{src → types/src}/shared/constants/prefix-placeholder.d.ts +0 -0
- /package/dist/{src → types/src}/shared/error/index.d.ts +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { RoutingLocaleSource } from "../../shared/types/routing";
|
|
2
|
+
/** Context for locale resolution. */
|
|
3
|
+
export interface LocaleContext {
|
|
4
|
+
/** Locale extracted from the URL pathname, if present */
|
|
5
|
+
path?: {
|
|
6
|
+
locale?: string;
|
|
7
|
+
};
|
|
8
|
+
/** Locale inferred from the request host, if applicable */
|
|
9
|
+
host?: {
|
|
10
|
+
locale?: string;
|
|
11
|
+
};
|
|
12
|
+
/** Locale provided via query parameters, if applicable */
|
|
13
|
+
query?: {
|
|
14
|
+
locale?: string;
|
|
15
|
+
};
|
|
16
|
+
/** Locale read from cookies, if present */
|
|
17
|
+
cookie?: {
|
|
18
|
+
locale?: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Fallback locale determined by the system.
|
|
22
|
+
*
|
|
23
|
+
* - This value is always available and represents the
|
|
24
|
+
* final fallback when no other source matches.
|
|
25
|
+
*/
|
|
26
|
+
detected: {
|
|
27
|
+
locale: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Final resolved locale. */
|
|
31
|
+
export interface ResolvedLocale {
|
|
32
|
+
/** Resolved locale identifier */
|
|
33
|
+
locale: string;
|
|
34
|
+
/** Source from which the locale was resolved */
|
|
35
|
+
localeSource: RoutingLocaleSource;
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { resolvePathname } from "./resolve-pathname";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
+
import type { PathnameContext, ResolvedPathname } from "../../routing/pathname/types";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the final pathname based on routing configuration.
|
|
5
|
+
*
|
|
6
|
+
* - This function determines how locale prefixes should be
|
|
7
|
+
* applied to the given pathname based on `config.routing.prefix`.
|
|
8
|
+
*
|
|
9
|
+
* - It delegates the decision to a corresponding prefix
|
|
10
|
+
* strategy (`all`, `except-default`, or `none`) and derives
|
|
11
|
+
* a routing directive from the current pathname context.
|
|
12
|
+
*
|
|
13
|
+
* - The pathname is then localized into its final form,
|
|
14
|
+
* producing a single canonical pathname for the routing flow.
|
|
15
|
+
*
|
|
16
|
+
* - The result also indicates whether a redirect is required
|
|
17
|
+
* to reach the resolved pathname.
|
|
18
|
+
*/
|
|
19
|
+
export declare const resolvePathname: (config: IntorResolvedConfig, pathname: string, context: PathnameContext) => ResolvedPathname;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PathnameContext, PathnameDirective } from "../types";
|
|
2
|
+
import type { IntorResolvedConfig } from "../../../config";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve pathname decision for routing prefix strategy: "all".
|
|
5
|
+
*/
|
|
6
|
+
export declare function all(context: PathnameContext, config: IntorResolvedConfig): PathnameDirective;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PathnameContext, PathnameDirective } from "../types";
|
|
2
|
+
import type { IntorResolvedConfig } from "../../../config";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve pathname decision for routing prefix strategy: "except-default".
|
|
5
|
+
*/
|
|
6
|
+
export declare function exceptDefault(context: PathnameContext, config: IntorResolvedConfig): PathnameDirective;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { RoutingLocaleSource } from "../../shared/types/routing";
|
|
2
|
+
/**
|
|
3
|
+
* Context for pathname processing.
|
|
4
|
+
*
|
|
5
|
+
* - Assumes the locale has already been resolved.
|
|
6
|
+
*/
|
|
7
|
+
export interface PathnameContext {
|
|
8
|
+
/** Final resolved locale (single source of truth) */
|
|
9
|
+
locale: string;
|
|
10
|
+
/** Source from which the locale was resolved */
|
|
11
|
+
localeSource: RoutingLocaleSource;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Directive describing how the pathname should be handled.
|
|
15
|
+
*/
|
|
16
|
+
export interface PathnameDirective {
|
|
17
|
+
/** Indicates whether a redirect is required */
|
|
18
|
+
type: "pass" | "redirect";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Final resolved pathname result.
|
|
22
|
+
*/
|
|
23
|
+
export interface ResolvedPathname {
|
|
24
|
+
/** Normalized pathname after applying routing rules */
|
|
25
|
+
pathname: string;
|
|
26
|
+
/** Whether a redirect should occur */
|
|
27
|
+
shouldRedirect: boolean;
|
|
28
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../config/types/intor-config.types";
|
|
2
|
+
import type { Locale } from "intor-translator";
|
|
3
|
+
export interface NavigationTarget {
|
|
4
|
+
/** Locale selected for this navigation */
|
|
5
|
+
locale: Locale;
|
|
6
|
+
/** Final navigation destination (app-relative or external) */
|
|
7
|
+
destination: string;
|
|
8
|
+
/** Whether the destination should bypass app routing */
|
|
9
|
+
isExternal: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Resolves the destination of a navigation attempt.
|
|
13
|
+
*
|
|
14
|
+
* This is pure decision logic.
|
|
15
|
+
* No side effects and no framework-specific behavior.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveNavigationTarget(config: IntorResolvedConfig, currentLocale: Locale, currentPathname: string, input: {
|
|
18
|
+
destination?: string;
|
|
19
|
+
locale?: Locale;
|
|
20
|
+
}): NavigationTarget;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../config";
|
|
2
|
+
import type { RoutingLocaleSource } from "../shared/types/routing";
|
|
3
|
+
interface ResolveRoutingResult {
|
|
4
|
+
/** Final resolved locale */
|
|
5
|
+
locale: string;
|
|
6
|
+
/** Source from which the locale was resolved */
|
|
7
|
+
localeSource: RoutingLocaleSource;
|
|
8
|
+
/** Final resolved pathname */
|
|
9
|
+
pathname: string;
|
|
10
|
+
/** Whether a redirect is required */
|
|
11
|
+
shouldRedirect: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolves routing decision based on locale inputs and routing config.
|
|
15
|
+
*
|
|
16
|
+
* This function orchestrates locale resolution and pathname resolution
|
|
17
|
+
* as a single routing decision step.
|
|
18
|
+
*
|
|
19
|
+
* Responsibilities:
|
|
20
|
+
* - Collect locale candidates from different sources
|
|
21
|
+
* - Resolve the final locale and its source
|
|
22
|
+
* - Resolve the final pathname and redirect behavior
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveRouting(config: IntorResolvedConfig, pathname: string, localeInputs: {
|
|
25
|
+
host?: string;
|
|
26
|
+
query?: Record<string, string | string[] | undefined>;
|
|
27
|
+
cookie?: string;
|
|
28
|
+
detected: string;
|
|
29
|
+
}): ResolveRoutingResult;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { loadLocalMessagesFromUrl } from "./local-messages-from-url";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LoadLocalMessagesExtraOptions } from "../../server/messages/load-local-messages";
|
|
2
|
+
/**
|
|
3
|
+
* Load local locale messages from a URL-based query protocol.
|
|
4
|
+
*
|
|
5
|
+
* - A convenience helper for exposing local messages through a URL-accessible interface.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const url = new URL(
|
|
10
|
+
* "https://example.com/messages" +
|
|
11
|
+
* "?locale=en-US" +
|
|
12
|
+
* "&rootDir=./messages" +
|
|
13
|
+
* "&namespaces=common" +
|
|
14
|
+
* "&namespaces=homepage" +
|
|
15
|
+
* "&fallbackLocales=zh-TW"
|
|
16
|
+
* );
|
|
17
|
+
*
|
|
18
|
+
* const messages = await loadLocalMessagesFromUrl(url);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadLocalMessagesFromUrl(url: URL, extraOptions?: LoadLocalMessagesExtraOptions): Promise<import("intor-translator").LocaleMessages | undefined>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { intor, type IntorResult } from "./intor";
|
|
2
|
+
export { loadMessages, isValidMessages, type Messages, type MessagesReader, } from "./messages";
|
|
3
|
+
export { getTranslator } from "./translator";
|
|
4
|
+
export { clearLoggerPool } from "./shared/logger/global-logger-pool";
|
|
5
|
+
export { clearMessagesPool, setGlobalMessagesPool, } from "./shared/messages/global-messages-pool";
|
|
6
|
+
export { loadLocalMessagesFromUrl } from "./helpers";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../config";
|
|
2
|
+
import type { GetLocale, IntorResult } from "../../server/intor/types";
|
|
3
|
+
import type { MessagesReader } from "../../server/messages";
|
|
4
|
+
import type { GenConfigKeys } from "../../shared/types";
|
|
5
|
+
/**
|
|
6
|
+
* Entry point for initializing Intor.
|
|
7
|
+
*
|
|
8
|
+
* This function orchestrates the initialization flow:
|
|
9
|
+
*
|
|
10
|
+
* - Resolves the initial locale using a provided locale resolver
|
|
11
|
+
* - Loads locale messages if the message loader is enabled
|
|
12
|
+
* - Returns a fully-initialized Intor result
|
|
13
|
+
*
|
|
14
|
+
* This function does not perform routing decisions itself.
|
|
15
|
+
* Locale resolution is delegated to the provided `getLocale` implementation.
|
|
16
|
+
*/
|
|
17
|
+
export declare const intor: <CK extends GenConfigKeys = "__default__">(config: IntorResolvedConfig, getLocale: GetLocale, loadMessagesOptions?: {
|
|
18
|
+
exts?: string[];
|
|
19
|
+
messagesReader?: MessagesReader;
|
|
20
|
+
}) => Promise<IntorResult<CK>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../config/types/intor-config.types";
|
|
2
|
+
import type { GenConfigKeys, GenLocale } from "../../shared/types/generated";
|
|
3
|
+
import type { LocaleMessages } from "intor-translator";
|
|
4
|
+
export type GetLocale<CK extends GenConfigKeys = "__default__"> = GenLocale<CK> | ((config: IntorResolvedConfig) => GenLocale<CK> | Promise<GenLocale<CK>>);
|
|
5
|
+
export interface IntorResult<CK extends GenConfigKeys = "__default__"> {
|
|
6
|
+
config: IntorResolvedConfig;
|
|
7
|
+
initialLocale: GenLocale<CK>;
|
|
8
|
+
messages: LocaleMessages;
|
|
9
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LoadLocalMessagesParams } from "./types";
|
|
2
|
+
import type { LocaleMessages } from "intor-translator";
|
|
3
|
+
/**
|
|
4
|
+
* Load locale messages from the local file system.
|
|
5
|
+
*
|
|
6
|
+
* This function acts as the orchestration layer for local message loading.
|
|
7
|
+
* It is responsible for:
|
|
8
|
+
*
|
|
9
|
+
* - Resolving fallback locales in order
|
|
10
|
+
* - Coordinating cache read / write behavior
|
|
11
|
+
* - Limiting concurrent file reads for performance
|
|
12
|
+
*
|
|
13
|
+
* File system traversal, parsing, and message validation are delegated to lower-level utilities.
|
|
14
|
+
*/
|
|
15
|
+
export declare const loadLocalMessages: ({ pool, rootDir, locale, fallbackLocales, namespaces, extraOptions: { concurrency, cacheOptions, loggerOptions, exts, messagesReader, }, allowCacheWrite, }: LoadLocalMessagesParams) => Promise<LocaleMessages | undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectFileEntriesParams } from "./types";
|
|
2
2
|
import type { FileEntry } from "../../../../../server/messages/load-local-messages/read-locale-messages";
|
|
3
3
|
/**
|
|
4
4
|
* Recursively collects all message files under a given root directory.
|
|
@@ -8,22 +8,13 @@ import type { FileEntry } from "../../../../../server/messages/load-local-messag
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```ts
|
|
11
|
-
* [
|
|
12
|
-
*
|
|
13
|
-
* namespace: "index", // "index" = messages under locale root (no namespace)
|
|
14
|
-
* fullPath: "/Users/john/my-app/messages/en-US/index.json",
|
|
15
|
-
* relativePath: "index.json",
|
|
16
|
-
* segments: ["index"],
|
|
17
|
-
* basename: "index",
|
|
18
|
-
* },
|
|
19
|
-
* {
|
|
20
|
-
* namespace: "auth",
|
|
11
|
+
* [{
|
|
12
|
+
* namespace: "auth", // If messages under locale root (no namespace) -> "index"
|
|
21
13
|
* fullPath: "/Users/john/my-app/messages/en-US/auth/login.json",
|
|
22
14
|
* relativePath: "auth/login.json",
|
|
23
15
|
* segments: ["auth", "login"],
|
|
24
16
|
* basename: "login",
|
|
25
|
-
*
|
|
26
|
-
* ];
|
|
17
|
+
* }, ... ];
|
|
27
18
|
* ```
|
|
28
19
|
*/
|
|
29
|
-
export declare function collectFileEntries({ readdir, limit, rootDir, namespaces, extraOptions: { exts, loggerOptions }, }:
|
|
20
|
+
export declare function collectFileEntries({ readdir, limit, rootDir, namespaces, extraOptions: { exts, loggerOptions }, }: CollectFileEntriesParams): Promise<FileEntry[]>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LoggerOptions } from "../../../../../config/types/logger.types";
|
|
2
2
|
import type fs from "node:fs/promises";
|
|
3
3
|
import type { LimitFunction } from "p-limit";
|
|
4
|
-
export interface
|
|
4
|
+
export interface CollectFileEntriesParams {
|
|
5
5
|
readdir?: (typeof fs)["readdir"];
|
|
6
6
|
limit: LimitFunction;
|
|
7
7
|
rootDir: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ParseFileEntriesParams } from "./types";
|
|
2
2
|
import type { Messages } from "../../../../../server/messages/shared/types";
|
|
3
3
|
/**
|
|
4
4
|
* Parse locale message files (JSON or custom formats) into a unified LocaleMessages object.
|
|
@@ -31,4 +31,4 @@ import type { Messages } from "../../../../../server/messages/shared/types";
|
|
|
31
31
|
* }
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
-
export declare function parseFileEntries({ fileEntries, limit, extraOptions: { messagesReader, loggerOptions }, }:
|
|
34
|
+
export declare function parseFileEntries({ fileEntries, limit, extraOptions: { messagesReader, loggerOptions }, }: ParseFileEntriesParams): Promise<Messages>;
|
|
@@ -2,7 +2,7 @@ import type { LoggerOptions } from "../../../../../config/types/logger.types";
|
|
|
2
2
|
import type { FileEntry } from "../../../../../server/messages/load-local-messages/read-locale-messages/types";
|
|
3
3
|
import type { MessagesReader, Messages } from "../../../../../server/messages/shared/types";
|
|
4
4
|
import type { LimitFunction } from "p-limit";
|
|
5
|
-
export interface
|
|
5
|
+
export interface ParseFileEntriesParams {
|
|
6
6
|
fileEntries: FileEntry[];
|
|
7
7
|
limit: LimitFunction;
|
|
8
8
|
extraOptions?: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReadLocaleMessagesParams } from "../../../../server/messages/load-local-messages/read-locale-messages/types";
|
|
2
2
|
import type { LocaleMessages } from "intor-translator";
|
|
3
3
|
/**
|
|
4
4
|
* Read messages for a specific locale from the file system.
|
|
@@ -7,4 +7,4 @@ import type { LocaleMessages } from "intor-translator";
|
|
|
7
7
|
* 2. Parses each file into a messages object.
|
|
8
8
|
* 3. Wraps the parsed messages under the locale key.
|
|
9
9
|
*/
|
|
10
|
-
export declare const readLocaleMessages: ({ limit, rootDir, locale, namespaces, extraOptions: { exts, messagesReader, loggerOptions }, }:
|
|
10
|
+
export declare const readLocaleMessages: ({ limit, rootDir, locale, namespaces, extraOptions: { exts, messagesReader, loggerOptions }, }: ReadLocaleMessagesParams) => Promise<LocaleMessages>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CacheResolvedOptions } from "../../../config/types/cache.types";
|
|
2
|
+
import type { LoggerOptions } from "../../../config/types/logger.types";
|
|
3
|
+
import type { MessagesReader } from "../../../server/messages/shared/types";
|
|
4
|
+
import type { MessagesPool } from "../../../server/shared/messages/global-messages-pool";
|
|
5
|
+
export interface LoadLocalMessagesExtraOptions {
|
|
6
|
+
concurrency?: number;
|
|
7
|
+
cacheOptions?: CacheResolvedOptions;
|
|
8
|
+
loggerOptions?: LoggerOptions & {
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
exts?: string[];
|
|
12
|
+
messagesReader?: MessagesReader;
|
|
13
|
+
}
|
|
14
|
+
export interface LoadLocalMessagesParams {
|
|
15
|
+
pool?: MessagesPool;
|
|
16
|
+
rootDir?: string;
|
|
17
|
+
locale: string;
|
|
18
|
+
fallbackLocales?: string[];
|
|
19
|
+
namespaces?: string[];
|
|
20
|
+
extraOptions?: LoadLocalMessagesExtraOptions;
|
|
21
|
+
allowCacheWrite?: boolean;
|
|
22
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LoadMessagesOptions, LoadMessagesResult } from "../../server/messages/types";
|
|
2
|
+
import type { GenConfigKeys } from "../../shared/types/generated";
|
|
3
|
+
/**
|
|
4
|
+
* Load locale messages based on the resolved Intor configuration.
|
|
5
|
+
*
|
|
6
|
+
* This function acts as a thin orchestration layer that:
|
|
7
|
+
*
|
|
8
|
+
* - Selects the appropriate message loader (local or remote)
|
|
9
|
+
* - Applies fallback locale resolution
|
|
10
|
+
* - Delegates caching and concurrency behavior to the underlying loader
|
|
11
|
+
*
|
|
12
|
+
* It does not perform message normalization or transformation itself.
|
|
13
|
+
*/
|
|
14
|
+
export declare const loadMessages: <CK extends GenConfigKeys = "__default__">({ config, locale, extraOptions: { exts, messagesReader }, allowCacheWrite, }: LoadMessagesOptions) => LoadMessagesResult<CK>;
|
|
@@ -6,4 +6,4 @@ import type { LocaleMessages } from "intor-translator";
|
|
|
6
6
|
* - Validates that the returned JSON matches the expected `NamespaceMessages` structure.
|
|
7
7
|
* - Uses `fetch` with `no-store` cache to always get fresh data.
|
|
8
8
|
*/
|
|
9
|
-
export declare const fetchLocaleMessages: ({ remoteUrl, remoteHeaders, searchParams, locale, extraOptions: { loggerOptions }, }: FetcherOptions) => Promise<LocaleMessages | undefined>;
|
|
9
|
+
export declare const fetchLocaleMessages: ({ remoteUrl, remoteHeaders, searchParams, locale, extraOptions: { loggerOptions }, signal, }: FetcherOptions) => Promise<LocaleMessages | undefined>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LoadRemoteMessagesParams } from "./types";
|
|
2
|
+
import type { LocaleMessages } from "intor-translator";
|
|
3
|
+
/**
|
|
4
|
+
* Load locale messages from a remote API.
|
|
5
|
+
*
|
|
6
|
+
* This function acts as the orchestration layer for remote message loading.
|
|
7
|
+
* It is responsible for:
|
|
8
|
+
*
|
|
9
|
+
* - Resolving fallback locales in order
|
|
10
|
+
* - Coordinating cache read / write behavior
|
|
11
|
+
* - Respecting abort signals across the entire async flow
|
|
12
|
+
*
|
|
13
|
+
* Network fetching and data validation are delegated to lower-level utilities.
|
|
14
|
+
*/
|
|
15
|
+
export declare const loadRemoteMessages: ({ pool, rootDir, locale, fallbackLocales, namespaces, remoteUrl, remoteHeaders, extraOptions: { cacheOptions, loggerOptions, }, allowCacheWrite, signal, }: LoadRemoteMessagesParams) => Promise<LocaleMessages | undefined>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { CacheResolvedOptions } from "../../../config/types/cache.types";
|
|
2
2
|
import type { RemoteHeaders } from "../../../config/types/loader.types";
|
|
3
3
|
import type { LoggerOptions } from "../../../config/types/logger.types";
|
|
4
|
-
import type { MessagesPool } from "../../../server/messages/
|
|
5
|
-
export interface
|
|
4
|
+
import type { MessagesPool } from "../../../server/shared/messages/global-messages-pool";
|
|
5
|
+
export interface LoadRemoteMessagesParams {
|
|
6
6
|
pool?: MessagesPool;
|
|
7
7
|
rootDir?: string;
|
|
8
8
|
locale: string;
|
|
9
|
-
fallbackLocales
|
|
9
|
+
fallbackLocales?: string[];
|
|
10
10
|
namespaces?: string[];
|
|
11
11
|
remoteUrl: string;
|
|
12
12
|
remoteHeaders?: RemoteHeaders;
|
|
@@ -17,4 +17,5 @@ export interface LoadRemoteMessagesOptions {
|
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
allowCacheWrite?: boolean;
|
|
20
|
+
signal?: AbortSignal;
|
|
20
21
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { IntorResolvedConfig } from "../../config/types/intor-config.types";
|
|
2
2
|
import type { MessagesReader } from "../../server/messages/shared/types";
|
|
3
|
-
import type { GenConfigKeys, GenMessages } from "../../shared/types/generated
|
|
3
|
+
import type { GenConfigKeys, GenMessages } from "../../shared/types/generated";
|
|
4
4
|
import type { Locale } from "intor-translator";
|
|
5
5
|
export type LoadMessagesOptions = {
|
|
6
6
|
config: IntorResolvedConfig;
|
|
7
7
|
locale: Locale;
|
|
8
|
-
pathname?: string;
|
|
9
8
|
extraOptions?: {
|
|
10
9
|
exts?: string[];
|
|
11
10
|
messagesReader?: MessagesReader;
|
|
12
11
|
};
|
|
13
12
|
allowCacheWrite?: boolean;
|
|
14
13
|
};
|
|
15
|
-
export type LoadMessagesResult<
|
|
14
|
+
export type LoadMessagesResult<CK extends GenConfigKeys = "__default__"> = Promise<GenMessages<CK> | undefined>;
|
|
@@ -5,7 +5,7 @@ import type { Logger } from "logry";
|
|
|
5
5
|
* - Safe across hot reloads
|
|
6
6
|
* - Prevents unbounded memory usage via soft LRU
|
|
7
7
|
*/
|
|
8
|
-
export declare function getLogger({ id,
|
|
8
|
+
export declare function getLogger({ id, formatConfig, renderConfig, preset, ...options }: {
|
|
9
9
|
id?: string;
|
|
10
10
|
scope?: string;
|
|
11
11
|
} & LoggerOptions): Logger;
|
|
@@ -8,8 +8,15 @@ declare global {
|
|
|
8
8
|
var __INTOR_MESSAGES_POOL__: MessagesPool | undefined;
|
|
9
9
|
}
|
|
10
10
|
export declare function getGlobalMessagesPool(): MessagesPool;
|
|
11
|
+
/**
|
|
12
|
+
* Replace the global messages pool.
|
|
13
|
+
*
|
|
14
|
+
* - Intended for advanced usage (e.g. Redis, custom cache backends).
|
|
15
|
+
* - Must be called during application bootstrap.
|
|
16
|
+
*/
|
|
17
|
+
export declare function setGlobalMessagesPool(pool: MessagesPool): void;
|
|
11
18
|
/**
|
|
12
19
|
* Optional: clear all cache
|
|
13
|
-
* Useful in tests or dynamic reloads.
|
|
20
|
+
* - Useful in tests or dynamic reloads.
|
|
14
21
|
*/
|
|
15
22
|
export declare function clearMessagesPool(): void;
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import type { IntorResolvedConfig } from "../../config/types/intor-config.types";
|
|
2
|
-
import type { GenConfigKeys, GenLocale, GenMessages } from "../../shared/types/generated
|
|
3
|
-
import type { TranslatorInstance } from "../../shared/types/translator-instance
|
|
4
|
-
import type { LocalizedNodeKeys, TranslateHandlers } from "intor-translator";
|
|
2
|
+
import type { GenConfigKeys, GenLocale, GenMessages } from "../../shared/types/generated";
|
|
3
|
+
import type { TranslatorInstance } from "../../shared/types/translator-instance";
|
|
4
|
+
import type { LocalizedNodeKeys, TranslateHandlers, TranslateHook, TranslatorPlugin } from "intor-translator";
|
|
5
5
|
import { type MessagesReader } from "../../server/messages";
|
|
6
6
|
/**
|
|
7
|
-
* Create a translator instance for a specific locale
|
|
8
|
-
*
|
|
9
|
-
* - Loads messages using the provided config, locale, and pathname.
|
|
10
|
-
* - Initializes a translator with `t`, `hasKey`, and optional scoped methods.
|
|
11
|
-
* - Supports optional `preKey` to create a scoped translator for nested keys.
|
|
7
|
+
* Create a translator instance for a specific locale.
|
|
12
8
|
*/
|
|
13
9
|
export declare function getTranslator<CK extends GenConfigKeys = "__default__">(options: {
|
|
14
10
|
config: IntorResolvedConfig;
|
|
15
|
-
locale: GenLocale
|
|
16
|
-
pathname?: string;
|
|
11
|
+
locale: GenLocale<CK>;
|
|
17
12
|
handlers?: TranslateHandlers;
|
|
13
|
+
plugins?: (TranslatorPlugin | TranslateHook)[];
|
|
18
14
|
extraOptions?: {
|
|
19
15
|
exts?: string[];
|
|
20
16
|
messagesReader?: MessagesReader;
|
|
@@ -22,9 +18,9 @@ export declare function getTranslator<CK extends GenConfigKeys = "__default__">(
|
|
|
22
18
|
}): Promise<TranslatorInstance<GenMessages<CK>>>;
|
|
23
19
|
export declare function getTranslator<CK extends GenConfigKeys = "__default__", PK extends string = LocalizedNodeKeys<GenMessages<CK>>>(options: {
|
|
24
20
|
config: IntorResolvedConfig;
|
|
25
|
-
locale: GenLocale
|
|
26
|
-
pathname?: string;
|
|
21
|
+
locale: GenLocale<CK>;
|
|
27
22
|
handlers?: TranslateHandlers;
|
|
23
|
+
plugins?: (TranslatorPlugin | TranslateHook)[];
|
|
28
24
|
extraOptions?: {
|
|
29
25
|
exts?: string[];
|
|
30
26
|
messagesReader?: MessagesReader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PREFIX_PLACEHOLDER } from "./prefix-placeholder";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
interface IntorErrorOptions {
|
|
2
2
|
message: string;
|
|
3
|
-
code?:
|
|
3
|
+
code?: IntorErrorCode;
|
|
4
4
|
id?: string;
|
|
5
|
-
}
|
|
5
|
+
}
|
|
6
6
|
export declare class IntorError extends Error {
|
|
7
|
-
readonly code?:
|
|
7
|
+
readonly code?: IntorErrorCode;
|
|
8
8
|
readonly id?: string;
|
|
9
9
|
constructor({ message, code, id }: IntorErrorOptions);
|
|
10
10
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { PREFIX_PLACEHOLDER } from "../../shared/constants/prefix-placeholder";
|
|
2
|
+
import type { LocaleMessages } from "intor-translator";
|
|
3
|
+
/**
|
|
4
|
+
* ================================================
|
|
5
|
+
* Generated-aware type system for Intor.
|
|
6
|
+
*
|
|
7
|
+
* This module defines conditional and fallback types that adapt
|
|
8
|
+
* based on whether generated types are present.
|
|
9
|
+
* ================================================
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Internal sentinel key indicating that Intor generated types are present.
|
|
13
|
+
* - Used by conditional types to switch between fallback and generated modes.
|
|
14
|
+
* - Type-level only. Not for runtime or user-facing usage.
|
|
15
|
+
*/
|
|
16
|
+
export type INTOR_GENERATED_KEY = "__intor_generated__";
|
|
17
|
+
/**
|
|
18
|
+
* Conditional type for generated types.
|
|
19
|
+
* - Uses key presence on `IntorGeneratedTypes` to detect generation.
|
|
20
|
+
*/
|
|
21
|
+
export type IfGen<Then, Else = never> = IntorGeneratedTypes extends {
|
|
22
|
+
[K in INTOR_GENERATED_KEY]: true;
|
|
23
|
+
} ? Then : Else;
|
|
24
|
+
/**
|
|
25
|
+
* Config keys provided by generated types.
|
|
26
|
+
* - Excludes internal sentinel
|
|
27
|
+
*/
|
|
28
|
+
type GeneratedConfigKeys = Exclude<keyof IntorGeneratedTypes, INTOR_GENERATED_KEY>;
|
|
29
|
+
/**
|
|
30
|
+
* Union of all configuration keys.
|
|
31
|
+
* - Defaults to `string` if `IntorGeneratedTypes` does not exist.
|
|
32
|
+
*/
|
|
33
|
+
export type GenConfigKeys = IfGen<GeneratedConfigKeys, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Configuration shape for a given config key.
|
|
36
|
+
* - If `IntorGeneratedTypes` is not defined, falls back to default shape.
|
|
37
|
+
* Otherwise, picks `Locales` and `Messages` according to the key.
|
|
38
|
+
*/
|
|
39
|
+
export type GenConfig<CK extends GenConfigKeys> = IfGen<CK extends keyof IntorGeneratedTypes ? IntorGeneratedTypes[CK] extends {
|
|
40
|
+
Locales: infer L extends string;
|
|
41
|
+
Messages: Record<typeof PREFIX_PLACEHOLDER, infer M>;
|
|
42
|
+
} ? {
|
|
43
|
+
Locales: L;
|
|
44
|
+
Messages: Record<L, M>;
|
|
45
|
+
} : never : never, {
|
|
46
|
+
Locales: string;
|
|
47
|
+
Messages: LocaleMessages;
|
|
48
|
+
}>;
|
|
49
|
+
/** Extracts messages for a given config key */
|
|
50
|
+
export type GenMessages<CK extends GenConfigKeys> = GenConfig<CK>["Messages"];
|
|
51
|
+
/** Extracts locales for a given config key */
|
|
52
|
+
export type GenLocale<CK extends GenConfigKeys> = GenConfig<CK>["Locales"];
|
|
53
|
+
export {};
|