@intlayer/cli 6.1.3 → 6.1.4
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/dist/cjs/cli.cjs +1 -1
- package/dist/cjs/cli.cjs.map +1 -1
- package/dist/cjs/fill/fill.cjs +304 -0
- package/dist/cjs/fill/fill.cjs.map +1 -0
- package/dist/cjs/fill/index.cjs +5 -284
- package/dist/cjs/fill/index.cjs.map +1 -1
- package/dist/cjs/getTargetDictionary.cjs +5 -2
- package/dist/cjs/getTargetDictionary.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/cli.mjs +1 -1
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/fill/fill.mjs +304 -0
- package/dist/esm/fill/fill.mjs.map +1 -0
- package/dist/esm/fill/index.mjs +2 -303
- package/dist/esm/fill/index.mjs.map +1 -1
- package/dist/esm/getTargetDictionary.mjs +6 -3
- package/dist/esm/getTargetDictionary.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/fill/fill.d.ts +19 -0
- package/dist/types/fill/fill.d.ts.map +1 -0
- package/dist/types/fill/index.d.ts +2 -18
- package/dist/types/fill/index.d.ts.map +1 -1
- package/dist/types/getTargetDictionary.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fill/index.ts"],"sourcesContent":["import { AIOptions, getIntlayerAPIProxy } from '@intlayer/api'; // Importing only getAiAPI for now\nimport {\n formatLocale,\n formatPath,\n ListGitFilesOptions,\n mergeDictionaries,\n parallelize,\n prepareIntlayer,\n processPerLocaleDictionary,\n reduceDictionaryContent,\n writeContentDeclaration,\n} from '@intlayer/chokidar';\nimport {\n ANSIColors,\n colon,\n colorize,\n colorizeKey,\n colorizePath,\n getAppLogger,\n getConfiguration,\n Locales,\n} from '@intlayer/config';\nimport {\n type ContentNode,\n type Dictionary,\n getFilterTranslationsOnlyContent,\n getLocalisedContent,\n getMissingLocalesContent,\n} from '@intlayer/core';\nimport { getDictionaries } from '@intlayer/dictionaries-entry';\nimport { relative } from 'path';\nimport {\n ensureArray,\n GetTargetDictionaryOptions,\n getTargetUnmergedDictionaries,\n} from '../getTargetDictionary';\nimport { checkAIAccess } from '../utils/checkAccess';\nimport { autoFill } from './autoFill';\n\nconst NB_CONCURRENT_TRANSLATIONS = 8;\n\n// Arguments for the fill function\nexport type FillOptions = {\n sourceLocale?: Locales;\n outputLocales?: Locales | Locales[];\n mode?: 'complete' | 'review';\n gitOptions?: ListGitFilesOptions;\n aiOptions?: AIOptions; // Added aiOptions to be passed to translateJSON\n verbose?: boolean;\n nbConcurrentTranslations?: number;\n build?: boolean;\n} & GetTargetDictionaryOptions;\n\n/**\n * Fill translations based on the provided options.\n */\nexport const fill = async (options: FillOptions): Promise<void> => {\n const configuration = getConfiguration(options.configOptions);\n const appLogger = getAppLogger(configuration, {\n config: {\n prefix: '',\n },\n });\n\n if (options.build) {\n await prepareIntlayer(configuration);\n }\n\n const { defaultLocale, locales } = configuration.internationalization;\n const mode = options.mode ?? 'complete';\n const baseLocale = options.sourceLocale ?? defaultLocale;\n const outputLocales = (\n options.outputLocales ? ensureArray(options.outputLocales) : locales\n ).filter((locale) => locale !== baseLocale);\n\n const hasAIAccess = await checkAIAccess(configuration, options.aiOptions);\n\n if (!hasAIAccess) return;\n\n const intlayerAPI = getIntlayerAPIProxy(undefined, configuration);\n\n const targetUnmergedDictionaries =\n await getTargetUnmergedDictionaries(options);\n\n const affectedDictionaryKeys = new Set<string>();\n targetUnmergedDictionaries.forEach((dict) => {\n affectedDictionaryKeys.add(dict.key);\n });\n\n appLogger([\n 'Affected dictionary keys for processing:',\n Array.from(affectedDictionaryKeys)\n .map((key) => colorizeKey(key))\n .join(', '),\n ]);\n\n const maxKeyLength = Math.max(\n ...targetUnmergedDictionaries.map((dict) => dict.key.length)\n );\n const maxLocaleLength = Math.max(\n ...locales.map((locale) => formatLocale(locale).length)\n );\n const dictionariesRecord = getDictionaries(configuration);\n\n type TranslationTask = {\n dictionaryKey: string;\n sourceLocale: Locales;\n targetLocale: Locales;\n dictionaryPreset: string;\n localePreset: string;\n };\n\n const translationTasks: TranslationTask[] = [];\n\n for (const targetUnmergedDictionary of targetUnmergedDictionaries) {\n const dictionaryPreset = colon(\n [\n colorize(' - [', ANSIColors.GREY_DARK),\n colorizeKey(targetUnmergedDictionary.key),\n colorize(']', ANSIColors.GREY_DARK),\n ].join(''),\n { colSize: maxKeyLength + 6 }\n );\n\n const dictionaryKey = targetUnmergedDictionary.key;\n const mainDictionaryToProcess: Dictionary =\n dictionariesRecord[dictionaryKey];\n\n const sourceLocale: Locales =\n (targetUnmergedDictionary.locale as Locales) ?? baseLocale;\n\n if (!mainDictionaryToProcess) {\n appLogger(\n `${dictionaryPreset} Dictionary not found in dictionariesRecord. Skipping.`,\n {\n level: 'warn',\n }\n );\n continue;\n }\n\n if (!targetUnmergedDictionary.filePath) {\n appLogger(`${dictionaryPreset} Dictionary has no file path. Skipping.`, {\n level: 'warn',\n });\n continue;\n }\n\n const relativePath = relative(\n configuration.content.baseDir,\n targetUnmergedDictionary.filePath\n );\n\n appLogger(\n `${dictionaryPreset} Processing content declaration: ${colorizePath(relativePath)}`,\n {\n level: 'info',\n }\n );\n\n const sourceLocaleContent = getFilterTranslationsOnlyContent(\n mainDictionaryToProcess as unknown as ContentNode,\n sourceLocale,\n { dictionaryKey, keyPath: [] }\n );\n\n if (Object.keys(sourceLocaleContent).length === 0) {\n appLogger(\n `${dictionaryPreset} No content found for dictionary in source locale ${formatLocale(sourceLocale)}. Skipping translation for this dictionary.`,\n {\n level: 'warn',\n }\n );\n continue;\n }\n\n let outputLocalesList: Locales[] = outputLocales;\n\n if (mode === 'complete') {\n const missingLocales = getMissingLocalesContent(\n mainDictionaryToProcess as unknown as ContentNode,\n outputLocales,\n {\n dictionaryKey: mainDictionaryToProcess.key,\n keyPath: [],\n plugins: [],\n }\n );\n\n outputLocalesList = missingLocales;\n }\n\n if (outputLocalesList.length === 0) {\n appLogger(\n `${dictionaryPreset} No locales to fill - Skipping dictionary`,\n {\n level: 'warn',\n }\n );\n continue;\n }\n\n for (const targetLocale of outputLocalesList) {\n const localePreset = colon(\n [\n colorize('[', ANSIColors.GREY_DARK),\n formatLocale(targetLocale),\n colorize(']', ANSIColors.GREY_DARK),\n ].join(''),\n { colSize: maxLocaleLength }\n );\n\n translationTasks.push({\n dictionaryKey,\n sourceLocale,\n targetLocale,\n dictionaryPreset,\n localePreset,\n });\n }\n }\n\n const translationResults = await parallelize(\n translationTasks,\n async (task) => {\n const mainDictionaryToProcess: Dictionary =\n dictionariesRecord[task.dictionaryKey];\n\n appLogger(\n `${task.dictionaryPreset}${task.localePreset} Preparing translation for dictionary from ${formatLocale(task.sourceLocale)} to ${formatLocale(task.targetLocale)}`,\n {\n level: 'info',\n }\n );\n\n const sourceLocaleContent = getFilterTranslationsOnlyContent(\n mainDictionaryToProcess as unknown as ContentNode,\n task.sourceLocale,\n { dictionaryKey: task.dictionaryKey, keyPath: [] }\n );\n\n const presetOutputContent = getLocalisedContent(\n mainDictionaryToProcess as unknown as ContentNode,\n task.targetLocale,\n { dictionaryKey: task.dictionaryKey, keyPath: [] }\n );\n\n try {\n const translationResult = await intlayerAPI.ai.translateJSON({\n entryFileContent: sourceLocaleContent.content,\n presetOutputContent: presetOutputContent.content,\n dictionaryDescription: mainDictionaryToProcess.description ?? '',\n entryLocale: task.sourceLocale,\n outputLocale: task.targetLocale,\n mode,\n aiOptions: options.aiOptions,\n });\n\n if (!translationResult.data?.fileContent) {\n appLogger(\n `${task.dictionaryPreset}${task.localePreset} No content result`,\n {\n level: 'error',\n }\n );\n return { key: task.dictionaryKey, result: null } as const;\n }\n\n const processedPerLocaleDictionary = processPerLocaleDictionary({\n ...mainDictionaryToProcess,\n content: translationResult.data?.fileContent,\n locale: task.targetLocale,\n });\n\n return {\n key: task.dictionaryKey,\n result: processedPerLocaleDictionary,\n } as const;\n } catch (error) {\n appLogger(\n `${task.dictionaryPreset}${task.localePreset} ${colorize('Error filling', ANSIColors.RED)}: ` +\n error,\n {\n level: 'error',\n }\n );\n return { key: task.dictionaryKey, result: null } as const;\n }\n },\n options.nbConcurrentTranslations ?? NB_CONCURRENT_TRANSLATIONS\n );\n\n const resultsByDictionary = new Map<string, Dictionary[]>();\n for (const item of translationResults) {\n if (item?.result) {\n const list = resultsByDictionary.get(item.key) ?? [];\n list.push(item.result);\n resultsByDictionary.set(item.key, list);\n }\n }\n\n for (const targetUnmergedDictionary of targetUnmergedDictionaries) {\n const dictionaryKey = targetUnmergedDictionary.key;\n const mainDictionaryToProcess: Dictionary =\n dictionariesRecord[dictionaryKey];\n\n const sourceLocale: Locales =\n (targetUnmergedDictionary.locale as Locales) ?? baseLocale;\n\n if (!mainDictionaryToProcess || !targetUnmergedDictionary.filePath) {\n continue;\n }\n\n let outputLocalesList: Locales[] = outputLocales;\n\n if (mode === 'complete') {\n const missingLocales = getMissingLocalesContent(\n mainDictionaryToProcess as unknown as ContentNode,\n outputLocales,\n {\n dictionaryKey: mainDictionaryToProcess.key,\n keyPath: [],\n plugins: [],\n }\n );\n\n outputLocalesList = missingLocales;\n }\n\n if (outputLocalesList.length === 0) {\n continue;\n }\n\n const perLocaleResults = resultsByDictionary.get(dictionaryKey) ?? [];\n\n const dictionaryToMerge =\n mode === 'review'\n ? [...perLocaleResults, mainDictionaryToProcess]\n : [mainDictionaryToProcess, ...perLocaleResults];\n\n const mergedResults = mergeDictionaries(dictionaryToMerge);\n\n let formattedDict = targetUnmergedDictionary;\n\n if (formattedDict.locale) {\n const presetOutputContent = getLocalisedContent(\n mainDictionaryToProcess as unknown as ContentNode,\n formattedDict.locale,\n { dictionaryKey, keyPath: [] }\n );\n\n formattedDict = {\n ...formattedDict,\n content: presetOutputContent.content,\n };\n }\n\n const reducedResult = reduceDictionaryContent(mergedResults, formattedDict);\n\n if (formattedDict.autoFill || configuration.content.autoFill) {\n await autoFill(\n mergedResults,\n targetUnmergedDictionary,\n formattedDict.autoFill ?? configuration.content.autoFill,\n outputLocalesList,\n [sourceLocale],\n configuration\n );\n } else {\n await writeContentDeclaration(\n { ...formattedDict, content: reducedResult.content },\n configuration,\n formattedDict.filePath\n );\n\n if (formattedDict.filePath) {\n const dictionaryPreset = colon(\n [\n colorize(' - [', ANSIColors.GREY_DARK),\n colorizeKey(targetUnmergedDictionary.key),\n colorize(']', ANSIColors.GREY_DARK),\n ].join(''),\n { colSize: maxKeyLength + 6 }\n );\n appLogger(\n `${dictionaryPreset} Content declaration written to ${formatPath(formattedDict.filePath)}`,\n {\n level: 'info',\n }\n );\n }\n }\n }\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/fill/index.ts"],"sourcesContent":["export * from './autoFill';\nexport * from './fill';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { listGitFiles } from "@intlayer/chokidar";
|
|
2
2
|
import { getConfiguration } from "@intlayer/config";
|
|
3
3
|
import { getUnmergedDictionaries } from "@intlayer/unmerged-dictionaries-entry";
|
|
4
|
-
import { join } from "path";
|
|
4
|
+
import { join, relative } from "path";
|
|
5
5
|
const ensureArray = (value) => [value].flat();
|
|
6
6
|
const getTargetUnmergedDictionaries = async (options) => {
|
|
7
7
|
const configuration = getConfiguration(options.configOptions);
|
|
@@ -10,9 +10,12 @@ const getTargetUnmergedDictionaries = async (options) => {
|
|
|
10
10
|
let result = Object.values(unmergedDictionariesRecord).flat();
|
|
11
11
|
if (typeof options.file !== "undefined") {
|
|
12
12
|
const fileArray = ensureArray(options.file);
|
|
13
|
-
const
|
|
13
|
+
const relativeFilePaths = fileArray.map(
|
|
14
|
+
(file) => file.startsWith("/") ? relative(baseDir, file) : join("./", file)
|
|
15
|
+
);
|
|
14
16
|
result = result.filter(
|
|
15
|
-
(dict) => dict.filePath &&
|
|
17
|
+
(dict) => dict.filePath && // Check for absolute path
|
|
18
|
+
relativeFilePaths.includes(dict.filePath)
|
|
16
19
|
);
|
|
17
20
|
}
|
|
18
21
|
if (typeof options.keys !== "undefined") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/getTargetDictionary.ts"],"sourcesContent":["import { listGitFiles, ListGitFilesOptions } from '@intlayer/chokidar';\nimport { getConfiguration, GetConfigurationOptions } from '@intlayer/config';\nimport { Dictionary } from '@intlayer/core';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport { join } from 'path';\n\nexport const ensureArray = <T>(value: T | T[]): T[] => [value].flat() as T[];\n\n// Arguments for the fill function\nexport type GetTargetDictionaryOptions = {\n file?: string | string[];\n keys?: string | string[];\n excludedKeys?: string | string[];\n filter?: (entry: Dictionary) => boolean; // DictionaryEntry needs to be defined\n pathFilter?: string | string[];\n gitOptions?: ListGitFilesOptions;\n configOptions?: GetConfigurationOptions;\n};\n\nexport const getTargetUnmergedDictionaries = async (\n options: GetTargetDictionaryOptions\n): Promise<Dictionary[]> => {\n const configuration = getConfiguration(options.configOptions);\n\n const { baseDir } = configuration.content;\n\n const unmergedDictionariesRecord = getUnmergedDictionaries(configuration);\n let result = Object.values(unmergedDictionariesRecord).flat();\n\n // 1. if filePath not defined, list all content declaration files based on unmerged dictionaries list\n if (typeof options.file !== 'undefined') {\n const fileArray = ensureArray(options.file);\n const
|
|
1
|
+
{"version":3,"sources":["../../src/getTargetDictionary.ts"],"sourcesContent":["import { listGitFiles, ListGitFilesOptions } from '@intlayer/chokidar';\nimport { getConfiguration, GetConfigurationOptions } from '@intlayer/config';\nimport { Dictionary } from '@intlayer/core';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport { join, relative } from 'path';\n\nexport const ensureArray = <T>(value: T | T[]): T[] => [value].flat() as T[];\n\n// Arguments for the fill function\nexport type GetTargetDictionaryOptions = {\n file?: string | string[];\n keys?: string | string[];\n excludedKeys?: string | string[];\n filter?: (entry: Dictionary) => boolean; // DictionaryEntry needs to be defined\n pathFilter?: string | string[];\n gitOptions?: ListGitFilesOptions;\n configOptions?: GetConfigurationOptions;\n};\n\nexport const getTargetUnmergedDictionaries = async (\n options: GetTargetDictionaryOptions\n): Promise<Dictionary[]> => {\n const configuration = getConfiguration(options.configOptions);\n\n const { baseDir } = configuration.content;\n\n const unmergedDictionariesRecord = getUnmergedDictionaries(configuration);\n let result = Object.values(unmergedDictionariesRecord).flat();\n\n // 1. if filePath not defined, list all content declaration files based on unmerged dictionaries list\n if (typeof options.file !== 'undefined') {\n const fileArray = ensureArray(options.file);\n const relativeFilePaths = fileArray.map((file) =>\n file.startsWith('/') ? relative(baseDir, file) : join('./', file)\n );\n\n result = result.filter(\n (dict) =>\n dict.filePath &&\n // Check for absolute path\n relativeFilePaths.includes(dict.filePath)\n );\n }\n\n if (typeof options.keys !== 'undefined') {\n result = result.filter((dict) =>\n ensureArray(options.keys)?.includes(dict.key)\n );\n }\n\n if (typeof options.excludedKeys !== 'undefined') {\n result = result.filter(\n (dict) => !ensureArray(options.excludedKeys)?.includes(dict.key)\n );\n }\n\n if (typeof options.pathFilter !== 'undefined') {\n result = result.filter((dict) =>\n ensureArray(options.pathFilter)?.includes(dict.filePath ?? '')\n );\n }\n\n if (typeof options.filter !== 'undefined') {\n result = result.filter(options.filter);\n }\n\n const gitOptions = options.gitOptions;\n if (gitOptions) {\n const gitChangedFiles = await listGitFiles(gitOptions);\n\n if (gitChangedFiles) {\n // Convert dictionary file paths to be relative to git root for comparison\n\n // Filter dictionaries based on git changed files\n result = result.filter((dict) => {\n if (!dict.filePath) return false;\n\n return gitChangedFiles.some((gitFile) => dict.filePath === gitFile);\n });\n }\n }\n\n return result.filter((dict) => !dict.autoFilled);\n};\n"],"mappings":"AAAA,SAAS,oBAAyC;AAClD,SAAS,wBAAiD;AAE1D,SAAS,+BAA+B;AACxC,SAAS,MAAM,gBAAgB;AAExB,MAAM,cAAc,CAAI,UAAwB,CAAC,KAAK,EAAE,KAAK;AAa7D,MAAM,gCAAgC,OAC3C,YAC0B;AAC1B,QAAM,gBAAgB,iBAAiB,QAAQ,aAAa;AAE5D,QAAM,EAAE,QAAQ,IAAI,cAAc;AAElC,QAAM,6BAA6B,wBAAwB,aAAa;AACxE,MAAI,SAAS,OAAO,OAAO,0BAA0B,EAAE,KAAK;AAG5D,MAAI,OAAO,QAAQ,SAAS,aAAa;AACvC,UAAM,YAAY,YAAY,QAAQ,IAAI;AAC1C,UAAM,oBAAoB,UAAU;AAAA,MAAI,CAAC,SACvC,KAAK,WAAW,GAAG,IAAI,SAAS,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI;AAAA,IAClE;AAEA,aAAS,OAAO;AAAA,MACd,CAAC,SACC,KAAK;AAAA,MAEL,kBAAkB,SAAS,KAAK,QAAQ;AAAA,IAC5C;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,SAAS,aAAa;AACvC,aAAS,OAAO;AAAA,MAAO,CAAC,SACtB,YAAY,QAAQ,IAAI,GAAG,SAAS,KAAK,GAAG;AAAA,IAC9C;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,iBAAiB,aAAa;AAC/C,aAAS,OAAO;AAAA,MACd,CAAC,SAAS,CAAC,YAAY,QAAQ,YAAY,GAAG,SAAS,KAAK,GAAG;AAAA,IACjE;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,eAAe,aAAa;AAC7C,aAAS,OAAO;AAAA,MAAO,CAAC,SACtB,YAAY,QAAQ,UAAU,GAAG,SAAS,KAAK,YAAY,EAAE;AAAA,IAC/D;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,WAAW,aAAa;AACzC,aAAS,OAAO,OAAO,QAAQ,MAAM;AAAA,EACvC;AAEA,QAAM,aAAa,QAAQ;AAC3B,MAAI,YAAY;AACd,UAAM,kBAAkB,MAAM,aAAa,UAAU;AAErD,QAAI,iBAAiB;AAInB,eAAS,OAAO,OAAO,CAAC,SAAS;AAC/B,YAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,eAAO,gBAAgB,KAAK,CAAC,YAAY,KAAK,aAAa,OAAO;AAAA,MACpE,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,UAAU;AACjD;","names":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./build.mjs";
|
|
2
2
|
export * from "./cli.mjs";
|
|
3
3
|
export * from "./editor.mjs";
|
|
4
|
-
export * from "./fill/
|
|
4
|
+
export * from "./fill/fill.mjs";
|
|
5
5
|
export * from "./listContentDeclaration.mjs";
|
|
6
6
|
export * from "./liveSync.mjs";
|
|
7
7
|
export * from "./pull.mjs";
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type * from '@intlayer/chokidar';\nexport * from './build';\nexport * from './cli';\nexport * from './editor';\nexport * from './fill';\nexport * from './listContentDeclaration';\nexport * from './liveSync';\nexport * from './pull';\nexport * from './push/push';\nexport * from './pushConfig';\nexport * from './reviewDoc';\nexport * from './test';\nexport * from './translateDoc';\n"],"mappings":"AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type * from '@intlayer/chokidar';\nexport * from './build';\nexport * from './cli';\nexport * from './editor';\nexport * from './fill/fill';\nexport * from './listContentDeclaration';\nexport * from './liveSync';\nexport * from './pull';\nexport * from './push/push';\nexport * from './pushConfig';\nexport * from './reviewDoc';\nexport * from './test';\nexport * from './translateDoc';\n"],"mappings":"AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AIOptions } from '@intlayer/api';
|
|
2
|
+
import { ListGitFilesOptions } from '@intlayer/chokidar';
|
|
3
|
+
import { Locales } from '@intlayer/config';
|
|
4
|
+
import { GetTargetDictionaryOptions } from '../getTargetDictionary';
|
|
5
|
+
export type FillOptions = {
|
|
6
|
+
sourceLocale?: Locales;
|
|
7
|
+
outputLocales?: Locales | Locales[];
|
|
8
|
+
mode?: 'complete' | 'review';
|
|
9
|
+
gitOptions?: ListGitFilesOptions;
|
|
10
|
+
aiOptions?: AIOptions;
|
|
11
|
+
verbose?: boolean;
|
|
12
|
+
nbConcurrentTranslations?: number;
|
|
13
|
+
build?: boolean;
|
|
14
|
+
} & GetTargetDictionaryOptions;
|
|
15
|
+
/**
|
|
16
|
+
* Fill translations based on the provided options.
|
|
17
|
+
*/
|
|
18
|
+
export declare const fill: (options: FillOptions) => Promise<void>;
|
|
19
|
+
//# sourceMappingURL=fill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/fill/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAGL,mBAAmB,EAOpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAQL,OAAO,EACR,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EAEL,0BAA0B,EAE3B,MAAM,wBAAwB,CAAC;AAOhC,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,0BAA0B,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,IAAI,GAAU,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAiV7D,CAAC"}
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Locales } from '@intlayer/config';
|
|
4
|
-
import { GetTargetDictionaryOptions } from '../getTargetDictionary';
|
|
5
|
-
export type FillOptions = {
|
|
6
|
-
sourceLocale?: Locales;
|
|
7
|
-
outputLocales?: Locales | Locales[];
|
|
8
|
-
mode?: 'complete' | 'review';
|
|
9
|
-
gitOptions?: ListGitFilesOptions;
|
|
10
|
-
aiOptions?: AIOptions;
|
|
11
|
-
verbose?: boolean;
|
|
12
|
-
nbConcurrentTranslations?: number;
|
|
13
|
-
build?: boolean;
|
|
14
|
-
} & GetTargetDictionaryOptions;
|
|
15
|
-
/**
|
|
16
|
-
* Fill translations based on the provided options.
|
|
17
|
-
*/
|
|
18
|
-
export declare const fill: (options: FillOptions) => Promise<void>;
|
|
1
|
+
export * from './autoFill';
|
|
2
|
+
export * from './fill';
|
|
19
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fill/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fill/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTargetDictionary.d.ts","sourceRoot":"","sources":["../../src/getTargetDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAoB,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAA2B,CAAC;AAG7E,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,SAAS,0BAA0B,KAClC,OAAO,CAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"getTargetDictionary.d.ts","sourceRoot":"","sources":["../../src/getTargetDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAoB,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAA2B,CAAC;AAG7E,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,SAAS,0BAA0B,KAClC,OAAO,CAAC,UAAU,EAAE,CA8DtB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type * from '@intlayer/chokidar';
|
|
|
2
2
|
export * from './build';
|
|
3
3
|
export * from './cli';
|
|
4
4
|
export * from './editor';
|
|
5
|
-
export * from './fill';
|
|
5
|
+
export * from './fill/fill';
|
|
6
6
|
export * from './listContentDeclaration';
|
|
7
7
|
export * from './liveSync';
|
|
8
8
|
export * from './pull';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,oBAAoB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,oBAAoB,CAAC;AACxC,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/cli",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Provides uniform command-line interface scripts for Intlayer, used in packages like intlayer-cli and intlayer.",
|
|
6
6
|
"keywords": [
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"commander": "^14.0.1",
|
|
53
53
|
"eventsource": "^3.0.7",
|
|
54
54
|
"fast-glob": "^3.3.3",
|
|
55
|
-
"@intlayer/api": "6.1.
|
|
56
|
-
"@intlayer/chokidar": "6.1.
|
|
57
|
-
"@intlayer/
|
|
58
|
-
"@intlayer/dictionaries-entry": "6.1.
|
|
59
|
-
"@intlayer/
|
|
60
|
-
"@intlayer/
|
|
55
|
+
"@intlayer/api": "6.1.4",
|
|
56
|
+
"@intlayer/chokidar": "6.1.4",
|
|
57
|
+
"@intlayer/remote-dictionaries-entry": "6.1.4",
|
|
58
|
+
"@intlayer/dictionaries-entry": "6.1.4",
|
|
59
|
+
"@intlayer/unmerged-dictionaries-entry": "6.1.4",
|
|
60
|
+
"@intlayer/config": "6.1.4"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/node": "^24.5.2",
|
|
@@ -70,19 +70,19 @@
|
|
|
70
70
|
"tsup": "^8.5.0",
|
|
71
71
|
"typescript": "^5.9.2",
|
|
72
72
|
"vitest": "^3.2.4",
|
|
73
|
-
"@intlayer/core": "6.1.
|
|
73
|
+
"@intlayer/core": "6.1.4",
|
|
74
74
|
"@utils/eslint-config": "1.0.4",
|
|
75
75
|
"@utils/ts-config": "1.0.4",
|
|
76
76
|
"@utils/ts-config-types": "1.0.4",
|
|
77
77
|
"@utils/tsup-config": "1.0.4"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
|
-
"@intlayer/api": "6.1.
|
|
81
|
-
"@intlayer/chokidar": "6.1.
|
|
82
|
-
"@intlayer/dictionaries-entry": "6.1.
|
|
83
|
-
"@intlayer/remote-dictionaries-entry": "6.1.
|
|
84
|
-
"@intlayer/unmerged-dictionaries-entry": "6.1.
|
|
85
|
-
"@intlayer/config": "6.1.
|
|
80
|
+
"@intlayer/api": "6.1.4",
|
|
81
|
+
"@intlayer/chokidar": "6.1.4",
|
|
82
|
+
"@intlayer/dictionaries-entry": "6.1.4",
|
|
83
|
+
"@intlayer/remote-dictionaries-entry": "6.1.4",
|
|
84
|
+
"@intlayer/unmerged-dictionaries-entry": "6.1.4",
|
|
85
|
+
"@intlayer/config": "6.1.4"
|
|
86
86
|
},
|
|
87
87
|
"bug": {
|
|
88
88
|
"url": "https://github.com/aymericzip/intlayer/issues"
|