@intlayer/chokidar 8.3.3 → 8.4.0-canary.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/dist/cjs/buildIntlayerDictionary/buildIntlayerDictionary.cjs +1 -1
- package/dist/cjs/buildIntlayerDictionary/buildIntlayerDictionary.cjs.map +1 -1
- package/dist/cjs/buildIntlayerDictionary/writeUnmergedDictionary.cjs +1 -1
- package/dist/cjs/buildIntlayerDictionary/writeUnmergedDictionary.cjs.map +1 -1
- package/dist/cjs/filterInvalidDictionaries.cjs +1 -1
- package/dist/cjs/filterInvalidDictionaries.cjs.map +1 -1
- package/dist/cjs/prepareIntlayer.cjs +1 -1
- package/dist/cjs/prepareIntlayer.cjs.map +1 -1
- package/dist/cjs/utils/runParallel/index.cjs +1 -1
- package/dist/cjs/utils/runParallel/index.cjs.map +1 -1
- package/dist/esm/buildIntlayerDictionary/buildIntlayerDictionary.mjs +1 -1
- package/dist/esm/buildIntlayerDictionary/buildIntlayerDictionary.mjs.map +1 -1
- package/dist/esm/buildIntlayerDictionary/writeUnmergedDictionary.mjs +1 -1
- package/dist/esm/buildIntlayerDictionary/writeUnmergedDictionary.mjs.map +1 -1
- package/dist/esm/filterInvalidDictionaries.mjs +1 -1
- package/dist/esm/filterInvalidDictionaries.mjs.map +1 -1
- package/dist/esm/prepareIntlayer.mjs +1 -1
- package/dist/esm/prepareIntlayer.mjs.map +1 -1
- package/dist/esm/utils/runParallel/index.mjs +1 -1
- package/dist/esm/utils/runParallel/index.mjs.map +1 -1
- package/dist/types/build.d.ts +2 -2
- package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts +7 -2
- package/dist/types/buildIntlayerDictionary/buildIntlayerDictionary.d.ts.map +1 -1
- package/dist/types/buildIntlayerDictionary/index.d.ts +2 -2
- package/dist/types/buildIntlayerDictionary/writeUnmergedDictionary.d.ts +1 -1
- package/dist/types/buildIntlayerDictionary/writeUnmergedDictionary.d.ts.map +1 -1
- package/dist/types/prepareIntlayer.d.ts +1 -0
- package/dist/types/prepareIntlayer.d.ts.map +1 -1
- package/package.json +9 -9
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./writeDynamicDictionary.cjs`),t=require(`./writeFetchDictionary.cjs`),n=require(`./writeMergedDictionary.cjs`),r=require(`./writeUnmergedDictionary.cjs`);let i=require(`@intlayer/config/client`),a=require(`@intlayer/unmerged-dictionaries-entry`),o=require(`@intlayer/config/node`);const s=async(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`./writeDynamicDictionary.cjs`),t=require(`./writeFetchDictionary.cjs`),n=require(`./writeMergedDictionary.cjs`),r=require(`./writeUnmergedDictionary.cjs`);let i=require(`@intlayer/config/client`),a=require(`@intlayer/unmerged-dictionaries-entry`),o=require(`@intlayer/config/node`);const s={formats:[`cjs`,`esm`],importOtherDictionaries:!0,env:`dev`},c=async(c,l=(0,o.getConfiguration)(),u)=>{let d=l?.build?.importMode??l?.dictionary?.importMode??i.DefaultValues.Dictionary.IMPORT_MODE,{importOtherDictionaries:f,env:p,formats:m}={...s,...u},h=[...c];if(f){let e=(0,a.getUnmergedDictionaries)(l);for(let t of c){let n=e[t.key];if(n?.length>0){let e=n.filter(e=>e.localId!==t.localId);h.push(...e)}}}let g=await r.writeUnmergedDictionaries(h,l,p),_=await n.writeMergedDictionaries(g,l),v={},y=new Set;for(let[e,t]of Object.entries(_)){let n=t.dictionary.importMode??d;(n===`dynamic`||n===`fetch`)&&(v[e]=t),n===`fetch`&&y.add(e)}let b=null;Object.keys(v).length>0&&(b=await e.writeDynamicDictionary(v,l,m));let x=null;if(b&&y.size>0){let e={};for(let t of y)b[t]&&(e[t]=b[t]);Object.keys(e).length>0&&(x=await t.writeFetchDictionary(e,l,m))}return{unmergedDictionaries:g,mergedDictionaries:_,dynamicDictionaries:b,fetchDictionaries:x}};exports.buildDictionary=c;
|
|
2
2
|
//# sourceMappingURL=buildIntlayerDictionary.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildIntlayerDictionary.cjs","names":["DefaultValues","writeUnmergedDictionaries","writeMergedDictionaries","writeDynamicDictionary","writeFetchDictionary"],"sources":["../../../src/buildIntlayerDictionary/buildIntlayerDictionary.ts"],"sourcesContent":["import { DefaultValues } from '@intlayer/config/client';\nimport { getConfiguration } from '@intlayer/config/node';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport {\n type LocalizedDictionaryOutput,\n writeDynamicDictionary,\n} from './writeDynamicDictionary';\nimport { writeFetchDictionary } from './writeFetchDictionary';\nimport { writeMergedDictionaries } from './writeMergedDictionary';\nimport { writeUnmergedDictionaries } from './writeUnmergedDictionary';\n\n/**\n * This function transpile the bundled code to to make dictionaries as JSON files\n */\nexport const buildDictionary = async (\n localDictionariesEntries: Dictionary[],\n configuration = getConfiguration(),\n
|
|
1
|
+
{"version":3,"file":"buildIntlayerDictionary.cjs","names":["DefaultValues","writeUnmergedDictionaries","writeMergedDictionaries","writeDynamicDictionary","writeFetchDictionary"],"sources":["../../../src/buildIntlayerDictionary/buildIntlayerDictionary.ts"],"sourcesContent":["import { DefaultValues } from '@intlayer/config/client';\nimport { getConfiguration } from '@intlayer/config/node';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport {\n type LocalizedDictionaryOutput,\n writeDynamicDictionary,\n} from './writeDynamicDictionary';\nimport { writeFetchDictionary } from './writeFetchDictionary';\nimport { writeMergedDictionaries } from './writeMergedDictionary';\nimport { writeUnmergedDictionaries } from './writeUnmergedDictionary';\n\nexport type BuildDictionariesOptions = Partial<{\n formats: ('cjs' | 'esm')[];\n importOtherDictionaries: boolean;\n env: 'prod' | 'dev';\n}>;\n\nconst defaultOptions = {\n formats: ['cjs', 'esm'],\n importOtherDictionaries: true,\n env: 'dev',\n} as const satisfies BuildDictionariesOptions;\n\n/**\n * This function transpile the bundled code to to make dictionaries as JSON files\n */\nexport const buildDictionary = async (\n localDictionariesEntries: Dictionary[],\n configuration = getConfiguration(),\n options?: BuildDictionariesOptions\n) => {\n const importMode =\n configuration?.build?.importMode ??\n configuration?.dictionary?.importMode ??\n DefaultValues.Dictionary.IMPORT_MODE;\n\n const { importOtherDictionaries, env, formats } = {\n ...defaultOptions,\n ...options,\n };\n\n const unmergedDictionariesToUpdate: Dictionary[] = [\n ...localDictionariesEntries,\n ];\n\n if (importOtherDictionaries) {\n const prevUnmergedDictionaries: Record<string, Dictionary[]> =\n getUnmergedDictionaries(configuration);\n\n // Reinsert other dictionaries with the same key to avoid merging errors\n for (const dictionaryToWrite of localDictionariesEntries) {\n const allPrebuiltUnmergedDictionaries =\n prevUnmergedDictionaries[dictionaryToWrite.key];\n\n if (allPrebuiltUnmergedDictionaries?.length > 0) {\n // Do not add the same dictionary again by filtering out the one with the same localId\n const otherUnmergedDictionaries =\n allPrebuiltUnmergedDictionaries.filter(\n (unmergedDictionary) =>\n unmergedDictionary.localId !== dictionaryToWrite.localId\n );\n\n unmergedDictionariesToUpdate.push(...otherUnmergedDictionaries);\n }\n }\n }\n\n const unmergedDictionaries = await writeUnmergedDictionaries(\n unmergedDictionariesToUpdate,\n configuration,\n env\n );\n\n const mergedDictionaries = await writeMergedDictionaries(\n unmergedDictionaries,\n configuration\n );\n\n const dictionariesToBuildDynamic: typeof mergedDictionaries = {};\n const keysToBuildFetch = new Set<string>();\n\n for (const [key, mergedResult] of Object.entries(mergedDictionaries)) {\n const dictionary = mergedResult.dictionary;\n const mode = dictionary.importMode ?? importMode;\n\n if (mode === 'dynamic' || mode === 'fetch') {\n dictionariesToBuildDynamic[key] = mergedResult;\n }\n\n if (mode === 'fetch') {\n keysToBuildFetch.add(key);\n }\n }\n\n let dynamicDictionaries: LocalizedDictionaryOutput | null = null;\n\n if (Object.keys(dictionariesToBuildDynamic).length > 0) {\n dynamicDictionaries = await writeDynamicDictionary(\n dictionariesToBuildDynamic,\n configuration,\n formats\n );\n }\n\n let fetchDictionaries: LocalizedDictionaryOutput | null = null;\n\n if (dynamicDictionaries && keysToBuildFetch.size > 0) {\n const dictionariesToBuildFetch: LocalizedDictionaryOutput = {};\n\n for (const key of keysToBuildFetch) {\n if (dynamicDictionaries[key]) {\n dictionariesToBuildFetch[key] = dynamicDictionaries[key];\n }\n }\n\n if (Object.keys(dictionariesToBuildFetch).length > 0) {\n fetchDictionaries = await writeFetchDictionary(\n dictionariesToBuildFetch,\n configuration,\n formats\n );\n }\n }\n\n return {\n unmergedDictionaries,\n mergedDictionaries,\n dynamicDictionaries,\n fetchDictionaries,\n };\n};\n"],"mappings":"2ZAkBA,MAAM,EAAiB,CACrB,QAAS,CAAC,MAAO,MAAM,CACvB,wBAAyB,GACzB,IAAK,MACN,CAKY,EAAkB,MAC7B,EACA,GAAA,EAAA,EAAA,mBAAkC,CAClC,IACG,CACH,IAAM,EACJ,GAAe,OAAO,YACtB,GAAe,YAAY,YAC3BA,EAAAA,cAAc,WAAW,YAErB,CAAE,0BAAyB,MAAK,WAAY,CAChD,GAAG,EACH,GAAG,EACJ,CAEK,EAA6C,CACjD,GAAG,EACJ,CAED,GAAI,EAAyB,CAC3B,IAAM,GAAA,EAAA,EAAA,yBACoB,EAAc,CAGxC,IAAK,IAAM,KAAqB,EAA0B,CACxD,IAAM,EACJ,EAAyB,EAAkB,KAE7C,GAAI,GAAiC,OAAS,EAAG,CAE/C,IAAM,EACJ,EAAgC,OAC7B,GACC,EAAmB,UAAY,EAAkB,QACpD,CAEH,EAA6B,KAAK,GAAG,EAA0B,GAKrE,IAAM,EAAuB,MAAMC,EAAAA,0BACjC,EACA,EACA,EACD,CAEK,EAAqB,MAAMC,EAAAA,wBAC/B,EACA,EACD,CAEK,EAAwD,EAAE,CAC1D,EAAmB,IAAI,IAE7B,IAAK,GAAM,CAAC,EAAK,KAAiB,OAAO,QAAQ,EAAmB,CAAE,CAEpE,IAAM,EADa,EAAa,WACR,YAAc,GAElC,IAAS,WAAa,IAAS,WACjC,EAA2B,GAAO,GAGhC,IAAS,SACX,EAAiB,IAAI,EAAI,CAI7B,IAAI,EAAwD,KAExD,OAAO,KAAK,EAA2B,CAAC,OAAS,IACnD,EAAsB,MAAMC,EAAAA,uBAC1B,EACA,EACA,EACD,EAGH,IAAI,EAAsD,KAE1D,GAAI,GAAuB,EAAiB,KAAO,EAAG,CACpD,IAAM,EAAsD,EAAE,CAE9D,IAAK,IAAM,KAAO,EACZ,EAAoB,KACtB,EAAyB,GAAO,EAAoB,IAIpD,OAAO,KAAK,EAAyB,CAAC,OAAS,IACjD,EAAoB,MAAMC,EAAAA,qBACxB,EACA,EACA,EACD,EAIL,MAAO,CACL,uBACA,qBACA,sBACA,oBACD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/parallelize.cjs`),t=require(`../writeJsonIfChanged.cjs`),n=require(`../filterInvalidDictionaries.cjs`);let r=require(`node:fs/promises`),i=require(`node:path`),a=require(`@intlayer/config/logger`),o=require(`@intlayer/core/dictionaryManipulator`);const s=e=>e.reduce((e,t)=>{let n=t.key;return e[n]||(e[n]=[]),e[n].push(t),e},{}),c=async(c,l)=>{let{unmergedDictionariesDir:
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/parallelize.cjs`),t=require(`../writeJsonIfChanged.cjs`),n=require(`../filterInvalidDictionaries.cjs`);let r=require(`node:fs/promises`),i=require(`node:path`),a=require(`@intlayer/config/logger`),o=require(`@intlayer/core/dictionaryManipulator`);const s=e=>e.reduce((e,t)=>{let n=t.key;return e[n]||(e[n]=[]),e[n].push(t),e},{}),c=async(c,l,u)=>{let{unmergedDictionariesDir:d}=l.system;await(0,r.mkdir)((0,i.resolve)(d),{recursive:!0});let f=s(n.filterInvalidDictionaries(c,l,{checkSchema:!0})),p=await e.parallelize(Object.entries(f),async([e,n])=>{if(e===`undefined`)return;let r=(0,o.orderDictionaries)(n,l),s=(0,i.resolve)(d,`${e}.json`);return(l.editor.enabled||u===`dev`)&&await t.writeJsonIfChanged(s,r).catch(e=>{console.error(`${a.x} Error creating unmerged ${(0,a.colorizePath)(s)}:`,e)}),[e,{dictionaryPath:s,dictionaries:n}]});return Object.fromEntries(p.filter(Boolean))};exports.groupDictionariesByKey=s,exports.writeUnmergedDictionaries=c;
|
|
2
2
|
//# sourceMappingURL=writeUnmergedDictionary.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeUnmergedDictionary.cjs","names":["filterInvalidDictionaries","parallelize","writeJsonIfChanged","x"],"sources":["../../../src/buildIntlayerDictionary/writeUnmergedDictionary.ts"],"sourcesContent":["import { mkdir } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { colorizePath, x } from '@intlayer/config/logger';\nimport { orderDictionaries } from '@intlayer/core/dictionaryManipulator';\nimport type {
|
|
1
|
+
{"version":3,"file":"writeUnmergedDictionary.cjs","names":["filterInvalidDictionaries","parallelize","writeJsonIfChanged","x"],"sources":["../../../src/buildIntlayerDictionary/writeUnmergedDictionary.ts"],"sourcesContent":["import { mkdir } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { colorizePath, x } from '@intlayer/config/logger';\nimport { orderDictionaries } from '@intlayer/core/dictionaryManipulator';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { Dictionary, DictionaryKey } from '@intlayer/types/dictionary';\nimport { filterInvalidDictionaries } from '../filterInvalidDictionaries';\nimport { parallelize } from '../utils/parallelize';\nimport { writeJsonIfChanged } from '../writeJsonIfChanged';\n\nexport const groupDictionariesByKey = (\n dictionaries: Dictionary[]\n): Record<string, Dictionary[]> =>\n dictionaries.reduce(\n (acc, dictionary) => {\n const key = dictionary.key;\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(dictionary);\n return acc;\n },\n {} as Record<string, Dictionary[]>\n );\n\nexport type UnmergedDictionaryResult = {\n dictionaryPath: string;\n dictionaries: Dictionary[];\n};\n\nexport type UnmergedDictionaryOutput = Record<\n DictionaryKey,\n UnmergedDictionaryResult\n>;\n\n/**\n * Write the unmerged dictionaries to the unmergedDictionariesDir\n * @param dictionaries - The dictionaries to write\n * @param configuration - The configuration\n * @returns The grouped dictionaries\n *\n * @example\n * ```ts\n * const unmergedDictionaries = await writeUnmergedDictionaries(dictionaries);\n * console.log(unmergedDictionaries);\n *\n * // .intlayer/unmerged_dictionaries/home.json\n * // {\n * // [\n * // { key: 'home', content: { ... } },\n * // { key: 'home', content: { ... } },\n * // ],\n * // }\n * ```\n */\nexport const writeUnmergedDictionaries = async (\n dictionaries: Dictionary[],\n configuration: IntlayerConfig,\n env: 'prod' | 'dev'\n): Promise<UnmergedDictionaryOutput> => {\n const { unmergedDictionariesDir } = configuration.system;\n\n // Create the dictionaries folder if it doesn't exist\n await mkdir(resolve(unmergedDictionariesDir), { recursive: true });\n\n const filteredDictionaries = filterInvalidDictionaries(\n dictionaries,\n configuration,\n { checkSchema: true }\n );\n\n // Group dictionaries by key and write to unmergedDictionariesDir\n const groupedDictionaries = groupDictionariesByKey(filteredDictionaries);\n\n const results = await parallelize(\n Object.entries(groupedDictionaries),\n async ([key, dictionaries]) => {\n if (key === 'undefined') {\n return undefined as unknown as readonly [\n string,\n UnmergedDictionaryResult,\n ];\n }\n\n const orderedDictionaries = orderDictionaries(\n dictionaries,\n configuration\n );\n\n const outputFileName = `${key}.json`;\n const unmergedFilePath = resolve(unmergedDictionariesDir, outputFileName);\n\n // Write the grouped dictionaries in disk if the editor is enabled\n // To make work the visual editor on the server\n // No need them if the editor is disabled\n // But in local env (env: 'dev') we write them for the vscode extension\n if (configuration.editor.enabled || env === 'dev') {\n await writeJsonIfChanged(unmergedFilePath, orderedDictionaries).catch(\n (err) => {\n console.error(\n `${x} Error creating unmerged ${colorizePath(unmergedFilePath)}:`,\n err\n );\n }\n );\n }\n\n return [\n key,\n {\n dictionaryPath: unmergedFilePath,\n dictionaries: dictionaries,\n } as UnmergedDictionaryResult,\n ] as const;\n }\n );\n\n return Object.fromEntries(\n results.filter(Boolean) as Array<\n readonly [string, UnmergedDictionaryResult]\n >\n );\n};\n"],"mappings":"iYAUA,MAAa,EACX,GAEA,EAAa,QACV,EAAK,IAAe,CACnB,IAAM,EAAM,EAAW,IAKvB,OAJK,EAAI,KACP,EAAI,GAAO,EAAE,EAEf,EAAI,GAAK,KAAK,EAAW,CAClB,GAET,EAAE,CACH,CAgCU,EAA4B,MACvC,EACA,EACA,IACsC,CACtC,GAAM,CAAE,2BAA4B,EAAc,OAGlD,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,SAAoB,EAAwB,CAAE,CAAE,UAAW,GAAM,CAAC,CASlE,IAAM,EAAsB,EAPCA,EAAAA,0BAC3B,EACA,EACA,CAAE,YAAa,GAAM,CACtB,CAGuE,CAElE,EAAU,MAAMC,EAAAA,YACpB,OAAO,QAAQ,EAAoB,CACnC,MAAO,CAAC,EAAK,KAAkB,CAC7B,GAAI,IAAQ,YACV,OAMF,IAAM,GAAA,EAAA,EAAA,mBACJ,EACA,EACD,CAGK,GAAA,EAAA,EAAA,SAA2B,EADV,GAAG,EAAI,OAC2C,CAiBzE,OAXI,EAAc,OAAO,SAAW,IAAQ,QAC1C,MAAMC,EAAAA,mBAAmB,EAAkB,EAAoB,CAAC,MAC7D,GAAQ,CACP,QAAQ,MACN,GAAGC,EAAAA,EAAE,4BAAA,EAAA,EAAA,cAAwC,EAAiB,CAAC,GAC/D,EACD,EAEJ,CAGI,CACL,EACA,CACE,eAAgB,EACF,eACf,CACF,EAEJ,CAED,OAAO,OAAO,YACZ,EAAQ,OAAO,QAAQ,CAGxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/formatter.cjs`);let t=require(`@intlayer/config/logger`),n=require(`@intlayer/core/interpreter`);const r=(r,i,a)=>{let o=(0,t.getAppLogger)(i);if(!r)return!1;let s=r.location===`local`||typeof r.filePath==`string`?`Local`:`Remote`,c=!!r.key,l=!!r.content;if(!c)return o(`${s} dictionary has no key`,{level:`error`}),!1;if(!l)return o(`${s} dictionary ${(0,t.colorizeKey)(r.key)} has no content - ${r.filePath?e.formatPath(r.filePath):(0,t.colorizePath)(`Remote`)}`,{level:`error`}),!1;if(r.schema&&a?.checkSchema&&!(typeof r.content==`function`||typeof r.content==`object`&&r.content!==null&&typeof r.content.then==`function`)){let a=i?.internationalization?.locales??[],c=i?.internationalization.strictMode===`strict`,l=typeof r.schema==`string`?i?.schemas?.[r.schema]:void 0;if(l&&typeof l.safeParse==`function`)for(let i of a){let a=(0,n.getContent)(r.content,{dictionaryKey:r.key,keyPath:[]},i,!c),u=l.safeParse(a);if(!u.success)return o(`${s} dictionary ${(0,t.colorizeKey)(r.key)} has invalid content according to schema ${(0,t.colorize)(r.schema,t.ANSIColors.ORANGE)} for locale ${e.formatLocale(i)} - ${r.filePath?e.formatPath(r.filePath):(0,t.colorizePath)(`Remote`)}`,{level:`error`}),u.error.issues.forEach(n=>{o(`${t.x} Error: ${(0,t.colorizeKey)(r.key)} - ${e.formatLocale(i)} - ${(0,t.colorize)(`${n.path.join(`.`)}:`,t.ANSIColors.BLUE)} ${(0,t.colorize)(n.message,t.ANSIColors.GREY)}`,{level:`error`})}),!1}}return!0},i=(e,t,n)=>(e??[])?.filter(e=>r(e,t,n));exports.filterInvalidDictionaries=i,exports.isInvalidDictionary=r;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/formatter.cjs`);let t=require(`@intlayer/config/logger`),n=require(`@intlayer/core/interpreter`);const r=(r,i,a)=>{let o=(0,t.getAppLogger)(i);if(!r)return!1;let s=r.location===`local`||typeof r.filePath==`string`?`Local`:`Remote`,c=!!r.key,l=!!r.content;if(!c)return o(`${s} dictionary has no key`,{level:`error`}),!1;if(!l)return o(`${s} dictionary ${(0,t.colorizeKey)(r.key)} has no content - ${r.filePath?e.formatPath(r.filePath):(0,t.colorizePath)(`Remote`)}`,{level:`error`}),!1;if(r.schema&&a?.checkSchema&&!(typeof r.content==`function`||typeof r.content==`object`&&r.content!==null&&typeof r.content.then==`function`)){let a=i?.internationalization?.locales??[],c=i?.internationalization.strictMode===`strict`,l=typeof r.schema==`string`?i?.schemas?.[r.schema]:void 0;if(l&&typeof l.safeParse==`function`)for(let i of a){let a=(0,n.getContent)(r.content,{dictionaryKey:r.key,keyPath:[],locale:i},(0,n.getBasePlugins)(i,!c)),u=l.safeParse(a);if(!u.success)return o(`${s} dictionary ${(0,t.colorizeKey)(r.key)} has invalid content according to schema ${(0,t.colorize)(r.schema,t.ANSIColors.ORANGE)} for locale ${e.formatLocale(i)} - ${r.filePath?e.formatPath(r.filePath):(0,t.colorizePath)(`Remote`)}`,{level:`error`}),u.error.issues.forEach(n=>{o(`${t.x} Error: ${(0,t.colorizeKey)(r.key)} - ${e.formatLocale(i)} - ${(0,t.colorize)(`${n.path.join(`.`)}:`,t.ANSIColors.BLUE)} ${(0,t.colorize)(n.message,t.ANSIColors.GREY)}`,{level:`error`})}),!1}}return!0},i=(e,t,n)=>(e??[])?.filter(e=>r(e,t,n));exports.filterInvalidDictionaries=i,exports.isInvalidDictionary=r;
|
|
2
2
|
//# sourceMappingURL=filterInvalidDictionaries.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterInvalidDictionaries.cjs","names":["formatPath","ANSIColors","formatLocale","x"],"sources":["../../src/filterInvalidDictionaries.ts"],"sourcesContent":["import {\n ANSIColors,\n colorize,\n colorizeKey,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport { getContent } from '@intlayer/core/interpreter';\nimport type {
|
|
1
|
+
{"version":3,"file":"filterInvalidDictionaries.cjs","names":["formatPath","ANSIColors","formatLocale","x"],"sources":["../../src/filterInvalidDictionaries.ts"],"sourcesContent":["import {\n ANSIColors,\n colorize,\n colorizeKey,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport { getBasePlugins, getContent } from '@intlayer/core/interpreter';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { formatLocale, formatPath } from './utils/formatter';\n\ntype IsInvalidDictionaryOptions = { checkSchema: boolean };\n\nexport const isInvalidDictionary = (\n dictionary: Dictionary | undefined,\n configuration?: IntlayerConfig,\n options?: IsInvalidDictionaryOptions\n): boolean => {\n const appLogger = getAppLogger(configuration);\n\n if (!dictionary) return false;\n\n const isLocal = Boolean(\n dictionary.location === 'local' || typeof dictionary.filePath === 'string'\n );\n const location = isLocal ? 'Local' : 'Remote';\n const hasKey = Boolean(dictionary.key);\n const hasContent = Boolean(dictionary.content);\n\n if (!hasKey) {\n appLogger(`${location} dictionary has no key`, {\n level: 'error',\n });\n\n return false;\n }\n\n if (!hasContent) {\n appLogger(\n `${location} dictionary ${colorizeKey(dictionary.key)} has no content - ${dictionary.filePath ? formatPath(dictionary.filePath) : colorizePath('Remote')}`,\n {\n level: 'error',\n }\n );\n return false;\n }\n\n if (dictionary.schema && options?.checkSchema) {\n const isAsync =\n typeof dictionary.content === 'function' ||\n (typeof dictionary.content === 'object' &&\n dictionary.content !== null &&\n typeof (dictionary.content as any).then === 'function');\n\n if (!isAsync) {\n const locales = configuration?.internationalization?.locales ?? [];\n const isStrict =\n configuration?.internationalization.strictMode === 'strict';\n\n const schema =\n typeof dictionary.schema === 'string'\n ? configuration?.schemas?.[dictionary.schema]\n : undefined;\n\n if (schema && typeof schema.safeParse === 'function') {\n for (const locale of locales) {\n const resolvedContent = getContent(\n dictionary.content,\n {\n dictionaryKey: dictionary.key,\n keyPath: [],\n locale,\n },\n getBasePlugins(locale, !isStrict)\n );\n const result = (schema as any).safeParse(resolvedContent);\n\n if (!result.success) {\n appLogger(\n `${location} dictionary ${colorizeKey(dictionary.key)} has invalid content according to schema ${colorize(dictionary.schema as string, ANSIColors.ORANGE)} for locale ${formatLocale(locale)} - ${dictionary.filePath ? formatPath(dictionary.filePath) : colorizePath('Remote')}`,\n {\n level: 'error',\n }\n );\n\n result.error.issues.forEach((issue: any) => {\n appLogger(\n `${x} Error: ${colorizeKey(dictionary.key)} - ${formatLocale(locale)} - ${colorize(`${issue.path.join('.')}:`, ANSIColors.BLUE)} ${colorize(issue.message, ANSIColors.GREY)}`,\n {\n level: 'error',\n }\n );\n });\n\n return false;\n }\n }\n }\n }\n }\n\n return true;\n};\n\nexport const filterInvalidDictionaries = (\n dictionaries: (Dictionary | undefined)[] | undefined,\n configuration: IntlayerConfig,\n options?: IsInvalidDictionaryOptions\n): Dictionary[] =>\n (dictionaries ?? [])?.filter((dictionary) =>\n isInvalidDictionary(dictionary, configuration, options)\n ) as Dictionary[];\n"],"mappings":"yOAeA,MAAa,GACX,EACA,EACA,IACY,CACZ,IAAM,GAAA,EAAA,EAAA,cAAyB,EAAc,CAE7C,GAAI,CAAC,EAAY,MAAO,GAKxB,IAAM,EAFJ,EAAW,WAAa,SAAW,OAAO,EAAW,UAAa,SAEzC,QAAU,SAC/B,EAAS,EAAQ,EAAW,IAC5B,EAAa,EAAQ,EAAW,QAEtC,GAAI,CAAC,EAKH,OAJA,EAAU,GAAG,EAAS,wBAAyB,CAC7C,MAAO,QACR,CAAC,CAEK,GAGT,GAAI,CAAC,EAOH,OANA,EACE,GAAG,EAAS,eAAA,EAAA,EAAA,aAA0B,EAAW,IAAI,CAAC,oBAAoB,EAAW,SAAWA,EAAAA,WAAW,EAAW,SAAS,EAAA,EAAA,EAAA,cAAgB,SAAS,GACxJ,CACE,MAAO,QACR,CACF,CACM,GAGT,GAAI,EAAW,QAAU,GAAS,aAO5B,EALF,OAAO,EAAW,SAAY,YAC7B,OAAO,EAAW,SAAY,UAC7B,EAAW,UAAY,MACvB,OAAQ,EAAW,QAAgB,MAAS,YAElC,CACZ,IAAM,EAAU,GAAe,sBAAsB,SAAW,EAAE,CAC5D,EACJ,GAAe,qBAAqB,aAAe,SAE/C,EACJ,OAAO,EAAW,QAAW,SACzB,GAAe,UAAU,EAAW,QACpC,IAAA,GAEN,GAAI,GAAU,OAAO,EAAO,WAAc,WACxC,IAAK,IAAM,KAAU,EAAS,CAC5B,IAAM,GAAA,EAAA,EAAA,YACJ,EAAW,QACX,CACE,cAAe,EAAW,IAC1B,QAAS,EAAE,CACX,SACD,EAAA,EAAA,EAAA,gBACc,EAAQ,CAAC,EAAS,CAClC,CACK,EAAU,EAAe,UAAU,EAAgB,CAEzD,GAAI,CAAC,EAAO,QAiBV,OAhBA,EACE,GAAG,EAAS,eAAA,EAAA,EAAA,aAA0B,EAAW,IAAI,CAAC,4CAAA,EAAA,EAAA,UAAoD,EAAW,OAAkBC,EAAAA,WAAW,OAAO,CAAC,cAAcC,EAAAA,aAAa,EAAO,CAAC,KAAK,EAAW,SAAWF,EAAAA,WAAW,EAAW,SAAS,EAAA,EAAA,EAAA,cAAgB,SAAS,GAChR,CACE,MAAO,QACR,CACF,CAED,EAAO,MAAM,OAAO,QAAS,GAAe,CAC1C,EACE,GAAGG,EAAAA,EAAE,WAAA,EAAA,EAAA,aAAsB,EAAW,IAAI,CAAC,KAAKD,EAAAA,aAAa,EAAO,CAAC,MAAA,EAAA,EAAA,UAAc,GAAG,EAAM,KAAK,KAAK,IAAI,CAAC,GAAID,EAAAA,WAAW,KAAK,CAAC,IAAA,EAAA,EAAA,UAAY,EAAM,QAASA,EAAAA,WAAW,KAAK,GAC3K,CACE,MAAO,QACR,CACF,EACD,CAEK,IAOjB,MAAO,IAGI,GACX,EACA,EACA,KAEC,GAAgB,EAAE,GAAG,OAAQ,GAC5B,EAAoB,EAAY,EAAe,EAAQ,CACxD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./_virtual/_rolldown/runtime.cjs`),t=require(`./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs`),n=require(`./buildIntlayerDictionary/buildIntlayerDictionary.cjs`),r=require(`./utils/runOnce.cjs`),i=require(`./createType/createModuleAugmentation.cjs`),a=require(`./createType/createType.cjs`),o=require(`./listDictionariesPath.cjs`),s=require(`./loadDictionaries/loadDictionaries.cjs`),c=require(`./buildIntlayerDictionary/writeRemoteDictionary.cjs`),l=require(`./cleanOutputDir.cjs`),u=require(`./writeConfiguration/index.cjs`);let d=require(`node:fs/promises`),f=require(`node:path`),p=require(`@intlayer/config/logger`),m=require(`@intlayer/config/utils`),h=require(`@intlayer/config/package.json`);h=e.__toESM(h);const g={clean:!1,format:[`cjs`,`esm`],cacheTimeoutMs:1e3*60*60},_=async(e,_)=>{let v=(0,p.getAppLogger)(e),y=(0,f.join)(e.system.cacheDir,`intlayer-prepared.lock`),b=(0,m.cacheDisk)(e,[`intlayer-version`]),x=await b.get(),S=!!(x&&x===h.default.version),C=await u.isCachedConfigurationUpToDate(e),w=await o.listDictionariesWithStats(e),T=!1;try{let e=await(0,d.stat)(y);T=w.some(t=>t.stats.mtime.getTime()>e.mtime.getTime())}catch{}let E=(await Promise.all(e.plugins??[])).some(e=>!!e.loadDictionaries),{clean:D,format:O,forceRun:k,onIsCached:A,cacheTimeoutMs:j}={...g,forceRun:!S||!C||T||E,..._??{}};await r.runOnce(y,async()=>{(D||!S)&&await l.cleanOutputDir(e),await b.set(h.default.version);let r=Date.now();v([`Preparing Intlayer`,(0,p.colorize)(`(v${h.default.version})`,p.ANSIColors.GREY_DARK)]),await u.writeConfiguration(e);let o=Date.now();v([`Configuration written`,(0,p.colorize)(`(${o-r}ms)`,p.ANSIColors.GREY_DARK)],{isVerbose:!0});let d=await s.loadDictionaries(w.map(e=>e.path),e),f=Date.now();v([`Content loaded`,(0,p.colorize)([d.remoteDictionaries.length+d.pluginDictionaries.length>0?[`(Total: ${f-o}ms`,d.localDictionaries.length>0?` - Local: ${d.time.localDictionaries}ms`:``,d.remoteDictionaries.length>0?` - Remote: ${d.time.remoteDictionaries}ms`:``,d.pluginDictionaries.length>0?` - Plugin: ${d.time.pluginDictionaries}ms`:``,`)`].join(``):`(${f-o}ms)`].join(``),p.ANSIColors.GREY_DARK)],{isVerbose:!0});let m=await n.buildDictionary([...d.localDictionaries,...d.remoteDictionaries,...d.pluginDictionaries],e,O
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./_virtual/_rolldown/runtime.cjs`),t=require(`./createDictionaryEntryPoint/createDictionaryEntryPoint.cjs`),n=require(`./buildIntlayerDictionary/buildIntlayerDictionary.cjs`),r=require(`./utils/runOnce.cjs`),i=require(`./createType/createModuleAugmentation.cjs`),a=require(`./createType/createType.cjs`),o=require(`./listDictionariesPath.cjs`),s=require(`./loadDictionaries/loadDictionaries.cjs`),c=require(`./buildIntlayerDictionary/writeRemoteDictionary.cjs`),l=require(`./cleanOutputDir.cjs`),u=require(`./writeConfiguration/index.cjs`);let d=require(`node:fs/promises`),f=require(`node:path`),p=require(`@intlayer/config/logger`),m=require(`@intlayer/config/utils`),h=require(`@intlayer/config/package.json`);h=e.__toESM(h);const g={clean:!1,env:`prod`,format:[`cjs`,`esm`],cacheTimeoutMs:1e3*60*60},_=async(e,_)=>{let v=(0,p.getAppLogger)(e),y=(0,f.join)(e.system.cacheDir,`intlayer-prepared.lock`),b=(0,m.cacheDisk)(e,[`intlayer-version`]),x=await b.get(),S=!!(x&&x===h.default.version),C=await u.isCachedConfigurationUpToDate(e),w=await o.listDictionariesWithStats(e),T=!1;try{let e=await(0,d.stat)(y);T=w.some(t=>t.stats.mtime.getTime()>e.mtime.getTime())}catch{}let E=(await Promise.all(e.plugins??[])).some(e=>!!e.loadDictionaries),{clean:D,format:O,forceRun:k,onIsCached:A,cacheTimeoutMs:j,env:M}={...g,forceRun:!S||!C||T||E,..._??{}};await r.runOnce(y,async()=>{(D||!S)&&await l.cleanOutputDir(e),await b.set(h.default.version);let r=Date.now();v([`Preparing Intlayer`,(0,p.colorize)(`(v${h.default.version})`,p.ANSIColors.GREY_DARK)]),await u.writeConfiguration(e);let o=Date.now();v([`Configuration written`,(0,p.colorize)(`(${o-r}ms)`,p.ANSIColors.GREY_DARK)],{isVerbose:!0});let d=await s.loadDictionaries(w.map(e=>e.path),e),f=Date.now();v([`Content loaded`,(0,p.colorize)([d.remoteDictionaries.length+d.pluginDictionaries.length>0?[`(Total: ${f-o}ms`,d.localDictionaries.length>0?` - Local: ${d.time.localDictionaries}ms`:``,d.remoteDictionaries.length>0?` - Remote: ${d.time.remoteDictionaries}ms`:``,d.pluginDictionaries.length>0?` - Plugin: ${d.time.pluginDictionaries}ms`:``,`)`].join(``):`(${f-o}ms)`].join(``),p.ANSIColors.GREY_DARK)],{isVerbose:!0});let m=await n.buildDictionary([...d.localDictionaries,...d.remoteDictionaries,...d.pluginDictionaries],e,{formats:O,importOtherDictionaries:!1,env:M});await c.writeRemoteDictionary(d.remoteDictionaries,e),await a.createTypes(Object.values(m?.mergedDictionaries??{}).map(e=>e.dictionary),e),await t.createDictionaryEntryPoint(e);let g=Date.now();v([`Dictionaries built`,(0,p.colorize)(`(${g-r}ms)`,p.ANSIColors.GREY_DARK)]),await i.createModuleAugmentation(e),v([`Module augmentation built`,(0,p.colorize)(`(${Date.now()-g}ms)`,p.ANSIColors.GREY_DARK)],{isVerbose:!0});for await(let t of e.plugins??[]){let{unmergedDictionaries:n,mergedDictionaries:r}=m;await t.afterBuild?.({dictionaries:{unmergedDictionaries:n,mergedDictionaries:r},configuration:e})}v([`Done`,(0,p.colorize)(`${Date.now()-r}ms`,p.ANSIColors.GREEN)],{level:`info`,isVerbose:!0})},{forceRun:k,onIsCached:A,cacheTimeoutMs:j})};exports.prepareIntlayer=_;
|
|
2
2
|
//# sourceMappingURL=prepareIntlayer.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareIntlayer.cjs","names":["packageJson","isCachedConfigurationUpToDate","listDictionariesWithStats","runOnce","cleanOutputDir","ANSIColors","writeConfiguration","loadDictionaries","buildDictionary","writeRemoteDictionary","createTypes","createDictionaryEntryPoint","createModuleAugmentation"],"sources":["../../src/prepareIntlayer.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { ANSIColors, colorize, getAppLogger } from '@intlayer/config/logger';\nimport packageJson from '@intlayer/config/package.json' with { type: 'json' };\nimport { cacheDisk } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { buildDictionary } from './buildIntlayerDictionary/buildIntlayerDictionary';\nimport { writeRemoteDictionary } from './buildIntlayerDictionary/writeRemoteDictionary';\nimport { cleanOutputDir } from './cleanOutputDir';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint/createDictionaryEntryPoint';\nimport { createModuleAugmentation, createTypes } from './createType/index';\nimport { listDictionariesWithStats } from './listDictionariesPath';\nimport { loadDictionaries } from './loadDictionaries/loadDictionaries';\nimport { runOnce } from './utils/runOnce';\nimport {\n isCachedConfigurationUpToDate,\n writeConfiguration,\n} from './writeConfiguration';\n\ntype PrepareIntlayerOptions = {\n clean?: boolean;\n format?: ('cjs' | 'esm')[];\n forceRun?: boolean;\n cacheTimeoutMs?: number;\n onIsCached?: () => void | Promise<void>;\n};\n\nconst DEFAULT_PREPARE_INTLAYER_OPTIONS = {\n clean: false,\n format: ['cjs', 'esm'],\n cacheTimeoutMs: 1000 * 60 * 60, // 1 hour\n} satisfies PrepareIntlayerOptions;\n\nexport const prepareIntlayer = async (\n configuration: IntlayerConfig,\n options?: PrepareIntlayerOptions\n) => {\n const appLogger = getAppLogger(configuration);\n\n const sentinelPath = join(\n configuration.system.cacheDir,\n 'intlayer-prepared.lock'\n );\n // Clean output dir if the intlayer version has changed\n const versionCache = cacheDisk(configuration, ['intlayer-version']);\n const intlayerCacheVersion = await versionCache.get();\n const isCorrectVersion = Boolean(\n intlayerCacheVersion && intlayerCacheVersion === packageJson.version\n );\n\n const isConfigSimilar = await isCachedConfigurationUpToDate(configuration);\n\n // Check if any dictionary has been changed to force a new rebuild\n const dictionariesWithStats = await listDictionariesWithStats(configuration);\n let isDictionaryChanged = false;\n try {\n // Try catch as sentinel file may not exist yet\n const sentinelStats = await stat(sentinelPath);\n isDictionaryChanged = dictionariesWithStats.some(\n (dictionary) =>\n dictionary.stats.mtime.getTime() > sentinelStats.mtime.getTime()\n );\n } catch {}\n\n const resolvedPlugins = await Promise.all(configuration.plugins ?? []);\n const hasPluginLoadDictionaries = resolvedPlugins.some((plugin) =>\n Boolean(plugin.loadDictionaries)\n ); // Disable cache if any plugin because it can have custom behavior\n\n const { clean, format, forceRun, onIsCached, cacheTimeoutMs } = {\n ...DEFAULT_PREPARE_INTLAYER_OPTIONS,\n forceRun:\n !isCorrectVersion ||\n !isConfigSimilar ||\n isDictionaryChanged ||\n hasPluginLoadDictionaries,\n ...(options ?? {}),\n };\n\n // Skip preparation if it has already been done recently\n await runOnce(\n sentinelPath,\n async () => {\n // comment because of issue with next and webpack\n // await checkVersionsConsistency(configuration);\n\n if (clean || !isCorrectVersion) {\n await cleanOutputDir(configuration);\n }\n\n await versionCache.set(packageJson.version);\n\n const preparationStartMs = Date.now();\n\n appLogger([\n 'Preparing Intlayer',\n colorize(`(v${packageJson.version})`, ANSIColors.GREY_DARK),\n ]);\n\n await writeConfiguration(configuration);\n\n const configurationWrittenTime = Date.now();\n\n appLogger(\n [\n 'Configuration written',\n colorize(\n `(${configurationWrittenTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n const contentDeclarationPaths = dictionariesWithStats.map(\n (dictionary) => dictionary.path\n );\n\n const dictionaries = await loadDictionaries(\n contentDeclarationPaths,\n configuration\n );\n\n const dictionariesLoadedTime = Date.now();\n\n appLogger(\n [\n 'Content loaded',\n colorize(\n [\n dictionaries.remoteDictionaries.length +\n dictionaries.pluginDictionaries.length >\n 0\n ? [\n `(Total: ${dictionariesLoadedTime - configurationWrittenTime}ms`,\n dictionaries.localDictionaries.length > 0\n ? ` - Local: ${dictionaries.time.localDictionaries}ms`\n : '',\n dictionaries.remoteDictionaries.length > 0\n ? ` - Remote: ${dictionaries.time.remoteDictionaries}ms`\n : '',\n dictionaries.pluginDictionaries.length > 0\n ? ` - Plugin: ${dictionaries.time.pluginDictionaries}ms`\n : '',\n `)`,\n ].join('')\n : `(${dictionariesLoadedTime - configurationWrittenTime}ms)`,\n ].join(''),\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Build local dictionaries\n const dictionariesOutput = await buildDictionary(\n [\n ...dictionaries.localDictionaries,\n ...dictionaries.remoteDictionaries,\n ...dictionaries.pluginDictionaries,\n ],\n configuration,\n format,\n false\n );\n\n // Write remote dictionaries\n // Used as cache for next fetch\n await writeRemoteDictionary(\n dictionaries.remoteDictionaries,\n configuration\n );\n\n const dictionariesToBuild = Object.values(\n dictionariesOutput?.mergedDictionaries ?? {}\n ).map((dictionary) => dictionary.dictionary);\n\n await createTypes(dictionariesToBuild, configuration);\n\n await createDictionaryEntryPoint(configuration);\n\n const dictionariesBuiltTime = Date.now();\n\n appLogger([\n 'Dictionaries built',\n colorize(\n `(${dictionariesBuiltTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ]);\n\n await createModuleAugmentation(configuration);\n\n const moduleAugmentationBuiltTime = Date.now();\n\n appLogger(\n [\n 'Module augmentation built',\n colorize(\n `(${moduleAugmentationBuiltTime - dictionariesBuiltTime}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Plugin transformation\n // Allow plugins to post-process the final build output (e.g., write back ICU JSON)\n for await (const plugin of configuration.plugins ?? []) {\n const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;\n\n await plugin.afterBuild?.({\n dictionaries: {\n unmergedDictionaries,\n mergedDictionaries,\n },\n configuration,\n });\n }\n\n const preparationElapsedMs = Date.now() - preparationStartMs;\n appLogger(\n [`Done`, colorize(`${preparationElapsedMs}ms`, ANSIColors.GREEN)],\n {\n level: 'info',\n isVerbose: true,\n }\n );\n },\n {\n forceRun,\n onIsCached,\n cacheTimeoutMs,\n }\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prepareIntlayer.cjs","names":["packageJson","isCachedConfigurationUpToDate","listDictionariesWithStats","runOnce","cleanOutputDir","ANSIColors","writeConfiguration","loadDictionaries","buildDictionary","writeRemoteDictionary","createTypes","createDictionaryEntryPoint","createModuleAugmentation"],"sources":["../../src/prepareIntlayer.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { ANSIColors, colorize, getAppLogger } from '@intlayer/config/logger';\nimport packageJson from '@intlayer/config/package.json' with { type: 'json' };\nimport { cacheDisk } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { buildDictionary } from './buildIntlayerDictionary/buildIntlayerDictionary';\nimport { writeRemoteDictionary } from './buildIntlayerDictionary/writeRemoteDictionary';\nimport { cleanOutputDir } from './cleanOutputDir';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint/createDictionaryEntryPoint';\nimport { createModuleAugmentation, createTypes } from './createType/index';\nimport { listDictionariesWithStats } from './listDictionariesPath';\nimport { loadDictionaries } from './loadDictionaries/loadDictionaries';\nimport { runOnce } from './utils/runOnce';\nimport {\n isCachedConfigurationUpToDate,\n writeConfiguration,\n} from './writeConfiguration';\n\ntype PrepareIntlayerOptions = {\n clean?: boolean;\n env?: 'prod' | 'dev';\n format?: ('cjs' | 'esm')[];\n forceRun?: boolean;\n cacheTimeoutMs?: number;\n onIsCached?: () => void | Promise<void>;\n};\n\nconst DEFAULT_PREPARE_INTLAYER_OPTIONS = {\n clean: false,\n env: 'prod',\n format: ['cjs', 'esm'],\n cacheTimeoutMs: 1000 * 60 * 60, // 1 hour\n} satisfies PrepareIntlayerOptions;\n\nexport const prepareIntlayer = async (\n configuration: IntlayerConfig,\n options?: PrepareIntlayerOptions\n) => {\n const appLogger = getAppLogger(configuration);\n\n const sentinelPath = join(\n configuration.system.cacheDir,\n 'intlayer-prepared.lock'\n );\n // Clean output dir if the intlayer version has changed\n const versionCache = cacheDisk(configuration, ['intlayer-version']);\n const intlayerCacheVersion = await versionCache.get();\n const isCorrectVersion = Boolean(\n intlayerCacheVersion && intlayerCacheVersion === packageJson.version\n );\n\n const isConfigSimilar = await isCachedConfigurationUpToDate(configuration);\n\n // Check if any dictionary has been changed to force a new rebuild\n const dictionariesWithStats = await listDictionariesWithStats(configuration);\n let isDictionaryChanged = false;\n try {\n // Try catch as sentinel file may not exist yet\n const sentinelStats = await stat(sentinelPath);\n isDictionaryChanged = dictionariesWithStats.some(\n (dictionary) =>\n dictionary.stats.mtime.getTime() > sentinelStats.mtime.getTime()\n );\n } catch {}\n\n const resolvedPlugins = await Promise.all(configuration.plugins ?? []);\n const hasPluginLoadDictionaries = resolvedPlugins.some((plugin) =>\n Boolean(plugin.loadDictionaries)\n ); // Disable cache if any plugin because it can have custom behavior\n\n const { clean, format, forceRun, onIsCached, cacheTimeoutMs, env } = {\n ...DEFAULT_PREPARE_INTLAYER_OPTIONS,\n forceRun:\n !isCorrectVersion ||\n !isConfigSimilar ||\n isDictionaryChanged ||\n hasPluginLoadDictionaries,\n ...(options ?? {}),\n };\n\n // Skip preparation if it has already been done recently\n await runOnce(\n sentinelPath,\n async () => {\n // comment because of issue with next and webpack\n // await checkVersionsConsistency(configuration);\n\n if (clean || !isCorrectVersion) {\n await cleanOutputDir(configuration);\n }\n\n await versionCache.set(packageJson.version);\n\n const preparationStartMs = Date.now();\n\n appLogger([\n 'Preparing Intlayer',\n colorize(`(v${packageJson.version})`, ANSIColors.GREY_DARK),\n ]);\n\n await writeConfiguration(configuration);\n\n const configurationWrittenTime = Date.now();\n\n appLogger(\n [\n 'Configuration written',\n colorize(\n `(${configurationWrittenTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n const contentDeclarationPaths = dictionariesWithStats.map(\n (dictionary) => dictionary.path\n );\n\n const dictionaries = await loadDictionaries(\n contentDeclarationPaths,\n configuration\n );\n\n const dictionariesLoadedTime = Date.now();\n\n appLogger(\n [\n 'Content loaded',\n colorize(\n [\n dictionaries.remoteDictionaries.length +\n dictionaries.pluginDictionaries.length >\n 0\n ? [\n `(Total: ${dictionariesLoadedTime - configurationWrittenTime}ms`,\n dictionaries.localDictionaries.length > 0\n ? ` - Local: ${dictionaries.time.localDictionaries}ms`\n : '',\n dictionaries.remoteDictionaries.length > 0\n ? ` - Remote: ${dictionaries.time.remoteDictionaries}ms`\n : '',\n dictionaries.pluginDictionaries.length > 0\n ? ` - Plugin: ${dictionaries.time.pluginDictionaries}ms`\n : '',\n `)`,\n ].join('')\n : `(${dictionariesLoadedTime - configurationWrittenTime}ms)`,\n ].join(''),\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Build local dictionaries\n const dictionariesOutput = await buildDictionary(\n [\n ...dictionaries.localDictionaries,\n ...dictionaries.remoteDictionaries,\n ...dictionaries.pluginDictionaries,\n ],\n configuration,\n { formats: format, importOtherDictionaries: false, env }\n );\n\n // Write remote dictionaries\n // Used as cache for next fetch\n await writeRemoteDictionary(\n dictionaries.remoteDictionaries,\n configuration\n );\n\n const dictionariesToBuild = Object.values(\n dictionariesOutput?.mergedDictionaries ?? {}\n ).map((dictionary) => dictionary.dictionary);\n\n await createTypes(dictionariesToBuild, configuration);\n\n await createDictionaryEntryPoint(configuration);\n\n const dictionariesBuiltTime = Date.now();\n\n appLogger([\n 'Dictionaries built',\n colorize(\n `(${dictionariesBuiltTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ]);\n\n await createModuleAugmentation(configuration);\n\n const moduleAugmentationBuiltTime = Date.now();\n\n appLogger(\n [\n 'Module augmentation built',\n colorize(\n `(${moduleAugmentationBuiltTime - dictionariesBuiltTime}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Plugin transformation\n // Allow plugins to post-process the final build output (e.g., write back ICU JSON)\n for await (const plugin of configuration.plugins ?? []) {\n const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;\n\n await plugin.afterBuild?.({\n dictionaries: {\n unmergedDictionaries,\n mergedDictionaries,\n },\n configuration,\n });\n }\n\n const preparationElapsedMs = Date.now() - preparationStartMs;\n appLogger(\n [`Done`, colorize(`${preparationElapsedMs}ms`, ANSIColors.GREEN)],\n {\n level: 'info',\n isVerbose: true,\n }\n );\n },\n {\n forceRun,\n onIsCached,\n cacheTimeoutMs,\n }\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./spawnPosix.cjs`),t=require(`./spawnWin32.cjs`);let n=require(`node:path`);const r=r=>{if(!r||Array.isArray(r)&&r.length===0)throw Error(`Invalid command`);let i=Array.isArray(r)?r.join(` `):r,a=Array.isArray(r),o=a?r[0]:i,s=a?r.slice(1):[],c=(0,n.join)(process.cwd(),`node_modules`,`.bin`),l=Object.keys(process.env).find(e=>e.toLowerCase()===`path`)??`PATH`,u=[c,process.env[l]??``].filter(Boolean).join(n.delimiter),d={...process.env,[l]:u},f=process.platform===`win32`,p=f?t.spawnWin32:e.spawnPosix,m={cwd:process.cwd(),stdio:`inherit`,env:d,shell:f},h=a?s.length===0&&/\s/.test(o)?f?p(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,o],m):p(process.env.SHELL??`/bin/sh`,[`-c`,o],m):p(o,s,m):f?p(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,i],m):p(process.env.SHELL??`/bin/sh`,[`-c`,i],m),g=new Promise((e,t)=>{h.on(`error`,e=>{try{console.error(`[runParallel] Failed to start: ${e?.message??String(e)}`)}catch{}y(),t(e)}),h.on(`exit`,(n,r)=>{y(),n===0||r&&[`SIGINT`,`SIGTERM`,`SIGQUIT`,`SIGHUP`].includes(r)?e():t(Object.assign(Error(`Parallel process failed`),{code:n,signal:r}))})}),_=()=>{try{h.kill(`SIGTERM`)}catch{}},v=[{event:`SIGINT`,handler:_},{event:`SIGTERM`,handler:_},{event:`SIGQUIT`,handler:_},{event:`SIGHUP`,handler:_}];v.forEach(({event:e,handler:t})=>{process.on(e,t)});let y=()=>{v.forEach(({event:e,handler:t})=>{process.off(e,t)})};return{kill:()=>{try{h.kill(`SIGTERM`)}catch{}},result:g,commandText:i}};exports.runParallel=r;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./spawnPosix.cjs`),t=require(`./spawnWin32.cjs`);let n=require(`node:path`);const r=r=>{if(!r||Array.isArray(r)&&r.length===0)throw Error(`Invalid command`);let i=Array.isArray(r)?r.join(` `):r,a=Array.isArray(r),o=a?r[0]:i,s=a?r.slice(1):[],c=(0,n.join)(process.cwd(),`node_modules`,`.bin`),l=Object.keys(process.env).find(e=>e.toLowerCase()===`path`)??`PATH`,u=[c,process.env[l]??``].filter(Boolean).join(n.delimiter),d={...process.env,[l]:u},f=process.platform===`win32`,p=f?t.spawnWin32:e.spawnPosix,m={cwd:process.cwd(),stdio:`inherit`,env:d,shell:f},h=a?s.length===0&&/\s/.test(o)?f?p(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,o],m):p(process.env.SHELL??`/bin/sh`,[`-c`,o],m):p(o,s,m):f?p(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,i],m):p(process.env.SHELL??`/bin/sh`,[`-c`,i],m),g=new Promise((e,t)=>{h.on(`error`,e=>{try{console.error(`[runParallel] Failed to start: ${e?.message??String(e)}`)}catch{}y(),t(e)}),h.on(`exit`,(n,r)=>{y(),n===0||new Set([129,130,131,143]).has(n??-1)||r&&[`SIGINT`,`SIGTERM`,`SIGQUIT`,`SIGHUP`].includes(r)?e():t(Object.assign(Error(`Parallel process failed`),{code:n,signal:r}))})}),_=()=>{try{h.kill(`SIGTERM`)}catch{}},v=[{event:`SIGINT`,handler:_},{event:`SIGTERM`,handler:_},{event:`SIGQUIT`,handler:_},{event:`SIGHUP`,handler:_}];v.forEach(({event:e,handler:t})=>{process.on(e,t)});let y=()=>{v.forEach(({event:e,handler:t})=>{process.off(e,t)})};return{kill:()=>{try{h.kill(`SIGTERM`)}catch{}},result:g,commandText:i}};exports.runParallel=r;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["delimiter","spawnWin32","spawnPosix"],"sources":["../../../../src/utils/runParallel/index.ts"],"sourcesContent":["import { delimiter, join } from 'node:path';\nimport { spawnPosix } from './spawnPosix';\nimport { spawnWin32 } from './spawnWin32';\n\nexport type ParallelHandle = {\n kill: () => void;\n result: Promise<any>;\n commandText: string;\n};\n\n/**\n * Start a cross-platform parallel process using npm-run-all approach.\n * Accepts either a single string (e.g., 'next start') or an array of tokens (e.g., ['next', 'start']).\n */\nexport const runParallel = (proc?: string | string[]): ParallelHandle => {\n if (!proc || (Array.isArray(proc) && proc.length === 0))\n throw new Error('Invalid command');\n\n const commandText = Array.isArray(proc) ? proc.join(' ') : proc;\n\n const isArray = Array.isArray(proc);\n const command = isArray ? (proc as string[])[0] : commandText;\n const args = isArray ? (proc as string[]).slice(1) : [];\n\n // Ensure local binaries (node_modules/.bin) are resolvable\n const cwdBin = join(process.cwd(), 'node_modules', '.bin');\n const PATH_KEY =\n Object.keys(process.env).find((key) => key.toLowerCase() === 'path') ??\n 'PATH';\n\n const extendedPath = [cwdBin, process.env[PATH_KEY] ?? '']\n .filter(Boolean)\n .join(delimiter);\n\n const childEnv = {\n ...process.env,\n [PATH_KEY]: extendedPath,\n } as NodeJS.ProcessEnv;\n\n const isWin = process.platform === 'win32';\n const spawnFunc = isWin ? spawnWin32 : spawnPosix;\n\n // Spawn options\n const spawnOptions = {\n cwd: process.cwd(),\n stdio: 'inherit' as const,\n env: childEnv,\n shell: isWin,\n };\n\n // Spawn the child process\n const child = isArray\n ? // If provided as a single string element that includes spaces, treat it like a shell command\n args.length === 0 && /\\s/.test(command)\n ? isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', command],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', command],\n spawnOptions\n )\n : spawnFunc(command, args, spawnOptions)\n : isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', commandText],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', commandText],\n spawnOptions\n );\n\n const result = new Promise<void>((resolve, reject) => {\n child.on('error', (err) => {\n try {\n console.error(\n `[runParallel] Failed to start: ${err?.message ?? String(err)}`\n );\n } catch {}\n cleanupHandlers();\n reject(err);\n });\n\n child.on('exit', (code, signal) => {\n cleanupHandlers();\n\n // Treat common termination signals as graceful exits, not failures\n const gracefulSignals = ['SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGHUP'];\n if (code === 0
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["delimiter","spawnWin32","spawnPosix"],"sources":["../../../../src/utils/runParallel/index.ts"],"sourcesContent":["import { delimiter, join } from 'node:path';\nimport { spawnPosix } from './spawnPosix';\nimport { spawnWin32 } from './spawnWin32';\n\nexport type ParallelHandle = {\n kill: () => void;\n result: Promise<any>;\n commandText: string;\n};\n\n/**\n * Start a cross-platform parallel process using npm-run-all approach.\n * Accepts either a single string (e.g., 'next start') or an array of tokens (e.g., ['next', 'start']).\n */\nexport const runParallel = (proc?: string | string[]): ParallelHandle => {\n if (!proc || (Array.isArray(proc) && proc.length === 0))\n throw new Error('Invalid command');\n\n const commandText = Array.isArray(proc) ? proc.join(' ') : proc;\n\n const isArray = Array.isArray(proc);\n const command = isArray ? (proc as string[])[0] : commandText;\n const args = isArray ? (proc as string[]).slice(1) : [];\n\n // Ensure local binaries (node_modules/.bin) are resolvable\n const cwdBin = join(process.cwd(), 'node_modules', '.bin');\n const PATH_KEY =\n Object.keys(process.env).find((key) => key.toLowerCase() === 'path') ??\n 'PATH';\n\n const extendedPath = [cwdBin, process.env[PATH_KEY] ?? '']\n .filter(Boolean)\n .join(delimiter);\n\n const childEnv = {\n ...process.env,\n [PATH_KEY]: extendedPath,\n } as NodeJS.ProcessEnv;\n\n const isWin = process.platform === 'win32';\n const spawnFunc = isWin ? spawnWin32 : spawnPosix;\n\n // Spawn options\n const spawnOptions = {\n cwd: process.cwd(),\n stdio: 'inherit' as const,\n env: childEnv,\n shell: isWin,\n };\n\n // Spawn the child process\n const child = isArray\n ? // If provided as a single string element that includes spaces, treat it like a shell command\n args.length === 0 && /\\s/.test(command)\n ? isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', command],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', command],\n spawnOptions\n )\n : spawnFunc(command, args, spawnOptions)\n : isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', commandText],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', commandText],\n spawnOptions\n );\n\n const result = new Promise<void>((resolve, reject) => {\n child.on('error', (err) => {\n try {\n console.error(\n `[runParallel] Failed to start: ${err?.message ?? String(err)}`\n );\n } catch {}\n cleanupHandlers();\n reject(err);\n });\n\n child.on('exit', (code, signal) => {\n cleanupHandlers();\n\n // Treat common termination signals as graceful exits, not failures\n const gracefulSignals = ['SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGHUP'];\n // Also treat shell-convention exit codes (128 + signal number) as graceful:\n // 129 = SIGHUP, 130 = SIGINT, 131 = SIGQUIT, 143 = SIGTERM\n const gracefulSignalCodes = new Set([129, 130, 131, 143]);\n if (\n code === 0 ||\n gracefulSignalCodes.has(code ?? -1) ||\n (signal && gracefulSignals.includes(signal))\n ) {\n resolve();\n } else {\n reject(\n Object.assign(new Error('Parallel process failed'), { code, signal })\n );\n }\n });\n });\n\n const cleanup = () => {\n try {\n child.kill('SIGTERM');\n } catch {\n // Best effort\n }\n };\n\n const signalHandlers: { event: string; handler: (...args: any[]) => void }[] =\n [\n { event: 'SIGINT', handler: cleanup },\n { event: 'SIGTERM', handler: cleanup },\n { event: 'SIGQUIT', handler: cleanup },\n { event: 'SIGHUP', handler: cleanup },\n ];\n\n // Register signal handlers\n signalHandlers.forEach(({ event, handler }) => {\n process.on(event as any, handler as any);\n });\n\n const cleanupHandlers = () => {\n signalHandlers.forEach(({ event, handler }) => {\n process.off(event as any, handler as any);\n });\n };\n\n const kill = () => {\n try {\n child.kill('SIGTERM');\n } catch {\n // Best effort\n }\n };\n\n return { kill, result, commandText };\n};\n"],"mappings":"gNAcA,MAAa,EAAe,GAA6C,CACvE,GAAI,CAAC,GAAS,MAAM,QAAQ,EAAK,EAAI,EAAK,SAAW,EACnD,MAAU,MAAM,kBAAkB,CAEpC,IAAM,EAAc,MAAM,QAAQ,EAAK,CAAG,EAAK,KAAK,IAAI,CAAG,EAErD,EAAU,MAAM,QAAQ,EAAK,CAC7B,EAAU,EAAW,EAAkB,GAAK,EAC5C,EAAO,EAAW,EAAkB,MAAM,EAAE,CAAG,EAAE,CAGjD,GAAA,EAAA,EAAA,MAAc,QAAQ,KAAK,CAAE,eAAgB,OAAO,CACpD,EACJ,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAM,GAAQ,EAAI,aAAa,GAAK,OAAO,EACpE,OAEI,EAAe,CAAC,EAAQ,QAAQ,IAAI,IAAa,GAAG,CACvD,OAAO,QAAQ,CACf,KAAKA,EAAAA,UAAU,CAEZ,EAAW,CACf,GAAG,QAAQ,KACV,GAAW,EACb,CAEK,EAAQ,QAAQ,WAAa,QAC7B,EAAY,EAAQC,EAAAA,WAAaC,EAAAA,WAGjC,EAAe,CACnB,IAAK,QAAQ,KAAK,CAClB,MAAO,UACP,IAAK,EACL,MAAO,EACR,CAGK,EAAQ,EAEV,EAAK,SAAW,GAAK,KAAK,KAAK,EAAQ,CACrC,EACE,EACE,QAAQ,IAAI,SAAW,UACvB,CAAC,KAAM,KAAM,KAAM,EAAQ,CAC3B,EACD,CACD,EACE,QAAQ,IAAI,OAAS,UACrB,CAAC,KAAM,EAAQ,CACf,EACD,CACH,EAAU,EAAS,EAAM,EAAa,CACxC,EACE,EACE,QAAQ,IAAI,SAAW,UACvB,CAAC,KAAM,KAAM,KAAM,EAAY,CAC/B,EACD,CACD,EACE,QAAQ,IAAI,OAAS,UACrB,CAAC,KAAM,EAAY,CACnB,EACD,CAED,EAAS,IAAI,SAAe,EAAS,IAAW,CACpD,EAAM,GAAG,QAAU,GAAQ,CACzB,GAAI,CACF,QAAQ,MACN,kCAAkC,GAAK,SAAW,OAAO,EAAI,GAC9D,MACK,EACR,GAAiB,CACjB,EAAO,EAAI,EACX,CAEF,EAAM,GAAG,QAAS,EAAM,IAAW,CACjC,GAAiB,CAQf,IAAS,GAFiB,IAAI,IAAI,CAAC,IAAK,IAAK,IAAK,IAAI,CAAC,CAGnC,IAAI,GAAQ,GAAG,EAClC,GAPqB,CAAC,SAAU,UAAW,UAAW,SAAS,CAOrC,SAAS,EAAO,CAE3C,GAAS,CAET,EACE,OAAO,OAAW,MAAM,0BAA0B,CAAE,CAAE,OAAM,SAAQ,CAAC,CACtE,EAEH,EACF,CAEI,MAAgB,CACpB,GAAI,CACF,EAAM,KAAK,UAAU,MACf,IAKJ,EACJ,CACE,CAAE,MAAO,SAAU,QAAS,EAAS,CACrC,CAAE,MAAO,UAAW,QAAS,EAAS,CACtC,CAAE,MAAO,UAAW,QAAS,EAAS,CACtC,CAAE,MAAO,SAAU,QAAS,EAAS,CACtC,CAGH,EAAe,SAAS,CAAE,QAAO,aAAc,CAC7C,QAAQ,GAAG,EAAc,EAAe,EACxC,CAEF,IAAM,MAAwB,CAC5B,EAAe,SAAS,CAAE,QAAO,aAAc,CAC7C,QAAQ,IAAI,EAAc,EAAe,EACzC,EAWJ,MAAO,CAAE,SARU,CACjB,GAAI,CACF,EAAM,KAAK,UAAU,MACf,IAKK,SAAQ,cAAa"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{writeDynamicDictionary as e}from"./writeDynamicDictionary.mjs";import{writeFetchDictionary as t}from"./writeFetchDictionary.mjs";import{writeMergedDictionaries as n}from"./writeMergedDictionary.mjs";import{writeUnmergedDictionaries as r}from"./writeUnmergedDictionary.mjs";import{DefaultValues as i}from"@intlayer/config/client";import{getUnmergedDictionaries as a}from"@intlayer/unmerged-dictionaries-entry";import{getConfiguration as o}from"@intlayer/config/node";const s=
|
|
1
|
+
import{writeDynamicDictionary as e}from"./writeDynamicDictionary.mjs";import{writeFetchDictionary as t}from"./writeFetchDictionary.mjs";import{writeMergedDictionaries as n}from"./writeMergedDictionary.mjs";import{writeUnmergedDictionaries as r}from"./writeUnmergedDictionary.mjs";import{DefaultValues as i}from"@intlayer/config/client";import{getUnmergedDictionaries as a}from"@intlayer/unmerged-dictionaries-entry";import{getConfiguration as o}from"@intlayer/config/node";const s={formats:[`cjs`,`esm`],importOtherDictionaries:!0,env:`dev`},c=async(c,l=o(),u)=>{let d=l?.build?.importMode??l?.dictionary?.importMode??i.Dictionary.IMPORT_MODE,{importOtherDictionaries:f,env:p,formats:m}={...s,...u},h=[...c];if(f){let e=a(l);for(let t of c){let n=e[t.key];if(n?.length>0){let e=n.filter(e=>e.localId!==t.localId);h.push(...e)}}}let g=await r(h,l,p),_=await n(g,l),v={},y=new Set;for(let[e,t]of Object.entries(_)){let n=t.dictionary.importMode??d;(n===`dynamic`||n===`fetch`)&&(v[e]=t),n===`fetch`&&y.add(e)}let b=null;Object.keys(v).length>0&&(b=await e(v,l,m));let x=null;if(b&&y.size>0){let e={};for(let t of y)b[t]&&(e[t]=b[t]);Object.keys(e).length>0&&(x=await t(e,l,m))}return{unmergedDictionaries:g,mergedDictionaries:_,dynamicDictionaries:b,fetchDictionaries:x}};export{c as buildDictionary};
|
|
2
2
|
//# sourceMappingURL=buildIntlayerDictionary.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildIntlayerDictionary.mjs","names":[],"sources":["../../../src/buildIntlayerDictionary/buildIntlayerDictionary.ts"],"sourcesContent":["import { DefaultValues } from '@intlayer/config/client';\nimport { getConfiguration } from '@intlayer/config/node';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport {\n type LocalizedDictionaryOutput,\n writeDynamicDictionary,\n} from './writeDynamicDictionary';\nimport { writeFetchDictionary } from './writeFetchDictionary';\nimport { writeMergedDictionaries } from './writeMergedDictionary';\nimport { writeUnmergedDictionaries } from './writeUnmergedDictionary';\n\n/**\n * This function transpile the bundled code to to make dictionaries as JSON files\n */\nexport const buildDictionary = async (\n localDictionariesEntries: Dictionary[],\n configuration = getConfiguration(),\n
|
|
1
|
+
{"version":3,"file":"buildIntlayerDictionary.mjs","names":[],"sources":["../../../src/buildIntlayerDictionary/buildIntlayerDictionary.ts"],"sourcesContent":["import { DefaultValues } from '@intlayer/config/client';\nimport { getConfiguration } from '@intlayer/config/node';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { getUnmergedDictionaries } from '@intlayer/unmerged-dictionaries-entry';\nimport {\n type LocalizedDictionaryOutput,\n writeDynamicDictionary,\n} from './writeDynamicDictionary';\nimport { writeFetchDictionary } from './writeFetchDictionary';\nimport { writeMergedDictionaries } from './writeMergedDictionary';\nimport { writeUnmergedDictionaries } from './writeUnmergedDictionary';\n\nexport type BuildDictionariesOptions = Partial<{\n formats: ('cjs' | 'esm')[];\n importOtherDictionaries: boolean;\n env: 'prod' | 'dev';\n}>;\n\nconst defaultOptions = {\n formats: ['cjs', 'esm'],\n importOtherDictionaries: true,\n env: 'dev',\n} as const satisfies BuildDictionariesOptions;\n\n/**\n * This function transpile the bundled code to to make dictionaries as JSON files\n */\nexport const buildDictionary = async (\n localDictionariesEntries: Dictionary[],\n configuration = getConfiguration(),\n options?: BuildDictionariesOptions\n) => {\n const importMode =\n configuration?.build?.importMode ??\n configuration?.dictionary?.importMode ??\n DefaultValues.Dictionary.IMPORT_MODE;\n\n const { importOtherDictionaries, env, formats } = {\n ...defaultOptions,\n ...options,\n };\n\n const unmergedDictionariesToUpdate: Dictionary[] = [\n ...localDictionariesEntries,\n ];\n\n if (importOtherDictionaries) {\n const prevUnmergedDictionaries: Record<string, Dictionary[]> =\n getUnmergedDictionaries(configuration);\n\n // Reinsert other dictionaries with the same key to avoid merging errors\n for (const dictionaryToWrite of localDictionariesEntries) {\n const allPrebuiltUnmergedDictionaries =\n prevUnmergedDictionaries[dictionaryToWrite.key];\n\n if (allPrebuiltUnmergedDictionaries?.length > 0) {\n // Do not add the same dictionary again by filtering out the one with the same localId\n const otherUnmergedDictionaries =\n allPrebuiltUnmergedDictionaries.filter(\n (unmergedDictionary) =>\n unmergedDictionary.localId !== dictionaryToWrite.localId\n );\n\n unmergedDictionariesToUpdate.push(...otherUnmergedDictionaries);\n }\n }\n }\n\n const unmergedDictionaries = await writeUnmergedDictionaries(\n unmergedDictionariesToUpdate,\n configuration,\n env\n );\n\n const mergedDictionaries = await writeMergedDictionaries(\n unmergedDictionaries,\n configuration\n );\n\n const dictionariesToBuildDynamic: typeof mergedDictionaries = {};\n const keysToBuildFetch = new Set<string>();\n\n for (const [key, mergedResult] of Object.entries(mergedDictionaries)) {\n const dictionary = mergedResult.dictionary;\n const mode = dictionary.importMode ?? importMode;\n\n if (mode === 'dynamic' || mode === 'fetch') {\n dictionariesToBuildDynamic[key] = mergedResult;\n }\n\n if (mode === 'fetch') {\n keysToBuildFetch.add(key);\n }\n }\n\n let dynamicDictionaries: LocalizedDictionaryOutput | null = null;\n\n if (Object.keys(dictionariesToBuildDynamic).length > 0) {\n dynamicDictionaries = await writeDynamicDictionary(\n dictionariesToBuildDynamic,\n configuration,\n formats\n );\n }\n\n let fetchDictionaries: LocalizedDictionaryOutput | null = null;\n\n if (dynamicDictionaries && keysToBuildFetch.size > 0) {\n const dictionariesToBuildFetch: LocalizedDictionaryOutput = {};\n\n for (const key of keysToBuildFetch) {\n if (dynamicDictionaries[key]) {\n dictionariesToBuildFetch[key] = dynamicDictionaries[key];\n }\n }\n\n if (Object.keys(dictionariesToBuildFetch).length > 0) {\n fetchDictionaries = await writeFetchDictionary(\n dictionariesToBuildFetch,\n configuration,\n formats\n );\n }\n }\n\n return {\n unmergedDictionaries,\n mergedDictionaries,\n dynamicDictionaries,\n fetchDictionaries,\n };\n};\n"],"mappings":"ydAkBA,MAAM,EAAiB,CACrB,QAAS,CAAC,MAAO,MAAM,CACvB,wBAAyB,GACzB,IAAK,MACN,CAKY,EAAkB,MAC7B,EACA,EAAgB,GAAkB,CAClC,IACG,CACH,IAAM,EACJ,GAAe,OAAO,YACtB,GAAe,YAAY,YAC3B,EAAc,WAAW,YAErB,CAAE,0BAAyB,MAAK,WAAY,CAChD,GAAG,EACH,GAAG,EACJ,CAEK,EAA6C,CACjD,GAAG,EACJ,CAED,GAAI,EAAyB,CAC3B,IAAM,EACJ,EAAwB,EAAc,CAGxC,IAAK,IAAM,KAAqB,EAA0B,CACxD,IAAM,EACJ,EAAyB,EAAkB,KAE7C,GAAI,GAAiC,OAAS,EAAG,CAE/C,IAAM,EACJ,EAAgC,OAC7B,GACC,EAAmB,UAAY,EAAkB,QACpD,CAEH,EAA6B,KAAK,GAAG,EAA0B,GAKrE,IAAM,EAAuB,MAAM,EACjC,EACA,EACA,EACD,CAEK,EAAqB,MAAM,EAC/B,EACA,EACD,CAEK,EAAwD,EAAE,CAC1D,EAAmB,IAAI,IAE7B,IAAK,GAAM,CAAC,EAAK,KAAiB,OAAO,QAAQ,EAAmB,CAAE,CAEpE,IAAM,EADa,EAAa,WACR,YAAc,GAElC,IAAS,WAAa,IAAS,WACjC,EAA2B,GAAO,GAGhC,IAAS,SACX,EAAiB,IAAI,EAAI,CAI7B,IAAI,EAAwD,KAExD,OAAO,KAAK,EAA2B,CAAC,OAAS,IACnD,EAAsB,MAAM,EAC1B,EACA,EACA,EACD,EAGH,IAAI,EAAsD,KAE1D,GAAI,GAAuB,EAAiB,KAAO,EAAG,CACpD,IAAM,EAAsD,EAAE,CAE9D,IAAK,IAAM,KAAO,EACZ,EAAoB,KACtB,EAAyB,GAAO,EAAoB,IAIpD,OAAO,KAAK,EAAyB,CAAC,OAAS,IACjD,EAAoB,MAAM,EACxB,EACA,EACA,EACD,EAIL,MAAO,CACL,uBACA,qBACA,sBACA,oBACD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{parallelize as e}from"../utils/parallelize.mjs";import{writeJsonIfChanged as t}from"../writeJsonIfChanged.mjs";import{filterInvalidDictionaries as n}from"../filterInvalidDictionaries.mjs";import{mkdir as r}from"node:fs/promises";import{resolve as i}from"node:path";import{colorizePath as a,x as o}from"@intlayer/config/logger";import{orderDictionaries as s}from"@intlayer/core/dictionaryManipulator";const c=e=>e.reduce((e,t)=>{let n=t.key;return e[n]||(e[n]=[]),e[n].push(t),e},{}),l=async(l,u)=>{let{unmergedDictionariesDir:
|
|
1
|
+
import{parallelize as e}from"../utils/parallelize.mjs";import{writeJsonIfChanged as t}from"../writeJsonIfChanged.mjs";import{filterInvalidDictionaries as n}from"../filterInvalidDictionaries.mjs";import{mkdir as r}from"node:fs/promises";import{resolve as i}from"node:path";import{colorizePath as a,x as o}from"@intlayer/config/logger";import{orderDictionaries as s}from"@intlayer/core/dictionaryManipulator";const c=e=>e.reduce((e,t)=>{let n=t.key;return e[n]||(e[n]=[]),e[n].push(t),e},{}),l=async(l,u,d)=>{let{unmergedDictionariesDir:f}=u.system;await r(i(f),{recursive:!0});let p=c(n(l,u,{checkSchema:!0})),m=await e(Object.entries(p),async([e,n])=>{if(e===`undefined`)return;let r=s(n,u),c=i(f,`${e}.json`);return(u.editor.enabled||d===`dev`)&&await t(c,r).catch(e=>{console.error(`${o} Error creating unmerged ${a(c)}:`,e)}),[e,{dictionaryPath:c,dictionaries:n}]});return Object.fromEntries(m.filter(Boolean))};export{c as groupDictionariesByKey,l as writeUnmergedDictionaries};
|
|
2
2
|
//# sourceMappingURL=writeUnmergedDictionary.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeUnmergedDictionary.mjs","names":[],"sources":["../../../src/buildIntlayerDictionary/writeUnmergedDictionary.ts"],"sourcesContent":["import { mkdir } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { colorizePath, x } from '@intlayer/config/logger';\nimport { orderDictionaries } from '@intlayer/core/dictionaryManipulator';\nimport type {
|
|
1
|
+
{"version":3,"file":"writeUnmergedDictionary.mjs","names":[],"sources":["../../../src/buildIntlayerDictionary/writeUnmergedDictionary.ts"],"sourcesContent":["import { mkdir } from 'node:fs/promises';\nimport { resolve } from 'node:path';\nimport { colorizePath, x } from '@intlayer/config/logger';\nimport { orderDictionaries } from '@intlayer/core/dictionaryManipulator';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { Dictionary, DictionaryKey } from '@intlayer/types/dictionary';\nimport { filterInvalidDictionaries } from '../filterInvalidDictionaries';\nimport { parallelize } from '../utils/parallelize';\nimport { writeJsonIfChanged } from '../writeJsonIfChanged';\n\nexport const groupDictionariesByKey = (\n dictionaries: Dictionary[]\n): Record<string, Dictionary[]> =>\n dictionaries.reduce(\n (acc, dictionary) => {\n const key = dictionary.key;\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(dictionary);\n return acc;\n },\n {} as Record<string, Dictionary[]>\n );\n\nexport type UnmergedDictionaryResult = {\n dictionaryPath: string;\n dictionaries: Dictionary[];\n};\n\nexport type UnmergedDictionaryOutput = Record<\n DictionaryKey,\n UnmergedDictionaryResult\n>;\n\n/**\n * Write the unmerged dictionaries to the unmergedDictionariesDir\n * @param dictionaries - The dictionaries to write\n * @param configuration - The configuration\n * @returns The grouped dictionaries\n *\n * @example\n * ```ts\n * const unmergedDictionaries = await writeUnmergedDictionaries(dictionaries);\n * console.log(unmergedDictionaries);\n *\n * // .intlayer/unmerged_dictionaries/home.json\n * // {\n * // [\n * // { key: 'home', content: { ... } },\n * // { key: 'home', content: { ... } },\n * // ],\n * // }\n * ```\n */\nexport const writeUnmergedDictionaries = async (\n dictionaries: Dictionary[],\n configuration: IntlayerConfig,\n env: 'prod' | 'dev'\n): Promise<UnmergedDictionaryOutput> => {\n const { unmergedDictionariesDir } = configuration.system;\n\n // Create the dictionaries folder if it doesn't exist\n await mkdir(resolve(unmergedDictionariesDir), { recursive: true });\n\n const filteredDictionaries = filterInvalidDictionaries(\n dictionaries,\n configuration,\n { checkSchema: true }\n );\n\n // Group dictionaries by key and write to unmergedDictionariesDir\n const groupedDictionaries = groupDictionariesByKey(filteredDictionaries);\n\n const results = await parallelize(\n Object.entries(groupedDictionaries),\n async ([key, dictionaries]) => {\n if (key === 'undefined') {\n return undefined as unknown as readonly [\n string,\n UnmergedDictionaryResult,\n ];\n }\n\n const orderedDictionaries = orderDictionaries(\n dictionaries,\n configuration\n );\n\n const outputFileName = `${key}.json`;\n const unmergedFilePath = resolve(unmergedDictionariesDir, outputFileName);\n\n // Write the grouped dictionaries in disk if the editor is enabled\n // To make work the visual editor on the server\n // No need them if the editor is disabled\n // But in local env (env: 'dev') we write them for the vscode extension\n if (configuration.editor.enabled || env === 'dev') {\n await writeJsonIfChanged(unmergedFilePath, orderedDictionaries).catch(\n (err) => {\n console.error(\n `${x} Error creating unmerged ${colorizePath(unmergedFilePath)}:`,\n err\n );\n }\n );\n }\n\n return [\n key,\n {\n dictionaryPath: unmergedFilePath,\n dictionaries: dictionaries,\n } as UnmergedDictionaryResult,\n ] as const;\n }\n );\n\n return Object.fromEntries(\n results.filter(Boolean) as Array<\n readonly [string, UnmergedDictionaryResult]\n >\n );\n};\n"],"mappings":"uZAUA,MAAa,EACX,GAEA,EAAa,QACV,EAAK,IAAe,CACnB,IAAM,EAAM,EAAW,IAKvB,OAJK,EAAI,KACP,EAAI,GAAO,EAAE,EAEf,EAAI,GAAK,KAAK,EAAW,CAClB,GAET,EAAE,CACH,CAgCU,EAA4B,MACvC,EACA,EACA,IACsC,CACtC,GAAM,CAAE,2BAA4B,EAAc,OAGlD,MAAM,EAAM,EAAQ,EAAwB,CAAE,CAAE,UAAW,GAAM,CAAC,CASlE,IAAM,EAAsB,EAPC,EAC3B,EACA,EACA,CAAE,YAAa,GAAM,CACtB,CAGuE,CAElE,EAAU,MAAM,EACpB,OAAO,QAAQ,EAAoB,CACnC,MAAO,CAAC,EAAK,KAAkB,CAC7B,GAAI,IAAQ,YACV,OAMF,IAAM,EAAsB,EAC1B,EACA,EACD,CAGK,EAAmB,EAAQ,EADV,GAAG,EAAI,OAC2C,CAiBzE,OAXI,EAAc,OAAO,SAAW,IAAQ,QAC1C,MAAM,EAAmB,EAAkB,EAAoB,CAAC,MAC7D,GAAQ,CACP,QAAQ,MACN,GAAG,EAAE,2BAA2B,EAAa,EAAiB,CAAC,GAC/D,EACD,EAEJ,CAGI,CACL,EACA,CACE,eAAgB,EACF,eACf,CACF,EAEJ,CAED,OAAO,OAAO,YACZ,EAAQ,OAAO,QAAQ,CAGxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{formatLocale as e,formatPath as t}from"./utils/formatter.mjs";import{ANSIColors as n,colorize as r,colorizeKey as i,colorizePath as a,getAppLogger as o,x as s}from"@intlayer/config/logger";import{getContent as
|
|
1
|
+
import{formatLocale as e,formatPath as t}from"./utils/formatter.mjs";import{ANSIColors as n,colorize as r,colorizeKey as i,colorizePath as a,getAppLogger as o,x as s}from"@intlayer/config/logger";import{getBasePlugins as c,getContent as l}from"@intlayer/core/interpreter";const u=(u,d,f)=>{let p=o(d);if(!u)return!1;let m=u.location===`local`||typeof u.filePath==`string`?`Local`:`Remote`,h=!!u.key,g=!!u.content;if(!h)return p(`${m} dictionary has no key`,{level:`error`}),!1;if(!g)return p(`${m} dictionary ${i(u.key)} has no content - ${u.filePath?t(u.filePath):a(`Remote`)}`,{level:`error`}),!1;if(u.schema&&f?.checkSchema&&!(typeof u.content==`function`||typeof u.content==`object`&&u.content!==null&&typeof u.content.then==`function`)){let o=d?.internationalization?.locales??[],f=d?.internationalization.strictMode===`strict`,h=typeof u.schema==`string`?d?.schemas?.[u.schema]:void 0;if(h&&typeof h.safeParse==`function`)for(let d of o){let o=l(u.content,{dictionaryKey:u.key,keyPath:[],locale:d},c(d,!f)),g=h.safeParse(o);if(!g.success)return p(`${m} dictionary ${i(u.key)} has invalid content according to schema ${r(u.schema,n.ORANGE)} for locale ${e(d)} - ${u.filePath?t(u.filePath):a(`Remote`)}`,{level:`error`}),g.error.issues.forEach(t=>{p(`${s} Error: ${i(u.key)} - ${e(d)} - ${r(`${t.path.join(`.`)}:`,n.BLUE)} ${r(t.message,n.GREY)}`,{level:`error`})}),!1}}return!0},d=(e,t,n)=>(e??[])?.filter(e=>u(e,t,n));export{d as filterInvalidDictionaries,u as isInvalidDictionary};
|
|
2
2
|
//# sourceMappingURL=filterInvalidDictionaries.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterInvalidDictionaries.mjs","names":[],"sources":["../../src/filterInvalidDictionaries.ts"],"sourcesContent":["import {\n ANSIColors,\n colorize,\n colorizeKey,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport { getContent } from '@intlayer/core/interpreter';\nimport type {
|
|
1
|
+
{"version":3,"file":"filterInvalidDictionaries.mjs","names":[],"sources":["../../src/filterInvalidDictionaries.ts"],"sourcesContent":["import {\n ANSIColors,\n colorize,\n colorizeKey,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport { getBasePlugins, getContent } from '@intlayer/core/interpreter';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { Dictionary } from '@intlayer/types/dictionary';\nimport { formatLocale, formatPath } from './utils/formatter';\n\ntype IsInvalidDictionaryOptions = { checkSchema: boolean };\n\nexport const isInvalidDictionary = (\n dictionary: Dictionary | undefined,\n configuration?: IntlayerConfig,\n options?: IsInvalidDictionaryOptions\n): boolean => {\n const appLogger = getAppLogger(configuration);\n\n if (!dictionary) return false;\n\n const isLocal = Boolean(\n dictionary.location === 'local' || typeof dictionary.filePath === 'string'\n );\n const location = isLocal ? 'Local' : 'Remote';\n const hasKey = Boolean(dictionary.key);\n const hasContent = Boolean(dictionary.content);\n\n if (!hasKey) {\n appLogger(`${location} dictionary has no key`, {\n level: 'error',\n });\n\n return false;\n }\n\n if (!hasContent) {\n appLogger(\n `${location} dictionary ${colorizeKey(dictionary.key)} has no content - ${dictionary.filePath ? formatPath(dictionary.filePath) : colorizePath('Remote')}`,\n {\n level: 'error',\n }\n );\n return false;\n }\n\n if (dictionary.schema && options?.checkSchema) {\n const isAsync =\n typeof dictionary.content === 'function' ||\n (typeof dictionary.content === 'object' &&\n dictionary.content !== null &&\n typeof (dictionary.content as any).then === 'function');\n\n if (!isAsync) {\n const locales = configuration?.internationalization?.locales ?? [];\n const isStrict =\n configuration?.internationalization.strictMode === 'strict';\n\n const schema =\n typeof dictionary.schema === 'string'\n ? configuration?.schemas?.[dictionary.schema]\n : undefined;\n\n if (schema && typeof schema.safeParse === 'function') {\n for (const locale of locales) {\n const resolvedContent = getContent(\n dictionary.content,\n {\n dictionaryKey: dictionary.key,\n keyPath: [],\n locale,\n },\n getBasePlugins(locale, !isStrict)\n );\n const result = (schema as any).safeParse(resolvedContent);\n\n if (!result.success) {\n appLogger(\n `${location} dictionary ${colorizeKey(dictionary.key)} has invalid content according to schema ${colorize(dictionary.schema as string, ANSIColors.ORANGE)} for locale ${formatLocale(locale)} - ${dictionary.filePath ? formatPath(dictionary.filePath) : colorizePath('Remote')}`,\n {\n level: 'error',\n }\n );\n\n result.error.issues.forEach((issue: any) => {\n appLogger(\n `${x} Error: ${colorizeKey(dictionary.key)} - ${formatLocale(locale)} - ${colorize(`${issue.path.join('.')}:`, ANSIColors.BLUE)} ${colorize(issue.message, ANSIColors.GREY)}`,\n {\n level: 'error',\n }\n );\n });\n\n return false;\n }\n }\n }\n }\n }\n\n return true;\n};\n\nexport const filterInvalidDictionaries = (\n dictionaries: (Dictionary | undefined)[] | undefined,\n configuration: IntlayerConfig,\n options?: IsInvalidDictionaryOptions\n): Dictionary[] =>\n (dictionaries ?? [])?.filter((dictionary) =>\n isInvalidDictionary(dictionary, configuration, options)\n ) as Dictionary[];\n"],"mappings":"gRAeA,MAAa,GACX,EACA,EACA,IACY,CACZ,IAAM,EAAY,EAAa,EAAc,CAE7C,GAAI,CAAC,EAAY,MAAO,GAKxB,IAAM,EAFJ,EAAW,WAAa,SAAW,OAAO,EAAW,UAAa,SAEzC,QAAU,SAC/B,EAAS,EAAQ,EAAW,IAC5B,EAAa,EAAQ,EAAW,QAEtC,GAAI,CAAC,EAKH,OAJA,EAAU,GAAG,EAAS,wBAAyB,CAC7C,MAAO,QACR,CAAC,CAEK,GAGT,GAAI,CAAC,EAOH,OANA,EACE,GAAG,EAAS,cAAc,EAAY,EAAW,IAAI,CAAC,oBAAoB,EAAW,SAAW,EAAW,EAAW,SAAS,CAAG,EAAa,SAAS,GACxJ,CACE,MAAO,QACR,CACF,CACM,GAGT,GAAI,EAAW,QAAU,GAAS,aAO5B,EALF,OAAO,EAAW,SAAY,YAC7B,OAAO,EAAW,SAAY,UAC7B,EAAW,UAAY,MACvB,OAAQ,EAAW,QAAgB,MAAS,YAElC,CACZ,IAAM,EAAU,GAAe,sBAAsB,SAAW,EAAE,CAC5D,EACJ,GAAe,qBAAqB,aAAe,SAE/C,EACJ,OAAO,EAAW,QAAW,SACzB,GAAe,UAAU,EAAW,QACpC,IAAA,GAEN,GAAI,GAAU,OAAO,EAAO,WAAc,WACxC,IAAK,IAAM,KAAU,EAAS,CAC5B,IAAM,EAAkB,EACtB,EAAW,QACX,CACE,cAAe,EAAW,IAC1B,QAAS,EAAE,CACX,SACD,CACD,EAAe,EAAQ,CAAC,EAAS,CAClC,CACK,EAAU,EAAe,UAAU,EAAgB,CAEzD,GAAI,CAAC,EAAO,QAiBV,OAhBA,EACE,GAAG,EAAS,cAAc,EAAY,EAAW,IAAI,CAAC,2CAA2C,EAAS,EAAW,OAAkB,EAAW,OAAO,CAAC,cAAc,EAAa,EAAO,CAAC,KAAK,EAAW,SAAW,EAAW,EAAW,SAAS,CAAG,EAAa,SAAS,GAChR,CACE,MAAO,QACR,CACF,CAED,EAAO,MAAM,OAAO,QAAS,GAAe,CAC1C,EACE,GAAG,EAAE,UAAU,EAAY,EAAW,IAAI,CAAC,KAAK,EAAa,EAAO,CAAC,KAAK,EAAS,GAAG,EAAM,KAAK,KAAK,IAAI,CAAC,GAAI,EAAW,KAAK,CAAC,GAAG,EAAS,EAAM,QAAS,EAAW,KAAK,GAC3K,CACE,MAAO,QACR,CACF,EACD,CAEK,IAOjB,MAAO,IAGI,GACX,EACA,EACA,KAEC,GAAgB,EAAE,GAAG,OAAQ,GAC5B,EAAoB,EAAY,EAAe,EAAQ,CACxD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createDictionaryEntryPoint as e}from"./createDictionaryEntryPoint/createDictionaryEntryPoint.mjs";import{buildDictionary as t}from"./buildIntlayerDictionary/buildIntlayerDictionary.mjs";import{runOnce as n}from"./utils/runOnce.mjs";import{createModuleAugmentation as r}from"./createType/createModuleAugmentation.mjs";import{createTypes as i}from"./createType/createType.mjs";import{listDictionariesWithStats as a}from"./listDictionariesPath.mjs";import{loadDictionaries as o}from"./loadDictionaries/loadDictionaries.mjs";import{writeRemoteDictionary as s}from"./buildIntlayerDictionary/writeRemoteDictionary.mjs";import{cleanOutputDir as c}from"./cleanOutputDir.mjs";import{isCachedConfigurationUpToDate as l,writeConfiguration as u}from"./writeConfiguration/index.mjs";import{stat as d}from"node:fs/promises";import{join as f}from"node:path";import{ANSIColors as p,colorize as m,getAppLogger as h}from"@intlayer/config/logger";import{cacheDisk as g}from"@intlayer/config/utils";import _ from"@intlayer/config/package.json"with{type:"json"};const v={clean:!1,format:[`cjs`,`esm`],cacheTimeoutMs:1e3*60*60},y=async(y,b)=>{let x=h(y),S=f(y.system.cacheDir,`intlayer-prepared.lock`),C=g(y,[`intlayer-version`]),w=await C.get(),T=!!(w&&w===_.version),E=await l(y),D=await a(y),O=!1;try{let e=await d(S);O=D.some(t=>t.stats.mtime.getTime()>e.mtime.getTime())}catch{}let k=(await Promise.all(y.plugins??[])).some(e=>!!e.loadDictionaries),{clean:A,format:j,forceRun:M,onIsCached:N,cacheTimeoutMs:P}={...v,forceRun:!T||!E||O||k,...b??{}};await n(S,async()=>{(A||!T)&&await c(y),await C.set(_.version);let n=Date.now();x([`Preparing Intlayer`,m(`(v${_.version})`,p.GREY_DARK)]),await u(y);let a=Date.now();x([`Configuration written`,m(`(${a-n}ms)`,p.GREY_DARK)],{isVerbose:!0});let l=await o(D.map(e=>e.path),y),d=Date.now();x([`Content loaded`,m([l.remoteDictionaries.length+l.pluginDictionaries.length>0?[`(Total: ${d-a}ms`,l.localDictionaries.length>0?` - Local: ${l.time.localDictionaries}ms`:``,l.remoteDictionaries.length>0?` - Remote: ${l.time.remoteDictionaries}ms`:``,l.pluginDictionaries.length>0?` - Plugin: ${l.time.pluginDictionaries}ms`:``,`)`].join(``):`(${d-a}ms)`].join(``),p.GREY_DARK)],{isVerbose:!0});let f=await t([...l.localDictionaries,...l.remoteDictionaries,...l.pluginDictionaries],y,j
|
|
1
|
+
import{createDictionaryEntryPoint as e}from"./createDictionaryEntryPoint/createDictionaryEntryPoint.mjs";import{buildDictionary as t}from"./buildIntlayerDictionary/buildIntlayerDictionary.mjs";import{runOnce as n}from"./utils/runOnce.mjs";import{createModuleAugmentation as r}from"./createType/createModuleAugmentation.mjs";import{createTypes as i}from"./createType/createType.mjs";import{listDictionariesWithStats as a}from"./listDictionariesPath.mjs";import{loadDictionaries as o}from"./loadDictionaries/loadDictionaries.mjs";import{writeRemoteDictionary as s}from"./buildIntlayerDictionary/writeRemoteDictionary.mjs";import{cleanOutputDir as c}from"./cleanOutputDir.mjs";import{isCachedConfigurationUpToDate as l,writeConfiguration as u}from"./writeConfiguration/index.mjs";import{stat as d}from"node:fs/promises";import{join as f}from"node:path";import{ANSIColors as p,colorize as m,getAppLogger as h}from"@intlayer/config/logger";import{cacheDisk as g}from"@intlayer/config/utils";import _ from"@intlayer/config/package.json"with{type:"json"};const v={clean:!1,env:`prod`,format:[`cjs`,`esm`],cacheTimeoutMs:1e3*60*60},y=async(y,b)=>{let x=h(y),S=f(y.system.cacheDir,`intlayer-prepared.lock`),C=g(y,[`intlayer-version`]),w=await C.get(),T=!!(w&&w===_.version),E=await l(y),D=await a(y),O=!1;try{let e=await d(S);O=D.some(t=>t.stats.mtime.getTime()>e.mtime.getTime())}catch{}let k=(await Promise.all(y.plugins??[])).some(e=>!!e.loadDictionaries),{clean:A,format:j,forceRun:M,onIsCached:N,cacheTimeoutMs:P,env:F}={...v,forceRun:!T||!E||O||k,...b??{}};await n(S,async()=>{(A||!T)&&await c(y),await C.set(_.version);let n=Date.now();x([`Preparing Intlayer`,m(`(v${_.version})`,p.GREY_DARK)]),await u(y);let a=Date.now();x([`Configuration written`,m(`(${a-n}ms)`,p.GREY_DARK)],{isVerbose:!0});let l=await o(D.map(e=>e.path),y),d=Date.now();x([`Content loaded`,m([l.remoteDictionaries.length+l.pluginDictionaries.length>0?[`(Total: ${d-a}ms`,l.localDictionaries.length>0?` - Local: ${l.time.localDictionaries}ms`:``,l.remoteDictionaries.length>0?` - Remote: ${l.time.remoteDictionaries}ms`:``,l.pluginDictionaries.length>0?` - Plugin: ${l.time.pluginDictionaries}ms`:``,`)`].join(``):`(${d-a}ms)`].join(``),p.GREY_DARK)],{isVerbose:!0});let f=await t([...l.localDictionaries,...l.remoteDictionaries,...l.pluginDictionaries],y,{formats:j,importOtherDictionaries:!1,env:F});await s(l.remoteDictionaries,y),await i(Object.values(f?.mergedDictionaries??{}).map(e=>e.dictionary),y),await e(y);let h=Date.now();x([`Dictionaries built`,m(`(${h-n}ms)`,p.GREY_DARK)]),await r(y),x([`Module augmentation built`,m(`(${Date.now()-h}ms)`,p.GREY_DARK)],{isVerbose:!0});for await(let e of y.plugins??[]){let{unmergedDictionaries:t,mergedDictionaries:n}=f;await e.afterBuild?.({dictionaries:{unmergedDictionaries:t,mergedDictionaries:n},configuration:y})}x([`Done`,m(`${Date.now()-n}ms`,p.GREEN)],{level:`info`,isVerbose:!0})},{forceRun:M,onIsCached:N,cacheTimeoutMs:P})};export{y as prepareIntlayer};
|
|
2
2
|
//# sourceMappingURL=prepareIntlayer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareIntlayer.mjs","names":[],"sources":["../../src/prepareIntlayer.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { ANSIColors, colorize, getAppLogger } from '@intlayer/config/logger';\nimport packageJson from '@intlayer/config/package.json' with { type: 'json' };\nimport { cacheDisk } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { buildDictionary } from './buildIntlayerDictionary/buildIntlayerDictionary';\nimport { writeRemoteDictionary } from './buildIntlayerDictionary/writeRemoteDictionary';\nimport { cleanOutputDir } from './cleanOutputDir';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint/createDictionaryEntryPoint';\nimport { createModuleAugmentation, createTypes } from './createType/index';\nimport { listDictionariesWithStats } from './listDictionariesPath';\nimport { loadDictionaries } from './loadDictionaries/loadDictionaries';\nimport { runOnce } from './utils/runOnce';\nimport {\n isCachedConfigurationUpToDate,\n writeConfiguration,\n} from './writeConfiguration';\n\ntype PrepareIntlayerOptions = {\n clean?: boolean;\n format?: ('cjs' | 'esm')[];\n forceRun?: boolean;\n cacheTimeoutMs?: number;\n onIsCached?: () => void | Promise<void>;\n};\n\nconst DEFAULT_PREPARE_INTLAYER_OPTIONS = {\n clean: false,\n format: ['cjs', 'esm'],\n cacheTimeoutMs: 1000 * 60 * 60, // 1 hour\n} satisfies PrepareIntlayerOptions;\n\nexport const prepareIntlayer = async (\n configuration: IntlayerConfig,\n options?: PrepareIntlayerOptions\n) => {\n const appLogger = getAppLogger(configuration);\n\n const sentinelPath = join(\n configuration.system.cacheDir,\n 'intlayer-prepared.lock'\n );\n // Clean output dir if the intlayer version has changed\n const versionCache = cacheDisk(configuration, ['intlayer-version']);\n const intlayerCacheVersion = await versionCache.get();\n const isCorrectVersion = Boolean(\n intlayerCacheVersion && intlayerCacheVersion === packageJson.version\n );\n\n const isConfigSimilar = await isCachedConfigurationUpToDate(configuration);\n\n // Check if any dictionary has been changed to force a new rebuild\n const dictionariesWithStats = await listDictionariesWithStats(configuration);\n let isDictionaryChanged = false;\n try {\n // Try catch as sentinel file may not exist yet\n const sentinelStats = await stat(sentinelPath);\n isDictionaryChanged = dictionariesWithStats.some(\n (dictionary) =>\n dictionary.stats.mtime.getTime() > sentinelStats.mtime.getTime()\n );\n } catch {}\n\n const resolvedPlugins = await Promise.all(configuration.plugins ?? []);\n const hasPluginLoadDictionaries = resolvedPlugins.some((plugin) =>\n Boolean(plugin.loadDictionaries)\n ); // Disable cache if any plugin because it can have custom behavior\n\n const { clean, format, forceRun, onIsCached, cacheTimeoutMs } = {\n ...DEFAULT_PREPARE_INTLAYER_OPTIONS,\n forceRun:\n !isCorrectVersion ||\n !isConfigSimilar ||\n isDictionaryChanged ||\n hasPluginLoadDictionaries,\n ...(options ?? {}),\n };\n\n // Skip preparation if it has already been done recently\n await runOnce(\n sentinelPath,\n async () => {\n // comment because of issue with next and webpack\n // await checkVersionsConsistency(configuration);\n\n if (clean || !isCorrectVersion) {\n await cleanOutputDir(configuration);\n }\n\n await versionCache.set(packageJson.version);\n\n const preparationStartMs = Date.now();\n\n appLogger([\n 'Preparing Intlayer',\n colorize(`(v${packageJson.version})`, ANSIColors.GREY_DARK),\n ]);\n\n await writeConfiguration(configuration);\n\n const configurationWrittenTime = Date.now();\n\n appLogger(\n [\n 'Configuration written',\n colorize(\n `(${configurationWrittenTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n const contentDeclarationPaths = dictionariesWithStats.map(\n (dictionary) => dictionary.path\n );\n\n const dictionaries = await loadDictionaries(\n contentDeclarationPaths,\n configuration\n );\n\n const dictionariesLoadedTime = Date.now();\n\n appLogger(\n [\n 'Content loaded',\n colorize(\n [\n dictionaries.remoteDictionaries.length +\n dictionaries.pluginDictionaries.length >\n 0\n ? [\n `(Total: ${dictionariesLoadedTime - configurationWrittenTime}ms`,\n dictionaries.localDictionaries.length > 0\n ? ` - Local: ${dictionaries.time.localDictionaries}ms`\n : '',\n dictionaries.remoteDictionaries.length > 0\n ? ` - Remote: ${dictionaries.time.remoteDictionaries}ms`\n : '',\n dictionaries.pluginDictionaries.length > 0\n ? ` - Plugin: ${dictionaries.time.pluginDictionaries}ms`\n : '',\n `)`,\n ].join('')\n : `(${dictionariesLoadedTime - configurationWrittenTime}ms)`,\n ].join(''),\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Build local dictionaries\n const dictionariesOutput = await buildDictionary(\n [\n ...dictionaries.localDictionaries,\n ...dictionaries.remoteDictionaries,\n ...dictionaries.pluginDictionaries,\n ],\n configuration,\n format,\n false\n );\n\n // Write remote dictionaries\n // Used as cache for next fetch\n await writeRemoteDictionary(\n dictionaries.remoteDictionaries,\n configuration\n );\n\n const dictionariesToBuild = Object.values(\n dictionariesOutput?.mergedDictionaries ?? {}\n ).map((dictionary) => dictionary.dictionary);\n\n await createTypes(dictionariesToBuild, configuration);\n\n await createDictionaryEntryPoint(configuration);\n\n const dictionariesBuiltTime = Date.now();\n\n appLogger([\n 'Dictionaries built',\n colorize(\n `(${dictionariesBuiltTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ]);\n\n await createModuleAugmentation(configuration);\n\n const moduleAugmentationBuiltTime = Date.now();\n\n appLogger(\n [\n 'Module augmentation built',\n colorize(\n `(${moduleAugmentationBuiltTime - dictionariesBuiltTime}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Plugin transformation\n // Allow plugins to post-process the final build output (e.g., write back ICU JSON)\n for await (const plugin of configuration.plugins ?? []) {\n const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;\n\n await plugin.afterBuild?.({\n dictionaries: {\n unmergedDictionaries,\n mergedDictionaries,\n },\n configuration,\n });\n }\n\n const preparationElapsedMs = Date.now() - preparationStartMs;\n appLogger(\n [`Done`, colorize(`${preparationElapsedMs}ms`, ANSIColors.GREEN)],\n {\n level: 'info',\n isVerbose: true,\n }\n );\n },\n {\n forceRun,\n onIsCached,\n cacheTimeoutMs,\n }\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prepareIntlayer.mjs","names":[],"sources":["../../src/prepareIntlayer.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { ANSIColors, colorize, getAppLogger } from '@intlayer/config/logger';\nimport packageJson from '@intlayer/config/package.json' with { type: 'json' };\nimport { cacheDisk } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { buildDictionary } from './buildIntlayerDictionary/buildIntlayerDictionary';\nimport { writeRemoteDictionary } from './buildIntlayerDictionary/writeRemoteDictionary';\nimport { cleanOutputDir } from './cleanOutputDir';\nimport { createDictionaryEntryPoint } from './createDictionaryEntryPoint/createDictionaryEntryPoint';\nimport { createModuleAugmentation, createTypes } from './createType/index';\nimport { listDictionariesWithStats } from './listDictionariesPath';\nimport { loadDictionaries } from './loadDictionaries/loadDictionaries';\nimport { runOnce } from './utils/runOnce';\nimport {\n isCachedConfigurationUpToDate,\n writeConfiguration,\n} from './writeConfiguration';\n\ntype PrepareIntlayerOptions = {\n clean?: boolean;\n env?: 'prod' | 'dev';\n format?: ('cjs' | 'esm')[];\n forceRun?: boolean;\n cacheTimeoutMs?: number;\n onIsCached?: () => void | Promise<void>;\n};\n\nconst DEFAULT_PREPARE_INTLAYER_OPTIONS = {\n clean: false,\n env: 'prod',\n format: ['cjs', 'esm'],\n cacheTimeoutMs: 1000 * 60 * 60, // 1 hour\n} satisfies PrepareIntlayerOptions;\n\nexport const prepareIntlayer = async (\n configuration: IntlayerConfig,\n options?: PrepareIntlayerOptions\n) => {\n const appLogger = getAppLogger(configuration);\n\n const sentinelPath = join(\n configuration.system.cacheDir,\n 'intlayer-prepared.lock'\n );\n // Clean output dir if the intlayer version has changed\n const versionCache = cacheDisk(configuration, ['intlayer-version']);\n const intlayerCacheVersion = await versionCache.get();\n const isCorrectVersion = Boolean(\n intlayerCacheVersion && intlayerCacheVersion === packageJson.version\n );\n\n const isConfigSimilar = await isCachedConfigurationUpToDate(configuration);\n\n // Check if any dictionary has been changed to force a new rebuild\n const dictionariesWithStats = await listDictionariesWithStats(configuration);\n let isDictionaryChanged = false;\n try {\n // Try catch as sentinel file may not exist yet\n const sentinelStats = await stat(sentinelPath);\n isDictionaryChanged = dictionariesWithStats.some(\n (dictionary) =>\n dictionary.stats.mtime.getTime() > sentinelStats.mtime.getTime()\n );\n } catch {}\n\n const resolvedPlugins = await Promise.all(configuration.plugins ?? []);\n const hasPluginLoadDictionaries = resolvedPlugins.some((plugin) =>\n Boolean(plugin.loadDictionaries)\n ); // Disable cache if any plugin because it can have custom behavior\n\n const { clean, format, forceRun, onIsCached, cacheTimeoutMs, env } = {\n ...DEFAULT_PREPARE_INTLAYER_OPTIONS,\n forceRun:\n !isCorrectVersion ||\n !isConfigSimilar ||\n isDictionaryChanged ||\n hasPluginLoadDictionaries,\n ...(options ?? {}),\n };\n\n // Skip preparation if it has already been done recently\n await runOnce(\n sentinelPath,\n async () => {\n // comment because of issue with next and webpack\n // await checkVersionsConsistency(configuration);\n\n if (clean || !isCorrectVersion) {\n await cleanOutputDir(configuration);\n }\n\n await versionCache.set(packageJson.version);\n\n const preparationStartMs = Date.now();\n\n appLogger([\n 'Preparing Intlayer',\n colorize(`(v${packageJson.version})`, ANSIColors.GREY_DARK),\n ]);\n\n await writeConfiguration(configuration);\n\n const configurationWrittenTime = Date.now();\n\n appLogger(\n [\n 'Configuration written',\n colorize(\n `(${configurationWrittenTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n const contentDeclarationPaths = dictionariesWithStats.map(\n (dictionary) => dictionary.path\n );\n\n const dictionaries = await loadDictionaries(\n contentDeclarationPaths,\n configuration\n );\n\n const dictionariesLoadedTime = Date.now();\n\n appLogger(\n [\n 'Content loaded',\n colorize(\n [\n dictionaries.remoteDictionaries.length +\n dictionaries.pluginDictionaries.length >\n 0\n ? [\n `(Total: ${dictionariesLoadedTime - configurationWrittenTime}ms`,\n dictionaries.localDictionaries.length > 0\n ? ` - Local: ${dictionaries.time.localDictionaries}ms`\n : '',\n dictionaries.remoteDictionaries.length > 0\n ? ` - Remote: ${dictionaries.time.remoteDictionaries}ms`\n : '',\n dictionaries.pluginDictionaries.length > 0\n ? ` - Plugin: ${dictionaries.time.pluginDictionaries}ms`\n : '',\n `)`,\n ].join('')\n : `(${dictionariesLoadedTime - configurationWrittenTime}ms)`,\n ].join(''),\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Build local dictionaries\n const dictionariesOutput = await buildDictionary(\n [\n ...dictionaries.localDictionaries,\n ...dictionaries.remoteDictionaries,\n ...dictionaries.pluginDictionaries,\n ],\n configuration,\n { formats: format, importOtherDictionaries: false, env }\n );\n\n // Write remote dictionaries\n // Used as cache for next fetch\n await writeRemoteDictionary(\n dictionaries.remoteDictionaries,\n configuration\n );\n\n const dictionariesToBuild = Object.values(\n dictionariesOutput?.mergedDictionaries ?? {}\n ).map((dictionary) => dictionary.dictionary);\n\n await createTypes(dictionariesToBuild, configuration);\n\n await createDictionaryEntryPoint(configuration);\n\n const dictionariesBuiltTime = Date.now();\n\n appLogger([\n 'Dictionaries built',\n colorize(\n `(${dictionariesBuiltTime - preparationStartMs}ms)`,\n ANSIColors.GREY_DARK\n ),\n ]);\n\n await createModuleAugmentation(configuration);\n\n const moduleAugmentationBuiltTime = Date.now();\n\n appLogger(\n [\n 'Module augmentation built',\n colorize(\n `(${moduleAugmentationBuiltTime - dictionariesBuiltTime}ms)`,\n ANSIColors.GREY_DARK\n ),\n ],\n {\n isVerbose: true,\n }\n );\n\n // Plugin transformation\n // Allow plugins to post-process the final build output (e.g., write back ICU JSON)\n for await (const plugin of configuration.plugins ?? []) {\n const { unmergedDictionaries, mergedDictionaries } = dictionariesOutput;\n\n await plugin.afterBuild?.({\n dictionaries: {\n unmergedDictionaries,\n mergedDictionaries,\n },\n configuration,\n });\n }\n\n const preparationElapsedMs = Date.now() - preparationStartMs;\n appLogger(\n [`Done`, colorize(`${preparationElapsedMs}ms`, ANSIColors.GREEN)],\n {\n level: 'info',\n isVerbose: true,\n }\n );\n },\n {\n forceRun,\n onIsCached,\n cacheTimeoutMs,\n }\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{spawnPosix as e}from"./spawnPosix.mjs";import{spawnWin32 as t}from"./spawnWin32.mjs";import{delimiter as n,join as r}from"node:path";const i=i=>{if(!i||Array.isArray(i)&&i.length===0)throw Error(`Invalid command`);let a=Array.isArray(i)?i.join(` `):i,o=Array.isArray(i),s=o?i[0]:a,c=o?i.slice(1):[],l=r(process.cwd(),`node_modules`,`.bin`),u=Object.keys(process.env).find(e=>e.toLowerCase()===`path`)??`PATH`,d=[l,process.env[u]??``].filter(Boolean).join(n),f={...process.env,[u]:d},p=process.platform===`win32`,m=p?t:e,h={cwd:process.cwd(),stdio:`inherit`,env:f,shell:p},g=o?c.length===0&&/\s/.test(s)?p?m(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,s],h):m(process.env.SHELL??`/bin/sh`,[`-c`,s],h):m(s,c,h):p?m(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,a],h):m(process.env.SHELL??`/bin/sh`,[`-c`,a],h),_=new Promise((e,t)=>{g.on(`error`,e=>{try{console.error(`[runParallel] Failed to start: ${e?.message??String(e)}`)}catch{}b(),t(e)}),g.on(`exit`,(n,r)=>{b(),n===0||r&&[`SIGINT`,`SIGTERM`,`SIGQUIT`,`SIGHUP`].includes(r)?e():t(Object.assign(Error(`Parallel process failed`),{code:n,signal:r}))})}),v=()=>{try{g.kill(`SIGTERM`)}catch{}},y=[{event:`SIGINT`,handler:v},{event:`SIGTERM`,handler:v},{event:`SIGQUIT`,handler:v},{event:`SIGHUP`,handler:v}];y.forEach(({event:e,handler:t})=>{process.on(e,t)});let b=()=>{y.forEach(({event:e,handler:t})=>{process.off(e,t)})};return{kill:()=>{try{g.kill(`SIGTERM`)}catch{}},result:_,commandText:a}};export{i as runParallel};
|
|
1
|
+
import{spawnPosix as e}from"./spawnPosix.mjs";import{spawnWin32 as t}from"./spawnWin32.mjs";import{delimiter as n,join as r}from"node:path";const i=i=>{if(!i||Array.isArray(i)&&i.length===0)throw Error(`Invalid command`);let a=Array.isArray(i)?i.join(` `):i,o=Array.isArray(i),s=o?i[0]:a,c=o?i.slice(1):[],l=r(process.cwd(),`node_modules`,`.bin`),u=Object.keys(process.env).find(e=>e.toLowerCase()===`path`)??`PATH`,d=[l,process.env[u]??``].filter(Boolean).join(n),f={...process.env,[u]:d},p=process.platform===`win32`,m=p?t:e,h={cwd:process.cwd(),stdio:`inherit`,env:f,shell:p},g=o?c.length===0&&/\s/.test(s)?p?m(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,s],h):m(process.env.SHELL??`/bin/sh`,[`-c`,s],h):m(s,c,h):p?m(process.env.ComSpec??`cmd.exe`,[`/d`,`/s`,`/c`,a],h):m(process.env.SHELL??`/bin/sh`,[`-c`,a],h),_=new Promise((e,t)=>{g.on(`error`,e=>{try{console.error(`[runParallel] Failed to start: ${e?.message??String(e)}`)}catch{}b(),t(e)}),g.on(`exit`,(n,r)=>{b(),n===0||new Set([129,130,131,143]).has(n??-1)||r&&[`SIGINT`,`SIGTERM`,`SIGQUIT`,`SIGHUP`].includes(r)?e():t(Object.assign(Error(`Parallel process failed`),{code:n,signal:r}))})}),v=()=>{try{g.kill(`SIGTERM`)}catch{}},y=[{event:`SIGINT`,handler:v},{event:`SIGTERM`,handler:v},{event:`SIGQUIT`,handler:v},{event:`SIGHUP`,handler:v}];y.forEach(({event:e,handler:t})=>{process.on(e,t)});let b=()=>{y.forEach(({event:e,handler:t})=>{process.off(e,t)})};return{kill:()=>{try{g.kill(`SIGTERM`)}catch{}},result:_,commandText:a}};export{i as runParallel};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/utils/runParallel/index.ts"],"sourcesContent":["import { delimiter, join } from 'node:path';\nimport { spawnPosix } from './spawnPosix';\nimport { spawnWin32 } from './spawnWin32';\n\nexport type ParallelHandle = {\n kill: () => void;\n result: Promise<any>;\n commandText: string;\n};\n\n/**\n * Start a cross-platform parallel process using npm-run-all approach.\n * Accepts either a single string (e.g., 'next start') or an array of tokens (e.g., ['next', 'start']).\n */\nexport const runParallel = (proc?: string | string[]): ParallelHandle => {\n if (!proc || (Array.isArray(proc) && proc.length === 0))\n throw new Error('Invalid command');\n\n const commandText = Array.isArray(proc) ? proc.join(' ') : proc;\n\n const isArray = Array.isArray(proc);\n const command = isArray ? (proc as string[])[0] : commandText;\n const args = isArray ? (proc as string[]).slice(1) : [];\n\n // Ensure local binaries (node_modules/.bin) are resolvable\n const cwdBin = join(process.cwd(), 'node_modules', '.bin');\n const PATH_KEY =\n Object.keys(process.env).find((key) => key.toLowerCase() === 'path') ??\n 'PATH';\n\n const extendedPath = [cwdBin, process.env[PATH_KEY] ?? '']\n .filter(Boolean)\n .join(delimiter);\n\n const childEnv = {\n ...process.env,\n [PATH_KEY]: extendedPath,\n } as NodeJS.ProcessEnv;\n\n const isWin = process.platform === 'win32';\n const spawnFunc = isWin ? spawnWin32 : spawnPosix;\n\n // Spawn options\n const spawnOptions = {\n cwd: process.cwd(),\n stdio: 'inherit' as const,\n env: childEnv,\n shell: isWin,\n };\n\n // Spawn the child process\n const child = isArray\n ? // If provided as a single string element that includes spaces, treat it like a shell command\n args.length === 0 && /\\s/.test(command)\n ? isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', command],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', command],\n spawnOptions\n )\n : spawnFunc(command, args, spawnOptions)\n : isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', commandText],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', commandText],\n spawnOptions\n );\n\n const result = new Promise<void>((resolve, reject) => {\n child.on('error', (err) => {\n try {\n console.error(\n `[runParallel] Failed to start: ${err?.message ?? String(err)}`\n );\n } catch {}\n cleanupHandlers();\n reject(err);\n });\n\n child.on('exit', (code, signal) => {\n cleanupHandlers();\n\n // Treat common termination signals as graceful exits, not failures\n const gracefulSignals = ['SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGHUP'];\n if (code === 0
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/utils/runParallel/index.ts"],"sourcesContent":["import { delimiter, join } from 'node:path';\nimport { spawnPosix } from './spawnPosix';\nimport { spawnWin32 } from './spawnWin32';\n\nexport type ParallelHandle = {\n kill: () => void;\n result: Promise<any>;\n commandText: string;\n};\n\n/**\n * Start a cross-platform parallel process using npm-run-all approach.\n * Accepts either a single string (e.g., 'next start') or an array of tokens (e.g., ['next', 'start']).\n */\nexport const runParallel = (proc?: string | string[]): ParallelHandle => {\n if (!proc || (Array.isArray(proc) && proc.length === 0))\n throw new Error('Invalid command');\n\n const commandText = Array.isArray(proc) ? proc.join(' ') : proc;\n\n const isArray = Array.isArray(proc);\n const command = isArray ? (proc as string[])[0] : commandText;\n const args = isArray ? (proc as string[]).slice(1) : [];\n\n // Ensure local binaries (node_modules/.bin) are resolvable\n const cwdBin = join(process.cwd(), 'node_modules', '.bin');\n const PATH_KEY =\n Object.keys(process.env).find((key) => key.toLowerCase() === 'path') ??\n 'PATH';\n\n const extendedPath = [cwdBin, process.env[PATH_KEY] ?? '']\n .filter(Boolean)\n .join(delimiter);\n\n const childEnv = {\n ...process.env,\n [PATH_KEY]: extendedPath,\n } as NodeJS.ProcessEnv;\n\n const isWin = process.platform === 'win32';\n const spawnFunc = isWin ? spawnWin32 : spawnPosix;\n\n // Spawn options\n const spawnOptions = {\n cwd: process.cwd(),\n stdio: 'inherit' as const,\n env: childEnv,\n shell: isWin,\n };\n\n // Spawn the child process\n const child = isArray\n ? // If provided as a single string element that includes spaces, treat it like a shell command\n args.length === 0 && /\\s/.test(command)\n ? isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', command],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', command],\n spawnOptions\n )\n : spawnFunc(command, args, spawnOptions)\n : isWin\n ? spawnFunc(\n process.env.ComSpec ?? 'cmd.exe',\n ['/d', '/s', '/c', commandText],\n spawnOptions\n )\n : spawnFunc(\n process.env.SHELL ?? '/bin/sh',\n ['-c', commandText],\n spawnOptions\n );\n\n const result = new Promise<void>((resolve, reject) => {\n child.on('error', (err) => {\n try {\n console.error(\n `[runParallel] Failed to start: ${err?.message ?? String(err)}`\n );\n } catch {}\n cleanupHandlers();\n reject(err);\n });\n\n child.on('exit', (code, signal) => {\n cleanupHandlers();\n\n // Treat common termination signals as graceful exits, not failures\n const gracefulSignals = ['SIGINT', 'SIGTERM', 'SIGQUIT', 'SIGHUP'];\n // Also treat shell-convention exit codes (128 + signal number) as graceful:\n // 129 = SIGHUP, 130 = SIGINT, 131 = SIGQUIT, 143 = SIGTERM\n const gracefulSignalCodes = new Set([129, 130, 131, 143]);\n if (\n code === 0 ||\n gracefulSignalCodes.has(code ?? -1) ||\n (signal && gracefulSignals.includes(signal))\n ) {\n resolve();\n } else {\n reject(\n Object.assign(new Error('Parallel process failed'), { code, signal })\n );\n }\n });\n });\n\n const cleanup = () => {\n try {\n child.kill('SIGTERM');\n } catch {\n // Best effort\n }\n };\n\n const signalHandlers: { event: string; handler: (...args: any[]) => void }[] =\n [\n { event: 'SIGINT', handler: cleanup },\n { event: 'SIGTERM', handler: cleanup },\n { event: 'SIGQUIT', handler: cleanup },\n { event: 'SIGHUP', handler: cleanup },\n ];\n\n // Register signal handlers\n signalHandlers.forEach(({ event, handler }) => {\n process.on(event as any, handler as any);\n });\n\n const cleanupHandlers = () => {\n signalHandlers.forEach(({ event, handler }) => {\n process.off(event as any, handler as any);\n });\n };\n\n const kill = () => {\n try {\n child.kill('SIGTERM');\n } catch {\n // Best effort\n }\n };\n\n return { kill, result, commandText };\n};\n"],"mappings":"4IAcA,MAAa,EAAe,GAA6C,CACvE,GAAI,CAAC,GAAS,MAAM,QAAQ,EAAK,EAAI,EAAK,SAAW,EACnD,MAAU,MAAM,kBAAkB,CAEpC,IAAM,EAAc,MAAM,QAAQ,EAAK,CAAG,EAAK,KAAK,IAAI,CAAG,EAErD,EAAU,MAAM,QAAQ,EAAK,CAC7B,EAAU,EAAW,EAAkB,GAAK,EAC5C,EAAO,EAAW,EAAkB,MAAM,EAAE,CAAG,EAAE,CAGjD,EAAS,EAAK,QAAQ,KAAK,CAAE,eAAgB,OAAO,CACpD,EACJ,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAM,GAAQ,EAAI,aAAa,GAAK,OAAO,EACpE,OAEI,EAAe,CAAC,EAAQ,QAAQ,IAAI,IAAa,GAAG,CACvD,OAAO,QAAQ,CACf,KAAK,EAAU,CAEZ,EAAW,CACf,GAAG,QAAQ,KACV,GAAW,EACb,CAEK,EAAQ,QAAQ,WAAa,QAC7B,EAAY,EAAQ,EAAa,EAGjC,EAAe,CACnB,IAAK,QAAQ,KAAK,CAClB,MAAO,UACP,IAAK,EACL,MAAO,EACR,CAGK,EAAQ,EAEV,EAAK,SAAW,GAAK,KAAK,KAAK,EAAQ,CACrC,EACE,EACE,QAAQ,IAAI,SAAW,UACvB,CAAC,KAAM,KAAM,KAAM,EAAQ,CAC3B,EACD,CACD,EACE,QAAQ,IAAI,OAAS,UACrB,CAAC,KAAM,EAAQ,CACf,EACD,CACH,EAAU,EAAS,EAAM,EAAa,CACxC,EACE,EACE,QAAQ,IAAI,SAAW,UACvB,CAAC,KAAM,KAAM,KAAM,EAAY,CAC/B,EACD,CACD,EACE,QAAQ,IAAI,OAAS,UACrB,CAAC,KAAM,EAAY,CACnB,EACD,CAED,EAAS,IAAI,SAAe,EAAS,IAAW,CACpD,EAAM,GAAG,QAAU,GAAQ,CACzB,GAAI,CACF,QAAQ,MACN,kCAAkC,GAAK,SAAW,OAAO,EAAI,GAC9D,MACK,EACR,GAAiB,CACjB,EAAO,EAAI,EACX,CAEF,EAAM,GAAG,QAAS,EAAM,IAAW,CACjC,GAAiB,CAQf,IAAS,GAFiB,IAAI,IAAI,CAAC,IAAK,IAAK,IAAK,IAAI,CAAC,CAGnC,IAAI,GAAQ,GAAG,EAClC,GAPqB,CAAC,SAAU,UAAW,UAAW,SAAS,CAOrC,SAAS,EAAO,CAE3C,GAAS,CAET,EACE,OAAO,OAAW,MAAM,0BAA0B,CAAE,CAAE,OAAM,SAAQ,CAAC,CACtE,EAEH,EACF,CAEI,MAAgB,CACpB,GAAI,CACF,EAAM,KAAK,UAAU,MACf,IAKJ,EACJ,CACE,CAAE,MAAO,SAAU,QAAS,EAAS,CACrC,CAAE,MAAO,UAAW,QAAS,EAAS,CACtC,CAAE,MAAO,UAAW,QAAS,EAAS,CACtC,CAAE,MAAO,SAAU,QAAS,EAAS,CACtC,CAGH,EAAe,SAAS,CAAE,QAAO,aAAc,CAC7C,QAAQ,GAAG,EAAc,EAAe,EACxC,CAEF,IAAM,MAAwB,CAC5B,EAAe,SAAS,CAAE,QAAO,aAAc,CAC7C,QAAQ,IAAI,EAAc,EAAe,EACzC,EAWJ,MAAO,CAAE,SARU,CACjB,GAAI,CACF,EAAM,KAAK,UAAU,MACf,IAKK,SAAQ,cAAa"}
|
package/dist/types/build.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildDictionary } from "./buildIntlayerDictionary/buildIntlayerDictionary.js";
|
|
1
|
+
import { BuildDictionariesOptions, buildDictionary } from "./buildIntlayerDictionary/buildIntlayerDictionary.js";
|
|
2
2
|
import { processContentDeclaration } from "./buildIntlayerDictionary/processContentDeclaration.js";
|
|
3
3
|
import { cleanOutputDir } from "./cleanOutputDir.js";
|
|
4
4
|
import { CreateDictionaryEntryPointOptions, createDictionaryEntryPoint } from "./createDictionaryEntryPoint/createDictionaryEntryPoint.js";
|
|
@@ -22,4 +22,4 @@ import { DictionaryStatus } from "./writeContentDeclaration/dictionaryStatus.js"
|
|
|
22
22
|
import { transformJSFile } from "./writeContentDeclaration/transformJSFile.js";
|
|
23
23
|
import { writeContentDeclaration } from "./writeContentDeclaration/writeContentDeclaration.js";
|
|
24
24
|
import { writeJSFile } from "./writeContentDeclaration/writeJSFile.js";
|
|
25
|
-
export { CreateDictionaryEntryPointOptions, DictionariesStatus, DictionaryStatus, buildDictionary, cleanOutputDir, createDictionaryEntryPoint, createModuleAugmentation, createTypes, detectExportedComponentName, ensureIntlayerBundle, formatDictionaries, formatDictionariesOutput, formatDictionary, formatDictionaryOutput, formatDistantDictionaries, formatLocalDictionaries, generateDictionaryListContent, generateTypeScriptType, getBuiltDictionariesPath, getBuiltDynamicDictionariesPath, getBuiltFetchDictionariesPath, getBuiltRemoteDictionariesPath, getBuiltUnmergedDictionariesPath, getTypeName, isCachedConfigurationUpToDate, loadContentDeclaration, loadContentDeclarations, loadDictionaries, loadLocalDictionaries, loadRemoteDictionaries, prepareIntlayer, processContentDeclaration, transformJSFile, writeConfiguration, writeContentDeclaration, writeJSFile };
|
|
25
|
+
export { BuildDictionariesOptions, CreateDictionaryEntryPointOptions, DictionariesStatus, DictionaryStatus, buildDictionary, cleanOutputDir, createDictionaryEntryPoint, createModuleAugmentation, createTypes, detectExportedComponentName, ensureIntlayerBundle, formatDictionaries, formatDictionariesOutput, formatDictionary, formatDictionaryOutput, formatDistantDictionaries, formatLocalDictionaries, generateDictionaryListContent, generateTypeScriptType, getBuiltDictionariesPath, getBuiltDynamicDictionariesPath, getBuiltFetchDictionariesPath, getBuiltRemoteDictionariesPath, getBuiltUnmergedDictionariesPath, getTypeName, isCachedConfigurationUpToDate, loadContentDeclaration, loadContentDeclarations, loadDictionaries, loadLocalDictionaries, loadRemoteDictionaries, prepareIntlayer, processContentDeclaration, transformJSFile, writeConfiguration, writeContentDeclaration, writeJSFile };
|
|
@@ -5,15 +5,20 @@ import * as _intlayer_types_config0 from "@intlayer/types/config";
|
|
|
5
5
|
import { Dictionary } from "@intlayer/types/dictionary";
|
|
6
6
|
|
|
7
7
|
//#region src/buildIntlayerDictionary/buildIntlayerDictionary.d.ts
|
|
8
|
+
type BuildDictionariesOptions = Partial<{
|
|
9
|
+
formats: ('cjs' | 'esm')[];
|
|
10
|
+
importOtherDictionaries: boolean;
|
|
11
|
+
env: 'prod' | 'dev';
|
|
12
|
+
}>;
|
|
8
13
|
/**
|
|
9
14
|
* This function transpile the bundled code to to make dictionaries as JSON files
|
|
10
15
|
*/
|
|
11
|
-
declare const buildDictionary: (localDictionariesEntries: Dictionary[], configuration?: _intlayer_types_config0.IntlayerConfig,
|
|
16
|
+
declare const buildDictionary: (localDictionariesEntries: Dictionary[], configuration?: _intlayer_types_config0.IntlayerConfig, options?: BuildDictionariesOptions) => Promise<{
|
|
12
17
|
unmergedDictionaries: UnmergedDictionaryOutput;
|
|
13
18
|
mergedDictionaries: MergedDictionaryOutput;
|
|
14
19
|
dynamicDictionaries: LocalizedDictionaryOutput;
|
|
15
20
|
fetchDictionaries: LocalizedDictionaryOutput;
|
|
16
21
|
}>;
|
|
17
22
|
//#endregion
|
|
18
|
-
export { buildDictionary };
|
|
23
|
+
export { BuildDictionariesOptions, buildDictionary };
|
|
19
24
|
//# sourceMappingURL=buildIntlayerDictionary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildIntlayerDictionary.d.ts","names":[],"sources":["../../../src/buildIntlayerDictionary/buildIntlayerDictionary.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildIntlayerDictionary.d.ts","names":[],"sources":["../../../src/buildIntlayerDictionary/buildIntlayerDictionary.ts"],"mappings":";;;;;;;KAYY,wBAAA,GAA2B,OAAA;EACrC,OAAA;EACA,uBAAA;EACA,GAAA;AAAA;AAHF;;;AAAA,cAea,eAAA,GACX,wBAAA,EAA0B,UAAA,IAC1B,aAAA,GADoC,uBAAA,CACpC,cAAA,EACA,OAAA,GAAU,wBAAA,KAAwB,OAAA;wBAAA,wBAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { buildDictionary } from "./buildIntlayerDictionary.js";
|
|
1
|
+
import { BuildDictionariesOptions, buildDictionary } from "./buildIntlayerDictionary.js";
|
|
2
2
|
import { processContentDeclaration } from "./processContentDeclaration.js";
|
|
3
|
-
export { buildDictionary, processContentDeclaration };
|
|
3
|
+
export { BuildDictionariesOptions, buildDictionary, processContentDeclaration };
|
|
@@ -28,7 +28,7 @@ type UnmergedDictionaryOutput = Record<DictionaryKey, UnmergedDictionaryResult>;
|
|
|
28
28
|
* // }
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
|
-
declare const writeUnmergedDictionaries: (dictionaries: Dictionary[], configuration: IntlayerConfig) => Promise<UnmergedDictionaryOutput>;
|
|
31
|
+
declare const writeUnmergedDictionaries: (dictionaries: Dictionary[], configuration: IntlayerConfig, env: "prod" | "dev") => Promise<UnmergedDictionaryOutput>;
|
|
32
32
|
//#endregion
|
|
33
33
|
export { UnmergedDictionaryOutput, UnmergedDictionaryResult, groupDictionariesByKey, writeUnmergedDictionaries };
|
|
34
34
|
//# sourceMappingURL=writeUnmergedDictionary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeUnmergedDictionary.d.ts","names":[],"sources":["../../../src/buildIntlayerDictionary/writeUnmergedDictionary.ts"],"mappings":";;;;cAUa,sBAAA,GACX,YAAA,EAAc,UAAA,OACb,MAAA,SAAe,UAAA;AAAA,KAaN,wBAAA;EACV,cAAA;EACA,YAAA,EAAc,UAAA;AAAA;AAAA,KAGJ,wBAAA,GAA2B,MAAA,CACrC,aAAA,EACA,wBAAA;;;;;;;;;;;AAPF;;;;;;;;;AAKA;cAyBa,yBAAA,GACX,YAAA,EAAc,UAAA,IACd,aAAA,EAAe,cAAA,
|
|
1
|
+
{"version":3,"file":"writeUnmergedDictionary.d.ts","names":[],"sources":["../../../src/buildIntlayerDictionary/writeUnmergedDictionary.ts"],"mappings":";;;;cAUa,sBAAA,GACX,YAAA,EAAc,UAAA,OACb,MAAA,SAAe,UAAA;AAAA,KAaN,wBAAA;EACV,cAAA;EACA,YAAA,EAAc,UAAA;AAAA;AAAA,KAGJ,wBAAA,GAA2B,MAAA,CACrC,aAAA,EACA,wBAAA;;;;;;;;;;;AAPF;;;;;;;;;AAKA;cAyBa,yBAAA,GACX,YAAA,EAAc,UAAA,IACd,aAAA,EAAe,cAAA,EACf,GAAA,qBACC,OAAA,CAAQ,wBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareIntlayer.d.ts","names":[],"sources":["../../src/prepareIntlayer.ts"],"mappings":";;;KAmBK,sBAAA;EACH,KAAA;EACA,MAAA;EACA,QAAA;EACA,cAAA;EACA,UAAA,gBAA0B,OAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"prepareIntlayer.d.ts","names":[],"sources":["../../src/prepareIntlayer.ts"],"mappings":";;;KAmBK,sBAAA;EACH,KAAA;EACA,GAAA;EACA,MAAA;EACA,QAAA;EACA,cAAA;EACA,UAAA,gBAA0B,OAAA;AAAA;AAAA,cAUf,eAAA,GACX,aAAA,EAAe,cAAA,EACf,OAAA,GAAU,sBAAA,KAAsB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/chokidar",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.0-canary.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Uses chokidar to scan and build Intlayer declaration files into dictionaries based on Intlayer configuration.",
|
|
6
6
|
"keywords": [
|
|
@@ -102,13 +102,13 @@
|
|
|
102
102
|
},
|
|
103
103
|
"dependencies": {
|
|
104
104
|
"@babel/parser": "7.29.0",
|
|
105
|
-
"@intlayer/api": "8.
|
|
106
|
-
"@intlayer/config": "8.
|
|
107
|
-
"@intlayer/core": "8.
|
|
108
|
-
"@intlayer/dictionaries-entry": "8.
|
|
109
|
-
"@intlayer/remote-dictionaries-entry": "8.
|
|
110
|
-
"@intlayer/types": "8.
|
|
111
|
-
"@intlayer/unmerged-dictionaries-entry": "8.
|
|
105
|
+
"@intlayer/api": "8.4.0-canary.0",
|
|
106
|
+
"@intlayer/config": "8.4.0-canary.0",
|
|
107
|
+
"@intlayer/core": "8.4.0-canary.0",
|
|
108
|
+
"@intlayer/dictionaries-entry": "8.4.0-canary.0",
|
|
109
|
+
"@intlayer/remote-dictionaries-entry": "8.4.0-canary.0",
|
|
110
|
+
"@intlayer/types": "8.4.0-canary.0",
|
|
111
|
+
"@intlayer/unmerged-dictionaries-entry": "8.4.0-canary.0",
|
|
112
112
|
"chokidar": "3.6.0",
|
|
113
113
|
"defu": "6.1.4",
|
|
114
114
|
"fast-glob": "3.3.3",
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"@utils/ts-config-types": "1.0.4",
|
|
123
123
|
"@utils/tsdown-config": "1.0.4",
|
|
124
124
|
"rimraf": "6.1.3",
|
|
125
|
-
"tsdown": "0.21.
|
|
125
|
+
"tsdown": "0.21.4",
|
|
126
126
|
"typescript": "5.9.3",
|
|
127
127
|
"vitest": "4.1.0",
|
|
128
128
|
"zod": "4.3.6"
|