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,27 @@
|
|
|
1
|
+
import type { IfGen } from "../../shared/types/generated";
|
|
2
|
+
import { type Locale, type Replacement, type ScopedLeafKeys, type LocalizedLeafKeys, type LocaleMessages } from "intor-translator";
|
|
3
|
+
export type KeyMode = "auto" | "string";
|
|
4
|
+
/**
|
|
5
|
+
* Message key type resolved from translator context.
|
|
6
|
+
*
|
|
7
|
+
* - Uses scoped keys when a `preKey` is provided
|
|
8
|
+
* - Falls back to all localized leaf keys otherwise
|
|
9
|
+
*
|
|
10
|
+
* This type is compile-time only and framework-agnostic.
|
|
11
|
+
*/
|
|
12
|
+
export type MessageKey<M extends LocaleMessages, PK extends string | undefined = undefined, Mode extends KeyMode = "auto"> = Mode extends "string" ? string : IfGen<PK extends string ? ScopedLeafKeys<M, PK> : LocalizedLeafKeys<M>, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Core translator instance interface.
|
|
15
|
+
*
|
|
16
|
+
* This type represents the minimal, framework-independent translator contract.
|
|
17
|
+
*/
|
|
18
|
+
export type TranslatorInstance<M extends LocaleMessages, PK extends string | undefined = undefined, Mode extends KeyMode = "auto"> = {
|
|
19
|
+
/** `messages`: The message object containing all translations. */
|
|
20
|
+
messages: M;
|
|
21
|
+
/** Current locale in use. */
|
|
22
|
+
locale: Locale<M>;
|
|
23
|
+
/** Check if a given key exists in the messages. */
|
|
24
|
+
hasKey: (key?: MessageKey<M, PK, Mode>, targetLocale?: Locale<M>) => boolean;
|
|
25
|
+
/** Translate a given key into its string representation. */
|
|
26
|
+
t: <Result = string>(key?: MessageKey<M, PK, Mode>, replacements?: Replacement) => Result;
|
|
27
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type PlainObject = Record<string, unknown>;
|
|
2
|
+
/**
|
|
3
|
+
* Deeply merges two objects.
|
|
4
|
+
* - Nested objects → merged recursively
|
|
5
|
+
* - Array / primitive → b overwrites a
|
|
6
|
+
*/
|
|
7
|
+
export declare const deepMerge: <T extends PlainObject, U extends PlainObject>(a?: T, b?: U) => (T & U) | T | U | undefined;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { deepMerge } from "./deep-merge";
|
|
2
|
+
export { normalizeCacheKey, normalizeLocale, normalizePathname, } from "./normalizers";
|
|
3
|
+
export { getLocaleFromAcceptLanguage, getLocaleFromPathname, getLocaleFromHost, getLocaleFromQuery, } from "./locale";
|
|
4
|
+
export { localizePathname } from "./pathname";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines whether a navigation target should bypass app routing.
|
|
3
|
+
*
|
|
4
|
+
* Any value with an explicit scheme (e.g. http:, https:, mailto:)
|
|
5
|
+
* is treated as external navigation.
|
|
6
|
+
*/
|
|
7
|
+
export declare const isExternalDestination: (destination: string) => boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve locale from the `Accept-Language` header.
|
|
4
|
+
*
|
|
5
|
+
* - Parses language priorities (`q` values) from the header.
|
|
6
|
+
* - Selects the highest-priority language supported by the application.
|
|
7
|
+
* - Normalizes the matched locale against `supportedLocales`.
|
|
8
|
+
*
|
|
9
|
+
* If no supported locale can be resolved, `undefined` is returned.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* getLocaleFromAcceptLanguage("en-US,en;q=0.8,zh-TW;q=0.9", ["en-US", "zh-TW"])
|
|
14
|
+
* // => "en-US"
|
|
15
|
+
* getLocaleFromAcceptLanguage("fr,ja;q=0.9", ["en", "zh-TW"])
|
|
16
|
+
* // => undefined
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const getLocaleFromAcceptLanguage: (config: IntorResolvedConfig, acceptLanguageHeader: string | undefined) => string | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config";
|
|
2
|
+
/**
|
|
3
|
+
* Extract locale from hostname.
|
|
4
|
+
*
|
|
5
|
+
* Only the left-most subdomain is considered as a locale candidate, if present.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* getLocaleFromHost(config, "en.example.com")
|
|
10
|
+
* // => "en"
|
|
11
|
+
* getLocaleFromHost(config, "example.com")
|
|
12
|
+
* // => undefined
|
|
13
|
+
* getLocaleFromHost(config, "api.jp.example.com")
|
|
14
|
+
* // => undefined
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function getLocaleFromHost(config: IntorResolvedConfig, host: string | undefined): string | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config/types/intor-config.types";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the locale from a pathname, if present.
|
|
4
|
+
*
|
|
5
|
+
* - Normalizes the raw pathname.
|
|
6
|
+
* - Strips the configured basePath.
|
|
7
|
+
* - Inspects the first path segment to determine whether
|
|
8
|
+
* it matches a supported locale.
|
|
9
|
+
*
|
|
10
|
+
* If no locale segment is found, `undefined` is returned.
|
|
11
|
+
*
|
|
12
|
+
* Note:
|
|
13
|
+
* - The pathname is treated as a canonical source.
|
|
14
|
+
* - Only exact matches against `supportedLocales` are accepted.
|
|
15
|
+
* - ___Locale normalization is intentionally not applied here.___
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* getLocaleFromPathname(config, "/en/about")
|
|
20
|
+
* // => "en"
|
|
21
|
+
* getLocaleFromPathname(config, "/zh-TW")
|
|
22
|
+
* // => "zh-TW"
|
|
23
|
+
* getLocaleFromPathname(config, "/about")
|
|
24
|
+
* // => undefined
|
|
25
|
+
*
|
|
26
|
+
* // config.routing.basePath: "/app"
|
|
27
|
+
* getLocaleFromPathname(config, "/app/en/dashboard")
|
|
28
|
+
* // => "en"
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function getLocaleFromPathname(config: IntorResolvedConfig, pathname: string): string | undefined;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config/types/intor-config.types";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts locale from URL query parameters.
|
|
4
|
+
*
|
|
5
|
+
* - Reads the configured locale query key.
|
|
6
|
+
* - Normalizes the value against supported locales.
|
|
7
|
+
*
|
|
8
|
+
* If no valid locale is found, `undefined` is returned.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* getLocaleFromQuery(config, { locale: "en" })
|
|
13
|
+
* // => "en"
|
|
14
|
+
* getLocaleFromQuery(config, {})
|
|
15
|
+
* // => undefined
|
|
16
|
+
* getLocaleFromQuery(config, { locale: ["zh-TW"] })
|
|
17
|
+
* // => "zh-TW"
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function getLocaleFromQuery(config: IntorResolvedConfig, query: Record<string, string | string[] | undefined> | undefined): string | undefined;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { getLocaleFromAcceptLanguage } from "./get-locale-from-accept-language";
|
|
2
|
+
export { getLocaleFromPathname } from "./get-locale-from-pathname";
|
|
3
|
+
export { getLocaleFromHost } from "./get-locale-from-host";
|
|
4
|
+
export { getLocaleFromQuery } from "./get-locale-from-query";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type RawCacheKey = string | boolean | Array<string | number | boolean | undefined | null>;
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes a value into a stable cache key string.
|
|
4
|
+
*
|
|
5
|
+
* - Supports primitive values and structured array keys.
|
|
6
|
+
* - Produces deterministic output suitable for cache identifiers.
|
|
7
|
+
*
|
|
8
|
+
* Notes:
|
|
9
|
+
* - `null`, `undefined`, or empty arrays return `null`.
|
|
10
|
+
* - Special tokens are used for boolean, null, and undefined values
|
|
11
|
+
* to preserve semantic differences.
|
|
12
|
+
*/
|
|
13
|
+
export declare const normalizeCacheKey: (key?: RawCacheKey, delimiter?: string) => string | null;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a locale string and resolves the best match
|
|
3
|
+
* from a list of supported locales.
|
|
4
|
+
*
|
|
5
|
+
* Resolution strategy:
|
|
6
|
+
*
|
|
7
|
+
* 1. Exact canonical match (BCP 47)
|
|
8
|
+
* 2. Base language fallback
|
|
9
|
+
* - Falls back by base language when no exact match is found
|
|
10
|
+
* (e.g. `"en"` → `"en-US"`).
|
|
11
|
+
* - Script and region subtags are ignored during this step
|
|
12
|
+
* (e.g. `"zh-Hans"` → `"zh-Hant-TW"`)
|
|
13
|
+
* - Preference is determined by the order of `supportedLocales`.
|
|
14
|
+
*
|
|
15
|
+
* Returns `undefined` if no suitable match is found.
|
|
16
|
+
*
|
|
17
|
+
* Notes:
|
|
18
|
+
* - Invalid locale inputs are ignored gracefully.
|
|
19
|
+
* - Always returns an original entry from `supportedLocales`.
|
|
20
|
+
* - Requires `Intl` locale support in the runtime.
|
|
21
|
+
*/
|
|
22
|
+
export declare const normalizeLocale: <Locale extends string>(locale: string | undefined, supportedLocales?: readonly Locale[]) => Locale | undefined;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Trims leading and trailing whitespace (code points ≤ 32).
|
|
5
5
|
* - Collapses consecutive slashes into a single slash.
|
|
6
|
-
* - Ensures a leading slash and removes trailing slashes.
|
|
6
|
+
* - Ensures a single leading slash and removes redundant trailing slashes.
|
|
7
7
|
* - Optionally removes the leading slash.
|
|
8
8
|
* - Avoids intermediate array allocations for performance.
|
|
9
9
|
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config/types/intor-config.types";
|
|
2
|
+
/**
|
|
3
|
+
* Returns a canonical, locale-agnostic pathname.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* // config.supportedLocales: ["en-US"]
|
|
8
|
+
* // config.routing.basePath: "/app"
|
|
9
|
+
* // config.routing.prefix: "all"
|
|
10
|
+
* getUnprefixedPathname(config, "/app/en-US/about" );
|
|
11
|
+
* // => "/about"
|
|
12
|
+
*```
|
|
13
|
+
*/
|
|
14
|
+
export declare function getUnprefixedPathname(config: IntorResolvedConfig, rawPathname: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { localizePathname } from "./localize-pathname";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config/types/intor-config.types";
|
|
2
|
+
/**
|
|
3
|
+
* Applies routing prefix strategy by resolving the locale placeholder.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* // config.routing.prefix: "all"
|
|
8
|
+
* localePrefixPathname({ config, pathname: "/app/{locale}/about", locale: "en-US" });
|
|
9
|
+
* // => /app/en-US/about
|
|
10
|
+
*
|
|
11
|
+
* // config.routing.prefix: "none"
|
|
12
|
+
* localePrefixPathname({ config, pathname: "/app/{locale}/about", locale: "en-US" });
|
|
13
|
+
* // => /app/about
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const localePrefixPathname: (config: IntorResolvedConfig, standardizedPathname: string, locale?: string) => string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config/types/intor-config.types";
|
|
2
|
+
/**
|
|
3
|
+
* Localizes a pathname by composing canonicalization,
|
|
4
|
+
* standardization, and locale prefix strategies.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* // config.supportedLocales: ["en-US"]
|
|
9
|
+
* // config.routing.basePath: "/app"
|
|
10
|
+
* // config.routing.prefix: "all"
|
|
11
|
+
* localePrefixPathname({ config, pathname: "/app/en-US/about", locale: "en-US" });
|
|
12
|
+
* // => {
|
|
13
|
+
* // unprefixedPathname: '/about',
|
|
14
|
+
* // standardizedPathname: '/app/{locale}/about',
|
|
15
|
+
* // localizedPathname: '/app/en-US/about'
|
|
16
|
+
* // }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const localizePathname: (config: IntorResolvedConfig, rawPathname: string, locale?: string) => {
|
|
20
|
+
unprefixedPathname: string;
|
|
21
|
+
standardizedPathname: string;
|
|
22
|
+
localizedPathname: string;
|
|
23
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IntorResolvedConfig } from "../../../config/types/intor-config.types";
|
|
2
|
+
/**
|
|
3
|
+
* Standardizes a canonical pathname by applying the base path
|
|
4
|
+
* and injecting the locale placeholder.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* // routing.basePath: "/app",
|
|
9
|
+
* standardizePathname({ config, pathname: "/cms" });
|
|
10
|
+
* // => "/app/{locale}/cms"
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare const standardizePathname: (config: IntorResolvedConfig, unprefixedPathname: string) => string;
|
package/package.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "intor",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
4
4
|
"description": "A modular and extensible i18n core designed for TypeScript and JavaScript projects. Intor enables custom translation logic with support for both frontend and backend environments, featuring runtime configuration, caching, adapters, and message loaders.",
|
|
5
5
|
"author": "Yiming Liao",
|
|
6
|
-
"license": "MIT",
|
|
7
6
|
"homepage": "https://github.com/yiming-liao/intor#readme",
|
|
8
7
|
"repository": {
|
|
9
8
|
"type": "git",
|
|
@@ -12,6 +11,10 @@
|
|
|
12
11
|
"bugs": {
|
|
13
12
|
"url": "https://github.com/yiming-liao/intor/issues"
|
|
14
13
|
},
|
|
14
|
+
"funding": {
|
|
15
|
+
"type": "github",
|
|
16
|
+
"url": "https://github.com/sponsors/yiming-liao"
|
|
17
|
+
},
|
|
15
18
|
"keywords": [
|
|
16
19
|
"i18n",
|
|
17
20
|
"internationalization",
|
|
@@ -24,103 +27,111 @@
|
|
|
24
27
|
"i18n core",
|
|
25
28
|
"custom messages"
|
|
26
29
|
],
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"type": "module",
|
|
27
32
|
"exports": {
|
|
28
33
|
".": {
|
|
29
|
-
"
|
|
30
|
-
"
|
|
34
|
+
"import": "./dist/core/export/index.js",
|
|
35
|
+
"types": "./dist/types/export/index.d.ts"
|
|
31
36
|
},
|
|
32
37
|
"./config": {
|
|
33
|
-
"
|
|
34
|
-
"
|
|
38
|
+
"import": "./dist/core/export/config/index.js",
|
|
39
|
+
"types": "./dist/types/export/config/index.d.ts"
|
|
35
40
|
},
|
|
36
41
|
"./server": {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
42
|
+
"import": "./dist/core/export/server/index.js",
|
|
43
|
+
"types": "./dist/types/export/server/index.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./internal": {
|
|
46
|
+
"types": "./dist/types/export/internal/index.d.ts"
|
|
39
47
|
},
|
|
40
48
|
"./react": {
|
|
41
|
-
"
|
|
42
|
-
"
|
|
49
|
+
"import": "./dist/react/export/react/index.js",
|
|
50
|
+
"types": "./dist/types/export/react/index.d.ts"
|
|
43
51
|
},
|
|
44
52
|
"./next": {
|
|
45
|
-
"
|
|
46
|
-
"
|
|
53
|
+
"import": "./dist/next/export/next/index.js",
|
|
54
|
+
"types": "./dist/types/export/next/index.d.ts"
|
|
47
55
|
},
|
|
48
56
|
"./next/proxy": {
|
|
49
|
-
"
|
|
50
|
-
"
|
|
57
|
+
"import": "./dist/next/export/next/proxy/index.js",
|
|
58
|
+
"types": "./dist/types/export/next/proxy/index.d.ts"
|
|
51
59
|
},
|
|
52
60
|
"./next/middleware": {
|
|
53
|
-
"
|
|
54
|
-
"
|
|
61
|
+
"import": "./dist/next/export/next/proxy/index.js",
|
|
62
|
+
"types": "./dist/types/export/next/proxy/index.d.ts"
|
|
55
63
|
},
|
|
56
64
|
"./next/server": {
|
|
57
|
-
"
|
|
58
|
-
"
|
|
65
|
+
"import": "./dist/next/export/next/server/index.js",
|
|
66
|
+
"types": "./dist/types/export/next/server/index.d.ts"
|
|
59
67
|
}
|
|
60
68
|
},
|
|
69
|
+
"main": "./dist/export/index.js",
|
|
70
|
+
"module": "./dist/export/index.js",
|
|
61
71
|
"files": [
|
|
62
72
|
"dist",
|
|
63
73
|
"README.md",
|
|
64
74
|
"LICENSE"
|
|
65
75
|
],
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
76
|
+
"sideEffects": false,
|
|
77
|
+
"engines": {
|
|
78
|
+
"node": ">=16.0.0"
|
|
79
|
+
},
|
|
69
80
|
"scripts": {
|
|
70
81
|
"type": "tsc --noEmit",
|
|
71
82
|
"lint": "eslint",
|
|
72
83
|
"lint:debug": "eslint --debug",
|
|
73
84
|
"test": "vitest",
|
|
85
|
+
"test:types": "tsx scripts/test-types.ts",
|
|
74
86
|
"knip": "knip --config .config/knip.config.ts",
|
|
75
|
-
"
|
|
76
|
-
"build:core": "rollup -c .config/rollup/core.js",
|
|
77
|
-
"build:react": "rollup -c .config/rollup/react.js",
|
|
78
|
-
"build:next": "rollup -c .config/rollup/next.js",
|
|
79
|
-
"build:dts": "rollup -c .config/rollup/dts.js",
|
|
80
|
-
"build": "yarn clean && yarn build:core && yarn build:react && yarn build:next && yarn tsc -p tsconfig.build.json && yarn tsc-alias tsconfig.build.json --outDir dist",
|
|
87
|
+
"build": "tsx scripts/build.ts",
|
|
81
88
|
"prepublishOnly": "yarn build",
|
|
82
89
|
"examples:html": "vite --config examples/html/vite.config.ts"
|
|
83
90
|
},
|
|
84
91
|
"dependencies": {
|
|
85
|
-
"intor-translator": "
|
|
86
|
-
"keyv": "
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"p-limit": "^6.2.0"
|
|
92
|
+
"intor-translator": "1.3.1",
|
|
93
|
+
"keyv": "5.5.5",
|
|
94
|
+
"logry": "2.1.5",
|
|
95
|
+
"p-limit": "7.2.0"
|
|
90
96
|
},
|
|
91
97
|
"devDependencies": {
|
|
92
|
-
"@
|
|
93
|
-
"@rollup/plugin-typescript": "
|
|
94
|
-
"@
|
|
95
|
-
"@
|
|
96
|
-
"@
|
|
97
|
-
"@
|
|
98
|
-
"@
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"eslint
|
|
105
|
-
"eslint-
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"react": "
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
98
|
+
"@rollup/plugin-alias": "^6.0.0",
|
|
99
|
+
"@rollup/plugin-typescript": "12.3.0",
|
|
100
|
+
"@rollup/pluginutils": "^5.3.0",
|
|
101
|
+
"@testing-library/dom": "10.4.1",
|
|
102
|
+
"@testing-library/jest-dom": "6.9.1",
|
|
103
|
+
"@testing-library/react": "16.3.1",
|
|
104
|
+
"@testing-library/user-event": "14.6.1",
|
|
105
|
+
"@types/node": "24.10.1",
|
|
106
|
+
"@types/react": "19.0.0",
|
|
107
|
+
"@types/react-dom": "19.0.0",
|
|
108
|
+
"@vitejs/plugin-react": "5.1.2",
|
|
109
|
+
"@vitest/coverage-v8": "4.0.16",
|
|
110
|
+
"eslint": "9.39.2",
|
|
111
|
+
"eslint-config-prettier": "10.1.8",
|
|
112
|
+
"eslint-import-resolver-typescript": "4.4.4",
|
|
113
|
+
"eslint-plugin-import": "2.31.0",
|
|
114
|
+
"eslint-plugin-prettier": "5.5.4",
|
|
115
|
+
"eslint-plugin-react": "7.37.5",
|
|
116
|
+
"eslint-plugin-react-hooks": "7.0.1",
|
|
117
|
+
"eslint-plugin-unicorn": "62.0.0",
|
|
118
|
+
"eslint-plugin-unused-imports": "4.1.4",
|
|
119
|
+
"jsdom": "27.3.0",
|
|
120
|
+
"knip": "5.69.1",
|
|
121
|
+
"magic-string": "^0.30.21",
|
|
122
|
+
"next": "16.0.3",
|
|
123
|
+
"prettier": "3.6.2",
|
|
124
|
+
"react": "19.0.0",
|
|
125
|
+
"react-dom": "19.0.0",
|
|
126
|
+
"remark": "15.0.1",
|
|
127
|
+
"remark-gfm": "4.0.1",
|
|
128
|
+
"rollup": "4.53.3",
|
|
129
|
+
"tsc-alias": "1.8.16",
|
|
130
|
+
"tsd": "0.33.0",
|
|
131
|
+
"typescript": "5.8.3",
|
|
132
|
+
"typescript-eslint": "8.32.1",
|
|
133
|
+
"vite": "7.3.0",
|
|
134
|
+
"vite-tsconfig-paths": "6.0.3",
|
|
135
|
+
"vitest": "4.0.16"
|
|
125
136
|
}
|
|
126
137
|
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { defineIntorConfig } from '../../src/config/define-intor-config.js';
|
|
2
|
-
export { DEFAULT_CACHE_OPTIONS } from '../../src/config/constants/cache.constants.js';
|
|
3
|
-
export { DEFAULT_COOKIE_OPTIONS } from '../../src/config/constants/cookie.constants.js';
|
|
4
|
-
export { DEFAULT_ROUTING_OPTIONS } from '../../src/config/constants/routing.constants.js';
|
package/dist/exports/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/** intor — main */
|
|
2
|
-
export { PREFIX_PLACEHOLDER } from "../src/shared/constants/prefix-placeholder";
|
|
3
|
-
export { mergeMessages, normalizeCacheKey, resolveNamespaces, normalizeLocale, resolvePreferredLocale, extractPathname, normalizePathname, standardizePathname, } from "../src/shared/utils";
|
|
4
|
-
export { IntorError, IntorErrorCode } from "../src/shared/error";
|
|
5
|
-
export { Translator, type TranslatorOptions, type TranslatorMethods, type TranslatorPlugin, type TranslateConfig, type TranslateHandlers, type FormatHandler, type LoadingHandler, type MissingHandler, type HandlerContext, type TranslateContext, type TranslateHook, type Locale, type FallbackLocalesMap, type NestedMessage, type LocaleMessages, type LocalizedMessagesUnion, type Replacement, type DefaultDepth, type NodeKeys, type LeafKeys, type LocalizedNodeKeys, type LocalizedLeafKeys, type ScopedLeafKeys, } from "intor-translator";
|
package/dist/exports/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { PREFIX_PLACEHOLDER } from '../src/shared/constants/prefix-placeholder.js';
|
|
2
|
-
export { mergeMessages } from '../src/shared/utils/merge-messages.js';
|
|
3
|
-
export { normalizeCacheKey } from '../src/shared/utils/normalize-cache-key.js';
|
|
4
|
-
export { resolveNamespaces } from '../src/shared/utils/resolve-namespaces.js';
|
|
5
|
-
export { normalizeLocale } from '../src/shared/utils/locale/normalize-locale.js';
|
|
6
|
-
export { resolvePreferredLocale } from '../src/shared/utils/locale/resolve-preferred-locale.js';
|
|
7
|
-
export { extractPathname } from '../src/shared/utils/pathname/extract-pathname.js';
|
|
8
|
-
export { normalizePathname } from '../src/shared/utils/pathname/normalize-pathname.js';
|
|
9
|
-
export { standardizePathname } from '../src/shared/utils/pathname/standardize-pathname.js';
|
|
10
|
-
export { IntorError, IntorErrorCode } from '../src/shared/error/intor-error.js';
|
|
11
|
-
export { Translator } from 'intor-translator';
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/** intor — next / main (client) */
|
|
2
|
-
export { Link, usePathname, useRouter, redirect, } from "../../src/adapters/next/navigation";
|
|
3
|
-
export { IntorProvider, type IntorProviderProps, TranslateHandlersProvider, type TranslateHandlersProviderProps, useTranslator, } from "../../src/client/react";
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { Link } from '../../src/adapters/next/navigation/link.js';
|
|
2
|
-
export { usePathname } from '../../src/adapters/next/navigation/use-pathname.js';
|
|
3
|
-
export { useRouter } from '../../src/adapters/next/navigation/use-router.js';
|
|
4
|
-
export { redirect } from '../../src/adapters/next/navigation/redirect.js';
|
|
5
|
-
export { IntorProvider } from '../../src/client/react/contexts/intor-provider/intor-provider.js';
|
|
6
|
-
export { TranslateHandlersProvider } from '../../src/client/react/contexts/translate-handlers/provider.js';
|
|
7
|
-
import 'react';
|
|
8
|
-
import '../../src/client/react/contexts/translate-handlers/context.js';
|
|
9
|
-
export { useTranslator } from '../../src/client/react/hooks/use-translator.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { IntorProvider } from '../../src/client/react/contexts/intor-provider/intor-provider.js';
|
|
2
|
-
export { TranslateHandlersProvider } from '../../src/client/react/contexts/translate-handlers/provider.js';
|
|
3
|
-
import 'react';
|
|
4
|
-
import '../../src/client/react/contexts/translate-handlers/context.js';
|
|
5
|
-
export { useTranslator } from '../../src/client/react/hooks/use-translator.js';
|
|
6
|
-
export { getInitialLocale } from '../../src/client/shared/utils/get-initial-locale.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { intor } from '../../src/server/intor/intor.js';
|
|
2
|
-
export { loadMessages } from '../../src/server/messages/load-messages.js';
|
|
3
|
-
export { loadLocalMessages } from '../../src/server/messages/load-local-messages/load-local-messages.js';
|
|
4
|
-
export { loadRemoteMessages } from '../../src/server/messages/load-remote-messages/load-remote-messages.js';
|
|
5
|
-
import 'keyv';
|
|
6
|
-
export { getTranslator } from '../../src/server/translator/get-translator.js';
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { GenLocale } from "../../../shared/types/generated.types";
|
|
2
|
-
import type { Url } from "next/dist/shared/lib/router/router";
|
|
3
|
-
import type { LinkProps as NextLinkProps } from "next/link";
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
interface LinkProps extends Omit<NextLinkProps, "href">, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "href"> {
|
|
6
|
-
href?: Url;
|
|
7
|
-
locale?: GenLocale;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Localized Link component
|
|
11
|
-
*
|
|
12
|
-
* - Wraps Next.js Link and handles locale switching.
|
|
13
|
-
* - Full reload occurs only if the locale changes and requires it; otherwise updates context.
|
|
14
|
-
*/
|
|
15
|
-
export declare const Link: ({ href, locale, children, onClick, ...props }: LinkProps) => React.JSX.Element;
|
|
16
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { formatUrl } from 'next/dist/shared/lib/router/utils/format-url';
|
|
4
|
-
import NextLink from 'next/link';
|
|
5
|
-
import 'react';
|
|
6
|
-
import { useLocaleSwitch } from './utils/use-locale-switch.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Localized Link component
|
|
10
|
-
*
|
|
11
|
-
* - Wraps Next.js Link and handles locale switching.
|
|
12
|
-
* - Full reload occurs only if the locale changes and requires it; otherwise updates context.
|
|
13
|
-
*/
|
|
14
|
-
const Link = ({ href, locale, children, onClick, ...props }) => {
|
|
15
|
-
const formatted = typeof href === "string" ? href : href ? formatUrl(href) : undefined;
|
|
16
|
-
const { resolveHref, switchLocale } = useLocaleSwitch();
|
|
17
|
-
const { resolvedHref } = resolveHref({ href: formatted, locale });
|
|
18
|
-
const handleClick = (e) => {
|
|
19
|
-
onClick?.(e);
|
|
20
|
-
switchLocale({ href: formatted, locale });
|
|
21
|
-
};
|
|
22
|
-
return (jsx(NextLink, { href: resolvedHref, onClick: handleClick, ...props, children: children }));
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export { Link };
|