@teambit/config 0.0.861 → 0.0.863

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.
@@ -23,12 +23,12 @@ export declare class ConfigMain {
23
23
  * Load if existing and create new if not
24
24
  *
25
25
  * @static
26
- * @param {PathOsBasedAbsolute} dirPath
26
+ * @param {PathOsBasedAbsolute} workspacePath
27
27
  * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
28
28
  * @returns {Promise<WorkspaceConfig>}
29
29
  * @memberof WorkspaceConfig
30
30
  */
31
- static ensureWorkspace(dirPath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps): Promise<ConfigMain>;
31
+ static ensureWorkspace(workspacePath: PathOsBasedAbsolute, scopePath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps): Promise<ConfigMain>;
32
32
  get extensions(): ExtensionDataList | undefined;
33
33
  extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined;
34
34
  setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): void;
@@ -18,6 +18,13 @@ function _workspaceConfig() {
18
18
  };
19
19
  return data;
20
20
  }
21
+ function _utils() {
22
+ const data = require("@teambit/legacy/dist/utils");
23
+ _utils = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
21
28
  function _cli() {
22
29
  const data = require("@teambit/cli");
23
30
  _cli = function () {
@@ -80,13 +87,13 @@ class ConfigMain {
80
87
  * Load if existing and create new if not
81
88
  *
82
89
  * @static
83
- * @param {PathOsBasedAbsolute} dirPath
90
+ * @param {PathOsBasedAbsolute} workspacePath
84
91
  * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]
85
92
  * @returns {Promise<WorkspaceConfig>}
86
93
  * @memberof WorkspaceConfig
87
94
  */
88
- static async ensureWorkspace(dirPath, workspaceConfigProps = {}) {
89
- const workspaceConfig = await _workspaceConfig2().WorkspaceConfig.ensure(dirPath, workspaceConfigProps);
95
+ static async ensureWorkspace(workspacePath, scopePath, workspaceConfigProps = {}) {
96
+ const workspaceConfig = await _workspaceConfig2().WorkspaceConfig.ensure(workspacePath, scopePath, workspaceConfigProps);
90
97
  return new ConfigMain(workspaceConfig);
91
98
  }
92
99
  get extensions() {
@@ -131,7 +138,8 @@ _config().ConfigAspect.addRuntime(ConfigMain);
131
138
  async function loadWorkspaceConfigIfExist() {
132
139
  const consumerInfo = await (0, _consumer().getConsumerInfo)(process.cwd());
133
140
  const configDirPath = consumerInfo?.path || process.cwd();
134
- const workspaceConfig = await _workspaceConfig2().WorkspaceConfig.loadIfExist(configDirPath);
141
+ const scopePath = (0, _utils().findScopePath)(configDirPath);
142
+ const workspaceConfig = await _workspaceConfig2().WorkspaceConfig.loadIfExist(configDirPath, scopePath);
135
143
  return workspaceConfig;
136
144
  }
137
145
  function onLegacyWorkspaceConfigIsExist() {
@@ -140,11 +148,11 @@ function onLegacyWorkspaceConfigIsExist() {
140
148
  };
141
149
  }
142
150
  function onLegacyWorkspaceLoad(config) {
143
- return async dirPath => {
151
+ return async (dirPath, scopePath) => {
144
152
  if (config?.workspaceConfig && config.path && _path().default.normalize(dirPath) === _path().default.dirname(config.path)) {
145
153
  return config.config.toLegacy();
146
154
  }
147
- const newConfig = await _workspaceConfig2().WorkspaceConfig.loadIfExist(dirPath);
155
+ const newConfig = await _workspaceConfig2().WorkspaceConfig.loadIfExist(dirPath, scopePath);
148
156
  if (newConfig) {
149
157
  return newConfig.toLegacy();
150
158
  }
@@ -152,12 +160,12 @@ function onLegacyWorkspaceLoad(config) {
152
160
  };
153
161
  }
154
162
  function onLegacyWorkspaceEnsure() {
155
- const func = async (dirPath, standAlone, legacyWorkspaceConfigProps) => {
163
+ const func = async (workspacePath, scopePath, standAlone, legacyWorkspaceConfigProps) => {
156
164
  let workspaceConfigProps;
157
165
  if (legacyWorkspaceConfigProps) {
158
166
  workspaceConfigProps = (0, _workspaceConfig2().transformLegacyPropsToExtensions)(legacyWorkspaceConfigProps);
159
167
  }
160
- const config = await ConfigMain.ensureWorkspace(dirPath, workspaceConfigProps);
168
+ const config = await ConfigMain.ensureWorkspace(workspacePath, scopePath, workspaceConfigProps);
161
169
  const workspaceConfig = config.config;
162
170
  return workspaceConfig.toLegacy();
163
171
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_consumer","data","require","_workspaceConfig","_interopRequireDefault","_cli","_path","_workspaceConfig2","_config","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ConfigMain","constructor","workspaceConfig","scopeConfig","type","path","config","reloadWorkspaceConfig","loadWorkspaceConfigIfExist","ensureWorkspace","dirPath","workspaceConfigProps","WorkspaceConfig","ensure","extensions","extension","extensionId","ignoreVersion","setExtension","options","getHarmonyConfigObject","forEach","stringId","provider","LegacyWorkspaceConfig","registerOnWorkspaceConfigIsExist","onLegacyWorkspaceConfigIsExist","registerOnWorkspaceConfigEnsuring","onLegacyWorkspaceEnsure","configMain","undefined","registerOnWorkspaceConfigLoading","onLegacyWorkspaceLoad","registerOnWorkspaceConfigReset","resetHard","reset","exports","MainRuntime","ConfigAspect","addRuntime","consumerInfo","getConsumerInfo","process","cwd","configDirPath","loadIfExist","isExist","normalize","dirname","toLegacy","newConfig","func","standAlone","legacyWorkspaceConfigProps","transformLegacyPropsToExtensions"],"sources":["config.main.runtime.ts"],"sourcesContent":["import { getConsumerInfo } from '@teambit/legacy/dist/consumer';\nimport {\n ExtensionDataEntry,\n ExtensionDataList,\n ILegacyWorkspaceConfig,\n LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigEnsureFunction,\n WorkspaceConfigIsExistFunction,\n WorkspaceConfigLoadFunction,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { MainRuntime } from '@teambit/cli';\nimport { GlobalConfig } from '@teambit/harmony';\nimport path from 'path';\nimport { transformLegacyPropsToExtensions, WorkspaceConfig, WorkspaceConfigFileProps } from './workspace-config';\nimport { ConfigType, HostConfig } from './types';\nimport { ConfigAspect } from './config.aspect';\n\nexport type SetExtensionOptions = {\n overrideExisting?: boolean;\n ignoreVersion: boolean;\n mergeIntoExisting?: boolean;\n};\n\nexport type ConfigDeps = [];\n\nexport type ConfigConfig = {};\n\nexport class ConfigMain {\n constructor(public workspaceConfig?: WorkspaceConfig, public scopeConfig?: WorkspaceConfig) {}\n\n get type(): ConfigType {\n if (this.workspaceConfig) {\n return 'workspace';\n }\n return 'scope';\n }\n\n get path(): PathOsBased | undefined {\n return this.config?.path;\n }\n\n get config(): HostConfig | undefined {\n if (this.workspaceConfig) {\n return this.workspaceConfig;\n }\n return this.scopeConfig;\n }\n\n async reloadWorkspaceConfig() {\n const workspaceConfig = await loadWorkspaceConfigIfExist();\n if (workspaceConfig) this.workspaceConfig = workspaceConfig;\n }\n\n /**\n * Ensure the given directory has a workspace config\n * Load if existing and create new if not\n *\n * @static\n * @param {PathOsBasedAbsolute} dirPath\n * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]\n * @returns {Promise<WorkspaceConfig>}\n * @memberof WorkspaceConfig\n */\n static async ensureWorkspace(\n dirPath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any\n ): Promise<ConfigMain> {\n const workspaceConfig = await WorkspaceConfig.ensure(dirPath, workspaceConfigProps);\n return new ConfigMain(workspaceConfig);\n }\n\n get extensions(): ExtensionDataList | undefined {\n return this.config?.extensions;\n }\n\n extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined {\n return this.config?.extension(extensionId, ignoreVersion);\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions) {\n this.config?.setExtension(extensionId, config, options);\n }\n\n getHarmonyConfigObject(): GlobalConfig {\n const config = {};\n if (!this.extensions) return config;\n this.extensions.forEach((extension) => {\n config[extension.stringId] = extension.config;\n });\n return config;\n }\n\n static runtime = MainRuntime;\n static slots = [];\n static dependencies = [];\n static config = {};\n static async provider() {\n LegacyWorkspaceConfig.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());\n\n let configMain: ConfigMain | any;\n const workspaceConfig = await loadWorkspaceConfigIfExist();\n if (workspaceConfig) {\n configMain = new ConfigMain(workspaceConfig, undefined);\n } else {\n // TODO: try load scope config here\n configMain = {};\n }\n LegacyWorkspaceConfig.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(configMain));\n LegacyWorkspaceConfig.registerOnWorkspaceConfigReset((dirPath, resetHard) =>\n WorkspaceConfig.reset(dirPath, resetHard)\n );\n return configMain;\n }\n}\n\nConfigAspect.addRuntime(ConfigMain);\n\nasync function loadWorkspaceConfigIfExist(): Promise<WorkspaceConfig | undefined> {\n const consumerInfo = await getConsumerInfo(process.cwd());\n const configDirPath = consumerInfo?.path || process.cwd();\n const workspaceConfig = await WorkspaceConfig.loadIfExist(configDirPath);\n return workspaceConfig;\n}\n\nfunction onLegacyWorkspaceConfigIsExist(): WorkspaceConfigIsExistFunction {\n return async (dirPath: PathOsBased): Promise<boolean | undefined> => {\n return WorkspaceConfig.isExist(dirPath);\n };\n}\n\nfunction onLegacyWorkspaceLoad(config?: ConfigMain): WorkspaceConfigLoadFunction {\n return async (dirPath: PathOsBased): Promise<ILegacyWorkspaceConfig | undefined> => {\n if (config?.workspaceConfig && config.path && path.normalize(dirPath) === path.dirname(config.path)) {\n return (config.config as WorkspaceConfig).toLegacy();\n }\n const newConfig = await WorkspaceConfig.loadIfExist(dirPath);\n if (newConfig) {\n return newConfig.toLegacy();\n }\n return undefined;\n };\n}\n\nfunction onLegacyWorkspaceEnsure(): WorkspaceConfigEnsureFunction {\n const func: WorkspaceConfigEnsureFunction = async (\n dirPath: string,\n standAlone,\n legacyWorkspaceConfigProps?: LegacyWorkspaceConfigProps\n ) => {\n let workspaceConfigProps;\n if (legacyWorkspaceConfigProps) {\n workspaceConfigProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);\n }\n const config = await ConfigMain.ensureWorkspace(dirPath, workspaceConfigProps);\n const workspaceConfig = config.config;\n return (workspaceConfig as WorkspaceConfig).toLegacy();\n };\n return func;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAE,iBAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,gBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMA,SAAAI,KAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,IAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,kBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,iBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+C,SAAAG,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAYxC,MAAMW,UAAU,CAAC;EACtBC,WAAWA,CAAQC,eAAiC,EAASC,WAA6B,EAAE;IAAA,KAAzED,eAAiC,GAAjCA,eAAiC;IAAA,KAASC,WAA6B,GAA7BA,WAA6B;EAAG;EAE7F,IAAIC,IAAIA,CAAA,EAAe;IACrB,IAAI,IAAI,CAACF,eAAe,EAAE;MACxB,OAAO,WAAW;IACpB;IACA,OAAO,OAAO;EAChB;EAEA,IAAIG,IAAIA,CAAA,EAA4B;IAClC,OAAO,IAAI,CAACC,MAAM,EAAED,IAAI;EAC1B;EAEA,IAAIC,MAAMA,CAAA,EAA2B;IACnC,IAAI,IAAI,CAACJ,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe;IAC7B;IACA,OAAO,IAAI,CAACC,WAAW;EACzB;EAEA,MAAMI,qBAAqBA,CAAA,EAAG;IAC5B,MAAML,eAAe,GAAG,MAAMM,0BAA0B,CAAC,CAAC;IAC1D,IAAIN,eAAe,EAAE,IAAI,CAACA,eAAe,GAAGA,eAAe;EAC7D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaO,eAAeA,CAC1BC,OAA4B,EAC5BC,oBAA8C,GAAG,CAAC,CAAQ,EACrC;IACrB,MAAMT,eAAe,GAAG,MAAMU,mCAAe,CAACC,MAAM,CAACH,OAAO,EAAEC,oBAAoB,CAAC;IACnF,OAAO,IAAIX,UAAU,CAACE,eAAe,CAAC;EACxC;EAEA,IAAIY,UAAUA,CAAA,EAAkC;IAC9C,OAAO,IAAI,CAACR,MAAM,EAAEQ,UAAU;EAChC;EAEAC,SAASA,CAACC,WAAmB,EAAEC,aAAsB,EAAkC;IACrF,OAAO,IAAI,CAACX,MAAM,EAAES,SAAS,CAACC,WAAW,EAAEC,aAAa,CAAC;EAC3D;EAEAC,YAAYA,CAACF,WAAmB,EAAEV,MAA2B,EAAEa,OAA4B,EAAE;IAC3F,IAAI,CAACb,MAAM,EAAEY,YAAY,CAACF,WAAW,EAAEV,MAAM,EAAEa,OAAO,CAAC;EACzD;EAEAC,sBAAsBA,CAAA,EAAiB;IACrC,MAAMd,MAAM,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI,CAACQ,UAAU,EAAE,OAAOR,MAAM;IACnC,IAAI,CAACQ,UAAU,CAACO,OAAO,CAAEN,SAAS,IAAK;MACrCT,MAAM,CAACS,SAAS,CAACO,QAAQ,CAAC,GAAGP,SAAS,CAACT,MAAM;IAC/C,CAAC,CAAC;IACF,OAAOA,MAAM;EACf;EAMA,aAAaiB,QAAQA,CAAA,EAAG;IACtBC,0BAAqB,CAACC,gCAAgC,CAACC,8BAA8B,CAAC,CAAC,CAAC;IACxFF,0BAAqB,CAACG,iCAAiC,CAACC,uBAAuB,CAAC,CAAC,CAAC;IAElF,IAAIC,UAA4B;IAChC,MAAM3B,eAAe,GAAG,MAAMM,0BAA0B,CAAC,CAAC;IAC1D,IAAIN,eAAe,EAAE;MACnB2B,UAAU,GAAG,IAAI7B,UAAU,CAACE,eAAe,EAAE4B,SAAS,CAAC;IACzD,CAAC,MAAM;MACL;MACAD,UAAU,GAAG,CAAC,CAAC;IACjB;IACAL,0BAAqB,CAACO,gCAAgC,CAACC,qBAAqB,CAACH,UAAU,CAAC,CAAC;IACzFL,0BAAqB,CAACS,8BAA8B,CAAC,CAACvB,OAAO,EAAEwB,SAAS,KACtEtB,mCAAe,CAACuB,KAAK,CAACzB,OAAO,EAAEwB,SAAS,CAC1C,CAAC;IACD,OAAOL,UAAU;EACnB;AACF;AAACO,OAAA,CAAApC,UAAA,GAAAA,UAAA;AAAApB,eAAA,CAvFYoB,UAAU,aAiEJqC,kBAAW;AAAAzD,eAAA,CAjEjBoB,UAAU,WAkEN,EAAE;AAAApB,eAAA,CAlENoB,UAAU,kBAmEC,EAAE;AAAApB,eAAA,CAnEboB,UAAU,YAoEL,CAAC,CAAC;AAqBpBsC,sBAAY,CAACC,UAAU,CAACvC,UAAU,CAAC;AAEnC,eAAeQ,0BAA0BA,CAAA,EAAyC;EAChF,MAAMgC,YAAY,GAAG,MAAM,IAAAC,2BAAe,EAACC,OAAO,CAACC,GAAG,CAAC,CAAC,CAAC;EACzD,MAAMC,aAAa,GAAGJ,YAAY,EAAEnC,IAAI,IAAIqC,OAAO,CAACC,GAAG,CAAC,CAAC;EACzD,MAAMzC,eAAe,GAAG,MAAMU,mCAAe,CAACiC,WAAW,CAACD,aAAa,CAAC;EACxE,OAAO1C,eAAe;AACxB;AAEA,SAASwB,8BAA8BA,CAAA,EAAmC;EACxE,OAAO,MAAOhB,OAAoB,IAAmC;IACnE,OAAOE,mCAAe,CAACkC,OAAO,CAACpC,OAAO,CAAC;EACzC,CAAC;AACH;AAEA,SAASsB,qBAAqBA,CAAC1B,MAAmB,EAA+B;EAC/E,OAAO,MAAOI,OAAoB,IAAkD;IAClF,IAAIJ,MAAM,EAAEJ,eAAe,IAAII,MAAM,CAACD,IAAI,IAAIA,eAAI,CAAC0C,SAAS,CAACrC,OAAO,CAAC,KAAKL,eAAI,CAAC2C,OAAO,CAAC1C,MAAM,CAACD,IAAI,CAAC,EAAE;MACnG,OAAQC,MAAM,CAACA,MAAM,CAAqB2C,QAAQ,CAAC,CAAC;IACtD;IACA,MAAMC,SAAS,GAAG,MAAMtC,mCAAe,CAACiC,WAAW,CAACnC,OAAO,CAAC;IAC5D,IAAIwC,SAAS,EAAE;MACb,OAAOA,SAAS,CAACD,QAAQ,CAAC,CAAC;IAC7B;IACA,OAAOnB,SAAS;EAClB,CAAC;AACH;AAEA,SAASF,uBAAuBA,CAAA,EAAkC;EAChE,MAAMuB,IAAmC,GAAG,MAAAA,CAC1CzC,OAAe,EACf0C,UAAU,EACVC,0BAAuD,KACpD;IACH,IAAI1C,oBAAoB;IACxB,IAAI0C,0BAA0B,EAAE;MAC9B1C,oBAAoB,GAAG,IAAA2C,oDAAgC,EAACD,0BAA0B,CAAC;IACrF;IACA,MAAM/C,MAAM,GAAG,MAAMN,UAAU,CAACS,eAAe,CAACC,OAAO,EAAEC,oBAAoB,CAAC;IAC9E,MAAMT,eAAe,GAAGI,MAAM,CAACA,MAAM;IACrC,OAAQJ,eAAe,CAAqB+C,QAAQ,CAAC,CAAC;EACxD,CAAC;EACD,OAAOE,IAAI;AACb"}
1
+ {"version":3,"names":["_consumer","data","require","_workspaceConfig","_interopRequireDefault","_utils","_cli","_path","_workspaceConfig2","_config","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ConfigMain","constructor","workspaceConfig","scopeConfig","type","path","config","reloadWorkspaceConfig","loadWorkspaceConfigIfExist","ensureWorkspace","workspacePath","scopePath","workspaceConfigProps","WorkspaceConfig","ensure","extensions","extension","extensionId","ignoreVersion","setExtension","options","getHarmonyConfigObject","forEach","stringId","provider","LegacyWorkspaceConfig","registerOnWorkspaceConfigIsExist","onLegacyWorkspaceConfigIsExist","registerOnWorkspaceConfigEnsuring","onLegacyWorkspaceEnsure","configMain","undefined","registerOnWorkspaceConfigLoading","onLegacyWorkspaceLoad","registerOnWorkspaceConfigReset","dirPath","resetHard","reset","exports","MainRuntime","ConfigAspect","addRuntime","consumerInfo","getConsumerInfo","process","cwd","configDirPath","findScopePath","loadIfExist","isExist","normalize","dirname","toLegacy","newConfig","func","standAlone","legacyWorkspaceConfigProps","transformLegacyPropsToExtensions"],"sources":["config.main.runtime.ts"],"sourcesContent":["import { getConsumerInfo } from '@teambit/legacy/dist/consumer';\nimport {\n ExtensionDataEntry,\n ExtensionDataList,\n ILegacyWorkspaceConfig,\n LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigEnsureFunction,\n WorkspaceConfigIsExistFunction,\n WorkspaceConfigLoadFunction,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { findScopePath } from '@teambit/legacy/dist/utils';\nimport { MainRuntime } from '@teambit/cli';\nimport { GlobalConfig } from '@teambit/harmony';\nimport path from 'path';\nimport { transformLegacyPropsToExtensions, WorkspaceConfig, WorkspaceConfigFileProps } from './workspace-config';\nimport { ConfigType, HostConfig } from './types';\nimport { ConfigAspect } from './config.aspect';\n\nexport type SetExtensionOptions = {\n overrideExisting?: boolean;\n ignoreVersion: boolean;\n mergeIntoExisting?: boolean;\n};\n\nexport type ConfigDeps = [];\n\nexport type ConfigConfig = {};\n\nexport class ConfigMain {\n constructor(public workspaceConfig?: WorkspaceConfig, public scopeConfig?: WorkspaceConfig) {}\n\n get type(): ConfigType {\n if (this.workspaceConfig) {\n return 'workspace';\n }\n return 'scope';\n }\n\n get path(): PathOsBased | undefined {\n return this.config?.path;\n }\n\n get config(): HostConfig | undefined {\n if (this.workspaceConfig) {\n return this.workspaceConfig;\n }\n return this.scopeConfig;\n }\n\n async reloadWorkspaceConfig() {\n const workspaceConfig = await loadWorkspaceConfigIfExist();\n if (workspaceConfig) this.workspaceConfig = workspaceConfig;\n }\n\n /**\n * Ensure the given directory has a workspace config\n * Load if existing and create new if not\n *\n * @static\n * @param {PathOsBasedAbsolute} workspacePath\n * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]\n * @returns {Promise<WorkspaceConfig>}\n * @memberof WorkspaceConfig\n */\n static async ensureWorkspace(\n workspacePath: PathOsBasedAbsolute,\n scopePath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any\n ): Promise<ConfigMain> {\n const workspaceConfig = await WorkspaceConfig.ensure(workspacePath, scopePath, workspaceConfigProps);\n return new ConfigMain(workspaceConfig);\n }\n\n get extensions(): ExtensionDataList | undefined {\n return this.config?.extensions;\n }\n\n extension(extensionId: string, ignoreVersion: boolean): ExtensionDataEntry | undefined {\n return this.config?.extension(extensionId, ignoreVersion);\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions) {\n this.config?.setExtension(extensionId, config, options);\n }\n\n getHarmonyConfigObject(): GlobalConfig {\n const config = {};\n if (!this.extensions) return config;\n this.extensions.forEach((extension) => {\n config[extension.stringId] = extension.config;\n });\n return config;\n }\n\n static runtime = MainRuntime;\n static slots = [];\n static dependencies = [];\n static config = {};\n static async provider() {\n LegacyWorkspaceConfig.registerOnWorkspaceConfigIsExist(onLegacyWorkspaceConfigIsExist());\n LegacyWorkspaceConfig.registerOnWorkspaceConfigEnsuring(onLegacyWorkspaceEnsure());\n\n let configMain: ConfigMain | any;\n const workspaceConfig = await loadWorkspaceConfigIfExist();\n if (workspaceConfig) {\n configMain = new ConfigMain(workspaceConfig, undefined);\n } else {\n // TODO: try load scope config here\n configMain = {};\n }\n LegacyWorkspaceConfig.registerOnWorkspaceConfigLoading(onLegacyWorkspaceLoad(configMain));\n LegacyWorkspaceConfig.registerOnWorkspaceConfigReset((dirPath, resetHard) =>\n WorkspaceConfig.reset(dirPath, resetHard)\n );\n return configMain;\n }\n}\n\nConfigAspect.addRuntime(ConfigMain);\n\nasync function loadWorkspaceConfigIfExist(): Promise<WorkspaceConfig | undefined> {\n const consumerInfo = await getConsumerInfo(process.cwd());\n const configDirPath = consumerInfo?.path || process.cwd();\n const scopePath = findScopePath(configDirPath);\n const workspaceConfig = await WorkspaceConfig.loadIfExist(configDirPath, scopePath);\n return workspaceConfig;\n}\n\nfunction onLegacyWorkspaceConfigIsExist(): WorkspaceConfigIsExistFunction {\n return async (dirPath: PathOsBased): Promise<boolean | undefined> => {\n return WorkspaceConfig.isExist(dirPath);\n };\n}\n\nfunction onLegacyWorkspaceLoad(config?: ConfigMain): WorkspaceConfigLoadFunction {\n return async (dirPath: PathOsBased, scopePath: PathOsBasedAbsolute): Promise<ILegacyWorkspaceConfig | undefined> => {\n if (config?.workspaceConfig && config.path && path.normalize(dirPath) === path.dirname(config.path)) {\n return (config.config as WorkspaceConfig).toLegacy();\n }\n const newConfig = await WorkspaceConfig.loadIfExist(dirPath, scopePath);\n if (newConfig) {\n return newConfig.toLegacy();\n }\n return undefined;\n };\n}\n\nfunction onLegacyWorkspaceEnsure(): WorkspaceConfigEnsureFunction {\n const func: WorkspaceConfigEnsureFunction = async (\n workspacePath: string,\n scopePath: string,\n standAlone,\n legacyWorkspaceConfigProps?: LegacyWorkspaceConfigProps\n ) => {\n let workspaceConfigProps;\n if (legacyWorkspaceConfigProps) {\n workspaceConfigProps = transformLegacyPropsToExtensions(legacyWorkspaceConfigProps);\n }\n const config = await ConfigMain.ensureWorkspace(workspacePath, scopePath, workspaceConfigProps);\n const workspaceConfig = config.config;\n return (workspaceConfig as WorkspaceConfig).toLegacy();\n };\n return func;\n}\n"],"mappings":"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"}
@@ -42,14 +42,14 @@ export type WorkspaceLegacyProps = {
42
42
  export type ExtensionsDefs = WorkspaceSettingsNewProps;
43
43
  export declare class WorkspaceConfig implements HostConfig {
44
44
  private data;
45
+ private _path;
46
+ private scopePath?;
45
47
  raw?: any;
46
- _path?: string;
47
48
  _extensions: ExtensionDataList;
48
49
  _legacyProps?: WorkspaceLegacyProps;
49
50
  isLegacy: boolean;
50
- constructor(data: WorkspaceConfigFileProps);
51
+ constructor(data: WorkspaceConfigFileProps, _path: PathOsBasedAbsolute, scopePath?: PathOsBasedAbsolute);
51
52
  get path(): PathOsBased;
52
- set path(configPath: PathOsBased);
53
53
  get extensions(): ExtensionDataList;
54
54
  private loadExtensions;
55
55
  extension(extensionId: string, ignoreVersion: boolean): any;
@@ -63,7 +63,7 @@ export declare class WorkspaceConfig implements HostConfig {
63
63
  * @returns
64
64
  * @memberof WorkspaceConfig
65
65
  */
66
- static fromObject(data: WorkspaceConfigFileProps): WorkspaceConfig;
66
+ static fromObject(data: WorkspaceConfigFileProps, workspaceJsoncPath: PathOsBased, scopePath?: PathOsBasedAbsolute): WorkspaceConfig;
67
67
  /**
68
68
  * Create an instance of the WorkspaceConfig by the workspace config template and override values
69
69
  *
@@ -72,7 +72,7 @@ export declare class WorkspaceConfig implements HostConfig {
72
72
  * @returns
73
73
  * @memberof WorkspaceConfig
74
74
  */
75
- static create(props: WorkspaceConfigFileProps, dirPath?: PathOsBasedAbsolute): Promise<WorkspaceConfig>;
75
+ static create(props: WorkspaceConfigFileProps, dirPath: PathOsBasedAbsolute, scopePath: PathOsBasedAbsolute): Promise<WorkspaceConfig>;
76
76
  /**
77
77
  * Ensure the given directory has a workspace config
78
78
  * Load if existing and create new if not
@@ -83,7 +83,7 @@ export declare class WorkspaceConfig implements HostConfig {
83
83
  * @returns {Promise<WorkspaceConfig>}
84
84
  * @memberof WorkspaceConfig
85
85
  */
86
- static ensure(dirPath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps): Promise<WorkspaceConfig>;
86
+ static ensure(dirPath: PathOsBasedAbsolute, scopePath: PathOsBasedAbsolute, workspaceConfigProps?: WorkspaceConfigFileProps): Promise<WorkspaceConfig>;
87
87
  static reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void>;
88
88
  /**
89
89
  * Get the path of the workspace.jsonc file by a containing folder
@@ -108,11 +108,17 @@ export declare class WorkspaceConfig implements HostConfig {
108
108
  * @returns {(Promise<WorkspaceConfig | undefined>)}
109
109
  * @memberof WorkspaceConfig
110
110
  */
111
- static loadIfExist(dirPath: PathOsBased): Promise<WorkspaceConfig | undefined>;
112
- static _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased): Promise<WorkspaceConfig>;
113
- write({ dir }?: {
111
+ static loadIfExist(dirPath: PathOsBased, scopePath?: PathOsBasedAbsolute): Promise<WorkspaceConfig | undefined>;
112
+ static _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased, scopePath?: string): Promise<WorkspaceConfig>;
113
+ write({ dir, reasonForChange }?: {
114
114
  dir?: PathOsBasedAbsolute;
115
+ reasonForChange?: string;
115
116
  }): Promise<void>;
117
+ private backupConfigFile;
118
+ private getBackupDir;
119
+ getBackupHistoryDir(): string;
120
+ getBackupMetadataFilePath(): string;
121
+ private getParsedHistoryMetadata;
116
122
  toVinyl(workspaceDir: PathOsBasedAbsolute): Promise<AbstractVinyl[] | undefined>;
117
123
  toLegacy(): ILegacyWorkspaceConfig;
118
124
  }
@@ -49,6 +49,13 @@ function _logger() {
49
49
  };
50
50
  return data;
51
51
  }
52
+ function _consumer() {
53
+ const data = require("@teambit/legacy/dist/consumer/consumer");
54
+ _consumer = function () {
55
+ return data;
56
+ };
57
+ return data;
58
+ }
52
59
  function _commentJson() {
53
60
  const data = require("comment-json");
54
61
  _commentJson = function () {
@@ -91,13 +98,6 @@ function _exceptions() {
91
98
  };
92
99
  return data;
93
100
  }
94
- function _configDirNotDefined() {
95
- const data = require("./exceptions/config-dir-not-defined");
96
- _configDirNotDefined = function () {
97
- return data;
98
- };
99
- return data;
100
- }
101
101
  function _invalidConfigFile() {
102
102
  const data = _interopRequireDefault(require("./exceptions/invalid-config-file"));
103
103
  _invalidConfigFile = function () {
@@ -115,10 +115,11 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
115
115
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
116
116
  const INTERNAL_CONFIG_PROPS = ['$schema', '$schemaVersion'];
117
117
  class WorkspaceConfig {
118
- constructor(data) {
118
+ constructor(data, _path, scopePath) {
119
119
  this.data = data;
120
+ this._path = _path;
121
+ this.scopePath = scopePath;
120
122
  _defineProperty(this, "raw", void 0);
121
- _defineProperty(this, "_path", void 0);
122
123
  _defineProperty(this, "_extensions", void 0);
123
124
  _defineProperty(this, "_legacyProps", void 0);
124
125
  _defineProperty(this, "isLegacy", void 0);
@@ -126,10 +127,7 @@ class WorkspaceConfig {
126
127
  this.loadExtensions();
127
128
  }
128
129
  get path() {
129
- return this._path || '';
130
- }
131
- set path(configPath) {
132
- this._path = configPath;
130
+ return this._path;
133
131
  }
134
132
  get extensions() {
135
133
  return this._extensions;
@@ -171,8 +169,8 @@ class WorkspaceConfig {
171
169
  * @returns
172
170
  * @memberof WorkspaceConfig
173
171
  */
174
- static fromObject(data) {
175
- return new WorkspaceConfig(data);
172
+ static fromObject(data, workspaceJsoncPath, scopePath) {
173
+ return new WorkspaceConfig(data, workspaceJsoncPath, scopePath);
176
174
  }
177
175
 
178
176
  /**
@@ -183,7 +181,7 @@ class WorkspaceConfig {
183
181
  * @returns
184
182
  * @memberof WorkspaceConfig
185
183
  */
186
- static async create(props, dirPath) {
184
+ static async create(props, dirPath, scopePath) {
187
185
  const template = await getWorkspaceConfigTemplateParsed();
188
186
  // previously, we just did `assign(template, props)`, but it was replacing the entire workspace config with the "props".
189
187
  // so for example, if the props only had defaultScope, it was removing the defaultDirectory.
@@ -191,11 +189,7 @@ class WorkspaceConfig {
191
189
  const merged = (0, _commentJson().assign)(template, {
192
190
  [_workspace().default.id]: workspaceAspectConf
193
191
  });
194
- const instance = new WorkspaceConfig(merged);
195
- if (dirPath) {
196
- instance.path = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);
197
- }
198
- return instance;
192
+ return new WorkspaceConfig(merged, WorkspaceConfig.composeWorkspaceJsoncPath(dirPath), scopePath);
199
193
  }
200
194
 
201
195
  /**
@@ -208,17 +202,17 @@ class WorkspaceConfig {
208
202
  * @returns {Promise<WorkspaceConfig>}
209
203
  * @memberof WorkspaceConfig
210
204
  */
211
- static async ensure(dirPath, workspaceConfigProps = {}) {
205
+ static async ensure(dirPath, scopePath, workspaceConfigProps = {}) {
212
206
  try {
213
- let workspaceConfig = await this.loadIfExist(dirPath);
207
+ let workspaceConfig = await this.loadIfExist(dirPath, scopePath);
214
208
  if (workspaceConfig) {
215
209
  return workspaceConfig;
216
210
  }
217
- workspaceConfig = await this.create(workspaceConfigProps, dirPath);
211
+ workspaceConfig = await this.create(workspaceConfigProps, dirPath, scopePath);
218
212
  return workspaceConfig;
219
213
  } catch (err) {
220
214
  if (err instanceof _invalidConfigFile().default) {
221
- const workspaceConfig = this.create(workspaceConfigProps, dirPath);
215
+ const workspaceConfig = this.create(workspaceConfigProps, dirPath, scopePath);
222
216
  return workspaceConfig;
223
217
  }
224
218
  throw err;
@@ -268,17 +262,16 @@ class WorkspaceConfig {
268
262
  * @returns {(Promise<WorkspaceConfig | undefined>)}
269
263
  * @memberof WorkspaceConfig
270
264
  */
271
- static async loadIfExist(dirPath) {
265
+ static async loadIfExist(dirPath, scopePath) {
272
266
  const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);
273
267
  if (jsoncExist) {
274
268
  const jsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);
275
- const instance = await WorkspaceConfig._loadFromWorkspaceJsonc(jsoncPath);
276
- instance.path = jsoncPath;
269
+ const instance = await WorkspaceConfig._loadFromWorkspaceJsonc(jsoncPath, scopePath);
277
270
  return instance;
278
271
  }
279
272
  return undefined;
280
273
  }
281
- static async _loadFromWorkspaceJsonc(workspaceJsoncPath) {
274
+ static async _loadFromWorkspaceJsonc(workspaceJsoncPath, scopePath) {
282
275
  const contentBuffer = await fs().readFile(workspaceJsoncPath);
283
276
  let parsed;
284
277
  try {
@@ -286,24 +279,69 @@ class WorkspaceConfig {
286
279
  } catch (e) {
287
280
  throw new (_invalidConfigFile().default)(workspaceJsoncPath);
288
281
  }
289
- return WorkspaceConfig.fromObject(parsed);
282
+ return WorkspaceConfig.fromObject(parsed, workspaceJsoncPath, scopePath);
290
283
  }
291
284
  async write({
292
- dir
285
+ dir,
286
+ reasonForChange
293
287
  } = {}) {
294
288
  const getCalculatedDir = () => {
295
289
  if (dir) return dir;
296
- if (this._path) return path().dirname(this._path);
297
- throw new (_configDirNotDefined().ConfigDirNotDefined)();
290
+ return path().dirname(this._path);
298
291
  };
299
292
  const calculatedDir = getCalculatedDir();
300
293
  const files = await this.toVinyl(calculatedDir);
301
294
  const dataToPersist = new (_dataToPersist().default)();
302
295
  if (files) {
303
296
  dataToPersist.addManyFiles(files);
304
- return dataToPersist.persistAllToFS();
297
+ await this.backupConfigFile(reasonForChange);
298
+ await dataToPersist.persistAllToFS();
305
299
  }
306
- return undefined;
300
+ }
301
+ async backupConfigFile(reasonForChange) {
302
+ if (!this.scopePath) {
303
+ _logger().default.error(`unable to backup workspace.jsonc file without scope path`);
304
+ return;
305
+ }
306
+ try {
307
+ const baseDir = this.getBackupHistoryDir();
308
+ await fs().ensureDir(baseDir);
309
+ const fileId = (0, _consumer().currentDateAndTimeToFileName)();
310
+ const backupPath = path().join(baseDir, fileId);
311
+ await fs().copyFile(this._path, backupPath);
312
+ const metadataFile = this.getBackupMetadataFilePath();
313
+ await fs().appendFile(metadataFile, `${fileId} ${reasonForChange || ''}\n`);
314
+ } catch (err) {
315
+ if (err.code === 'ENOENT') return; // no such file or directory, meaning the .bitmap file doesn't exist (yet)
316
+ // it's a nice to have feature. don't kill the process if something goes wrong.
317
+ _logger().default.error(`failed to backup workspace.jsonc`, err);
318
+ }
319
+ }
320
+ getBackupDir() {
321
+ if (!this.scopePath) throw new Error('unable to get backup dir without scope path');
322
+ return path().join(this.scopePath, 'workspace-config-history');
323
+ }
324
+ getBackupHistoryDir() {
325
+ return path().join(this.getBackupDir(), 'files');
326
+ }
327
+ getBackupMetadataFilePath() {
328
+ return path().join(this.getBackupDir(), 'metadata.txt');
329
+ }
330
+ async getParsedHistoryMetadata() {
331
+ let fileContent;
332
+ try {
333
+ fileContent = await fs().readFile(this.getBackupMetadataFilePath(), 'utf-8');
334
+ } catch (err) {
335
+ if (err.code === 'ENOENT') return {}; // no such file or directory, meaning the history-metadata file doesn't exist (yet)
336
+ }
337
+ const lines = fileContent?.split('\n') || [];
338
+ const metadata = {};
339
+ lines.forEach(line => {
340
+ const [fileId, ...reason] = line.split(' ');
341
+ if (!fileId) return;
342
+ metadata[fileId] = reason.join(' ');
343
+ });
344
+ return metadata;
307
345
  }
308
346
  async toVinyl(workspaceDir) {
309
347
  const jsonStr = `${(0, _commentJson().stringify)(this.data, undefined, 2)}\n`;
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","data","require","_sources","_dataToPersist","_interopRequireDefault","_config","_workspaceConfig","_logger","_commentJson","fs","_interopRequireWildcard","path","_lodash","_workspace","_exceptions","_configDirNotDefined","_invalidConfigFile","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","INTERNAL_CONFIG_PROPS","WorkspaceConfig","constructor","raw","loadExtensions","_path","configPath","extensions","_extensions","withoutInternalConfig","omit","ExtensionDataList","fromConfigObject","extension","extensionId","ignoreVersion","existing","findExtension","config","setExtension","options","mergeIntoExisting","overrideExisting","ExtensionAlreadyConfigured","renameExtensionInRaw","oldExtId","newExtId","fromObject","create","props","dirPath","template","getWorkspaceConfigTemplateParsed","workspaceAspectConf","assign","WorkspaceAspect","id","merged","instance","composeWorkspaceJsoncPath","ensure","workspaceConfigProps","workspaceConfig","loadIfExist","err","InvalidConfigFile","reset","resetHard","workspaceJsoncPath","logger","info","remove","join","WORKSPACE_JSONC","pathHasWorkspaceJsonc","isExist","pathExists","jsoncExist","LegacyWorkspaceConfig","_isExist","jsoncPath","_loadFromWorkspaceJsonc","undefined","contentBuffer","readFile","parsed","parse","toString","write","dir","getCalculatedDir","dirname","ConfigDirNotDefined","calculatedDir","files","toVinyl","dataToPersist","DataToPersist","addManyFiles","persistAllToFS","workspaceDir","jsonStr","stringify","base","fullPath","jsonFile","AbstractVinyl","contents","Buffer","from","toLegacy","componentsDefaultDirectory","defaultDirectory","includes","lang","DEFAULT_LANGUAGE","defaultScope","_useWorkspaces","useWorkspaces","dependencyResolver","packageManager","_saveDependenciesAsComponents","_legacyProps","saveDependenciesAsComponents","_dependenciesDirectory","dependenciesDirectory","_manageWorkspaces","manageWorkspaces","toConfigObject","isLegacy","bind","_legacyPlainObject","exports","transformLegacyPropsToExtensions","legacyConfig","removeUndefined","entries","workspace","extraArgs","packageManagerArgs","packageManagerProcessOptions","isEmpty","fileContent","__dirname","code","stringifyWorkspaceConfig"],"sources":["workspace-config.ts"],"sourcesContent":["import { DEFAULT_LANGUAGE, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { ExtensionDataList, ILegacyWorkspaceConfig } from '@teambit/legacy/dist/consumer/config';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigProps as LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { assign, parse, stringify, CommentJSONValue } from 'comment-json';\nimport * as fs from 'fs-extra';\nimport * as path from 'path';\nimport { isEmpty, omit } from 'lodash';\nimport WorkspaceAspect from '@teambit/workspace';\nimport { SetExtensionOptions } from './config.main.runtime';\nimport { ExtensionAlreadyConfigured } from './exceptions';\nimport { ConfigDirNotDefined } from './exceptions/config-dir-not-defined';\nimport InvalidConfigFile from './exceptions/invalid-config-file';\nimport { HostConfig } from './types';\n\nconst INTERNAL_CONFIG_PROPS = ['$schema', '$schemaVersion'];\n\nexport type LegacyInitProps = {\n standAlone?: boolean;\n};\n\nexport type WorkspaceConfigFileProps = {\n // TODO: make it no optional\n $schema?: string;\n $schemaVersion?: string;\n} & ExtensionsDefs;\n\nexport type ComponentScopeDirMapEntry = {\n defaultScope?: string;\n directory: string;\n};\n\nexport type ComponentScopeDirMap = Array<ComponentScopeDirMapEntry>;\n\nexport type WorkspaceExtensionProps = {\n defaultScope?: string;\n defaultDirectory?: string;\n components?: ComponentScopeDirMap;\n};\n\nexport type PackageManagerClients = 'npm' | 'yarn' | undefined;\n\nexport interface DependencyResolverExtensionProps {\n packageManager: PackageManagerClients;\n strictPeerDependencies?: boolean;\n extraArgs?: string[];\n packageManagerProcessOptions?: any;\n useWorkspaces?: boolean;\n manageWorkspaces?: boolean;\n}\n\nexport type WorkspaceSettingsNewProps = {\n 'teambit.workspace/workspace': WorkspaceExtensionProps;\n 'teambit.dependencies/dependency-resolver': DependencyResolverExtensionProps;\n};\n\nexport type WorkspaceLegacyProps = {\n dependenciesDirectory?: string;\n saveDependenciesAsComponents?: boolean;\n};\n\nexport type ExtensionsDefs = WorkspaceSettingsNewProps;\n\nexport class WorkspaceConfig implements HostConfig {\n raw?: any;\n _path?: string;\n _extensions: ExtensionDataList;\n _legacyProps?: WorkspaceLegacyProps;\n isLegacy: boolean;\n\n constructor(private data: WorkspaceConfigFileProps) {\n this.raw = data;\n this.loadExtensions();\n }\n\n get path(): PathOsBased {\n return this._path || '';\n }\n\n set path(configPath: PathOsBased) {\n this._path = configPath;\n }\n\n get extensions(): ExtensionDataList {\n return this._extensions;\n }\n\n private loadExtensions() {\n const withoutInternalConfig = omit(this.raw, INTERNAL_CONFIG_PROPS);\n this._extensions = ExtensionDataList.fromConfigObject(withoutInternalConfig);\n }\n\n extension(extensionId: string, ignoreVersion: boolean): any {\n const existing = this.extensions.findExtension(extensionId, ignoreVersion);\n return existing?.config;\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): any {\n const existing = this.extension(extensionId, options.ignoreVersion);\n if (existing) {\n if (options.mergeIntoExisting) {\n config = { ...existing, ...config };\n } else if (!options.overrideExisting) {\n throw new ExtensionAlreadyConfigured(extensionId);\n }\n }\n\n this.raw[extensionId] = config;\n this.loadExtensions();\n }\n\n renameExtensionInRaw(oldExtId: string, newExtId: string): boolean {\n if (this.raw[oldExtId]) {\n this.raw[newExtId] = this.raw[oldExtId];\n delete this.raw[oldExtId];\n return true;\n }\n return false;\n }\n\n /**\n * Create an instance of the WorkspaceConfig by data\n *\n * @static\n * @param {WorkspaceConfigFileProps} data\n * @returns\n * @memberof WorkspaceConfig\n */\n static fromObject(data: WorkspaceConfigFileProps) {\n return new WorkspaceConfig(data);\n }\n\n /**\n * Create an instance of the WorkspaceConfig by the workspace config template and override values\n *\n * @static\n * @param {WorkspaceConfigFileProps} data values to override in the default template\n * @returns\n * @memberof WorkspaceConfig\n */\n static async create(props: WorkspaceConfigFileProps, dirPath?: PathOsBasedAbsolute) {\n const template = await getWorkspaceConfigTemplateParsed();\n // previously, we just did `assign(template, props)`, but it was replacing the entire workspace config with the \"props\".\n // so for example, if the props only had defaultScope, it was removing the defaultDirectory.\n const workspaceAspectConf = assign(template[WorkspaceAspect.id], props[WorkspaceAspect.id]);\n const merged = assign(template, { [WorkspaceAspect.id]: workspaceAspectConf });\n const instance = new WorkspaceConfig(merged);\n if (dirPath) {\n instance.path = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n }\n return instance;\n }\n\n /**\n * Ensure the given directory has a workspace config\n * Load if existing and create new if not\n *\n * @static\n * @param {PathOsBasedAbsolute} dirPath\n * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]\n * @returns {Promise<WorkspaceConfig>}\n * @memberof WorkspaceConfig\n */\n static async ensure(\n dirPath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any\n ): Promise<WorkspaceConfig> {\n try {\n let workspaceConfig = await this.loadIfExist(dirPath);\n if (workspaceConfig) {\n return workspaceConfig;\n }\n workspaceConfig = await this.create(workspaceConfigProps, dirPath);\n return workspaceConfig;\n } catch (err: any) {\n if (err instanceof InvalidConfigFile) {\n const workspaceConfig = this.create(workspaceConfigProps, dirPath);\n return workspaceConfig;\n }\n throw err;\n }\n }\n\n static async reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void> {\n const workspaceJsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n if (resetHard && workspaceJsoncPath) {\n logger.info(`deleting the consumer workspace.jsonc file at ${workspaceJsoncPath}`);\n await fs.remove(workspaceJsoncPath);\n }\n }\n\n /**\n * Get the path of the workspace.jsonc file by a containing folder\n *\n * @static\n * @param {PathOsBased} dirPath containing dir of the workspace.jsonc file\n * @returns {PathOsBased}\n * @memberof WorkspaceConfig\n */\n static composeWorkspaceJsoncPath(dirPath: PathOsBased): PathOsBased {\n return path.join(dirPath, WORKSPACE_JSONC);\n }\n\n static async pathHasWorkspaceJsonc(dirPath: PathOsBased): Promise<boolean> {\n const isExist = await fs.pathExists(WorkspaceConfig.composeWorkspaceJsoncPath(dirPath));\n return isExist;\n }\n\n /**\n * Check if the given dir has workspace config (new or legacy)\n * @param dirPath\n */\n static async isExist(dirPath: PathOsBased): Promise<boolean | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n return true;\n }\n return LegacyWorkspaceConfig._isExist(dirPath);\n }\n\n /**\n * Load the workspace configuration if it's exist\n *\n * @static\n * @param {PathOsBased} dirPath\n * @returns {(Promise<WorkspaceConfig | undefined>)}\n * @memberof WorkspaceConfig\n */\n static async loadIfExist(dirPath: PathOsBased): Promise<WorkspaceConfig | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n const jsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n const instance = await WorkspaceConfig._loadFromWorkspaceJsonc(jsoncPath);\n instance.path = jsoncPath;\n return instance;\n }\n return undefined;\n }\n\n static async _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased): Promise<WorkspaceConfig> {\n const contentBuffer = await fs.readFile(workspaceJsoncPath);\n let parsed;\n try {\n parsed = parse(contentBuffer.toString());\n } catch (e: any) {\n throw new InvalidConfigFile(workspaceJsoncPath);\n }\n return WorkspaceConfig.fromObject(parsed);\n }\n\n async write({ dir }: { dir?: PathOsBasedAbsolute } = {}): Promise<void> {\n const getCalculatedDir = () => {\n if (dir) return dir;\n if (this._path) return path.dirname(this._path);\n throw new ConfigDirNotDefined();\n };\n const calculatedDir = getCalculatedDir();\n const files = await this.toVinyl(calculatedDir);\n const dataToPersist = new DataToPersist();\n if (files) {\n dataToPersist.addManyFiles(files);\n return dataToPersist.persistAllToFS();\n }\n return undefined;\n }\n\n async toVinyl(workspaceDir: PathOsBasedAbsolute): Promise<AbstractVinyl[] | undefined> {\n const jsonStr = `${stringify(this.data, undefined, 2)}\\n`;\n const base = workspaceDir;\n const fullPath = workspaceDir ? WorkspaceConfig.composeWorkspaceJsoncPath(workspaceDir) : this.path;\n const jsonFile = new AbstractVinyl({ base, path: fullPath, contents: Buffer.from(jsonStr) });\n return [jsonFile];\n }\n\n toLegacy(): ILegacyWorkspaceConfig {\n let componentsDefaultDirectory = this.extension('teambit.workspace/workspace', true)?.defaultDirectory;\n if (componentsDefaultDirectory && !componentsDefaultDirectory.includes('{name}')) {\n componentsDefaultDirectory = `${componentsDefaultDirectory}/{name}`;\n }\n\n return {\n lang: DEFAULT_LANGUAGE,\n defaultScope: this.extension('teambit.workspace/workspace', true)?.defaultScope,\n _useWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.useWorkspaces,\n dependencyResolver: this.extension('teambit.dependencies/dependency-resolver', true),\n packageManager: this.extension('teambit.dependencies/dependency-resolver', true)?.packageManager,\n _saveDependenciesAsComponents: this._legacyProps?.saveDependenciesAsComponents,\n _dependenciesDirectory: this._legacyProps?.dependenciesDirectory,\n componentsDefaultDirectory,\n _manageWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.manageWorkspaces,\n extensions: this.extensions.toConfigObject(),\n // @ts-ignore\n path: this.path,\n isLegacy: false,\n write: ({ workspaceDir }) => this.write.call(this, { dir: workspaceDir }),\n toVinyl: this.toVinyl.bind(this),\n _legacyPlainObject: () => undefined,\n };\n }\n}\n\nexport function transformLegacyPropsToExtensions(\n legacyConfig: LegacyWorkspaceConfig | LegacyWorkspaceConfigProps\n): ExtensionsDefs {\n // TODO: move to utils\n const removeUndefined = (obj) => {\n // const res = omit(mapObjIndexed((val) => val === undefined))(obj);\n // return res;\n Object.entries(obj).forEach((e) => {\n if (e[1] === undefined) delete obj[e[0]];\n });\n return obj;\n };\n\n const workspace = removeUndefined({\n defaultScope: legacyConfig.defaultScope,\n defaultDirectory: legacyConfig.componentsDefaultDirectory,\n });\n const dependencyResolver = removeUndefined({\n packageManager: legacyConfig.packageManager,\n // strictPeerDependencies: false,\n extraArgs: legacyConfig.packageManagerArgs,\n packageManagerProcessOptions: legacyConfig.packageManagerProcessOptions,\n manageWorkspaces: legacyConfig.manageWorkspaces,\n useWorkspaces: legacyConfig.useWorkspaces,\n });\n const data = {};\n if (workspace && !isEmpty(workspace)) {\n data['teambit.workspace/workspace'] = workspace;\n }\n if (dependencyResolver && !isEmpty(dependencyResolver)) {\n data['teambit.dependencies/dependency-resolver'] = dependencyResolver;\n }\n // @ts-ignore\n return data;\n}\n\nexport async function getWorkspaceConfigTemplateParsed(): Promise<CommentJSONValue> {\n let fileContent: Buffer;\n try {\n fileContent = await fs.readFile(path.join(__dirname, 'workspace-template.jsonc'));\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n // when the extension is compiled by tsc, it doesn't copy .jsonc files into the dists, grab it from src\n fileContent = await fs.readFile(path.join(__dirname, '..', 'workspace-template.jsonc'));\n }\n return parse(fileContent.toString());\n}\n\nexport function stringifyWorkspaceConfig(workspaceConfig: CommentJSONValue): string {\n return stringify(workspaceConfig, undefined, 2);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","data","require","_sources","_dataToPersist","_interopRequireDefault","_config","_workspaceConfig","_logger","_consumer","_commentJson","fs","_interopRequireWildcard","path","_lodash","_workspace","_exceptions","_invalidConfigFile","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","INTERNAL_CONFIG_PROPS","WorkspaceConfig","constructor","_path","scopePath","raw","loadExtensions","extensions","_extensions","withoutInternalConfig","omit","ExtensionDataList","fromConfigObject","extension","extensionId","ignoreVersion","existing","findExtension","config","setExtension","options","mergeIntoExisting","overrideExisting","ExtensionAlreadyConfigured","renameExtensionInRaw","oldExtId","newExtId","fromObject","workspaceJsoncPath","create","props","dirPath","template","getWorkspaceConfigTemplateParsed","workspaceAspectConf","assign","WorkspaceAspect","id","merged","composeWorkspaceJsoncPath","ensure","workspaceConfigProps","workspaceConfig","loadIfExist","err","InvalidConfigFile","reset","resetHard","logger","info","remove","join","WORKSPACE_JSONC","pathHasWorkspaceJsonc","isExist","pathExists","jsoncExist","LegacyWorkspaceConfig","_isExist","jsoncPath","instance","_loadFromWorkspaceJsonc","undefined","contentBuffer","readFile","parsed","parse","toString","write","dir","reasonForChange","getCalculatedDir","dirname","calculatedDir","files","toVinyl","dataToPersist","DataToPersist","addManyFiles","backupConfigFile","persistAllToFS","error","baseDir","getBackupHistoryDir","ensureDir","fileId","currentDateAndTimeToFileName","backupPath","copyFile","metadataFile","getBackupMetadataFilePath","appendFile","code","getBackupDir","Error","getParsedHistoryMetadata","fileContent","lines","split","metadata","line","reason","workspaceDir","jsonStr","stringify","base","fullPath","jsonFile","AbstractVinyl","contents","Buffer","from","toLegacy","componentsDefaultDirectory","defaultDirectory","includes","lang","DEFAULT_LANGUAGE","defaultScope","_useWorkspaces","useWorkspaces","dependencyResolver","packageManager","_saveDependenciesAsComponents","_legacyProps","saveDependenciesAsComponents","_dependenciesDirectory","dependenciesDirectory","_manageWorkspaces","manageWorkspaces","toConfigObject","isLegacy","bind","_legacyPlainObject","exports","transformLegacyPropsToExtensions","legacyConfig","removeUndefined","entries","workspace","extraArgs","packageManagerArgs","packageManagerProcessOptions","isEmpty","__dirname","stringifyWorkspaceConfig"],"sources":["workspace-config.ts"],"sourcesContent":["import { DEFAULT_LANGUAGE, WORKSPACE_JSONC } from '@teambit/legacy/dist/constants';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { ExtensionDataList, ILegacyWorkspaceConfig } from '@teambit/legacy/dist/consumer/config';\nimport LegacyWorkspaceConfig, {\n WorkspaceConfigProps as LegacyWorkspaceConfigProps,\n} from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { PathOsBased, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport { currentDateAndTimeToFileName } from '@teambit/legacy/dist/consumer/consumer';\nimport { assign, parse, stringify, CommentJSONValue } from 'comment-json';\nimport * as fs from 'fs-extra';\nimport * as path from 'path';\nimport { isEmpty, omit } from 'lodash';\nimport WorkspaceAspect from '@teambit/workspace';\nimport { SetExtensionOptions } from './config.main.runtime';\nimport { ExtensionAlreadyConfigured } from './exceptions';\nimport InvalidConfigFile from './exceptions/invalid-config-file';\nimport { HostConfig } from './types';\n\nconst INTERNAL_CONFIG_PROPS = ['$schema', '$schemaVersion'];\n\nexport type LegacyInitProps = {\n standAlone?: boolean;\n};\n\nexport type WorkspaceConfigFileProps = {\n // TODO: make it no optional\n $schema?: string;\n $schemaVersion?: string;\n} & ExtensionsDefs;\n\nexport type ComponentScopeDirMapEntry = {\n defaultScope?: string;\n directory: string;\n};\n\nexport type ComponentScopeDirMap = Array<ComponentScopeDirMapEntry>;\n\nexport type WorkspaceExtensionProps = {\n defaultScope?: string;\n defaultDirectory?: string;\n components?: ComponentScopeDirMap;\n};\n\nexport type PackageManagerClients = 'npm' | 'yarn' | undefined;\n\nexport interface DependencyResolverExtensionProps {\n packageManager: PackageManagerClients;\n strictPeerDependencies?: boolean;\n extraArgs?: string[];\n packageManagerProcessOptions?: any;\n useWorkspaces?: boolean;\n manageWorkspaces?: boolean;\n}\n\nexport type WorkspaceSettingsNewProps = {\n 'teambit.workspace/workspace': WorkspaceExtensionProps;\n 'teambit.dependencies/dependency-resolver': DependencyResolverExtensionProps;\n};\n\nexport type WorkspaceLegacyProps = {\n dependenciesDirectory?: string;\n saveDependenciesAsComponents?: boolean;\n};\n\nexport type ExtensionsDefs = WorkspaceSettingsNewProps;\n\nexport class WorkspaceConfig implements HostConfig {\n raw?: any;\n _extensions: ExtensionDataList;\n _legacyProps?: WorkspaceLegacyProps;\n isLegacy: boolean;\n\n constructor(\n private data: WorkspaceConfigFileProps,\n private _path: PathOsBasedAbsolute,\n private scopePath?: PathOsBasedAbsolute\n ) {\n this.raw = data;\n this.loadExtensions();\n }\n\n get path(): PathOsBased {\n return this._path;\n }\n\n get extensions(): ExtensionDataList {\n return this._extensions;\n }\n\n private loadExtensions() {\n const withoutInternalConfig = omit(this.raw, INTERNAL_CONFIG_PROPS);\n this._extensions = ExtensionDataList.fromConfigObject(withoutInternalConfig);\n }\n\n extension(extensionId: string, ignoreVersion: boolean): any {\n const existing = this.extensions.findExtension(extensionId, ignoreVersion);\n return existing?.config;\n }\n\n setExtension(extensionId: string, config: Record<string, any>, options: SetExtensionOptions): any {\n const existing = this.extension(extensionId, options.ignoreVersion);\n if (existing) {\n if (options.mergeIntoExisting) {\n config = { ...existing, ...config };\n } else if (!options.overrideExisting) {\n throw new ExtensionAlreadyConfigured(extensionId);\n }\n }\n\n this.raw[extensionId] = config;\n this.loadExtensions();\n }\n\n renameExtensionInRaw(oldExtId: string, newExtId: string): boolean {\n if (this.raw[oldExtId]) {\n this.raw[newExtId] = this.raw[oldExtId];\n delete this.raw[oldExtId];\n return true;\n }\n return false;\n }\n\n /**\n * Create an instance of the WorkspaceConfig by data\n *\n * @static\n * @param {WorkspaceConfigFileProps} data\n * @returns\n * @memberof WorkspaceConfig\n */\n static fromObject(data: WorkspaceConfigFileProps, workspaceJsoncPath: PathOsBased, scopePath?: PathOsBasedAbsolute) {\n return new WorkspaceConfig(data, workspaceJsoncPath, scopePath);\n }\n\n /**\n * Create an instance of the WorkspaceConfig by the workspace config template and override values\n *\n * @static\n * @param {WorkspaceConfigFileProps} data values to override in the default template\n * @returns\n * @memberof WorkspaceConfig\n */\n static async create(props: WorkspaceConfigFileProps, dirPath: PathOsBasedAbsolute, scopePath: PathOsBasedAbsolute) {\n const template = await getWorkspaceConfigTemplateParsed();\n // previously, we just did `assign(template, props)`, but it was replacing the entire workspace config with the \"props\".\n // so for example, if the props only had defaultScope, it was removing the defaultDirectory.\n const workspaceAspectConf = assign(template[WorkspaceAspect.id], props[WorkspaceAspect.id]);\n const merged = assign(template, { [WorkspaceAspect.id]: workspaceAspectConf });\n return new WorkspaceConfig(merged, WorkspaceConfig.composeWorkspaceJsoncPath(dirPath), scopePath);\n }\n\n /**\n * Ensure the given directory has a workspace config\n * Load if existing and create new if not\n *\n * @static\n * @param {PathOsBasedAbsolute} dirPath\n * @param {WorkspaceConfigFileProps} [workspaceConfigProps={} as any]\n * @returns {Promise<WorkspaceConfig>}\n * @memberof WorkspaceConfig\n */\n static async ensure(\n dirPath: PathOsBasedAbsolute,\n scopePath: PathOsBasedAbsolute,\n workspaceConfigProps: WorkspaceConfigFileProps = {} as any\n ): Promise<WorkspaceConfig> {\n try {\n let workspaceConfig = await this.loadIfExist(dirPath, scopePath);\n if (workspaceConfig) {\n return workspaceConfig;\n }\n workspaceConfig = await this.create(workspaceConfigProps, dirPath, scopePath);\n return workspaceConfig;\n } catch (err: any) {\n if (err instanceof InvalidConfigFile) {\n const workspaceConfig = this.create(workspaceConfigProps, dirPath, scopePath);\n return workspaceConfig;\n }\n throw err;\n }\n }\n\n static async reset(dirPath: PathOsBasedAbsolute, resetHard: boolean): Promise<void> {\n const workspaceJsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n if (resetHard && workspaceJsoncPath) {\n logger.info(`deleting the consumer workspace.jsonc file at ${workspaceJsoncPath}`);\n await fs.remove(workspaceJsoncPath);\n }\n }\n\n /**\n * Get the path of the workspace.jsonc file by a containing folder\n *\n * @static\n * @param {PathOsBased} dirPath containing dir of the workspace.jsonc file\n * @returns {PathOsBased}\n * @memberof WorkspaceConfig\n */\n static composeWorkspaceJsoncPath(dirPath: PathOsBased): PathOsBased {\n return path.join(dirPath, WORKSPACE_JSONC);\n }\n\n static async pathHasWorkspaceJsonc(dirPath: PathOsBased): Promise<boolean> {\n const isExist = await fs.pathExists(WorkspaceConfig.composeWorkspaceJsoncPath(dirPath));\n return isExist;\n }\n\n /**\n * Check if the given dir has workspace config (new or legacy)\n * @param dirPath\n */\n static async isExist(dirPath: PathOsBased): Promise<boolean | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n return true;\n }\n return LegacyWorkspaceConfig._isExist(dirPath);\n }\n\n /**\n * Load the workspace configuration if it's exist\n *\n * @static\n * @param {PathOsBased} dirPath\n * @returns {(Promise<WorkspaceConfig | undefined>)}\n * @memberof WorkspaceConfig\n */\n static async loadIfExist(\n dirPath: PathOsBased,\n scopePath?: PathOsBasedAbsolute\n ): Promise<WorkspaceConfig | undefined> {\n const jsoncExist = await WorkspaceConfig.pathHasWorkspaceJsonc(dirPath);\n if (jsoncExist) {\n const jsoncPath = WorkspaceConfig.composeWorkspaceJsoncPath(dirPath);\n const instance = await WorkspaceConfig._loadFromWorkspaceJsonc(jsoncPath, scopePath);\n return instance;\n }\n return undefined;\n }\n\n static async _loadFromWorkspaceJsonc(workspaceJsoncPath: PathOsBased, scopePath?: string): Promise<WorkspaceConfig> {\n const contentBuffer = await fs.readFile(workspaceJsoncPath);\n let parsed;\n try {\n parsed = parse(contentBuffer.toString());\n } catch (e: any) {\n throw new InvalidConfigFile(workspaceJsoncPath);\n }\n return WorkspaceConfig.fromObject(parsed, workspaceJsoncPath, scopePath);\n }\n\n async write({ dir, reasonForChange }: { dir?: PathOsBasedAbsolute; reasonForChange?: string } = {}): Promise<void> {\n const getCalculatedDir = () => {\n if (dir) return dir;\n return path.dirname(this._path);\n };\n const calculatedDir = getCalculatedDir();\n const files = await this.toVinyl(calculatedDir);\n const dataToPersist = new DataToPersist();\n if (files) {\n dataToPersist.addManyFiles(files);\n await this.backupConfigFile(reasonForChange);\n await dataToPersist.persistAllToFS();\n }\n }\n\n private async backupConfigFile(reasonForChange?: string) {\n if (!this.scopePath) {\n logger.error(`unable to backup workspace.jsonc file without scope path`);\n return;\n }\n try {\n const baseDir = this.getBackupHistoryDir();\n await fs.ensureDir(baseDir);\n const fileId = currentDateAndTimeToFileName();\n const backupPath = path.join(baseDir, fileId);\n await fs.copyFile(this._path, backupPath);\n const metadataFile = this.getBackupMetadataFilePath();\n await fs.appendFile(metadataFile, `${fileId} ${reasonForChange || ''}\\n`);\n } catch (err: any) {\n if (err.code === 'ENOENT') return; // no such file or directory, meaning the .bitmap file doesn't exist (yet)\n // it's a nice to have feature. don't kill the process if something goes wrong.\n logger.error(`failed to backup workspace.jsonc`, err);\n }\n }\n private getBackupDir() {\n if (!this.scopePath) throw new Error('unable to get backup dir without scope path');\n return path.join(this.scopePath, 'workspace-config-history');\n }\n getBackupHistoryDir() {\n return path.join(this.getBackupDir(), 'files');\n }\n getBackupMetadataFilePath() {\n return path.join(this.getBackupDir(), 'metadata.txt');\n }\n private async getParsedHistoryMetadata(): Promise<{ [fileId: string]: string }> {\n let fileContent: string | undefined;\n try {\n fileContent = await fs.readFile(this.getBackupMetadataFilePath(), 'utf-8');\n } catch (err: any) {\n if (err.code === 'ENOENT') return {}; // no such file or directory, meaning the history-metadata file doesn't exist (yet)\n }\n const lines = fileContent?.split('\\n') || [];\n const metadata = {};\n lines.forEach((line) => {\n const [fileId, ...reason] = line.split(' ');\n if (!fileId) return;\n metadata[fileId] = reason.join(' ');\n });\n return metadata;\n }\n\n async toVinyl(workspaceDir: PathOsBasedAbsolute): Promise<AbstractVinyl[] | undefined> {\n const jsonStr = `${stringify(this.data, undefined, 2)}\\n`;\n const base = workspaceDir;\n const fullPath = workspaceDir ? WorkspaceConfig.composeWorkspaceJsoncPath(workspaceDir) : this.path;\n const jsonFile = new AbstractVinyl({ base, path: fullPath, contents: Buffer.from(jsonStr) });\n return [jsonFile];\n }\n\n toLegacy(): ILegacyWorkspaceConfig {\n let componentsDefaultDirectory = this.extension('teambit.workspace/workspace', true)?.defaultDirectory;\n if (componentsDefaultDirectory && !componentsDefaultDirectory.includes('{name}')) {\n componentsDefaultDirectory = `${componentsDefaultDirectory}/{name}`;\n }\n\n return {\n lang: DEFAULT_LANGUAGE,\n defaultScope: this.extension('teambit.workspace/workspace', true)?.defaultScope,\n _useWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.useWorkspaces,\n dependencyResolver: this.extension('teambit.dependencies/dependency-resolver', true),\n packageManager: this.extension('teambit.dependencies/dependency-resolver', true)?.packageManager,\n _saveDependenciesAsComponents: this._legacyProps?.saveDependenciesAsComponents,\n _dependenciesDirectory: this._legacyProps?.dependenciesDirectory,\n componentsDefaultDirectory,\n _manageWorkspaces: this.extension('teambit.dependencies/dependency-resolver', true)?.manageWorkspaces,\n extensions: this.extensions.toConfigObject(),\n // @ts-ignore\n path: this.path,\n isLegacy: false,\n write: ({ workspaceDir }) => this.write.call(this, { dir: workspaceDir }),\n toVinyl: this.toVinyl.bind(this),\n _legacyPlainObject: () => undefined,\n };\n }\n}\n\nexport function transformLegacyPropsToExtensions(\n legacyConfig: LegacyWorkspaceConfig | LegacyWorkspaceConfigProps\n): ExtensionsDefs {\n // TODO: move to utils\n const removeUndefined = (obj) => {\n // const res = omit(mapObjIndexed((val) => val === undefined))(obj);\n // return res;\n Object.entries(obj).forEach((e) => {\n if (e[1] === undefined) delete obj[e[0]];\n });\n return obj;\n };\n\n const workspace = removeUndefined({\n defaultScope: legacyConfig.defaultScope,\n defaultDirectory: legacyConfig.componentsDefaultDirectory,\n });\n const dependencyResolver = removeUndefined({\n packageManager: legacyConfig.packageManager,\n // strictPeerDependencies: false,\n extraArgs: legacyConfig.packageManagerArgs,\n packageManagerProcessOptions: legacyConfig.packageManagerProcessOptions,\n manageWorkspaces: legacyConfig.manageWorkspaces,\n useWorkspaces: legacyConfig.useWorkspaces,\n });\n const data = {};\n if (workspace && !isEmpty(workspace)) {\n data['teambit.workspace/workspace'] = workspace;\n }\n if (dependencyResolver && !isEmpty(dependencyResolver)) {\n data['teambit.dependencies/dependency-resolver'] = dependencyResolver;\n }\n // @ts-ignore\n return data;\n}\n\nexport async function getWorkspaceConfigTemplateParsed(): Promise<CommentJSONValue> {\n let fileContent: Buffer;\n try {\n fileContent = await fs.readFile(path.join(__dirname, 'workspace-template.jsonc'));\n } catch (err: any) {\n if (err.code !== 'ENOENT') throw err;\n // when the extension is compiled by tsc, it doesn't copy .jsonc files into the dists, grab it from src\n fileContent = await fs.readFile(path.join(__dirname, '..', 'workspace-template.jsonc'));\n }\n return parse(fileContent.toString());\n}\n\nexport function stringifyWorkspaceConfig(workspaceConfig: CommentJSONValue): string {\n return stringify(workspaceConfig, undefined, 2);\n}\n"],"mappings":";;;;;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,eAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,cAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,iBAAA;EAAA,MAAAN,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAK,gBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,aAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,YAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,GAAA;EAAA,MAAAV,IAAA,GAAAW,uBAAA,CAAAV,OAAA;EAAAS,EAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,KAAA;EAAA,MAAAZ,IAAA,GAAAW,uBAAA,CAAAV,OAAA;EAAAW,IAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,QAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,OAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,WAAA;EAAA,MAAAd,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAa,UAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAe,YAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,WAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,mBAAA;EAAA,MAAAhB,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAe,kBAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiE,SAAAiB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAtB,uBAAAkC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;AAAA,SAAAC,QAAArB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAQ,MAAA,CAAAW,IAAA,CAAAtB,CAAA,OAAAW,MAAA,CAAAY,qBAAA,QAAAC,CAAA,GAAAb,MAAA,CAAAY,qBAAA,CAAAvB,CAAA,GAAAE,CAAA,KAAAsB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAvB,CAAA,WAAAS,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAE,CAAA,EAAAwB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAqB,CAAA,YAAArB,CAAA;AAAA,SAAA0B,cAAA7B,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAA4B,SAAA,CAAAC,MAAA,EAAA7B,CAAA,UAAAC,CAAA,WAAA2B,SAAA,CAAA5B,CAAA,IAAA4B,SAAA,CAAA5B,CAAA,QAAAA,CAAA,OAAAmB,OAAA,CAAAV,MAAA,CAAAR,CAAA,OAAA6B,OAAA,WAAA9B,CAAA,IAAA+B,eAAA,CAAAjC,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAS,MAAA,CAAAuB,yBAAA,GAAAvB,MAAA,CAAAwB,gBAAA,CAAAnC,CAAA,EAAAW,MAAA,CAAAuB,yBAAA,CAAA/B,CAAA,KAAAkB,OAAA,CAAAV,MAAA,CAAAR,CAAA,GAAA6B,OAAA,WAAA9B,CAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAZ,CAAA,EAAAE,CAAA,EAAAS,MAAA,CAAAE,wBAAA,CAAAV,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAAiC,gBAAAb,GAAA,EAAAgB,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAT,MAAA,CAAAC,cAAA,CAAAQ,GAAA,EAAAgB,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAX,UAAA,QAAAa,YAAA,QAAAC,QAAA,oBAAApB,GAAA,CAAAgB,GAAA,IAAAC,KAAA,WAAAjB,GAAA;AAAA,SAAAkB,eAAAnC,CAAA,QAAAe,CAAA,GAAAuB,YAAA,CAAAtC,CAAA,uCAAAe,CAAA,GAAAA,CAAA,GAAAwB,MAAA,CAAAxB,CAAA;AAAA,SAAAuB,aAAAtC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAwC,MAAA,CAAAC,WAAA,kBAAA5C,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAd,CAAA,EAAAD,CAAA,uCAAAgB,CAAA,SAAAA,CAAA,YAAA2B,SAAA,yEAAA3C,CAAA,GAAAwC,MAAA,GAAAI,MAAA,EAAA3C,CAAA;AAGjE,MAAM4C,qBAAqB,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAgDpD,MAAMC,eAAe,CAAuB;EAMjDC,WAAWA,CACDnE,IAA8B,EAC9BoE,KAA0B,EAC1BC,SAA+B,EACvC;IAAA,KAHQrE,IAA8B,GAA9BA,IAA8B;IAAA,KAC9BoE,KAA0B,GAA1BA,KAA0B;IAAA,KAC1BC,SAA+B,GAA/BA,SAA+B;IAAAlB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEvC,IAAI,CAACmB,GAAG,GAAGtE,IAAI;IACf,IAAI,CAACuE,cAAc,CAAC,CAAC;EACvB;EAEA,IAAI3D,IAAIA,CAAA,EAAgB;IACtB,OAAO,IAAI,CAACwD,KAAK;EACnB;EAEA,IAAII,UAAUA,CAAA,EAAsB;IAClC,OAAO,IAAI,CAACC,WAAW;EACzB;EAEQF,cAAcA,CAAA,EAAG;IACvB,MAAMG,qBAAqB,GAAG,IAAAC,cAAI,EAAC,IAAI,CAACL,GAAG,EAAEL,qBAAqB,CAAC;IACnE,IAAI,CAACQ,WAAW,GAAGG,2BAAiB,CAACC,gBAAgB,CAACH,qBAAqB,CAAC;EAC9E;EAEAI,SAASA,CAACC,WAAmB,EAAEC,aAAsB,EAAO;IAC1D,MAAMC,QAAQ,GAAG,IAAI,CAACT,UAAU,CAACU,aAAa,CAACH,WAAW,EAAEC,aAAa,CAAC;IAC1E,OAAOC,QAAQ,EAAEE,MAAM;EACzB;EAEAC,YAAYA,CAACL,WAAmB,EAAEI,MAA2B,EAAEE,OAA4B,EAAO;IAChG,MAAMJ,QAAQ,GAAG,IAAI,CAACH,SAAS,CAACC,WAAW,EAAEM,OAAO,CAACL,aAAa,CAAC;IACnE,IAAIC,QAAQ,EAAE;MACZ,IAAII,OAAO,CAACC,iBAAiB,EAAE;QAC7BH,MAAM,GAAApC,aAAA,CAAAA,aAAA,KAAQkC,QAAQ,GAAKE,MAAM,CAAE;MACrC,CAAC,MAAM,IAAI,CAACE,OAAO,CAACE,gBAAgB,EAAE;QACpC,MAAM,KAAIC,wCAA0B,EAACT,WAAW,CAAC;MACnD;IACF;IAEA,IAAI,CAACT,GAAG,CAACS,WAAW,CAAC,GAAGI,MAAM;IAC9B,IAAI,CAACZ,cAAc,CAAC,CAAC;EACvB;EAEAkB,oBAAoBA,CAACC,QAAgB,EAAEC,QAAgB,EAAW;IAChE,IAAI,IAAI,CAACrB,GAAG,CAACoB,QAAQ,CAAC,EAAE;MACtB,IAAI,CAACpB,GAAG,CAACqB,QAAQ,CAAC,GAAG,IAAI,CAACrB,GAAG,CAACoB,QAAQ,CAAC;MACvC,OAAO,IAAI,CAACpB,GAAG,CAACoB,QAAQ,CAAC;MACzB,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,UAAUA,CAAC5F,IAA8B,EAAE6F,kBAA+B,EAAExB,SAA+B,EAAE;IAClH,OAAO,IAAIH,eAAe,CAAClE,IAAI,EAAE6F,kBAAkB,EAAExB,SAAS,CAAC;EACjE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAayB,MAAMA,CAACC,KAA+B,EAAEC,OAA4B,EAAE3B,SAA8B,EAAE;IACjH,MAAM4B,QAAQ,GAAG,MAAMC,gCAAgC,CAAC,CAAC;IACzD;IACA;IACA,MAAMC,mBAAmB,GAAG,IAAAC,qBAAM,EAACH,QAAQ,CAACI,oBAAe,CAACC,EAAE,CAAC,EAAEP,KAAK,CAACM,oBAAe,CAACC,EAAE,CAAC,CAAC;IAC3F,MAAMC,MAAM,GAAG,IAAAH,qBAAM,EAACH,QAAQ,EAAE;MAAE,CAACI,oBAAe,CAACC,EAAE,GAAGH;IAAoB,CAAC,CAAC;IAC9E,OAAO,IAAIjC,eAAe,CAACqC,MAAM,EAAErC,eAAe,CAACsC,yBAAyB,CAACR,OAAO,CAAC,EAAE3B,SAAS,CAAC;EACnG;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaoC,MAAMA,CACjBT,OAA4B,EAC5B3B,SAA8B,EAC9BqC,oBAA8C,GAAG,CAAC,CAAQ,EAChC;IAC1B,IAAI;MACF,IAAIC,eAAe,GAAG,MAAM,IAAI,CAACC,WAAW,CAACZ,OAAO,EAAE3B,SAAS,CAAC;MAChE,IAAIsC,eAAe,EAAE;QACnB,OAAOA,eAAe;MACxB;MACAA,eAAe,GAAG,MAAM,IAAI,CAACb,MAAM,CAACY,oBAAoB,EAAEV,OAAO,EAAE3B,SAAS,CAAC;MAC7E,OAAOsC,eAAe;IACxB,CAAC,CAAC,OAAOE,GAAQ,EAAE;MACjB,IAAIA,GAAG,YAAYC,4BAAiB,EAAE;QACpC,MAAMH,eAAe,GAAG,IAAI,CAACb,MAAM,CAACY,oBAAoB,EAAEV,OAAO,EAAE3B,SAAS,CAAC;QAC7E,OAAOsC,eAAe;MACxB;MACA,MAAME,GAAG;IACX;EACF;EAEA,aAAaE,KAAKA,CAACf,OAA4B,EAAEgB,SAAkB,EAAiB;IAClF,MAAMnB,kBAAkB,GAAG3B,eAAe,CAACsC,yBAAyB,CAACR,OAAO,CAAC;IAC7E,IAAIgB,SAAS,IAAInB,kBAAkB,EAAE;MACnCoB,iBAAM,CAACC,IAAI,CAAE,iDAAgDrB,kBAAmB,EAAC,CAAC;MAClF,MAAMnF,EAAE,CAAD,CAAC,CAACyG,MAAM,CAACtB,kBAAkB,CAAC;IACrC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOW,yBAAyBA,CAACR,OAAoB,EAAe;IAClE,OAAOpF,IAAI,CAAD,CAAC,CAACwG,IAAI,CAACpB,OAAO,EAAEqB,4BAAe,CAAC;EAC5C;EAEA,aAAaC,qBAAqBA,CAACtB,OAAoB,EAAoB;IACzE,MAAMuB,OAAO,GAAG,MAAM7G,EAAE,CAAD,CAAC,CAAC8G,UAAU,CAACtD,eAAe,CAACsC,yBAAyB,CAACR,OAAO,CAAC,CAAC;IACvF,OAAOuB,OAAO;EAChB;;EAEA;AACF;AACA;AACA;EACE,aAAaA,OAAOA,CAACvB,OAAoB,EAAgC;IACvE,MAAMyB,UAAU,GAAG,MAAMvD,eAAe,CAACoD,qBAAqB,CAACtB,OAAO,CAAC;IACvE,IAAIyB,UAAU,EAAE;MACd,OAAO,IAAI;IACb;IACA,OAAOC,0BAAqB,CAACC,QAAQ,CAAC3B,OAAO,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,aAAaY,WAAWA,CACtBZ,OAAoB,EACpB3B,SAA+B,EACO;IACtC,MAAMoD,UAAU,GAAG,MAAMvD,eAAe,CAACoD,qBAAqB,CAACtB,OAAO,CAAC;IACvE,IAAIyB,UAAU,EAAE;MACd,MAAMG,SAAS,GAAG1D,eAAe,CAACsC,yBAAyB,CAACR,OAAO,CAAC;MACpE,MAAM6B,QAAQ,GAAG,MAAM3D,eAAe,CAAC4D,uBAAuB,CAACF,SAAS,EAAEvD,SAAS,CAAC;MACpF,OAAOwD,QAAQ;IACjB;IACA,OAAOE,SAAS;EAClB;EAEA,aAAaD,uBAAuBA,CAACjC,kBAA+B,EAAExB,SAAkB,EAA4B;IAClH,MAAM2D,aAAa,GAAG,MAAMtH,EAAE,CAAD,CAAC,CAACuH,QAAQ,CAACpC,kBAAkB,CAAC;IAC3D,IAAIqC,MAAM;IACV,IAAI;MACFA,MAAM,GAAG,IAAAC,oBAAK,EAACH,aAAa,CAACI,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,OAAOlH,CAAM,EAAE;MACf,MAAM,KAAI4F,4BAAiB,EAACjB,kBAAkB,CAAC;IACjD;IACA,OAAO3B,eAAe,CAAC0B,UAAU,CAACsC,MAAM,EAAErC,kBAAkB,EAAExB,SAAS,CAAC;EAC1E;EAEA,MAAMgE,KAAKA,CAAC;IAAEC,GAAG;IAAEC;EAAyE,CAAC,GAAG,CAAC,CAAC,EAAiB;IACjH,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;MAC7B,IAAIF,GAAG,EAAE,OAAOA,GAAG;MACnB,OAAO1H,IAAI,CAAD,CAAC,CAAC6H,OAAO,CAAC,IAAI,CAACrE,KAAK,CAAC;IACjC,CAAC;IACD,MAAMsE,aAAa,GAAGF,gBAAgB,CAAC,CAAC;IACxC,MAAMG,KAAK,GAAG,MAAM,IAAI,CAACC,OAAO,CAACF,aAAa,CAAC;IAC/C,MAAMG,aAAa,GAAG,KAAIC,wBAAa,EAAC,CAAC;IACzC,IAAIH,KAAK,EAAE;MACTE,aAAa,CAACE,YAAY,CAACJ,KAAK,CAAC;MACjC,MAAM,IAAI,CAACK,gBAAgB,CAACT,eAAe,CAAC;MAC5C,MAAMM,aAAa,CAACI,cAAc,CAAC,CAAC;IACtC;EACF;EAEA,MAAcD,gBAAgBA,CAACT,eAAwB,EAAE;IACvD,IAAI,CAAC,IAAI,CAAClE,SAAS,EAAE;MACnB4C,iBAAM,CAACiC,KAAK,CAAE,0DAAyD,CAAC;MACxE;IACF;IACA,IAAI;MACF,MAAMC,OAAO,GAAG,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAC1C,MAAM1I,EAAE,CAAD,CAAC,CAAC2I,SAAS,CAACF,OAAO,CAAC;MAC3B,MAAMG,MAAM,GAAG,IAAAC,wCAA4B,EAAC,CAAC;MAC7C,MAAMC,UAAU,GAAG5I,IAAI,CAAD,CAAC,CAACwG,IAAI,CAAC+B,OAAO,EAAEG,MAAM,CAAC;MAC7C,MAAM5I,EAAE,CAAD,CAAC,CAAC+I,QAAQ,CAAC,IAAI,CAACrF,KAAK,EAAEoF,UAAU,CAAC;MACzC,MAAME,YAAY,GAAG,IAAI,CAACC,yBAAyB,CAAC,CAAC;MACrD,MAAMjJ,EAAE,CAAD,CAAC,CAACkJ,UAAU,CAACF,YAAY,EAAG,GAAEJ,MAAO,IAAGf,eAAe,IAAI,EAAG,IAAG,CAAC;IAC3E,CAAC,CAAC,OAAO1B,GAAQ,EAAE;MACjB,IAAIA,GAAG,CAACgD,IAAI,KAAK,QAAQ,EAAE,OAAO,CAAC;MACnC;MACA5C,iBAAM,CAACiC,KAAK,CAAE,kCAAiC,EAAErC,GAAG,CAAC;IACvD;EACF;EACQiD,YAAYA,CAAA,EAAG;IACrB,IAAI,CAAC,IAAI,CAACzF,SAAS,EAAE,MAAM,IAAI0F,KAAK,CAAC,6CAA6C,CAAC;IACnF,OAAOnJ,IAAI,CAAD,CAAC,CAACwG,IAAI,CAAC,IAAI,CAAC/C,SAAS,EAAE,0BAA0B,CAAC;EAC9D;EACA+E,mBAAmBA,CAAA,EAAG;IACpB,OAAOxI,IAAI,CAAD,CAAC,CAACwG,IAAI,CAAC,IAAI,CAAC0C,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;EAChD;EACAH,yBAAyBA,CAAA,EAAG;IAC1B,OAAO/I,IAAI,CAAD,CAAC,CAACwG,IAAI,CAAC,IAAI,CAAC0C,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC;EACvD;EACA,MAAcE,wBAAwBA,CAAA,EAA0C;IAC9E,IAAIC,WAA+B;IACnC,IAAI;MACFA,WAAW,GAAG,MAAMvJ,EAAE,CAAD,CAAC,CAACuH,QAAQ,CAAC,IAAI,CAAC0B,yBAAyB,CAAC,CAAC,EAAE,OAAO,CAAC;IAC5E,CAAC,CAAC,OAAO9C,GAAQ,EAAE;MACjB,IAAIA,GAAG,CAACgD,IAAI,KAAK,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC;IACA,MAAMK,KAAK,GAAGD,WAAW,EAAEE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IAC5C,MAAMC,QAAQ,GAAG,CAAC,CAAC;IACnBF,KAAK,CAAChH,OAAO,CAAEmH,IAAI,IAAK;MACtB,MAAM,CAACf,MAAM,EAAE,GAAGgB,MAAM,CAAC,GAAGD,IAAI,CAACF,KAAK,CAAC,GAAG,CAAC;MAC3C,IAAI,CAACb,MAAM,EAAE;MACbc,QAAQ,CAACd,MAAM,CAAC,GAAGgB,MAAM,CAAClD,IAAI,CAAC,GAAG,CAAC;IACrC,CAAC,CAAC;IACF,OAAOgD,QAAQ;EACjB;EAEA,MAAMxB,OAAOA,CAAC2B,YAAiC,EAAwC;IACrF,MAAMC,OAAO,GAAI,GAAE,IAAAC,wBAAS,EAAC,IAAI,CAACzK,IAAI,EAAE+H,SAAS,EAAE,CAAC,CAAE,IAAG;IACzD,MAAM2C,IAAI,GAAGH,YAAY;IACzB,MAAMI,QAAQ,GAAGJ,YAAY,GAAGrG,eAAe,CAACsC,yBAAyB,CAAC+D,YAAY,CAAC,GAAG,IAAI,CAAC3J,IAAI;IACnG,MAAMgK,QAAQ,GAAG,KAAIC,wBAAa,EAAC;MAAEH,IAAI;MAAE9J,IAAI,EAAE+J,QAAQ;MAAEG,QAAQ,EAAEC,MAAM,CAACC,IAAI,CAACR,OAAO;IAAE,CAAC,CAAC;IAC5F,OAAO,CAACI,QAAQ,CAAC;EACnB;EAEAK,QAAQA,CAAA,EAA2B;IACjC,IAAIC,0BAA0B,GAAG,IAAI,CAACpG,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,EAAEqG,gBAAgB;IACtG,IAAID,0BAA0B,IAAI,CAACA,0BAA0B,CAACE,QAAQ,CAAC,QAAQ,CAAC,EAAE;MAChFF,0BAA0B,GAAI,GAAEA,0BAA2B,SAAQ;IACrE;IAEA,OAAO;MACLG,IAAI,EAAEC,6BAAgB;MACtBC,YAAY,EAAE,IAAI,CAACzG,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,EAAEyG,YAAY;MAC/EC,cAAc,EAAE,IAAI,CAAC1G,SAAS,CAAC,0CAA0C,EAAE,IAAI,CAAC,EAAE2G,aAAa;MAC/FC,kBAAkB,EAAE,IAAI,CAAC5G,SAAS,CAAC,0CAA0C,EAAE,IAAI,CAAC;MACpF6G,cAAc,EAAE,IAAI,CAAC7G,SAAS,CAAC,0CAA0C,EAAE,IAAI,CAAC,EAAE6G,cAAc;MAChGC,6BAA6B,EAAE,IAAI,CAACC,YAAY,EAAEC,4BAA4B;MAC9EC,sBAAsB,EAAE,IAAI,CAACF,YAAY,EAAEG,qBAAqB;MAChEd,0BAA0B;MAC1Be,iBAAiB,EAAE,IAAI,CAACnH,SAAS,CAAC,0CAA0C,EAAE,IAAI,CAAC,EAAEoH,gBAAgB;MACrG1H,UAAU,EAAE,IAAI,CAACA,UAAU,CAAC2H,cAAc,CAAC,CAAC;MAC5C;MACAvL,IAAI,EAAE,IAAI,CAACA,IAAI;MACfwL,QAAQ,EAAE,KAAK;MACf/D,KAAK,EAAEA,CAAC;QAAEkC;MAAa,CAAC,KAAK,IAAI,CAAClC,KAAK,CAAClG,IAAI,CAAC,IAAI,EAAE;QAAEmG,GAAG,EAAEiC;MAAa,CAAC,CAAC;MACzE3B,OAAO,EAAE,IAAI,CAACA,OAAO,CAACyD,IAAI,CAAC,IAAI,CAAC;MAChCC,kBAAkB,EAAEA,CAAA,KAAMvE;IAC5B,CAAC;EACH;AACF;AAACwE,OAAA,CAAArI,eAAA,GAAAA,eAAA;AAEM,SAASsI,gCAAgCA,CAC9CC,YAAgE,EAChD;EAChB;EACA,MAAMC,eAAe,GAAIpK,GAAG,IAAK;IAC/B;IACA;IACAT,MAAM,CAAC8K,OAAO,CAACrK,GAAG,CAAC,CAACY,OAAO,CAAEhC,CAAC,IAAK;MACjC,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAK6G,SAAS,EAAE,OAAOzF,GAAG,CAACpB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,OAAOoB,GAAG;EACZ,CAAC;EAED,MAAMsK,SAAS,GAAGF,eAAe,CAAC;IAChCnB,YAAY,EAAEkB,YAAY,CAAClB,YAAY;IACvCJ,gBAAgB,EAAEsB,YAAY,CAACvB;EACjC,CAAC,CAAC;EACF,MAAMQ,kBAAkB,GAAGgB,eAAe,CAAC;IACzCf,cAAc,EAAEc,YAAY,CAACd,cAAc;IAC3C;IACAkB,SAAS,EAAEJ,YAAY,CAACK,kBAAkB;IAC1CC,4BAA4B,EAAEN,YAAY,CAACM,4BAA4B;IACvEb,gBAAgB,EAAEO,YAAY,CAACP,gBAAgB;IAC/CT,aAAa,EAAEgB,YAAY,CAAChB;EAC9B,CAAC,CAAC;EACF,MAAMzL,IAAI,GAAG,CAAC,CAAC;EACf,IAAI4M,SAAS,IAAI,CAAC,IAAAI,iBAAO,EAACJ,SAAS,CAAC,EAAE;IACpC5M,IAAI,CAAC,6BAA6B,CAAC,GAAG4M,SAAS;EACjD;EACA,IAAIlB,kBAAkB,IAAI,CAAC,IAAAsB,iBAAO,EAACtB,kBAAkB,CAAC,EAAE;IACtD1L,IAAI,CAAC,0CAA0C,CAAC,GAAG0L,kBAAkB;EACvE;EACA;EACA,OAAO1L,IAAI;AACb;AAEO,eAAekG,gCAAgCA,CAAA,EAA8B;EAClF,IAAI+D,WAAmB;EACvB,IAAI;IACFA,WAAW,GAAG,MAAMvJ,EAAE,CAAD,CAAC,CAACuH,QAAQ,CAACrH,IAAI,CAAD,CAAC,CAACwG,IAAI,CAAC6F,SAAS,EAAE,0BAA0B,CAAC,CAAC;EACnF,CAAC,CAAC,OAAOpG,GAAQ,EAAE;IACjB,IAAIA,GAAG,CAACgD,IAAI,KAAK,QAAQ,EAAE,MAAMhD,GAAG;IACpC;IACAoD,WAAW,GAAG,MAAMvJ,EAAE,CAAD,CAAC,CAACuH,QAAQ,CAACrH,IAAI,CAAD,CAAC,CAACwG,IAAI,CAAC6F,SAAS,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;EACzF;EACA,OAAO,IAAA9E,oBAAK,EAAC8B,WAAW,CAAC7B,QAAQ,CAAC,CAAC,CAAC;AACtC;AAEO,SAAS8E,wBAAwBA,CAACvG,eAAiC,EAAU;EAClF,OAAO,IAAA8D,wBAAS,EAAC9D,eAAe,EAAEoB,SAAS,EAAE,CAAC,CAAC;AACjD"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/config",
3
- "version": "0.0.861",
3
+ "version": "0.0.863",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/config",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "config",
9
- "version": "0.0.861"
9
+ "version": "0.0.863"
10
10
  },
11
11
  "dependencies": {
12
12
  "comment-json": "3.0.3",
@@ -16,7 +16,7 @@
16
16
  "@teambit/harmony": "0.4.6",
17
17
  "@teambit/bit-error": "0.0.404",
18
18
  "@teambit/cli": "0.0.842",
19
- "@teambit/workspace": "1.0.110"
19
+ "@teambit/workspace": "1.0.112"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/fs-extra": "9.0.7",
@@ -1,4 +0,0 @@
1
- import { BitError } from '@teambit/bit-error';
2
- export declare class ConfigDirNotDefined extends BitError {
3
- constructor();
4
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ConfigDirNotDefined = void 0;
7
- function _bitError() {
8
- const data = require("@teambit/bit-error");
9
- _bitError = function () {
10
- return data;
11
- };
12
- return data;
13
- }
14
- class ConfigDirNotDefined extends _bitError().BitError {
15
- constructor() {
16
- super(`error: the config directory is not defined`);
17
- }
18
- }
19
- exports.ConfigDirNotDefined = ConfigDirNotDefined;
20
-
21
- //# sourceMappingURL=config-dir-not-defined.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_bitError","data","require","ConfigDirNotDefined","BitError","constructor","exports"],"sources":["config-dir-not-defined.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class ConfigDirNotDefined extends BitError {\n constructor() {\n super(`error: the config directory is not defined`);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,mBAAmB,SAASC,oBAAQ,CAAC;EAChDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAE,4CAA2C,CAAC;EACrD;AACF;AAACC,OAAA,CAAAH,mBAAA,GAAAA,mBAAA"}
@@ -1,7 +0,0 @@
1
- import { BitError } from '@teambit/bit-error';
2
-
3
- export class ConfigDirNotDefined extends BitError {
4
- constructor() {
5
- super(`error: the config directory is not defined`);
6
- }
7
- }