next-intl 2.22.0 → 2.22.2
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 +1 -1
- package/config.d.ts +3 -0
- package/dist/config.js +7 -0
- package/dist/development/_virtual/_rollupPluginBabelHelpers.js +20 -0
- package/dist/development/config.js +9 -0
- package/dist/development/index.js +21 -0
- package/dist/development/index.react-server.js +28 -0
- package/dist/development/middleware/getAlternateLinksHeaderValue.js +81 -0
- package/dist/development/middleware/middleware.js +146 -0
- package/dist/development/middleware/resolveLocale.js +110 -0
- package/dist/development/middleware/utils.js +150 -0
- package/dist/development/middleware.js +9 -0
- package/dist/development/navigation/BaseLink.js +52 -0
- package/dist/development/navigation/baseRedirect.js +22 -0
- package/dist/development/navigation/createLocalizedPathnamesNavigation.js +135 -0
- package/dist/development/navigation/createSharedPathnamesNavigation.js +19 -0
- package/dist/development/navigation/react-server/BaseLink.js +25 -0
- package/dist/development/navigation/react-server/baseRedirect.js +16 -0
- package/dist/development/navigation/react-server/createLocalizedPathnamesNavigation.js +77 -0
- package/dist/development/navigation/react-server/createSharedPathnamesNavigation.js +22 -0
- package/dist/development/navigation/useBasePathname.js +37 -0
- package/dist/development/navigation/useBaseRouter.js +76 -0
- package/dist/development/navigation/utils.js +108 -0
- package/dist/development/navigation.js +11 -0
- package/dist/development/navigation.react-server.js +11 -0
- package/dist/development/plugin.js +48 -0
- package/dist/development/react-client/index.js +38 -0
- package/dist/development/react-client/useLocale.js +24 -0
- package/dist/development/react-server/NextIntlClientProvider.js +33 -0
- package/dist/development/react-server/getBaseTranslator.js +21 -0
- package/dist/development/react-server/useFormatter.js +19 -0
- package/dist/development/react-server/useHook.js +21 -0
- package/dist/development/react-server/useLocale.js +14 -0
- package/dist/development/react-server/useMessages.js +19 -0
- package/dist/development/react-server/useNow.js +23 -0
- package/dist/development/react-server/useTimeZone.js +19 -0
- package/dist/development/react-server/useTranslations.js +19 -0
- package/dist/development/server/RequestLocale.js +43 -0
- package/dist/development/server/createRequestConfig.js +17 -0
- package/dist/development/server/getConfig.js +43 -0
- package/dist/development/server/getFormatter.js +26 -0
- package/dist/development/server/getLocale.js +11 -0
- package/dist/development/server/getMessages.js +21 -0
- package/dist/development/server/getNow.js +18 -0
- package/dist/development/server/getRequestConfig.js +12 -0
- package/dist/development/server/getTimeZone.js +18 -0
- package/dist/development/server/getTranslations.js +31 -0
- package/dist/development/server/resolveLocaleArg.js +15 -0
- package/dist/development/server.js +23 -0
- package/dist/development/shared/BaseLinkWithLocale.js +58 -0
- package/dist/development/shared/NextIntlClientProvider.js +30 -0
- package/dist/development/shared/constants.js +17 -0
- package/dist/development/shared/redirectWithLocale.js +16 -0
- package/dist/development/shared/utils.js +87 -0
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +1 -0
- package/dist/esm/config.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.react-server.js +1 -0
- package/dist/esm/middleware/getAlternateLinksHeaderValue.js +1 -0
- package/dist/esm/middleware/middleware.js +1 -0
- package/dist/esm/middleware/resolveLocale.js +1 -0
- package/dist/esm/middleware/utils.js +1 -0
- package/dist/esm/middleware.js +1 -0
- package/dist/esm/navigation/BaseLink.js +1 -0
- package/dist/esm/navigation/baseRedirect.js +1 -0
- package/dist/esm/navigation/createLocalizedPathnamesNavigation.js +1 -0
- package/dist/esm/navigation/createSharedPathnamesNavigation.js +1 -0
- package/dist/esm/navigation/react-server/BaseLink.js +1 -0
- package/dist/esm/navigation/react-server/baseRedirect.js +1 -0
- package/dist/esm/navigation/react-server/createLocalizedPathnamesNavigation.js +1 -0
- package/dist/esm/navigation/react-server/createSharedPathnamesNavigation.js +1 -0
- package/dist/esm/navigation/useBasePathname.js +2 -0
- package/dist/esm/navigation/useBaseRouter.js +1 -0
- package/dist/esm/navigation/utils.js +1 -0
- package/dist/esm/navigation.js +1 -0
- package/dist/esm/navigation.react-server.js +1 -0
- package/dist/esm/plugin.js +1 -0
- package/dist/esm/react-client/index.js +1 -0
- package/dist/esm/react-client/useLocale.js +1 -0
- package/dist/esm/react-server/NextIntlClientProvider.js +1 -0
- package/dist/esm/react-server/getBaseTranslator.js +1 -0
- package/dist/esm/react-server/useFormatter.js +1 -0
- package/dist/esm/react-server/useHook.js +1 -0
- package/dist/esm/react-server/useLocale.js +1 -0
- package/dist/esm/react-server/useMessages.js +1 -0
- package/dist/esm/react-server/useNow.js +1 -0
- package/dist/esm/react-server/useTimeZone.js +1 -0
- package/dist/esm/react-server/useTranslations.js +1 -0
- package/dist/esm/server/RequestLocale.js +1 -0
- package/dist/esm/server/createRequestConfig.js +1 -0
- package/dist/esm/server/getConfig.js +1 -0
- package/dist/esm/server/getFormatter.js +1 -0
- package/dist/esm/server/getLocale.js +1 -0
- package/dist/esm/server/getMessages.js +1 -0
- package/dist/esm/server/getNow.js +1 -0
- package/dist/esm/server/getRequestConfig.js +1 -0
- package/dist/esm/server/getTimeZone.js +1 -0
- package/dist/esm/server/getTranslations.js +1 -0
- package/dist/esm/server/resolveLocaleArg.js +1 -0
- package/dist/esm/server.js +1 -0
- package/dist/esm/shared/BaseLinkWithLocale.js +2 -0
- package/dist/esm/shared/NextIntlClientProvider.js +2 -0
- package/dist/esm/shared/constants.js +1 -0
- package/dist/esm/shared/redirectWithLocale.js +1 -0
- package/dist/esm/shared/utils.js +1 -0
- package/dist/index.js +3 -4
- package/dist/index.react-server.js +7 -0
- package/dist/middleware.js +7 -0
- package/dist/navigation.js +7 -0
- package/dist/navigation.react-server.js +7 -0
- package/dist/plugin.js +7 -0
- package/dist/production/_virtual/_rollupPluginBabelHelpers.js +1 -0
- package/dist/production/config.js +1 -0
- package/dist/production/index.js +1 -0
- package/dist/production/index.react-server.js +1 -0
- package/dist/production/middleware/getAlternateLinksHeaderValue.js +1 -0
- package/dist/production/middleware/middleware.js +1 -0
- package/dist/production/middleware/resolveLocale.js +1 -0
- package/dist/production/middleware/utils.js +1 -0
- package/dist/production/middleware.js +1 -0
- package/dist/production/navigation/BaseLink.js +1 -0
- package/dist/production/navigation/baseRedirect.js +1 -0
- package/dist/production/navigation/createLocalizedPathnamesNavigation.js +1 -0
- package/dist/production/navigation/createSharedPathnamesNavigation.js +1 -0
- package/dist/production/navigation/react-server/BaseLink.js +1 -0
- package/dist/production/navigation/react-server/baseRedirect.js +1 -0
- package/dist/production/navigation/react-server/createLocalizedPathnamesNavigation.js +1 -0
- package/dist/production/navigation/react-server/createSharedPathnamesNavigation.js +1 -0
- package/dist/production/navigation/useBasePathname.js +2 -0
- package/dist/production/navigation/useBaseRouter.js +1 -0
- package/dist/production/navigation/utils.js +1 -0
- package/dist/production/navigation.js +1 -0
- package/dist/production/navigation.react-server.js +1 -0
- package/dist/production/plugin.js +1 -0
- package/dist/production/react-client/index.js +1 -0
- package/dist/production/react-client/useLocale.js +1 -0
- package/dist/production/react-server/NextIntlClientProvider.js +1 -0
- package/dist/production/react-server/getBaseTranslator.js +1 -0
- package/dist/production/react-server/useFormatter.js +1 -0
- package/dist/production/react-server/useHook.js +1 -0
- package/dist/production/react-server/useLocale.js +1 -0
- package/dist/production/react-server/useMessages.js +1 -0
- package/dist/production/react-server/useNow.js +1 -0
- package/dist/production/react-server/useTimeZone.js +1 -0
- package/dist/production/react-server/useTranslations.js +1 -0
- package/dist/production/server/RequestLocale.js +1 -0
- package/dist/production/server/createRequestConfig.js +1 -0
- package/dist/production/server/getConfig.js +1 -0
- package/dist/production/server/getFormatter.js +1 -0
- package/dist/production/server/getLocale.js +1 -0
- package/dist/production/server/getMessages.js +1 -0
- package/dist/production/server/getNow.js +1 -0
- package/dist/production/server/getRequestConfig.js +1 -0
- package/dist/production/server/getTimeZone.js +1 -0
- package/dist/production/server/getTranslations.js +1 -0
- package/dist/production/server/resolveLocaleArg.js +1 -0
- package/dist/production/server.js +1 -0
- package/dist/production/shared/BaseLinkWithLocale.js +2 -0
- package/dist/production/shared/NextIntlClientProvider.js +2 -0
- package/dist/production/shared/constants.js +1 -0
- package/dist/production/shared/redirectWithLocale.js +1 -0
- package/dist/production/shared/utils.js +1 -0
- package/dist/server.js +7 -0
- package/dist/types/src/config.d.ts +1 -0
- package/dist/types/src/index.react-server.d.ts +1 -0
- package/dist/{src → types/src}/middleware/NextIntlMiddlewareConfig.d.ts +14 -10
- package/dist/types/src/middleware/getAlternateLinksHeaderValue.d.ts +12 -0
- package/dist/types/src/middleware/middleware.d.ts +4 -0
- package/dist/types/src/middleware/resolveLocale.d.ts +7 -0
- package/dist/types/src/middleware/utils.d.ts +17 -0
- package/dist/types/src/middleware.d.ts +1 -0
- package/dist/types/src/navigation/BaseLink.d.ts +63 -0
- package/dist/types/src/navigation/StrictParams.d.ts +8 -0
- package/dist/types/src/navigation/baseRedirect.d.ts +3 -0
- package/dist/types/src/navigation/createLocalizedPathnamesNavigation.d.ts +78 -0
- package/dist/types/src/navigation/createSharedPathnamesNavigation.d.ts +13 -0
- package/dist/types/src/navigation/index.d.ts +3 -0
- package/dist/types/src/navigation/react-server/BaseLink.d.ts +8 -0
- package/dist/types/src/navigation/react-server/baseRedirect.d.ts +3 -0
- package/dist/types/src/navigation/react-server/createLocalizedPathnamesNavigation.d.ts +60 -0
- package/dist/types/src/navigation/react-server/createSharedPathnamesNavigation.d.ts +44 -0
- package/dist/types/src/navigation/react-server/index.d.ts +3 -0
- package/dist/{src/client/usePathname.d.ts → types/src/navigation/useBasePathname.d.ts} +1 -1
- package/dist/{client/useRouter.d.ts → types/src/navigation/useBaseRouter.d.ts} +32 -31
- package/dist/types/src/navigation/utils.d.ts +51 -0
- package/dist/types/src/navigation.d.ts +1 -0
- package/dist/types/src/navigation.react-server.d.ts +1 -0
- package/dist/types/src/plugin.d.ts +1 -0
- package/dist/{react-client → types/src/react-client}/index.d.ts +15 -12
- package/dist/types/src/react-client/useLocale.d.ts +1 -0
- package/dist/types/src/react-server/NextIntlClientProvider.d.ts +5 -0
- package/dist/types/src/react-server/getBaseTranslator.d.ts +42 -0
- package/dist/types/src/react-server/index.d.ts +15 -0
- package/dist/types/src/react-server/useFormatter.d.ts +2 -0
- package/dist/types/src/react-server/useHook.d.ts +1 -0
- package/dist/types/src/react-server/useLocale.d.ts +2 -0
- package/dist/types/src/react-server/useMessages.d.ts +2 -0
- package/dist/types/src/react-server/useNow.d.ts +2 -0
- package/dist/types/src/react-server/useTimeZone.d.ts +2 -0
- package/dist/types/src/react-server/useTranslations.d.ts +2 -0
- package/dist/types/src/server/RequestLocale.d.ts +2 -0
- package/dist/types/src/server/createRequestConfig.d.ts +4 -0
- package/dist/types/src/server/getConfig.d.ts +23 -0
- package/dist/types/src/server/getFormatter.d.ts +14 -0
- package/dist/types/src/server/getLocale.d.ts +1 -0
- package/dist/types/src/server/getMessages.d.ts +3 -0
- package/dist/types/src/server/getNow.d.ts +3 -0
- package/dist/types/src/server/getRequestConfig.d.ts +10 -0
- package/dist/types/src/server/getTimeZone.d.ts +3 -0
- package/dist/types/src/server/getTranslations.d.ts +83 -0
- package/dist/types/src/server/index.d.ts +11 -0
- package/dist/types/src/server/resolveLocaleArg.d.ts +3 -0
- package/dist/types/src/server.d.ts +1 -0
- package/dist/types/src/shared/NextIntlClientProvider.d.ts +8 -0
- package/dist/{shared → types/src/shared}/constants.d.ts +3 -2
- package/dist/types/src/shared/redirectWithLocale.d.ts +3 -0
- package/dist/types/src/shared/types.d.ts +6 -0
- package/dist/{src → types/src}/shared/utils.d.ts +6 -0
- package/dist/types/test/middleware/getAlternateLinksHeaderValue.test.d.ts +1 -0
- package/dist/types/test/middleware/middleware.test.d.ts +1 -0
- package/dist/types/test/middleware/utils.test.d.ts +1 -0
- package/dist/types/test/navigation/BaseLink.test.d.ts +1 -0
- package/dist/types/test/navigation/createLocalizedPathnamesNavigation.test.d.ts +1 -0
- package/dist/types/test/navigation/createSharedPathnamesNavigation.test.d.ts +1 -0
- package/dist/types/test/navigation/useBasePathname.test.d.ts +1 -0
- package/dist/types/test/navigation/useBaseRouter.test.d.ts +1 -0
- package/dist/types/test/navigation/utils.test.d.ts +1 -0
- package/dist/types/test/react-client/useFormatter.test.d.ts +1 -0
- package/dist/types/test/react-client/useLocale.test.d.ts +1 -0
- package/dist/types/test/react-client/useNow.test.d.ts +1 -0
- package/dist/types/test/react-client/useTimeZone.test.d.ts +1 -0
- package/dist/types/test/react-client/useTranslations.test.d.ts +1 -0
- package/dist/types/test/server/index.test.d.ts +1 -0
- package/dist/types/test/setup.d.ts +1 -0
- package/dist/types/test/shared/NextIntlClientProvider.test.d.ts +1 -0
- package/dist/types/test/shared/utils.test.d.ts +1 -0
- package/middleware.d.ts +1 -1
- package/navigation.d.ts +1 -0
- package/package.json +45 -34
- package/plugin.d.ts +6 -0
- package/server.d.ts +1 -1
- package/client.d.ts +0 -1
- package/dist/_virtual/next-intl.esm.js +0 -29
- package/dist/_virtual/next-intl.esm.js.map +0 -1
- package/dist/client/NextIntlClientProvider.d.ts +0 -4
- package/dist/client/index.d.ts +0 -6
- package/dist/client/useClientLocale.d.ts +0 -1
- package/dist/client/usePathname.d.ts +0 -14
- package/dist/index.d.ts +0 -8
- package/dist/link/Link.d.ts +0 -27
- package/dist/link/index.d.ts +0 -1
- package/dist/link/react-server/Link.d.ts +0 -1
- package/dist/link/react-server/index.d.ts +0 -1
- package/dist/middleware/NextIntlMiddlewareConfig.d.ts +0 -28
- package/dist/middleware/getAlternateLinksHeaderValue.d.ts +0 -6
- package/dist/middleware/index.d.ts +0 -4
- package/dist/middleware/middleware.d.ts +0 -3
- package/dist/middleware/resolveLocale.d.ts +0 -6
- package/dist/middleware/utils.d.ts +0 -5
- package/dist/next-intl.cjs.development.js +0 -82
- package/dist/next-intl.cjs.development.js.map +0 -1
- package/dist/next-intl.cjs.production.min.js +0 -2
- package/dist/next-intl.cjs.production.min.js.map +0 -1
- package/dist/next-intl.esm.js +0 -3
- package/dist/next-intl.esm.js.map +0 -1
- package/dist/react-server/index.d.ts +0 -17
- package/dist/server/index.d.ts +0 -6
- package/dist/shared/BaseLink.d.ts +0 -7
- package/dist/shared/NextIntlClientProvider.d.ts +0 -9
- package/dist/shared/next-intl.esm.js +0 -41
- package/dist/shared/next-intl.esm.js.map +0 -1
- package/dist/shared/utils.d.ts +0 -15
- package/dist/src/client/NextIntlClientProvider.d.ts +0 -4
- package/dist/src/client/NextIntlClientProvider.js +0 -16
- package/dist/src/client/NextIntlClientProvider.js.map +0 -1
- package/dist/src/client/index.d.ts +0 -6
- package/dist/src/client/index.js +0 -8
- package/dist/src/client/index.js.map +0 -1
- package/dist/src/client/useClientLocale.d.ts +0 -1
- package/dist/src/client/useClientLocale.js +0 -18
- package/dist/src/client/useClientLocale.js.map +0 -1
- package/dist/src/client/usePathname.js +0 -34
- package/dist/src/client/usePathname.js.map +0 -1
- package/dist/src/client/useRouter.d.ts +0 -31
- package/dist/src/client/useRouter.js +0 -61
- package/dist/src/client/useRouter.js.map +0 -1
- package/dist/src/index.js +0 -9
- package/dist/src/index.js.map +0 -1
- package/dist/src/link/Link.d.ts +0 -27
- package/dist/src/link/Link.js +0 -29
- package/dist/src/link/Link.js.map +0 -1
- package/dist/src/link/index.d.ts +0 -1
- package/dist/src/link/index.js +0 -2
- package/dist/src/link/index.js.map +0 -1
- package/dist/src/link/react-server/Link.d.ts +0 -1
- package/dist/src/link/react-server/Link.js +0 -6
- package/dist/src/link/react-server/Link.js.map +0 -1
- package/dist/src/link/react-server/index.d.ts +0 -1
- package/dist/src/link/react-server/index.js +0 -2
- package/dist/src/link/react-server/index.js.map +0 -1
- package/dist/src/middleware/NextIntlMiddlewareConfig.js +0 -2
- package/dist/src/middleware/NextIntlMiddlewareConfig.js.map +0 -1
- package/dist/src/middleware/getAlternateLinksHeaderValue.d.ts +0 -6
- package/dist/src/middleware/getAlternateLinksHeaderValue.js +0 -71
- package/dist/src/middleware/getAlternateLinksHeaderValue.js.map +0 -1
- package/dist/src/middleware/index.js +0 -5
- package/dist/src/middleware/index.js.map +0 -1
- package/dist/src/middleware/middleware.d.ts +0 -3
- package/dist/src/middleware/middleware.js +0 -149
- package/dist/src/middleware/middleware.js.map +0 -1
- package/dist/src/middleware/resolveLocale.d.ts +0 -6
- package/dist/src/middleware/resolveLocale.js +0 -88
- package/dist/src/middleware/resolveLocale.js.map +0 -1
- package/dist/src/middleware/utils.d.ts +0 -5
- package/dist/src/middleware/utils.js +0 -37
- package/dist/src/middleware/utils.js.map +0 -1
- package/dist/src/react-client/index.d.ts +0 -12
- package/dist/src/react-client/index.js +0 -14
- package/dist/src/react-client/index.js.map +0 -1
- package/dist/src/react-server/index.d.ts +0 -17
- package/dist/src/react-server/index.js +0 -25
- package/dist/src/react-server/index.js.map +0 -1
- package/dist/src/server/index.d.ts +0 -6
- package/dist/src/server/index.js +0 -30
- package/dist/src/server/index.js.map +0 -1
- package/dist/src/shared/BaseLink.js +0 -38
- package/dist/src/shared/BaseLink.js.map +0 -1
- package/dist/src/shared/NextIntlClientProvider.d.ts +0 -9
- package/dist/src/shared/NextIntlClientProvider.js +0 -33
- package/dist/src/shared/NextIntlClientProvider.js.map +0 -1
- package/dist/src/shared/constants.d.ts +0 -2
- package/dist/src/shared/constants.js +0 -6
- package/dist/src/shared/constants.js.map +0 -1
- package/dist/src/shared/utils.js +0 -53
- package/dist/src/shared/utils.js.map +0 -1
- package/link.d.ts +0 -3
- package/src/client/NextIntlClientProvider.tsx +0 -18
- package/src/client/index.tsx +0 -9
- package/src/client/useClientLocale.tsx +0 -20
- package/src/client/usePathname.tsx +0 -40
- package/src/client/useRouter.tsx +0 -92
- package/src/index.tsx +0 -9
- package/src/link/Link.tsx +0 -34
- package/src/link/index.tsx +0 -1
- package/src/link/react-server/Link.tsx +0 -6
- package/src/link/react-server/index.tsx +0 -1
- package/src/middleware/NextIntlMiddlewareConfig.tsx +0 -42
- package/src/middleware/getAlternateLinksHeaderValue.tsx +0 -97
- package/src/middleware/index.tsx +0 -5
- package/src/middleware/middleware.tsx +0 -206
- package/src/middleware/resolveLocale.tsx +0 -151
- package/src/middleware/utils.tsx +0 -61
- package/src/react-client/index.tsx +0 -15
- package/src/react-server/index.tsx +0 -29
- package/src/server/index.tsx +0 -34
- package/src/shared/BaseLink.tsx +0 -57
- package/src/shared/NextIntlClientProvider.tsx +0 -54
- package/src/shared/constants.tsx +0 -6
- package/src/shared/utils.tsx +0 -91
- /package/dist/{src → types/src}/index.d.ts +0 -0
- /package/dist/{src → types/src}/middleware/index.d.ts +0 -0
- /package/dist/{src/shared/BaseLink.d.ts → types/src/shared/BaseLinkWithLocale.d.ts} +0 -0
package/dist/src/link/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from '../Link';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../../../../src/link/react-server/Link.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,6DAA6D;AAC7D,yDAAyD;AACzD,6CAA6C;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './Link';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/link/react-server/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NextIntlMiddlewareConfig.js","sourceRoot":"","sources":["../../../src/middleware/NextIntlMiddlewareConfig.tsx"],"names":[],"mappings":""}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { NextRequest } from 'next/server';
|
|
2
|
-
import { MiddlewareConfigWithDefaults } from './NextIntlMiddlewareConfig';
|
|
3
|
-
/**
|
|
4
|
-
* See https://developers.google.com/search/docs/specialty/international/localized-versions
|
|
5
|
-
*/
|
|
6
|
-
export default function getAlternateLinksHeaderValue(config: MiddlewareConfigWithDefaults, request: NextRequest): string;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { getHost, isLocaleSupportedOnDomain } from './utils';
|
|
2
|
-
function getUnprefixedUrl(config, request) {
|
|
3
|
-
var _a;
|
|
4
|
-
const url = new URL(request.url);
|
|
5
|
-
const host = getHost(request.headers);
|
|
6
|
-
if (host) {
|
|
7
|
-
url.port = '';
|
|
8
|
-
url.host = host;
|
|
9
|
-
}
|
|
10
|
-
url.protocol = (_a = request.headers.get('x-forwarded-proto')) !== null && _a !== void 0 ? _a : url.protocol;
|
|
11
|
-
if (!url.pathname.endsWith('/')) {
|
|
12
|
-
url.pathname += '/';
|
|
13
|
-
}
|
|
14
|
-
url.pathname = url.pathname.replace(new RegExp(`^/(${config.locales.join('|')})/`), '/');
|
|
15
|
-
// Remove trailing slash
|
|
16
|
-
if (url.pathname !== '/') {
|
|
17
|
-
url.pathname = url.pathname.slice(0, -1);
|
|
18
|
-
}
|
|
19
|
-
return url.toString();
|
|
20
|
-
}
|
|
21
|
-
function getAlternateEntry(url, locale) {
|
|
22
|
-
return `<${url}>; rel="alternate"; hreflang="${locale}"`;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* See https://developers.google.com/search/docs/specialty/international/localized-versions
|
|
26
|
-
*/
|
|
27
|
-
export default function getAlternateLinksHeaderValue(config, request) {
|
|
28
|
-
const unprefixedUrl = getUnprefixedUrl(config, request);
|
|
29
|
-
const links = config.locales.flatMap((locale) => {
|
|
30
|
-
function localizePathname(url) {
|
|
31
|
-
if (url.pathname === '/') {
|
|
32
|
-
url.pathname = `/${locale}`;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
url.pathname = `/${locale}${url.pathname}`;
|
|
36
|
-
}
|
|
37
|
-
return url;
|
|
38
|
-
}
|
|
39
|
-
let url;
|
|
40
|
-
if (config.domains) {
|
|
41
|
-
const domainConfigs = config.domains.filter((cur) => isLocaleSupportedOnDomain(locale, cur)) || [];
|
|
42
|
-
return domainConfigs.map((domainConfig) => {
|
|
43
|
-
url = new URL(unprefixedUrl);
|
|
44
|
-
url.port = '';
|
|
45
|
-
url.host = domainConfig.domain;
|
|
46
|
-
if (locale !== domainConfig.defaultLocale ||
|
|
47
|
-
config.localePrefix === 'always') {
|
|
48
|
-
localizePathname(url);
|
|
49
|
-
}
|
|
50
|
-
return getAlternateEntry(url.toString(), locale);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
url = new URL(unprefixedUrl);
|
|
55
|
-
if (locale !== config.defaultLocale || config.localePrefix === 'always') {
|
|
56
|
-
localizePathname(url);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return getAlternateEntry(url.toString(), locale);
|
|
60
|
-
});
|
|
61
|
-
// Add x-default entry
|
|
62
|
-
if (!config.domains) {
|
|
63
|
-
const url = new URL(unprefixedUrl);
|
|
64
|
-
links.push(getAlternateEntry(url.toString(), 'x-default'));
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
// For `type: domain` there is no reasonable x-default
|
|
68
|
-
}
|
|
69
|
-
return links.join(', ');
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=getAlternateLinksHeaderValue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAlternateLinksHeaderValue.js","sourceRoot":"","sources":["../../../src/middleware/getAlternateLinksHeaderValue.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC"}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { NextResponse } from 'next/server';
|
|
2
|
-
import { COOKIE_LOCALE_NAME } from '../shared/constants';
|
|
3
|
-
import getAlternateLinksHeaderValue from './getAlternateLinksHeaderValue';
|
|
4
|
-
import resolveLocale from './resolveLocale';
|
|
5
|
-
import { getBestMatchingDomain, getLocaleFromPathname, isLocaleSupportedOnDomain } from './utils';
|
|
6
|
-
const ROOT_URL = '/';
|
|
7
|
-
function receiveConfig(config) {
|
|
8
|
-
var _a, _b, _c;
|
|
9
|
-
const result = {
|
|
10
|
-
...config,
|
|
11
|
-
alternateLinks: (_a = config.alternateLinks) !== null && _a !== void 0 ? _a : true,
|
|
12
|
-
localePrefix: (_b = config.localePrefix) !== null && _b !== void 0 ? _b : 'as-needed',
|
|
13
|
-
localeDetection: (_c = config.localeDetection) !== null && _c !== void 0 ? _c : true
|
|
14
|
-
};
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
export default function createMiddleware(config) {
|
|
18
|
-
const configWithDefaults = receiveConfig(config);
|
|
19
|
-
// Currently only in use to enable a seamless upgrade path from the
|
|
20
|
-
// `{createIntlMiddleware} from 'next-intl/server'` API.
|
|
21
|
-
const matcher = config._matcher;
|
|
22
|
-
return function middleware(request) {
|
|
23
|
-
var _a, _b;
|
|
24
|
-
const matches = !matcher ||
|
|
25
|
-
matcher.some((pattern) => request.nextUrl.pathname.match(pattern));
|
|
26
|
-
if (!matches)
|
|
27
|
-
return NextResponse.next();
|
|
28
|
-
const { domain, locale } = resolveLocale(configWithDefaults, request.headers, request.cookies, request.nextUrl.pathname);
|
|
29
|
-
const isRoot = request.nextUrl.pathname === ROOT_URL;
|
|
30
|
-
const hasOutdatedCookie = ((_a = request.cookies.get(COOKIE_LOCALE_NAME)) === null || _a === void 0 ? void 0 : _a.value) !== locale;
|
|
31
|
-
const hasMatchedDefaultLocale = domain
|
|
32
|
-
? domain.defaultLocale === locale
|
|
33
|
-
: locale === configWithDefaults.defaultLocale;
|
|
34
|
-
const domainConfigs = ((_b = configWithDefaults.domains) === null || _b === void 0 ? void 0 : _b.filter((curDomain) => isLocaleSupportedOnDomain(locale, curDomain))) || [];
|
|
35
|
-
const hasUnknownHost = configWithDefaults.domains != null && !domain;
|
|
36
|
-
function getResponseInit() {
|
|
37
|
-
const responseInit = {
|
|
38
|
-
request: {
|
|
39
|
-
headers: request.headers
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
return responseInit;
|
|
43
|
-
}
|
|
44
|
-
function rewrite(url) {
|
|
45
|
-
return NextResponse.rewrite(new URL(url, request.url), getResponseInit());
|
|
46
|
-
}
|
|
47
|
-
function next() {
|
|
48
|
-
return NextResponse.next(getResponseInit());
|
|
49
|
-
}
|
|
50
|
-
function redirect(url, host) {
|
|
51
|
-
const urlObj = new URL(url, request.url);
|
|
52
|
-
if (domainConfigs.length > 0) {
|
|
53
|
-
if (!host) {
|
|
54
|
-
const bestMatchingDomain = getBestMatchingDomain(domain, locale, domainConfigs);
|
|
55
|
-
if (bestMatchingDomain) {
|
|
56
|
-
host = bestMatchingDomain.domain;
|
|
57
|
-
if (bestMatchingDomain.defaultLocale === locale &&
|
|
58
|
-
configWithDefaults.localePrefix === 'as-needed') {
|
|
59
|
-
urlObj.pathname = urlObj.pathname.replace(`/${locale}`, '');
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (host) {
|
|
65
|
-
urlObj.host = host;
|
|
66
|
-
}
|
|
67
|
-
return NextResponse.redirect(urlObj.toString());
|
|
68
|
-
}
|
|
69
|
-
let response;
|
|
70
|
-
if (isRoot) {
|
|
71
|
-
let pathWithSearch = `/${locale}`;
|
|
72
|
-
if (request.nextUrl.search) {
|
|
73
|
-
pathWithSearch += request.nextUrl.search;
|
|
74
|
-
}
|
|
75
|
-
if (configWithDefaults.localePrefix === 'never' ||
|
|
76
|
-
(hasMatchedDefaultLocale &&
|
|
77
|
-
configWithDefaults.localePrefix === 'as-needed')) {
|
|
78
|
-
response = rewrite(pathWithSearch);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
response = redirect(pathWithSearch);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
const pathLocaleCandidate = getLocaleFromPathname(request.nextUrl.pathname);
|
|
86
|
-
const pathLocale = configWithDefaults.locales.includes(pathLocaleCandidate)
|
|
87
|
-
? pathLocaleCandidate
|
|
88
|
-
: undefined;
|
|
89
|
-
const hasLocalePrefix = pathLocale != null;
|
|
90
|
-
let pathWithSearch = request.nextUrl.pathname;
|
|
91
|
-
if (request.nextUrl.search) {
|
|
92
|
-
pathWithSearch += request.nextUrl.search;
|
|
93
|
-
}
|
|
94
|
-
if (hasLocalePrefix) {
|
|
95
|
-
const basePath = pathWithSearch.replace(`/${pathLocale}`, '') || '/';
|
|
96
|
-
if (configWithDefaults.localePrefix === 'never') {
|
|
97
|
-
response = redirect(basePath);
|
|
98
|
-
}
|
|
99
|
-
else if (pathLocale === locale) {
|
|
100
|
-
if (hasMatchedDefaultLocale &&
|
|
101
|
-
configWithDefaults.localePrefix === 'as-needed') {
|
|
102
|
-
response = redirect(basePath);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
if (configWithDefaults.domains) {
|
|
106
|
-
const pathDomain = getBestMatchingDomain(domain, pathLocale, domainConfigs);
|
|
107
|
-
if ((domain === null || domain === void 0 ? void 0 : domain.domain) !== (pathDomain === null || pathDomain === void 0 ? void 0 : pathDomain.domain) && !hasUnknownHost) {
|
|
108
|
-
response = redirect(basePath, pathDomain === null || pathDomain === void 0 ? void 0 : pathDomain.domain);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
response = next();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
response = next();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
response = redirect(`/${locale}${basePath}`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
if (configWithDefaults.localePrefix === 'never' ||
|
|
125
|
-
(hasMatchedDefaultLocale &&
|
|
126
|
-
(configWithDefaults.localePrefix === 'as-needed' ||
|
|
127
|
-
configWithDefaults.domains))) {
|
|
128
|
-
response = rewrite(`/${locale}${pathWithSearch}`);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
response = redirect(`/${locale}${pathWithSearch}`);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (hasOutdatedCookie) {
|
|
136
|
-
response.cookies.set(COOKIE_LOCALE_NAME, locale, {
|
|
137
|
-
sameSite: 'strict',
|
|
138
|
-
maxAge: 31536000 // 1 year
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
if (configWithDefaults.localePrefix !== 'never' &&
|
|
142
|
-
configWithDefaults.alternateLinks &&
|
|
143
|
-
configWithDefaults.locales.length > 1) {
|
|
144
|
-
response.headers.set('Link', getAlternateLinksHeaderValue(configWithDefaults, request));
|
|
145
|
-
}
|
|
146
|
-
return response;
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/middleware/middleware.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { RequestCookies } from 'next/dist/server/web/spec-extension/cookies';
|
|
2
|
-
import { DomainConfig, MiddlewareConfigWithDefaults } from './NextIntlMiddlewareConfig';
|
|
3
|
-
export default function resolveLocale(config: MiddlewareConfigWithDefaults, requestHeaders: Headers, requestCookies: RequestCookies, pathname: string): {
|
|
4
|
-
locale: string;
|
|
5
|
-
domain?: DomainConfig;
|
|
6
|
-
};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { match } from '@formatjs/intl-localematcher';
|
|
2
|
-
import Negotiator from 'negotiator';
|
|
3
|
-
import { COOKIE_LOCALE_NAME } from '../shared/constants';
|
|
4
|
-
import { getLocaleFromPathname, getHost, isLocaleSupportedOnDomain } from './utils';
|
|
5
|
-
function findDomainFromHost(requestHeaders, domains) {
|
|
6
|
-
let host = getHost(requestHeaders);
|
|
7
|
-
// Remove port (easier for local development)
|
|
8
|
-
host = host === null || host === void 0 ? void 0 : host.replace(/:\d+$/, '');
|
|
9
|
-
if (host && domains) {
|
|
10
|
-
return domains.find((cur) => cur.domain === host);
|
|
11
|
-
}
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
function getAcceptLanguageLocale(requestHeaders, locales, defaultLocale) {
|
|
15
|
-
let locale;
|
|
16
|
-
const languages = new Negotiator({
|
|
17
|
-
headers: {
|
|
18
|
-
'accept-language': requestHeaders.get('accept-language') || undefined
|
|
19
|
-
}
|
|
20
|
-
}).languages();
|
|
21
|
-
try {
|
|
22
|
-
locale = match(languages, locales, defaultLocale);
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
// Invalid language
|
|
26
|
-
}
|
|
27
|
-
return locale;
|
|
28
|
-
}
|
|
29
|
-
function resolveLocaleFromPrefix({ defaultLocale, localeDetection, locales }, requestHeaders, requestCookies, pathname) {
|
|
30
|
-
var _a;
|
|
31
|
-
let locale;
|
|
32
|
-
// Prio 1: Use route prefix
|
|
33
|
-
if (pathname) {
|
|
34
|
-
const pathLocale = getLocaleFromPathname(pathname);
|
|
35
|
-
if (locales.includes(pathLocale)) {
|
|
36
|
-
locale = pathLocale;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// Prio 2: Use existing cookie
|
|
40
|
-
if (!locale && localeDetection && requestCookies) {
|
|
41
|
-
if (requestCookies.has(COOKIE_LOCALE_NAME)) {
|
|
42
|
-
const value = (_a = requestCookies.get(COOKIE_LOCALE_NAME)) === null || _a === void 0 ? void 0 : _a.value;
|
|
43
|
-
if (value && locales.includes(value)) {
|
|
44
|
-
locale = value;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Prio 3: Use the `accept-language` header
|
|
49
|
-
if (!locale && localeDetection && requestHeaders) {
|
|
50
|
-
locale = getAcceptLanguageLocale(requestHeaders, locales, defaultLocale);
|
|
51
|
-
}
|
|
52
|
-
// Prio 4: Use default locale
|
|
53
|
-
if (!locale) {
|
|
54
|
-
locale = defaultLocale;
|
|
55
|
-
}
|
|
56
|
-
return locale;
|
|
57
|
-
}
|
|
58
|
-
function resolveLocaleFromDomain(config, requestHeaders, requestCookies, pathname) {
|
|
59
|
-
const { domains } = config;
|
|
60
|
-
const localeFromPrefixStrategy = resolveLocaleFromPrefix(config, requestHeaders, requestCookies, pathname);
|
|
61
|
-
// Prio 1: Use a domain
|
|
62
|
-
if (domains) {
|
|
63
|
-
const domain = findDomainFromHost(requestHeaders, domains);
|
|
64
|
-
const hasLocalePrefix = pathname && pathname.startsWith(`/${localeFromPrefixStrategy}`);
|
|
65
|
-
if (domain) {
|
|
66
|
-
return {
|
|
67
|
-
locale: isLocaleSupportedOnDomain(localeFromPrefixStrategy, domain) ||
|
|
68
|
-
hasLocalePrefix
|
|
69
|
-
? localeFromPrefixStrategy
|
|
70
|
-
: domain.defaultLocale,
|
|
71
|
-
domain
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
// Prio 2: Use prefix strategy
|
|
76
|
-
return { locale: localeFromPrefixStrategy };
|
|
77
|
-
}
|
|
78
|
-
export default function resolveLocale(config, requestHeaders, requestCookies, pathname) {
|
|
79
|
-
if (config.domains) {
|
|
80
|
-
return resolveLocaleFromDomain(config, requestHeaders, requestCookies, pathname);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return {
|
|
84
|
-
locale: resolveLocaleFromPrefix(config, requestHeaders, requestCookies, pathname)
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=resolveLocale.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveLocale.js","sourceRoot":"","sources":["../../../src/middleware/resolveLocale.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { DomainConfig } from './NextIntlMiddlewareConfig';
|
|
2
|
-
export declare function getLocaleFromPathname(pathname: string): string;
|
|
3
|
-
export declare function getHost(requestHeaders: Headers): string | undefined;
|
|
4
|
-
export declare function isLocaleSupportedOnDomain(locale: string, domain: DomainConfig): boolean;
|
|
5
|
-
export declare function getBestMatchingDomain(curHostDomain: DomainConfig | undefined, locale: string, domainConfigs: Array<DomainConfig>): DomainConfig | undefined;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export function getLocaleFromPathname(pathname) {
|
|
2
|
-
return pathname.split('/')[1];
|
|
3
|
-
}
|
|
4
|
-
export function getHost(requestHeaders) {
|
|
5
|
-
var _a, _b;
|
|
6
|
-
return ((_b = (_a = requestHeaders.get('x-forwarded-host')) !== null && _a !== void 0 ? _a : requestHeaders.get('host')) !== null && _b !== void 0 ? _b : undefined);
|
|
7
|
-
}
|
|
8
|
-
export function isLocaleSupportedOnDomain(locale, domain) {
|
|
9
|
-
return (domain.defaultLocale === locale ||
|
|
10
|
-
!domain.locales ||
|
|
11
|
-
domain.locales.includes(locale));
|
|
12
|
-
}
|
|
13
|
-
export function getBestMatchingDomain(curHostDomain, locale, domainConfigs) {
|
|
14
|
-
let domainConfig;
|
|
15
|
-
// Prio 1: Stay on current domain
|
|
16
|
-
if (curHostDomain && isLocaleSupportedOnDomain(locale, curHostDomain)) {
|
|
17
|
-
domainConfig = curHostDomain;
|
|
18
|
-
}
|
|
19
|
-
// Prio 2: Use alternative domain with matching default locale
|
|
20
|
-
if (!domainConfig) {
|
|
21
|
-
domainConfig = domainConfigs.find((cur) => cur.defaultLocale === locale);
|
|
22
|
-
}
|
|
23
|
-
// Prio 3: Use alternative domain with restricted matching locale
|
|
24
|
-
if (!domainConfig) {
|
|
25
|
-
domainConfig = domainConfigs.find((cur) => cur.locales != null && cur.locales.includes(locale));
|
|
26
|
-
}
|
|
27
|
-
// Prio 4: Stay on the current domain if it supports all locales
|
|
28
|
-
if (!domainConfig && (curHostDomain === null || curHostDomain === void 0 ? void 0 : curHostDomain.locales) == null) {
|
|
29
|
-
domainConfig = curHostDomain;
|
|
30
|
-
}
|
|
31
|
-
// Prio 5: Use alternative domain that supports all locales
|
|
32
|
-
if (!domainConfig) {
|
|
33
|
-
domainConfig = domainConfigs.find((cur) => !cur.locales);
|
|
34
|
-
}
|
|
35
|
-
return domainConfig;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/middleware/utils.tsx"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,cAAuB;;IAC7C,OAAO,CACL,MAAA,MAAA,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,mCACtC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,mCAC1B,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,MAAoB;IAEpB,OAAO,CACL,MAAM,CAAC,aAAa,KAAK,MAAM;QAC/B,CAAC,MAAM,CAAC,OAAO;QACf,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,aAAuC,EACvC,MAAc,EACd,aAAkC;IAElC,IAAI,YAAY,CAAC;IAEjB,iCAAiC;IACjC,IAAI,aAAa,IAAI,yBAAyB,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE;QACrE,YAAY,GAAG,aAAa,CAAC;KAC9B;IAED,8DAA8D;IAC9D,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC;KAC1E;IAED,iEAAiE;IACjE,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,aAAa,CAAC,IAAI,CAC/B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC7D,CAAC;KACH;IAED,gEAAgE;IAChE,IAAI,CAAC,YAAY,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,KAAI,IAAI,EAAE;QACnD,YAAY,GAAG,aAAa,CAAC;KAC9B;IAED,2DAA2D;IAC3D,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC1D;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This is the main entry file when non-'react-server'
|
|
3
|
-
* environments import from 'next-intl'.
|
|
4
|
-
*
|
|
5
|
-
* Maintainer notes:
|
|
6
|
-
* - Make sure this mirrors the API from 'react-server'.
|
|
7
|
-
* - Make sure everything exported from this module is
|
|
8
|
-
* supported in all Next.js versions that are supported.
|
|
9
|
-
*/
|
|
10
|
-
export * from 'use-intl';
|
|
11
|
-
export { default as NextIntlClientProvider } from '../shared/NextIntlClientProvider';
|
|
12
|
-
export { default as NextIntlProvider } from '../shared/NextIntlClientProvider';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This is the main entry file when non-'react-server'
|
|
3
|
-
* environments import from 'next-intl'.
|
|
4
|
-
*
|
|
5
|
-
* Maintainer notes:
|
|
6
|
-
* - Make sure this mirrors the API from 'react-server'.
|
|
7
|
-
* - Make sure everything exported from this module is
|
|
8
|
-
* supported in all Next.js versions that are supported.
|
|
9
|
-
*/
|
|
10
|
-
export * from 'use-intl';
|
|
11
|
-
export { default as NextIntlClientProvider } from '../shared/NextIntlClientProvider';
|
|
12
|
-
// Legacy export (TBD if we'll deprecate this in favour of `NextIntlClientProvider`)
|
|
13
|
-
export { default as NextIntlProvider } from '../shared/NextIntlClientProvider';
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-client/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,UAAU,CAAC;AACzB,OAAO,EAAC,OAAO,IAAI,sBAAsB,EAAC,MAAM,kCAAkC,CAAC;AAEnF,oFAAoF;AACpF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,kCAAkC,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This is the main entry file when 'react-server' environments
|
|
3
|
-
* (i.e. RSC) import from 'next-intl'. Currently we export everything
|
|
4
|
-
* from `use-intl` core, but React-APIs are stubbed out.
|
|
5
|
-
*
|
|
6
|
-
* Make sure this mirrors the API from '../react-client'.
|
|
7
|
-
*/
|
|
8
|
-
export * from 'use-intl/dist/src/core';
|
|
9
|
-
export { default as NextIntlClientProvider } from '../shared/NextIntlClientProvider';
|
|
10
|
-
declare function notSupported(): void;
|
|
11
|
-
export declare const IntlProvider: typeof notSupported;
|
|
12
|
-
export declare const useTranslations: typeof notSupported;
|
|
13
|
-
export declare const useIntl: typeof notSupported;
|
|
14
|
-
export declare const useLocale: typeof notSupported;
|
|
15
|
-
export declare const useNow: typeof notSupported;
|
|
16
|
-
export declare const useTimeZone: typeof notSupported;
|
|
17
|
-
export declare const Link: typeof notSupported;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This is the main entry file when 'react-server' environments
|
|
3
|
-
* (i.e. RSC) import from 'next-intl'. Currently we export everything
|
|
4
|
-
* from `use-intl` core, but React-APIs are stubbed out.
|
|
5
|
-
*
|
|
6
|
-
* Make sure this mirrors the API from '../react-client'.
|
|
7
|
-
*/
|
|
8
|
-
export * from 'use-intl/dist/src/core';
|
|
9
|
-
export { default as NextIntlClientProvider } from '../shared/NextIntlClientProvider';
|
|
10
|
-
function notSupported() {
|
|
11
|
-
throw new Error(`The React APIs of next-intl are currently not available in Server Components.
|
|
12
|
-
|
|
13
|
-
You can try one of these options:
|
|
14
|
-
1. Try out the Server Components beta, see https://next-intl-docs.vercel.app/docs/getting-started
|
|
15
|
-
2. Use the core library as a stopgap solution, see https://next-intl-docs.vercel.app/docs/environments/core-library
|
|
16
|
-
`);
|
|
17
|
-
}
|
|
18
|
-
export const IntlProvider = notSupported;
|
|
19
|
-
export const useTranslations = notSupported;
|
|
20
|
-
export const useIntl = notSupported;
|
|
21
|
-
export const useLocale = notSupported;
|
|
22
|
-
export const useNow = notSupported;
|
|
23
|
-
export const useTimeZone = notSupported;
|
|
24
|
-
export const Link = notSupported;
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-server/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAC,OAAO,IAAI,sBAAsB,EAAC,MAAM,kCAAkC,CAAC;AAEnF,SAAS,YAAY;IACnB,MAAM,IAAI,KAAK,CACb;;;;;CAKH,CACE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC;AACtC,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;AACnC,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,IAAI,GAAG,YAAY,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-only APIs available via `next-intl/server`.
|
|
3
|
-
*/
|
|
4
|
-
import MiddlewareConfig from '../middleware/NextIntlMiddlewareConfig';
|
|
5
|
-
/** @deprecated Should be imported as `import createMiddleware from 'next-intl/middleware', not from `next-intl/server`. */
|
|
6
|
-
export declare function createIntlMiddleware(config: MiddlewareConfig): (request: import("next/server").NextRequest) => import("next/server").NextResponse<unknown>;
|
package/dist/src/server/index.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-only APIs available via `next-intl/server`.
|
|
3
|
-
*/
|
|
4
|
-
import createMiddleware_ from '../middleware';
|
|
5
|
-
let hasWarned = false;
|
|
6
|
-
/** @deprecated Should be imported as `import createMiddleware from 'next-intl/middleware', not from `next-intl/server`. */
|
|
7
|
-
export function createIntlMiddleware(config) {
|
|
8
|
-
if (!hasWarned) {
|
|
9
|
-
hasWarned = true;
|
|
10
|
-
console.warn(`
|
|
11
|
-
Importing \`createMiddleware\` from \`next-intl/server\` is deprecated. Please update the import and add a \`matcher\`:
|
|
12
|
-
|
|
13
|
-
// middleware.ts
|
|
14
|
-
import createMiddleware from 'next-intl/middleware';
|
|
15
|
-
|
|
16
|
-
// ...
|
|
17
|
-
|
|
18
|
-
export const config = {
|
|
19
|
-
// Skip all paths that should not be internationalized
|
|
20
|
-
matcher: ['/((?!api|_next|.*\\\\..*).*)']
|
|
21
|
-
};
|
|
22
|
-
`);
|
|
23
|
-
}
|
|
24
|
-
return createMiddleware_({
|
|
25
|
-
...config,
|
|
26
|
-
// @ts-expect-error
|
|
27
|
-
_matcher: ['/((?!api|_next|.*\\..*).*)']
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,iBAAiB,MAAM,eAAe,CAAC;AAG9C,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,2HAA2H;AAC3H,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,IAAI,CAAC,SAAS,EAAE;QACd,SAAS,GAAG,IAAI,CAAC;QACjB,OAAO,CAAC,IAAI,CACV;;;;;;;;;;;;CAYL,CACI,CAAC;KACH;IACD,OAAO,iBAAiB,CAAC;QACvB,GAAG,MAAM;QACT,mBAAmB;QACnB,QAAQ,EAAE,CAAC,4BAA4B,CAAC;KACzC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import NextLink from 'next/link';
|
|
3
|
-
import { usePathname } from 'next/navigation';
|
|
4
|
-
import React, { forwardRef, useEffect, useState } from 'react';
|
|
5
|
-
import useClientLocale from '../client/useClientLocale';
|
|
6
|
-
import { isLocalHref, localizeHref, prefixHref } from './utils';
|
|
7
|
-
function BaseLink({ href, locale, prefetch, ...rest }, ref) {
|
|
8
|
-
// The types aren't entirely correct here. Outside of Next.js
|
|
9
|
-
// `useParams` can be called, but the return type is `null`.
|
|
10
|
-
const pathname = usePathname();
|
|
11
|
-
const defaultLocale = useClientLocale();
|
|
12
|
-
const isChangingLocale = locale !== defaultLocale;
|
|
13
|
-
const [localizedHref, setLocalizedHref] = useState(() => isLocalHref(href) && locale
|
|
14
|
-
? // Potentially the href shouldn't be prefixed, but to determine this we
|
|
15
|
-
// need a) the default locale and b) the information if we use prefixed
|
|
16
|
-
// routing. During the server side render (both in RSC as well as SSR),
|
|
17
|
-
// we don't have this information. Therefore we always prefix the href
|
|
18
|
-
// since this will always result in a valid URL, even if it might cause
|
|
19
|
-
// a redirect. This is better than pointing to a non-localized href
|
|
20
|
-
// during the server render, which would potentially be wrong. The final
|
|
21
|
-
// href is determined in the effect below.
|
|
22
|
-
prefixHref(href, locale)
|
|
23
|
-
: href);
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (!pathname)
|
|
26
|
-
return;
|
|
27
|
-
setLocalizedHref(localizeHref(href, locale, defaultLocale, pathname !== null && pathname !== void 0 ? pathname : undefined));
|
|
28
|
-
}, [defaultLocale, href, locale, pathname]);
|
|
29
|
-
if (isChangingLocale) {
|
|
30
|
-
if (prefetch && process.env.NODE_ENV !== 'production') {
|
|
31
|
-
console.error('The `prefetch` prop is currently not supported when using the `locale` prop on `Link` to switch the locale.`');
|
|
32
|
-
}
|
|
33
|
-
prefetch = false;
|
|
34
|
-
}
|
|
35
|
-
return (React.createElement(NextLink, { ref: ref, href: localizedHref, prefetch: prefetch, ...rest }));
|
|
36
|
-
}
|
|
37
|
-
export default forwardRef(BaseLink);
|
|
38
|
-
//# sourceMappingURL=BaseLink.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseLink.js","sourceRoot":"","sources":["../../../src/shared/BaseLink.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAiB,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC7E,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAM9D,SAAS,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAQ,EAAE,GAAiB;IAC3E,6DAA6D;IAC7D,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,WAAW,EAA2C,CAAC;IAExE,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;IACxC,MAAM,gBAAgB,GAAG,MAAM,KAAK,aAAa,CAAC;IAElD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CACnE,WAAW,CAAC,IAAI,CAAC,IAAI,MAAM;QACzB,CAAC,CAAC,uEAAuE;YACvE,uEAAuE;YACvE,uEAAuE;YACvE,sEAAsE;YACtE,uEAAuE;YACvE,mEAAmE;YACnE,wEAAwE;YACxE,0CAA0C;YAC1C,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1B,CAAC,CAAC,IAAI,CACT,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,gBAAgB,CACd,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,SAAS,CAAC,CACjE,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5C,IAAI,gBAAgB,EAAE;QACpB,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;YACrD,OAAO,CAAC,KAAK,CACX,8GAA8G,CAC/G,CAAC;SACH;QACD,QAAQ,GAAG,KAAK,CAAC;KAClB;IAED,OAAO,CACL,oBAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,KAAM,IAAI,GAAI,CAC1E,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC,QAAQ,CAAC,CAAC"}
|