@common.js/next-intl 4.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/config.d.ts +4 -0
- package/dist/cjs/development/ExtractorCodec-D9Tw618d.cjs +7 -0
- package/dist/cjs/development/JSONCodec-CzA8ubPy.cjs +55 -0
- package/dist/cjs/development/POCodec-CWGHK-Gp.cjs +111 -0
- package/dist/cjs/development/plugin-DlFYUFWh.cjs +1613 -0
- package/dist/cjs/development/plugin.cjs +13 -0
- package/dist/esm/development/config.js +13 -0
- package/dist/esm/development/extractor/ExtractionCompiler.js +284 -0
- package/dist/esm/development/extractor/catalog/CatalogLocales.js +398 -0
- package/dist/esm/development/extractor/catalog/CatalogManager.js +1515 -0
- package/dist/esm/development/extractor/catalog/CatalogPersister.js +341 -0
- package/dist/esm/development/extractor/catalog/SaveScheduler.js +314 -0
- package/dist/esm/development/extractor/catalogLoader.js +288 -0
- package/dist/esm/development/extractor/extractMessages.js +180 -0
- package/dist/esm/development/extractor/extractionLoader.js +37 -0
- package/dist/esm/development/extractor/extractor/LRUCache.js +68 -0
- package/dist/esm/development/extractor/extractor/MessageExtractor.js +273 -0
- package/dist/esm/development/extractor/format/ExtractorCodec.js +13 -0
- package/dist/esm/development/extractor/format/codecs/JSONCodec.js +91 -0
- package/dist/esm/development/extractor/format/codecs/POCodec.js +227 -0
- package/dist/esm/development/extractor/format/index.js +289 -0
- package/dist/esm/development/extractor/normalizeExtractorConfig.js +91 -0
- package/dist/esm/development/extractor/source/SourceFileFilter.js +104 -0
- package/dist/esm/development/extractor/source/SourceFileScanner.js +297 -0
- package/dist/esm/development/extractor/source/SourceFileWatcher.js +610 -0
- package/dist/esm/development/extractor/utils.js +133 -0
- package/dist/esm/development/extractor.js +25 -0
- package/dist/esm/development/index.react-client.js +59 -0
- package/dist/esm/development/index.react-server.js +61 -0
- package/dist/esm/development/middleware/getAlternateLinksHeaderValue.js +142 -0
- package/dist/esm/development/middleware/middleware.js +231 -0
- package/dist/esm/development/middleware/resolveLocale.js +150 -0
- package/dist/esm/development/middleware/syncCookie.js +87 -0
- package/dist/esm/development/middleware/utils.js +403 -0
- package/dist/esm/development/middleware.js +16 -0
- package/dist/esm/development/navigation/react-client/createNavigation.js +195 -0
- package/dist/esm/development/navigation/react-client/useBasePathname.js +46 -0
- package/dist/esm/development/navigation/react-server/createNavigation.js +111 -0
- package/dist/esm/development/navigation/react-server/getServerLocale.js +167 -0
- package/dist/esm/development/navigation/shared/BaseLink.js +115 -0
- package/dist/esm/development/navigation/shared/createSharedNavigationFns.js +214 -0
- package/dist/esm/development/navigation/shared/syncLocaleCookie.js +139 -0
- package/dist/esm/development/navigation/shared/utils.js +352 -0
- package/dist/esm/development/navigation.react-client.js +16 -0
- package/dist/esm/development/navigation.react-server.js +16 -0
- package/dist/esm/development/plugin/config.js +28 -0
- package/dist/esm/development/plugin/createNextIntlPlugin.js +66 -0
- package/dist/esm/development/plugin/declaration/createMessagesDeclaration.js +91 -0
- package/dist/esm/development/plugin/extractor/initExtractionCompiler.js +64 -0
- package/dist/esm/development/plugin/getNextConfig.js +355 -0
- package/dist/esm/development/plugin/nextFlags.js +47 -0
- package/dist/esm/development/plugin/utils.js +43 -0
- package/dist/esm/development/plugin/watchFile.js +32 -0
- package/dist/esm/development/plugin.js +16 -0
- package/dist/esm/development/react-client/index.js +67 -0
- package/dist/esm/development/react-server/NextIntlClientProviderServer.js +327 -0
- package/dist/esm/development/react-server/useConfig.js +40 -0
- package/dist/esm/development/react-server/useExtracted.js +21 -0
- package/dist/esm/development/react-server/useFormatter.js +21 -0
- package/dist/esm/development/react-server/useLocale.js +20 -0
- package/dist/esm/development/react-server/useMessages.js +21 -0
- package/dist/esm/development/react-server/useNow.js +25 -0
- package/dist/esm/development/react-server/useTimeZone.js +20 -0
- package/dist/esm/development/react-server/useTranslations.js +71 -0
- package/dist/esm/development/routing/config.js +82 -0
- package/dist/esm/development/routing/defineRouting.js +116 -0
- package/dist/esm/development/routing.js +16 -0
- package/dist/esm/development/server/react-client/index.js +68 -0
- package/dist/esm/development/server/react-server/RequestLocale.js +267 -0
- package/dist/esm/development/server/react-server/RequestLocaleCache.js +33 -0
- package/dist/esm/development/server/react-server/createRequestConfig.js +16 -0
- package/dist/esm/development/server/react-server/getConfig.js +283 -0
- package/dist/esm/development/server/react-server/getConfigNow.js +166 -0
- package/dist/esm/development/server/react-server/getDefaultNow.js +16 -0
- package/dist/esm/development/server/react-server/getExtracted.js +176 -0
- package/dist/esm/development/server/react-server/getFormats.js +166 -0
- package/dist/esm/development/server/react-server/getFormatter.js +186 -0
- package/dist/esm/development/server/react-server/getLocale.js +166 -0
- package/dist/esm/development/server/react-server/getMessages.js +194 -0
- package/dist/esm/development/server/react-server/getNow.js +164 -0
- package/dist/esm/development/server/react-server/getRequestConfig.js +15 -0
- package/dist/esm/development/server/react-server/getServerExtractor.js +108 -0
- package/dist/esm/development/server/react-server/getServerFormatter.js +81 -0
- package/dist/esm/development/server/react-server/getServerTranslator.js +70 -0
- package/dist/esm/development/server/react-server/getTimeZone.js +180 -0
- package/dist/esm/development/server/react-server/getTranslations.js +179 -0
- package/dist/esm/development/server/react-server/validateLocale.js +20 -0
- package/dist/esm/development/server.react-client.js +40 -0
- package/dist/esm/development/server.react-server.js +53 -0
- package/dist/esm/development/shared/NextIntlClientProvider.js +79 -0
- package/dist/esm/development/shared/constants.js +12 -0
- package/dist/esm/development/shared/use.js +59 -0
- package/dist/esm/development/shared/utils.js +201 -0
- package/dist/esm/production/config.js +13 -0
- package/dist/esm/production/extractor/ExtractionCompiler.js +275 -0
- package/dist/esm/production/extractor/catalog/CatalogLocales.js +384 -0
- package/dist/esm/production/extractor/catalog/CatalogManager.js +1401 -0
- package/dist/esm/production/extractor/catalog/CatalogPersister.js +334 -0
- package/dist/esm/production/extractor/catalog/SaveScheduler.js +278 -0
- package/dist/esm/production/extractor/catalogLoader.js +251 -0
- package/dist/esm/production/extractor/extractMessages.js +178 -0
- package/dist/esm/production/extractor/extractionLoader.js +27 -0
- package/dist/esm/production/extractor/extractor/LRUCache.js +59 -0
- package/dist/esm/production/extractor/extractor/MessageExtractor.js +259 -0
- package/dist/esm/production/extractor/format/ExtractorCodec.js +13 -0
- package/dist/esm/production/extractor/format/codecs/JSONCodec.js +83 -0
- package/dist/esm/production/extractor/format/codecs/POCodec.js +210 -0
- package/dist/esm/production/extractor/format/index.js +278 -0
- package/dist/esm/production/extractor/normalizeExtractorConfig.js +54 -0
- package/dist/esm/production/extractor/source/SourceFileFilter.js +99 -0
- package/dist/esm/production/extractor/source/SourceFileScanner.js +293 -0
- package/dist/esm/production/extractor/source/SourceFileWatcher.js +579 -0
- package/dist/esm/production/extractor/utils.js +108 -0
- package/dist/esm/production/extractor.js +25 -0
- package/dist/esm/production/index.react-client.js +59 -0
- package/dist/esm/production/index.react-server.js +61 -0
- package/dist/esm/production/middleware/getAlternateLinksHeaderValue.js +104 -0
- package/dist/esm/production/middleware/middleware.js +155 -0
- package/dist/esm/production/middleware/resolveLocale.js +99 -0
- package/dist/esm/production/middleware/syncCookie.js +81 -0
- package/dist/esm/production/middleware/utils.js +315 -0
- package/dist/esm/production/middleware.js +16 -0
- package/dist/esm/production/navigation/react-client/createNavigation.js +174 -0
- package/dist/esm/production/navigation/react-client/useBasePathname.js +32 -0
- package/dist/esm/production/navigation/react-server/createNavigation.js +110 -0
- package/dist/esm/production/navigation/react-server/getServerLocale.js +162 -0
- package/dist/esm/production/navigation/shared/BaseLink.js +98 -0
- package/dist/esm/production/navigation/shared/createSharedNavigationFns.js +182 -0
- package/dist/esm/production/navigation/shared/syncLocaleCookie.js +113 -0
- package/dist/esm/production/navigation/shared/utils.js +264 -0
- package/dist/esm/production/navigation.react-client.js +16 -0
- package/dist/esm/production/navigation.react-server.js +16 -0
- package/dist/esm/production/plugin/config.js +22 -0
- package/dist/esm/production/plugin/createNextIntlPlugin.js +48 -0
- package/dist/esm/production/plugin/declaration/createMessagesDeclaration.js +72 -0
- package/dist/esm/production/plugin/extractor/initExtractionCompiler.js +33 -0
- package/dist/esm/production/plugin/getNextConfig.js +242 -0
- package/dist/esm/production/plugin/nextFlags.js +44 -0
- package/dist/esm/production/plugin/utils.js +35 -0
- package/dist/esm/production/plugin/watchFile.js +26 -0
- package/dist/esm/production/plugin.js +16 -0
- package/dist/esm/production/react-client/index.js +57 -0
- package/dist/esm/production/react-server/NextIntlClientProviderServer.js +327 -0
- package/dist/esm/production/react-server/useConfig.js +35 -0
- package/dist/esm/production/react-server/useExtracted.js +21 -0
- package/dist/esm/production/react-server/useFormatter.js +21 -0
- package/dist/esm/production/react-server/useLocale.js +19 -0
- package/dist/esm/production/react-server/useMessages.js +21 -0
- package/dist/esm/production/react-server/useNow.js +22 -0
- package/dist/esm/production/react-server/useTimeZone.js +19 -0
- package/dist/esm/production/react-server/useTranslations.js +71 -0
- package/dist/esm/production/routing/config.js +77 -0
- package/dist/esm/production/routing/defineRouting.js +13 -0
- package/dist/esm/production/routing.js +16 -0
- package/dist/esm/production/server/react-client/index.js +51 -0
- package/dist/esm/production/server/react-server/RequestLocale.js +246 -0
- package/dist/esm/production/server/react-server/RequestLocaleCache.js +30 -0
- package/dist/esm/production/server/react-server/createRequestConfig.js +16 -0
- package/dist/esm/production/server/react-server/getConfig.js +262 -0
- package/dist/esm/production/server/react-server/getConfigNow.js +162 -0
- package/dist/esm/production/server/react-server/getDefaultNow.js +14 -0
- package/dist/esm/production/server/react-server/getExtracted.js +166 -0
- package/dist/esm/production/server/react-server/getFormats.js +157 -0
- package/dist/esm/production/server/react-server/getFormatter.js +179 -0
- package/dist/esm/production/server/react-server/getLocale.js +157 -0
- package/dist/esm/production/server/react-server/getMessages.js +190 -0
- package/dist/esm/production/server/react-server/getNow.js +164 -0
- package/dist/esm/production/server/react-server/getRequestConfig.js +13 -0
- package/dist/esm/production/server/react-server/getServerExtractor.js +20 -0
- package/dist/esm/production/server/react-server/getServerFormatter.js +78 -0
- package/dist/esm/production/server/react-server/getServerTranslator.js +69 -0
- package/dist/esm/production/server/react-server/getTimeZone.js +176 -0
- package/dist/esm/production/server/react-server/getTranslations.js +166 -0
- package/dist/esm/production/server.react-client.js +40 -0
- package/dist/esm/production/server.react-server.js +53 -0
- package/dist/esm/production/shared/NextIntlClientProvider.js +77 -0
- package/dist/esm/production/shared/constants.js +11 -0
- package/dist/esm/production/shared/use.js +51 -0
- package/dist/esm/production/shared/utils.js +156 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/extractor/ExtractionCompiler.d.ts +16 -0
- package/dist/types/extractor/catalog/CatalogLocales.d.ts +29 -0
- package/dist/types/extractor/catalog/CatalogManager.d.ts +76 -0
- package/dist/types/extractor/catalog/CatalogPersister.d.ts +20 -0
- package/dist/types/extractor/catalog/SaveScheduler.d.ts +18 -0
- package/dist/types/extractor/extractMessages.d.ts +2 -0
- package/dist/types/extractor/extractor/LRUCache.d.ts +7 -0
- package/dist/types/extractor/extractor/MessageExtractor.bench.d.ts +1 -0
- package/dist/types/extractor/extractor/MessageExtractor.d.ts +17 -0
- package/dist/types/extractor/format/ExtractorCodec.d.ts +33 -0
- package/dist/types/extractor/format/codecs/JSONCodec.d.ts +2 -0
- package/dist/types/extractor/format/codecs/POCodec.d.ts +2 -0
- package/dist/types/extractor/format/codecs/fixtures/JSONCodecStructured.d.ts +2 -0
- package/dist/types/extractor/format/codecs/fixtures/POCodecSourceMessageKey.d.ts +2 -0
- package/dist/types/extractor/format/index.d.ts +15 -0
- package/dist/types/extractor/format/types.d.ts +8 -0
- package/dist/types/extractor/index.d.ts +2 -0
- package/dist/types/extractor/normalizeExtractorConfig.d.ts +5 -0
- package/dist/types/extractor/source/SourceFileFilter.d.ts +8 -0
- package/dist/types/extractor/source/SourceFileScanner.d.ts +4 -0
- package/dist/types/extractor/source/SourceFileWatcher.d.ts +15 -0
- package/dist/types/extractor/types.d.ts +79 -0
- package/dist/types/extractor/utils.d.ts +9 -0
- package/dist/types/extractor.d.ts +1 -0
- package/dist/types/index.react-client.d.ts +8 -0
- package/dist/types/index.react-server.d.ts +1 -0
- package/dist/types/middleware/getAlternateLinksHeaderValue.d.ts +13 -0
- package/dist/types/middleware/index.d.ts +4 -0
- package/dist/types/middleware/middleware.d.ts +4 -0
- package/dist/types/middleware/resolveLocale.d.ts +9 -0
- package/dist/types/middleware/syncCookie.d.ts +7 -0
- package/dist/types/middleware/utils.d.ts +26 -0
- package/dist/types/middleware.d.ts +1 -0
- package/dist/types/navigation/react-client/createNavigation.d.ts +465 -0
- package/dist/types/navigation/react-client/index.d.ts +2 -0
- package/dist/types/navigation/react-client/useBasePathname.d.ts +5 -0
- package/dist/types/navigation/react-server/createNavigation.d.ts +384 -0
- package/dist/types/navigation/react-server/getServerLocale.d.ts +5 -0
- package/dist/types/navigation/react-server/index.d.ts +2 -0
- package/dist/types/navigation/shared/BaseLink.d.ts +11 -0
- package/dist/types/navigation/shared/StrictParams.d.ts +8 -0
- package/dist/types/navigation/shared/createSharedNavigationFns.d.ts +370 -0
- package/dist/types/navigation/shared/syncLocaleCookie.d.ts +8 -0
- package/dist/types/navigation/shared/utils.d.ts +53 -0
- package/dist/types/navigation.react-client.d.ts +1 -0
- package/dist/types/navigation.react-server.d.ts +1 -0
- package/dist/types/plugin/catalog/catalogLoader.d.ts +10 -0
- package/dist/types/plugin/config.d.ts +3 -0
- package/dist/types/plugin/createNextIntlPlugin.d.ts +3 -0
- package/dist/types/plugin/declaration/createMessagesDeclaration.d.ts +1 -0
- package/dist/types/plugin/declaration/index.d.ts +1 -0
- package/dist/types/plugin/extractor/extractionLoader.d.ts +3 -0
- package/dist/types/plugin/extractor/initExtractionCompiler.d.ts +2 -0
- package/dist/types/plugin/getNextConfig.d.ts +4 -0
- package/dist/types/plugin/index.d.ts +1 -0
- package/dist/types/plugin/nextFlags.d.ts +2 -0
- package/dist/types/plugin/types.d.ts +25 -0
- package/dist/types/plugin/utils.d.ts +8 -0
- package/dist/types/plugin/watchFile.d.ts +6 -0
- package/dist/types/plugin.d.ts +1 -0
- package/dist/types/react-client/index.d.ts +16 -0
- package/dist/types/react-server/NextIntlClientProviderServer.d.ts +5 -0
- package/dist/types/react-server/index.d.ts +16 -0
- package/dist/types/react-server/testUtils.d.ts +2 -0
- package/dist/types/react-server/useConfig.d.ts +2 -0
- package/dist/types/react-server/useExtracted.d.ts +2 -0
- package/dist/types/react-server/useFormatter.d.ts +2 -0
- package/dist/types/react-server/useLocale.d.ts +2 -0
- package/dist/types/react-server/useMessages.d.ts +2 -0
- package/dist/types/react-server/useNow.d.ts +2 -0
- package/dist/types/react-server/useTimeZone.d.ts +2 -0
- package/dist/types/react-server/useTranslations.d.ts +2 -0
- package/dist/types/routing/config.d.ts +73 -0
- package/dist/types/routing/defineRouting.d.ts +3 -0
- package/dist/types/routing/index.d.ts +3 -0
- package/dist/types/routing/types.d.ts +25 -0
- package/dist/types/routing.d.ts +1 -0
- package/dist/types/server/react-client/index.d.ts +10 -0
- package/dist/types/server/react-server/RequestLocale.d.ts +1 -0
- package/dist/types/server/react-server/RequestLocaleCache.d.ts +3 -0
- package/dist/types/server/react-server/createRequestConfig.d.ts +3 -0
- package/dist/types/server/react-server/getConfig.d.ts +13 -0
- package/dist/types/server/react-server/getConfigNow.d.ts +4 -0
- package/dist/types/server/react-server/getDefaultNow.d.ts +3 -0
- package/dist/types/server/react-server/getExtracted.d.ts +10 -0
- package/dist/types/server/react-server/getFormats.d.ts +3 -0
- package/dist/types/server/react-server/getFormatter.d.ts +10 -0
- package/dist/types/server/react-server/getLocale.d.ts +4 -0
- package/dist/types/server/react-server/getMessages.d.ts +6 -0
- package/dist/types/server/react-server/getNow.d.ts +4 -0
- package/dist/types/server/react-server/getRequestConfig.d.ts +35 -0
- package/dist/types/server/react-server/getServerExtractor.d.ts +5 -0
- package/dist/types/server/react-server/getServerFormatter.d.ts +29 -0
- package/dist/types/server/react-server/getServerTranslator.d.ts +4 -0
- package/dist/types/server/react-server/getTimeZone.d.ts +4 -0
- package/dist/types/server/react-server/getTranslations.d.ts +8 -0
- package/dist/types/server/react-server/index.d.ts +12 -0
- package/dist/types/server/react-server/validateLocale.d.ts +1 -0
- package/dist/types/server.react-client.d.ts +1 -0
- package/dist/types/server.react-server.d.ts +1 -0
- package/dist/types/shared/NextIntlClientProvider.d.ts +9 -0
- package/dist/types/shared/constants.d.ts +1 -0
- package/dist/types/shared/types.d.ts +5 -0
- package/dist/types/shared/use.d.ts +3 -0
- package/dist/types/shared/utils.d.ts +20 -0
- package/extractor/catalogLoader.d.ts +4 -0
- package/extractor/extractionLoader.d.ts +4 -0
- package/extractor.d.ts +2 -0
- package/middleware.d.ts +4 -0
- package/navigation.d.ts +2 -0
- package/package.json +60 -0
- package/plugin.d.cts +3 -0
- package/plugin.d.ts +4 -0
- package/routing.d.ts +2 -0
- package/server.d.ts +2 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
compareReferences: function() {
|
|
13
|
+
return compareReferences;
|
|
14
|
+
},
|
|
15
|
+
getDefaultProjectRoot: function() {
|
|
16
|
+
return getDefaultProjectRoot;
|
|
17
|
+
},
|
|
18
|
+
getSortedMessages: function() {
|
|
19
|
+
return getSortedMessages;
|
|
20
|
+
},
|
|
21
|
+
hasLocalesToExtract: function() {
|
|
22
|
+
return hasLocalesToExtract;
|
|
23
|
+
},
|
|
24
|
+
isForbiddenObjectKey: function() {
|
|
25
|
+
return isForbiddenObjectKey;
|
|
26
|
+
},
|
|
27
|
+
localeCompare: function() {
|
|
28
|
+
return localeCompare;
|
|
29
|
+
},
|
|
30
|
+
normalizePathToPosix: function() {
|
|
31
|
+
return normalizePathToPosix;
|
|
32
|
+
},
|
|
33
|
+
setNestedProperty: function() {
|
|
34
|
+
return setNestedProperty;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
var _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
38
|
+
var _utilsJs = require("../plugin/utils.js");
|
|
39
|
+
function _interopRequireDefault(obj) {
|
|
40
|
+
return obj && obj.__esModule ? obj : {
|
|
41
|
+
default: obj
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function normalizePathToPosix(filePath) {
|
|
45
|
+
// `path.relative` uses OS-specific separators. For stable `.po` references we
|
|
46
|
+
// always use POSIX separators, regardless of the OS that ran extraction.
|
|
47
|
+
return _path.default.posix.normalize(filePath.split(_path.default.win32.sep).join(_path.default.posix.sep));
|
|
48
|
+
}
|
|
49
|
+
var FORBIDDEN_OBJECT_KEYS = new Set([
|
|
50
|
+
"__proto__",
|
|
51
|
+
"constructor",
|
|
52
|
+
"prototype"
|
|
53
|
+
]);
|
|
54
|
+
function isForbiddenObjectKey(key) {
|
|
55
|
+
return FORBIDDEN_OBJECT_KEYS.has(key);
|
|
56
|
+
}
|
|
57
|
+
function hasLocalesToExtract(config) {
|
|
58
|
+
var locales = config.extract.locales;
|
|
59
|
+
return locales === "infer" || locales.length > 0;
|
|
60
|
+
}
|
|
61
|
+
// Essentialls lodash/set, but we avoid this dependency
|
|
62
|
+
function setNestedProperty(obj, keyPath, value) {
|
|
63
|
+
var keys = keyPath.split(".");
|
|
64
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
65
|
+
try {
|
|
66
|
+
for(var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
67
|
+
var key = _step.value;
|
|
68
|
+
if (isForbiddenObjectKey(key)) {
|
|
69
|
+
throw new Error("Invalid message id segment: ".concat(key));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
_didIteratorError = true;
|
|
74
|
+
_iteratorError = err;
|
|
75
|
+
} finally{
|
|
76
|
+
try {
|
|
77
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
78
|
+
_iterator.return();
|
|
79
|
+
}
|
|
80
|
+
} finally{
|
|
81
|
+
if (_didIteratorError) {
|
|
82
|
+
throw _iteratorError;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
var current = obj;
|
|
87
|
+
for(var i = 0; i < keys.length - 1; i++){
|
|
88
|
+
var key1 = keys[i];
|
|
89
|
+
if (!Object.prototype.hasOwnProperty.call(current, key1) || typeof current[key1] !== "object" || current[key1] === null) {
|
|
90
|
+
current[key1] = Object.create(null);
|
|
91
|
+
}
|
|
92
|
+
current = current[key1];
|
|
93
|
+
}
|
|
94
|
+
current[keys[keys.length - 1]] = value;
|
|
95
|
+
}
|
|
96
|
+
function getSortedMessages(messages) {
|
|
97
|
+
var warnedMissingReferenceIds = new Set();
|
|
98
|
+
return messages.toSorted(function(messageA, messageB) {
|
|
99
|
+
var refA = messageA.references[0];
|
|
100
|
+
var refB = messageB.references[0];
|
|
101
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
102
|
+
if (refA == null) {
|
|
103
|
+
warnAboutMissingReference(messageA.id, warnedMissingReferenceIds);
|
|
104
|
+
}
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
106
|
+
if (refB == null) {
|
|
107
|
+
warnAboutMissingReference(messageB.id, warnedMissingReferenceIds);
|
|
108
|
+
}
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
110
|
+
if (refA == null || refB == null) {
|
|
111
|
+
return 0;
|
|
112
|
+
}
|
|
113
|
+
// Sort by path, then line. Same path+line: preserve original order
|
|
114
|
+
return compareReferences(refA, refB);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function warnAboutMissingReference(id, warnedMissingReferenceIds) {
|
|
118
|
+
if (warnedMissingReferenceIds.has(id)) return;
|
|
119
|
+
warnedMissingReferenceIds.add(id);
|
|
120
|
+
(0, _utilsJs.warn)("Missing file reference for extracted message: ".concat(id));
|
|
121
|
+
}
|
|
122
|
+
function localeCompare(a, b) {
|
|
123
|
+
return a.localeCompare(b, "en");
|
|
124
|
+
}
|
|
125
|
+
function compareReferences(refA, refB) {
|
|
126
|
+
var pathCompare = localeCompare(refA.path, refB.path);
|
|
127
|
+
if (pathCompare !== 0) return pathCompare;
|
|
128
|
+
var _line, _line1;
|
|
129
|
+
return ((_line = refA.line) !== null && _line !== void 0 ? _line : 0) - ((_line1 = refB.line) !== null && _line1 !== void 0 ? _line1 : 0);
|
|
130
|
+
}
|
|
131
|
+
function getDefaultProjectRoot() {
|
|
132
|
+
return process.cwd();
|
|
133
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
unstable_extractMessages: function() {
|
|
13
|
+
return _extractMessagesJs.default;
|
|
14
|
+
},
|
|
15
|
+
defineCodec: function() {
|
|
16
|
+
return _extractorCodecJs.defineCodec;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _extractMessagesJs = /*#__PURE__*/ _interopRequireDefault(require("./extractor/extractMessages.js"));
|
|
20
|
+
var _extractorCodecJs = require("./extractor/format/ExtractorCodec.js");
|
|
21
|
+
function _interopRequireDefault(obj) {
|
|
22
|
+
return obj && obj.__esModule ? obj : {
|
|
23
|
+
default: obj
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
useFormatter: function() {
|
|
13
|
+
return _indexJs.useFormatter;
|
|
14
|
+
},
|
|
15
|
+
useTranslations: function() {
|
|
16
|
+
return _indexJs.useTranslations;
|
|
17
|
+
},
|
|
18
|
+
NextIntlClientProvider: function() {
|
|
19
|
+
return _nextIntlClientProviderJs.default;
|
|
20
|
+
},
|
|
21
|
+
IntlProvider: function() {
|
|
22
|
+
return _react.IntlProvider;
|
|
23
|
+
},
|
|
24
|
+
useExtracted: function() {
|
|
25
|
+
return _react["_useExtracted"];
|
|
26
|
+
},
|
|
27
|
+
useLocale: function() {
|
|
28
|
+
return _react.useLocale;
|
|
29
|
+
},
|
|
30
|
+
useMessages: function() {
|
|
31
|
+
return _react.useMessages;
|
|
32
|
+
},
|
|
33
|
+
useNow: function() {
|
|
34
|
+
return _react.useNow;
|
|
35
|
+
},
|
|
36
|
+
useTimeZone: function() {
|
|
37
|
+
return _react.useTimeZone;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
var _indexJs = require("./react-client/index.js");
|
|
41
|
+
var _nextIntlClientProviderJs = /*#__PURE__*/ _interopRequireDefault(require("./shared/NextIntlClientProvider.js"));
|
|
42
|
+
var _react = require("use-intl/react");
|
|
43
|
+
_exportStar(require("use-intl/core"), exports);
|
|
44
|
+
function _exportStar(from, to) {
|
|
45
|
+
Object.keys(from).forEach(function(k) {
|
|
46
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
get: function() {
|
|
49
|
+
return from[k];
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
return from;
|
|
54
|
+
}
|
|
55
|
+
function _interopRequireDefault(obj) {
|
|
56
|
+
return obj && obj.__esModule ? obj : {
|
|
57
|
+
default: obj
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
useLocale: function() {
|
|
13
|
+
return _useLocaleJs.default;
|
|
14
|
+
},
|
|
15
|
+
useTranslations: function() {
|
|
16
|
+
return _useTranslationsJs.default;
|
|
17
|
+
},
|
|
18
|
+
useFormatter: function() {
|
|
19
|
+
return _useFormatterJs.default;
|
|
20
|
+
},
|
|
21
|
+
useNow: function() {
|
|
22
|
+
return _useNowJs.default;
|
|
23
|
+
},
|
|
24
|
+
useTimeZone: function() {
|
|
25
|
+
return _useTimeZoneJs.default;
|
|
26
|
+
},
|
|
27
|
+
useMessages: function() {
|
|
28
|
+
return _useMessagesJs.default;
|
|
29
|
+
},
|
|
30
|
+
NextIntlClientProvider: function() {
|
|
31
|
+
return _nextIntlClientProviderServerJs.default;
|
|
32
|
+
},
|
|
33
|
+
useExtracted: function() {
|
|
34
|
+
return _useExtractedJs.default;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
var _useLocaleJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useLocale.js"));
|
|
38
|
+
var _useTranslationsJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useTranslations.js"));
|
|
39
|
+
var _useFormatterJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useFormatter.js"));
|
|
40
|
+
var _useNowJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useNow.js"));
|
|
41
|
+
var _useTimeZoneJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useTimeZone.js"));
|
|
42
|
+
var _useMessagesJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useMessages.js"));
|
|
43
|
+
var _nextIntlClientProviderServerJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/NextIntlClientProviderServer.js"));
|
|
44
|
+
var _useExtractedJs = /*#__PURE__*/ _interopRequireDefault(require("./react-server/useExtracted.js"));
|
|
45
|
+
_exportStar(require("use-intl/core"), exports);
|
|
46
|
+
function _exportStar(from, to) {
|
|
47
|
+
Object.keys(from).forEach(function(k) {
|
|
48
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function() {
|
|
51
|
+
return from[k];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
return from;
|
|
56
|
+
}
|
|
57
|
+
function _interopRequireDefault(obj) {
|
|
58
|
+
return obj && obj.__esModule ? obj : {
|
|
59
|
+
default: obj
|
|
60
|
+
};
|
|
61
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getAlternateLinksHeaderValue;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _utilsJs = require("../shared/utils.js");
|
|
12
|
+
var _utilsJs1 = require("./utils.js");
|
|
13
|
+
function _arrayLikeToArray(arr, len) {
|
|
14
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
15
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
16
|
+
return arr2;
|
|
17
|
+
}
|
|
18
|
+
function _arrayWithHoles(arr) {
|
|
19
|
+
if (Array.isArray(arr)) return arr;
|
|
20
|
+
}
|
|
21
|
+
function _iterableToArrayLimit(arr, i) {
|
|
22
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
23
|
+
if (_i == null) return;
|
|
24
|
+
var _arr = [];
|
|
25
|
+
var _n = true;
|
|
26
|
+
var _d = false;
|
|
27
|
+
var _s, _e;
|
|
28
|
+
try {
|
|
29
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
30
|
+
_arr.push(_s.value);
|
|
31
|
+
if (i && _arr.length === i) break;
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
_d = true;
|
|
35
|
+
_e = err;
|
|
36
|
+
} finally{
|
|
37
|
+
try {
|
|
38
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
39
|
+
} finally{
|
|
40
|
+
if (_d) throw _e;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return _arr;
|
|
44
|
+
}
|
|
45
|
+
function _nonIterableRest() {
|
|
46
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
47
|
+
}
|
|
48
|
+
function _slicedToArray(arr, i) {
|
|
49
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
50
|
+
}
|
|
51
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
52
|
+
if (!o) return;
|
|
53
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
54
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
55
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
56
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
57
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* See https://developers.google.com/search/docs/specialty/international/localized-versions
|
|
61
|
+
*/ function getAlternateLinksHeaderValue(param) {
|
|
62
|
+
var internalTemplateName = param.internalTemplateName, localizedPathnames = param.localizedPathnames, request = param.request, resolvedLocale = param.resolvedLocale, routing = param.routing;
|
|
63
|
+
var getAlternateEntry = function getAlternateEntry(url, locale) {
|
|
64
|
+
url.pathname = (0, _utilsJs.normalizeTrailingSlash)(url.pathname);
|
|
65
|
+
if (request.nextUrl.basePath) {
|
|
66
|
+
url = new URL(url);
|
|
67
|
+
url.pathname = (0, _utilsJs1.applyBasePath)(url.pathname, request.nextUrl.basePath);
|
|
68
|
+
}
|
|
69
|
+
return "<".concat(url.toString(), '>; rel="alternate"; hreflang="').concat(locale, '"');
|
|
70
|
+
};
|
|
71
|
+
var getLocalizedPathname = function getLocalizedPathname(pathname, locale) {
|
|
72
|
+
if (localizedPathnames && typeof localizedPathnames === "object") {
|
|
73
|
+
var sourceTemplate = localizedPathnames[resolvedLocale];
|
|
74
|
+
var _locale;
|
|
75
|
+
return (0, _utilsJs1.formatTemplatePathname)(pathname, sourceTemplate !== null && sourceTemplate !== void 0 ? sourceTemplate : internalTemplateName, (_locale = localizedPathnames[locale]) !== null && _locale !== void 0 ? _locale : internalTemplateName);
|
|
76
|
+
} else {
|
|
77
|
+
return pathname;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var normalizedUrl = request.nextUrl.clone();
|
|
81
|
+
var host = (0, _utilsJs1.getHost)(request.headers);
|
|
82
|
+
if (host) {
|
|
83
|
+
normalizedUrl.port = "";
|
|
84
|
+
normalizedUrl.host = host;
|
|
85
|
+
}
|
|
86
|
+
var ref;
|
|
87
|
+
normalizedUrl.protocol = (ref = request.headers.get("x-forwarded-proto")) !== null && ref !== void 0 ? ref : normalizedUrl.protocol;
|
|
88
|
+
normalizedUrl.pathname = (0, _utilsJs1.getNormalizedPathname)(normalizedUrl.pathname, routing.locales, routing.localePrefix);
|
|
89
|
+
var links = (0, _utilsJs1.getLocalePrefixes)(routing.locales, routing.localePrefix, false).flatMap(function(param) {
|
|
90
|
+
var _param = _slicedToArray(param, 2), locale = _param[0], prefix = _param[1];
|
|
91
|
+
var prefixPathname = function prefixPathname(pathname) {
|
|
92
|
+
if (pathname === "/") {
|
|
93
|
+
return prefix;
|
|
94
|
+
} else {
|
|
95
|
+
return prefix + pathname;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
var url;
|
|
99
|
+
if (routing.domains) {
|
|
100
|
+
var domainConfigs = routing.domains.filter(function(cur) {
|
|
101
|
+
return (0, _utilsJs1.isLocaleSupportedOnDomain)(locale, cur);
|
|
102
|
+
});
|
|
103
|
+
return domainConfigs.map(function(domainConfig) {
|
|
104
|
+
url = new URL(normalizedUrl);
|
|
105
|
+
url.port = "";
|
|
106
|
+
url.host = domainConfig.domain;
|
|
107
|
+
// Important: Use `normalizedUrl` here, as `url` potentially uses
|
|
108
|
+
// a `basePath` that automatically gets applied to the pathname
|
|
109
|
+
url.pathname = getLocalizedPathname(normalizedUrl.pathname, locale);
|
|
110
|
+
// Use domain-specific localePrefix mode if available
|
|
111
|
+
var domainMode = domainConfig.localePrefix || routing.localePrefix.mode;
|
|
112
|
+
if (locale !== domainConfig.defaultLocale || domainMode === "always") {
|
|
113
|
+
url.pathname = prefixPathname(url.pathname);
|
|
114
|
+
}
|
|
115
|
+
return getAlternateEntry(url, locale);
|
|
116
|
+
});
|
|
117
|
+
} else {
|
|
118
|
+
var pathname;
|
|
119
|
+
if (localizedPathnames && typeof localizedPathnames === "object") {
|
|
120
|
+
pathname = getLocalizedPathname(normalizedUrl.pathname, locale);
|
|
121
|
+
} else {
|
|
122
|
+
pathname = normalizedUrl.pathname;
|
|
123
|
+
}
|
|
124
|
+
if (locale !== routing.defaultLocale || routing.localePrefix.mode === "always") {
|
|
125
|
+
pathname = prefixPathname(pathname);
|
|
126
|
+
}
|
|
127
|
+
url = new URL(pathname, normalizedUrl);
|
|
128
|
+
}
|
|
129
|
+
return getAlternateEntry(url, locale);
|
|
130
|
+
});
|
|
131
|
+
// Add x-default entry
|
|
132
|
+
var shouldAddXDefault = // For domain-based routing there is no reasonable x-default
|
|
133
|
+
!routing.domains || routing.domains.length === 0;
|
|
134
|
+
if (shouldAddXDefault) {
|
|
135
|
+
var localizedPathname = getLocalizedPathname(normalizedUrl.pathname, routing.defaultLocale);
|
|
136
|
+
if (localizedPathname) {
|
|
137
|
+
var url = new URL(localizedPathname, normalizedUrl);
|
|
138
|
+
links.push(getAlternateEntry(url, "x-default"));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return links.join(", ");
|
|
142
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createMiddleware;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _server = require("next/server");
|
|
12
|
+
var _configJs = require("../routing/config.js");
|
|
13
|
+
var _constantsJs = require("../shared/constants.js");
|
|
14
|
+
var _utilsJs = require("../shared/utils.js");
|
|
15
|
+
var _getAlternateLinksHeaderValueJs = /*#__PURE__*/ _interopRequireDefault(require("./getAlternateLinksHeaderValue.js"));
|
|
16
|
+
var _resolveLocaleJs = /*#__PURE__*/ _interopRequireDefault(require("./resolveLocale.js"));
|
|
17
|
+
var _syncCookieJs = /*#__PURE__*/ _interopRequireDefault(require("./syncCookie.js"));
|
|
18
|
+
var _utilsJs1 = require("./utils.js");
|
|
19
|
+
function _arrayLikeToArray(arr, len) {
|
|
20
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
21
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
22
|
+
return arr2;
|
|
23
|
+
}
|
|
24
|
+
function _arrayWithHoles(arr) {
|
|
25
|
+
if (Array.isArray(arr)) return arr;
|
|
26
|
+
}
|
|
27
|
+
function _interopRequireDefault(obj) {
|
|
28
|
+
return obj && obj.__esModule ? obj : {
|
|
29
|
+
default: obj
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function _iterableToArrayLimit(arr, i) {
|
|
33
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
34
|
+
if (_i == null) return;
|
|
35
|
+
var _arr = [];
|
|
36
|
+
var _n = true;
|
|
37
|
+
var _d = false;
|
|
38
|
+
var _s, _e;
|
|
39
|
+
try {
|
|
40
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
41
|
+
_arr.push(_s.value);
|
|
42
|
+
if (i && _arr.length === i) break;
|
|
43
|
+
}
|
|
44
|
+
} catch (err) {
|
|
45
|
+
_d = true;
|
|
46
|
+
_e = err;
|
|
47
|
+
} finally{
|
|
48
|
+
try {
|
|
49
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
50
|
+
} finally{
|
|
51
|
+
if (_d) throw _e;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return _arr;
|
|
55
|
+
}
|
|
56
|
+
function _nonIterableRest() {
|
|
57
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
58
|
+
}
|
|
59
|
+
function _slicedToArray(arr, i) {
|
|
60
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
61
|
+
}
|
|
62
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
63
|
+
if (!o) return;
|
|
64
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
65
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
66
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
67
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
68
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
69
|
+
}
|
|
70
|
+
function createMiddleware(routing) {
|
|
71
|
+
var resolvedRouting = (0, _configJs.receiveRoutingConfig)(routing);
|
|
72
|
+
return function middleware(request) {
|
|
73
|
+
var next = function next(url) {
|
|
74
|
+
var urlObj = new URL(url, request.url);
|
|
75
|
+
if (request.nextUrl.basePath) {
|
|
76
|
+
urlObj.pathname = (0, _utilsJs1.applyBasePath)(urlObj.pathname, request.nextUrl.basePath);
|
|
77
|
+
}
|
|
78
|
+
var headers = new Headers(request.headers);
|
|
79
|
+
headers.set(_constantsJs.HEADER_LOCALE_NAME, locale);
|
|
80
|
+
var isRewriteNecessary = (0, _utilsJs.normalizeTrailingSlash)(request.nextUrl.pathname) !== (0, _utilsJs.normalizeTrailingSlash)(urlObj.pathname);
|
|
81
|
+
if (isRewriteNecessary) {
|
|
82
|
+
return _server.NextResponse.rewrite(urlObj, {
|
|
83
|
+
request: {
|
|
84
|
+
headers: headers
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
} else {
|
|
88
|
+
return _server.NextResponse.next({
|
|
89
|
+
request: {
|
|
90
|
+
headers: headers
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
var redirect = function redirect(url, redirectDomain) {
|
|
96
|
+
var urlObj = new URL(url, request.url);
|
|
97
|
+
urlObj.pathname = (0, _utilsJs.normalizeTrailingSlash)(urlObj.pathname);
|
|
98
|
+
if (domainsConfig.length > 0 && !redirectDomain && domain) {
|
|
99
|
+
var bestMatchingDomain = (0, _utilsJs1.getBestMatchingDomain)(domain, locale, domainsConfig);
|
|
100
|
+
if (bestMatchingDomain) {
|
|
101
|
+
redirectDomain = bestMatchingDomain.domain;
|
|
102
|
+
var redirectDomainMode = bestMatchingDomain.localePrefix || resolvedRouting.localePrefix.mode;
|
|
103
|
+
if (bestMatchingDomain.defaultLocale === locale && redirectDomainMode === "as-needed") {
|
|
104
|
+
urlObj.pathname = (0, _utilsJs1.getNormalizedPathname)(urlObj.pathname, resolvedRouting.locales, resolvedRouting.localePrefix);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (redirectDomain) {
|
|
109
|
+
urlObj.host = redirectDomain;
|
|
110
|
+
if (request.headers.get("x-forwarded-host")) {
|
|
111
|
+
var ref;
|
|
112
|
+
urlObj.protocol = (ref = request.headers.get("x-forwarded-proto")) !== null && ref !== void 0 ? ref : request.nextUrl.protocol;
|
|
113
|
+
var redirectDomainPort = redirectDomain.split(":")[1];
|
|
114
|
+
var ref1;
|
|
115
|
+
urlObj.port = (ref1 = redirectDomainPort !== null && redirectDomainPort !== void 0 ? redirectDomainPort : request.headers.get("x-forwarded-port")) !== null && ref1 !== void 0 ? ref1 : "";
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (request.nextUrl.basePath) {
|
|
119
|
+
urlObj.pathname = (0, _utilsJs1.applyBasePath)(urlObj.pathname, request.nextUrl.basePath);
|
|
120
|
+
}
|
|
121
|
+
hasRedirected = true;
|
|
122
|
+
return _server.NextResponse.redirect(urlObj.toString());
|
|
123
|
+
};
|
|
124
|
+
var ref;
|
|
125
|
+
var unsafeExternalPathname;
|
|
126
|
+
try {
|
|
127
|
+
// Resolve potential foreign symbols (e.g. /ja/%E7%B4%84 → /ja/約))
|
|
128
|
+
unsafeExternalPathname = decodeURI(request.nextUrl.pathname);
|
|
129
|
+
} catch (e) {
|
|
130
|
+
// In case an invalid pathname is encountered, forward
|
|
131
|
+
// it to Next.js which in turn responds with a 400
|
|
132
|
+
return _server.NextResponse.next();
|
|
133
|
+
}
|
|
134
|
+
// Sanitize malicious URIs to prevent open redirect attacks due to
|
|
135
|
+
// decodeURI doesn't escape encoded backslashes ('%5C' & '%5c')
|
|
136
|
+
var externalPathname = (0, _utilsJs1.sanitizePathname)(unsafeExternalPathname);
|
|
137
|
+
var ref1 = (0, _resolveLocaleJs.default)(resolvedRouting, request.headers, request.cookies, externalPathname), domain = ref1.domain, locale = ref1.locale;
|
|
138
|
+
var hasMatchedDefaultLocale = domain ? domain.defaultLocale === locale : locale === resolvedRouting.defaultLocale;
|
|
139
|
+
var domainsConfig = ((ref = resolvedRouting.domains) === null || ref === void 0 ? void 0 : ref.filter(function(curDomain) {
|
|
140
|
+
return (0, _utilsJs1.isLocaleSupportedOnDomain)(locale, curDomain);
|
|
141
|
+
})) || [];
|
|
142
|
+
var hasUnknownHost = resolvedRouting.domains != null && !domain;
|
|
143
|
+
var unprefixedExternalPathname = (0, _utilsJs1.getNormalizedPathname)(externalPathname, resolvedRouting.locales, resolvedRouting.localePrefix);
|
|
144
|
+
var pathnameMatch = (0, _utilsJs1.getPathnameMatch)(externalPathname, resolvedRouting.locales, resolvedRouting.localePrefix, domain);
|
|
145
|
+
var hasLocalePrefix = pathnameMatch != null;
|
|
146
|
+
// Use domain-specific localePrefix mode if available, otherwise use global mode
|
|
147
|
+
var effectiveLocalePrefixMode = (domain === null || domain === void 0 ? void 0 : domain.localePrefix) || resolvedRouting.localePrefix.mode;
|
|
148
|
+
var isUnprefixedRouting = effectiveLocalePrefixMode === "never" || hasMatchedDefaultLocale && effectiveLocalePrefixMode === "as-needed";
|
|
149
|
+
var response;
|
|
150
|
+
var internalTemplateName;
|
|
151
|
+
var hasRedirected;
|
|
152
|
+
var unprefixedInternalPathname = unprefixedExternalPathname;
|
|
153
|
+
var pathnames = resolvedRouting.pathnames;
|
|
154
|
+
if (pathnames) {
|
|
155
|
+
var resolvedTemplateLocale;
|
|
156
|
+
var ref2;
|
|
157
|
+
ref2 = _slicedToArray((0, _utilsJs1.getInternalTemplate)(pathnames, unprefixedExternalPathname, locale), 2), resolvedTemplateLocale = ref2[0], internalTemplateName = ref2[1], ref2;
|
|
158
|
+
if (internalTemplateName) {
|
|
159
|
+
var pathnameConfig = pathnames[internalTemplateName];
|
|
160
|
+
var localeTemplate = (0, _utilsJs.getLocalizedTemplate)(pathnameConfig, locale, internalTemplateName);
|
|
161
|
+
if ((0, _utilsJs.matchesPathname)(localeTemplate, unprefixedExternalPathname)) {
|
|
162
|
+
unprefixedInternalPathname = (0, _utilsJs1.formatTemplatePathname)(unprefixedExternalPathname, localeTemplate, internalTemplateName);
|
|
163
|
+
} else {
|
|
164
|
+
var sourceTemplate;
|
|
165
|
+
if (resolvedTemplateLocale) {
|
|
166
|
+
// A localized pathname from another locale has matched
|
|
167
|
+
sourceTemplate = (0, _utilsJs.getLocalizedTemplate)(pathnameConfig, resolvedTemplateLocale, internalTemplateName);
|
|
168
|
+
} else {
|
|
169
|
+
// An internal pathname has matched that
|
|
170
|
+
// doesn't have a localized pathname
|
|
171
|
+
sourceTemplate = internalTemplateName;
|
|
172
|
+
}
|
|
173
|
+
var localePrefix = isUnprefixedRouting ? undefined : (0, _utilsJs.getLocalePrefix)(locale, resolvedRouting.localePrefix);
|
|
174
|
+
var template = (0, _utilsJs1.formatTemplatePathname)(unprefixedExternalPathname, sourceTemplate, localeTemplate);
|
|
175
|
+
response = redirect((0, _utilsJs1.formatPathname)(template, localePrefix, request.nextUrl.search));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (!response) {
|
|
180
|
+
if (unprefixedInternalPathname === "/" && !hasLocalePrefix) {
|
|
181
|
+
if (isUnprefixedRouting) {
|
|
182
|
+
response = next((0, _utilsJs1.formatPathname)(unprefixedInternalPathname, (0, _utilsJs1.getLocaleAsPrefix)(locale), request.nextUrl.search));
|
|
183
|
+
} else {
|
|
184
|
+
response = redirect((0, _utilsJs1.formatPathname)(unprefixedExternalPathname, (0, _utilsJs.getLocalePrefix)(locale, resolvedRouting.localePrefix), request.nextUrl.search));
|
|
185
|
+
}
|
|
186
|
+
} else {
|
|
187
|
+
var internalHref = (0, _utilsJs1.formatPathname)(unprefixedInternalPathname, (0, _utilsJs1.getLocaleAsPrefix)(locale), request.nextUrl.search);
|
|
188
|
+
if (hasLocalePrefix) {
|
|
189
|
+
var externalHref = (0, _utilsJs1.formatPathname)(unprefixedExternalPathname, pathnameMatch.prefix, request.nextUrl.search);
|
|
190
|
+
if (effectiveLocalePrefixMode === "never") {
|
|
191
|
+
response = redirect((0, _utilsJs1.formatPathname)(unprefixedExternalPathname, undefined, request.nextUrl.search));
|
|
192
|
+
} else if (pathnameMatch.exact) {
|
|
193
|
+
if (hasMatchedDefaultLocale && isUnprefixedRouting) {
|
|
194
|
+
response = redirect((0, _utilsJs1.formatPathname)(unprefixedExternalPathname, undefined, request.nextUrl.search));
|
|
195
|
+
} else {
|
|
196
|
+
if (resolvedRouting.domains) {
|
|
197
|
+
var pathDomain = (0, _utilsJs1.getBestMatchingDomain)(domain, pathnameMatch.locale, domainsConfig);
|
|
198
|
+
if ((domain === null || domain === void 0 ? void 0 : domain.domain) !== (pathDomain === null || pathDomain === void 0 ? void 0 : pathDomain.domain) && !hasUnknownHost) {
|
|
199
|
+
response = redirect(externalHref, pathDomain === null || pathDomain === void 0 ? void 0 : pathDomain.domain);
|
|
200
|
+
} else {
|
|
201
|
+
response = next(internalHref);
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
response = next(internalHref);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
} else {
|
|
208
|
+
response = redirect(externalHref);
|
|
209
|
+
}
|
|
210
|
+
} else {
|
|
211
|
+
if (isUnprefixedRouting) {
|
|
212
|
+
response = next(internalHref);
|
|
213
|
+
} else {
|
|
214
|
+
response = redirect((0, _utilsJs1.formatPathname)(unprefixedExternalPathname, (0, _utilsJs.getLocalePrefix)(locale, resolvedRouting.localePrefix), request.nextUrl.search));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
(0, _syncCookieJs.default)(request, response, locale, resolvedRouting, domain);
|
|
220
|
+
if (!hasRedirected && effectiveLocalePrefixMode !== "never" && resolvedRouting.alternateLinks && resolvedRouting.locales.length > 1) {
|
|
221
|
+
response.headers.set("Link", (0, _getAlternateLinksHeaderValueJs.default)({
|
|
222
|
+
routing: resolvedRouting,
|
|
223
|
+
internalTemplateName: internalTemplateName,
|
|
224
|
+
localizedPathnames: internalTemplateName != null && pathnames ? pathnames[internalTemplateName] : undefined,
|
|
225
|
+
request: request,
|
|
226
|
+
resolvedLocale: locale
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
229
|
+
return response;
|
|
230
|
+
};
|
|
231
|
+
}
|