lingo.dev 0.73.0 → 0.74.0
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/build/{chunk-NF6GBJ2R.mjs → chunk-B6KMMXCA.mjs} +3 -1
- package/build/chunk-B6KMMXCA.mjs.map +1 -0
- package/build/{chunk-NUMPOGXY.mjs → chunk-D7CRCYTW.mjs} +2 -2
- package/build/{chunk-HODTYTE5.cjs → chunk-MZS2TO4G.cjs} +5 -5
- package/build/{chunk-HODTYTE5.cjs.map → chunk-MZS2TO4G.cjs.map} +1 -1
- package/build/{chunk-BCCNAFJB.cjs → chunk-U3YIG2HS.cjs} +3 -1
- package/build/chunk-U3YIG2HS.cjs.map +1 -0
- package/build/cli.cjs +54 -66
- package/build/cli.cjs.map +1 -1
- package/build/cli.mjs +31 -43
- package/build/cli.mjs.map +1 -1
- package/build/sdk.cjs +3 -3
- package/build/sdk.mjs +2 -2
- package/build/spec.cjs +2 -2
- package/build/spec.mjs +1 -1
- package/package.json +7 -7
- package/build/chunk-BCCNAFJB.cjs.map +0 -1
- package/build/chunk-NF6GBJ2R.mjs.map +0 -1
- /package/build/{chunk-NUMPOGXY.mjs.map → chunk-D7CRCYTW.mjs.map} +0 -0
|
@@ -103,6 +103,8 @@ var localeMap = {
|
|
|
103
103
|
],
|
|
104
104
|
// Ukrainian (Ukraine)
|
|
105
105
|
uk: ["uk-UA"],
|
|
106
|
+
// Belarusian (Belarus)
|
|
107
|
+
be: ["be-BY"],
|
|
106
108
|
// Hindi (India)
|
|
107
109
|
hi: ["hi-IN"],
|
|
108
110
|
// Chinese
|
|
@@ -489,4 +491,4 @@ export {
|
|
|
489
491
|
parseI18nConfig,
|
|
490
492
|
defaultConfig
|
|
491
493
|
};
|
|
492
|
-
//# sourceMappingURL=chunk-
|
|
494
|
+
//# sourceMappingURL=chunk-B6KMMXCA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../spec/build/index.mjs"],"sourcesContent":["// src/locales.ts\nimport Z from \"zod\";\nvar localeMap = {\n // Urdu (Pakistan)\n ur: [\"ur-PK\"],\n // Vietnamese (Vietnam)\n vi: [\"vi-VN\"],\n // Turkish (Turkey)\n tr: [\"tr-TR\"],\n // Tamil (India)\n ta: [\"ta-IN\"],\n // Serbian\n sr: [\n \"sr-RS\",\n // Serbian (Latin)\n \"sr-Latn-RS\",\n // Serbian (Latin)\n \"sr-Cyrl-RS\"\n // Serbian (Cyrillic)\n ],\n // Hungarian (Hungary)\n hu: [\"hu-HU\"],\n // Hebrew (Israel)\n he: [\"he-IL\"],\n // Estonian (Estonia)\n et: [\"et-EE\"],\n // Greek (Greece)\n el: [\"el-GR\"],\n // Danish (Denmark)\n da: [\"da-DK\"],\n // Azerbaijani (Azerbaijan)\n az: [\"az-AZ\"],\n // Thai (Thailand)\n th: [\"th-TH\"],\n // Swedish (Sweden)\n sv: [\"sv-SE\"],\n // English\n en: [\n \"en-US\",\n // United States\n \"en-GB\",\n // United Kingdom\n \"en-AU\",\n // Australia\n \"en-CA\"\n // Canada\n ],\n // Spanish\n es: [\n \"es-ES\",\n // Spain\n \"es-419\",\n // Latin America\n \"es-MX\",\n // Mexico\n \"es-AR\"\n // Argentina\n ],\n // French\n fr: [\n \"fr-FR\",\n // France\n \"fr-CA\",\n // Canada\n \"fr-BE\"\n // Belgium\n ],\n // Catalan (Spain)\n ca: [\"ca-ES\"],\n // Japanese (Japan)\n ja: [\"ja-JP\"],\n // German\n de: [\n \"de-DE\",\n // Germany\n \"de-AT\",\n // Austria\n \"de-CH\"\n // Switzerland\n ],\n // Portuguese\n pt: [\n \"pt-PT\",\n // Portugal\n \"pt-BR\"\n // Brazil\n ],\n // Italian\n it: [\n \"it-IT\",\n // Italy\n \"it-CH\"\n // Switzerland\n ],\n // Russian\n ru: [\n \"ru-RU\",\n // Russia\n \"ru-BY\"\n // Belarus\n ],\n // Ukrainian (Ukraine)\n uk: [\"uk-UA\"],\n // Belarusian (Belarus)\n be: [\"be-BY\"],\n // Hindi (India)\n hi: [\"hi-IN\"],\n // Chinese\n zh: [\n \"zh-CN\",\n // Simplified Chinese (China)\n \"zh-TW\",\n // Traditional Chinese (Taiwan)\n \"zh-HK\",\n // Traditional Chinese (Hong Kong)\n \"zh-Hans\",\n // Simplified Chinese\n \"zh-Hant\",\n // Traditional Chinese\n \"zh-Hant-HK\",\n // Traditional Chinese (Hong Kong)\n \"zh-Hant-TW\",\n // Traditional Chinese (Taiwan)\n \"zh-Hant-CN\",\n // Traditional Chinese (China)\n \"zh-Hans-HK\",\n // Simplified Chinese (Hong Kong)\n \"zh-Hans-TW\",\n // Simplified Chinese (China)\n \"zh-Hans-CN\"\n // Simplified Chinese (China)\n ],\n // Korean (South Korea)\n ko: [\"ko-KR\"],\n // Arabic\n ar: [\n \"ar-EG\",\n // Egypt\n \"ar-SA\",\n // Saudi Arabia\n \"ar-AE\",\n // United Arab Emirates\n \"ar-MA\"\n // Morocco\n ],\n // Bulgarian (Bulgaria)\n bg: [\"bg-BG\"],\n // Czech (Czech Republic)\n cs: [\"cs-CZ\"],\n // Dutch\n nl: [\n \"nl-NL\",\n // Netherlands\n \"nl-BE\"\n // Belgium\n ],\n // Polish (Poland)\n pl: [\"pl-PL\"],\n // Indonesian (Indonesia)\n id: [\"id-ID\"],\n // Malay (Malaysia)\n ms: [\"ms-MY\"],\n // Finnish (Finland)\n fi: [\"fi-FI\"],\n // Basque (Spain)\n eu: [\"eu-ES\"],\n // Croatian (Croatia)\n hr: [\"hr-HR\"],\n // Hebrew (Israel) - alternative code\n iw: [\"iw-IL\"],\n // Khmer (Cambodia)\n km: [\"km-KH\"],\n // Latvian (Latvia)\n lv: [\"lv-LV\"],\n // Lithuanian (Lithuania)\n lt: [\"lt-LT\"],\n // Norwegian (Norway)\n no: [\"no-NO\"],\n // Romanian (Romania)\n ro: [\"ro-RO\"],\n // Slovak (Slovakia)\n sk: [\"sk-SK\"],\n // Swahili\n sw: [\n \"sw-TZ\",\n // Tanzania\n \"sw-KE\"\n // Kenya\n ],\n // Persian (Iran)\n fa: [\"fa-IR\"],\n // Filipino (Philippines)\n fil: [\"fil-PH\"],\n // Punjabi\n pa: [\n \"pa-IN\",\n // India\n \"pa-PK\"\n // Pakistan\n ],\n // Bengali\n bn: [\n \"bn-BD\",\n // Bangladesh\n \"bn-IN\"\n // India\n ],\n // Irish (Ireland)\n ga: [\"ga-IE\"],\n // Maltese (Malta)\n mt: [\"mt-MT\"],\n // Slovenian (Slovenia)\n sl: [\"sl-SI\"],\n // Albanian (Albania)\n sq: [\"sq-AL\"],\n // Bavarian (Germany)\n bar: [\"bar-DE\"],\n // Neapolitan (Italy)\n nap: [\"nap-IT\"],\n // Afrikaans (South Africa)\n af: [\"af-ZA\"],\n // Somali (Somalia)\n so: [\"so-SO\"],\n // Tigrinya (Ethiopia)\n ti: [\"ti-ET\"],\n // Standard Moroccan Tamazight (Morocco)\n zgh: [\"zgh-MA\"],\n // Tagalog (Philippines)\n tl: [\"tl-PH\"],\n // Telugu (India)\n te: [\"te-IN\"]\n};\nvar localeCodesShort = Object.keys(localeMap);\nvar localeCodesFull = Object.values(localeMap).flat();\nvar localeCodesFullUnderscore = localeCodesFull.map((value) => value.replace(\"-\", \"_\"));\nvar localeCodesFullExplicitRegion = localeCodesFull.map((value) => {\n const chunks = value.split(\"-\");\n const result = [chunks[0], \"-r\", chunks.slice(1).join(\"-\")].join(\"\");\n return result;\n});\nvar localeCodes = [\n ...localeCodesShort,\n ...localeCodesFull,\n ...localeCodesFullUnderscore,\n ...localeCodesFullExplicitRegion\n];\nvar localeCodeSchema = Z.string().refine((value) => localeCodes.includes(value), {\n message: \"Invalid locale code\"\n});\nvar resolveLocaleCode = (value) => {\n const existingFullLocaleCode = Object.values(localeMap).flat().includes(value);\n if (existingFullLocaleCode) {\n return value;\n }\n const existingShortLocaleCode = Object.keys(localeMap).includes(value);\n if (existingShortLocaleCode) {\n const correspondingFullLocales = localeMap[value];\n const fallbackFullLocale = correspondingFullLocales[0];\n return fallbackFullLocale;\n }\n throw new Error(`Invalid locale code: ${value}`);\n};\nvar getAlternativeLocaleCodes = (locale) => {\n if (locale.includes(\"-\")) {\n return [locale.replace(/-/g, \"_\")];\n } else if (locale.includes(\"_\")) {\n return [locale.replace(/_/g, \"-\")];\n } else {\n return [];\n }\n};\nvar getLocaleCodeDelimiter = (locale) => {\n if (locale.includes(\"_\")) {\n return \"_\";\n } else if (locale.includes(\"-\")) {\n return \"-\";\n } else {\n return null;\n }\n};\nvar resolveOverridenLocale = (locale, delimiter) => {\n if (!delimiter) {\n return locale;\n }\n const currentDelimiter = getLocaleCodeDelimiter(locale);\n if (!currentDelimiter) {\n return locale;\n }\n return locale.replace(currentDelimiter, delimiter);\n};\n\n// src/formats.ts\nimport Z2 from \"zod\";\nvar bucketTypes = [\n \"android\",\n \"csv\",\n \"flutter\",\n \"html\",\n \"json\",\n \"markdown\",\n \"xcode-strings\",\n \"xcode-stringsdict\",\n \"xcode-xcstrings\",\n \"yaml\",\n \"yaml-root-key\",\n \"properties\",\n \"po\",\n \"xliff\",\n \"xml\",\n \"srt\",\n \"dato\",\n \"compiler\",\n \"vtt\"\n];\nvar bucketTypeSchema = Z2.enum(bucketTypes);\n\n// src/config.ts\nimport Z3 from \"zod\";\nvar localeSchema = Z3.object({\n source: localeCodeSchema,\n targets: Z3.array(localeCodeSchema)\n});\nvar createConfigDefinition = (definition) => definition;\nvar extendConfigDefinition = (definition, params) => {\n const schema = params.createSchema(definition.schema);\n const defaultValue = params.createDefaultValue(definition.defaultValue);\n const upgrader = (config) => params.createUpgrader(config, schema, defaultValue);\n return createConfigDefinition({\n schema,\n defaultValue,\n parse: (rawConfig) => {\n const safeResult = schema.safeParse(rawConfig);\n if (safeResult.success) {\n return safeResult.data;\n }\n const localeErrors = safeResult.error.errors.filter((issue) => issue.message.includes(\"Invalid locale code\")).map((issue) => {\n let unsupportedLocale = \"\";\n const path = issue.path;\n const config = rawConfig;\n if (config.locale) {\n unsupportedLocale = path.reduce((acc, key) => {\n if (acc && typeof acc === \"object\" && key in acc) {\n return acc[key];\n }\n return acc;\n }, config.locale);\n }\n return `Unsupported locale: ${unsupportedLocale}`;\n });\n if (localeErrors.length > 0) {\n throw new Error(`\n${localeErrors.join(\"\\n\")}`);\n }\n const baseConfig = definition.parse(rawConfig);\n const result = upgrader(baseConfig);\n return result;\n }\n });\n};\nvar configV0Schema = Z3.object({\n version: Z3.number().default(0)\n});\nvar configV0Definition = createConfigDefinition({\n schema: configV0Schema,\n defaultValue: { version: 0 },\n parse: (rawConfig) => {\n return configV0Schema.parse(rawConfig);\n }\n});\nvar configV1Definition = extendConfigDefinition(configV0Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n locale: localeSchema,\n buckets: Z3.record(Z3.string(), bucketTypeSchema).default({}).optional()\n }),\n createDefaultValue: () => ({\n version: 1,\n locale: {\n source: \"en\",\n targets: [\"es\"]\n },\n buckets: {}\n }),\n createUpgrader: () => ({\n version: 1,\n locale: {\n source: \"en\",\n targets: [\"es\"]\n },\n buckets: {}\n })\n});\nvar configV1_1Definition = extendConfigDefinition(configV1Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n buckets: Z3.record(\n bucketTypeSchema,\n Z3.object({\n include: Z3.array(Z3.string()).default([]),\n exclude: Z3.array(Z3.string()).default([]).optional()\n })\n ).default({})\n }),\n createDefaultValue: (baseDefaultValue) => ({\n ...baseDefaultValue,\n version: 1.1,\n buckets: {}\n }),\n createUpgrader: (oldConfig, schema) => {\n const upgradedConfig = {\n ...oldConfig,\n version: 1.1,\n buckets: {}\n };\n if (oldConfig.buckets) {\n for (const [bucketPath, bucketType] of Object.entries(oldConfig.buckets)) {\n if (!upgradedConfig.buckets[bucketType]) {\n upgradedConfig.buckets[bucketType] = {\n include: []\n };\n }\n upgradedConfig.buckets[bucketType]?.include.push(bucketPath);\n }\n }\n return upgradedConfig;\n }\n});\nvar configV1_2Definition = extendConfigDefinition(configV1_1Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n locale: localeSchema.extend({\n extraSource: localeCodeSchema.optional()\n })\n }),\n createDefaultValue: (baseDefaultValue) => ({\n ...baseDefaultValue,\n version: 1.2\n }),\n createUpgrader: (oldConfig) => ({\n ...oldConfig,\n version: 1.2\n })\n});\nvar bucketItemSchema = Z3.object({\n path: Z3.string(),\n delimiter: Z3.union([Z3.literal(\"-\"), Z3.literal(\"_\"), Z3.literal(null)]).optional()\n});\nvar configV1_3Definition = extendConfigDefinition(configV1_2Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n buckets: Z3.record(\n bucketTypeSchema,\n Z3.object({\n include: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).default([]),\n exclude: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).default([]).optional()\n })\n ).default({})\n }),\n createDefaultValue: (baseDefaultValue) => ({\n ...baseDefaultValue,\n version: 1.3\n }),\n createUpgrader: (oldConfig) => ({\n ...oldConfig,\n version: 1.3\n })\n});\nvar LATEST_CONFIG_DEFINITION = configV1_3Definition;\nfunction parseI18nConfig(rawConfig) {\n try {\n const result = LATEST_CONFIG_DEFINITION.parse(rawConfig);\n return result;\n } catch (error) {\n throw new Error(`Failed to parse config: ${error.message}`);\n }\n}\nvar defaultConfig = LATEST_CONFIG_DEFINITION.defaultValue;\nexport {\n bucketItemSchema,\n bucketTypeSchema,\n bucketTypes,\n configV0Definition,\n configV1Definition,\n configV1_1Definition,\n configV1_2Definition,\n configV1_3Definition,\n defaultConfig,\n getAlternativeLocaleCodes,\n getLocaleCodeDelimiter,\n localeCodeSchema,\n localeCodes,\n localeCodesFull,\n localeCodesFullExplicitRegion,\n localeCodesFullUnderscore,\n localeCodesShort,\n localeSchema,\n parseI18nConfig,\n resolveLocaleCode,\n resolveOverridenLocale\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
localeCodeSchema
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-B6KMMXCA.mjs";
|
|
4
4
|
|
|
5
5
|
// ../sdk/build/index.mjs
|
|
6
6
|
import Z from "zod";
|
|
@@ -328,4 +328,4 @@ var ReplexicaEngine = class {
|
|
|
328
328
|
export {
|
|
329
329
|
ReplexicaEngine
|
|
330
330
|
};
|
|
331
|
-
//# sourceMappingURL=chunk-
|
|
331
|
+
//# sourceMappingURL=chunk-D7CRCYTW.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkU3YIG2HScjs = require('./chunk-U3YIG2HS.cjs');
|
|
4
4
|
|
|
5
5
|
// ../sdk/build/index.mjs
|
|
6
6
|
var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);
|
|
@@ -13,11 +13,11 @@ var engineParamsSchema = _zod2.default.object({
|
|
|
13
13
|
}).passthrough();
|
|
14
14
|
var payloadSchema = _zod2.default.record(_zod2.default.string(), _zod2.default.any());
|
|
15
15
|
var localizationParamsSchema = _zod2.default.object({
|
|
16
|
-
sourceLocale:
|
|
17
|
-
targetLocale:
|
|
16
|
+
sourceLocale: _chunkU3YIG2HScjs.localeCodeSchema,
|
|
17
|
+
targetLocale: _chunkU3YIG2HScjs.localeCodeSchema,
|
|
18
18
|
fast: _zod2.default.boolean().optional()
|
|
19
19
|
});
|
|
20
|
-
var referenceSchema = _zod2.default.record(
|
|
20
|
+
var referenceSchema = _zod2.default.record(_chunkU3YIG2HScjs.localeCodeSchema, payloadSchema);
|
|
21
21
|
var ReplexicaEngine = class {
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -328,4 +328,4 @@ var ReplexicaEngine = class {
|
|
|
328
328
|
|
|
329
329
|
|
|
330
330
|
exports.ReplexicaEngine = ReplexicaEngine;
|
|
331
|
-
//# sourceMappingURL=chunk-
|
|
331
|
+
//# sourceMappingURL=chunk-MZS2TO4G.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-HODTYTE5.cjs","../../sdk/build/index.mjs"],"names":[],"mappings":"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ACD,MAAA;AACC,QAAA;AACF,QAAA;AACE,QAAA;AACA,UAAA;AACb,UAAA;AACF,QAAA;AACiB,QAAA;AACN,UAAA;AACX,QAAA;AACc,QAAA;AACI,QAAA;AACA,UAAA;AAClB,QAAA;AACU,QAAA;AACZ,MAAA;AACiB,MAAA;AACK,MAAA;AACxB,IAAA;AACqB,IAAA;AACD,MAAA;AACH,MAAA;AACT,QAAA;AACF,UAAA;AACF,QAAA;AACgB,QAAA;AAClB,MAAA;AACsB,MAAA;AACF,QAAA;AACR,QAAA;AACS,UAAA;AACnB,QAAA;AACc,MAAA;AACE,QAAA;AACA,QAAA;AACG,QAAA;AACC,QAAA;AACJ,UAAA;AACH,UAAA;AACQ,YAAA;AACnB,UAAA;AACD,QAAA;AACkB,QAAA;AACrB,MAAA;AACF,IAAA;AACyB,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACV,IAAA;AACI,MAAA;AACE,MAAA;AACN,MAAA;AACC,MAAA;AACM,MAAA;AACD,QAAA;AACN,UAAA;AACX,QAAA;AACmB,QAAA;AACN,QAAA;AACF,UAAA;AACX,QAAA;AACF,MAAA;AACa,MAAA;AACI,QAAA;AACL,UAAA;AACH,QAAA;AACG,UAAA;AACV,QAAA;AACF,MAAA;AACD,IAAA;AACoB,IAAA;AACvB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMsB,EAAA;AACG,IAAA;AACb,MAAA;AACC,MAAA;AACS,QAAA;AACD,QAAA;AACjB,MAAA;AACuB,MAAA;AACxB,IAAA;AACiB,IAAA;AACA,MAAA;AAClB,IAAA;AACqB,IAAA;AACD,IAAA;AACtB,EAAA;AACF;ADI6B;AACA;AACA;AACA","file":"/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-HODTYTE5.cjs","sourcesContent":[null,"// src/index.ts\nimport Z from \"zod\";\nimport { localeCodeSchema } from \"@lingo.dev/spec\";\nimport { createId } from \"@paralleldrive/cuid2\";\nvar engineParamsSchema = Z.object({\n apiKey: Z.string(),\n apiUrl: Z.string().url().default(\"https://engine.lingo.dev\"),\n batchSize: Z.number().int().gt(0).lte(250).default(25),\n idealBatchItemSize: Z.number().int().gt(0).lte(2500).default(250)\n}).passthrough();\nvar payloadSchema = Z.record(Z.string(), Z.any());\nvar localizationParamsSchema = Z.object({\n sourceLocale: localeCodeSchema,\n targetLocale: localeCodeSchema,\n fast: Z.boolean().optional()\n});\nvar referenceSchema = Z.record(localeCodeSchema, payloadSchema);\nvar ReplexicaEngine = class {\n config;\n /**\n * Create a new ReplexicaEngine instance\n * @param config - Configuration options for the Engine\n */\n constructor(config) {\n this.config = engineParamsSchema.parse(config);\n }\n /**\n * Localize content using the Lingo.dev API\n * @param payload - The content to be localized\n * @param params - Localization parameters including source/target locales and fast mode option\n * @param reference - Optional reference translations to maintain consistency\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns Localized content\n * @internal\n */\n async _localizeRaw(payload, params, reference, progressCallback) {\n const finalPayload = payloadSchema.parse(payload);\n const finalParams = localizationParamsSchema.parse(params);\n const chunkedPayload = this.extractPayloadChunks(finalPayload);\n const processedPayloadChunks = [];\n const workflowId = createId();\n for (let i = 0; i < chunkedPayload.length; i++) {\n const chunk = chunkedPayload[i];\n const percentageCompleted = Math.round((i + 1) / chunkedPayload.length * 100);\n const processedPayloadChunk = await this.localizeChunk(\n finalParams.sourceLocale,\n finalParams.targetLocale,\n { data: chunk, reference },\n workflowId,\n params.fast || false\n );\n if (progressCallback) {\n progressCallback(percentageCompleted, chunk, processedPayloadChunk);\n }\n processedPayloadChunks.push(processedPayloadChunk);\n }\n return Object.assign({}, ...processedPayloadChunks);\n }\n /**\n * Localize a single chunk of content\n * @param sourceLocale - Source locale\n * @param targetLocale - Target locale\n * @param payload - Payload containing the chunk to be localized\n * @returns Localized chunk\n */\n async localizeChunk(sourceLocale, targetLocale, payload, workflowId, fast) {\n const res = await fetch(`${this.config.apiUrl}/i18n`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.config.apiKey}`\n },\n body: JSON.stringify(\n {\n params: { workflowId, fast },\n locale: {\n source: sourceLocale,\n target: targetLocale\n },\n data: payload.data,\n reference: payload.reference\n },\n null,\n 2\n )\n });\n if (!res.ok) {\n if (res.status === 400) {\n throw new Error(`Invalid request: ${res.statusText}`);\n } else {\n const errorText = await res.text();\n throw new Error(errorText);\n }\n }\n const jsonResponse = await res.json();\n return jsonResponse.data || {};\n }\n /**\n * Extract payload chunks based on the ideal chunk size\n * @param payload - The payload to be chunked\n * @returns An array of payload chunks\n */\n extractPayloadChunks(payload) {\n const result = [];\n let currentChunk = {};\n let currentChunkItemCount = 0;\n const payloadEntries = Object.entries(payload);\n for (let i = 0; i < payloadEntries.length; i++) {\n const [key, value] = payloadEntries[i];\n currentChunk[key] = value;\n currentChunkItemCount++;\n const currentChunkSize = this.countWordsInRecord(currentChunk);\n if (currentChunkSize > this.config.idealBatchItemSize || currentChunkItemCount >= this.config.batchSize || i === payloadEntries.length - 1) {\n result.push(currentChunk);\n currentChunk = {};\n currentChunkItemCount = 0;\n }\n }\n return result;\n }\n /**\n * Count words in a record or array\n * @param payload - The payload to count words in\n * @returns The total number of words\n */\n countWordsInRecord(payload) {\n if (Array.isArray(payload)) {\n return payload.reduce((acc, item) => acc + this.countWordsInRecord(item), 0);\n } else if (typeof payload === \"object\" && payload !== null) {\n return Object.values(payload).reduce((acc, item) => acc + this.countWordsInRecord(item), 0);\n } else if (typeof payload === \"string\") {\n return payload.trim().split(/\\s+/).filter(Boolean).length;\n } else {\n return 0;\n }\n }\n /**\n * Localize a typical JavaScript object\n * @param obj - The object to be localized (strings will be extracted and translated)\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster but potentially lower quality)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns A new object with the same structure but localized string values\n */\n async localizeObject(obj, params, progressCallback) {\n return this._localizeRaw(obj, params, void 0, progressCallback);\n }\n /**\n * Localize a single text string\n * @param text - The text string to be localized\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster for bigger batches)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns The localized text string\n */\n async localizeText(text, params, progressCallback) {\n const response = await this._localizeRaw({ text }, params, void 0, progressCallback);\n return response.text || \"\";\n }\n /**\n * Localize a text string to multiple target locales\n * @param text - The text string to be localized\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocales: An array of target language codes (e.g., ['es', 'fr'])\n * - fast: Optional boolean to enable fast mode (for bigger batches)\n * @returns An array of localized text strings\n */\n async batchLocalizeText(text, params) {\n const responses = await Promise.all(\n params.targetLocales.map(\n (targetLocale) => this.localizeText(text, {\n sourceLocale: params.sourceLocale,\n targetLocale,\n fast: params.fast\n })\n )\n );\n return responses;\n }\n /**\n * Localize a chat sequence while preserving speaker names\n * @param chat - Array of chat messages, each with 'name' and 'text' properties\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster but potentially lower quality)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns Array of localized chat messages with preserved structure\n */\n async localizeChat(chat, params, progressCallback) {\n const localized = await this._localizeRaw({ chat }, params, void 0, progressCallback);\n return Object.entries(localized).map(([key, value]) => ({\n name: chat[parseInt(key.split(\"_\")[1])].name,\n text: value\n }));\n }\n /**\n * Localize an HTML document while preserving structure and formatting\n * Handles both text content and localizable attributes (alt, title, placeholder, meta content)\n * @param html - The HTML document string to be localized\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster but potentially lower quality)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns The localized HTML document as a string, with updated lang attribute\n */\n async localizeHtml(html, params, progressCallback) {\n const jsdomPackage = await import(\"jsdom\");\n const { JSDOM } = jsdomPackage;\n const dom = new JSDOM(html);\n const document = dom.window.document;\n const LOCALIZABLE_ATTRIBUTES = {\n meta: [\"content\"],\n img: [\"alt\"],\n input: [\"placeholder\"],\n a: [\"title\"]\n };\n const UNLOCALIZABLE_TAGS = [\"script\", \"style\"];\n const extractedContent = {};\n const getPath = (node, attribute) => {\n const indices = [];\n let current = node;\n let rootParent = \"\";\n while (current) {\n const parent = current.parentElement;\n if (!parent) break;\n if (parent === document.documentElement) {\n rootParent = current.nodeName.toLowerCase();\n break;\n }\n const siblings = Array.from(parent.childNodes).filter(\n (n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()\n );\n const index = siblings.indexOf(current);\n if (index !== -1) {\n indices.unshift(index);\n }\n current = parent;\n }\n const basePath = rootParent ? `${rootParent}/${indices.join(\"/\")}` : indices.join(\"/\");\n return attribute ? `${basePath}#${attribute}` : basePath;\n };\n const processNode = (node) => {\n let parent = node.parentElement;\n while (parent) {\n if (UNLOCALIZABLE_TAGS.includes(parent.tagName.toLowerCase())) {\n return;\n }\n parent = parent.parentElement;\n }\n if (node.nodeType === 3) {\n const text = node.textContent?.trim() || \"\";\n if (text) {\n extractedContent[getPath(node)] = text;\n }\n } else if (node.nodeType === 1) {\n const element = node;\n const tagName = element.tagName.toLowerCase();\n const attributes = LOCALIZABLE_ATTRIBUTES[tagName] || [];\n attributes.forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value) {\n extractedContent[getPath(element, attr)] = value;\n }\n });\n Array.from(element.childNodes).filter((n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()).forEach(processNode);\n }\n };\n Array.from(document.head.childNodes).filter((n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()).forEach(processNode);\n Array.from(document.body.childNodes).filter((n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()).forEach(processNode);\n const localizedContent = await this._localizeRaw(extractedContent, params, void 0, progressCallback);\n document.documentElement.setAttribute(\"lang\", params.targetLocale);\n Object.entries(localizedContent).forEach(([path, value]) => {\n const [nodePath, attribute] = path.split(\"#\");\n const [rootTag, ...indices] = nodePath.split(\"/\");\n let parent = rootTag === \"head\" ? document.head : document.body;\n let current = parent;\n for (const index of indices) {\n const siblings = Array.from(parent.childNodes).filter(\n (n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()\n );\n current = siblings[parseInt(index)] || null;\n if (current?.nodeType === 1) {\n parent = current;\n }\n }\n if (current) {\n if (attribute) {\n current.setAttribute(attribute, value);\n } else {\n current.textContent = value;\n }\n }\n });\n return dom.serialize();\n }\n /**\n * Detect the language of a given text\n * @param text - The text to analyze\n * @returns Promise resolving to a locale code (e.g., 'en', 'es', 'fr')\n */\n async recognizeLocale(text) {\n const response = await fetch(`${this.config.apiUrl}/recognize`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.config.apiKey}`\n },\n body: JSON.stringify({ text })\n });\n if (!response.ok) {\n throw new Error(`Error recognizing locale: ${response.statusText}`);\n }\n const jsonResponse = await response.json();\n return jsonResponse.locale;\n }\n};\nexport {\n ReplexicaEngine\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-MZS2TO4G.cjs","../../sdk/build/index.mjs"],"names":[],"mappings":"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ACD,MAAA;AACC,QAAA;AACF,QAAA;AACE,QAAA;AACA,UAAA;AACb,UAAA;AACF,QAAA;AACiB,QAAA;AACN,UAAA;AACX,QAAA;AACc,QAAA;AACI,QAAA;AACA,UAAA;AAClB,QAAA;AACU,QAAA;AACZ,MAAA;AACiB,MAAA;AACK,MAAA;AACxB,IAAA;AACqB,IAAA;AACD,MAAA;AACH,MAAA;AACT,QAAA;AACF,UAAA;AACF,QAAA;AACgB,QAAA;AAClB,MAAA;AACsB,MAAA;AACF,QAAA;AACR,QAAA;AACS,UAAA;AACnB,QAAA;AACc,MAAA;AACE,QAAA;AACA,QAAA;AACG,QAAA;AACC,QAAA;AACJ,UAAA;AACH,UAAA;AACQ,YAAA;AACnB,UAAA;AACD,QAAA;AACkB,QAAA;AACrB,MAAA;AACF,IAAA;AACyB,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACV,IAAA;AACI,MAAA;AACE,MAAA;AACN,MAAA;AACC,MAAA;AACM,MAAA;AACD,QAAA;AACN,UAAA;AACX,QAAA;AACmB,QAAA;AACN,QAAA;AACF,UAAA;AACX,QAAA;AACF,MAAA;AACa,MAAA;AACI,QAAA;AACL,UAAA;AACH,QAAA;AACG,UAAA;AACV,QAAA;AACF,MAAA;AACD,IAAA;AACoB,IAAA;AACvB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMsB,EAAA;AACG,IAAA;AACb,MAAA;AACC,MAAA;AACS,QAAA;AACD,QAAA;AACjB,MAAA;AACuB,MAAA;AACxB,IAAA;AACiB,IAAA;AACA,MAAA;AAClB,IAAA;AACqB,IAAA;AACD,IAAA;AACtB,EAAA;AACF;ADI6B;AACA;AACA;AACA","file":"/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-MZS2TO4G.cjs","sourcesContent":[null,"// src/index.ts\nimport Z from \"zod\";\nimport { localeCodeSchema } from \"@lingo.dev/spec\";\nimport { createId } from \"@paralleldrive/cuid2\";\nvar engineParamsSchema = Z.object({\n apiKey: Z.string(),\n apiUrl: Z.string().url().default(\"https://engine.lingo.dev\"),\n batchSize: Z.number().int().gt(0).lte(250).default(25),\n idealBatchItemSize: Z.number().int().gt(0).lte(2500).default(250)\n}).passthrough();\nvar payloadSchema = Z.record(Z.string(), Z.any());\nvar localizationParamsSchema = Z.object({\n sourceLocale: localeCodeSchema,\n targetLocale: localeCodeSchema,\n fast: Z.boolean().optional()\n});\nvar referenceSchema = Z.record(localeCodeSchema, payloadSchema);\nvar ReplexicaEngine = class {\n config;\n /**\n * Create a new ReplexicaEngine instance\n * @param config - Configuration options for the Engine\n */\n constructor(config) {\n this.config = engineParamsSchema.parse(config);\n }\n /**\n * Localize content using the Lingo.dev API\n * @param payload - The content to be localized\n * @param params - Localization parameters including source/target locales and fast mode option\n * @param reference - Optional reference translations to maintain consistency\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns Localized content\n * @internal\n */\n async _localizeRaw(payload, params, reference, progressCallback) {\n const finalPayload = payloadSchema.parse(payload);\n const finalParams = localizationParamsSchema.parse(params);\n const chunkedPayload = this.extractPayloadChunks(finalPayload);\n const processedPayloadChunks = [];\n const workflowId = createId();\n for (let i = 0; i < chunkedPayload.length; i++) {\n const chunk = chunkedPayload[i];\n const percentageCompleted = Math.round((i + 1) / chunkedPayload.length * 100);\n const processedPayloadChunk = await this.localizeChunk(\n finalParams.sourceLocale,\n finalParams.targetLocale,\n { data: chunk, reference },\n workflowId,\n params.fast || false\n );\n if (progressCallback) {\n progressCallback(percentageCompleted, chunk, processedPayloadChunk);\n }\n processedPayloadChunks.push(processedPayloadChunk);\n }\n return Object.assign({}, ...processedPayloadChunks);\n }\n /**\n * Localize a single chunk of content\n * @param sourceLocale - Source locale\n * @param targetLocale - Target locale\n * @param payload - Payload containing the chunk to be localized\n * @returns Localized chunk\n */\n async localizeChunk(sourceLocale, targetLocale, payload, workflowId, fast) {\n const res = await fetch(`${this.config.apiUrl}/i18n`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.config.apiKey}`\n },\n body: JSON.stringify(\n {\n params: { workflowId, fast },\n locale: {\n source: sourceLocale,\n target: targetLocale\n },\n data: payload.data,\n reference: payload.reference\n },\n null,\n 2\n )\n });\n if (!res.ok) {\n if (res.status === 400) {\n throw new Error(`Invalid request: ${res.statusText}`);\n } else {\n const errorText = await res.text();\n throw new Error(errorText);\n }\n }\n const jsonResponse = await res.json();\n return jsonResponse.data || {};\n }\n /**\n * Extract payload chunks based on the ideal chunk size\n * @param payload - The payload to be chunked\n * @returns An array of payload chunks\n */\n extractPayloadChunks(payload) {\n const result = [];\n let currentChunk = {};\n let currentChunkItemCount = 0;\n const payloadEntries = Object.entries(payload);\n for (let i = 0; i < payloadEntries.length; i++) {\n const [key, value] = payloadEntries[i];\n currentChunk[key] = value;\n currentChunkItemCount++;\n const currentChunkSize = this.countWordsInRecord(currentChunk);\n if (currentChunkSize > this.config.idealBatchItemSize || currentChunkItemCount >= this.config.batchSize || i === payloadEntries.length - 1) {\n result.push(currentChunk);\n currentChunk = {};\n currentChunkItemCount = 0;\n }\n }\n return result;\n }\n /**\n * Count words in a record or array\n * @param payload - The payload to count words in\n * @returns The total number of words\n */\n countWordsInRecord(payload) {\n if (Array.isArray(payload)) {\n return payload.reduce((acc, item) => acc + this.countWordsInRecord(item), 0);\n } else if (typeof payload === \"object\" && payload !== null) {\n return Object.values(payload).reduce((acc, item) => acc + this.countWordsInRecord(item), 0);\n } else if (typeof payload === \"string\") {\n return payload.trim().split(/\\s+/).filter(Boolean).length;\n } else {\n return 0;\n }\n }\n /**\n * Localize a typical JavaScript object\n * @param obj - The object to be localized (strings will be extracted and translated)\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster but potentially lower quality)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns A new object with the same structure but localized string values\n */\n async localizeObject(obj, params, progressCallback) {\n return this._localizeRaw(obj, params, void 0, progressCallback);\n }\n /**\n * Localize a single text string\n * @param text - The text string to be localized\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster for bigger batches)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns The localized text string\n */\n async localizeText(text, params, progressCallback) {\n const response = await this._localizeRaw({ text }, params, void 0, progressCallback);\n return response.text || \"\";\n }\n /**\n * Localize a text string to multiple target locales\n * @param text - The text string to be localized\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocales: An array of target language codes (e.g., ['es', 'fr'])\n * - fast: Optional boolean to enable fast mode (for bigger batches)\n * @returns An array of localized text strings\n */\n async batchLocalizeText(text, params) {\n const responses = await Promise.all(\n params.targetLocales.map(\n (targetLocale) => this.localizeText(text, {\n sourceLocale: params.sourceLocale,\n targetLocale,\n fast: params.fast\n })\n )\n );\n return responses;\n }\n /**\n * Localize a chat sequence while preserving speaker names\n * @param chat - Array of chat messages, each with 'name' and 'text' properties\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster but potentially lower quality)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns Array of localized chat messages with preserved structure\n */\n async localizeChat(chat, params, progressCallback) {\n const localized = await this._localizeRaw({ chat }, params, void 0, progressCallback);\n return Object.entries(localized).map(([key, value]) => ({\n name: chat[parseInt(key.split(\"_\")[1])].name,\n text: value\n }));\n }\n /**\n * Localize an HTML document while preserving structure and formatting\n * Handles both text content and localizable attributes (alt, title, placeholder, meta content)\n * @param html - The HTML document string to be localized\n * @param params - Localization parameters:\n * - sourceLocale: The source language code (e.g., 'en')\n * - targetLocale: The target language code (e.g., 'es')\n * - fast: Optional boolean to enable fast mode (faster but potentially lower quality)\n * @param progressCallback - Optional callback function to report progress (0-100)\n * @returns The localized HTML document as a string, with updated lang attribute\n */\n async localizeHtml(html, params, progressCallback) {\n const jsdomPackage = await import(\"jsdom\");\n const { JSDOM } = jsdomPackage;\n const dom = new JSDOM(html);\n const document = dom.window.document;\n const LOCALIZABLE_ATTRIBUTES = {\n meta: [\"content\"],\n img: [\"alt\"],\n input: [\"placeholder\"],\n a: [\"title\"]\n };\n const UNLOCALIZABLE_TAGS = [\"script\", \"style\"];\n const extractedContent = {};\n const getPath = (node, attribute) => {\n const indices = [];\n let current = node;\n let rootParent = \"\";\n while (current) {\n const parent = current.parentElement;\n if (!parent) break;\n if (parent === document.documentElement) {\n rootParent = current.nodeName.toLowerCase();\n break;\n }\n const siblings = Array.from(parent.childNodes).filter(\n (n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()\n );\n const index = siblings.indexOf(current);\n if (index !== -1) {\n indices.unshift(index);\n }\n current = parent;\n }\n const basePath = rootParent ? `${rootParent}/${indices.join(\"/\")}` : indices.join(\"/\");\n return attribute ? `${basePath}#${attribute}` : basePath;\n };\n const processNode = (node) => {\n let parent = node.parentElement;\n while (parent) {\n if (UNLOCALIZABLE_TAGS.includes(parent.tagName.toLowerCase())) {\n return;\n }\n parent = parent.parentElement;\n }\n if (node.nodeType === 3) {\n const text = node.textContent?.trim() || \"\";\n if (text) {\n extractedContent[getPath(node)] = text;\n }\n } else if (node.nodeType === 1) {\n const element = node;\n const tagName = element.tagName.toLowerCase();\n const attributes = LOCALIZABLE_ATTRIBUTES[tagName] || [];\n attributes.forEach((attr) => {\n const value = element.getAttribute(attr);\n if (value) {\n extractedContent[getPath(element, attr)] = value;\n }\n });\n Array.from(element.childNodes).filter((n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()).forEach(processNode);\n }\n };\n Array.from(document.head.childNodes).filter((n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()).forEach(processNode);\n Array.from(document.body.childNodes).filter((n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()).forEach(processNode);\n const localizedContent = await this._localizeRaw(extractedContent, params, void 0, progressCallback);\n document.documentElement.setAttribute(\"lang\", params.targetLocale);\n Object.entries(localizedContent).forEach(([path, value]) => {\n const [nodePath, attribute] = path.split(\"#\");\n const [rootTag, ...indices] = nodePath.split(\"/\");\n let parent = rootTag === \"head\" ? document.head : document.body;\n let current = parent;\n for (const index of indices) {\n const siblings = Array.from(parent.childNodes).filter(\n (n) => n.nodeType === 1 || n.nodeType === 3 && n.textContent?.trim()\n );\n current = siblings[parseInt(index)] || null;\n if (current?.nodeType === 1) {\n parent = current;\n }\n }\n if (current) {\n if (attribute) {\n current.setAttribute(attribute, value);\n } else {\n current.textContent = value;\n }\n }\n });\n return dom.serialize();\n }\n /**\n * Detect the language of a given text\n * @param text - The text to analyze\n * @returns Promise resolving to a locale code (e.g., 'en', 'es', 'fr')\n */\n async recognizeLocale(text) {\n const response = await fetch(`${this.config.apiUrl}/recognize`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.config.apiKey}`\n },\n body: JSON.stringify({ text })\n });\n if (!response.ok) {\n throw new Error(`Error recognizing locale: ${response.statusText}`);\n }\n const jsonResponse = await response.json();\n return jsonResponse.locale;\n }\n};\nexport {\n ReplexicaEngine\n};\n"]}
|
|
@@ -103,6 +103,8 @@ var localeMap = {
|
|
|
103
103
|
],
|
|
104
104
|
// Ukrainian (Ukraine)
|
|
105
105
|
uk: ["uk-UA"],
|
|
106
|
+
// Belarusian (Belarus)
|
|
107
|
+
be: ["be-BY"],
|
|
106
108
|
// Hindi (India)
|
|
107
109
|
hi: ["hi-IN"],
|
|
108
110
|
// Chinese
|
|
@@ -489,4 +491,4 @@ var defaultConfig = LATEST_CONFIG_DEFINITION.defaultValue;
|
|
|
489
491
|
|
|
490
492
|
|
|
491
493
|
exports.localeCodesShort = localeCodesShort; exports.localeCodesFull = localeCodesFull; exports.localeCodesFullUnderscore = localeCodesFullUnderscore; exports.localeCodesFullExplicitRegion = localeCodesFullExplicitRegion; exports.localeCodes = localeCodes; exports.localeCodeSchema = localeCodeSchema; exports.resolveLocaleCode = resolveLocaleCode; exports.getAlternativeLocaleCodes = getAlternativeLocaleCodes; exports.getLocaleCodeDelimiter = getLocaleCodeDelimiter; exports.resolveOverridenLocale = resolveOverridenLocale; exports.bucketTypes = bucketTypes; exports.bucketTypeSchema = bucketTypeSchema; exports.localeSchema = localeSchema; exports.configV0Definition = configV0Definition; exports.configV1Definition = configV1Definition; exports.configV1_1Definition = configV1_1Definition; exports.configV1_2Definition = configV1_2Definition; exports.bucketItemSchema = bucketItemSchema; exports.configV1_3Definition = configV1_3Definition; exports.parseI18nConfig = parseI18nConfig; exports.defaultConfig = defaultConfig;
|
|
492
|
-
//# sourceMappingURL=chunk-
|
|
494
|
+
//# sourceMappingURL=chunk-U3YIG2HS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-U3YIG2HS.cjs","../../spec/build/index.mjs"],"names":[],"mappings":"AAAA;ACCA,oEAAc;AAmSd;AAyBA;AA3TA,IAAI,UAAA,EAAY;AAAA;AAAA,EAEd,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,YAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,QAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA,SAAA;AAAA;AAAA,IAEA,SAAA;AAAA;AAAA,IAEA,YAAA;AAAA;AAAA,IAEA,YAAA;AAAA;AAAA,IAEA,YAAA;AAAA;AAAA,IAEA,YAAA;AAAA;AAAA,IAEA,YAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,GAAA,EAAK,CAAC,QAAQ,CAAA;AAAA;AAAA,EAEd,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI;AAAA,IACF,OAAA;AAAA;AAAA,IAEA;AAAA;AAAA,EAEF,CAAA;AAAA;AAAA,EAEA,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,GAAA,EAAK,CAAC,QAAQ,CAAA;AAAA;AAAA,EAEd,GAAA,EAAK,CAAC,QAAQ,CAAA;AAAA;AAAA,EAEd,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,GAAA,EAAK,CAAC,QAAQ,CAAA;AAAA;AAAA,EAEd,EAAA,EAAI,CAAC,OAAO,CAAA;AAAA;AAAA,EAEZ,EAAA,EAAI,CAAC,OAAO;AACd,CAAA;AACA,IAAI,iBAAA,EAAmB,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAC5C,IAAI,gBAAA,EAAkB,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA,CAAE,IAAA,CAAK,CAAA;AACpD,IAAI,0BAAA,EAA4B,eAAA,CAAgB,GAAA,CAAI,CAAC,KAAA,EAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,GAAA,EAAK,GAAG,CAAC,CAAA;AACtF,IAAI,8BAAA,EAAgC,eAAA,CAAgB,GAAA,CAAI,CAAC,KAAA,EAAA,GAAU;AACjE,EAAA,MAAM,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAC9B,EAAA,MAAM,OAAA,EAAS,CAAC,MAAA,CAAO,CAAC,CAAA,EAAG,IAAA,EAAM,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA;AACnE,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;AACD,IAAI,YAAA,EAAc;AAAA,EAChB,GAAG,gBAAA;AAAA,EACH,GAAG,eAAA;AAAA,EACH,GAAG,yBAAA;AAAA,EACH,GAAG;AACL,CAAA;AACA,IAAI,iBAAA,EAAmB,aAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO,CAAC,KAAA,EAAA,GAAU,WAAA,CAAY,QAAA,CAAS,KAAK,CAAA,EAAG;AAAA,EAC/E,OAAA,EAAS;AACX,CAAC,CAAA;AACD,IAAI,kBAAA,EAAoB,CAAC,KAAA,EAAA,GAAU;AACjC,EAAA,MAAM,uBAAA,EAAyB,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA,CAAE,IAAA,CAAK,CAAA,CAAE,QAAA,CAAS,KAAK,CAAA;AAC7E,EAAA,GAAA,CAAI,sBAAA,EAAwB;AAC1B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,wBAAA,EAA0B,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,CAAE,QAAA,CAAS,KAAK,CAAA;AACrE,EAAA,GAAA,CAAI,uBAAA,EAAyB;AAC3B,IAAA,MAAM,yBAAA,EAA2B,SAAA,CAAU,KAAK,CAAA;AAChD,IAAA,MAAM,mBAAA,EAAqB,wBAAA,CAAyB,CAAC,CAAA;AACrD,IAAA,OAAO,kBAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwB,KAAK,CAAA,CAAA;AAC/C;AAC4C;AAChB,EAAA;AACS,IAAA;AACF,EAAA;AACE,IAAA;AAC5B,EAAA;AACG,IAAA;AACV,EAAA;AACF;AACyC;AACb,EAAA;AACjB,IAAA;AACwB,EAAA;AACxB,IAAA;AACF,EAAA;AACE,IAAA;AACT,EAAA;AACF;AACsC;AACpB,EAAA;AACP,IAAA;AACT,EAAA;AACyB,EAAA;AACF,EAAA;AACd,IAAA;AACT,EAAA;AACwC,EAAA;AAC1C;AAIkB;AAChB,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACF;AAC0C;AAIb;AACnB,EAAA;AAC0B,EAAA;AACnC;AAC4C;AACH;AACM,EAAA;AAClB,EAAA;AACQ,EAAA;AACN,EAAA;AAC5B,IAAA;AACA,IAAA;AACsB,IAAA;AACgB,MAAA;AACZ,MAAA;AACJ,QAAA;AACpB,MAAA;AACsC,MAAA;AACZ,QAAA;AACL,QAAA;AACJ,QAAA;AACI,QAAA;AACqB,UAAA;AACV,YAAA;AACV,cAAA;AAChB,YAAA;AACO,YAAA;AACO,UAAA;AAClB,QAAA;AAC8B,QAAA;AAC/B,MAAA;AAC4B,MAAA;AACX,QAAA;AACG;AACrB,MAAA;AACoC,MAAA;AACF,MAAA;AAC3B,MAAA;AACT,IAAA;AACD,EAAA;AACH;AAC+B;AACC,EAAA;AAC/B;AAC+C;AACtC,EAAA;AACmB,EAAA;AACL,EAAA;AACiB,IAAA;AACvC,EAAA;AACD;AAC+C;AACL,EAAA;AAC/B,IAAA;AACwB,IAAA;AACjC,EAAA;AAC0B,EAAA;AAChB,IAAA;AACD,IAAA;AACE,MAAA;AACM,MAAA;AAChB,IAAA;AACU,IAAA;AACZ,EAAA;AACuB,EAAA;AACZ,IAAA;AACD,IAAA;AACE,MAAA;AACM,MAAA;AAChB,IAAA;AACU,IAAA;AACZ,EAAA;AACD;AAC0B;AACgB,EAAA;AAC3B,IAAA;AACV,MAAA;AACU,MAAA;AACgC,QAAA;AACA,QAAA;AACzC,MAAA;AACS,IAAA;AACb,EAAA;AAC0C,EAAA;AACtC,IAAA;AACM,IAAA;AACC,IAAA;AACZ,EAAA;AACuC,EAAA;AACd,IAAA;AAClB,MAAA;AACM,MAAA;AACC,MAAA;AACZ,IAAA;AACuB,IAAA;AACkB,MAAA;AACC,QAAA;AACC,UAAA;AACzB,YAAA;AACZ,UAAA;AACF,QAAA;AACoC,wBAAA;AACtC,MAAA;AACF,IAAA;AACO,IAAA;AACT,EAAA;AACD;AAC0B;AACgB,EAAA;AACX,IAAA;AACa,MAAA;AACxC,IAAA;AACF,EAAA;AAC0C,EAAA;AACtC,IAAA;AACM,IAAA;AACX,EAAA;AACgC,EAAA;AAC3B,IAAA;AACM,IAAA;AACX,EAAA;AACD;AACgC;AACf,EAAA;AACyB,EAAA;AAC1C;AAC0B;AACgB,EAAA;AAC3B,IAAA;AACV,MAAA;AACU,MAAA;AAC8B,QAAA;AACA,QAAA;AACvC,MAAA;AACS,IAAA;AACb,EAAA;AAC0C,EAAA;AACtC,IAAA;AACM,IAAA;AACX,EAAA;AACgC,EAAA;AAC3B,IAAA;AACM,IAAA;AACX,EAAA;AACD;AAC8B;AACK;AAC9B,EAAA;AACsC,IAAA;AACjC,IAAA;AACO,EAAA;AAC6B,IAAA;AAC7C,EAAA;AACF;AAC6C;ADHG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/lingo.dev/lingo.dev/packages/cli/build/chunk-U3YIG2HS.cjs","sourcesContent":[null,"// src/locales.ts\nimport Z from \"zod\";\nvar localeMap = {\n // Urdu (Pakistan)\n ur: [\"ur-PK\"],\n // Vietnamese (Vietnam)\n vi: [\"vi-VN\"],\n // Turkish (Turkey)\n tr: [\"tr-TR\"],\n // Tamil (India)\n ta: [\"ta-IN\"],\n // Serbian\n sr: [\n \"sr-RS\",\n // Serbian (Latin)\n \"sr-Latn-RS\",\n // Serbian (Latin)\n \"sr-Cyrl-RS\"\n // Serbian (Cyrillic)\n ],\n // Hungarian (Hungary)\n hu: [\"hu-HU\"],\n // Hebrew (Israel)\n he: [\"he-IL\"],\n // Estonian (Estonia)\n et: [\"et-EE\"],\n // Greek (Greece)\n el: [\"el-GR\"],\n // Danish (Denmark)\n da: [\"da-DK\"],\n // Azerbaijani (Azerbaijan)\n az: [\"az-AZ\"],\n // Thai (Thailand)\n th: [\"th-TH\"],\n // Swedish (Sweden)\n sv: [\"sv-SE\"],\n // English\n en: [\n \"en-US\",\n // United States\n \"en-GB\",\n // United Kingdom\n \"en-AU\",\n // Australia\n \"en-CA\"\n // Canada\n ],\n // Spanish\n es: [\n \"es-ES\",\n // Spain\n \"es-419\",\n // Latin America\n \"es-MX\",\n // Mexico\n \"es-AR\"\n // Argentina\n ],\n // French\n fr: [\n \"fr-FR\",\n // France\n \"fr-CA\",\n // Canada\n \"fr-BE\"\n // Belgium\n ],\n // Catalan (Spain)\n ca: [\"ca-ES\"],\n // Japanese (Japan)\n ja: [\"ja-JP\"],\n // German\n de: [\n \"de-DE\",\n // Germany\n \"de-AT\",\n // Austria\n \"de-CH\"\n // Switzerland\n ],\n // Portuguese\n pt: [\n \"pt-PT\",\n // Portugal\n \"pt-BR\"\n // Brazil\n ],\n // Italian\n it: [\n \"it-IT\",\n // Italy\n \"it-CH\"\n // Switzerland\n ],\n // Russian\n ru: [\n \"ru-RU\",\n // Russia\n \"ru-BY\"\n // Belarus\n ],\n // Ukrainian (Ukraine)\n uk: [\"uk-UA\"],\n // Belarusian (Belarus)\n be: [\"be-BY\"],\n // Hindi (India)\n hi: [\"hi-IN\"],\n // Chinese\n zh: [\n \"zh-CN\",\n // Simplified Chinese (China)\n \"zh-TW\",\n // Traditional Chinese (Taiwan)\n \"zh-HK\",\n // Traditional Chinese (Hong Kong)\n \"zh-Hans\",\n // Simplified Chinese\n \"zh-Hant\",\n // Traditional Chinese\n \"zh-Hant-HK\",\n // Traditional Chinese (Hong Kong)\n \"zh-Hant-TW\",\n // Traditional Chinese (Taiwan)\n \"zh-Hant-CN\",\n // Traditional Chinese (China)\n \"zh-Hans-HK\",\n // Simplified Chinese (Hong Kong)\n \"zh-Hans-TW\",\n // Simplified Chinese (China)\n \"zh-Hans-CN\"\n // Simplified Chinese (China)\n ],\n // Korean (South Korea)\n ko: [\"ko-KR\"],\n // Arabic\n ar: [\n \"ar-EG\",\n // Egypt\n \"ar-SA\",\n // Saudi Arabia\n \"ar-AE\",\n // United Arab Emirates\n \"ar-MA\"\n // Morocco\n ],\n // Bulgarian (Bulgaria)\n bg: [\"bg-BG\"],\n // Czech (Czech Republic)\n cs: [\"cs-CZ\"],\n // Dutch\n nl: [\n \"nl-NL\",\n // Netherlands\n \"nl-BE\"\n // Belgium\n ],\n // Polish (Poland)\n pl: [\"pl-PL\"],\n // Indonesian (Indonesia)\n id: [\"id-ID\"],\n // Malay (Malaysia)\n ms: [\"ms-MY\"],\n // Finnish (Finland)\n fi: [\"fi-FI\"],\n // Basque (Spain)\n eu: [\"eu-ES\"],\n // Croatian (Croatia)\n hr: [\"hr-HR\"],\n // Hebrew (Israel) - alternative code\n iw: [\"iw-IL\"],\n // Khmer (Cambodia)\n km: [\"km-KH\"],\n // Latvian (Latvia)\n lv: [\"lv-LV\"],\n // Lithuanian (Lithuania)\n lt: [\"lt-LT\"],\n // Norwegian (Norway)\n no: [\"no-NO\"],\n // Romanian (Romania)\n ro: [\"ro-RO\"],\n // Slovak (Slovakia)\n sk: [\"sk-SK\"],\n // Swahili\n sw: [\n \"sw-TZ\",\n // Tanzania\n \"sw-KE\"\n // Kenya\n ],\n // Persian (Iran)\n fa: [\"fa-IR\"],\n // Filipino (Philippines)\n fil: [\"fil-PH\"],\n // Punjabi\n pa: [\n \"pa-IN\",\n // India\n \"pa-PK\"\n // Pakistan\n ],\n // Bengali\n bn: [\n \"bn-BD\",\n // Bangladesh\n \"bn-IN\"\n // India\n ],\n // Irish (Ireland)\n ga: [\"ga-IE\"],\n // Maltese (Malta)\n mt: [\"mt-MT\"],\n // Slovenian (Slovenia)\n sl: [\"sl-SI\"],\n // Albanian (Albania)\n sq: [\"sq-AL\"],\n // Bavarian (Germany)\n bar: [\"bar-DE\"],\n // Neapolitan (Italy)\n nap: [\"nap-IT\"],\n // Afrikaans (South Africa)\n af: [\"af-ZA\"],\n // Somali (Somalia)\n so: [\"so-SO\"],\n // Tigrinya (Ethiopia)\n ti: [\"ti-ET\"],\n // Standard Moroccan Tamazight (Morocco)\n zgh: [\"zgh-MA\"],\n // Tagalog (Philippines)\n tl: [\"tl-PH\"],\n // Telugu (India)\n te: [\"te-IN\"]\n};\nvar localeCodesShort = Object.keys(localeMap);\nvar localeCodesFull = Object.values(localeMap).flat();\nvar localeCodesFullUnderscore = localeCodesFull.map((value) => value.replace(\"-\", \"_\"));\nvar localeCodesFullExplicitRegion = localeCodesFull.map((value) => {\n const chunks = value.split(\"-\");\n const result = [chunks[0], \"-r\", chunks.slice(1).join(\"-\")].join(\"\");\n return result;\n});\nvar localeCodes = [\n ...localeCodesShort,\n ...localeCodesFull,\n ...localeCodesFullUnderscore,\n ...localeCodesFullExplicitRegion\n];\nvar localeCodeSchema = Z.string().refine((value) => localeCodes.includes(value), {\n message: \"Invalid locale code\"\n});\nvar resolveLocaleCode = (value) => {\n const existingFullLocaleCode = Object.values(localeMap).flat().includes(value);\n if (existingFullLocaleCode) {\n return value;\n }\n const existingShortLocaleCode = Object.keys(localeMap).includes(value);\n if (existingShortLocaleCode) {\n const correspondingFullLocales = localeMap[value];\n const fallbackFullLocale = correspondingFullLocales[0];\n return fallbackFullLocale;\n }\n throw new Error(`Invalid locale code: ${value}`);\n};\nvar getAlternativeLocaleCodes = (locale) => {\n if (locale.includes(\"-\")) {\n return [locale.replace(/-/g, \"_\")];\n } else if (locale.includes(\"_\")) {\n return [locale.replace(/_/g, \"-\")];\n } else {\n return [];\n }\n};\nvar getLocaleCodeDelimiter = (locale) => {\n if (locale.includes(\"_\")) {\n return \"_\";\n } else if (locale.includes(\"-\")) {\n return \"-\";\n } else {\n return null;\n }\n};\nvar resolveOverridenLocale = (locale, delimiter) => {\n if (!delimiter) {\n return locale;\n }\n const currentDelimiter = getLocaleCodeDelimiter(locale);\n if (!currentDelimiter) {\n return locale;\n }\n return locale.replace(currentDelimiter, delimiter);\n};\n\n// src/formats.ts\nimport Z2 from \"zod\";\nvar bucketTypes = [\n \"android\",\n \"csv\",\n \"flutter\",\n \"html\",\n \"json\",\n \"markdown\",\n \"xcode-strings\",\n \"xcode-stringsdict\",\n \"xcode-xcstrings\",\n \"yaml\",\n \"yaml-root-key\",\n \"properties\",\n \"po\",\n \"xliff\",\n \"xml\",\n \"srt\",\n \"dato\",\n \"compiler\",\n \"vtt\"\n];\nvar bucketTypeSchema = Z2.enum(bucketTypes);\n\n// src/config.ts\nimport Z3 from \"zod\";\nvar localeSchema = Z3.object({\n source: localeCodeSchema,\n targets: Z3.array(localeCodeSchema)\n});\nvar createConfigDefinition = (definition) => definition;\nvar extendConfigDefinition = (definition, params) => {\n const schema = params.createSchema(definition.schema);\n const defaultValue = params.createDefaultValue(definition.defaultValue);\n const upgrader = (config) => params.createUpgrader(config, schema, defaultValue);\n return createConfigDefinition({\n schema,\n defaultValue,\n parse: (rawConfig) => {\n const safeResult = schema.safeParse(rawConfig);\n if (safeResult.success) {\n return safeResult.data;\n }\n const localeErrors = safeResult.error.errors.filter((issue) => issue.message.includes(\"Invalid locale code\")).map((issue) => {\n let unsupportedLocale = \"\";\n const path = issue.path;\n const config = rawConfig;\n if (config.locale) {\n unsupportedLocale = path.reduce((acc, key) => {\n if (acc && typeof acc === \"object\" && key in acc) {\n return acc[key];\n }\n return acc;\n }, config.locale);\n }\n return `Unsupported locale: ${unsupportedLocale}`;\n });\n if (localeErrors.length > 0) {\n throw new Error(`\n${localeErrors.join(\"\\n\")}`);\n }\n const baseConfig = definition.parse(rawConfig);\n const result = upgrader(baseConfig);\n return result;\n }\n });\n};\nvar configV0Schema = Z3.object({\n version: Z3.number().default(0)\n});\nvar configV0Definition = createConfigDefinition({\n schema: configV0Schema,\n defaultValue: { version: 0 },\n parse: (rawConfig) => {\n return configV0Schema.parse(rawConfig);\n }\n});\nvar configV1Definition = extendConfigDefinition(configV0Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n locale: localeSchema,\n buckets: Z3.record(Z3.string(), bucketTypeSchema).default({}).optional()\n }),\n createDefaultValue: () => ({\n version: 1,\n locale: {\n source: \"en\",\n targets: [\"es\"]\n },\n buckets: {}\n }),\n createUpgrader: () => ({\n version: 1,\n locale: {\n source: \"en\",\n targets: [\"es\"]\n },\n buckets: {}\n })\n});\nvar configV1_1Definition = extendConfigDefinition(configV1Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n buckets: Z3.record(\n bucketTypeSchema,\n Z3.object({\n include: Z3.array(Z3.string()).default([]),\n exclude: Z3.array(Z3.string()).default([]).optional()\n })\n ).default({})\n }),\n createDefaultValue: (baseDefaultValue) => ({\n ...baseDefaultValue,\n version: 1.1,\n buckets: {}\n }),\n createUpgrader: (oldConfig, schema) => {\n const upgradedConfig = {\n ...oldConfig,\n version: 1.1,\n buckets: {}\n };\n if (oldConfig.buckets) {\n for (const [bucketPath, bucketType] of Object.entries(oldConfig.buckets)) {\n if (!upgradedConfig.buckets[bucketType]) {\n upgradedConfig.buckets[bucketType] = {\n include: []\n };\n }\n upgradedConfig.buckets[bucketType]?.include.push(bucketPath);\n }\n }\n return upgradedConfig;\n }\n});\nvar configV1_2Definition = extendConfigDefinition(configV1_1Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n locale: localeSchema.extend({\n extraSource: localeCodeSchema.optional()\n })\n }),\n createDefaultValue: (baseDefaultValue) => ({\n ...baseDefaultValue,\n version: 1.2\n }),\n createUpgrader: (oldConfig) => ({\n ...oldConfig,\n version: 1.2\n })\n});\nvar bucketItemSchema = Z3.object({\n path: Z3.string(),\n delimiter: Z3.union([Z3.literal(\"-\"), Z3.literal(\"_\"), Z3.literal(null)]).optional()\n});\nvar configV1_3Definition = extendConfigDefinition(configV1_2Definition, {\n createSchema: (baseSchema) => baseSchema.extend({\n buckets: Z3.record(\n bucketTypeSchema,\n Z3.object({\n include: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).default([]),\n exclude: Z3.array(Z3.union([Z3.string(), bucketItemSchema])).default([]).optional()\n })\n ).default({})\n }),\n createDefaultValue: (baseDefaultValue) => ({\n ...baseDefaultValue,\n version: 1.3\n }),\n createUpgrader: (oldConfig) => ({\n ...oldConfig,\n version: 1.3\n })\n});\nvar LATEST_CONFIG_DEFINITION = configV1_3Definition;\nfunction parseI18nConfig(rawConfig) {\n try {\n const result = LATEST_CONFIG_DEFINITION.parse(rawConfig);\n return result;\n } catch (error) {\n throw new Error(`Failed to parse config: ${error.message}`);\n }\n}\nvar defaultConfig = LATEST_CONFIG_DEFINITION.defaultValue;\nexport {\n bucketItemSchema,\n bucketTypeSchema,\n bucketTypes,\n configV0Definition,\n configV1Definition,\n configV1_1Definition,\n configV1_2Definition,\n configV1_3Definition,\n defaultConfig,\n getAlternativeLocaleCodes,\n getLocaleCodeDelimiter,\n localeCodeSchema,\n localeCodes,\n localeCodesFull,\n localeCodesFullExplicitRegion,\n localeCodesFullUnderscore,\n localeCodesShort,\n localeSchema,\n parseI18nConfig,\n resolveLocaleCode,\n resolveOverridenLocale\n};\n"]}
|
package/build/cli.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkMZS2TO4Gcjs = require('./chunk-MZS2TO4G.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ var _chunkHODTYTE5cjs = require('./chunk-HODTYTE5.cjs');
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkU3YIG2HScjs = require('./chunk-U3YIG2HS.cjs');
|
|
14
14
|
|
|
15
15
|
// src/cli/index.ts
|
|
16
16
|
var _dotenv = require('dotenv'); var _dotenv2 = _interopRequireDefault(_dotenv);
|
|
@@ -258,7 +258,7 @@ function getConfig(resave = true) {
|
|
|
258
258
|
}
|
|
259
259
|
const fileContents = _fs2.default.readFileSync(configFilePath, "utf8");
|
|
260
260
|
const rawConfig = JSON.parse(fileContents);
|
|
261
|
-
const result =
|
|
261
|
+
const result = _chunkU3YIG2HScjs.parseI18nConfig.call(void 0, rawConfig);
|
|
262
262
|
const didConfigChange = !_lodash2.default.isEqual(rawConfig, result);
|
|
263
263
|
if (resave && didConfigChange) {
|
|
264
264
|
saveConfig(result);
|
|
@@ -297,7 +297,7 @@ Do you need support for ${value} ${option}? Type "help" and we will.`
|
|
|
297
297
|
var init_default = new (0, _interactivecommander.InteractiveCommand)().command("init").description("Initialize Lingo.dev project").helpOption("-h, --help", "Show help").addOption(new (0, _interactivecommander.InteractiveOption)("-f --force", "Overwrite existing config").prompt(void 0).default(false)).addOption(
|
|
298
298
|
new (0, _interactivecommander.InteractiveOption)("-s --source <locale>", "Source locale").argParser((value) => {
|
|
299
299
|
try {
|
|
300
|
-
|
|
300
|
+
_chunkU3YIG2HScjs.resolveLocaleCode.call(void 0, value);
|
|
301
301
|
} catch (e) {
|
|
302
302
|
throwHelpError("locale", value);
|
|
303
303
|
}
|
|
@@ -308,7 +308,7 @@ var init_default = new (0, _interactivecommander.InteractiveCommand)().command("
|
|
|
308
308
|
const values = value.includes(",") ? value.split(",") : value.split(" ");
|
|
309
309
|
values.forEach((value2) => {
|
|
310
310
|
try {
|
|
311
|
-
|
|
311
|
+
_chunkU3YIG2HScjs.resolveLocaleCode.call(void 0, value2);
|
|
312
312
|
} catch (e) {
|
|
313
313
|
throwHelpError("locale", value2);
|
|
314
314
|
}
|
|
@@ -317,7 +317,7 @@ var init_default = new (0, _interactivecommander.InteractiveCommand)().command("
|
|
|
317
317
|
}).default("es")
|
|
318
318
|
).addOption(
|
|
319
319
|
new (0, _interactivecommander.InteractiveOption)("-b, --bucket <type>", "Type of bucket").argParser((value) => {
|
|
320
|
-
if (!
|
|
320
|
+
if (!_chunkU3YIG2HScjs.bucketTypes.includes(value)) {
|
|
321
321
|
throwHelpError("bucket format", value);
|
|
322
322
|
}
|
|
323
323
|
return value;
|
|
@@ -345,7 +345,7 @@ var init_default = new (0, _interactivecommander.InteractiveCommand)().command("
|
|
|
345
345
|
spinner.fail("Lingo.dev project already initialized");
|
|
346
346
|
return process.exit(1);
|
|
347
347
|
}
|
|
348
|
-
const newConfig = _lodash2.default.cloneDeep(
|
|
348
|
+
const newConfig = _lodash2.default.cloneDeep(_chunkU3YIG2HScjs.defaultConfig);
|
|
349
349
|
newConfig.locale.source = options.source;
|
|
350
350
|
newConfig.locale.targets = options.targets;
|
|
351
351
|
newConfig.buckets = {
|
|
@@ -406,7 +406,7 @@ var init_default = new (0, _interactivecommander.InteractiveCommand)().command("
|
|
|
406
406
|
|
|
407
407
|
var config_default = new (0, _interactivecommander.Command)().command("config").description("Print out the current configuration").helpOption("-h, --help", "Show help").action(async (options) => {
|
|
408
408
|
const fileConfig = loadReplexicaFileConfig();
|
|
409
|
-
const config = _lodash2.default.merge({},
|
|
409
|
+
const config = _lodash2.default.merge({}, _chunkU3YIG2HScjs.defaultConfig, fileConfig);
|
|
410
410
|
console.log(JSON.stringify(config, null, 2));
|
|
411
411
|
});
|
|
412
412
|
function loadReplexicaFileConfig() {
|
|
@@ -433,10 +433,10 @@ var locale_default = new (0, _interactivecommander.Command)().command("locale").
|
|
|
433
433
|
docUrl: "invalidType"
|
|
434
434
|
});
|
|
435
435
|
case "sources":
|
|
436
|
-
|
|
436
|
+
_chunkU3YIG2HScjs.localeCodes.forEach((locale) => console.log(locale));
|
|
437
437
|
break;
|
|
438
438
|
case "targets":
|
|
439
|
-
|
|
439
|
+
_chunkU3YIG2HScjs.localeCodes.forEach((locale) => console.log(locale));
|
|
440
440
|
break;
|
|
441
441
|
}
|
|
442
442
|
} catch (error) {
|
|
@@ -466,7 +466,7 @@ function getBuckets(i18nConfig) {
|
|
|
466
466
|
}
|
|
467
467
|
function extractPathPatterns(sourceLocale, include, exclude) {
|
|
468
468
|
const includedPatterns = include.flatMap(
|
|
469
|
-
(pattern) => expandPlaceholderedGlob(pattern.path,
|
|
469
|
+
(pattern) => expandPlaceholderedGlob(pattern.path, _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, sourceLocale, pattern.delimiter)).map(
|
|
470
470
|
(pathPattern) => ({
|
|
471
471
|
pathPattern,
|
|
472
472
|
delimiter: pattern.delimiter
|
|
@@ -474,7 +474,7 @@ function extractPathPatterns(sourceLocale, include, exclude) {
|
|
|
474
474
|
)
|
|
475
475
|
);
|
|
476
476
|
const excludedPatterns = _optionalChain([exclude, 'optionalAccess', _31 => _31.flatMap, 'call', _32 => _32(
|
|
477
|
-
(pattern) => expandPlaceholderedGlob(pattern.path,
|
|
477
|
+
(pattern) => expandPlaceholderedGlob(pattern.path, _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, sourceLocale, pattern.delimiter)).map(
|
|
478
478
|
(pathPattern) => ({
|
|
479
479
|
pathPattern,
|
|
480
480
|
delimiter: pattern.delimiter
|
|
@@ -544,10 +544,10 @@ var files_default = new (0, _interactivecommander.Command)().command("files").de
|
|
|
544
544
|
const buckets = getBuckets(i18nConfig);
|
|
545
545
|
for (const bucket of buckets) {
|
|
546
546
|
for (const bucketConfig of bucket.config) {
|
|
547
|
-
const sourceLocale =
|
|
547
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
548
548
|
const sourcePath = bucketConfig.pathPattern.replace(/\[locale\]/g, sourceLocale);
|
|
549
549
|
const targetPaths = i18nConfig.locale.targets.map((_targetLocale) => {
|
|
550
|
-
const targetLocale =
|
|
550
|
+
const targetLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, _targetLocale, bucketConfig.delimiter);
|
|
551
551
|
return bucketConfig.pathPattern.replace(/\[locale\]/g, targetLocale);
|
|
552
552
|
});
|
|
553
553
|
const result = [];
|
|
@@ -1298,17 +1298,23 @@ async function loadPrettierConfig() {
|
|
|
1298
1298
|
var _isurl = require('is-url'); var _isurl2 = _interopRequireDefault(_isurl);
|
|
1299
1299
|
var _datefns = require('date-fns');
|
|
1300
1300
|
function createUnlocalizableLoader() {
|
|
1301
|
+
const rules = {
|
|
1302
|
+
isEmpty: (v) => _lodash2.default.isEmpty(v),
|
|
1303
|
+
isNumber: (v) => !_lodash2.default.isNaN(_lodash2.default.toNumber(v)),
|
|
1304
|
+
isBoolean: (v) => _lodash2.default.isBoolean(v),
|
|
1305
|
+
isIsoDate: (v) => _lodash2.default.isString(v) && _isIsoDate(v),
|
|
1306
|
+
isSystemId: (v) => _lodash2.default.isString(v) && _isSystemId(v),
|
|
1307
|
+
isUrl: (v) => _lodash2.default.isString(v) && _isurl2.default.call(void 0, v)
|
|
1308
|
+
};
|
|
1301
1309
|
return createLoader({
|
|
1302
1310
|
async pull(locale, input) {
|
|
1303
1311
|
const passthroughKeys = Object.entries(input).filter(([key, value]) => {
|
|
1304
|
-
|
|
1305
|
-
(
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
(v) => _lodash2.default.isString(v) && _isurl2.default.call(void 0, v)
|
|
1311
|
-
].some((fn) => fn(value));
|
|
1312
|
+
for (const [ruleName, rule] of Object.entries(rules)) {
|
|
1313
|
+
if (rule(value)) {
|
|
1314
|
+
return true;
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
return false;
|
|
1312
1318
|
}).map(([key, _19]) => key);
|
|
1313
1319
|
const result = _lodash2.default.omitBy(input, (_19, key) => passthroughKeys.includes(key));
|
|
1314
1320
|
return result;
|
|
@@ -2257,7 +2263,14 @@ ${currentIndent}]`;
|
|
|
2257
2263
|
|
|
2258
2264
|
${currentIndent}}`;
|
|
2259
2265
|
}
|
|
2260
|
-
const
|
|
2266
|
+
const sortedKeys = keys.sort((a, b) => {
|
|
2267
|
+
const aIsWhitespace = /^\s*$/.test(a);
|
|
2268
|
+
const bIsWhitespace = /^\s*$/.test(b);
|
|
2269
|
+
if (aIsWhitespace && !bIsWhitespace) return -1;
|
|
2270
|
+
if (!aIsWhitespace && bIsWhitespace) return 1;
|
|
2271
|
+
return a.localeCompare(b, void 0, { numeric: false });
|
|
2272
|
+
});
|
|
2273
|
+
const items = sortedKeys.map((key) => {
|
|
2261
2274
|
const value = data[key];
|
|
2262
2275
|
return `${nextIndent}${JSON.stringify(key)} : ${format(value, level + 1)}`;
|
|
2263
2276
|
});
|
|
@@ -2265,7 +2278,8 @@ ${currentIndent}}`;
|
|
|
2265
2278
|
${items.join(",\n")}
|
|
2266
2279
|
${currentIndent}}`;
|
|
2267
2280
|
}
|
|
2268
|
-
|
|
2281
|
+
const result = format(jsonData);
|
|
2282
|
+
return result;
|
|
2269
2283
|
}
|
|
2270
2284
|
function detectIndentation(jsonStr) {
|
|
2271
2285
|
const match = jsonStr.match(/\n(\s+)/);
|
|
@@ -2281,7 +2295,6 @@ function createPlutilJsonTextLoader() {
|
|
|
2281
2295
|
async push(locale, data, originalInput) {
|
|
2282
2296
|
const jsonData = JSON.parse(data);
|
|
2283
2297
|
const result = formatPlutilStyle(jsonData, originalInput || "");
|
|
2284
|
-
console.log(result[result.length - 1]);
|
|
2285
2298
|
return result;
|
|
2286
2299
|
}
|
|
2287
2300
|
});
|
|
@@ -2305,30 +2318,6 @@ function createNewLineLoader() {
|
|
|
2305
2318
|
});
|
|
2306
2319
|
}
|
|
2307
2320
|
|
|
2308
|
-
// src/cli/loaders/json-sorting.ts
|
|
2309
|
-
function createJsonSortingLoader() {
|
|
2310
|
-
return createLoader({
|
|
2311
|
-
async pull(locale, input) {
|
|
2312
|
-
return input;
|
|
2313
|
-
},
|
|
2314
|
-
async push(locale, data, originalInput) {
|
|
2315
|
-
return sortObjectDeep(data);
|
|
2316
|
-
}
|
|
2317
|
-
});
|
|
2318
|
-
}
|
|
2319
|
-
function sortObjectDeep(obj) {
|
|
2320
|
-
if (Array.isArray(obj)) {
|
|
2321
|
-
return obj.map(sortObjectDeep);
|
|
2322
|
-
}
|
|
2323
|
-
if (obj !== null && typeof obj === "object") {
|
|
2324
|
-
return Object.keys(obj).sort().reduce((result, key) => {
|
|
2325
|
-
result[key] = sortObjectDeep(obj[key]);
|
|
2326
|
-
return result;
|
|
2327
|
-
}, {});
|
|
2328
|
-
}
|
|
2329
|
-
return obj;
|
|
2330
|
-
}
|
|
2331
|
-
|
|
2332
2321
|
// src/cli/loaders/index.ts
|
|
2333
2322
|
function createBucketLoader(bucketType, bucketPathPattern) {
|
|
2334
2323
|
switch (bucketType) {
|
|
@@ -2421,7 +2410,6 @@ function createBucketLoader(bucketType, bucketPathPattern) {
|
|
|
2421
2410
|
createNewLineLoader(),
|
|
2422
2411
|
createPlutilJsonTextLoader(),
|
|
2423
2412
|
createJsonLoader(),
|
|
2424
|
-
createJsonSortingLoader(),
|
|
2425
2413
|
createXcodeXcstringsLoader(),
|
|
2426
2414
|
createFlatLoader(),
|
|
2427
2415
|
createSyncLoader(),
|
|
@@ -2684,7 +2672,7 @@ var i18n_default = new (0, _interactivecommander.Command)().command("i18n").desc
|
|
|
2684
2672
|
ora.start("Creating i18n.lock...");
|
|
2685
2673
|
for (const bucket of buckets) {
|
|
2686
2674
|
for (const bucketConfig of bucket.config) {
|
|
2687
|
-
const sourceLocale =
|
|
2675
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
2688
2676
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
2689
2677
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
2690
2678
|
await bucketLoader.init();
|
|
@@ -2705,7 +2693,7 @@ var i18n_default = new (0, _interactivecommander.Command)().command("i18n").desc
|
|
|
2705
2693
|
cacheOra.info(`Processing bucket: ${bucket.type}`);
|
|
2706
2694
|
for (const bucketConfig of bucket.config) {
|
|
2707
2695
|
const bucketOra = ora.info(`Processing path: ${bucketConfig.pathPattern}`);
|
|
2708
|
-
const sourceLocale =
|
|
2696
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
2709
2697
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
2710
2698
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
2711
2699
|
await bucketLoader.init();
|
|
@@ -2740,7 +2728,7 @@ var i18n_default = new (0, _interactivecommander.Command)().command("i18n").desc
|
|
|
2740
2728
|
let requiresUpdate = false;
|
|
2741
2729
|
for (const bucket of buckets) {
|
|
2742
2730
|
for (const bucketConfig of bucket.config) {
|
|
2743
|
-
const sourceLocale =
|
|
2731
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
2744
2732
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
2745
2733
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
2746
2734
|
await bucketLoader.init();
|
|
@@ -2766,13 +2754,13 @@ var i18n_default = new (0, _interactivecommander.Command)().command("i18n").desc
|
|
|
2766
2754
|
ora.info(`Processing bucket: ${bucket.type}`);
|
|
2767
2755
|
for (const bucketConfig of bucket.config) {
|
|
2768
2756
|
const bucketOra = _ora2.default.call(void 0, { indent: 2 }).info(`Processing path: ${bucketConfig.pathPattern}`);
|
|
2769
|
-
const sourceLocale =
|
|
2757
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
2770
2758
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
2771
2759
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
2772
2760
|
await bucketLoader.init();
|
|
2773
2761
|
let sourceData = await bucketLoader.pull(sourceLocale);
|
|
2774
2762
|
for (const _targetLocale of targetLocales) {
|
|
2775
|
-
const targetLocale =
|
|
2763
|
+
const targetLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, _targetLocale, bucketConfig.delimiter);
|
|
2776
2764
|
try {
|
|
2777
2765
|
bucketOra.start(`[${sourceLocale} -> ${targetLocale}] (0%) Localization in progress...`);
|
|
2778
2766
|
sourceData = await bucketLoader.pull(sourceLocale);
|
|
@@ -2897,7 +2885,7 @@ async function retryWithExponentialBackoff(operation, maxAttempts, baseDelay = 1
|
|
|
2897
2885
|
throw new Error("Unreachable code");
|
|
2898
2886
|
}
|
|
2899
2887
|
function createLocalizationEngineConnection(params) {
|
|
2900
|
-
const replexicaEngine = new (0,
|
|
2888
|
+
const replexicaEngine = new (0, _chunkMZS2TO4Gcjs.ReplexicaEngine)({
|
|
2901
2889
|
apiKey: params.apiKey,
|
|
2902
2890
|
apiUrl: params.apiUrl
|
|
2903
2891
|
});
|
|
@@ -2920,8 +2908,8 @@ function createLocalizationEngineConnection(params) {
|
|
|
2920
2908
|
function parseFlags(options) {
|
|
2921
2909
|
return _zod2.default.object({
|
|
2922
2910
|
apiKey: _zod2.default.string().optional(),
|
|
2923
|
-
locale: _zod2.default.array(
|
|
2924
|
-
bucket: _zod2.default.array(
|
|
2911
|
+
locale: _zod2.default.array(_chunkU3YIG2HScjs.localeCodeSchema).optional(),
|
|
2912
|
+
bucket: _zod2.default.array(_chunkU3YIG2HScjs.bucketTypeSchema).optional(),
|
|
2925
2913
|
force: _zod2.default.boolean().optional(),
|
|
2926
2914
|
frozen: _zod2.default.boolean().optional(),
|
|
2927
2915
|
verbose: _zod2.default.boolean().optional(),
|
|
@@ -3085,7 +3073,7 @@ var lockfile_default = new (0, _interactivecommander.Command)().command("lockfil
|
|
|
3085
3073
|
const buckets = getBuckets(i18nConfig);
|
|
3086
3074
|
for (const bucket of buckets) {
|
|
3087
3075
|
for (const bucketConfig of bucket.config) {
|
|
3088
|
-
const sourceLocale =
|
|
3076
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
3089
3077
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
3090
3078
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
3091
3079
|
const sourceData = await bucketLoader.pull(sourceLocale);
|
|
@@ -3120,14 +3108,14 @@ var cleanup_default = new (0, _interactivecommander.Command)().command("cleanup"
|
|
|
3120
3108
|
console.log();
|
|
3121
3109
|
ora.info(`Processing bucket: ${bucket.type}`);
|
|
3122
3110
|
for (const bucketConfig of bucket.config) {
|
|
3123
|
-
const sourceLocale =
|
|
3111
|
+
const sourceLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, i18nConfig.locale.source, bucketConfig.delimiter);
|
|
3124
3112
|
const bucketOra = _ora2.default.call(void 0, { indent: 2 }).info(`Processing path: ${bucketConfig.pathPattern}`);
|
|
3125
3113
|
const bucketLoader = createBucketLoader(bucket.type, bucketConfig.pathPattern);
|
|
3126
3114
|
bucketLoader.setDefaultLocale(sourceLocale);
|
|
3127
3115
|
const sourceData = await bucketLoader.pull(sourceLocale);
|
|
3128
3116
|
const sourceKeys = Object.keys(sourceData);
|
|
3129
3117
|
for (const _targetLocale of targetLocales) {
|
|
3130
|
-
const targetLocale =
|
|
3118
|
+
const targetLocale = _chunkU3YIG2HScjs.resolveOverridenLocale.call(void 0, _targetLocale, bucketConfig.delimiter);
|
|
3131
3119
|
try {
|
|
3132
3120
|
const targetData = await bucketLoader.pull(targetLocale);
|
|
3133
3121
|
const targetKeys = Object.keys(targetData);
|
|
@@ -3192,7 +3180,7 @@ function displaySummary(results) {
|
|
|
3192
3180
|
// package.json
|
|
3193
3181
|
var package_default = {
|
|
3194
3182
|
name: "lingo.dev",
|
|
3195
|
-
version: "0.
|
|
3183
|
+
version: "0.74.0",
|
|
3196
3184
|
description: "Lingo.dev CLI",
|
|
3197
3185
|
private: false,
|
|
3198
3186
|
type: "module",
|
|
@@ -3252,7 +3240,7 @@ var package_default = {
|
|
|
3252
3240
|
"gradient-string": "^3.0.0",
|
|
3253
3241
|
"gray-matter": "^4.0.3",
|
|
3254
3242
|
ini: "^5.0.0",
|
|
3255
|
-
inquirer: "^12.3.
|
|
3243
|
+
inquirer: "^12.3.2",
|
|
3256
3244
|
"interactive-commander": "^0.5.194",
|
|
3257
3245
|
"is-url": "^1.2.4",
|
|
3258
3246
|
jsdom: "^25.0.1",
|
|
@@ -3261,7 +3249,7 @@ var package_default = {
|
|
|
3261
3249
|
lodash: "^4.17.21",
|
|
3262
3250
|
"markdown-it": "^14.1.0",
|
|
3263
3251
|
"markdown-it-front-matter": "^0.2.4",
|
|
3264
|
-
marked: "^15.0.
|
|
3252
|
+
marked: "^15.0.6",
|
|
3265
3253
|
"node-webvtt": "^1.9.4",
|
|
3266
3254
|
"object-hash": "^3.0.0",
|
|
3267
3255
|
open: "^10.1.0",
|
|
@@ -3278,14 +3266,14 @@ var package_default = {
|
|
|
3278
3266
|
xml2js: "^0.6.2",
|
|
3279
3267
|
xmldom: "^0.6.0",
|
|
3280
3268
|
xpath: "^0.0.34",
|
|
3281
|
-
yaml: "^2.
|
|
3269
|
+
yaml: "^2.7.0",
|
|
3282
3270
|
zod: "^3.24.1"
|
|
3283
3271
|
},
|
|
3284
3272
|
devDependencies: {
|
|
3285
3273
|
"@lingo.dev/sdk": "workspace:*",
|
|
3286
3274
|
"@lingo.dev/spec": "workspace:*",
|
|
3287
3275
|
"@types/cors": "^2.8.17",
|
|
3288
|
-
"@types/diff": "^
|
|
3276
|
+
"@types/diff": "^7.0.0",
|
|
3289
3277
|
"@types/express": "^5.0.0",
|
|
3290
3278
|
"@types/figlet": "^1.7.0",
|
|
3291
3279
|
"@types/gettext-parser": "^4.0.4",
|