@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Jan Amann
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
package/config.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var plugin = require('./plugin-DlFYUFWh.cjs');
|
|
4
|
+
var ExtractorCodec = require('./ExtractorCodec-D9Tw618d.cjs');
|
|
5
|
+
require('fs/promises');
|
|
6
|
+
require('path');
|
|
7
|
+
require('@parcel/watcher');
|
|
8
|
+
require('fs');
|
|
9
|
+
require('module');
|
|
10
|
+
require('@swc/core');
|
|
11
|
+
|
|
12
|
+
var JSONCodec = ExtractorCodec.defineCodec(() => ({
|
|
13
|
+
decode(source) {
|
|
14
|
+
const json = JSON.parse(source);
|
|
15
|
+
const messages = [];
|
|
16
|
+
traverseMessages(json, (message, id) => {
|
|
17
|
+
messages.push({
|
|
18
|
+
id,
|
|
19
|
+
message,
|
|
20
|
+
references: [],
|
|
21
|
+
description: []
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
return messages;
|
|
25
|
+
},
|
|
26
|
+
encode(messages) {
|
|
27
|
+
const root = {};
|
|
28
|
+
for (const message of plugin.getSortedMessages(messages)) {
|
|
29
|
+
plugin.setNestedProperty(root, message.id, message.message);
|
|
30
|
+
}
|
|
31
|
+
return JSON.stringify(root, null, 2) + '\n';
|
|
32
|
+
},
|
|
33
|
+
toJSONString(source) {
|
|
34
|
+
return source;
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
function traverseMessages(obj, callback, path = '') {
|
|
38
|
+
const NAMESPACE_SEPARATOR = '.';
|
|
39
|
+
for (const key of Object.keys(obj)) {
|
|
40
|
+
if (plugin.isForbiddenObjectKey(key)) {
|
|
41
|
+
throw new Error(`Invalid message catalog key: \`${key}\`.`);
|
|
42
|
+
}
|
|
43
|
+
const newPath = path ? path + NAMESPACE_SEPARATOR + key : key;
|
|
44
|
+
const value = obj[key];
|
|
45
|
+
if (typeof value === 'string') {
|
|
46
|
+
callback(value, newPath);
|
|
47
|
+
} else if (Array.isArray(value)) {
|
|
48
|
+
throw new Error(`Message at \`${newPath}\` resolved to an array, but only strings are supported. See https://next-intl.dev/docs/usage/translations#arrays-of-messages`);
|
|
49
|
+
} else if (typeof value === 'object') {
|
|
50
|
+
traverseMessages(value, callback, newPath);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
exports.default = JSONCodec;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var POParser = require('po-parser');
|
|
4
|
+
var plugin = require('./plugin-DlFYUFWh.cjs');
|
|
5
|
+
var ExtractorCodec = require('./ExtractorCodec-D9Tw618d.cjs');
|
|
6
|
+
require('fs/promises');
|
|
7
|
+
require('path');
|
|
8
|
+
require('@parcel/watcher');
|
|
9
|
+
require('fs');
|
|
10
|
+
require('module');
|
|
11
|
+
require('@swc/core');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var POParser__default = /*#__PURE__*/_interopDefaultCompat(POParser);
|
|
16
|
+
|
|
17
|
+
var POCodec = ExtractorCodec.defineCodec(() => {
|
|
18
|
+
// See also https://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html
|
|
19
|
+
const DEFAULT_METADATA = {
|
|
20
|
+
// Recommended by spec
|
|
21
|
+
'Content-Type': 'text/plain; charset=utf-8',
|
|
22
|
+
'Content-Transfer-Encoding': '8bit',
|
|
23
|
+
// Otherwise other tools might set this
|
|
24
|
+
'X-Generator': 'next-intl',
|
|
25
|
+
// Crowdin defaults to using msgid as source key
|
|
26
|
+
'X-Crowdin-SourceKey': 'msgstr'
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// Move all parts before the last dot to msgctxt
|
|
30
|
+
const NAMESPACE_SEPARATOR = '.';
|
|
31
|
+
|
|
32
|
+
// Metadata is stored so it can be retained when writing
|
|
33
|
+
const metadataByLocale = new Map();
|
|
34
|
+
return {
|
|
35
|
+
decode(content, context) {
|
|
36
|
+
const catalog = POParser__default.default.parse(content);
|
|
37
|
+
if (catalog.meta) {
|
|
38
|
+
metadataByLocale.set(context.locale, catalog.meta);
|
|
39
|
+
}
|
|
40
|
+
const messages = catalog.messages || [];
|
|
41
|
+
return messages.map(msg => {
|
|
42
|
+
const {
|
|
43
|
+
extractedComments,
|
|
44
|
+
msgctxt,
|
|
45
|
+
msgid,
|
|
46
|
+
msgstr,
|
|
47
|
+
references,
|
|
48
|
+
...rest
|
|
49
|
+
} = msg;
|
|
50
|
+
return {
|
|
51
|
+
...rest,
|
|
52
|
+
id: msgctxt ? [msgctxt, msgid].join(NAMESPACE_SEPARATOR) : msgid,
|
|
53
|
+
message: msgstr,
|
|
54
|
+
description: extractedComments ?? [],
|
|
55
|
+
references: references ?? []
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
encode(messages, context) {
|
|
60
|
+
const encodedMessages = plugin.getSortedMessages(messages).map(msg => {
|
|
61
|
+
const {
|
|
62
|
+
description = [],
|
|
63
|
+
id,
|
|
64
|
+
message,
|
|
65
|
+
references,
|
|
66
|
+
...rest
|
|
67
|
+
} = msg;
|
|
68
|
+
const lastDotIndex = id.lastIndexOf(NAMESPACE_SEPARATOR);
|
|
69
|
+
const hasNamespace = id.includes(NAMESPACE_SEPARATOR);
|
|
70
|
+
const msgid = hasNamespace ? id.slice(lastDotIndex + NAMESPACE_SEPARATOR.length) : id;
|
|
71
|
+
|
|
72
|
+
// Path-only refs (no `:line`), unique paths
|
|
73
|
+
const pathOnlyRefs = [...new Set(references.map(ref => ref.path))].map(path => ({
|
|
74
|
+
path
|
|
75
|
+
}));
|
|
76
|
+
return {
|
|
77
|
+
msgid,
|
|
78
|
+
msgstr: message,
|
|
79
|
+
...(description.length > 0 && {
|
|
80
|
+
extractedComments: description
|
|
81
|
+
}),
|
|
82
|
+
...(hasNamespace && {
|
|
83
|
+
msgctxt: id.slice(0, lastDotIndex)
|
|
84
|
+
}),
|
|
85
|
+
...(pathOnlyRefs.length > 0 && {
|
|
86
|
+
references: pathOnlyRefs
|
|
87
|
+
}),
|
|
88
|
+
...rest
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
return POParser__default.default.serialize({
|
|
92
|
+
meta: {
|
|
93
|
+
Language: context.locale,
|
|
94
|
+
...DEFAULT_METADATA,
|
|
95
|
+
...metadataByLocale.get(context.locale)
|
|
96
|
+
},
|
|
97
|
+
messages: encodedMessages
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
toJSONString(source, context) {
|
|
101
|
+
const parsed = this.decode(source, context);
|
|
102
|
+
const messagesObject = {};
|
|
103
|
+
for (const message of parsed) {
|
|
104
|
+
plugin.setNestedProperty(messagesObject, message.id, message.message);
|
|
105
|
+
}
|
|
106
|
+
return JSON.stringify(messagesObject);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
exports.default = POCodec;
|