@intlayer/config 7.3.8 → 7.3.9

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.
@@ -37,11 +37,12 @@ const getConfigurationAndFilePath = (options) => {
37
37
  additionalEnvVars: options?.additionalEnvVars,
38
38
  aliases: options?.aliases
39
39
  }), options?.baseDir, options?.logFunctions);
40
+ else storedConfiguration = require_configFile_buildConfigurationFields.buildConfigurationFields({}, options?.baseDir, options?.logFunctions);
40
41
  const projectRequireConfig = options?.require ? { build: {
41
42
  require: options?.require,
42
43
  cache: options?.cache
43
44
  } } : {};
44
- const configuration = (0, deepmerge.default)((0, deepmerge.default)(storedConfiguration ?? {}, projectRequireConfig), options?.override ?? {});
45
+ const configuration = (0, deepmerge.default)((0, deepmerge.default)(storedConfiguration, projectRequireConfig), options?.override ?? {});
45
46
  require_utils_cacheMemory.cacheMemory.set(options, {
46
47
  configuration,
47
48
  configurationFilePath
@@ -1 +1 @@
1
- {"version":3,"file":"getConfiguration.cjs","names":["baseDir: string | undefined","getPackageJsonPath","buildConfigurationFields","cacheMemory","searchConfigurationFile","storedConfiguration: IntlayerConfig | undefined","loadConfigurationFile","projectRequireConfig: CustomIntlayerConfig"],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":["import { relative } from 'node:path';\nimport type {\n CustomIntlayerConfig,\n IntlayerConfig,\n LogFunctions,\n} from '@intlayer/types';\nimport merge from 'deepmerge';\nimport type { SandBoxContextOptions } from '../loadExternalFile/parseFileContent';\nimport { logger } from '../logger';\nimport { cacheMemory } from '../utils/cacheMemory';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { buildConfigurationFields } from './buildConfigurationFields';\nimport { loadConfigurationFile } from './loadConfigurationFile';\nimport { searchConfigurationFile } from './searchConfigurationFile';\n\nexport type GetConfigurationOptions = {\n baseDir?: string;\n override?: CustomIntlayerConfig;\n // Dotenv options\n env?: string;\n envFile?: string;\n // Log functions\n logFunctions?: LogFunctions;\n // Require function\n require?: NodeJS.Require;\n // cache\n cache?: boolean;\n} & Omit<SandBoxContextOptions, 'projectRequire'>;\n\nexport type GetConfigurationAndFilePathResult = {\n configuration: IntlayerConfig;\n configurationFilePath: string | undefined;\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfigurationAndFilePath = (\n options?: GetConfigurationOptions\n): GetConfigurationAndFilePathResult => {\n let baseDir: string | undefined;\n\n try {\n // Can fail in some environments (e.g. MCP server, VScode extension)\n baseDir = options?.baseDir ?? getPackageJsonPath().baseDir;\n } catch (_err) {\n // Return default config if the package.json is not found\n return {\n configuration: buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n ),\n configurationFilePath: undefined,\n };\n }\n\n const cachedConfiguration =\n cacheMemory.get<GetConfigurationAndFilePathResult>(options);\n\n if (cachedConfiguration) return cachedConfiguration;\n\n // Search for configuration files\n const { configurationFilePath, numCustomConfiguration } =\n searchConfigurationFile(baseDir);\n\n if (options?.override?.log?.mode === 'verbose') {\n logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);\n }\n\n let storedConfiguration: IntlayerConfig | undefined;\n\n if (configurationFilePath) {\n // Load the custom configuration\n const customConfiguration: CustomIntlayerConfig | undefined =\n loadConfigurationFile(configurationFilePath, {\n projectRequire: options?.require,\n // Dotenv options\n envVarOptions: {\n env: options?.env,\n envFile: options?.envFile,\n },\n // Sandbox context additional variables\n additionalEnvVars: options?.additionalEnvVars,\n aliases: options?.aliases,\n });\n\n // Save the configuration to avoid reading the file again\n storedConfiguration = buildConfigurationFields(\n customConfiguration,\n options?.baseDir,\n options?.logFunctions\n );\n }\n\n // Log warning if multiple configuration files are found\n\n const projectRequireConfig: CustomIntlayerConfig = options?.require\n ? {\n build: {\n require: options?.require,\n cache: options?.cache,\n },\n }\n : {};\n\n const configWithProjectRequire = merge(\n storedConfiguration ?? {},\n projectRequireConfig\n ) as CustomIntlayerConfig;\n\n const configuration = merge(\n configWithProjectRequire,\n options?.override ?? {}\n ) as IntlayerConfig;\n\n cacheMemory.set(options, {\n configuration,\n configurationFilePath,\n });\n\n return {\n configuration,\n configurationFilePath,\n };\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfiguration = (\n options?: GetConfigurationOptions\n): IntlayerConfig => getConfigurationAndFilePath(options).configuration;\n\nconst logConfigFileResult = (\n baseDir: string,\n numCustomConfiguration?: number,\n configurationFilePath?: string\n) => {\n if (numCustomConfiguration === 0) {\n logger('Configuration file not found, using default configuration.', {\n isVerbose: true,\n });\n } else {\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n logger(`Configuration file found: ${relativeOutputPath}.`, {\n isVerbose: true,\n });\n } else {\n logger(\n `Multiple configuration files found, using ${relativeOutputPath}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,MAAa,+BACX,YACsC;CACtC,IAAIA;AAEJ,KAAI;AAEF,YAAU,SAAS,WAAWC,qDAAoB,CAAC;UAC5C,MAAM;AAEb,SAAO;GACL,eAAeC,qEACb,EAAE,EACF,SAAS,SACT,SAAS,aACV;GACD,uBAAuB;GACxB;;CAGH,MAAM,sBACJC,sCAAY,IAAuC,QAAQ;AAE7D,KAAI,oBAAqB,QAAO;CAGhC,MAAM,EAAE,uBAAuB,2BAC7BC,mEAAwB,QAAQ;AAElC,KAAI,SAAS,UAAU,KAAK,SAAS,UACnC,qBAAoB,SAAS,wBAAwB,sBAAsB;CAG7E,IAAIC;AAEJ,KAAI,sBAgBF,uBAAsBH,qEAbpBI,+DAAsB,uBAAuB;EAC3C,gBAAgB,SAAS;EAEzB,eAAe;GACb,KAAK,SAAS;GACd,SAAS,SAAS;GACnB;EAED,mBAAmB,SAAS;EAC5B,SAAS,SAAS;EACnB,CAAC,EAKF,SAAS,SACT,SAAS,aACV;CAKH,MAAMC,uBAA6C,SAAS,UACxD,EACE,OAAO;EACL,SAAS,SAAS;EAClB,OAAO,SAAS;EACjB,EACF,GACD,EAAE;CAON,MAAM,8DAJJ,uBAAuB,EAAE,EACzB,qBACD,EAIC,SAAS,YAAY,EAAE,CACxB;AAED,uCAAY,IAAI,SAAS;EACvB;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACD;;;;;AAMH,MAAa,oBACX,YACmB,4BAA4B,QAAQ,CAAC;AAE1D,MAAM,uBACJ,SACA,wBACA,0BACG;AACH,KAAI,2BAA2B,EAC7B,uBAAO,8DAA8D,EACnE,WAAW,MACZ,CAAC;MACG;EACL,MAAM,6CAA8B,SAAS,sBAAuB;AAEpE,MAAI,2BAA2B,EAC7B,uBAAO,6BAA6B,mBAAmB,IAAI,EACzD,WAAW,MACZ,CAAC;MAEF,uBACE,6CAA6C,mBAAmB,IAChE,EACE,WAAW,MACZ,CACF"}
1
+ {"version":3,"file":"getConfiguration.cjs","names":["baseDir: string | undefined","getPackageJsonPath","buildConfigurationFields","cacheMemory","searchConfigurationFile","storedConfiguration: IntlayerConfig","loadConfigurationFile","projectRequireConfig: CustomIntlayerConfig"],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":["import { relative } from 'node:path';\nimport type {\n CustomIntlayerConfig,\n IntlayerConfig,\n LogFunctions,\n} from '@intlayer/types';\nimport merge from 'deepmerge';\nimport type { SandBoxContextOptions } from '../loadExternalFile/parseFileContent';\nimport { logger } from '../logger';\nimport { cacheMemory } from '../utils/cacheMemory';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { buildConfigurationFields } from './buildConfigurationFields';\nimport { loadConfigurationFile } from './loadConfigurationFile';\nimport { searchConfigurationFile } from './searchConfigurationFile';\n\nexport type GetConfigurationOptions = {\n baseDir?: string;\n override?: CustomIntlayerConfig;\n // Dotenv options\n env?: string;\n envFile?: string;\n // Log functions\n logFunctions?: LogFunctions;\n // Require function\n require?: NodeJS.Require;\n // cache\n cache?: boolean;\n} & Omit<SandBoxContextOptions, 'projectRequire'>;\n\nexport type GetConfigurationAndFilePathResult = {\n configuration: IntlayerConfig;\n configurationFilePath: string | undefined;\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfigurationAndFilePath = (\n options?: GetConfigurationOptions\n): GetConfigurationAndFilePathResult => {\n let baseDir: string | undefined;\n\n try {\n // Can fail in some environments (e.g. MCP server, VScode extension)\n baseDir = options?.baseDir ?? getPackageJsonPath().baseDir;\n } catch (_err) {\n // Return default config if the package.json is not found\n return {\n configuration: buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n ),\n configurationFilePath: undefined,\n };\n }\n\n const cachedConfiguration =\n cacheMemory.get<GetConfigurationAndFilePathResult>(options);\n\n if (cachedConfiguration) return cachedConfiguration;\n\n // Search for configuration files\n const { configurationFilePath, numCustomConfiguration } =\n searchConfigurationFile(baseDir);\n\n if (options?.override?.log?.mode === 'verbose') {\n logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);\n }\n\n let storedConfiguration: IntlayerConfig;\n\n if (configurationFilePath) {\n // Load the custom configuration\n const customConfiguration: CustomIntlayerConfig | undefined =\n loadConfigurationFile(configurationFilePath, {\n projectRequire: options?.require,\n // Dotenv options\n envVarOptions: {\n env: options?.env,\n envFile: options?.envFile,\n },\n // Sandbox context additional variables\n additionalEnvVars: options?.additionalEnvVars,\n aliases: options?.aliases,\n });\n\n // Save the configuration to avoid reading the file again\n storedConfiguration = buildConfigurationFields(\n customConfiguration,\n options?.baseDir,\n options?.logFunctions\n );\n } else {\n // No configuration file found, use default configuration\n storedConfiguration = buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n );\n }\n\n // Log warning if multiple configuration files are found\n\n const projectRequireConfig: CustomIntlayerConfig = options?.require\n ? {\n build: {\n require: options?.require,\n cache: options?.cache,\n },\n }\n : {};\n\n const configWithProjectRequire = merge(\n storedConfiguration,\n projectRequireConfig\n ) as IntlayerConfig;\n\n const configuration = merge(\n configWithProjectRequire,\n options?.override ?? {}\n ) as IntlayerConfig;\n\n cacheMemory.set(options, {\n configuration,\n configurationFilePath,\n });\n\n return {\n configuration,\n configurationFilePath,\n };\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfiguration = (\n options?: GetConfigurationOptions\n): IntlayerConfig => getConfigurationAndFilePath(options).configuration;\n\nconst logConfigFileResult = (\n baseDir: string,\n numCustomConfiguration?: number,\n configurationFilePath?: string\n) => {\n if (numCustomConfiguration === 0) {\n logger('Configuration file not found, using default configuration.', {\n isVerbose: true,\n });\n } else {\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n logger(`Configuration file found: ${relativeOutputPath}.`, {\n isVerbose: true,\n });\n } else {\n logger(\n `Multiple configuration files found, using ${relativeOutputPath}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,MAAa,+BACX,YACsC;CACtC,IAAIA;AAEJ,KAAI;AAEF,YAAU,SAAS,WAAWC,qDAAoB,CAAC;UAC5C,MAAM;AAEb,SAAO;GACL,eAAeC,qEACb,EAAE,EACF,SAAS,SACT,SAAS,aACV;GACD,uBAAuB;GACxB;;CAGH,MAAM,sBACJC,sCAAY,IAAuC,QAAQ;AAE7D,KAAI,oBAAqB,QAAO;CAGhC,MAAM,EAAE,uBAAuB,2BAC7BC,mEAAwB,QAAQ;AAElC,KAAI,SAAS,UAAU,KAAK,SAAS,UACnC,qBAAoB,SAAS,wBAAwB,sBAAsB;CAG7E,IAAIC;AAEJ,KAAI,sBAgBF,uBAAsBH,qEAbpBI,+DAAsB,uBAAuB;EAC3C,gBAAgB,SAAS;EAEzB,eAAe;GACb,KAAK,SAAS;GACd,SAAS,SAAS;GACnB;EAED,mBAAmB,SAAS;EAC5B,SAAS,SAAS;EACnB,CAAC,EAKF,SAAS,SACT,SAAS,aACV;KAGD,uBAAsBJ,qEACpB,EAAE,EACF,SAAS,SACT,SAAS,aACV;CAKH,MAAMK,uBAA6C,SAAS,UACxD,EACE,OAAO;EACL,SAAS,SAAS;EAClB,OAAO,SAAS;EACjB,EACF,GACD,EAAE;CAON,MAAM,8DAJJ,qBACA,qBACD,EAIC,SAAS,YAAY,EAAE,CACxB;AAED,uCAAY,IAAI,SAAS;EACvB;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACD;;;;;AAMH,MAAa,oBACX,YACmB,4BAA4B,QAAQ,CAAC;AAE1D,MAAM,uBACJ,SACA,wBACA,0BACG;AACH,KAAI,2BAA2B,EAC7B,uBAAO,8DAA8D,EACnE,WAAW,MACZ,CAAC;MACG;EACL,MAAM,6CAA8B,SAAS,sBAAuB;AAEpE,MAAI,2BAA2B,EAC7B,uBAAO,6BAA6B,mBAAmB,IAAI,EACzD,WAAW,MACZ,CAAC;MAEF,uBACE,6CAA6C,mBAAmB,IAChE,EACE,WAAW,MACZ,CACF"}
@@ -35,11 +35,12 @@ const getConfigurationAndFilePath = (options) => {
35
35
  additionalEnvVars: options?.additionalEnvVars,
36
36
  aliases: options?.aliases
37
37
  }), options?.baseDir, options?.logFunctions);
38
+ else storedConfiguration = buildConfigurationFields({}, options?.baseDir, options?.logFunctions);
38
39
  const projectRequireConfig = options?.require ? { build: {
39
40
  require: options?.require,
40
41
  cache: options?.cache
41
42
  } } : {};
42
- const configuration = merge(merge(storedConfiguration ?? {}, projectRequireConfig), options?.override ?? {});
43
+ const configuration = merge(merge(storedConfiguration, projectRequireConfig), options?.override ?? {});
43
44
  cacheMemory.set(options, {
44
45
  configuration,
45
46
  configurationFilePath
@@ -1 +1 @@
1
- {"version":3,"file":"getConfiguration.mjs","names":["baseDir: string | undefined","storedConfiguration: IntlayerConfig | undefined","projectRequireConfig: CustomIntlayerConfig"],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":["import { relative } from 'node:path';\nimport type {\n CustomIntlayerConfig,\n IntlayerConfig,\n LogFunctions,\n} from '@intlayer/types';\nimport merge from 'deepmerge';\nimport type { SandBoxContextOptions } from '../loadExternalFile/parseFileContent';\nimport { logger } from '../logger';\nimport { cacheMemory } from '../utils/cacheMemory';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { buildConfigurationFields } from './buildConfigurationFields';\nimport { loadConfigurationFile } from './loadConfigurationFile';\nimport { searchConfigurationFile } from './searchConfigurationFile';\n\nexport type GetConfigurationOptions = {\n baseDir?: string;\n override?: CustomIntlayerConfig;\n // Dotenv options\n env?: string;\n envFile?: string;\n // Log functions\n logFunctions?: LogFunctions;\n // Require function\n require?: NodeJS.Require;\n // cache\n cache?: boolean;\n} & Omit<SandBoxContextOptions, 'projectRequire'>;\n\nexport type GetConfigurationAndFilePathResult = {\n configuration: IntlayerConfig;\n configurationFilePath: string | undefined;\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfigurationAndFilePath = (\n options?: GetConfigurationOptions\n): GetConfigurationAndFilePathResult => {\n let baseDir: string | undefined;\n\n try {\n // Can fail in some environments (e.g. MCP server, VScode extension)\n baseDir = options?.baseDir ?? getPackageJsonPath().baseDir;\n } catch (_err) {\n // Return default config if the package.json is not found\n return {\n configuration: buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n ),\n configurationFilePath: undefined,\n };\n }\n\n const cachedConfiguration =\n cacheMemory.get<GetConfigurationAndFilePathResult>(options);\n\n if (cachedConfiguration) return cachedConfiguration;\n\n // Search for configuration files\n const { configurationFilePath, numCustomConfiguration } =\n searchConfigurationFile(baseDir);\n\n if (options?.override?.log?.mode === 'verbose') {\n logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);\n }\n\n let storedConfiguration: IntlayerConfig | undefined;\n\n if (configurationFilePath) {\n // Load the custom configuration\n const customConfiguration: CustomIntlayerConfig | undefined =\n loadConfigurationFile(configurationFilePath, {\n projectRequire: options?.require,\n // Dotenv options\n envVarOptions: {\n env: options?.env,\n envFile: options?.envFile,\n },\n // Sandbox context additional variables\n additionalEnvVars: options?.additionalEnvVars,\n aliases: options?.aliases,\n });\n\n // Save the configuration to avoid reading the file again\n storedConfiguration = buildConfigurationFields(\n customConfiguration,\n options?.baseDir,\n options?.logFunctions\n );\n }\n\n // Log warning if multiple configuration files are found\n\n const projectRequireConfig: CustomIntlayerConfig = options?.require\n ? {\n build: {\n require: options?.require,\n cache: options?.cache,\n },\n }\n : {};\n\n const configWithProjectRequire = merge(\n storedConfiguration ?? {},\n projectRequireConfig\n ) as CustomIntlayerConfig;\n\n const configuration = merge(\n configWithProjectRequire,\n options?.override ?? {}\n ) as IntlayerConfig;\n\n cacheMemory.set(options, {\n configuration,\n configurationFilePath,\n });\n\n return {\n configuration,\n configurationFilePath,\n };\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfiguration = (\n options?: GetConfigurationOptions\n): IntlayerConfig => getConfigurationAndFilePath(options).configuration;\n\nconst logConfigFileResult = (\n baseDir: string,\n numCustomConfiguration?: number,\n configurationFilePath?: string\n) => {\n if (numCustomConfiguration === 0) {\n logger('Configuration file not found, using default configuration.', {\n isVerbose: true,\n });\n } else {\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n logger(`Configuration file found: ${relativeOutputPath}.`, {\n isVerbose: true,\n });\n } else {\n logger(\n `Multiple configuration files found, using ${relativeOutputPath}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAqCA,MAAa,+BACX,YACsC;CACtC,IAAIA;AAEJ,KAAI;AAEF,YAAU,SAAS,WAAW,oBAAoB,CAAC;UAC5C,MAAM;AAEb,SAAO;GACL,eAAe,yBACb,EAAE,EACF,SAAS,SACT,SAAS,aACV;GACD,uBAAuB;GACxB;;CAGH,MAAM,sBACJ,YAAY,IAAuC,QAAQ;AAE7D,KAAI,oBAAqB,QAAO;CAGhC,MAAM,EAAE,uBAAuB,2BAC7B,wBAAwB,QAAQ;AAElC,KAAI,SAAS,UAAU,KAAK,SAAS,UACnC,qBAAoB,SAAS,wBAAwB,sBAAsB;CAG7E,IAAIC;AAEJ,KAAI,sBAgBF,uBAAsB,yBAbpB,sBAAsB,uBAAuB;EAC3C,gBAAgB,SAAS;EAEzB,eAAe;GACb,KAAK,SAAS;GACd,SAAS,SAAS;GACnB;EAED,mBAAmB,SAAS;EAC5B,SAAS,SAAS;EACnB,CAAC,EAKF,SAAS,SACT,SAAS,aACV;CAKH,MAAMC,uBAA6C,SAAS,UACxD,EACE,OAAO;EACL,SAAS,SAAS;EAClB,OAAO,SAAS;EACjB,EACF,GACD,EAAE;CAON,MAAM,gBAAgB,MALW,MAC/B,uBAAuB,EAAE,EACzB,qBACD,EAIC,SAAS,YAAY,EAAE,CACxB;AAED,aAAY,IAAI,SAAS;EACvB;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACD;;;;;AAMH,MAAa,oBACX,YACmB,4BAA4B,QAAQ,CAAC;AAE1D,MAAM,uBACJ,SACA,wBACA,0BACG;AACH,KAAI,2BAA2B,EAC7B,QAAO,8DAA8D,EACnE,WAAW,MACZ,CAAC;MACG;EACL,MAAM,qBAAqB,SAAS,SAAS,sBAAuB;AAEpE,MAAI,2BAA2B,EAC7B,QAAO,6BAA6B,mBAAmB,IAAI,EACzD,WAAW,MACZ,CAAC;MAEF,QACE,6CAA6C,mBAAmB,IAChE,EACE,WAAW,MACZ,CACF"}
1
+ {"version":3,"file":"getConfiguration.mjs","names":["baseDir: string | undefined","storedConfiguration: IntlayerConfig","projectRequireConfig: CustomIntlayerConfig"],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":["import { relative } from 'node:path';\nimport type {\n CustomIntlayerConfig,\n IntlayerConfig,\n LogFunctions,\n} from '@intlayer/types';\nimport merge from 'deepmerge';\nimport type { SandBoxContextOptions } from '../loadExternalFile/parseFileContent';\nimport { logger } from '../logger';\nimport { cacheMemory } from '../utils/cacheMemory';\nimport { getPackageJsonPath } from '../utils/getPackageJsonPath';\nimport { buildConfigurationFields } from './buildConfigurationFields';\nimport { loadConfigurationFile } from './loadConfigurationFile';\nimport { searchConfigurationFile } from './searchConfigurationFile';\n\nexport type GetConfigurationOptions = {\n baseDir?: string;\n override?: CustomIntlayerConfig;\n // Dotenv options\n env?: string;\n envFile?: string;\n // Log functions\n logFunctions?: LogFunctions;\n // Require function\n require?: NodeJS.Require;\n // cache\n cache?: boolean;\n} & Omit<SandBoxContextOptions, 'projectRequire'>;\n\nexport type GetConfigurationAndFilePathResult = {\n configuration: IntlayerConfig;\n configurationFilePath: string | undefined;\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfigurationAndFilePath = (\n options?: GetConfigurationOptions\n): GetConfigurationAndFilePathResult => {\n let baseDir: string | undefined;\n\n try {\n // Can fail in some environments (e.g. MCP server, VScode extension)\n baseDir = options?.baseDir ?? getPackageJsonPath().baseDir;\n } catch (_err) {\n // Return default config if the package.json is not found\n return {\n configuration: buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n ),\n configurationFilePath: undefined,\n };\n }\n\n const cachedConfiguration =\n cacheMemory.get<GetConfigurationAndFilePathResult>(options);\n\n if (cachedConfiguration) return cachedConfiguration;\n\n // Search for configuration files\n const { configurationFilePath, numCustomConfiguration } =\n searchConfigurationFile(baseDir);\n\n if (options?.override?.log?.mode === 'verbose') {\n logConfigFileResult(baseDir, numCustomConfiguration, configurationFilePath);\n }\n\n let storedConfiguration: IntlayerConfig;\n\n if (configurationFilePath) {\n // Load the custom configuration\n const customConfiguration: CustomIntlayerConfig | undefined =\n loadConfigurationFile(configurationFilePath, {\n projectRequire: options?.require,\n // Dotenv options\n envVarOptions: {\n env: options?.env,\n envFile: options?.envFile,\n },\n // Sandbox context additional variables\n additionalEnvVars: options?.additionalEnvVars,\n aliases: options?.aliases,\n });\n\n // Save the configuration to avoid reading the file again\n storedConfiguration = buildConfigurationFields(\n customConfiguration,\n options?.baseDir,\n options?.logFunctions\n );\n } else {\n // No configuration file found, use default configuration\n storedConfiguration = buildConfigurationFields(\n {},\n options?.baseDir,\n options?.logFunctions\n );\n }\n\n // Log warning if multiple configuration files are found\n\n const projectRequireConfig: CustomIntlayerConfig = options?.require\n ? {\n build: {\n require: options?.require,\n cache: options?.cache,\n },\n }\n : {};\n\n const configWithProjectRequire = merge(\n storedConfiguration,\n projectRequireConfig\n ) as IntlayerConfig;\n\n const configuration = merge(\n configWithProjectRequire,\n options?.override ?? {}\n ) as IntlayerConfig;\n\n cacheMemory.set(options, {\n configuration,\n configurationFilePath,\n });\n\n return {\n configuration,\n configurationFilePath,\n };\n};\n\n/**\n * Get the configuration for the intlayer by reading the configuration file (e.g. intlayer.config.js)\n */\nexport const getConfiguration = (\n options?: GetConfigurationOptions\n): IntlayerConfig => getConfigurationAndFilePath(options).configuration;\n\nconst logConfigFileResult = (\n baseDir: string,\n numCustomConfiguration?: number,\n configurationFilePath?: string\n) => {\n if (numCustomConfiguration === 0) {\n logger('Configuration file not found, using default configuration.', {\n isVerbose: true,\n });\n } else {\n const relativeOutputPath = relative(baseDir, configurationFilePath!);\n\n if (numCustomConfiguration === 1) {\n logger(`Configuration file found: ${relativeOutputPath}.`, {\n isVerbose: true,\n });\n } else {\n logger(\n `Multiple configuration files found, using ${relativeOutputPath}.`,\n {\n isVerbose: true,\n }\n );\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;AAqCA,MAAa,+BACX,YACsC;CACtC,IAAIA;AAEJ,KAAI;AAEF,YAAU,SAAS,WAAW,oBAAoB,CAAC;UAC5C,MAAM;AAEb,SAAO;GACL,eAAe,yBACb,EAAE,EACF,SAAS,SACT,SAAS,aACV;GACD,uBAAuB;GACxB;;CAGH,MAAM,sBACJ,YAAY,IAAuC,QAAQ;AAE7D,KAAI,oBAAqB,QAAO;CAGhC,MAAM,EAAE,uBAAuB,2BAC7B,wBAAwB,QAAQ;AAElC,KAAI,SAAS,UAAU,KAAK,SAAS,UACnC,qBAAoB,SAAS,wBAAwB,sBAAsB;CAG7E,IAAIC;AAEJ,KAAI,sBAgBF,uBAAsB,yBAbpB,sBAAsB,uBAAuB;EAC3C,gBAAgB,SAAS;EAEzB,eAAe;GACb,KAAK,SAAS;GACd,SAAS,SAAS;GACnB;EAED,mBAAmB,SAAS;EAC5B,SAAS,SAAS;EACnB,CAAC,EAKF,SAAS,SACT,SAAS,aACV;KAGD,uBAAsB,yBACpB,EAAE,EACF,SAAS,SACT,SAAS,aACV;CAKH,MAAMC,uBAA6C,SAAS,UACxD,EACE,OAAO;EACL,SAAS,SAAS;EAClB,OAAO,SAAS;EACjB,EACF,GACD,EAAE;CAON,MAAM,gBAAgB,MALW,MAC/B,qBACA,qBACD,EAIC,SAAS,YAAY,EAAE,CACxB;AAED,aAAY,IAAI,SAAS;EACvB;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACD;;;;;AAMH,MAAa,oBACX,YACmB,4BAA4B,QAAQ,CAAC;AAE1D,MAAM,uBACJ,SACA,wBACA,0BACG;AACH,KAAI,2BAA2B,EAC7B,QAAO,8DAA8D,EACnE,WAAW,MACZ,CAAC;MACG;EACL,MAAM,qBAAqB,SAAS,SAAS,sBAAuB;AAEpE,MAAI,2BAA2B,EAC7B,QAAO,6BAA6B,mBAAmB,IAAI,EACzD,WAAW,MACZ,CAAC;MAEF,QACE,6CAA6C,mBAAmB,IAChE,EACE,WAAW,MACZ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"getConfiguration.d.ts","names":[],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":[],"mappings":";;;;KAeY,uBAAA;;EAAA,QAAA,CAAA,EAEC,oBAFsB;EAEtB,GAAA,CAAA,EAAA,MAAA;EAKI,OAAA,CAAA,EAAA,MAAA;EAEL,YAAO,CAAA,EAFF,YAEE;EAGV,OAAA,CAAA,EAHG,MAAA,CAAO,OAGV;EAAL,KAAA,CAAA,EAAA,OAAA;CAAI,GAAJ,IAAI,CAAC,qBAAD,EAAA,gBAAA,CAAA;AAEI,KAAA,iCAAA,GAAiC;EAQhC,aAAA,EAPI,cAOJ;EA6FA,qBAE0D,EAAA,MAAA,GAD3D,SAAA;;;;;cA9FC,wCACD,4BACT;;;;cA2FU,6BACD,4BACT"}
1
+ {"version":3,"file":"getConfiguration.d.ts","names":[],"sources":["../../../src/configFile/getConfiguration.ts"],"sourcesContent":[],"mappings":";;;;KAeY,uBAAA;;EAAA,QAAA,CAAA,EAEC,oBAFsB;EAEtB,GAAA,CAAA,EAAA,MAAA;EAKI,OAAA,CAAA,EAAA,MAAA;EAEL,YAAO,CAAA,EAFF,YAEE;EAGV,OAAA,CAAA,EAHG,MAAA,CAAO,OAGV;EAAL,KAAA,CAAA,EAAA,OAAA;CAAI,GAAJ,IAAI,CAAC,qBAAD,EAAA,gBAAA,CAAA;AAEI,KAAA,iCAAA,GAAiC;EAQhC,aAAA,EAPI,cAOJ;EAoGA,qBAE0D,EAAA,MAAA,GAD3D,SAAA;;;;;cArGC,wCACD,4BACT;;;;cAkGU,6BACD,4BACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"transpileTSToMJS.d.ts","names":[],"sources":["../../../src/loadExternalFile/transpileTSToMJS.ts"],"sourcesContent":[],"mappings":";;;KAYY,aAAA,GAAgB;cA6Bf,iEAGD;AAhCA,cAqDC,gBArDe,EAAM,CAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAwDtB,YAxDsB,EAAA,GAyD/B,OAzD+B,CAAA,MAAA,GAAA,SAAA,CAAA"}
1
+ {"version":3,"file":"transpileTSToMJS.d.ts","names":[],"sources":["../../../src/loadExternalFile/transpileTSToMJS.ts"],"sourcesContent":[],"mappings":";;;KAYY,aAAA,GAAgB;cA6Bf,iEAGD;AAhCA,cAqDC,gBArDe,EAAA,CAAM,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAwDtB,YAxDsB,EAAA,GAyD/B,OAzD+B,CAAA,MAAA,GAAA,SAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cacheMemory.d.ts","names":[],"sources":["../../../src/utils/cacheMemory.ts"],"sourcesContent":[],"mappings":";;AAyRa,cAAA,eAEX,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,CAAA,MAAA,CAAA,EAAA,GAAA,MAAA;AAQF;AAaY,cAbC,YAaO,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,EAAA,GAAA,MAAA;AAGpB;AAIK,KAPO,QAAA,GAOK,OAAA;AAEJ,cANA,QAMqC,EAAA,CAAb,CAAA,CAAA,CAAA,GAAA,GAAA,EAND,QAMa,EAAA,EAAA,GANA,CAMA,GAAA,SAAA;AAMjD,KARK,YAWJ,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAXgC,QAWhC,EAAA,EAAA,KAAA,EAXmD,CAWnD,CAAA;AAEY,cAXA,QAaZ,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,EAboC,YAapC,CAbiD,CAajD,CAAA,EAAA,GAAA,IAAA;AAEY,cATA,UAaZ,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;AAzBmC,cAiBvB,aAjBuB,EAAA,GAAA,GAAA,IAAA;AAAa,cAqBpC,WArBoC,EAAA;EAMC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,GAAA,EANd,QAMc,EAAA,EAAA,GAND,CAMC,GAAA,SAAA;EAAb,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,EAAA,YAAA,CAAa,CAAb,CAAA,EAAA,GAAA,IAAA;EAAY,KAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA"}
1
+ {"version":3,"file":"cacheMemory.d.ts","names":[],"sources":["../../../src/utils/cacheMemory.ts"],"sourcesContent":[],"mappings":";;AAyRa,cAAA,eAEX,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,CAAA,MAAA,CAAA,EAAA,GAAA,MAAA;AAQF;AAaY,cAbC,YAaO,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,EAAA,GAAA,MAAA;AAGpB;AAIK,KAPO,QAAA,GAOK,OAAA;AAEJ,cANA,QAMqC,EAAb,CAAA,CAAA,CAAA,CAAA,GAAA,GAAA,EAND,QAMa,EAAA,EAAA,GANA,CAMA,GAAA,SAAA;AAMjD,KARK,YAWJ,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAXgC,QAWhC,EAAA,EAAA,KAAA,EAXmD,CAWnD,CAAA;AAEY,cAXA,QAaZ,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,EAboC,YAapC,CAbiD,CAajD,CAAA,EAAA,GAAA,IAAA;AAEY,cATA,UAaZ,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;AAzBmC,cAiBvB,aAjBuB,EAAA,GAAA,GAAA,IAAA;AAAa,cAqBpC,WArBoC,EAAA;EAMC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,GAAA,EANd,QAMc,EAAA,EAAA,GAND,CAMC,GAAA,SAAA;EAAb,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,EAAA,YAAA,CAAa,CAAb,CAAA,EAAA,GAAA,IAAA;EAAY,KAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/config",
3
- "version": "7.3.8",
3
+ "version": "7.3.9",
4
4
  "private": false,
5
5
  "description": "Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.",
6
6
  "keywords": [
@@ -96,7 +96,7 @@
96
96
  "typecheck": "tsc --noEmit --project tsconfig.types.json"
97
97
  },
98
98
  "dependencies": {
99
- "@intlayer/types": "7.3.8",
99
+ "@intlayer/types": "7.3.9",
100
100
  "deepmerge": "4.3.1",
101
101
  "dotenv": "16.6.1",
102
102
  "esbuild": "0.25.2"
@@ -112,7 +112,7 @@
112
112
  "vitest": "4.0.14"
113
113
  },
114
114
  "peerDependencies": {
115
- "intlayer": "7.3.8",
115
+ "intlayer": "7.3.9",
116
116
  "react": ">=16.0.0"
117
117
  },
118
118
  "peerDependenciesMeta": {