@intlayer/chokidar 8.3.0 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/logConfigDetails.cjs +1 -1
- package/dist/cjs/logConfigDetails.cjs.map +1 -1
- package/dist/cjs/utils/buildComponentFilesList.cjs +2 -0
- package/dist/cjs/utils/buildComponentFilesList.cjs.map +1 -0
- package/dist/cjs/utils/buildFilesList.cjs +1 -1
- package/dist/cjs/utils/buildFilesList.cjs.map +1 -1
- package/dist/cjs/utils/index.cjs +1 -1
- package/dist/esm/logConfigDetails.mjs +1 -1
- package/dist/esm/logConfigDetails.mjs.map +1 -1
- package/dist/esm/utils/buildComponentFilesList.mjs +2 -0
- package/dist/esm/utils/buildComponentFilesList.mjs.map +1 -0
- package/dist/esm/utils/buildFilesList.mjs +1 -1
- package/dist/esm/utils/buildFilesList.mjs.map +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/types/utils/buildComponentFilesList.d.ts +26 -0
- package/dist/types/utils/buildComponentFilesList.d.ts.map +1 -0
- package/dist/types/utils/buildFilesList.d.ts +35 -20
- package/dist/types/utils/buildFilesList.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +2 -3
- package/package.json +8 -8
- package/dist/cjs/utils/getComponentTransformPattern.cjs +0 -2
- package/dist/cjs/utils/getComponentTransformPattern.cjs.map +0 -1
- package/dist/esm/utils/getComponentTransformPattern.mjs +0 -2
- package/dist/esm/utils/getComponentTransformPattern.mjs.map +0 -1
- package/dist/types/utils/getComponentTransformPattern.d.ts +0 -8
- package/dist/types/utils/getComponentTransformPattern.d.ts.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./_virtual/_rolldown/runtime.cjs`);const e=require(`./utils/formatter.cjs`),t=require(`./utils/runOnce.cjs`);let n=require(`node:path`),r=require(`@intlayer/config/logger`),i=require(`@intlayer/config/node`),a=require(`@intlayer/config/env`);const o=o=>{let{configuration:s,customConfiguration:c,numCustomConfiguration:l,configurationFilePath:u}=(0,i.getConfigurationAndFilePath)(o),d=(0,r.getAppLogger)(s);t.runOnce((0,n.join)(s.system.baseDir,`.intlayer`,`cache`,`intlayer-config-locaded.lock`),()=>{if(l===0)d(`Configuration file not found, using default configuration.`,{isVerbose:!0});else{let t=s.system.baseDir,r=(0,n.relative)(t,u);if(l===1){let t=(0,a.getEnvFilePath)(o?.env,o?.envFile);d(`Configuration loaded ${e.formatPath(r)}${t?` - Env: ${e.formatPath(t)}`:``}`,{isVerbose:!0})}else d(`Multiple configuration files found, using ${e.formatPath(r)}.`,{isVerbose:!0})}if(c){let e=i.intlayerConfigSchema.safeParse(c);e.success||d(`${r.x} Invalid configuration:\n${e.error.issues.map(e=>`${(0,r.colorizePath)(` - ${e.path.join(`.`)}:`)} ${(0,r.colorize)(e.message,r.ANSIColors.GREY_DARK)}`).join(`
|
|
2
|
-
`)}`),c.
|
|
2
|
+
`)}`),c.build?.importMode&&d(`${(0,r.colorize)(`build.importMode`,r.ANSIColors.BLUE)} is deprecated, use ${(0,r.colorize)(`dictionary.importMode`,r.ANSIColors.BLUE)} instead`),c.compiler?.transformPattern&&d(`${(0,r.colorize)(`compiler.transformPattern`,r.ANSIColors.BLUE)} is deprecated, use ${(0,r.colorize)(`build.traversePattern`,r.ANSIColors.BLUE)} instead`),c.compiler?.excludePattern&&d(`${(0,r.colorize)(`compiler.excludePattern`,r.ANSIColors.BLUE)} is deprecated, use ${(0,r.colorize)(`build.traversePattern`,r.ANSIColors.BLUE)} instead`)}},{cacheTimeoutMs:1e3*60})};exports.logConfigDetails=o;
|
|
3
3
|
//# sourceMappingURL=logConfigDetails.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logConfigDetails.cjs","names":["formatPath","intlayerConfigSchema","x","ANSIColors"],"sources":["../../src/logConfigDetails.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport {\n ANSIColors,\n colorize,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport {\n type GetConfigurationOptions,\n getConfigurationAndFilePath,\n intlayerConfigSchema,\n} from '@intlayer/config/node';\nimport { formatPath, runOnce } from './utils';\n\nexport const logConfigDetails = (options?: GetConfigurationOptions) => {\n const {\n configuration,\n customConfiguration,\n numCustomConfiguration,\n configurationFilePath,\n } = getConfigurationAndFilePath(options);\n const appLogger = getAppLogger(configuration);\n\n runOnce(\n join(\n configuration.system.baseDir,\n '.intlayer',\n 'cache',\n 'intlayer-config-locaded.lock'\n ),\n () => {\n if (numCustomConfiguration === 0) {\n appLogger(\n 'Configuration file not found, using default configuration.',\n {\n isVerbose: true,\n }\n );\n } else {\n const baseDir = configuration.system.baseDir;\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n const dotEnvFilePath = getEnvFilePath(options?.env, options?.envFile);\n\n appLogger(\n `Configuration loaded ${formatPath(relativeOutputPath)}${dotEnvFilePath ? ` - Env: ${formatPath(dotEnvFilePath)}` : ''}`,\n {\n isVerbose: true,\n }\n );\n } else {\n appLogger(\n `Multiple configuration files found, using ${formatPath(relativeOutputPath)}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n\n if (customConfiguration) {\n const validation = intlayerConfigSchema.safeParse(customConfiguration);\n\n if (!validation.success) {\n const errorMessages = validation.error.issues\n .map((error) => {\n const path = colorizePath(` - ${error.path.join('.')}:`);\n const message = colorize(error.message, ANSIColors.GREY_DARK);\n return `${path} ${message}`;\n })\n .join('\\n');\n const errorMessage = `${x} Invalid configuration:\\n${errorMessages}`;\n\n appLogger(errorMessage);\n }\n\n
|
|
1
|
+
{"version":3,"file":"logConfigDetails.cjs","names":["formatPath","intlayerConfigSchema","x","ANSIColors"],"sources":["../../src/logConfigDetails.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport {\n ANSIColors,\n colorize,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport {\n type GetConfigurationOptions,\n getConfigurationAndFilePath,\n intlayerConfigSchema,\n} from '@intlayer/config/node';\nimport { formatPath, runOnce } from './utils';\n\nexport const logConfigDetails = (options?: GetConfigurationOptions) => {\n const {\n configuration,\n customConfiguration,\n numCustomConfiguration,\n configurationFilePath,\n } = getConfigurationAndFilePath(options);\n const appLogger = getAppLogger(configuration);\n\n runOnce(\n join(\n configuration.system.baseDir,\n '.intlayer',\n 'cache',\n 'intlayer-config-locaded.lock'\n ),\n () => {\n if (numCustomConfiguration === 0) {\n appLogger(\n 'Configuration file not found, using default configuration.',\n {\n isVerbose: true,\n }\n );\n } else {\n const baseDir = configuration.system.baseDir;\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n const dotEnvFilePath = getEnvFilePath(options?.env, options?.envFile);\n\n appLogger(\n `Configuration loaded ${formatPath(relativeOutputPath)}${dotEnvFilePath ? ` - Env: ${formatPath(dotEnvFilePath)}` : ''}`,\n {\n isVerbose: true,\n }\n );\n } else {\n appLogger(\n `Multiple configuration files found, using ${formatPath(relativeOutputPath)}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n\n if (customConfiguration) {\n const validation = intlayerConfigSchema.safeParse(customConfiguration);\n\n if (!validation.success) {\n const errorMessages = validation.error.issues\n .map((error) => {\n const path = colorizePath(` - ${error.path.join('.')}:`);\n const message = colorize(error.message, ANSIColors.GREY_DARK);\n return `${path} ${message}`;\n })\n .join('\\n');\n const errorMessage = `${x} Invalid configuration:\\n${errorMessages}`;\n\n appLogger(errorMessage);\n }\n\n if (customConfiguration.build?.importMode) {\n appLogger(\n `${colorize('build.importMode', ANSIColors.BLUE)} is deprecated, use ${colorize('dictionary.importMode', ANSIColors.BLUE)} instead`\n );\n }\n if (customConfiguration.compiler?.transformPattern) {\n appLogger(\n `${colorize('compiler.transformPattern', ANSIColors.BLUE)} is deprecated, use ${colorize('build.traversePattern', ANSIColors.BLUE)} instead`\n );\n }\n if (customConfiguration.compiler?.excludePattern) {\n appLogger(\n `${colorize('compiler.excludePattern', ANSIColors.BLUE)} is deprecated, use ${colorize('build.traversePattern', ANSIColors.BLUE)} instead`\n );\n }\n }\n },\n {\n cacheTimeoutMs: 1000 * 60, // 1 minute\n }\n );\n};\n"],"mappings":"8TAgBA,MAAa,EAAoB,GAAsC,CACrE,GAAM,CACJ,gBACA,sBACA,yBACA,0BAAA,EAAA,EAAA,6BAC8B,EAAQ,CAClC,GAAA,EAAA,EAAA,cAAyB,EAAc,CAE7C,EAAA,SAAA,EAAA,EAAA,MAEI,EAAc,OAAO,QACrB,YACA,QACA,+BACD,KACK,CACJ,GAAI,IAA2B,EAC7B,EACE,6DACA,CACE,UAAW,GACZ,CACF,KACI,CACL,IAAM,EAAU,EAAc,OAAO,QAC/B,GAAA,EAAA,EAAA,UAA8B,EAAS,EAAuB,CAEpE,GAAI,IAA2B,EAAG,CAChC,IAAM,GAAA,EAAA,EAAA,gBAAgC,GAAS,IAAK,GAAS,QAAQ,CAErE,EACE,wBAAwBA,EAAAA,WAAW,EAAmB,GAAG,EAAiB,WAAWA,EAAAA,WAAW,EAAe,GAAK,KACpH,CACE,UAAW,GACZ,CACF,MAED,EACE,6CAA6CA,EAAAA,WAAW,EAAmB,CAAC,GAC5E,CACE,UAAW,GACZ,CACF,CAIL,GAAI,EAAqB,CACvB,IAAM,EAAaC,EAAAA,qBAAqB,UAAU,EAAoB,CAEjE,EAAW,SAUd,EAFqB,GAAGC,EAAAA,EAAE,2BAPJ,EAAW,MAAM,OACpC,IAAK,GAGG,IAAA,EAAA,EAAA,cAFmB,MAAM,EAAM,KAAK,KAAK,IAAI,CAAC,GAAG,CAEzC,IAAA,EAAA,EAAA,UADU,EAAM,QAASC,EAAAA,WAAW,UAAU,GAE7D,CACD,KAAK;EAAK,GAGU,CAGrB,EAAoB,OAAO,YAC7B,EACE,IAAA,EAAA,EAAA,UAAY,mBAAoBA,EAAAA,WAAW,KAAK,CAAC,uBAAA,EAAA,EAAA,UAA+B,wBAAyBA,EAAAA,WAAW,KAAK,CAAC,UAC3H,CAEC,EAAoB,UAAU,kBAChC,EACE,IAAA,EAAA,EAAA,UAAY,4BAA6BA,EAAAA,WAAW,KAAK,CAAC,uBAAA,EAAA,EAAA,UAA+B,wBAAyBA,EAAAA,WAAW,KAAK,CAAC,UACpI,CAEC,EAAoB,UAAU,gBAChC,EACE,IAAA,EAAA,EAAA,UAAY,0BAA2BA,EAAAA,WAAW,KAAK,CAAC,uBAAA,EAAA,EAAA,UAA+B,wBAAyBA,EAAAA,WAAW,KAAK,CAAC,UAClI,GAIP,CACE,eAAgB,IAAO,GACxB,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`node:path`),n=require(`fast-glob`);n=e.__toESM(n);const r=e=>Array.isArray(e)?e:[e],i=e=>{let n=Array.from(new Set(e.map(e=>(0,t.resolve)(e))));return n.sort((e,t)=>e.length-t.length),n.reduce((e,n)=>(e.some(e=>{let r=(0,t.relative)(e,n);return!r.startsWith(`..`)&&!(0,t.isAbsolute)(r)&&r!==``})||e.push(n),e),[])},a=(e,a)=>{let o=e.build.traversePattern,s=e.compiler.transformPattern,c=e.content.watchedFilesPattern,l=[...o,...r(s)].filter(e=>typeof e==`string`).filter(e=>!e.startsWith(`!`)).map(e=>(0,t.normalize)(e)),u=[...a??[],...c,...o.filter(e=>typeof e==`string`&&e.startsWith(`!`)).map(e=>e.slice(1))].filter(e=>typeof e==`string`).map(e=>(0,t.normalize)(e)),d=i([e.system.baseDir,...e.content.codeDir]).flatMap(e=>n.default.sync(l,{cwd:e,ignore:u,absolute:!0,dot:!0}));return Array.from(new Set(d))};exports.buildComponentFilesList=a;
|
|
2
|
+
//# sourceMappingURL=buildComponentFilesList.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildComponentFilesList.cjs","names":["fg"],"sources":["../../../src/utils/buildComponentFilesList.ts"],"sourcesContent":["import { isAbsolute, normalize, relative, resolve } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport fg from 'fast-glob';\n\n/**\n * Normalizes a pattern value to an array\n */\nconst normalizeToArray = <T>(value: T | T[]): T[] =>\n Array.isArray(value) ? value : [value];\n\n/**\n * Remove directories that are subdirectories of others in the list so files\n * are never scanned twice.\n * Example: ['/root', '/root/src'] → ['/root']\n */\nconst getDistinctRootDirs = (dirs: string[]): string[] => {\n const uniqueDirs = Array.from(new Set(dirs.map((dir) => resolve(dir))));\n uniqueDirs.sort((a, b) => a.length - b.length);\n\n return uniqueDirs.reduce((acc: string[], dir) => {\n const isNested = acc.some((parent) => {\n const rel = relative(parent, dir);\n\n return !rel.startsWith('..') && !isAbsolute(rel) && rel !== '';\n });\n if (!isNested) acc.push(dir);\n\n return acc;\n }, []);\n};\n\n/**\n * Builds a deduplicated list of absolute file paths matching the given patterns.\n *\n * Handles multiple root directories (deduplicates overlapping roots), exclude\n * patterns, negation patterns embedded in `transformPattern`, and optional\n * dot-file inclusion.\n *\n * @example\n * // Single root with excludes\n * const files = buildComponentFilesList({\n * transformPattern: 'src/**\\/*.{ts,tsx}',\n * excludePattern: ['**\\/node_modules\\/**'],\n * baseDir: '/path/to/project',\n * });\n *\n * @example\n * // Multiple roots (e.g. baseDir + codeDir), dot files included\n * const files = buildComponentFilesList(config, ['**\\/node_modules\\/**']);\n */\nexport const buildComponentFilesList = (\n config: IntlayerConfig,\n excludePattern?: string[]\n): string[] => {\n const transformPattern = config.build.traversePattern;\n const compilerTransformPattern = config.compiler.transformPattern;\n const contentDeclarationPattern = config.content.watchedFilesPattern;\n\n const patterns = [\n ...transformPattern,\n ...normalizeToArray(compilerTransformPattern),\n ]\n .filter((pattern) => typeof pattern === 'string')\n .filter((pattern) => !pattern.startsWith('!'))\n .map((pattern) => normalize(pattern)); // Ensure it works with Windows\n\n const excludePatterns = [\n ...(excludePattern ?? []),\n ...contentDeclarationPattern,\n // Treat negation entries in transformPattern as additional excludes\n ...transformPattern\n .filter(\n (pattern) => typeof pattern === 'string' && pattern.startsWith('!')\n )\n .map((pattern) => pattern.slice(1)),\n ]\n .filter((pattern) => typeof pattern === 'string')\n .map((pattern) => normalize(pattern)); // Ensure it works with Windows\n\n const roots = getDistinctRootDirs([\n config.system.baseDir,\n ...config.content.codeDir,\n ]);\n\n const fileList = roots.flatMap((root) =>\n fg.sync(patterns, {\n cwd: root,\n ignore: excludePatterns,\n absolute: true,\n dot: true, // include dot files like .next / .intlayer\n })\n );\n\n return Array.from(new Set(fileList));\n};\n"],"mappings":"yLAOA,MAAM,EAAuB,GAC3B,MAAM,QAAQ,EAAM,CAAG,EAAQ,CAAC,EAAM,CAOlC,EAAuB,GAA6B,CACxD,IAAM,EAAa,MAAM,KAAK,IAAI,IAAI,EAAK,IAAK,IAAA,EAAA,EAAA,SAAgB,EAAI,CAAC,CAAC,CAAC,CAGvE,OAFA,EAAW,MAAM,EAAG,IAAM,EAAE,OAAS,EAAE,OAAO,CAEvC,EAAW,QAAQ,EAAe,KACtB,EAAI,KAAM,GAAW,CACpC,IAAM,GAAA,EAAA,EAAA,UAAe,EAAQ,EAAI,CAEjC,MAAO,CAAC,EAAI,WAAW,KAAK,EAAI,EAAA,EAAA,EAAA,YAAY,EAAI,EAAI,IAAQ,IAC5D,EACa,EAAI,KAAK,EAAI,CAErB,GACN,EAAE,CAAC,EAsBK,GACX,EACA,IACa,CACb,IAAM,EAAmB,EAAO,MAAM,gBAChC,EAA2B,EAAO,SAAS,iBAC3C,EAA4B,EAAO,QAAQ,oBAE3C,EAAW,CACf,GAAG,EACH,GAAG,EAAiB,EAAyB,CAC9C,CACE,OAAQ,GAAY,OAAO,GAAY,SAAS,CAChD,OAAQ,GAAY,CAAC,EAAQ,WAAW,IAAI,CAAC,CAC7C,IAAK,IAAA,EAAA,EAAA,WAAsB,EAAQ,CAAC,CAEjC,EAAkB,CACtB,GAAI,GAAkB,EAAE,CACxB,GAAG,EAEH,GAAG,EACA,OACE,GAAY,OAAO,GAAY,UAAY,EAAQ,WAAW,IAAI,CACpE,CACA,IAAK,GAAY,EAAQ,MAAM,EAAE,CAAC,CACtC,CACE,OAAQ,GAAY,OAAO,GAAY,SAAS,CAChD,IAAK,IAAA,EAAA,EAAA,WAAsB,EAAQ,CAAC,CAOjC,EALQ,EAAoB,CAChC,EAAO,OAAO,QACd,GAAG,EAAO,QAAQ,QACnB,CAAC,CAEqB,QAAS,GAC9BA,EAAAA,QAAG,KAAK,EAAU,CAChB,IAAK,EACL,OAAQ,EACR,SAAU,GACV,IAAK,GACN,CAAC,CACH,CAED,OAAO,MAAM,KAAK,IAAI,IAAI,EAAS,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`node:path`),n=require(`fast-glob`);n=e.__toESM(n);const r=e=>Array.isArray(e)?e:[e],i=e=>{let{transformPattern:
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`node:path`),n=require(`fast-glob`);n=e.__toESM(n);const r=e=>Array.isArray(e)?e:[e],i=e=>{let n=Array.from(new Set(e.map(e=>(0,t.resolve)(e))));return n.sort((e,t)=>e.length-t.length),n.reduce((e,n)=>(e.some(e=>{let r=(0,t.relative)(e,n);return!r.startsWith(`..`)&&!(0,t.isAbsolute)(r)&&r!==``})||e.push(n),e),[])},a=e=>{let{transformPattern:a,excludePattern:o=[],baseDir:s,dot:c=!1}=e,l=r(a).filter(e=>typeof e==`string`&&!e.startsWith(`!`)).map(t.normalize),u=[...r(o),...r(a).filter(e=>typeof e==`string`&&e.startsWith(`!`)).map(e=>e.slice(1))].filter(e=>typeof e==`string`).map(t.normalize),d=i(r(s));return Array.from(new Set(d.flatMap(e=>n.default.sync(l,{cwd:e,ignore:u,absolute:!0,dot:c}))))},o=e=>{let{build:{traversePattern:t},system:{baseDir:n},content:{codeDir:r,fileExtensions:i},compiler:{excludePattern:o}}=e;return a({transformPattern:t,excludePattern:[...i.map(e=>`**/*${e}`),...Array.isArray(o)?o:[o]].filter(e=>typeof e==`string`),baseDir:[n,...r],dot:!0})};exports.buildComponentFilesList=a,exports.buildComponentFilesListFromConfig=o;
|
|
2
2
|
//# sourceMappingURL=buildFilesList.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFilesList.cjs","names":["normalize","fg"],"sources":["../../../src/utils/buildFilesList.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"buildFilesList.cjs","names":["normalize","fg"],"sources":["../../../src/utils/buildFilesList.ts"],"sourcesContent":["import { isAbsolute, normalize, relative, resolve } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport fg from 'fast-glob';\n\n/**\n * Options for building the files list\n */\nexport type BuildComponentFilesListOptions = {\n /**\n * Glob patterns to match files\n */\n transformPattern: string | string[];\n /**\n * Glob patterns to exclude files\n */\n excludePattern?: string | string[];\n /**\n * Base directory (or directories) for file resolution.\n * When multiple directories are provided, subdirectories of others are\n * automatically deduplicated so files are never scanned twice.\n */\n baseDir: string | string[];\n /**\n * Whether to include dot-prefixed files and directories (default: false)\n */\n dot?: boolean;\n};\n\n/**\n * Normalizes a pattern value to an array\n */\nconst normalizeToArray = <T>(value: T | T[]): T[] =>\n Array.isArray(value) ? value : [value];\n\n/**\n * Remove directories that are subdirectories of others in the list so files\n * are never scanned twice.\n * Example: ['/root', '/root/src'] → ['/root']\n */\nconst getDistinctRootDirs = (dirs: string[]): string[] => {\n const uniqueDirs = Array.from(new Set(dirs.map((dir) => resolve(dir))));\n uniqueDirs.sort((a, b) => a.length - b.length);\n\n return uniqueDirs.reduce((acc: string[], dir) => {\n const isNested = acc.some((parent) => {\n const rel = relative(parent, dir);\n return !rel.startsWith('..') && !isAbsolute(rel) && rel !== '';\n });\n if (!isNested) acc.push(dir);\n return acc;\n }, []);\n};\n\n/**\n * Builds a deduplicated list of absolute file paths matching the given patterns.\n *\n * Handles multiple root directories (deduplicates overlapping roots), exclude\n * patterns, negation patterns embedded in `transformPattern`, and optional\n * dot-file inclusion.\n *\n * @example\n * // Single root with excludes\n * const files = buildComponentFilesList({\n * transformPattern: 'src/**\\/*.{ts,tsx}',\n * excludePattern: ['**\\/node_modules\\/**'],\n * baseDir: '/path/to/project',\n * });\n *\n * @example\n * // Multiple roots (e.g. baseDir + codeDir), dot files included\n * const files = buildComponentFilesList({\n * transformPattern: config.build.traversePattern,\n * baseDir: [config.system.baseDir, ...config.content.codeDir],\n * dot: true,\n * });\n */\nexport const buildComponentFilesList = (\n config: BuildComponentFilesListOptions\n): string[] => {\n const {\n transformPattern,\n excludePattern = [],\n baseDir,\n dot = false,\n } = config;\n\n const patterns = normalizeToArray(transformPattern)\n .filter(\n (pattern): pattern is string =>\n typeof pattern === 'string' && !pattern.startsWith('!')\n )\n .map(normalize); // Ensure it works with Windows\n\n const excludePatterns = [\n ...normalizeToArray(excludePattern),\n // Treat negation entries in transformPattern as additional excludes\n ...normalizeToArray(transformPattern)\n .filter(\n (pattern): pattern is string =>\n typeof pattern === 'string' && pattern.startsWith('!')\n )\n .map((pattern) => pattern.slice(1)),\n ]\n .filter((pattern): pattern is string => typeof pattern === 'string')\n .map(normalize); // Ensure it works with Windows\n\n const roots = getDistinctRootDirs(normalizeToArray(baseDir));\n\n return Array.from(\n new Set(\n roots.flatMap((root) =>\n fg.sync(patterns, {\n cwd: root,\n ignore: excludePatterns,\n absolute: true,\n dot,\n })\n )\n )\n );\n};\n\n/**\n * Convenience wrapper that derives all file-list options directly from an\n * `IntlayerConfig` object.\n *\n * Scans `[baseDir, ...codeDir]` using `build.traversePattern`, excludes\n * content declaration file extensions and any `compiler.excludePattern`\n * entries defined in the configuration, and includes dot files.\n */\nexport const buildComponentFilesListFromConfig = (\n intlayerConfig: IntlayerConfig\n): string[] => {\n const {\n build: { traversePattern },\n system: { baseDir },\n content: { codeDir, fileExtensions },\n compiler: { excludePattern },\n } = intlayerConfig;\n\n const excludePatterns = [\n // Exclude content declaration files (e.g. **/*.content.ts)\n ...fileExtensions.map((ext) => `**/*${ext}`),\n ...(Array.isArray(excludePattern) ? excludePattern : [excludePattern]),\n ].filter((p): p is string => typeof p === 'string');\n\n return buildComponentFilesList({\n transformPattern: traversePattern,\n excludePattern: excludePatterns,\n baseDir: [baseDir, ...codeDir],\n dot: true,\n });\n};\n"],"mappings":"yLA+BA,MAAM,EAAuB,GAC3B,MAAM,QAAQ,EAAM,CAAG,EAAQ,CAAC,EAAM,CAOlC,EAAuB,GAA6B,CACxD,IAAM,EAAa,MAAM,KAAK,IAAI,IAAI,EAAK,IAAK,IAAA,EAAA,EAAA,SAAgB,EAAI,CAAC,CAAC,CAAC,CAGvE,OAFA,EAAW,MAAM,EAAG,IAAM,EAAE,OAAS,EAAE,OAAO,CAEvC,EAAW,QAAQ,EAAe,KACtB,EAAI,KAAM,GAAW,CACpC,IAAM,GAAA,EAAA,EAAA,UAAe,EAAQ,EAAI,CACjC,MAAO,CAAC,EAAI,WAAW,KAAK,EAAI,EAAA,EAAA,EAAA,YAAY,EAAI,EAAI,IAAQ,IAC5D,EACa,EAAI,KAAK,EAAI,CACrB,GACN,EAAE,CAAC,EA0BK,EACX,GACa,CACb,GAAM,CACJ,mBACA,iBAAiB,EAAE,CACnB,UACA,MAAM,IACJ,EAEE,EAAW,EAAiB,EAAiB,CAChD,OACE,GACC,OAAO,GAAY,UAAY,CAAC,EAAQ,WAAW,IAAI,CAC1D,CACA,IAAIA,EAAAA,UAAU,CAEX,EAAkB,CACtB,GAAG,EAAiB,EAAe,CAEnC,GAAG,EAAiB,EAAiB,CAClC,OACE,GACC,OAAO,GAAY,UAAY,EAAQ,WAAW,IAAI,CACzD,CACA,IAAK,GAAY,EAAQ,MAAM,EAAE,CAAC,CACtC,CACE,OAAQ,GAA+B,OAAO,GAAY,SAAS,CACnE,IAAIA,EAAAA,UAAU,CAEX,EAAQ,EAAoB,EAAiB,EAAQ,CAAC,CAE5D,OAAO,MAAM,KACX,IAAI,IACF,EAAM,QAAS,GACbC,EAAAA,QAAG,KAAK,EAAU,CAChB,IAAK,EACL,OAAQ,EACR,SAAU,GACV,MACD,CAAC,CACH,CACF,CACF,EAWU,EACX,GACa,CACb,GAAM,CACJ,MAAO,CAAE,mBACT,OAAQ,CAAE,WACV,QAAS,CAAE,UAAS,kBACpB,SAAU,CAAE,mBACV,EAQJ,OAAO,EAAwB,CAC7B,iBAAkB,EAClB,eARsB,CAEtB,GAAG,EAAe,IAAK,GAAQ,OAAO,IAAM,CAC5C,GAAI,MAAM,QAAQ,EAAe,CAAG,EAAiB,CAAC,EAAe,CACtE,CAAC,OAAQ,GAAmB,OAAO,GAAM,SAAS,CAKjD,QAAS,CAAC,EAAS,GAAG,EAAQ,CAC9B,IAAK,GACN,CAAC"}
|
package/dist/cjs/utils/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./pLimit.cjs`),t=require(`./parallelize.cjs`),n=require(`./getPathHash.cjs`),r=require(`./formatter.cjs`),i=require(`./autoDecorateContent.cjs`),a=require(`./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./pLimit.cjs`),t=require(`./parallelize.cjs`),n=require(`./getPathHash.cjs`),r=require(`./formatter.cjs`),i=require(`./autoDecorateContent.cjs`),a=require(`./buildComponentFilesList.cjs`),o=require(`./splitTextByLine.cjs`),s=require(`./getChunk.cjs`),c=require(`./chunkJSON.cjs`),l=require(`./getContentExtension.cjs`),u=require(`./getFormatFromExtension.cjs`),d=require(`./mergeChunks.cjs`),f=require(`./parallelizeGlobal.cjs`),p=require(`./reduceObjectFormat.cjs`),m=require(`./resolveObjectPromises.cjs`),h=require(`./resolveRelativePath.cjs`),g=require(`./runOnce.cjs`),_=require(`./runParallel/index.cjs`),v=require(`./sortAlphabetically.cjs`),y=require(`./verifyIdenticObjectFormat.cjs`);exports.Queue=e.Queue,exports.assembleJSON=c.assembleJSON,exports.autoDecorateContent=i.autoDecorateContent,exports.buildComponentFilesList=a.buildComponentFilesList,exports.chunkJSON=c.chunkJSON,exports.formatLocale=r.formatLocale,exports.formatPath=r.formatPath,exports.getChunk=s.getChunk,exports.getContentExtension=l.getContentExtension,exports.getExtensionFromFormat=u.getExtensionFromFormat,exports.getFormatFromExtension=u.getFormatFromExtension,exports.getGlobalLimiter=f.getGlobalLimiter,exports.getPathHash=n.getPathHash,exports.getTaskLimiter=f.getTaskLimiter,exports.mergeChunks=d.mergeChunks,exports.pLimit=e.pLimit,exports.parallelize=t.parallelize,exports.parallelizeGlobal=f.parallelizeGlobal,exports.reconstructFromSingleChunk=c.reconstructFromSingleChunk,exports.reduceObjectFormat=p.reduceObjectFormat,exports.resolveObjectPromises=m.resolveObjectPromises,exports.resolveRelativePath=h.resolveRelativePath,exports.runOnce=g.runOnce,exports.runParallel=_.runParallel,exports.sortAlphabetically=v.sortAlphabetically,exports.splitTextByLines=o.splitTextByLines,exports.verifyIdenticObjectFormat=y.verifyIdenticObjectFormat;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import{formatPath as e}from"./utils/formatter.mjs";import{runOnce as t}from"./utils/runOnce.mjs";import{join as n,relative as r}from"node:path";import{ANSIColors as i,colorize as a,colorizePath as o,getAppLogger as s,x as c}from"@intlayer/config/logger";import{getConfigurationAndFilePath as l,intlayerConfigSchema as u}from"@intlayer/config/node";import{getEnvFilePath as d}from"@intlayer/config/env";const f=f=>{let{configuration:p,customConfiguration:m,numCustomConfiguration:h,configurationFilePath:g}=l(f),_=s(p);t(n(p.system.baseDir,`.intlayer`,`cache`,`intlayer-config-locaded.lock`),()=>{if(h===0)_(`Configuration file not found, using default configuration.`,{isVerbose:!0});else{let t=p.system.baseDir,n=r(t,g);if(h===1){let t=d(f?.env,f?.envFile);_(`Configuration loaded ${e(n)}${t?` - Env: ${e(t)}`:``}`,{isVerbose:!0})}else _(`Multiple configuration files found, using ${e(n)}.`,{isVerbose:!0})}if(m){let e=u.safeParse(m);e.success||_(`${c} Invalid configuration:\n${e.error.issues.map(e=>`${o(` - ${e.path.join(`.`)}:`)} ${a(e.message,i.GREY_DARK)}`).join(`
|
|
2
|
-
`)}`),m.
|
|
2
|
+
`)}`),m.build?.importMode&&_(`${a(`build.importMode`,i.BLUE)} is deprecated, use ${a(`dictionary.importMode`,i.BLUE)} instead`),m.compiler?.transformPattern&&_(`${a(`compiler.transformPattern`,i.BLUE)} is deprecated, use ${a(`build.traversePattern`,i.BLUE)} instead`),m.compiler?.excludePattern&&_(`${a(`compiler.excludePattern`,i.BLUE)} is deprecated, use ${a(`build.traversePattern`,i.BLUE)} instead`)}},{cacheTimeoutMs:1e3*60})};export{f as logConfigDetails};
|
|
3
3
|
//# sourceMappingURL=logConfigDetails.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logConfigDetails.mjs","names":[],"sources":["../../src/logConfigDetails.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport {\n ANSIColors,\n colorize,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport {\n type GetConfigurationOptions,\n getConfigurationAndFilePath,\n intlayerConfigSchema,\n} from '@intlayer/config/node';\nimport { formatPath, runOnce } from './utils';\n\nexport const logConfigDetails = (options?: GetConfigurationOptions) => {\n const {\n configuration,\n customConfiguration,\n numCustomConfiguration,\n configurationFilePath,\n } = getConfigurationAndFilePath(options);\n const appLogger = getAppLogger(configuration);\n\n runOnce(\n join(\n configuration.system.baseDir,\n '.intlayer',\n 'cache',\n 'intlayer-config-locaded.lock'\n ),\n () => {\n if (numCustomConfiguration === 0) {\n appLogger(\n 'Configuration file not found, using default configuration.',\n {\n isVerbose: true,\n }\n );\n } else {\n const baseDir = configuration.system.baseDir;\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n const dotEnvFilePath = getEnvFilePath(options?.env, options?.envFile);\n\n appLogger(\n `Configuration loaded ${formatPath(relativeOutputPath)}${dotEnvFilePath ? ` - Env: ${formatPath(dotEnvFilePath)}` : ''}`,\n {\n isVerbose: true,\n }\n );\n } else {\n appLogger(\n `Multiple configuration files found, using ${formatPath(relativeOutputPath)}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n\n if (customConfiguration) {\n const validation = intlayerConfigSchema.safeParse(customConfiguration);\n\n if (!validation.success) {\n const errorMessages = validation.error.issues\n .map((error) => {\n const path = colorizePath(` - ${error.path.join('.')}:`);\n const message = colorize(error.message, ANSIColors.GREY_DARK);\n return `${path} ${message}`;\n })\n .join('\\n');\n const errorMessage = `${x} Invalid configuration:\\n${errorMessages}`;\n\n appLogger(errorMessage);\n }\n\n
|
|
1
|
+
{"version":3,"file":"logConfigDetails.mjs","names":[],"sources":["../../src/logConfigDetails.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { getEnvFilePath } from '@intlayer/config/env';\nimport {\n ANSIColors,\n colorize,\n colorizePath,\n getAppLogger,\n x,\n} from '@intlayer/config/logger';\nimport {\n type GetConfigurationOptions,\n getConfigurationAndFilePath,\n intlayerConfigSchema,\n} from '@intlayer/config/node';\nimport { formatPath, runOnce } from './utils';\n\nexport const logConfigDetails = (options?: GetConfigurationOptions) => {\n const {\n configuration,\n customConfiguration,\n numCustomConfiguration,\n configurationFilePath,\n } = getConfigurationAndFilePath(options);\n const appLogger = getAppLogger(configuration);\n\n runOnce(\n join(\n configuration.system.baseDir,\n '.intlayer',\n 'cache',\n 'intlayer-config-locaded.lock'\n ),\n () => {\n if (numCustomConfiguration === 0) {\n appLogger(\n 'Configuration file not found, using default configuration.',\n {\n isVerbose: true,\n }\n );\n } else {\n const baseDir = configuration.system.baseDir;\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n const dotEnvFilePath = getEnvFilePath(options?.env, options?.envFile);\n\n appLogger(\n `Configuration loaded ${formatPath(relativeOutputPath)}${dotEnvFilePath ? ` - Env: ${formatPath(dotEnvFilePath)}` : ''}`,\n {\n isVerbose: true,\n }\n );\n } else {\n appLogger(\n `Multiple configuration files found, using ${formatPath(relativeOutputPath)}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n\n if (customConfiguration) {\n const validation = intlayerConfigSchema.safeParse(customConfiguration);\n\n if (!validation.success) {\n const errorMessages = validation.error.issues\n .map((error) => {\n const path = colorizePath(` - ${error.path.join('.')}:`);\n const message = colorize(error.message, ANSIColors.GREY_DARK);\n return `${path} ${message}`;\n })\n .join('\\n');\n const errorMessage = `${x} Invalid configuration:\\n${errorMessages}`;\n\n appLogger(errorMessage);\n }\n\n if (customConfiguration.build?.importMode) {\n appLogger(\n `${colorize('build.importMode', ANSIColors.BLUE)} is deprecated, use ${colorize('dictionary.importMode', ANSIColors.BLUE)} instead`\n );\n }\n if (customConfiguration.compiler?.transformPattern) {\n appLogger(\n `${colorize('compiler.transformPattern', ANSIColors.BLUE)} is deprecated, use ${colorize('build.traversePattern', ANSIColors.BLUE)} instead`\n );\n }\n if (customConfiguration.compiler?.excludePattern) {\n appLogger(\n `${colorize('compiler.excludePattern', ANSIColors.BLUE)} is deprecated, use ${colorize('build.traversePattern', ANSIColors.BLUE)} instead`\n );\n }\n }\n },\n {\n cacheTimeoutMs: 1000 * 60, // 1 minute\n }\n );\n};\n"],"mappings":"kZAgBA,MAAa,EAAoB,GAAsC,CACrE,GAAM,CACJ,gBACA,sBACA,yBACA,yBACE,EAA4B,EAAQ,CAClC,EAAY,EAAa,EAAc,CAE7C,EACE,EACE,EAAc,OAAO,QACrB,YACA,QACA,+BACD,KACK,CACJ,GAAI,IAA2B,EAC7B,EACE,6DACA,CACE,UAAW,GACZ,CACF,KACI,CACL,IAAM,EAAU,EAAc,OAAO,QAC/B,EAAqB,EAAS,EAAS,EAAuB,CAEpE,GAAI,IAA2B,EAAG,CAChC,IAAM,EAAiB,EAAe,GAAS,IAAK,GAAS,QAAQ,CAErE,EACE,wBAAwB,EAAW,EAAmB,GAAG,EAAiB,WAAW,EAAW,EAAe,GAAK,KACpH,CACE,UAAW,GACZ,CACF,MAED,EACE,6CAA6C,EAAW,EAAmB,CAAC,GAC5E,CACE,UAAW,GACZ,CACF,CAIL,GAAI,EAAqB,CACvB,IAAM,EAAa,EAAqB,UAAU,EAAoB,CAEjE,EAAW,SAUd,EAFqB,GAAG,EAAE,2BAPJ,EAAW,MAAM,OACpC,IAAK,GAGG,GAFM,EAAa,MAAM,EAAM,KAAK,KAAK,IAAI,CAAC,GAAG,CAEzC,GADC,EAAS,EAAM,QAAS,EAAW,UAAU,GAE7D,CACD,KAAK;EAAK,GAGU,CAGrB,EAAoB,OAAO,YAC7B,EACE,GAAG,EAAS,mBAAoB,EAAW,KAAK,CAAC,sBAAsB,EAAS,wBAAyB,EAAW,KAAK,CAAC,UAC3H,CAEC,EAAoB,UAAU,kBAChC,EACE,GAAG,EAAS,4BAA6B,EAAW,KAAK,CAAC,sBAAsB,EAAS,wBAAyB,EAAW,KAAK,CAAC,UACpI,CAEC,EAAoB,UAAU,gBAChC,EACE,GAAG,EAAS,0BAA2B,EAAW,KAAK,CAAC,sBAAsB,EAAS,wBAAyB,EAAW,KAAK,CAAC,UAClI,GAIP,CACE,eAAgB,IAAO,GACxB,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{isAbsolute as e,normalize as t,relative as n,resolve as r}from"node:path";import i from"fast-glob";const a=e=>Array.isArray(e)?e:[e],o=t=>{let i=Array.from(new Set(t.map(e=>r(e))));return i.sort((e,t)=>e.length-t.length),i.reduce((t,r)=>(t.some(t=>{let i=n(t,r);return!i.startsWith(`..`)&&!e(i)&&i!==``})||t.push(r),t),[])},s=(e,n)=>{let r=e.build.traversePattern,s=e.compiler.transformPattern,c=e.content.watchedFilesPattern,l=[...r,...a(s)].filter(e=>typeof e==`string`).filter(e=>!e.startsWith(`!`)).map(e=>t(e)),u=[...n??[],...c,...r.filter(e=>typeof e==`string`&&e.startsWith(`!`)).map(e=>e.slice(1))].filter(e=>typeof e==`string`).map(e=>t(e)),d=o([e.system.baseDir,...e.content.codeDir]).flatMap(e=>i.sync(l,{cwd:e,ignore:u,absolute:!0,dot:!0}));return Array.from(new Set(d))};export{s as buildComponentFilesList};
|
|
2
|
+
//# sourceMappingURL=buildComponentFilesList.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildComponentFilesList.mjs","names":[],"sources":["../../../src/utils/buildComponentFilesList.ts"],"sourcesContent":["import { isAbsolute, normalize, relative, resolve } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport fg from 'fast-glob';\n\n/**\n * Normalizes a pattern value to an array\n */\nconst normalizeToArray = <T>(value: T | T[]): T[] =>\n Array.isArray(value) ? value : [value];\n\n/**\n * Remove directories that are subdirectories of others in the list so files\n * are never scanned twice.\n * Example: ['/root', '/root/src'] → ['/root']\n */\nconst getDistinctRootDirs = (dirs: string[]): string[] => {\n const uniqueDirs = Array.from(new Set(dirs.map((dir) => resolve(dir))));\n uniqueDirs.sort((a, b) => a.length - b.length);\n\n return uniqueDirs.reduce((acc: string[], dir) => {\n const isNested = acc.some((parent) => {\n const rel = relative(parent, dir);\n\n return !rel.startsWith('..') && !isAbsolute(rel) && rel !== '';\n });\n if (!isNested) acc.push(dir);\n\n return acc;\n }, []);\n};\n\n/**\n * Builds a deduplicated list of absolute file paths matching the given patterns.\n *\n * Handles multiple root directories (deduplicates overlapping roots), exclude\n * patterns, negation patterns embedded in `transformPattern`, and optional\n * dot-file inclusion.\n *\n * @example\n * // Single root with excludes\n * const files = buildComponentFilesList({\n * transformPattern: 'src/**\\/*.{ts,tsx}',\n * excludePattern: ['**\\/node_modules\\/**'],\n * baseDir: '/path/to/project',\n * });\n *\n * @example\n * // Multiple roots (e.g. baseDir + codeDir), dot files included\n * const files = buildComponentFilesList(config, ['**\\/node_modules\\/**']);\n */\nexport const buildComponentFilesList = (\n config: IntlayerConfig,\n excludePattern?: string[]\n): string[] => {\n const transformPattern = config.build.traversePattern;\n const compilerTransformPattern = config.compiler.transformPattern;\n const contentDeclarationPattern = config.content.watchedFilesPattern;\n\n const patterns = [\n ...transformPattern,\n ...normalizeToArray(compilerTransformPattern),\n ]\n .filter((pattern) => typeof pattern === 'string')\n .filter((pattern) => !pattern.startsWith('!'))\n .map((pattern) => normalize(pattern)); // Ensure it works with Windows\n\n const excludePatterns = [\n ...(excludePattern ?? []),\n ...contentDeclarationPattern,\n // Treat negation entries in transformPattern as additional excludes\n ...transformPattern\n .filter(\n (pattern) => typeof pattern === 'string' && pattern.startsWith('!')\n )\n .map((pattern) => pattern.slice(1)),\n ]\n .filter((pattern) => typeof pattern === 'string')\n .map((pattern) => normalize(pattern)); // Ensure it works with Windows\n\n const roots = getDistinctRootDirs([\n config.system.baseDir,\n ...config.content.codeDir,\n ]);\n\n const fileList = roots.flatMap((root) =>\n fg.sync(patterns, {\n cwd: root,\n ignore: excludePatterns,\n absolute: true,\n dot: true, // include dot files like .next / .intlayer\n })\n );\n\n return Array.from(new Set(fileList));\n};\n"],"mappings":"0GAOA,MAAM,EAAuB,GAC3B,MAAM,QAAQ,EAAM,CAAG,EAAQ,CAAC,EAAM,CAOlC,EAAuB,GAA6B,CACxD,IAAM,EAAa,MAAM,KAAK,IAAI,IAAI,EAAK,IAAK,GAAQ,EAAQ,EAAI,CAAC,CAAC,CAAC,CAGvE,OAFA,EAAW,MAAM,EAAG,IAAM,EAAE,OAAS,EAAE,OAAO,CAEvC,EAAW,QAAQ,EAAe,KACtB,EAAI,KAAM,GAAW,CACpC,IAAM,EAAM,EAAS,EAAQ,EAAI,CAEjC,MAAO,CAAC,EAAI,WAAW,KAAK,EAAI,CAAC,EAAW,EAAI,EAAI,IAAQ,IAC5D,EACa,EAAI,KAAK,EAAI,CAErB,GACN,EAAE,CAAC,EAsBK,GACX,EACA,IACa,CACb,IAAM,EAAmB,EAAO,MAAM,gBAChC,EAA2B,EAAO,SAAS,iBAC3C,EAA4B,EAAO,QAAQ,oBAE3C,EAAW,CACf,GAAG,EACH,GAAG,EAAiB,EAAyB,CAC9C,CACE,OAAQ,GAAY,OAAO,GAAY,SAAS,CAChD,OAAQ,GAAY,CAAC,EAAQ,WAAW,IAAI,CAAC,CAC7C,IAAK,GAAY,EAAU,EAAQ,CAAC,CAEjC,EAAkB,CACtB,GAAI,GAAkB,EAAE,CACxB,GAAG,EAEH,GAAG,EACA,OACE,GAAY,OAAO,GAAY,UAAY,EAAQ,WAAW,IAAI,CACpE,CACA,IAAK,GAAY,EAAQ,MAAM,EAAE,CAAC,CACtC,CACE,OAAQ,GAAY,OAAO,GAAY,SAAS,CAChD,IAAK,GAAY,EAAU,EAAQ,CAAC,CAOjC,EALQ,EAAoB,CAChC,EAAO,OAAO,QACd,GAAG,EAAO,QAAQ,QACnB,CAAC,CAEqB,QAAS,GAC9B,EAAG,KAAK,EAAU,CAChB,IAAK,EACL,OAAQ,EACR,SAAU,GACV,IAAK,GACN,CAAC,CACH,CAED,OAAO,MAAM,KAAK,IAAI,IAAI,EAAS,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{isAbsolute as e,normalize as t,relative as n,resolve as r}from"node:path";import i from"fast-glob";const a=e=>Array.isArray(e)?e:[e],o=t=>{let i=Array.from(new Set(t.map(e=>r(e))));return i.sort((e,t)=>e.length-t.length),i.reduce((t,r)=>(t.some(t=>{let i=n(t,r);return!i.startsWith(`..`)&&!e(i)&&i!==``})||t.push(r),t),[])},s=e=>{let{transformPattern:n,excludePattern:r=[],baseDir:s,dot:c=!1}=e,l=a(n).filter(e=>typeof e==`string`&&!e.startsWith(`!`)).map(t),u=[...a(r),...a(n).filter(e=>typeof e==`string`&&e.startsWith(`!`)).map(e=>e.slice(1))].filter(e=>typeof e==`string`).map(t),d=o(a(s));return Array.from(new Set(d.flatMap(e=>i.sync(l,{cwd:e,ignore:u,absolute:!0,dot:c}))))},c=e=>{let{build:{traversePattern:t},system:{baseDir:n},content:{codeDir:r,fileExtensions:i},compiler:{excludePattern:a}}=e;return s({transformPattern:t,excludePattern:[...i.map(e=>`**/*${e}`),...Array.isArray(a)?a:[a]].filter(e=>typeof e==`string`),baseDir:[n,...r],dot:!0})};export{s as buildComponentFilesList,c as buildComponentFilesListFromConfig};
|
|
2
2
|
//# sourceMappingURL=buildFilesList.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFilesList.mjs","names":[],"sources":["../../../src/utils/buildFilesList.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"buildFilesList.mjs","names":[],"sources":["../../../src/utils/buildFilesList.ts"],"sourcesContent":["import { isAbsolute, normalize, relative, resolve } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport fg from 'fast-glob';\n\n/**\n * Options for building the files list\n */\nexport type BuildComponentFilesListOptions = {\n /**\n * Glob patterns to match files\n */\n transformPattern: string | string[];\n /**\n * Glob patterns to exclude files\n */\n excludePattern?: string | string[];\n /**\n * Base directory (or directories) for file resolution.\n * When multiple directories are provided, subdirectories of others are\n * automatically deduplicated so files are never scanned twice.\n */\n baseDir: string | string[];\n /**\n * Whether to include dot-prefixed files and directories (default: false)\n */\n dot?: boolean;\n};\n\n/**\n * Normalizes a pattern value to an array\n */\nconst normalizeToArray = <T>(value: T | T[]): T[] =>\n Array.isArray(value) ? value : [value];\n\n/**\n * Remove directories that are subdirectories of others in the list so files\n * are never scanned twice.\n * Example: ['/root', '/root/src'] → ['/root']\n */\nconst getDistinctRootDirs = (dirs: string[]): string[] => {\n const uniqueDirs = Array.from(new Set(dirs.map((dir) => resolve(dir))));\n uniqueDirs.sort((a, b) => a.length - b.length);\n\n return uniqueDirs.reduce((acc: string[], dir) => {\n const isNested = acc.some((parent) => {\n const rel = relative(parent, dir);\n return !rel.startsWith('..') && !isAbsolute(rel) && rel !== '';\n });\n if (!isNested) acc.push(dir);\n return acc;\n }, []);\n};\n\n/**\n * Builds a deduplicated list of absolute file paths matching the given patterns.\n *\n * Handles multiple root directories (deduplicates overlapping roots), exclude\n * patterns, negation patterns embedded in `transformPattern`, and optional\n * dot-file inclusion.\n *\n * @example\n * // Single root with excludes\n * const files = buildComponentFilesList({\n * transformPattern: 'src/**\\/*.{ts,tsx}',\n * excludePattern: ['**\\/node_modules\\/**'],\n * baseDir: '/path/to/project',\n * });\n *\n * @example\n * // Multiple roots (e.g. baseDir + codeDir), dot files included\n * const files = buildComponentFilesList({\n * transformPattern: config.build.traversePattern,\n * baseDir: [config.system.baseDir, ...config.content.codeDir],\n * dot: true,\n * });\n */\nexport const buildComponentFilesList = (\n config: BuildComponentFilesListOptions\n): string[] => {\n const {\n transformPattern,\n excludePattern = [],\n baseDir,\n dot = false,\n } = config;\n\n const patterns = normalizeToArray(transformPattern)\n .filter(\n (pattern): pattern is string =>\n typeof pattern === 'string' && !pattern.startsWith('!')\n )\n .map(normalize); // Ensure it works with Windows\n\n const excludePatterns = [\n ...normalizeToArray(excludePattern),\n // Treat negation entries in transformPattern as additional excludes\n ...normalizeToArray(transformPattern)\n .filter(\n (pattern): pattern is string =>\n typeof pattern === 'string' && pattern.startsWith('!')\n )\n .map((pattern) => pattern.slice(1)),\n ]\n .filter((pattern): pattern is string => typeof pattern === 'string')\n .map(normalize); // Ensure it works with Windows\n\n const roots = getDistinctRootDirs(normalizeToArray(baseDir));\n\n return Array.from(\n new Set(\n roots.flatMap((root) =>\n fg.sync(patterns, {\n cwd: root,\n ignore: excludePatterns,\n absolute: true,\n dot,\n })\n )\n )\n );\n};\n\n/**\n * Convenience wrapper that derives all file-list options directly from an\n * `IntlayerConfig` object.\n *\n * Scans `[baseDir, ...codeDir]` using `build.traversePattern`, excludes\n * content declaration file extensions and any `compiler.excludePattern`\n * entries defined in the configuration, and includes dot files.\n */\nexport const buildComponentFilesListFromConfig = (\n intlayerConfig: IntlayerConfig\n): string[] => {\n const {\n build: { traversePattern },\n system: { baseDir },\n content: { codeDir, fileExtensions },\n compiler: { excludePattern },\n } = intlayerConfig;\n\n const excludePatterns = [\n // Exclude content declaration files (e.g. **/*.content.ts)\n ...fileExtensions.map((ext) => `**/*${ext}`),\n ...(Array.isArray(excludePattern) ? excludePattern : [excludePattern]),\n ].filter((p): p is string => typeof p === 'string');\n\n return buildComponentFilesList({\n transformPattern: traversePattern,\n excludePattern: excludePatterns,\n baseDir: [baseDir, ...codeDir],\n dot: true,\n });\n};\n"],"mappings":"0GA+BA,MAAM,EAAuB,GAC3B,MAAM,QAAQ,EAAM,CAAG,EAAQ,CAAC,EAAM,CAOlC,EAAuB,GAA6B,CACxD,IAAM,EAAa,MAAM,KAAK,IAAI,IAAI,EAAK,IAAK,GAAQ,EAAQ,EAAI,CAAC,CAAC,CAAC,CAGvE,OAFA,EAAW,MAAM,EAAG,IAAM,EAAE,OAAS,EAAE,OAAO,CAEvC,EAAW,QAAQ,EAAe,KACtB,EAAI,KAAM,GAAW,CACpC,IAAM,EAAM,EAAS,EAAQ,EAAI,CACjC,MAAO,CAAC,EAAI,WAAW,KAAK,EAAI,CAAC,EAAW,EAAI,EAAI,IAAQ,IAC5D,EACa,EAAI,KAAK,EAAI,CACrB,GACN,EAAE,CAAC,EA0BK,EACX,GACa,CACb,GAAM,CACJ,mBACA,iBAAiB,EAAE,CACnB,UACA,MAAM,IACJ,EAEE,EAAW,EAAiB,EAAiB,CAChD,OACE,GACC,OAAO,GAAY,UAAY,CAAC,EAAQ,WAAW,IAAI,CAC1D,CACA,IAAI,EAAU,CAEX,EAAkB,CACtB,GAAG,EAAiB,EAAe,CAEnC,GAAG,EAAiB,EAAiB,CAClC,OACE,GACC,OAAO,GAAY,UAAY,EAAQ,WAAW,IAAI,CACzD,CACA,IAAK,GAAY,EAAQ,MAAM,EAAE,CAAC,CACtC,CACE,OAAQ,GAA+B,OAAO,GAAY,SAAS,CACnE,IAAI,EAAU,CAEX,EAAQ,EAAoB,EAAiB,EAAQ,CAAC,CAE5D,OAAO,MAAM,KACX,IAAI,IACF,EAAM,QAAS,GACb,EAAG,KAAK,EAAU,CAChB,IAAK,EACL,OAAQ,EACR,SAAU,GACV,MACD,CAAC,CACH,CACF,CACF,EAWU,EACX,GACa,CACb,GAAM,CACJ,MAAO,CAAE,mBACT,OAAQ,CAAE,WACV,QAAS,CAAE,UAAS,kBACpB,SAAU,CAAE,mBACV,EAQJ,OAAO,EAAwB,CAC7B,iBAAkB,EAClB,eARsB,CAEtB,GAAG,EAAe,IAAK,GAAQ,OAAO,IAAM,CAC5C,GAAI,MAAM,QAAQ,EAAe,CAAG,EAAiB,CAAC,EAAe,CACtE,CAAC,OAAQ,GAAmB,OAAO,GAAM,SAAS,CAKjD,QAAS,CAAC,EAAS,GAAG,EAAQ,CAC9B,IAAK,GACN,CAAC"}
|
package/dist/esm/utils/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Queue as e,pLimit as t}from"./pLimit.mjs";import{parallelize as n}from"./parallelize.mjs";import{getPathHash as r}from"./getPathHash.mjs";import{formatLocale as i,formatPath as a}from"./formatter.mjs";import{autoDecorateContent as o}from"./autoDecorateContent.mjs";import{
|
|
1
|
+
import{Queue as e,pLimit as t}from"./pLimit.mjs";import{parallelize as n}from"./parallelize.mjs";import{getPathHash as r}from"./getPathHash.mjs";import{formatLocale as i,formatPath as a}from"./formatter.mjs";import{autoDecorateContent as o}from"./autoDecorateContent.mjs";import{buildComponentFilesList as s}from"./buildComponentFilesList.mjs";import{splitTextByLines as c}from"./splitTextByLine.mjs";import{getChunk as l}from"./getChunk.mjs";import{assembleJSON as u,chunkJSON as d,reconstructFromSingleChunk as f}from"./chunkJSON.mjs";import{getContentExtension as p}from"./getContentExtension.mjs";import{getExtensionFromFormat as m,getFormatFromExtension as h}from"./getFormatFromExtension.mjs";import{mergeChunks as g}from"./mergeChunks.mjs";import{getGlobalLimiter as _,getTaskLimiter as v,parallelizeGlobal as y}from"./parallelizeGlobal.mjs";import{reduceObjectFormat as b}from"./reduceObjectFormat.mjs";import{resolveObjectPromises as x}from"./resolveObjectPromises.mjs";import{resolveRelativePath as S}from"./resolveRelativePath.mjs";import{runOnce as C}from"./runOnce.mjs";import{runParallel as w}from"./runParallel/index.mjs";import{sortAlphabetically as T}from"./sortAlphabetically.mjs";import{verifyIdenticObjectFormat as E}from"./verifyIdenticObjectFormat.mjs";export{e as Queue,u as assembleJSON,o as autoDecorateContent,s as buildComponentFilesList,d as chunkJSON,i as formatLocale,a as formatPath,l as getChunk,p as getContentExtension,m as getExtensionFromFormat,h as getFormatFromExtension,_ as getGlobalLimiter,r as getPathHash,v as getTaskLimiter,g as mergeChunks,t as pLimit,n as parallelize,y as parallelizeGlobal,f as reconstructFromSingleChunk,b as reduceObjectFormat,x as resolveObjectPromises,S as resolveRelativePath,C as runOnce,w as runParallel,T as sortAlphabetically,c as splitTextByLines,E as verifyIdenticObjectFormat};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IntlayerConfig } from "@intlayer/types/config";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/buildComponentFilesList.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Builds a deduplicated list of absolute file paths matching the given patterns.
|
|
6
|
+
*
|
|
7
|
+
* Handles multiple root directories (deduplicates overlapping roots), exclude
|
|
8
|
+
* patterns, negation patterns embedded in `transformPattern`, and optional
|
|
9
|
+
* dot-file inclusion.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* // Single root with excludes
|
|
13
|
+
* const files = buildComponentFilesList({
|
|
14
|
+
* transformPattern: 'src/**\/*.{ts,tsx}',
|
|
15
|
+
* excludePattern: ['**\/node_modules\/**'],
|
|
16
|
+
* baseDir: '/path/to/project',
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Multiple roots (e.g. baseDir + codeDir), dot files included
|
|
21
|
+
* const files = buildComponentFilesList(config, ['**\/node_modules\/**']);
|
|
22
|
+
*/
|
|
23
|
+
declare const buildComponentFilesList: (config: IntlayerConfig, excludePattern?: string[]) => string[];
|
|
24
|
+
//#endregion
|
|
25
|
+
export { buildComponentFilesList };
|
|
26
|
+
//# sourceMappingURL=buildComponentFilesList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildComponentFilesList.d.ts","names":[],"sources":["../../../src/utils/buildComponentFilesList.ts"],"mappings":";;;;;AAkDA;;;;;;;;;;;;;;;;;cAAa,uBAAA,GACX,MAAA,EAAQ,cAAA,EACR,cAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { IntlayerConfig } from "@intlayer/types/config";
|
|
2
|
+
|
|
1
3
|
//#region src/utils/buildFilesList.d.ts
|
|
2
4
|
/**
|
|
3
5
|
* Options for building the files list
|
|
4
6
|
*/
|
|
5
|
-
type
|
|
7
|
+
type BuildComponentFilesListOptions = {
|
|
6
8
|
/**
|
|
7
9
|
* Glob patterns to match files
|
|
8
10
|
*/
|
|
@@ -10,38 +12,51 @@ type BuildFilesListOptions = {
|
|
|
10
12
|
/**
|
|
11
13
|
* Glob patterns to exclude files
|
|
12
14
|
*/
|
|
13
|
-
excludePattern
|
|
15
|
+
excludePattern?: string | string[];
|
|
14
16
|
/**
|
|
15
|
-
* Base directory for file resolution
|
|
17
|
+
* Base directory (or directories) for file resolution.
|
|
18
|
+
* When multiple directories are provided, subdirectories of others are
|
|
19
|
+
* automatically deduplicated so files are never scanned twice.
|
|
16
20
|
*/
|
|
17
|
-
baseDir: string;
|
|
21
|
+
baseDir: string | string[];
|
|
22
|
+
/**
|
|
23
|
+
* Whether to include dot-prefixed files and directories (default: false)
|
|
24
|
+
*/
|
|
25
|
+
dot?: boolean;
|
|
18
26
|
};
|
|
19
27
|
/**
|
|
20
|
-
* Builds a list of
|
|
21
|
-
*
|
|
22
|
-
* This utility consolidates the file listing logic used across multiple compilers
|
|
23
|
-
* (Vue, Svelte, Vite) to avoid code duplication.
|
|
28
|
+
* Builds a deduplicated list of absolute file paths matching the given patterns.
|
|
24
29
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
30
|
+
* Handles multiple root directories (deduplicates overlapping roots), exclude
|
|
31
|
+
* patterns, negation patterns embedded in `transformPattern`, and optional
|
|
32
|
+
* dot-file inclusion.
|
|
27
33
|
*
|
|
28
34
|
* @example
|
|
29
|
-
* //
|
|
30
|
-
* const files =
|
|
35
|
+
* // Single root with excludes
|
|
36
|
+
* const files = buildComponentFilesList({
|
|
31
37
|
* transformPattern: 'src/**\/*.{ts,tsx}',
|
|
32
|
-
* excludePattern: ['**\/node_modules
|
|
38
|
+
* excludePattern: ['**\/node_modules\/**'],
|
|
33
39
|
* baseDir: '/path/to/project',
|
|
34
40
|
* });
|
|
35
41
|
*
|
|
36
42
|
* @example
|
|
37
|
-
* //
|
|
38
|
-
* const files =
|
|
39
|
-
* transformPattern:
|
|
40
|
-
*
|
|
41
|
-
*
|
|
43
|
+
* // Multiple roots (e.g. baseDir + codeDir), dot files included
|
|
44
|
+
* const files = buildComponentFilesList({
|
|
45
|
+
* transformPattern: config.build.traversePattern,
|
|
46
|
+
* baseDir: [config.system.baseDir, ...config.content.codeDir],
|
|
47
|
+
* dot: true,
|
|
42
48
|
* });
|
|
43
49
|
*/
|
|
44
|
-
declare const
|
|
50
|
+
declare const buildComponentFilesList: (config: BuildComponentFilesListOptions) => string[];
|
|
51
|
+
/**
|
|
52
|
+
* Convenience wrapper that derives all file-list options directly from an
|
|
53
|
+
* `IntlayerConfig` object.
|
|
54
|
+
*
|
|
55
|
+
* Scans `[baseDir, ...codeDir]` using `build.traversePattern`, excludes
|
|
56
|
+
* content declaration file extensions and any `compiler.excludePattern`
|
|
57
|
+
* entries defined in the configuration, and includes dot files.
|
|
58
|
+
*/
|
|
59
|
+
declare const buildComponentFilesListFromConfig: (intlayerConfig: IntlayerConfig) => string[];
|
|
45
60
|
//#endregion
|
|
46
|
-
export {
|
|
61
|
+
export { BuildComponentFilesListOptions, buildComponentFilesList, buildComponentFilesListFromConfig };
|
|
47
62
|
//# sourceMappingURL=buildFilesList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFilesList.d.ts","names":[],"sources":["../../../src/utils/buildFilesList.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildFilesList.d.ts","names":[],"sources":["../../../src/utils/buildFilesList.ts"],"mappings":";;;;;AAOA;KAAY,8BAAA;;;;EAIV,gBAAA;EAUA;;;EANA,cAAA;EA6DW;;;;;EAvDX,OAAA;EAmID;;;EA/HC,GAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;cAmDW,uBAAA,GACX,MAAA,EAAQ,8BAAA;;;;;;;;;cAqDG,iCAAA,GACX,cAAA,EAAgB,cAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { Extension, Format, getExtensionFromFormat, getFormatFromExtension } from "./getFormatFromExtension.js";
|
|
2
2
|
import { autoDecorateContent } from "./autoDecorateContent.js";
|
|
3
|
-
import {
|
|
3
|
+
import { buildComponentFilesList } from "./buildComponentFilesList.js";
|
|
4
4
|
import { JSONObject, JsonChunk, assembleJSON, chunkJSON, reconstructFromSingleChunk } from "./chunkJSON.js";
|
|
5
5
|
import { formatLocale, formatPath } from "./formatter.js";
|
|
6
6
|
import { getChunk } from "./getChunk.js";
|
|
7
|
-
import { getComponentTransformPattern, getComponentTransformPatternSync } from "./getComponentTransformPattern.js";
|
|
8
7
|
import { getContentExtension } from "./getContentExtension.js";
|
|
9
8
|
import { getPathHash } from "./getPathHash.js";
|
|
10
9
|
import { mergeChunks } from "./mergeChunks.js";
|
|
@@ -19,4 +18,4 @@ import { ParallelHandle, runParallel } from "./runParallel/index.js";
|
|
|
19
18
|
import { sortAlphabetically } from "./sortAlphabetically.js";
|
|
20
19
|
import { splitTextByLines } from "./splitTextByLine.js";
|
|
21
20
|
import { verifyIdenticObjectFormat } from "./verifyIdenticObjectFormat.js";
|
|
22
|
-
export {
|
|
21
|
+
export { Extension, Format, JSONObject, JsonChunk, ParallelHandle, Queue, assembleJSON, autoDecorateContent, buildComponentFilesList, chunkJSON, formatLocale, formatPath, getChunk, getContentExtension, getExtensionFromFormat, getFormatFromExtension, getGlobalLimiter, getPathHash, getTaskLimiter, mergeChunks, pLimit, parallelize, parallelizeGlobal, reconstructFromSingleChunk, reduceObjectFormat, resolveObjectPromises, resolveRelativePath, runOnce, runParallel, sortAlphabetically, splitTextByLines, verifyIdenticObjectFormat };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/chokidar",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.1",
|
|
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.3.
|
|
106
|
-
"@intlayer/config": "8.3.
|
|
107
|
-
"@intlayer/core": "8.3.
|
|
108
|
-
"@intlayer/dictionaries-entry": "8.3.
|
|
109
|
-
"@intlayer/remote-dictionaries-entry": "8.3.
|
|
110
|
-
"@intlayer/types": "8.3.
|
|
111
|
-
"@intlayer/unmerged-dictionaries-entry": "8.3.
|
|
105
|
+
"@intlayer/api": "8.3.1",
|
|
106
|
+
"@intlayer/config": "8.3.1",
|
|
107
|
+
"@intlayer/core": "8.3.1",
|
|
108
|
+
"@intlayer/dictionaries-entry": "8.3.1",
|
|
109
|
+
"@intlayer/remote-dictionaries-entry": "8.3.1",
|
|
110
|
+
"@intlayer/types": "8.3.1",
|
|
111
|
+
"@intlayer/unmerged-dictionaries-entry": "8.3.1",
|
|
112
112
|
"chokidar": "3.6.0",
|
|
113
113
|
"defu": "6.1.4",
|
|
114
114
|
"fast-glob": "3.3.3",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../_virtual/_rolldown/runtime.cjs`);let t=require(`node:path`),n=require(`fast-glob`);n=e.__toESM(n);const r=e=>{let n=Array.from(new Set(e.map(e=>(0,t.resolve)(e))));return n.sort((e,t)=>e.length-t.length),n.reduce((e,n)=>(e.some(e=>{let r=(0,t.relative)(e,n);return!r.startsWith(`..`)&&!(0,t.isAbsolute)(r)&&r!==``})||e.push(n),e),[])},i=async e=>{let{baseDir:t}=e.system,{codeDir:i}=e.content,{traversePattern:a}=e.build,o=r([t,...i]).map(e=>(0,n.default)(a,{cwd:e,absolute:!0,dot:!0})),s=(await Promise.all(o)).flat();return Array.from(new Set(s))},a=e=>{let{baseDir:t}=e.system,{codeDir:i}=e.content,{traversePattern:a}=e.build,o=r([t,...i]).flatMap(e=>n.default.sync(a,{cwd:e,absolute:!0,dot:!0}));return Array.from(new Set(o))};exports.getComponentTransformPattern=i,exports.getComponentTransformPatternSync=a;
|
|
2
|
-
//# sourceMappingURL=getComponentTransformPattern.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getComponentTransformPattern.cjs","names":["fg"],"sources":["../../../src/utils/getComponentTransformPattern.ts"],"sourcesContent":["import { isAbsolute, relative, resolve } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport fg from 'fast-glob';\n\n/**\n * Helper to remove directories that are subdirectories of others in the list.\n * Example: ['/root', '/root/src'] -> ['/root']\n * This prevents scanning the same files twice.\n */\nconst getDistinctRootDirs = (dirs: string[]): string[] => {\n // Resolve to absolute paths and remove exact duplicates\n const uniqueDirs = Array.from(new Set(dirs.map((dir) => resolve(dir))));\n\n // Sort by length (shortest paths first) so parents appear before children\n uniqueDirs.sort((a, b) => a.length - b.length);\n\n // Filter out any directory that is inside a parent already in the accepted list\n return uniqueDirs.reduce((acc: string[], dir) => {\n const isNested = acc.some((parent) => {\n const relativePath = relative(parent, dir);\n return (\n !relativePath.startsWith('..') && // It is inside the parent\n !isAbsolute(relativePath) && // It is not a different drive/root\n relativePath !== '' // It is not the parent itself (already handled by Set, but good for safety)\n );\n });\n\n if (!isNested) {\n acc.push(dir);\n }\n return acc;\n }, []);\n};\n\nexport const getComponentTransformPattern = async (\n intlayerConfig: IntlayerConfig\n): Promise<string[]> => {\n const { baseDir } = intlayerConfig.system;\n const { codeDir } = intlayerConfig.content;\n const { traversePattern } = intlayerConfig.build;\n\n // Optimize: Filter out codeDir paths if they are already covered by baseDir\n const distinctRoots = getDistinctRootDirs([baseDir, ...codeDir]);\n\n const filesListPatternPromises = distinctRoots.map((cwd) =>\n fg(traversePattern, {\n cwd,\n absolute: true,\n dot: true,\n })\n );\n\n const filesList = (await Promise.all(filesListPatternPromises)).flat();\n\n // Deduplicate files just in case of overlapping patterns or symlinks\n return Array.from(new Set(filesList));\n};\n\nexport const getComponentTransformPatternSync = (\n intlayerConfig: IntlayerConfig\n): string[] => {\n const { baseDir } = intlayerConfig.system;\n const { codeDir } = intlayerConfig.content;\n const { traversePattern } = intlayerConfig.build;\n\n // Optimize: Filter out codeDir paths if they are already covered by baseDir\n const distinctRoots = getDistinctRootDirs([baseDir, ...codeDir]);\n\n const filesList = distinctRoots.flatMap((cwd) =>\n fg.sync(traversePattern, {\n cwd,\n absolute: true,\n dot: true,\n })\n );\n\n return Array.from(new Set(filesList));\n};\n"],"mappings":"yLASA,MAAM,EAAuB,GAA6B,CAExD,IAAM,EAAa,MAAM,KAAK,IAAI,IAAI,EAAK,IAAK,IAAA,EAAA,EAAA,SAAgB,EAAI,CAAC,CAAC,CAAC,CAMvE,OAHA,EAAW,MAAM,EAAG,IAAM,EAAE,OAAS,EAAE,OAAO,CAGvC,EAAW,QAAQ,EAAe,KACtB,EAAI,KAAM,GAAW,CACpC,IAAM,GAAA,EAAA,EAAA,UAAwB,EAAQ,EAAI,CAC1C,MACE,CAAC,EAAa,WAAW,KAAK,EAC9B,EAAA,EAAA,EAAA,YAAY,EAAa,EACzB,IAAiB,IAEnB,EAGA,EAAI,KAAK,EAAI,CAER,GACN,EAAE,CAAC,EAGK,EAA+B,KAC1C,IACsB,CACtB,GAAM,CAAE,WAAY,EAAe,OAC7B,CAAE,WAAY,EAAe,QAC7B,CAAE,mBAAoB,EAAe,MAKrC,EAFgB,EAAoB,CAAC,EAAS,GAAG,EAAQ,CAAC,CAEjB,IAAK,IAAA,EAAA,EAAA,SAC/C,EAAiB,CAClB,MACA,SAAU,GACV,IAAK,GACN,CAAC,CACH,CAEK,GAAa,MAAM,QAAQ,IAAI,EAAyB,EAAE,MAAM,CAGtE,OAAO,MAAM,KAAK,IAAI,IAAI,EAAU,CAAC,EAG1B,EACX,GACa,CACb,GAAM,CAAE,WAAY,EAAe,OAC7B,CAAE,WAAY,EAAe,QAC7B,CAAE,mBAAoB,EAAe,MAKrC,EAFgB,EAAoB,CAAC,EAAS,GAAG,EAAQ,CAAC,CAEhC,QAAS,GACvCA,EAAAA,QAAG,KAAK,EAAiB,CACvB,MACA,SAAU,GACV,IAAK,GACN,CAAC,CACH,CAED,OAAO,MAAM,KAAK,IAAI,IAAI,EAAU,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{isAbsolute as e,relative as t,resolve as n}from"node:path";import r from"fast-glob";const i=r=>{let i=Array.from(new Set(r.map(e=>n(e))));return i.sort((e,t)=>e.length-t.length),i.reduce((n,r)=>(n.some(n=>{let i=t(n,r);return!i.startsWith(`..`)&&!e(i)&&i!==``})||n.push(r),n),[])},a=async e=>{let{baseDir:t}=e.system,{codeDir:n}=e.content,{traversePattern:a}=e.build,o=i([t,...n]).map(e=>r(a,{cwd:e,absolute:!0,dot:!0})),s=(await Promise.all(o)).flat();return Array.from(new Set(s))},o=e=>{let{baseDir:t}=e.system,{codeDir:n}=e.content,{traversePattern:a}=e.build,o=i([t,...n]).flatMap(e=>r.sync(a,{cwd:e,absolute:!0,dot:!0}));return Array.from(new Set(o))};export{a as getComponentTransformPattern,o as getComponentTransformPatternSync};
|
|
2
|
-
//# sourceMappingURL=getComponentTransformPattern.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getComponentTransformPattern.mjs","names":[],"sources":["../../../src/utils/getComponentTransformPattern.ts"],"sourcesContent":["import { isAbsolute, relative, resolve } from 'node:path';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport fg from 'fast-glob';\n\n/**\n * Helper to remove directories that are subdirectories of others in the list.\n * Example: ['/root', '/root/src'] -> ['/root']\n * This prevents scanning the same files twice.\n */\nconst getDistinctRootDirs = (dirs: string[]): string[] => {\n // Resolve to absolute paths and remove exact duplicates\n const uniqueDirs = Array.from(new Set(dirs.map((dir) => resolve(dir))));\n\n // Sort by length (shortest paths first) so parents appear before children\n uniqueDirs.sort((a, b) => a.length - b.length);\n\n // Filter out any directory that is inside a parent already in the accepted list\n return uniqueDirs.reduce((acc: string[], dir) => {\n const isNested = acc.some((parent) => {\n const relativePath = relative(parent, dir);\n return (\n !relativePath.startsWith('..') && // It is inside the parent\n !isAbsolute(relativePath) && // It is not a different drive/root\n relativePath !== '' // It is not the parent itself (already handled by Set, but good for safety)\n );\n });\n\n if (!isNested) {\n acc.push(dir);\n }\n return acc;\n }, []);\n};\n\nexport const getComponentTransformPattern = async (\n intlayerConfig: IntlayerConfig\n): Promise<string[]> => {\n const { baseDir } = intlayerConfig.system;\n const { codeDir } = intlayerConfig.content;\n const { traversePattern } = intlayerConfig.build;\n\n // Optimize: Filter out codeDir paths if they are already covered by baseDir\n const distinctRoots = getDistinctRootDirs([baseDir, ...codeDir]);\n\n const filesListPatternPromises = distinctRoots.map((cwd) =>\n fg(traversePattern, {\n cwd,\n absolute: true,\n dot: true,\n })\n );\n\n const filesList = (await Promise.all(filesListPatternPromises)).flat();\n\n // Deduplicate files just in case of overlapping patterns or symlinks\n return Array.from(new Set(filesList));\n};\n\nexport const getComponentTransformPatternSync = (\n intlayerConfig: IntlayerConfig\n): string[] => {\n const { baseDir } = intlayerConfig.system;\n const { codeDir } = intlayerConfig.content;\n const { traversePattern } = intlayerConfig.build;\n\n // Optimize: Filter out codeDir paths if they are already covered by baseDir\n const distinctRoots = getDistinctRootDirs([baseDir, ...codeDir]);\n\n const filesList = distinctRoots.flatMap((cwd) =>\n fg.sync(traversePattern, {\n cwd,\n absolute: true,\n dot: true,\n })\n );\n\n return Array.from(new Set(filesList));\n};\n"],"mappings":"2FASA,MAAM,EAAuB,GAA6B,CAExD,IAAM,EAAa,MAAM,KAAK,IAAI,IAAI,EAAK,IAAK,GAAQ,EAAQ,EAAI,CAAC,CAAC,CAAC,CAMvE,OAHA,EAAW,MAAM,EAAG,IAAM,EAAE,OAAS,EAAE,OAAO,CAGvC,EAAW,QAAQ,EAAe,KACtB,EAAI,KAAM,GAAW,CACpC,IAAM,EAAe,EAAS,EAAQ,EAAI,CAC1C,MACE,CAAC,EAAa,WAAW,KAAK,EAC9B,CAAC,EAAW,EAAa,EACzB,IAAiB,IAEnB,EAGA,EAAI,KAAK,EAAI,CAER,GACN,EAAE,CAAC,EAGK,EAA+B,KAC1C,IACsB,CACtB,GAAM,CAAE,WAAY,EAAe,OAC7B,CAAE,WAAY,EAAe,QAC7B,CAAE,mBAAoB,EAAe,MAKrC,EAFgB,EAAoB,CAAC,EAAS,GAAG,EAAQ,CAAC,CAEjB,IAAK,GAClD,EAAG,EAAiB,CAClB,MACA,SAAU,GACV,IAAK,GACN,CAAC,CACH,CAEK,GAAa,MAAM,QAAQ,IAAI,EAAyB,EAAE,MAAM,CAGtE,OAAO,MAAM,KAAK,IAAI,IAAI,EAAU,CAAC,EAG1B,EACX,GACa,CACb,GAAM,CAAE,WAAY,EAAe,OAC7B,CAAE,WAAY,EAAe,QAC7B,CAAE,mBAAoB,EAAe,MAKrC,EAFgB,EAAoB,CAAC,EAAS,GAAG,EAAQ,CAAC,CAEhC,QAAS,GACvC,EAAG,KAAK,EAAiB,CACvB,MACA,SAAU,GACV,IAAK,GACN,CAAC,CACH,CAED,OAAO,MAAM,KAAK,IAAI,IAAI,EAAU,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IntlayerConfig } from "@intlayer/types/config";
|
|
2
|
-
|
|
3
|
-
//#region src/utils/getComponentTransformPattern.d.ts
|
|
4
|
-
declare const getComponentTransformPattern: (intlayerConfig: IntlayerConfig) => Promise<string[]>;
|
|
5
|
-
declare const getComponentTransformPatternSync: (intlayerConfig: IntlayerConfig) => string[];
|
|
6
|
-
//#endregion
|
|
7
|
-
export { getComponentTransformPattern, getComponentTransformPatternSync };
|
|
8
|
-
//# sourceMappingURL=getComponentTransformPattern.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getComponentTransformPattern.d.ts","names":[],"sources":["../../../src/utils/getComponentTransformPattern.ts"],"mappings":";;;cAkCa,4BAAA,GACX,cAAA,EAAgB,cAAA,KACf,OAAA;AAAA,cAsBU,gCAAA,GACX,cAAA,EAAgB,cAAA"}
|