@teambit/workspace-config-files 1.0.667 → 1.0.668

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.
Files changed (33) hide show
  1. package/dist/config-writer-entry.d.ts +3 -3
  2. package/dist/config-writer-entry.js.map +1 -1
  3. package/dist/config-writer-list.d.ts +2 -2
  4. package/dist/config-writer-list.js.map +1 -1
  5. package/dist/dedup-paths.d.ts +2 -2
  6. package/dist/dedup-paths.js.map +1 -1
  7. package/dist/dedup-paths.spec.js.map +1 -1
  8. package/dist/outputs/format-list-output.d.ts +1 -1
  9. package/dist/outputs/format-list-output.js.map +1 -1
  10. package/dist/outputs/format-write-output.d.ts +1 -1
  11. package/dist/outputs/format-write-output.js.map +1 -1
  12. package/dist/outputs/verbose-format-write-output.d.ts +1 -1
  13. package/dist/outputs/verbose-format-write-output.js.map +1 -1
  14. package/dist/{preview-1753809186996.js → preview-1753833698619.js} +1 -1
  15. package/dist/workspace-config-env-type.d.ts +1 -1
  16. package/dist/workspace-config-env-type.js.map +1 -1
  17. package/dist/workspace-config-files.main.runtime.d.ts +5 -7
  18. package/dist/workspace-config-files.main.runtime.js.map +1 -1
  19. package/dist/workspace-config-files.service.d.ts +3 -3
  20. package/dist/workspace-config-files.service.js.map +1 -1
  21. package/dist/writers/extending-config-files.d.ts +3 -3
  22. package/dist/writers/extending-config-files.js.map +1 -1
  23. package/dist/writers/real-config-files.d.ts +2 -2
  24. package/dist/writers/real-config-files.js.map +1 -1
  25. package/dist/ws-config.cmd.d.ts +2 -2
  26. package/dist/ws-config.cmd.js.map +1 -1
  27. package/outputs/format-list-output.ts +2 -2
  28. package/outputs/format-write-output.ts +6 -2
  29. package/outputs/verbose-format-write-output.ts +6 -2
  30. package/package.json +7 -7
  31. package/workspace-config-files.service.tsx +4 -4
  32. package/writers/extending-config-files.ts +5 -4
  33. package/writers/real-config-files.ts +2 -2
@@ -1,6 +1,6 @@
1
- import { Environment, ExecutionContext } from '@teambit/envs';
2
- import { EnvMapValue } from './workspace-config-files.main.runtime';
3
- import { WrittenConfigFile } from './writers';
1
+ import type { Environment, ExecutionContext } from '@teambit/envs';
2
+ import type { EnvMapValue } from './workspace-config-files.main.runtime';
3
+ import type { WrittenConfigFile } from './writers';
4
4
  export type ConfigFile = {
5
5
  /**
6
6
  * Name of the config file.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["config-writer-entry.ts"],"sourcesContent":["import { Environment, ExecutionContext } from '@teambit/envs';\nimport { EnvMapValue } from './workspace-config-files.main.runtime';\nimport { WrittenConfigFile } from './writers';\n\nexport type ConfigFile = {\n /**\n * Name of the config file.\n * supports also using `{hash}` in the name, which will be replaced by the hash of the config file.\n */\n name: string;\n /**\n * Content of the config file.\n * I.E the content of the tsconfig.json file.\n */\n content: string;\n /**\n * Hash of the config file.\n */\n hash?: string;\n};\n\nexport type ExtendingConfigFileAdditionalProp = {\n /**\n * the config file that this config file extends.\n */\n extendingTarget: WrittenConfigFile;\n\n /**\n * When replacing the config file name with the actual path of the config file, use absolute paths.\n */\n useAbsPaths?: boolean;\n};\n\nexport type ExtendingConfigFile = ConfigFile & ExtendingConfigFileAdditionalProp;\n\nexport type PostProcessExtendingConfigFilesArgs = {\n workspaceDir: string;\n configsRootDir: string;\n extendingConfigFile: ExtendingConfigFile;\n /**\n * Paths that the file will be written to.\n */\n paths: string[];\n envMapValue: EnvMapValue;\n /**\n * This is a flag for backward compatibility\n * We used to return string from the post process, so old versions of bit only knows to handle string results\n * while in new version we support getting array of objects\n * we need to know if bit the user is using support the new format or not\n */\n supportSpecificPathChange?: boolean;\n};\n\nexport type GenerateExtendingConfigFilesArgs = {\n workspaceDir: string;\n configsRootDir: string;\n writtenConfigFiles: WrittenConfigFile[];\n envMapValue: EnvMapValue;\n};\n\nexport type PostProcessExtendingConfigFilesOneFile = {\n path: string;\n content: string;\n};\n\nexport type MergeConfigFilesFunc = (configFile: ConfigFile, configFile2: ConfigFile) => string;\nexport interface ConfigWriterEntry {\n /**\n * Id is used for few things:\n * 1. merge/post process different configs files (from different envs) together.\n * 2. filter the config writer by the cli when using --writers flag.\n */\n id: string;\n\n /**\n * Name of the config writer.\n * used for outputs and logging.\n */\n name: string;\n\n /**\n * Get's the component env and return the config file content\n * for example the eslint config to tsconfig.\n * This also enable to return a hash of the config file, which will be used to determine if\n * 2 config files are the same.\n * If the hash is not provided, the content will be used as the hash.\n * This enables the specific config type to ignore specific fields when calculating the\n * hash in order to ignore theses fields when determining if 2 config files are the same.\n * The calc function also get the target directory of the config file (calculated by this aspect) as sometime there\n * is a need to change the config file content based on the target directory.\n * for example, change the includes/excludes paths to be relative to the target directory.\n * The calc can return undefined if the config file is not relevant for the component. or not supported by the subscriber.\n * for example if the component uses babel to compile, then tsconfig is not relevant.\n * @param env\n */\n calcConfigFiles(\n executionContext: ExecutionContext,\n env: Environment,\n dir: string,\n workspaceDir?: string\n ): ConfigFile[] | undefined;\n\n /**\n * Provide a function that knows how to merge 2 config files together.\n * This is used when 2 different envs generate the same config file hash.\n * sometime we want to merge the 2 config files together.\n * @param configFile\n * @param configFile2\n */\n mergeConfigFiles?: MergeConfigFilesFunc;\n\n /**\n * This will be used to generate an extending file content.\n * For example, the tsconfig.json file will extend the real tsconfig.{hash}.json file (that were coming from the env).\n * That way we can avoid writing the same config file multiple times.\n * It also reduces the risk of the user manually change the config file and then the changes will be lost.\n * This function support returning a file with content with a dsl using `{}` to replace the config file name.\n * for example:\n * content = `{\n * \"extends\": {configFile.name},\n * }`\n */\n generateExtendingFile(args: GenerateExtendingConfigFilesArgs): ExtendingConfigFile | undefined;\n\n /**\n * This enables the writer to do some post processing after the extending config files were calculated and deduped.\n * this is important in case when we need to change a config file / extending config file after it was calculated\n * based on all the environments in the ws\n * or based on other config files that were written.\n * @param args\n */\n postProcessExtendingConfigFiles?(\n args: PostProcessExtendingConfigFilesArgs\n ): Promise<string | Array<PostProcessExtendingConfigFilesOneFile> | undefined>;\n\n /**\n * Find all the files that are relevant for the config type.\n * This is used to clean / delete these files\n * This should return an array of glob patterns (that will passed to the globby/minimatch library)\n * @param dir\n */\n patterns: string[];\n\n /**\n * A function to determine if a file was generated by bit.\n * This is useful to check if the config file was generated by bit to prevent delete user's file.\n * @param filePath\n * @returns\n */\n isBitGenerated?: (filePath: string) => boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["config-writer-entry.ts"],"sourcesContent":["import type { Environment, ExecutionContext } from '@teambit/envs';\nimport type { EnvMapValue } from './workspace-config-files.main.runtime';\nimport type { WrittenConfigFile } from './writers';\n\nexport type ConfigFile = {\n /**\n * Name of the config file.\n * supports also using `{hash}` in the name, which will be replaced by the hash of the config file.\n */\n name: string;\n /**\n * Content of the config file.\n * I.E the content of the tsconfig.json file.\n */\n content: string;\n /**\n * Hash of the config file.\n */\n hash?: string;\n};\n\nexport type ExtendingConfigFileAdditionalProp = {\n /**\n * the config file that this config file extends.\n */\n extendingTarget: WrittenConfigFile;\n\n /**\n * When replacing the config file name with the actual path of the config file, use absolute paths.\n */\n useAbsPaths?: boolean;\n};\n\nexport type ExtendingConfigFile = ConfigFile & ExtendingConfigFileAdditionalProp;\n\nexport type PostProcessExtendingConfigFilesArgs = {\n workspaceDir: string;\n configsRootDir: string;\n extendingConfigFile: ExtendingConfigFile;\n /**\n * Paths that the file will be written to.\n */\n paths: string[];\n envMapValue: EnvMapValue;\n /**\n * This is a flag for backward compatibility\n * We used to return string from the post process, so old versions of bit only knows to handle string results\n * while in new version we support getting array of objects\n * we need to know if bit the user is using support the new format or not\n */\n supportSpecificPathChange?: boolean;\n};\n\nexport type GenerateExtendingConfigFilesArgs = {\n workspaceDir: string;\n configsRootDir: string;\n writtenConfigFiles: WrittenConfigFile[];\n envMapValue: EnvMapValue;\n};\n\nexport type PostProcessExtendingConfigFilesOneFile = {\n path: string;\n content: string;\n};\n\nexport type MergeConfigFilesFunc = (configFile: ConfigFile, configFile2: ConfigFile) => string;\nexport interface ConfigWriterEntry {\n /**\n * Id is used for few things:\n * 1. merge/post process different configs files (from different envs) together.\n * 2. filter the config writer by the cli when using --writers flag.\n */\n id: string;\n\n /**\n * Name of the config writer.\n * used for outputs and logging.\n */\n name: string;\n\n /**\n * Get's the component env and return the config file content\n * for example the eslint config to tsconfig.\n * This also enable to return a hash of the config file, which will be used to determine if\n * 2 config files are the same.\n * If the hash is not provided, the content will be used as the hash.\n * This enables the specific config type to ignore specific fields when calculating the\n * hash in order to ignore theses fields when determining if 2 config files are the same.\n * The calc function also get the target directory of the config file (calculated by this aspect) as sometime there\n * is a need to change the config file content based on the target directory.\n * for example, change the includes/excludes paths to be relative to the target directory.\n * The calc can return undefined if the config file is not relevant for the component. or not supported by the subscriber.\n * for example if the component uses babel to compile, then tsconfig is not relevant.\n * @param env\n */\n calcConfigFiles(\n executionContext: ExecutionContext,\n env: Environment,\n dir: string,\n workspaceDir?: string\n ): ConfigFile[] | undefined;\n\n /**\n * Provide a function that knows how to merge 2 config files together.\n * This is used when 2 different envs generate the same config file hash.\n * sometime we want to merge the 2 config files together.\n * @param configFile\n * @param configFile2\n */\n mergeConfigFiles?: MergeConfigFilesFunc;\n\n /**\n * This will be used to generate an extending file content.\n * For example, the tsconfig.json file will extend the real tsconfig.{hash}.json file (that were coming from the env).\n * That way we can avoid writing the same config file multiple times.\n * It also reduces the risk of the user manually change the config file and then the changes will be lost.\n * This function support returning a file with content with a dsl using `{}` to replace the config file name.\n * for example:\n * content = `{\n * \"extends\": {configFile.name},\n * }`\n */\n generateExtendingFile(args: GenerateExtendingConfigFilesArgs): ExtendingConfigFile | undefined;\n\n /**\n * This enables the writer to do some post processing after the extending config files were calculated and deduped.\n * this is important in case when we need to change a config file / extending config file after it was calculated\n * based on all the environments in the ws\n * or based on other config files that were written.\n * @param args\n */\n postProcessExtendingConfigFiles?(\n args: PostProcessExtendingConfigFilesArgs\n ): Promise<string | Array<PostProcessExtendingConfigFilesOneFile> | undefined>;\n\n /**\n * Find all the files that are relevant for the config type.\n * This is used to clean / delete these files\n * This should return an array of glob patterns (that will passed to the globby/minimatch library)\n * @param dir\n */\n patterns: string[];\n\n /**\n * A function to determine if a file was generated by bit.\n * This is useful to check if the config file was generated by bit to prevent delete user's file.\n * @param filePath\n * @returns\n */\n isBitGenerated?: (filePath: string) => boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { EnvContext, EnvHandler } from '@teambit/envs';
2
- import { ConfigWriterEntry } from './config-writer-entry';
1
+ import type { EnvContext, EnvHandler } from '@teambit/envs';
2
+ import type { ConfigWriterEntry } from './config-writer-entry';
3
3
  export type ConfigWriterHandler = {
4
4
  handler: EnvHandler<ConfigWriterEntry>;
5
5
  name: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","ConfigWriterList","constructor","_writers","writers","initiateWriters","context","map","task","handler","add","concat","remove","writerNames","filter","writer","includes","name","replace","forEach","matchIndex","findIndex","origWriter","splice","writerList","compute","writerEntries","from","writersHandlers","exports"],"sources":["config-writer-list.ts"],"sourcesContent":["import { EnvContext, EnvHandler } from '@teambit/envs';\nimport { findIndex } from 'lodash';\nimport { ConfigWriterEntry } from './config-writer-entry';\n\nexport type ConfigWriterHandler = {\n handler: EnvHandler<ConfigWriterEntry>;\n name: string;\n};\n\n/**\n * create and maintain config writer list for component dev environments.\n */\nexport class ConfigWriterList {\n constructor(private _writers: ConfigWriterHandler[]) {}\n\n /**\n * list all congig writer handlers in the list.\n */\n get writers() {\n return this._writers;\n }\n\n private initiateWriters(writers: ConfigWriterHandler[], context: EnvContext): ConfigWriterEntry[] {\n return writers.map((task) => {\n return task.handler(context);\n });\n }\n\n /**\n * add writers to the list.\n */\n add(writers: ConfigWriterHandler[]) {\n this._writers = this._writers.concat(writers);\n return this;\n }\n\n /**\n * remove writers from the list.\n */\n remove(writerNames: string[]) {\n this._writers = this._writers.filter((writer) => {\n return !writerNames.includes(writer.name);\n });\n return this;\n }\n\n /**\n * replace writers in the list.\n */\n replace(writers: ConfigWriterHandler[]) {\n writers.forEach((writer) => {\n // Find Writer index using _.findIndex\n const matchIndex = findIndex(this._writers, (origWriter) => {\n return origWriter.name === writer.name;\n });\n if (matchIndex !== -1) {\n // Replace Writer at index using native splice\n this._writers.splice(matchIndex, 1, writer);\n }\n });\n return this;\n }\n\n /**\n * return a new list with the writers from the args added.\n * @param pipeline\n * @returns\n */\n concat(writerList: ConfigWriterList) {\n return new ConfigWriterList(this._writers.concat(writerList.writers));\n }\n\n /**\n * compute the list.\n */\n compute(context: EnvContext): ConfigWriterEntry[] {\n const writerEntries = this.initiateWriters(this._writers, context);\n return writerEntries;\n }\n\n static from(writersHandlers: ConfigWriterHandler[]): ConfigWriterList {\n return new ConfigWriterList(writersHandlers);\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA;AACA;AACA;AACO,MAAME,gBAAgB,CAAC;EAC5BC,WAAWA,CAASC,QAA+B,EAAE;IAAA,KAAjCA,QAA+B,GAA/BA,QAA+B;EAAG;;EAEtD;AACF;AACA;EACE,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,QAAQ;EACtB;EAEQE,eAAeA,CAACD,OAA8B,EAAEE,OAAmB,EAAuB;IAChG,OAAOF,OAAO,CAACG,GAAG,CAAEC,IAAI,IAAK;MAC3B,OAAOA,IAAI,CAACC,OAAO,CAACH,OAAO,CAAC;IAC9B,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEI,GAAGA,CAACN,OAA8B,EAAE;IAClC,IAAI,CAACD,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACQ,MAAM,CAACP,OAAO,CAAC;IAC7C,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEQ,MAAMA,CAACC,WAAqB,EAAE;IAC5B,IAAI,CAACV,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACW,MAAM,CAAEC,MAAM,IAAK;MAC/C,OAAO,CAACF,WAAW,CAACG,QAAQ,CAACD,MAAM,CAACE,IAAI,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEC,OAAOA,CAACd,OAA8B,EAAE;IACtCA,OAAO,CAACe,OAAO,CAAEJ,MAAM,IAAK;MAC1B;MACA,MAAMK,UAAU,GAAG,IAAAC,mBAAS,EAAC,IAAI,CAAClB,QAAQ,EAAGmB,UAAU,IAAK;QAC1D,OAAOA,UAAU,CAACL,IAAI,KAAKF,MAAM,CAACE,IAAI;MACxC,CAAC,CAAC;MACF,IAAIG,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB;QACA,IAAI,CAACjB,QAAQ,CAACoB,MAAM,CAACH,UAAU,EAAE,CAAC,EAAEL,MAAM,CAAC;MAC7C;IACF,CAAC,CAAC;IACF,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACEJ,MAAMA,CAACa,UAA4B,EAAE;IACnC,OAAO,IAAIvB,gBAAgB,CAAC,IAAI,CAACE,QAAQ,CAACQ,MAAM,CAACa,UAAU,CAACpB,OAAO,CAAC,CAAC;EACvE;;EAEA;AACF;AACA;EACEqB,OAAOA,CAACnB,OAAmB,EAAuB;IAChD,MAAMoB,aAAa,GAAG,IAAI,CAACrB,eAAe,CAAC,IAAI,CAACF,QAAQ,EAAEG,OAAO,CAAC;IAClE,OAAOoB,aAAa;EACtB;EAEA,OAAOC,IAAIA,CAACC,eAAsC,EAAoB;IACpE,OAAO,IAAI3B,gBAAgB,CAAC2B,eAAe,CAAC;EAC9C;AACF;AAACC,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","data","require","ConfigWriterList","constructor","_writers","writers","initiateWriters","context","map","task","handler","add","concat","remove","writerNames","filter","writer","includes","name","replace","forEach","matchIndex","findIndex","origWriter","splice","writerList","compute","writerEntries","from","writersHandlers","exports"],"sources":["config-writer-list.ts"],"sourcesContent":["import type { EnvContext, EnvHandler } from '@teambit/envs';\nimport { findIndex } from 'lodash';\nimport type { ConfigWriterEntry } from './config-writer-entry';\n\nexport type ConfigWriterHandler = {\n handler: EnvHandler<ConfigWriterEntry>;\n name: string;\n};\n\n/**\n * create and maintain config writer list for component dev environments.\n */\nexport class ConfigWriterList {\n constructor(private _writers: ConfigWriterHandler[]) {}\n\n /**\n * list all congig writer handlers in the list.\n */\n get writers() {\n return this._writers;\n }\n\n private initiateWriters(writers: ConfigWriterHandler[], context: EnvContext): ConfigWriterEntry[] {\n return writers.map((task) => {\n return task.handler(context);\n });\n }\n\n /**\n * add writers to the list.\n */\n add(writers: ConfigWriterHandler[]) {\n this._writers = this._writers.concat(writers);\n return this;\n }\n\n /**\n * remove writers from the list.\n */\n remove(writerNames: string[]) {\n this._writers = this._writers.filter((writer) => {\n return !writerNames.includes(writer.name);\n });\n return this;\n }\n\n /**\n * replace writers in the list.\n */\n replace(writers: ConfigWriterHandler[]) {\n writers.forEach((writer) => {\n // Find Writer index using _.findIndex\n const matchIndex = findIndex(this._writers, (origWriter) => {\n return origWriter.name === writer.name;\n });\n if (matchIndex !== -1) {\n // Replace Writer at index using native splice\n this._writers.splice(matchIndex, 1, writer);\n }\n });\n return this;\n }\n\n /**\n * return a new list with the writers from the args added.\n * @param pipeline\n * @returns\n */\n concat(writerList: ConfigWriterList) {\n return new ConfigWriterList(this._writers.concat(writerList.writers));\n }\n\n /**\n * compute the list.\n */\n compute(context: EnvContext): ConfigWriterEntry[] {\n const writerEntries = this.initiateWriters(this._writers, context);\n return writerEntries;\n }\n\n static from(writersHandlers: ConfigWriterHandler[]): ConfigWriterList {\n return new ConfigWriterList(writersHandlers);\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA;AACA;AACA;AACO,MAAME,gBAAgB,CAAC;EAC5BC,WAAWA,CAASC,QAA+B,EAAE;IAAA,KAAjCA,QAA+B,GAA/BA,QAA+B;EAAG;;EAEtD;AACF;AACA;EACE,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,QAAQ;EACtB;EAEQE,eAAeA,CAACD,OAA8B,EAAEE,OAAmB,EAAuB;IAChG,OAAOF,OAAO,CAACG,GAAG,CAAEC,IAAI,IAAK;MAC3B,OAAOA,IAAI,CAACC,OAAO,CAACH,OAAO,CAAC;IAC9B,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEI,GAAGA,CAACN,OAA8B,EAAE;IAClC,IAAI,CAACD,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACQ,MAAM,CAACP,OAAO,CAAC;IAC7C,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEQ,MAAMA,CAACC,WAAqB,EAAE;IAC5B,IAAI,CAACV,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACW,MAAM,CAAEC,MAAM,IAAK;MAC/C,OAAO,CAACF,WAAW,CAACG,QAAQ,CAACD,MAAM,CAACE,IAAI,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACEC,OAAOA,CAACd,OAA8B,EAAE;IACtCA,OAAO,CAACe,OAAO,CAAEJ,MAAM,IAAK;MAC1B;MACA,MAAMK,UAAU,GAAG,IAAAC,mBAAS,EAAC,IAAI,CAAClB,QAAQ,EAAGmB,UAAU,IAAK;QAC1D,OAAOA,UAAU,CAACL,IAAI,KAAKF,MAAM,CAACE,IAAI;MACxC,CAAC,CAAC;MACF,IAAIG,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB;QACA,IAAI,CAACjB,QAAQ,CAACoB,MAAM,CAACH,UAAU,EAAE,CAAC,EAAEL,MAAM,CAAC;MAC7C;IACF,CAAC,CAAC;IACF,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;EACEJ,MAAMA,CAACa,UAA4B,EAAE;IACnC,OAAO,IAAIvB,gBAAgB,CAAC,IAAI,CAACE,QAAQ,CAACQ,MAAM,CAACa,UAAU,CAACpB,OAAO,CAAC,CAAC;EACvE;;EAEA;AACF;AACA;EACEqB,OAAOA,CAACnB,OAAmB,EAAuB;IAChD,MAAMoB,aAAa,GAAG,IAAI,CAACrB,eAAe,CAAC,IAAI,CAACF,QAAQ,EAAEG,OAAO,CAAC;IAClE,OAAOoB,aAAa;EACtB;EAEA,OAAOC,IAAIA,CAACC,eAAsC,EAAoB;IACpE,OAAO,IAAI3B,gBAAgB,CAAC2B,eAAe,CAAC;EAC9C;AACF;AAACC,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { CompPathExtendingHashMap, EnvCompsDirsMap } from './workspace-config-files.main.runtime';
2
- import { ExtendingConfigFilesMap } from './writers';
1
+ import type { CompPathExtendingHashMap, EnvCompsDirsMap } from './workspace-config-files.main.runtime';
2
+ import type { ExtendingConfigFilesMap } from './writers';
3
3
  export type DedupedPaths = Array<{
4
4
  fileHash: string;
5
5
  paths: string[];
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_path","getAllPossibleDirsFromPaths","paths","componentsRootDir","dirs","map","p","getAllParentsDirOfPath","flat","uniqueDirs","uniq","push","filteredDirs","filter","d","startsWith","all","current","dirname","buildCompPathExtendingHashMap","extendingConfigFilesMap","envCompsDirsMap","Object","entries","reduce","acc","hash","envIds","forEach","envId","envCompDirs","compPath","dedupePaths","rootDir","compPathExtendingHashMap","allPaths","keys","allPossibleDirs","allPathsPerFileHash","calculateBestFileForDir","dir","allPathsShareSameDir","countPerFileHash","fileHash","max","Math","values","fileHashWithMax","length","Error","dirPath","dedupedPathsPerFileHash","fileHashPerDedupedPaths","invertBy","dedupedPaths"],"sources":["dedup-paths.ts"],"sourcesContent":["import { invertBy, uniq } from 'lodash';\nimport { dirname } from 'path';\nimport { PathLinuxRelative } from '@teambit/toolbox.path.path';\nimport { CompPathExtendingHashMap, EnvCompsDirsMap } from './workspace-config-files.main.runtime';\nimport { ExtendingConfigFilesMap } from './writers';\n\nexport type DedupedPaths = Array<{\n fileHash: string;\n paths: string[];\n}>;\n\nfunction getAllPossibleDirsFromPaths(\n paths: PathLinuxRelative[],\n componentsRootDir?: PathLinuxRelative\n): PathLinuxRelative[] {\n const dirs = paths.map((p) => getAllParentsDirOfPath(p)).flat();\n const uniqueDirs = uniq(dirs);\n if (!componentsRootDir) {\n uniqueDirs.push('.'); // add the root dir\n return uniqueDirs;\n }\n const filteredDirs = uniqueDirs.filter((d) => d.startsWith(componentsRootDir));\n return uniq(filteredDirs);\n}\n\nfunction getAllParentsDirOfPath(p: PathLinuxRelative): PathLinuxRelative[] {\n const all: string[] = [];\n let current = p;\n while (current !== '.') {\n all.push(current);\n current = dirname(current);\n }\n return all;\n}\n\nexport function buildCompPathExtendingHashMap(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n envCompsDirsMap: EnvCompsDirsMap\n): CompPathExtendingHashMap {\n const map = Object.entries(extendingConfigFilesMap).reduce((acc, [hash, { envIds }]) => {\n envIds.forEach((envId) => {\n const envCompDirs = envCompsDirsMap[envId];\n envCompDirs.paths.forEach((compPath) => {\n acc[compPath] = hash;\n });\n });\n return acc;\n }, {});\n return map;\n}\n\n/**\n * easier to understand by an example:\n * input:\n * [\n * { fileHash: hash1, paths: [ui/button, ui/form] },\n * { fileHash: hash2, paths: [p/a1, p/a2] },\n * { fileHash: hash3, paths: [p/n1] },\n * ]\n *\n * output:\n * [\n * { fileHash: hash1, paths: [ui] },\n * { fileHash: hash2, paths: [p] },\n * { fileHash: hash3, paths: [p/n1] },\n * ]\n *\n * the goal is to minimize the amount of files to write per env if possible.\n * when multiple components of the same env share a root-dir, then, it's enough to write a file in that shared dir.\n * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of\n * components, this env will be optimized. other components, will have the files written inside their dirs.\n */\nexport function dedupePaths(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n envCompsDirsMap: EnvCompsDirsMap,\n componentsRootDir: string | undefined\n): DedupedPaths {\n const rootDir = '.';\n\n const compPathExtendingHashMap = buildCompPathExtendingHashMap(extendingConfigFilesMap, envCompsDirsMap);\n const allPaths = Object.keys(compPathExtendingHashMap);\n const allPossibleDirs = getAllPossibleDirsFromPaths(allPaths, componentsRootDir);\n const allPathsPerFileHash: { [path: string]: string | null } = {}; // null when parent-dir has same amount of comps per env.\n\n const calculateBestFileForDir = (dir: string) => {\n if (compPathExtendingHashMap[dir]) {\n // it's the component dir, so it's the file that should be written.\n allPathsPerFileHash[dir] = compPathExtendingHashMap[dir];\n return;\n }\n const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter((p) => p.startsWith(`${dir}/`));\n const countPerFileHash: { [fileHash: string]: number } = {};\n allPathsShareSameDir.forEach((p) => {\n const fileHash = compPathExtendingHashMap[p];\n if (countPerFileHash[fileHash]) countPerFileHash[fileHash] += 1;\n else countPerFileHash[fileHash] = 1;\n });\n const max = Math.max(...Object.values(countPerFileHash));\n const fileHashWithMax = Object.keys(countPerFileHash).filter((fileHash) => countPerFileHash[fileHash] === max);\n if (!fileHashWithMax.length) throw new Error(`must be at least one fileHash related to path \"${dir}\"`);\n if (fileHashWithMax.length > 1) allPathsPerFileHash[dir] = null;\n else allPathsPerFileHash[dir] = fileHashWithMax[0];\n };\n\n allPossibleDirs.forEach((dirPath) => {\n calculateBestFileForDir(dirPath);\n });\n\n // this is the actual deduping. if found a shorter path with the same env, then no need for this path.\n // in other words, return only the paths that their parent is null or has a different env.\n const dedupedPathsPerFileHash = Object.keys(allPathsPerFileHash).reduce((acc, current) => {\n if (allPathsPerFileHash[current] && allPathsPerFileHash[dirname(current)] !== allPathsPerFileHash[current]) {\n acc[current] = allPathsPerFileHash[current];\n }\n\n return acc;\n }, {});\n // rootDir parent is always rootDir, so leave it as is.\n if (allPathsPerFileHash[rootDir]) dedupedPathsPerFileHash[rootDir] = allPathsPerFileHash[rootDir];\n\n const fileHashPerDedupedPaths = invertBy(dedupedPathsPerFileHash);\n\n const dedupedPaths = Object.keys(fileHashPerDedupedPaths).map((fileHash) => ({\n fileHash,\n paths: fileHashPerDedupedPaths[fileHash],\n }));\n return dedupedPaths;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","data","require","_path","getAllPossibleDirsFromPaths","paths","componentsRootDir","dirs","map","p","getAllParentsDirOfPath","flat","uniqueDirs","uniq","push","filteredDirs","filter","d","startsWith","all","current","dirname","buildCompPathExtendingHashMap","extendingConfigFilesMap","envCompsDirsMap","Object","entries","reduce","acc","hash","envIds","forEach","envId","envCompDirs","compPath","dedupePaths","rootDir","compPathExtendingHashMap","allPaths","keys","allPossibleDirs","allPathsPerFileHash","calculateBestFileForDir","dir","allPathsShareSameDir","countPerFileHash","fileHash","max","Math","values","fileHashWithMax","length","Error","dirPath","dedupedPathsPerFileHash","fileHashPerDedupedPaths","invertBy","dedupedPaths"],"sources":["dedup-paths.ts"],"sourcesContent":["import { invertBy, uniq } from 'lodash';\nimport { dirname } from 'path';\nimport type { PathLinuxRelative } from '@teambit/toolbox.path.path';\nimport type { CompPathExtendingHashMap, EnvCompsDirsMap } from './workspace-config-files.main.runtime';\nimport type { ExtendingConfigFilesMap } from './writers';\n\nexport type DedupedPaths = Array<{\n fileHash: string;\n paths: string[];\n}>;\n\nfunction getAllPossibleDirsFromPaths(\n paths: PathLinuxRelative[],\n componentsRootDir?: PathLinuxRelative\n): PathLinuxRelative[] {\n const dirs = paths.map((p) => getAllParentsDirOfPath(p)).flat();\n const uniqueDirs = uniq(dirs);\n if (!componentsRootDir) {\n uniqueDirs.push('.'); // add the root dir\n return uniqueDirs;\n }\n const filteredDirs = uniqueDirs.filter((d) => d.startsWith(componentsRootDir));\n return uniq(filteredDirs);\n}\n\nfunction getAllParentsDirOfPath(p: PathLinuxRelative): PathLinuxRelative[] {\n const all: string[] = [];\n let current = p;\n while (current !== '.') {\n all.push(current);\n current = dirname(current);\n }\n return all;\n}\n\nexport function buildCompPathExtendingHashMap(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n envCompsDirsMap: EnvCompsDirsMap\n): CompPathExtendingHashMap {\n const map = Object.entries(extendingConfigFilesMap).reduce((acc, [hash, { envIds }]) => {\n envIds.forEach((envId) => {\n const envCompDirs = envCompsDirsMap[envId];\n envCompDirs.paths.forEach((compPath) => {\n acc[compPath] = hash;\n });\n });\n return acc;\n }, {});\n return map;\n}\n\n/**\n * easier to understand by an example:\n * input:\n * [\n * { fileHash: hash1, paths: [ui/button, ui/form] },\n * { fileHash: hash2, paths: [p/a1, p/a2] },\n * { fileHash: hash3, paths: [p/n1] },\n * ]\n *\n * output:\n * [\n * { fileHash: hash1, paths: [ui] },\n * { fileHash: hash2, paths: [p] },\n * { fileHash: hash3, paths: [p/n1] },\n * ]\n *\n * the goal is to minimize the amount of files to write per env if possible.\n * when multiple components of the same env share a root-dir, then, it's enough to write a file in that shared dir.\n * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of\n * components, this env will be optimized. other components, will have the files written inside their dirs.\n */\nexport function dedupePaths(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n envCompsDirsMap: EnvCompsDirsMap,\n componentsRootDir: string | undefined\n): DedupedPaths {\n const rootDir = '.';\n\n const compPathExtendingHashMap = buildCompPathExtendingHashMap(extendingConfigFilesMap, envCompsDirsMap);\n const allPaths = Object.keys(compPathExtendingHashMap);\n const allPossibleDirs = getAllPossibleDirsFromPaths(allPaths, componentsRootDir);\n const allPathsPerFileHash: { [path: string]: string | null } = {}; // null when parent-dir has same amount of comps per env.\n\n const calculateBestFileForDir = (dir: string) => {\n if (compPathExtendingHashMap[dir]) {\n // it's the component dir, so it's the file that should be written.\n allPathsPerFileHash[dir] = compPathExtendingHashMap[dir];\n return;\n }\n const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter((p) => p.startsWith(`${dir}/`));\n const countPerFileHash: { [fileHash: string]: number } = {};\n allPathsShareSameDir.forEach((p) => {\n const fileHash = compPathExtendingHashMap[p];\n if (countPerFileHash[fileHash]) countPerFileHash[fileHash] += 1;\n else countPerFileHash[fileHash] = 1;\n });\n const max = Math.max(...Object.values(countPerFileHash));\n const fileHashWithMax = Object.keys(countPerFileHash).filter((fileHash) => countPerFileHash[fileHash] === max);\n if (!fileHashWithMax.length) throw new Error(`must be at least one fileHash related to path \"${dir}\"`);\n if (fileHashWithMax.length > 1) allPathsPerFileHash[dir] = null;\n else allPathsPerFileHash[dir] = fileHashWithMax[0];\n };\n\n allPossibleDirs.forEach((dirPath) => {\n calculateBestFileForDir(dirPath);\n });\n\n // this is the actual deduping. if found a shorter path with the same env, then no need for this path.\n // in other words, return only the paths that their parent is null or has a different env.\n const dedupedPathsPerFileHash = Object.keys(allPathsPerFileHash).reduce((acc, current) => {\n if (allPathsPerFileHash[current] && allPathsPerFileHash[dirname(current)] !== allPathsPerFileHash[current]) {\n acc[current] = allPathsPerFileHash[current];\n }\n\n return acc;\n }, {});\n // rootDir parent is always rootDir, so leave it as is.\n if (allPathsPerFileHash[rootDir]) dedupedPathsPerFileHash[rootDir] = allPathsPerFileHash[rootDir];\n\n const fileHashPerDedupedPaths = invertBy(dedupedPathsPerFileHash);\n\n const dedupedPaths = Object.keys(fileHashPerDedupedPaths).map((fileHash) => ({\n fileHash,\n paths: fileHashPerDedupedPaths[fileHash],\n }));\n return dedupedPaths;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_chai","data","require","_dedupPaths","envCompsDirsMap","id","paths","tsExtendingConfigFilesMap","extendingConfigFile","useAbsPaths","content","name","extendingTarget","hash","filePath","envIds","tsExpectedDedupedPaths","fileHash","eslintExtendingConfigFilesMap","ff6ea265e6f21ce25f7985570beef37dd957d0dc","f1743b227e588db0c59d4a43171653e6c4262816","eslintExpectedDedupedPaths","prettierExtendingConfigFilesMap","prettierExpectedDedupedPaths","describe","timeout","result","before","dedupePaths","it","expect","to","have","lengthOf","length","deep","equal"],"sources":["dedup-paths.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport { DedupedPaths, dedupePaths } from './dedup-paths';\nimport { ExtendingConfigFilesMap } from './writers';\n\nconst envCompsDirsMap = {\n 'teambit.harmony/node': {\n id: 'teambit.harmony/node',\n paths: [\n 'react/apps/react-app-types',\n 'compilation/babel-compiler',\n 'compilation/compiler-task',\n 'mdx/compilers/mdx-compiler',\n 'mdx/compilers/mdx-multi-compiler',\n 'compilation/compilers/multi-compiler',\n 'defender/eslint-linter',\n 'mdx/generator/mdx-starters',\n 'mdx/generator/mdx-templates',\n 'react/generator/react-starters',\n 'react/generator/react-templates',\n 'defender/jest-tester',\n 'react/jest/react-jest',\n 'defender/linter-task',\n 'defender/mocha-tester',\n 'compilation/modules/babel-file-transpiler',\n 'defender/prettier-formatter',\n 'preview/react-preview',\n 'defender/tester-task',\n 'typescript/typescript-compiler',\n 'webpack/webpack-bundler',\n 'webpack/webpack-dev-server',\n 'react/webpack/react-webpack',\n ],\n },\n 'teambit.react/react-env@0.0.44': {\n id: 'teambit.react/react-env@0.0.44',\n paths: ['test-new-envs-app/apps/test-app', 'test-new-env/ui/button2'],\n },\n 'teambit.react/react': {\n id: 'teambit.react/react',\n paths: ['docs/docs-template', 'react/mounter'],\n },\n 'teambit.envs/env': {\n id: 'teambit.envs/env',\n paths: [\n 'react/examples/my-react-env',\n 'mdx/mdx-env',\n 'node/node',\n 'node/node-env-extension',\n 'react/react-env',\n 'react/react-env-extension',\n ],\n },\n 'teambit.mdx/mdx-env@0.0.6': {\n id: 'teambit.mdx/mdx-env@0.0.6',\n paths: ['test-new-env/mdx/content-comp'],\n },\n 'teambit.node/node@0.0.16': {\n id: 'teambit.node/node@0.0.16',\n paths: ['test-new-env/node/node-comp1', 'test-new-env/node/node-comp2'],\n },\n 'teambit.react/examples/my-react-env@0.0.39': {\n id: 'teambit.react/examples/my-react-env@0.0.39',\n paths: ['test-new-env/ui/button'],\n },\n};\n\nconst tsExtendingConfigFilesMap: ExtendingConfigFilesMap = {\n '816b7f584991ff21a7682ef8a4229ebf312c457f': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-typescript-config\\n' +\n '\\n' +\n '{\\n' +\n ' \"extends\": \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.4957ea3122e57ea3302aadd885eed84127d9c54b.json\"\\n' +\n '}',\n name: 'tsconfig.json',\n extendingTarget: {\n hash: '4957ea3122e57ea3302aadd885eed84127d9c54b',\n content: 'does not matter',\n name: 'tsconfig.bit.4957ea3122e57ea3302aadd885eed84127d9c54b.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.4957ea3122e57ea3302aadd885eed84127d9c54b.json',\n },\n\n hash: '816b7f584991ff21a7682ef8a4229ebf312c457f',\n },\n envIds: ['teambit.harmony/node', 'teambit.react/react'],\n },\n '00330a9c547353867d519c34f47e17ddc9f161d1': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-typescript-config\\n' +\n '\\n' +\n '{\\n' +\n ' \"extends\": \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.17b99a1071b1d2d86ed04ebce68903b82403f278.json\"\\n' +\n '}',\n name: 'tsconfig.json',\n extendingTarget: {\n hash: '17b99a1071b1d2d86ed04ebce68903b82403f278',\n content: 'does not matter',\n name: 'tsconfig.bit.17b99a1071b1d2d86ed04ebce68903b82403f278.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.17b99a1071b1d2d86ed04ebce68903b82403f278.json',\n },\n hash: '00330a9c547353867d519c34f47e17ddc9f161d1',\n },\n envIds: ['teambit.react/react-env@0.0.44', 'teambit.react/examples/my-react-env@0.0.39'],\n },\n '3c5960bcad98570b98834a5c37f47dd4729dbef0': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-typescript-config\\n' +\n '\\n' +\n '{\\n' +\n ' \"extends\": \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.dab521d0914afe64de248743e05a169cf9b4b50c.json\"\\n' +\n '}',\n name: 'tsconfig.json',\n extendingTarget: {\n hash: 'dab521d0914afe64de248743e05a169cf9b4b50c',\n content: 'does not matter',\n name: 'tsconfig.bit.dab521d0914afe64de248743e05a169cf9b4b50c.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.dab521d0914afe64de248743e05a169cf9b4b50c.json',\n },\n hash: '3c5960bcad98570b98834a5c37f47dd4729dbef0',\n },\n envIds: ['teambit.node/node@0.0.16'],\n },\n};\n\nconst tsExpectedDedupedPaths: DedupedPaths = [\n {\n fileHash: '00330a9c547353867d519c34f47e17ddc9f161d1',\n paths: ['test-new-envs-app', 'test-new-env/ui'],\n },\n {\n fileHash: '3c5960bcad98570b98834a5c37f47dd4729dbef0',\n paths: ['test-new-env/node'],\n },\n {\n fileHash: '816b7f584991ff21a7682ef8a4229ebf312c457f',\n paths: ['.'],\n },\n];\n\nconst eslintExtendingConfigFilesMap: ExtendingConfigFilesMap = {\n '8810839e74a9c41694bb5a2a8587dcae71dc389d': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: 'be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c',\n content: 'does not matter',\n name: '.eslintrc.bit.be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c.json',\n },\n hash: '8810839e74a9c41694bb5a2a8587dcae71dc389d',\n },\n envIds: ['teambit.harmony/node', 'teambit.react/react', 'teambit.envs/env'],\n },\n ff6ea265e6f21ce25f7985570beef37dd957d0dc: {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.e5ca5528c64e0442b05b949fea42cdda4243d840.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: 'e5ca5528c64e0442b05b949fea42cdda4243d840',\n content: 'does not matter',\n name: '.eslintrc.bit.e5ca5528c64e0442b05b949fea42cdda4243d840.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.e5ca5528c64e0442b05b949fea42cdda4243d840.json',\n },\n hash: 'ff6ea265e6f21ce25f7985570beef37dd957d0dc',\n },\n envIds: ['teambit.react/react-env@0.0.44'],\n },\n '91021f2c973a2940c70b75447639e4ea2a799955': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.7f229bf5ab41e8bfe61916de6c68f9c14c76f23e.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: '7f229bf5ab41e8bfe61916de6c68f9c14c76f23e',\n content: 'does not matter',\n name: '.eslintrc.bit.7f229bf5ab41e8bfe61916de6c68f9c14c76f23e.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.7f229bf5ab41e8bfe61916de6c68f9c14c76f23e.json',\n },\n hash: '91021f2c973a2940c70b75447639e4ea2a799955',\n },\n envIds: ['teambit.mdx/mdx-env@0.0.6', 'teambit.react/examples/my-react-env@0.0.39'],\n },\n f1743b227e588db0c59d4a43171653e6c4262816: {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.c503f7386e2a637d91c74f7df90d8fafe79c4378.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: 'c503f7386e2a637d91c74f7df90d8fafe79c4378',\n content: 'does not matter',\n name: '.eslintrc.bit.c503f7386e2a637d91c74f7df90d8fafe79c4378.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.c503f7386e2a637d91c74f7df90d8fafe79c4378.json',\n },\n hash: 'f1743b227e588db0c59d4a43171653e6c4262816',\n },\n envIds: ['teambit.node/node@0.0.16'],\n },\n};\n\nconst eslintExpectedDedupedPaths: DedupedPaths = [\n {\n fileHash: 'ff6ea265e6f21ce25f7985570beef37dd957d0dc',\n paths: ['test-new-envs-app', 'test-new-env/ui/button2'],\n },\n {\n fileHash: '91021f2c973a2940c70b75447639e4ea2a799955',\n paths: ['test-new-env/mdx', 'test-new-env/ui/button'],\n },\n {\n fileHash: 'f1743b227e588db0c59d4a43171653e6c4262816',\n paths: ['test-new-env/node'],\n },\n {\n fileHash: '8810839e74a9c41694bb5a2a8587dcae71dc389d',\n paths: ['.'],\n },\n];\n\nconst prettierExtendingConfigFilesMap: ExtendingConfigFilesMap = {\n '082f546b2555ea89e7063b20de47c039d387fc74': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-prettier-config\\n' +\n 'module.exports = {\\n' +\n \" ...require('/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.prettierrc.bit.e4882af8861bcf5b0147891d8b70b40a10428881.cjs')\\n\" +\n '}',\n name: '.prettierrc.cjs',\n extendingTarget: {\n hash: 'e4882af8861bcf5b0147891d8b70b40a10428881',\n content: 'does not matter',\n name: '.prettierrc.bit.e4882af8861bcf5b0147891d8b70b40a10428881.cjs',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.prettierrc.bit.e4882af8861bcf5b0147891d8b70b40a10428881.cjs',\n },\n hash: '082f546b2555ea89e7063b20de47c039d387fc74',\n },\n envIds: [\n 'teambit.harmony/node',\n 'teambit.react/react-env@0.0.44',\n 'teambit.react/react',\n 'teambit.envs/env',\n 'teambit.mdx/mdx-env@0.0.6',\n 'teambit.node/node@0.0.16',\n 'teambit.react/examples/my-react-env@0.0.39',\n ],\n },\n};\n\nconst prettierExpectedDedupedPaths: DedupedPaths = [\n {\n fileHash: '082f546b2555ea89e7063b20de47c039d387fc74',\n paths: ['.'],\n },\n];\n\ndescribe('Workspace Config files - dedupe paths', function () {\n this.timeout(0);\n\n describe('dedupePaths', () => {\n describe('ts example', () => {\n let result: DedupedPaths;\n before(async () => {\n // @ts-ignore (we don't really care about the env itself here)\n result = dedupePaths(tsExtendingConfigFilesMap, envCompsDirsMap);\n });\n\n it('should reduce files to minimum necessary', async () => {\n expect(result).to.have.lengthOf(tsExpectedDedupedPaths.length);\n });\n\n it('should place files in correct folders', async () => {\n expect(result).to.deep.equal(tsExpectedDedupedPaths);\n });\n });\n\n describe('eslint example', () => {\n let result: DedupedPaths;\n before(async () => {\n // @ts-ignore (we don't really care about the env itself here)\n result = dedupePaths(eslintExtendingConfigFilesMap, envCompsDirsMap);\n });\n\n it('should reduce files to minimum necessary', async () => {\n expect(result).to.have.lengthOf(eslintExpectedDedupedPaths.length);\n });\n\n it('should place files in correct folders', async () => {\n expect(result).to.deep.equal(eslintExpectedDedupedPaths);\n });\n });\n\n describe('prettier example', () => {\n let result: DedupedPaths;\n before(async () => {\n // @ts-ignore (we don't really care about the env itself here)\n result = dedupePaths(prettierExtendingConfigFilesMap, envCompsDirsMap);\n });\n\n it('should reduce files to minimum necessary', async () => {\n expect(result).to.have.lengthOf(prettierExpectedDedupedPaths.length);\n });\n\n it('should place files in correct folders', async () => {\n expect(result).to.deep.equal(prettierExpectedDedupedPaths);\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chai","data","require","_dedupPaths","envCompsDirsMap","id","paths","tsExtendingConfigFilesMap","extendingConfigFile","useAbsPaths","content","name","extendingTarget","hash","filePath","envIds","tsExpectedDedupedPaths","fileHash","eslintExtendingConfigFilesMap","ff6ea265e6f21ce25f7985570beef37dd957d0dc","f1743b227e588db0c59d4a43171653e6c4262816","eslintExpectedDedupedPaths","prettierExtendingConfigFilesMap","prettierExpectedDedupedPaths","describe","timeout","result","before","dedupePaths","it","expect","to","have","lengthOf","length","deep","equal"],"sources":["dedup-paths.spec.ts"],"sourcesContent":["import { expect } from 'chai';\nimport type { DedupedPaths } from './dedup-paths';\nimport { dedupePaths } from './dedup-paths';\nimport type { ExtendingConfigFilesMap } from './writers';\n\nconst envCompsDirsMap = {\n 'teambit.harmony/node': {\n id: 'teambit.harmony/node',\n paths: [\n 'react/apps/react-app-types',\n 'compilation/babel-compiler',\n 'compilation/compiler-task',\n 'mdx/compilers/mdx-compiler',\n 'mdx/compilers/mdx-multi-compiler',\n 'compilation/compilers/multi-compiler',\n 'defender/eslint-linter',\n 'mdx/generator/mdx-starters',\n 'mdx/generator/mdx-templates',\n 'react/generator/react-starters',\n 'react/generator/react-templates',\n 'defender/jest-tester',\n 'react/jest/react-jest',\n 'defender/linter-task',\n 'defender/mocha-tester',\n 'compilation/modules/babel-file-transpiler',\n 'defender/prettier-formatter',\n 'preview/react-preview',\n 'defender/tester-task',\n 'typescript/typescript-compiler',\n 'webpack/webpack-bundler',\n 'webpack/webpack-dev-server',\n 'react/webpack/react-webpack',\n ],\n },\n 'teambit.react/react-env@0.0.44': {\n id: 'teambit.react/react-env@0.0.44',\n paths: ['test-new-envs-app/apps/test-app', 'test-new-env/ui/button2'],\n },\n 'teambit.react/react': {\n id: 'teambit.react/react',\n paths: ['docs/docs-template', 'react/mounter'],\n },\n 'teambit.envs/env': {\n id: 'teambit.envs/env',\n paths: [\n 'react/examples/my-react-env',\n 'mdx/mdx-env',\n 'node/node',\n 'node/node-env-extension',\n 'react/react-env',\n 'react/react-env-extension',\n ],\n },\n 'teambit.mdx/mdx-env@0.0.6': {\n id: 'teambit.mdx/mdx-env@0.0.6',\n paths: ['test-new-env/mdx/content-comp'],\n },\n 'teambit.node/node@0.0.16': {\n id: 'teambit.node/node@0.0.16',\n paths: ['test-new-env/node/node-comp1', 'test-new-env/node/node-comp2'],\n },\n 'teambit.react/examples/my-react-env@0.0.39': {\n id: 'teambit.react/examples/my-react-env@0.0.39',\n paths: ['test-new-env/ui/button'],\n },\n};\n\nconst tsExtendingConfigFilesMap: ExtendingConfigFilesMap = {\n '816b7f584991ff21a7682ef8a4229ebf312c457f': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-typescript-config\\n' +\n '\\n' +\n '{\\n' +\n ' \"extends\": \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.4957ea3122e57ea3302aadd885eed84127d9c54b.json\"\\n' +\n '}',\n name: 'tsconfig.json',\n extendingTarget: {\n hash: '4957ea3122e57ea3302aadd885eed84127d9c54b',\n content: 'does not matter',\n name: 'tsconfig.bit.4957ea3122e57ea3302aadd885eed84127d9c54b.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.4957ea3122e57ea3302aadd885eed84127d9c54b.json',\n },\n\n hash: '816b7f584991ff21a7682ef8a4229ebf312c457f',\n },\n envIds: ['teambit.harmony/node', 'teambit.react/react'],\n },\n '00330a9c547353867d519c34f47e17ddc9f161d1': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-typescript-config\\n' +\n '\\n' +\n '{\\n' +\n ' \"extends\": \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.17b99a1071b1d2d86ed04ebce68903b82403f278.json\"\\n' +\n '}',\n name: 'tsconfig.json',\n extendingTarget: {\n hash: '17b99a1071b1d2d86ed04ebce68903b82403f278',\n content: 'does not matter',\n name: 'tsconfig.bit.17b99a1071b1d2d86ed04ebce68903b82403f278.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.17b99a1071b1d2d86ed04ebce68903b82403f278.json',\n },\n hash: '00330a9c547353867d519c34f47e17ddc9f161d1',\n },\n envIds: ['teambit.react/react-env@0.0.44', 'teambit.react/examples/my-react-env@0.0.39'],\n },\n '3c5960bcad98570b98834a5c37f47dd4729dbef0': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-typescript-config\\n' +\n '\\n' +\n '{\\n' +\n ' \"extends\": \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.dab521d0914afe64de248743e05a169cf9b4b50c.json\"\\n' +\n '}',\n name: 'tsconfig.json',\n extendingTarget: {\n hash: 'dab521d0914afe64de248743e05a169cf9b4b50c',\n content: 'does not matter',\n name: 'tsconfig.bit.dab521d0914afe64de248743e05a169cf9b4b50c.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/tsconfig.bit.dab521d0914afe64de248743e05a169cf9b4b50c.json',\n },\n hash: '3c5960bcad98570b98834a5c37f47dd4729dbef0',\n },\n envIds: ['teambit.node/node@0.0.16'],\n },\n};\n\nconst tsExpectedDedupedPaths: DedupedPaths = [\n {\n fileHash: '00330a9c547353867d519c34f47e17ddc9f161d1',\n paths: ['test-new-envs-app', 'test-new-env/ui'],\n },\n {\n fileHash: '3c5960bcad98570b98834a5c37f47dd4729dbef0',\n paths: ['test-new-env/node'],\n },\n {\n fileHash: '816b7f584991ff21a7682ef8a4229ebf312c457f',\n paths: ['.'],\n },\n];\n\nconst eslintExtendingConfigFilesMap: ExtendingConfigFilesMap = {\n '8810839e74a9c41694bb5a2a8587dcae71dc389d': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: 'be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c',\n content: 'does not matter',\n name: '.eslintrc.bit.be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.be8facfbdcf1db685d5020f8612d8c2c3ac2eb7c.json',\n },\n hash: '8810839e74a9c41694bb5a2a8587dcae71dc389d',\n },\n envIds: ['teambit.harmony/node', 'teambit.react/react', 'teambit.envs/env'],\n },\n ff6ea265e6f21ce25f7985570beef37dd957d0dc: {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.e5ca5528c64e0442b05b949fea42cdda4243d840.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: 'e5ca5528c64e0442b05b949fea42cdda4243d840',\n content: 'does not matter',\n name: '.eslintrc.bit.e5ca5528c64e0442b05b949fea42cdda4243d840.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.e5ca5528c64e0442b05b949fea42cdda4243d840.json',\n },\n hash: 'ff6ea265e6f21ce25f7985570beef37dd957d0dc',\n },\n envIds: ['teambit.react/react-env@0.0.44'],\n },\n '91021f2c973a2940c70b75447639e4ea2a799955': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.7f229bf5ab41e8bfe61916de6c68f9c14c76f23e.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: '7f229bf5ab41e8bfe61916de6c68f9c14c76f23e',\n content: 'does not matter',\n name: '.eslintrc.bit.7f229bf5ab41e8bfe61916de6c68f9c14c76f23e.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.7f229bf5ab41e8bfe61916de6c68f9c14c76f23e.json',\n },\n hash: '91021f2c973a2940c70b75447639e4ea2a799955',\n },\n envIds: ['teambit.mdx/mdx-env@0.0.6', 'teambit.react/examples/my-react-env@0.0.39'],\n },\n f1743b227e588db0c59d4a43171653e6c4262816: {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-eslint-config\\n' +\n '{\\n' +\n ' \"extends\": [\\n' +\n ' \"/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.c503f7386e2a637d91c74f7df90d8fafe79c4378.json\"\\n' +\n ' ]\\n' +\n '}',\n name: '.eslintrc.json',\n extendingTarget: {\n hash: 'c503f7386e2a637d91c74f7df90d8fafe79c4378',\n content: 'does not matter',\n name: '.eslintrc.bit.c503f7386e2a637d91c74f7df90d8fafe79c4378.json',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.eslintrc.bit.c503f7386e2a637d91c74f7df90d8fafe79c4378.json',\n },\n hash: 'f1743b227e588db0c59d4a43171653e6c4262816',\n },\n envIds: ['teambit.node/node@0.0.16'],\n },\n};\n\nconst eslintExpectedDedupedPaths: DedupedPaths = [\n {\n fileHash: 'ff6ea265e6f21ce25f7985570beef37dd957d0dc',\n paths: ['test-new-envs-app', 'test-new-env/ui/button2'],\n },\n {\n fileHash: '91021f2c973a2940c70b75447639e4ea2a799955',\n paths: ['test-new-env/mdx', 'test-new-env/ui/button'],\n },\n {\n fileHash: 'f1743b227e588db0c59d4a43171653e6c4262816',\n paths: ['test-new-env/node'],\n },\n {\n fileHash: '8810839e74a9c41694bb5a2a8587dcae71dc389d',\n paths: ['.'],\n },\n];\n\nconst prettierExtendingConfigFilesMap: ExtendingConfigFilesMap = {\n '082f546b2555ea89e7063b20de47c039d387fc74': {\n extendingConfigFile: {\n useAbsPaths: false,\n content:\n '// bit-generated-prettier-config\\n' +\n 'module.exports = {\\n' +\n \" ...require('/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.prettierrc.bit.e4882af8861bcf5b0147891d8b70b40a10428881.cjs')\\n\" +\n '}',\n name: '.prettierrc.cjs',\n extendingTarget: {\n hash: 'e4882af8861bcf5b0147891d8b70b40a10428881',\n content: 'does not matter',\n name: '.prettierrc.bit.e4882af8861bcf5b0147891d8b70b40a10428881.cjs',\n filePath:\n '/Users/giladshoham/dev/temp/new-react-18-config-files/node_modules/.cache/.prettierrc.bit.e4882af8861bcf5b0147891d8b70b40a10428881.cjs',\n },\n hash: '082f546b2555ea89e7063b20de47c039d387fc74',\n },\n envIds: [\n 'teambit.harmony/node',\n 'teambit.react/react-env@0.0.44',\n 'teambit.react/react',\n 'teambit.envs/env',\n 'teambit.mdx/mdx-env@0.0.6',\n 'teambit.node/node@0.0.16',\n 'teambit.react/examples/my-react-env@0.0.39',\n ],\n },\n};\n\nconst prettierExpectedDedupedPaths: DedupedPaths = [\n {\n fileHash: '082f546b2555ea89e7063b20de47c039d387fc74',\n paths: ['.'],\n },\n];\n\ndescribe('Workspace Config files - dedupe paths', function () {\n this.timeout(0);\n\n describe('dedupePaths', () => {\n describe('ts example', () => {\n let result: DedupedPaths;\n before(async () => {\n // @ts-ignore (we don't really care about the env itself here)\n result = dedupePaths(tsExtendingConfigFilesMap, envCompsDirsMap);\n });\n\n it('should reduce files to minimum necessary', async () => {\n expect(result).to.have.lengthOf(tsExpectedDedupedPaths.length);\n });\n\n it('should place files in correct folders', async () => {\n expect(result).to.deep.equal(tsExpectedDedupedPaths);\n });\n });\n\n describe('eslint example', () => {\n let result: DedupedPaths;\n before(async () => {\n // @ts-ignore (we don't really care about the env itself here)\n result = dedupePaths(eslintExtendingConfigFilesMap, envCompsDirsMap);\n });\n\n it('should reduce files to minimum necessary', async () => {\n expect(result).to.have.lengthOf(eslintExpectedDedupedPaths.length);\n });\n\n it('should place files in correct folders', async () => {\n expect(result).to.deep.equal(eslintExpectedDedupedPaths);\n });\n });\n\n describe('prettier example', () => {\n let result: DedupedPaths;\n before(async () => {\n // @ts-ignore (we don't really care about the env itself here)\n result = dedupePaths(prettierExtendingConfigFilesMap, envCompsDirsMap);\n });\n\n it('should reduce files to minimum necessary', async () => {\n expect(result).to.have.lengthOf(prettierExpectedDedupedPaths.length);\n });\n\n it('should place files in correct folders', async () => {\n expect(result).to.deep.equal(prettierExpectedDedupedPaths);\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import { EnvConfigWritersList } from '../workspace-config-files.main.runtime';
1
+ import type { EnvConfigWritersList } from '../workspace-config-files.main.runtime';
2
2
  export declare function formatListOutput(result: EnvConfigWritersList): string;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","e","__esModule","default","formatListOutput","result","Object","values","map","item","getEnvOutput","envId","configWriters","join","title","chalk","bold","space","length","yellow","entries","configWriter","name","id"],"sources":["format-list-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { EnvConfigWritersList } from '../workspace-config-files.main.runtime';\nimport { ConfigWriterEntry } from '../config-writer-entry';\n\nexport function formatListOutput(result: EnvConfigWritersList): string {\n return Object.values(result)\n .map((item) => getEnvOutput(item.envId, item.configWriters))\n .join('\\n\\n');\n}\n\nfunction getEnvOutput(envId: string, configWriters: ConfigWriterEntry[]): string {\n const title = chalk.bold(envId);\n const space = ' ';\n if (!configWriters.length) return `${title}\\n${space}${chalk.yellow('no config writers found')}`;\n const entries = configWriters\n .map((configWriter) => {\n return `${configWriter.name} (${configWriter.id})`;\n })\n .join(`\\n${space}`);\n return `${title}\\n${space}${entries}`;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAInB,SAASG,gBAAgBA,CAACC,MAA4B,EAAU;EACrE,OAAOC,MAAM,CAACC,MAAM,CAACF,MAAM,CAAC,CACzBG,GAAG,CAAEC,IAAI,IAAKC,YAAY,CAACD,IAAI,CAACE,KAAK,EAAEF,IAAI,CAACG,aAAa,CAAC,CAAC,CAC3DC,IAAI,CAAC,MAAM,CAAC;AACjB;AAEA,SAASH,YAAYA,CAACC,KAAa,EAAEC,aAAkC,EAAU;EAC/E,MAAME,KAAK,GAAGC,gBAAK,CAACC,IAAI,CAACL,KAAK,CAAC;EAC/B,MAAMM,KAAK,GAAG,IAAI;EAClB,IAAI,CAACL,aAAa,CAACM,MAAM,EAAE,OAAO,GAAGJ,KAAK,KAAKG,KAAK,GAAGF,gBAAK,CAACI,MAAM,CAAC,yBAAyB,CAAC,EAAE;EAChG,MAAMC,OAAO,GAAGR,aAAa,CAC1BJ,GAAG,CAAEa,YAAY,IAAK;IACrB,OAAO,GAAGA,YAAY,CAACC,IAAI,KAAKD,YAAY,CAACE,EAAE,GAAG;EACpD,CAAC,CAAC,CACDV,IAAI,CAAC,KAAKI,KAAK,EAAE,CAAC;EACrB,OAAO,GAAGH,KAAK,KAAKG,KAAK,GAAGG,OAAO,EAAE;AACvC","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","e","__esModule","default","formatListOutput","result","Object","values","map","item","getEnvOutput","envId","configWriters","join","title","chalk","bold","space","length","yellow","entries","configWriter","name","id"],"sources":["format-list-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { EnvConfigWritersList } from '../workspace-config-files.main.runtime';\nimport type { ConfigWriterEntry } from '../config-writer-entry';\n\nexport function formatListOutput(result: EnvConfigWritersList): string {\n return Object.values(result)\n .map((item) => getEnvOutput(item.envId, item.configWriters))\n .join('\\n\\n');\n}\n\nfunction getEnvOutput(envId: string, configWriters: ConfigWriterEntry[]): string {\n const title = chalk.bold(envId);\n const space = ' ';\n if (!configWriters.length) return `${title}\\n${space}${chalk.yellow('no config writers found')}`;\n const entries = configWriters\n .map((configWriter) => {\n return `${configWriter.name} (${configWriter.id})`;\n })\n .join(`\\n${space}`);\n return `${title}\\n${space}${entries}`;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAInB,SAASG,gBAAgBA,CAACC,MAA4B,EAAU;EACrE,OAAOC,MAAM,CAACC,MAAM,CAACF,MAAM,CAAC,CACzBG,GAAG,CAAEC,IAAI,IAAKC,YAAY,CAACD,IAAI,CAACE,KAAK,EAAEF,IAAI,CAACG,aAAa,CAAC,CAAC,CAC3DC,IAAI,CAAC,MAAM,CAAC;AACjB;AAEA,SAASH,YAAYA,CAACC,KAAa,EAAEC,aAAkC,EAAU;EAC/E,MAAME,KAAK,GAAGC,gBAAK,CAACC,IAAI,CAACL,KAAK,CAAC;EAC/B,MAAMM,KAAK,GAAG,IAAI;EAClB,IAAI,CAACL,aAAa,CAACM,MAAM,EAAE,OAAO,GAAGJ,KAAK,KAAKG,KAAK,GAAGF,gBAAK,CAACI,MAAM,CAAC,yBAAyB,CAAC,EAAE;EAChG,MAAMC,OAAO,GAAGR,aAAa,CAC1BJ,GAAG,CAAEa,YAAY,IAAK;IACrB,OAAO,GAAGA,YAAY,CAACC,IAAI,KAAKD,YAAY,CAACE,EAAE,GAAG;EACpD,CAAC,CAAC,CACDV,IAAI,CAAC,KAAKI,KAAK,EAAE,CAAC;EACrB,OAAO,GAAGH,KAAK,KAAKG,KAAK,GAAGG,OAAO,EAAE;AACvC","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { WriteConfigFilesResult } from '../workspace-config-files.main.runtime';
1
+ import type { WriteConfigFilesResult } from '../workspace-config-files.main.runtime';
2
2
  import type { WriteConfigCmdFlags } from '../ws-config.cmd';
3
3
  export declare function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_path","_formatCleanOutput","_writeOutputsTexts","e","__esModule","default","formatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","length","formatCleanOutput","undefined","writeResultsOutput","getWriteResultsOutput","cleanWriteOutput","SUMMARY","totalExtendingConfigFiles","writeTitle","chalk","green","WRITE_TITLE","writeOutput","writersResult","map","writerResult","getOneWriterOutput","join","title","blue","bold","writerId","toString","writersOutput","getExtendingConfigFilesOutput","extendingConfigFiles","extendingConfigFilesOutput","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","relative"],"sources":["format-write-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { relative } from 'path';\nimport { OneConfigWriterIdResult, WriteConfigFilesResult, WriteResults } from '../workspace-config-files.main.runtime';\nimport type { WriteConfigCmdFlags } from '../ws-config.cmd';\nimport { formatCleanOutput } from './format-clean-output';\nimport { SUMMARY, WRITE_TITLE } from './write-outputs-texts';\nimport { EnvsWrittenExtendingConfigFile, EnvsWrittenExtendingConfigFiles } from '../writers';\n\nexport function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = cleanResults?.length ? formatCleanOutput(cleanResults, { dryRun: isDryRun }) : undefined;\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n const cleanWriteOutput = cleanResultsOutput ? `${cleanResultsOutput}\\n${writeResultsOutput}` : writeResultsOutput;\n\n return `${cleanWriteOutput}\\n\\n${SUMMARY}`;\n}\n\nfunction getWriteResultsOutput(writeResults: WriteResults, wsDir: string, isDryRun: boolean) {\n const totalExtendingConfigFiles = writeResults.totalExtendingConfigFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalExtendingConfigFiles} files will be written`)\n : chalk.green(WRITE_TITLE(totalExtendingConfigFiles));\n const writeOutput = writeResults.writersResult\n .map((writerResult) => getOneWriterOutput(writerResult, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\nfunction getOneWriterOutput(writerResult: OneConfigWriterIdResult, wsDir: string): string {\n const title = chalk.blue(\n `${writerResult.totalExtendingConfigFiles} ${chalk.bold(writerResult.writerId.toString())} configurations added`\n );\n const writersOutput = getExtendingConfigFilesOutput(writerResult.extendingConfigFiles, wsDir);\n return `${title}\\n${writersOutput}`;\n}\n\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n');\n return `${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths.map((p) => ` ${relative(wsDir, p)}`).join('\\n');\n return `${paths}`;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAI,mBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,kBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,mBAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,kBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6D,SAAAC,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGtD,SAASG,iBAAiBA,CAACC,sBAA8C,EAAEC,KAA0B,EAAU;EACpH,MAAM;IAAEC,YAAY;IAAEC,YAAY;IAAEC;EAAM,CAAC,GAAGJ,sBAAsB;EACpE,MAAMK,QAAQ,GAAG,CAAC,EAAEJ,KAAK,CAACK,MAAM,IAAIL,KAAK,CAACM,iBAAiB,CAAC;EAC5D,MAAMC,kBAAkB,GAAGN,YAAY,EAAEO,MAAM,GAAG,IAAAC,sCAAiB,EAACR,YAAY,EAAE;IAAEI,MAAM,EAAED;EAAS,CAAC,CAAC,GAAGM,SAAS;EACnH,MAAMC,kBAAkB,GAAGC,qBAAqB,CAACV,YAAY,EAAEC,KAAK,EAAEC,QAAQ,CAAC;EAE/E,MAAMS,gBAAgB,GAAGN,kBAAkB,GAAG,GAAGA,kBAAkB,KAAKI,kBAAkB,EAAE,GAAGA,kBAAkB;EAEjH,OAAO,GAAGE,gBAAgB,OAAOC,4BAAO,EAAE;AAC5C;AAEA,SAASF,qBAAqBA,CAACV,YAA0B,EAAEC,KAAa,EAAEC,QAAiB,EAAE;EAC3F,MAAMW,yBAAyB,GAAGb,YAAY,CAACa,yBAAyB;EAExE,MAAMC,UAAU,GAAGZ,QAAQ,GACvBa,gBAAK,CAACC,KAAK,CAAC,GAAGH,yBAAyB,wBAAwB,CAAC,GACjEE,gBAAK,CAACC,KAAK,CAAC,IAAAC,gCAAW,EAACJ,yBAAyB,CAAC,CAAC;EACvD,MAAMK,WAAW,GAAGlB,YAAY,CAACmB,aAAa,CAC3CC,GAAG,CAAEC,YAAY,IAAKC,kBAAkB,CAACD,YAAY,EAAEpB,KAAK,CAAC,CAAC,CAC9DsB,IAAI,CAAC,MAAM,CAAC;EACf,OAAO,GAAGT,UAAU,KAAKI,WAAW,EAAE;AACxC;AACA,SAASI,kBAAkBA,CAACD,YAAqC,EAAEpB,KAAa,EAAU;EACxF,MAAMuB,KAAK,GAAGT,gBAAK,CAACU,IAAI,CACtB,GAAGJ,YAAY,CAACR,yBAAyB,IAAIE,gBAAK,CAACW,IAAI,CAACL,YAAY,CAACM,QAAQ,CAACC,QAAQ,CAAC,CAAC,CAAC,uBAC3F,CAAC;EACD,MAAMC,aAAa,GAAGC,6BAA6B,CAACT,YAAY,CAACU,oBAAoB,EAAE9B,KAAK,CAAC;EAC7F,OAAO,GAAGuB,KAAK,KAAKK,aAAa,EAAE;AACrC;AAEA,SAASC,6BAA6BA,CAACC,oBAAqD,EAAE9B,KAAa,EAAU;EACnH,MAAM+B,0BAA0B,GAAGD,oBAAoB,CACpDX,GAAG,CAAEa,8BAA8B,IAClCC,qCAAqC,CAACD,8BAA8B,EAAEhC,KAAK,CAC7E,CAAC,CACAsB,IAAI,CAAC,IAAI,CAAC;EACb,OAAO,GAAGS,0BAA0B,EAAE;AACxC;AACA,SAASE,qCAAqCA,CAC5CD,8BAA8D,EAC9DhC,KAAa,EACL;EACR,MAAMkC,mBAAmB,GAAGF,8BAA8B,CAACE,mBAAmB;EAC9E,MAAMC,KAAK,GAAGD,mBAAmB,CAACE,SAAS,CAACjB,GAAG,CAAEkB,CAAC,IAAK,KAAK,IAAAC,gBAAQ,EAACtC,KAAK,EAAEqC,CAAC,CAAC,EAAE,CAAC,CAACf,IAAI,CAAC,IAAI,CAAC;EAC5F,OAAO,GAAGa,KAAK,EAAE;AACnB","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_path","_formatCleanOutput","_writeOutputsTexts","e","__esModule","default","formatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","length","formatCleanOutput","undefined","writeResultsOutput","getWriteResultsOutput","cleanWriteOutput","SUMMARY","totalExtendingConfigFiles","writeTitle","chalk","green","WRITE_TITLE","writeOutput","writersResult","map","writerResult","getOneWriterOutput","join","title","blue","bold","writerId","toString","writersOutput","getExtendingConfigFilesOutput","extendingConfigFiles","extendingConfigFilesOutput","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","relative"],"sources":["format-write-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { relative } from 'path';\nimport type {\n OneConfigWriterIdResult,\n WriteConfigFilesResult,\n WriteResults,\n} from '../workspace-config-files.main.runtime';\nimport type { WriteConfigCmdFlags } from '../ws-config.cmd';\nimport { formatCleanOutput } from './format-clean-output';\nimport { SUMMARY, WRITE_TITLE } from './write-outputs-texts';\nimport type { EnvsWrittenExtendingConfigFile, EnvsWrittenExtendingConfigFiles } from '../writers';\n\nexport function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = cleanResults?.length ? formatCleanOutput(cleanResults, { dryRun: isDryRun }) : undefined;\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n const cleanWriteOutput = cleanResultsOutput ? `${cleanResultsOutput}\\n${writeResultsOutput}` : writeResultsOutput;\n\n return `${cleanWriteOutput}\\n\\n${SUMMARY}`;\n}\n\nfunction getWriteResultsOutput(writeResults: WriteResults, wsDir: string, isDryRun: boolean) {\n const totalExtendingConfigFiles = writeResults.totalExtendingConfigFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalExtendingConfigFiles} files will be written`)\n : chalk.green(WRITE_TITLE(totalExtendingConfigFiles));\n const writeOutput = writeResults.writersResult\n .map((writerResult) => getOneWriterOutput(writerResult, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\nfunction getOneWriterOutput(writerResult: OneConfigWriterIdResult, wsDir: string): string {\n const title = chalk.blue(\n `${writerResult.totalExtendingConfigFiles} ${chalk.bold(writerResult.writerId.toString())} configurations added`\n );\n const writersOutput = getExtendingConfigFilesOutput(writerResult.extendingConfigFiles, wsDir);\n return `${title}\\n${writersOutput}`;\n}\n\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n');\n return `${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths.map((p) => ` ${relative(wsDir, p)}`).join('\\n');\n return `${paths}`;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { WriteConfigFilesResult } from '../workspace-config-files.main.runtime';
1
+ import type { WriteConfigFilesResult } from '../workspace-config-files.main.runtime';
2
2
  import type { WriteConfigCmdFlags } from '../ws-config.cmd';
3
3
  export declare function verboseFormatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_path","_formatCleanOutput","_writeOutputsTexts","e","__esModule","default","verboseFormatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","formatCleanOutput","writeResultsOutput","getWriteResultsOutput","SUMMARY","totalFiles","totalWrittenFiles","writeTitle","chalk","green","WRITE_TITLE","writeOutput","writersResult","map","writerResult","getOneWriterOutput","join","oneWritersResults","title","cyan","bold","writerId","realConfigFilesOutput","getRealConfigFilesOutput","realConfigFiles","extendingConfigFilesOutput","getExtendingConfigFilesOutput","extendingConfigFiles","envsWrittenRealConfigFiles","magenta","writtenConfigFilesOutput","envsWrittenConfigFile","getEnvGroupConfigFilesOutput","envIds","filePath","relative","writtenRealConfigFile","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","extendingTarget"],"sources":["verbose-format-write-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { relative } from 'path';\nimport { OneConfigWriterIdResult, WriteConfigFilesResult, WriteResults } from '../workspace-config-files.main.runtime';\nimport type { WriteConfigCmdFlags } from '../ws-config.cmd';\nimport { formatCleanOutput } from './format-clean-output';\nimport { SUMMARY, WRITE_TITLE } from './write-outputs-texts';\nimport {\n EnvsWrittenExtendingConfigFile,\n EnvsWrittenExtendingConfigFiles,\n EnvsWrittenRealConfigFile,\n EnvsWrittenRealConfigFiles,\n} from '../writers';\n\nexport function verboseFormatWriteOutput(\n writeConfigFilesResult: WriteConfigFilesResult,\n flags: WriteConfigCmdFlags\n): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = formatCleanOutput(cleanResults, { dryRun: isDryRun });\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n return `${cleanResultsOutput}\\n${writeResultsOutput}\\n\\n${SUMMARY}`;\n}\n\nfunction getWriteResultsOutput(writeResults: WriteResults, wsDir: string, isDryRun: boolean) {\n const totalFiles = writeResults.totalWrittenFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalFiles} files will be written`)\n : chalk.green(WRITE_TITLE(totalFiles));\n const writeOutput = writeResults.writersResult\n .map((writerResult) => getOneWriterOutput(writerResult, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\n\nfunction getOneWriterOutput(oneWritersResults: OneConfigWriterIdResult, wsDir: string): string {\n const title = chalk.cyan(` The following paths are according to writer ${chalk.bold(oneWritersResults.writerId)}`);\n const realConfigFilesOutput = getRealConfigFilesOutput(oneWritersResults.realConfigFiles, wsDir);\n const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);\n return `${title}\\n${realConfigFilesOutput}\\n\\n${extendingConfigFilesOutput}`;\n}\n\nfunction getRealConfigFilesOutput(envsWrittenRealConfigFiles: EnvsWrittenRealConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Real config files`);\n const writtenConfigFilesOutput = envsWrittenRealConfigFiles\n .map((envsWrittenConfigFile) => getEnvGroupConfigFilesOutput(envsWrittenConfigFile, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writtenConfigFilesOutput}`;\n}\nfunction getEnvGroupConfigFilesOutput(envsWrittenConfigFile: EnvsWrittenRealConfigFile, wsDir: string): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenConfigFile.envIds.join(', ')\n )}`;\n const filePath = relative(wsDir, envsWrittenConfigFile.writtenRealConfigFile.filePath);\n return `${title}\\n ${filePath}`;\n}\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Extending config files`);\n\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n\\n');\n return `${title}\\n${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenExtendingConfigFile.envIds.join(', ')\n )}`;\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths\n .map((p) => ` ${relative(wsDir, p)} --> ${relative(wsDir, extendingConfigFile.extendingTarget.filePath)}`)\n .join('\\n ');\n return `${title}\\n ${paths}`;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_path","_formatCleanOutput","_writeOutputsTexts","e","__esModule","default","verboseFormatWriteOutput","writeConfigFilesResult","flags","cleanResults","writeResults","wsDir","isDryRun","dryRun","dryRunWithContent","cleanResultsOutput","formatCleanOutput","writeResultsOutput","getWriteResultsOutput","SUMMARY","totalFiles","totalWrittenFiles","writeTitle","chalk","green","WRITE_TITLE","writeOutput","writersResult","map","writerResult","getOneWriterOutput","join","oneWritersResults","title","cyan","bold","writerId","realConfigFilesOutput","getRealConfigFilesOutput","realConfigFiles","extendingConfigFilesOutput","getExtendingConfigFilesOutput","extendingConfigFiles","envsWrittenRealConfigFiles","magenta","writtenConfigFilesOutput","envsWrittenConfigFile","getEnvGroupConfigFilesOutput","envIds","filePath","relative","writtenRealConfigFile","envsWrittenExtendingConfigFile","getEnvGroupExtendingConfigFilesOutput","extendingConfigFile","paths","filePaths","p","extendingTarget"],"sources":["verbose-format-write-output.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { relative } from 'path';\nimport type {\n OneConfigWriterIdResult,\n WriteConfigFilesResult,\n WriteResults,\n} from '../workspace-config-files.main.runtime';\nimport type { WriteConfigCmdFlags } from '../ws-config.cmd';\nimport { formatCleanOutput } from './format-clean-output';\nimport { SUMMARY, WRITE_TITLE } from './write-outputs-texts';\nimport type {\n EnvsWrittenExtendingConfigFile,\n EnvsWrittenExtendingConfigFiles,\n EnvsWrittenRealConfigFile,\n EnvsWrittenRealConfigFiles,\n} from '../writers';\n\nexport function verboseFormatWriteOutput(\n writeConfigFilesResult: WriteConfigFilesResult,\n flags: WriteConfigCmdFlags\n): string {\n const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;\n const isDryRun = !!(flags.dryRun || flags.dryRunWithContent);\n const cleanResultsOutput = formatCleanOutput(cleanResults, { dryRun: isDryRun });\n const writeResultsOutput = getWriteResultsOutput(writeResults, wsDir, isDryRun);\n\n return `${cleanResultsOutput}\\n${writeResultsOutput}\\n\\n${SUMMARY}`;\n}\n\nfunction getWriteResultsOutput(writeResults: WriteResults, wsDir: string, isDryRun: boolean) {\n const totalFiles = writeResults.totalWrittenFiles;\n\n const writeTitle = isDryRun\n ? chalk.green(`${totalFiles} files will be written`)\n : chalk.green(WRITE_TITLE(totalFiles));\n const writeOutput = writeResults.writersResult\n .map((writerResult) => getOneWriterOutput(writerResult, wsDir))\n .join('\\n\\n');\n return `${writeTitle}\\n${writeOutput}`;\n}\n\nfunction getOneWriterOutput(oneWritersResults: OneConfigWriterIdResult, wsDir: string): string {\n const title = chalk.cyan(` The following paths are according to writer ${chalk.bold(oneWritersResults.writerId)}`);\n const realConfigFilesOutput = getRealConfigFilesOutput(oneWritersResults.realConfigFiles, wsDir);\n const extendingConfigFilesOutput = getExtendingConfigFilesOutput(oneWritersResults.extendingConfigFiles, wsDir);\n return `${title}\\n${realConfigFilesOutput}\\n\\n${extendingConfigFilesOutput}`;\n}\n\nfunction getRealConfigFilesOutput(envsWrittenRealConfigFiles: EnvsWrittenRealConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Real config files`);\n const writtenConfigFilesOutput = envsWrittenRealConfigFiles\n .map((envsWrittenConfigFile) => getEnvGroupConfigFilesOutput(envsWrittenConfigFile, wsDir))\n .join('\\n\\n');\n return `${title}\\n${writtenConfigFilesOutput}`;\n}\nfunction getEnvGroupConfigFilesOutput(envsWrittenConfigFile: EnvsWrittenRealConfigFile, wsDir: string): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenConfigFile.envIds.join(', ')\n )}`;\n const filePath = relative(wsDir, envsWrittenConfigFile.writtenRealConfigFile.filePath);\n return `${title}\\n ${filePath}`;\n}\nfunction getExtendingConfigFilesOutput(extendingConfigFiles: EnvsWrittenExtendingConfigFiles, wsDir: string): string {\n const title = chalk.magenta(` Extending config files`);\n\n const extendingConfigFilesOutput = extendingConfigFiles\n .map((envsWrittenExtendingConfigFile) =>\n getEnvGroupExtendingConfigFilesOutput(envsWrittenExtendingConfigFile, wsDir)\n )\n .join('\\n\\n');\n return `${title}\\n${extendingConfigFilesOutput}`;\n}\nfunction getEnvGroupExtendingConfigFilesOutput(\n envsWrittenExtendingConfigFile: EnvsWrittenExtendingConfigFile,\n wsDir: string\n): string {\n const title = ` The following paths are according to env(s) ${chalk.bold(\n envsWrittenExtendingConfigFile.envIds.join(', ')\n )}`;\n const extendingConfigFile = envsWrittenExtendingConfigFile.extendingConfigFile;\n const paths = extendingConfigFile.filePaths\n .map((p) => ` ${relative(wsDir, p)} --> ${relative(wsDir, extendingConfigFile.extendingTarget.filePath)}`)\n .join('\\n ');\n return `${title}\\n ${paths}`;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  ;
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace-config-files@1.0.667/dist/workspace-config-files.docs.mdx';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace-config-files@1.0.668/dist/workspace-config-files.docs.mdx';
3
3
 
4
4
  export const compositions = [];
5
5
  export const overview = [overview_0];
@@ -1,4 +1,4 @@
1
- import { ConfigWriterList } from './config-writer-list';
1
+ import type { ConfigWriterList } from './config-writer-list';
2
2
  export interface WorkspaceConfigEnv {
3
3
  /**
4
4
  * return a ConfigWriterList instance.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["workspace-config-env-type.ts"],"sourcesContent":["import { ConfigWriterList } from './config-writer-list';\n\nexport interface WorkspaceConfigEnv {\n /**\n * return a ConfigWriterList instance.\n */\n workspaceConfig?(): ConfigWriterList;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["workspace-config-env-type.ts"],"sourcesContent":["import type { ConfigWriterList } from './config-writer-list';\n\nexport interface WorkspaceConfigEnv {\n /**\n * return a ConfigWriterList instance.\n */\n workspaceConfig?(): ConfigWriterList;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,11 +1,9 @@
1
- import { CLIMain } from '@teambit/cli';
1
+ import type { CLIMain } from '@teambit/cli';
2
2
  import type { Workspace } from '@teambit/workspace';
3
- import { Environment, ExecutionContext } from '@teambit/envs';
4
- import type { EnvsMain } from '@teambit/envs';
5
- import { Logger } from '@teambit/logger';
6
- import type { LoggerMain } from '@teambit/logger';
7
- import { ConfigWriterEntry } from './config-writer-entry';
8
- import { EnvsWrittenExtendingConfigFiles, EnvsWrittenRealConfigFiles } from './writers';
3
+ import type { EnvsMain, Environment, ExecutionContext } from '@teambit/envs';
4
+ import type { LoggerMain, Logger } from '@teambit/logger';
5
+ import type { ConfigWriterEntry } from './config-writer-entry';
6
+ import type { EnvsWrittenExtendingConfigFiles, EnvsWrittenRealConfigFiles } from './writers';
9
7
  /**
10
8
  * Configs that can be configured in the workspace.jsonc file
11
9
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_globby","_chalk","_legacyCli","_pMapSeries","_legacy","_yesno","_lodash","_cli","_workspace","_envs","_logger","_workspaceConfigFiles","_wsConfig","_writeFailed","_workspaceConfigFiles2","_writers","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","WorkspaceConfigFilesMain","constructor","workspace","envs","logger","config","writeConfigFiles","options","ConsumerNotFound","defaultOpts","clean","dedupe","silent","dryRun","throw","optionsWithDefaults","defaults","execContext","getExecContext","pathsToClean","writeErr","writeResults","calcPathsToClean","writers","write","allWrittenFiles","writersResult","flatMap","writerResult","extendingConfigFiles","extendingConfigFile","filePaths","filter","pathToClean","includes","join","path","deleteFiles","err","info","WriteConfigFilesFailed","cleanResults","wsDir","writeConfigFilesIfEnabled","shouldWrite","isWorkspaceConfigWriteEnabled","undefined","cleanConfigFiles","enableWorkspaceConfigWrite","listConfigWriters","execContexts","result","map","executionContext","configWriters","getConfigWriters","envId","envRuntime","id","groupByWriterId","writerList","reduce","acc","envConfigWriter","forEach","configWriter","push","envsExecutionContext","opts","envCompDirsMap","getEnvComponentsDirsMap","configsRootDir","getConfigsRootDir","componentsRootDir","getComponentsRootDir","writerIdsToEnvEntriesMap","filteredWriterIdsToEnvEntriesMap","pick","totalRealConfigFiles","totalExtendingConfigFiles","results","pMapSeries","entries","writerId","envEntries","oneResult","handleOneIdWriter","totalWrittenFiles","envCompsDirsMap","writtenRealConfigFilesMap","handleRealConfigFiles","writtenExtendingConfigFiles","handleExtendingConfigFiles","writtenRealConfigFiles","values","length","curr","realConfigFiles","userConfiguredDir","getCacheDir","getComponentsRootDirFromComponentsRootDir","normalized","normalize","replace","getComponentsRootDirFromDefaultDir","useDefaultDirectory","defaultDir","defaultDirectory","segments","split","dynamicSegmentIndex","findIndex","segment","startsWith","slice","fromComponentsRootDir","fromDefaultDir","rootDir","components","list","runtime","createEnvironment","getEnvExecutionContext","envExecution","toString","env","paths","c","componentDir","relative","envExecutionContext","workspaceConfig","isFunction","addToEnvsNotImplementing","getFlatConfigWriters","promptForCleaning","filteredConfigWriters","uniq","patterns","currPaths","globby","sync","cwd","dot","onlyFiles","ignore","filteredPaths","fullPath","isBitGenerated","flat","envsNotImplementing","getEnvsNotImplementing","keys","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","Promise","all","f","fs","remove","provider","cli","loggerAspect","createLogger","WorkspaceConfigFilesAspect","registerService","WorkspaceConfigFilesService","workspaceConfigFilesMain","wsConfigCmd","WsConfigCmd","commands","WsConfigWriteCmd","WsConfigCleanCmd","WsConfigListCmd","register","exports","CLIAspect","WorkspaceAspect","EnvsAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["workspace-config-files.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { join, normalize } from 'path';\nimport globby from 'globby';\nimport chalk from 'chalk';\nimport { PromptCanceled } from '@teambit/legacy.cli.prompts';\nimport pMapSeries from 'p-map-series';\nimport { ConsumerNotFound } from '@teambit/legacy.consumer';\nimport yesno from 'yesno';\nimport { defaults, flatMap, isFunction, pick, uniq } from 'lodash';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport { Environment, EnvsAspect, ExecutionContext } from '@teambit/envs';\nimport type { EnvsMain } from '@teambit/envs';\nimport { Logger, LoggerAspect } from '@teambit/logger';\nimport type { LoggerMain } from '@teambit/logger';\nimport { WorkspaceConfigFilesAspect } from './workspace-config-files.aspect';\nimport { ConfigWriterEntry } from './config-writer-entry';\nimport { WsConfigCleanCmd, WsConfigCmd, WsConfigListCmd, WsConfigWriteCmd } from './ws-config.cmd';\nimport WriteConfigFilesFailed from './exceptions/write-failed';\nimport { WorkspaceConfigFilesService } from './workspace-config-files.service';\nimport {\n handleRealConfigFiles,\n handleExtendingConfigFiles,\n EnvsWrittenExtendingConfigFiles,\n EnvsWrittenRealConfigFiles,\n} from './writers';\n\n/**\n * Configs that can be configured in the workspace.jsonc file\n */\nexport type WorkspaceConfigFilesAspectConfig = {\n /**\n * The root directory for real configuration files\n * This is usually under node_modules\n */\n configsRootDir?: string;\n /**\n * The root directory for component files\n * We will hoist config files only up to this directory\n */\n componentsRootDir?: string;\n /**\n * Whether to use the default directory as components root dir for configuration files\n * This will take the config from:\n * \"teambit.workspace/workspace\": {\n * \"componentsRootDir\": \"bit-components/{scope}/{name}\"\n * }\n * it will take the constant part from it, up until the first {\n */\n useDefaultDirectory?: boolean;\n enableWorkspaceConfigWrite?: boolean;\n};\n\nexport type EnvConfigWriter = {\n envId: string;\n executionContext: ExecutionContext;\n configWriters: ConfigWriterEntry[];\n};\n\nexport type EnvConfigWriterEntry = {\n envId: string;\n configWriter: ConfigWriterEntry;\n executionContext: ExecutionContext;\n};\n\ntype WriterIdsToEnvEntriesMap = {\n [writerId: string]: EnvConfigWriterEntry[];\n};\n\nexport type EnvConfigWritersList = Array<EnvConfigWriter>;\n\nexport type CleanConfigFilesOptions = {\n silent?: boolean; // no prompt\n dryRun?: boolean;\n writers?: string[];\n};\n\nexport type WriteConfigFilesOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n throw?: boolean;\n writers?: string[];\n};\n\nexport type CompPathExtendingHashMap = { [compPath: string]: string };\n\nexport type EnvMapValue = { env: Environment; id: string[]; paths: string[] };\nexport type EnvCompsDirsMap = { [envId: string]: EnvMapValue };\n\nexport type OneConfigWriterIdResult = {\n writerId: string;\n totalWrittenFiles: number;\n realConfigFiles: EnvsWrittenRealConfigFiles;\n totalRealConfigFiles: number;\n extendingConfigFiles: EnvsWrittenExtendingConfigFiles;\n totalExtendingConfigFiles: number;\n};\n\nexport type WriteResults = {\n writersResult: OneConfigWriterIdResult[];\n totalWrittenFiles: number;\n totalRealConfigFiles: number;\n totalExtendingConfigFiles: number;\n};\n\nexport type WriteConfigFilesResult = {\n cleanResults?: string[];\n writeResults: WriteResults;\n wsDir: string;\n err?: Error;\n};\n\nexport class WorkspaceConfigFilesMain {\n private envsNotImplementing = {};\n\n constructor(\n private workspace: Workspace,\n private envs: EnvsMain,\n private logger: Logger,\n private config: WorkspaceConfigFilesAspectConfig\n ) {}\n\n /**\n * It writes the configuration files for the workspace\n * for example: tsconfig, eslint config and prettier config files.\n * @param {WriteConfigFilesOptions} options - WriteConfigFilesOptions = {}\n * @returns An object with the following properties:\n * - writeResults: An object with the following properties:\n * - aspectsWritersResults: An array of objects with the following properties:\n * - aspect: The aspect that was written\n * - totalWrittenFiles: The number of files that were written\n * - totalWrittenFiles: The total number of files that were written\n * - cleanResults: array of deleted paths\n */\n async writeConfigFiles(options: WriteConfigFilesOptions = {}): Promise<WriteConfigFilesResult> {\n if (!this.workspace) {\n throw new ConsumerNotFound();\n }\n const defaultOpts: WriteConfigFilesOptions = {\n clean: false,\n dedupe: false,\n silent: false,\n dryRun: false,\n throw: true,\n };\n const optionsWithDefaults = defaults(options, defaultOpts);\n const execContext = await this.getExecContext();\n\n let pathsToClean: string[] | undefined = [];\n let writeErr;\n let writeResults;\n try {\n if (optionsWithDefaults.clean) {\n pathsToClean = await this.calcPathsToClean({ writers: optionsWithDefaults.writers });\n }\n\n writeResults = await this.write(execContext, optionsWithDefaults);\n const allWrittenFiles = writeResults.writersResult.flatMap((writerResult) => {\n return writerResult.extendingConfigFiles.flatMap((extendingConfigFile) => {\n return extendingConfigFile.extendingConfigFile.filePaths;\n });\n });\n // Avoid delete and re-create files that were written by other config writers\n // instead of deleting at the beginning then write all\n // we write all and then delete the files that were not written by the config writers\n // This reduces the config files that re-created (as many times no changes needed)\n // which prevent issues with needing to restart the ts-server in the ide\n pathsToClean = pathsToClean.filter(\n (pathToClean) => !allWrittenFiles.includes(join(this.workspace.path, pathToClean))\n );\n await this.deleteFiles(pathsToClean);\n } catch (err) {\n this.logger.info('writeConfigFiles failed', err);\n if (optionsWithDefaults.throw) {\n throw new WriteConfigFilesFailed();\n }\n writeErr = err;\n }\n\n return { writeResults, cleanResults: pathsToClean, wsDir: this.workspace.path, err: writeErr };\n }\n\n /**\n * This will check the config.enableWorkspaceConfigWrite before writing the config files.\n */\n async writeConfigFilesIfEnabled(options: WriteConfigFilesOptions = {}): Promise<WriteConfigFilesResult | undefined> {\n const shouldWrite = this.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return undefined;\n return this.writeConfigFiles(options);\n }\n\n /**\n * It cleans (delete) the config files from the workspace.\n * This will check each file and will only delete it in case it was generated by bit\n * @param {CleanConfigFilesOptions} options - CleanConfigFilesOptions = {}\n * @returns An array of strings.\n */\n async cleanConfigFiles(options: CleanConfigFilesOptions = {}): Promise<string[]> {\n // const execContext = await this.getExecContext();\n if (!this.workspace) {\n throw new ConsumerNotFound();\n }\n const cleanResults = await this.clean(options);\n return cleanResults;\n }\n\n /**\n * The function checks if the auto writing of workspace configuration is enabled.\n * if it's enabled we will re-generate the configuration files upon bit create\n * @returns the boolean value of `!!this.config.enableWorkspaceConfigWrite`.\n */\n isWorkspaceConfigWriteEnabled() {\n return !!this.config.enableWorkspaceConfigWrite;\n }\n\n /**\n * It returns a list of all the config writers that have been registered with the config writer slot\n * @returns An array of objects with aspectId and configWriter properties.\n */\n async listConfigWriters(): Promise<EnvConfigWritersList> {\n if (!this.workspace) {\n throw new ConsumerNotFound();\n }\n const execContexts = await this.getExecContext();\n\n const result: EnvConfigWritersList = execContexts.map((executionContext) => {\n const configWriters = this.getConfigWriters(executionContext);\n return { envId: executionContext.envRuntime.id, executionContext, configWriters };\n });\n return result;\n }\n\n private groupByWriterId(writerList: EnvConfigWritersList): WriterIdsToEnvEntriesMap {\n return writerList.reduce((acc, envConfigWriter: EnvConfigWriter) => {\n envConfigWriter.configWriters.forEach((configWriter: ConfigWriterEntry) => {\n acc[configWriter.id] = acc[configWriter.id] || [];\n acc[configWriter.id].push({ configWriter, envId: envConfigWriter.envId });\n });\n return acc;\n }, {});\n }\n\n private async write(envsExecutionContext: ExecutionContext[], opts: WriteConfigFilesOptions): Promise<WriteResults> {\n const envCompDirsMap = this.getEnvComponentsDirsMap(envsExecutionContext);\n const configsRootDir = this.getConfigsRootDir();\n const componentsRootDir = this.getComponentsRootDir();\n const configWriters = await this.listConfigWriters();\n const writerIdsToEnvEntriesMap = this.groupByWriterId(configWriters);\n const filteredWriterIdsToEnvEntriesMap = opts.writers\n ? pick(writerIdsToEnvEntriesMap, opts.writers)\n : writerIdsToEnvEntriesMap;\n let totalRealConfigFiles = 0;\n let totalExtendingConfigFiles = 0;\n const results = await pMapSeries(\n Object.entries(filteredWriterIdsToEnvEntriesMap),\n async ([writerId, envEntries]) => {\n const oneResult = await this.handleOneIdWriter(\n writerId,\n envEntries,\n envCompDirsMap,\n configsRootDir,\n componentsRootDir,\n opts\n );\n totalRealConfigFiles += oneResult.totalRealConfigFiles;\n totalExtendingConfigFiles += oneResult.totalExtendingConfigFiles;\n return oneResult;\n }\n );\n\n const totalWrittenFiles = totalRealConfigFiles + totalExtendingConfigFiles;\n return { writersResult: results, totalWrittenFiles, totalRealConfigFiles, totalExtendingConfigFiles };\n }\n\n private async handleOneIdWriter(\n writerId: string,\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n componentsRootDir: string | undefined,\n opts: WriteConfigFilesOptions\n ): Promise<OneConfigWriterIdResult> {\n const writtenRealConfigFilesMap = await handleRealConfigFiles(\n envEntries,\n envCompsDirsMap,\n configsRootDir,\n this.workspace.path,\n opts\n );\n const writtenExtendingConfigFiles = await handleExtendingConfigFiles(\n envEntries,\n envCompsDirsMap,\n writtenRealConfigFilesMap,\n configsRootDir,\n componentsRootDir,\n this.workspace.path,\n opts\n );\n\n const writtenRealConfigFiles = Object.values(writtenRealConfigFilesMap);\n const totalRealConfigFiles = writtenRealConfigFiles.length;\n const totalExtendingConfigFiles = writtenExtendingConfigFiles.reduce(\n (acc, curr) => acc + curr.extendingConfigFile.filePaths.length,\n 0\n );\n const totalWrittenFiles = totalRealConfigFiles + totalExtendingConfigFiles;\n return {\n writerId,\n totalWrittenFiles,\n realConfigFiles: writtenRealConfigFiles,\n totalRealConfigFiles,\n extendingConfigFiles: writtenExtendingConfigFiles,\n totalExtendingConfigFiles,\n };\n }\n\n private getConfigsRootDir(): string {\n const userConfiguredDir = this.config.configsRootDir;\n return userConfiguredDir ? join(this.workspace.path, userConfiguredDir) : this.getCacheDir(this.workspace.path);\n }\n\n private getComponentsRootDirFromComponentsRootDir(): string | undefined {\n const componentsRootDir = this.config.componentsRootDir;\n if (!componentsRootDir) return undefined;\n // Remove leading './' or '/' and trailing slash\n const normalized = normalize(componentsRootDir)\n .replace(/^\\.?\\//, '')\n .replace(/\\/$/, '');\n return normalized;\n }\n\n private getComponentsRootDirFromDefaultDir(): string | undefined {\n if (!this.config.useDefaultDirectory) return undefined;\n const defaultDir = this.workspace.defaultDirectory;\n if (!defaultDir) return undefined;\n // get path until first dynamic segment (segment with {})\n const segments = defaultDir.split('/');\n const dynamicSegmentIndex = segments.findIndex((segment) => segment.startsWith('{'));\n if (dynamicSegmentIndex === -1) return defaultDir;\n return segments.slice(0, dynamicSegmentIndex).join('/');\n }\n\n private getComponentsRootDir(): string | undefined {\n const fromComponentsRootDir = this.getComponentsRootDirFromComponentsRootDir();\n if (fromComponentsRootDir) return fromComponentsRootDir;\n const fromDefaultDir = this.getComponentsRootDirFromDefaultDir();\n if (fromDefaultDir) return fromDefaultDir;\n }\n\n private getCacheDir(rootDir): string {\n return join(rootDir, 'node_modules', '.cache');\n }\n\n private async getExecContext(): Promise<ExecutionContext[]> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n return execContext;\n }\n\n private getEnvComponentsDirsMap(envsExecutionContext: ExecutionContext[]): EnvCompsDirsMap {\n const envCompDirsMap = envsExecutionContext.reduce((acc, envExecution) => {\n const envRuntime = envExecution.envRuntime;\n const envId = envRuntime.id.toString();\n const value = {\n id: envRuntime.id,\n env: envRuntime.env,\n paths: envRuntime.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n acc[envId] = value;\n return acc;\n }, {});\n return envCompDirsMap;\n }\n\n private getConfigWriters(envExecutionContext: ExecutionContext): ConfigWriterEntry[] {\n if (envExecutionContext.env.workspaceConfig && isFunction(envExecutionContext.env.workspaceConfig)) {\n return envExecutionContext.env.workspaceConfig();\n }\n this.addToEnvsNotImplementing(envExecutionContext.env.id);\n return [];\n }\n\n private getFlatConfigWriters(envsExecutionContext: ExecutionContext[]): ConfigWriterEntry[] {\n return flatMap(envsExecutionContext, (envExecutionContext) => {\n return this.getConfigWriters(envExecutionContext);\n });\n }\n\n /**\n * Clean config files written by the config-writers\n * @param envsExecutionContext\n * @param param1\n * @returns Array of paths of deleted config files\n */\n async clean({ dryRun, silent, writers }: WriteConfigFilesOptions): Promise<string[]> {\n const paths = await this.calcPathsToClean({ writers });\n if (dryRun) return paths;\n if (!silent) await this.promptForCleaning(paths);\n await this.deleteFiles(paths);\n return paths;\n }\n\n private async calcPathsToClean({ writers }: WriteConfigFilesOptions): Promise<string[]> {\n const execContext = await this.getExecContext();\n const configWriters = this.getFlatConfigWriters(execContext);\n const filteredConfigWriters = writers\n ? configWriters.filter((configWriter) => writers.includes(configWriter.id))\n : configWriters;\n\n const paths = uniq(\n filteredConfigWriters\n .map((configWriter) => {\n const patterns = configWriter.patterns;\n const currPaths = globby.sync(patterns, {\n cwd: this.workspace.path,\n dot: true,\n onlyFiles: true,\n ignore: ['**/node_modules/**'],\n });\n const filteredPaths = currPaths.filter((path) => {\n const fullPath = join(this.workspace.path, path);\n return configWriter.isBitGenerated ? configWriter.isBitGenerated(fullPath) : true;\n });\n return filteredPaths;\n })\n .flat()\n );\n return paths;\n }\n\n private addToEnvsNotImplementing(envId: string) {\n this.envsNotImplementing[envId] = true;\n }\n\n getEnvsNotImplementing() {\n return Object.keys(this.envsNotImplementing);\n }\n\n private async promptForCleaning(paths: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following files will be deleted:')}\n${paths.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(paths: string[]) {\n await Promise.all(paths.map((f) => fs.remove(join(this.workspace.path, f))));\n }\n\n static slots = [];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [CLIAspect, WorkspaceAspect, EnvsAspect, LoggerAspect];\n\n static runtime = MainRuntime;\n\n static defaultConfig: Partial<WorkspaceConfigFilesAspectConfig> = {\n enableWorkspaceConfigWrite: false,\n };\n\n static async provider(\n [cli, workspace, envs, loggerAspect]: [CLIMain, Workspace, EnvsMain, LoggerMain],\n config: WorkspaceConfigFilesAspectConfig\n ) {\n const logger = loggerAspect.createLogger(WorkspaceConfigFilesAspect.id);\n envs.registerService(new WorkspaceConfigFilesService(logger));\n\n const workspaceConfigFilesMain = new WorkspaceConfigFilesMain(workspace, envs, logger, config);\n const wsConfigCmd = new WsConfigCmd();\n wsConfigCmd.commands = [\n new WsConfigWriteCmd(workspaceConfigFilesMain),\n new WsConfigCleanCmd(workspaceConfigFilesMain),\n new WsConfigListCmd(workspaceConfigFilesMain),\n ];\n cli.register(wsConfigCmd);\n return workspaceConfigFilesMain;\n }\n}\n\nWorkspaceConfigFilesAspect.addRuntime(WorkspaceConfigFilesMain);\n\nexport default WorkspaceConfigFilesMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_path","_globby","_chalk","_legacyCli","_pMapSeries","_legacy","_yesno","_lodash","_cli","_workspace","_envs","_logger","_workspaceConfigFiles","_wsConfig","_writeFailed","_workspaceConfigFiles2","_writers","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","WorkspaceConfigFilesMain","constructor","workspace","envs","logger","config","writeConfigFiles","options","ConsumerNotFound","defaultOpts","clean","dedupe","silent","dryRun","throw","optionsWithDefaults","defaults","execContext","getExecContext","pathsToClean","writeErr","writeResults","calcPathsToClean","writers","write","allWrittenFiles","writersResult","flatMap","writerResult","extendingConfigFiles","extendingConfigFile","filePaths","filter","pathToClean","includes","join","path","deleteFiles","err","info","WriteConfigFilesFailed","cleanResults","wsDir","writeConfigFilesIfEnabled","shouldWrite","isWorkspaceConfigWriteEnabled","undefined","cleanConfigFiles","enableWorkspaceConfigWrite","listConfigWriters","execContexts","result","map","executionContext","configWriters","getConfigWriters","envId","envRuntime","id","groupByWriterId","writerList","reduce","acc","envConfigWriter","forEach","configWriter","push","envsExecutionContext","opts","envCompDirsMap","getEnvComponentsDirsMap","configsRootDir","getConfigsRootDir","componentsRootDir","getComponentsRootDir","writerIdsToEnvEntriesMap","filteredWriterIdsToEnvEntriesMap","pick","totalRealConfigFiles","totalExtendingConfigFiles","results","pMapSeries","entries","writerId","envEntries","oneResult","handleOneIdWriter","totalWrittenFiles","envCompsDirsMap","writtenRealConfigFilesMap","handleRealConfigFiles","writtenExtendingConfigFiles","handleExtendingConfigFiles","writtenRealConfigFiles","values","length","curr","realConfigFiles","userConfiguredDir","getCacheDir","getComponentsRootDirFromComponentsRootDir","normalized","normalize","replace","getComponentsRootDirFromDefaultDir","useDefaultDirectory","defaultDir","defaultDirectory","segments","split","dynamicSegmentIndex","findIndex","segment","startsWith","slice","fromComponentsRootDir","fromDefaultDir","rootDir","components","list","runtime","createEnvironment","getEnvExecutionContext","envExecution","toString","env","paths","c","componentDir","relative","envExecutionContext","workspaceConfig","isFunction","addToEnvsNotImplementing","getFlatConfigWriters","promptForCleaning","filteredConfigWriters","uniq","patterns","currPaths","globby","sync","cwd","dot","onlyFiles","ignore","filteredPaths","fullPath","isBitGenerated","flat","envsNotImplementing","getEnvsNotImplementing","keys","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","Promise","all","f","fs","remove","provider","cli","loggerAspect","createLogger","WorkspaceConfigFilesAspect","registerService","WorkspaceConfigFilesService","workspaceConfigFilesMain","wsConfigCmd","WsConfigCmd","commands","WsConfigWriteCmd","WsConfigCleanCmd","WsConfigListCmd","register","exports","CLIAspect","WorkspaceAspect","EnvsAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["workspace-config-files.main.runtime.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { join, normalize } from 'path';\nimport globby from 'globby';\nimport chalk from 'chalk';\nimport { PromptCanceled } from '@teambit/legacy.cli.prompts';\nimport pMapSeries from 'p-map-series';\nimport { ConsumerNotFound } from '@teambit/legacy.consumer';\nimport yesno from 'yesno';\nimport { defaults, flatMap, isFunction, pick, uniq } from 'lodash';\nimport type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { Workspace } from '@teambit/workspace';\nimport { EnvsAspect } from '@teambit/envs';\nimport type { EnvsMain, Environment, ExecutionContext } from '@teambit/envs';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { LoggerMain, Logger } from '@teambit/logger';\nimport { WorkspaceConfigFilesAspect } from './workspace-config-files.aspect';\nimport type { ConfigWriterEntry } from './config-writer-entry';\nimport { WsConfigCleanCmd, WsConfigCmd, WsConfigListCmd, WsConfigWriteCmd } from './ws-config.cmd';\nimport WriteConfigFilesFailed from './exceptions/write-failed';\nimport { WorkspaceConfigFilesService } from './workspace-config-files.service';\nimport type { EnvsWrittenExtendingConfigFiles, EnvsWrittenRealConfigFiles } from './writers';\nimport { handleRealConfigFiles, handleExtendingConfigFiles } from './writers';\n\n/**\n * Configs that can be configured in the workspace.jsonc file\n */\nexport type WorkspaceConfigFilesAspectConfig = {\n /**\n * The root directory for real configuration files\n * This is usually under node_modules\n */\n configsRootDir?: string;\n /**\n * The root directory for component files\n * We will hoist config files only up to this directory\n */\n componentsRootDir?: string;\n /**\n * Whether to use the default directory as components root dir for configuration files\n * This will take the config from:\n * \"teambit.workspace/workspace\": {\n * \"componentsRootDir\": \"bit-components/{scope}/{name}\"\n * }\n * it will take the constant part from it, up until the first {\n */\n useDefaultDirectory?: boolean;\n enableWorkspaceConfigWrite?: boolean;\n};\n\nexport type EnvConfigWriter = {\n envId: string;\n executionContext: ExecutionContext;\n configWriters: ConfigWriterEntry[];\n};\n\nexport type EnvConfigWriterEntry = {\n envId: string;\n configWriter: ConfigWriterEntry;\n executionContext: ExecutionContext;\n};\n\ntype WriterIdsToEnvEntriesMap = {\n [writerId: string]: EnvConfigWriterEntry[];\n};\n\nexport type EnvConfigWritersList = Array<EnvConfigWriter>;\n\nexport type CleanConfigFilesOptions = {\n silent?: boolean; // no prompt\n dryRun?: boolean;\n writers?: string[];\n};\n\nexport type WriteConfigFilesOptions = {\n clean?: boolean;\n silent?: boolean; // no prompt\n dedupe?: boolean;\n dryRun?: boolean;\n throw?: boolean;\n writers?: string[];\n};\n\nexport type CompPathExtendingHashMap = { [compPath: string]: string };\n\nexport type EnvMapValue = { env: Environment; id: string[]; paths: string[] };\nexport type EnvCompsDirsMap = { [envId: string]: EnvMapValue };\n\nexport type OneConfigWriterIdResult = {\n writerId: string;\n totalWrittenFiles: number;\n realConfigFiles: EnvsWrittenRealConfigFiles;\n totalRealConfigFiles: number;\n extendingConfigFiles: EnvsWrittenExtendingConfigFiles;\n totalExtendingConfigFiles: number;\n};\n\nexport type WriteResults = {\n writersResult: OneConfigWriterIdResult[];\n totalWrittenFiles: number;\n totalRealConfigFiles: number;\n totalExtendingConfigFiles: number;\n};\n\nexport type WriteConfigFilesResult = {\n cleanResults?: string[];\n writeResults: WriteResults;\n wsDir: string;\n err?: Error;\n};\n\nexport class WorkspaceConfigFilesMain {\n private envsNotImplementing = {};\n\n constructor(\n private workspace: Workspace,\n private envs: EnvsMain,\n private logger: Logger,\n private config: WorkspaceConfigFilesAspectConfig\n ) {}\n\n /**\n * It writes the configuration files for the workspace\n * for example: tsconfig, eslint config and prettier config files.\n * @param {WriteConfigFilesOptions} options - WriteConfigFilesOptions = {}\n * @returns An object with the following properties:\n * - writeResults: An object with the following properties:\n * - aspectsWritersResults: An array of objects with the following properties:\n * - aspect: The aspect that was written\n * - totalWrittenFiles: The number of files that were written\n * - totalWrittenFiles: The total number of files that were written\n * - cleanResults: array of deleted paths\n */\n async writeConfigFiles(options: WriteConfigFilesOptions = {}): Promise<WriteConfigFilesResult> {\n if (!this.workspace) {\n throw new ConsumerNotFound();\n }\n const defaultOpts: WriteConfigFilesOptions = {\n clean: false,\n dedupe: false,\n silent: false,\n dryRun: false,\n throw: true,\n };\n const optionsWithDefaults = defaults(options, defaultOpts);\n const execContext = await this.getExecContext();\n\n let pathsToClean: string[] | undefined = [];\n let writeErr;\n let writeResults;\n try {\n if (optionsWithDefaults.clean) {\n pathsToClean = await this.calcPathsToClean({ writers: optionsWithDefaults.writers });\n }\n\n writeResults = await this.write(execContext, optionsWithDefaults);\n const allWrittenFiles = writeResults.writersResult.flatMap((writerResult) => {\n return writerResult.extendingConfigFiles.flatMap((extendingConfigFile) => {\n return extendingConfigFile.extendingConfigFile.filePaths;\n });\n });\n // Avoid delete and re-create files that were written by other config writers\n // instead of deleting at the beginning then write all\n // we write all and then delete the files that were not written by the config writers\n // This reduces the config files that re-created (as many times no changes needed)\n // which prevent issues with needing to restart the ts-server in the ide\n pathsToClean = pathsToClean.filter(\n (pathToClean) => !allWrittenFiles.includes(join(this.workspace.path, pathToClean))\n );\n await this.deleteFiles(pathsToClean);\n } catch (err) {\n this.logger.info('writeConfigFiles failed', err);\n if (optionsWithDefaults.throw) {\n throw new WriteConfigFilesFailed();\n }\n writeErr = err;\n }\n\n return { writeResults, cleanResults: pathsToClean, wsDir: this.workspace.path, err: writeErr };\n }\n\n /**\n * This will check the config.enableWorkspaceConfigWrite before writing the config files.\n */\n async writeConfigFilesIfEnabled(options: WriteConfigFilesOptions = {}): Promise<WriteConfigFilesResult | undefined> {\n const shouldWrite = this.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return undefined;\n return this.writeConfigFiles(options);\n }\n\n /**\n * It cleans (delete) the config files from the workspace.\n * This will check each file and will only delete it in case it was generated by bit\n * @param {CleanConfigFilesOptions} options - CleanConfigFilesOptions = {}\n * @returns An array of strings.\n */\n async cleanConfigFiles(options: CleanConfigFilesOptions = {}): Promise<string[]> {\n // const execContext = await this.getExecContext();\n if (!this.workspace) {\n throw new ConsumerNotFound();\n }\n const cleanResults = await this.clean(options);\n return cleanResults;\n }\n\n /**\n * The function checks if the auto writing of workspace configuration is enabled.\n * if it's enabled we will re-generate the configuration files upon bit create\n * @returns the boolean value of `!!this.config.enableWorkspaceConfigWrite`.\n */\n isWorkspaceConfigWriteEnabled() {\n return !!this.config.enableWorkspaceConfigWrite;\n }\n\n /**\n * It returns a list of all the config writers that have been registered with the config writer slot\n * @returns An array of objects with aspectId and configWriter properties.\n */\n async listConfigWriters(): Promise<EnvConfigWritersList> {\n if (!this.workspace) {\n throw new ConsumerNotFound();\n }\n const execContexts = await this.getExecContext();\n\n const result: EnvConfigWritersList = execContexts.map((executionContext) => {\n const configWriters = this.getConfigWriters(executionContext);\n return { envId: executionContext.envRuntime.id, executionContext, configWriters };\n });\n return result;\n }\n\n private groupByWriterId(writerList: EnvConfigWritersList): WriterIdsToEnvEntriesMap {\n return writerList.reduce((acc, envConfigWriter: EnvConfigWriter) => {\n envConfigWriter.configWriters.forEach((configWriter: ConfigWriterEntry) => {\n acc[configWriter.id] = acc[configWriter.id] || [];\n acc[configWriter.id].push({ configWriter, envId: envConfigWriter.envId });\n });\n return acc;\n }, {});\n }\n\n private async write(envsExecutionContext: ExecutionContext[], opts: WriteConfigFilesOptions): Promise<WriteResults> {\n const envCompDirsMap = this.getEnvComponentsDirsMap(envsExecutionContext);\n const configsRootDir = this.getConfigsRootDir();\n const componentsRootDir = this.getComponentsRootDir();\n const configWriters = await this.listConfigWriters();\n const writerIdsToEnvEntriesMap = this.groupByWriterId(configWriters);\n const filteredWriterIdsToEnvEntriesMap = opts.writers\n ? pick(writerIdsToEnvEntriesMap, opts.writers)\n : writerIdsToEnvEntriesMap;\n let totalRealConfigFiles = 0;\n let totalExtendingConfigFiles = 0;\n const results = await pMapSeries(\n Object.entries(filteredWriterIdsToEnvEntriesMap),\n async ([writerId, envEntries]) => {\n const oneResult = await this.handleOneIdWriter(\n writerId,\n envEntries,\n envCompDirsMap,\n configsRootDir,\n componentsRootDir,\n opts\n );\n totalRealConfigFiles += oneResult.totalRealConfigFiles;\n totalExtendingConfigFiles += oneResult.totalExtendingConfigFiles;\n return oneResult;\n }\n );\n\n const totalWrittenFiles = totalRealConfigFiles + totalExtendingConfigFiles;\n return { writersResult: results, totalWrittenFiles, totalRealConfigFiles, totalExtendingConfigFiles };\n }\n\n private async handleOneIdWriter(\n writerId: string,\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n componentsRootDir: string | undefined,\n opts: WriteConfigFilesOptions\n ): Promise<OneConfigWriterIdResult> {\n const writtenRealConfigFilesMap = await handleRealConfigFiles(\n envEntries,\n envCompsDirsMap,\n configsRootDir,\n this.workspace.path,\n opts\n );\n const writtenExtendingConfigFiles = await handleExtendingConfigFiles(\n envEntries,\n envCompsDirsMap,\n writtenRealConfigFilesMap,\n configsRootDir,\n componentsRootDir,\n this.workspace.path,\n opts\n );\n\n const writtenRealConfigFiles = Object.values(writtenRealConfigFilesMap);\n const totalRealConfigFiles = writtenRealConfigFiles.length;\n const totalExtendingConfigFiles = writtenExtendingConfigFiles.reduce(\n (acc, curr) => acc + curr.extendingConfigFile.filePaths.length,\n 0\n );\n const totalWrittenFiles = totalRealConfigFiles + totalExtendingConfigFiles;\n return {\n writerId,\n totalWrittenFiles,\n realConfigFiles: writtenRealConfigFiles,\n totalRealConfigFiles,\n extendingConfigFiles: writtenExtendingConfigFiles,\n totalExtendingConfigFiles,\n };\n }\n\n private getConfigsRootDir(): string {\n const userConfiguredDir = this.config.configsRootDir;\n return userConfiguredDir ? join(this.workspace.path, userConfiguredDir) : this.getCacheDir(this.workspace.path);\n }\n\n private getComponentsRootDirFromComponentsRootDir(): string | undefined {\n const componentsRootDir = this.config.componentsRootDir;\n if (!componentsRootDir) return undefined;\n // Remove leading './' or '/' and trailing slash\n const normalized = normalize(componentsRootDir)\n .replace(/^\\.?\\//, '')\n .replace(/\\/$/, '');\n return normalized;\n }\n\n private getComponentsRootDirFromDefaultDir(): string | undefined {\n if (!this.config.useDefaultDirectory) return undefined;\n const defaultDir = this.workspace.defaultDirectory;\n if (!defaultDir) return undefined;\n // get path until first dynamic segment (segment with {})\n const segments = defaultDir.split('/');\n const dynamicSegmentIndex = segments.findIndex((segment) => segment.startsWith('{'));\n if (dynamicSegmentIndex === -1) return defaultDir;\n return segments.slice(0, dynamicSegmentIndex).join('/');\n }\n\n private getComponentsRootDir(): string | undefined {\n const fromComponentsRootDir = this.getComponentsRootDirFromComponentsRootDir();\n if (fromComponentsRootDir) return fromComponentsRootDir;\n const fromDefaultDir = this.getComponentsRootDirFromDefaultDir();\n if (fromDefaultDir) return fromDefaultDir;\n }\n\n private getCacheDir(rootDir): string {\n return join(rootDir, 'node_modules', '.cache');\n }\n\n private async getExecContext(): Promise<ExecutionContext[]> {\n const components = await this.workspace.list();\n const runtime = await this.envs.createEnvironment(components);\n const execContext = runtime.getEnvExecutionContext();\n return execContext;\n }\n\n private getEnvComponentsDirsMap(envsExecutionContext: ExecutionContext[]): EnvCompsDirsMap {\n const envCompDirsMap = envsExecutionContext.reduce((acc, envExecution) => {\n const envRuntime = envExecution.envRuntime;\n const envId = envRuntime.id.toString();\n const value = {\n id: envRuntime.id,\n env: envRuntime.env,\n paths: envRuntime.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n acc[envId] = value;\n return acc;\n }, {});\n return envCompDirsMap;\n }\n\n private getConfigWriters(envExecutionContext: ExecutionContext): ConfigWriterEntry[] {\n if (envExecutionContext.env.workspaceConfig && isFunction(envExecutionContext.env.workspaceConfig)) {\n return envExecutionContext.env.workspaceConfig();\n }\n this.addToEnvsNotImplementing(envExecutionContext.env.id);\n return [];\n }\n\n private getFlatConfigWriters(envsExecutionContext: ExecutionContext[]): ConfigWriterEntry[] {\n return flatMap(envsExecutionContext, (envExecutionContext) => {\n return this.getConfigWriters(envExecutionContext);\n });\n }\n\n /**\n * Clean config files written by the config-writers\n * @param envsExecutionContext\n * @param param1\n * @returns Array of paths of deleted config files\n */\n async clean({ dryRun, silent, writers }: WriteConfigFilesOptions): Promise<string[]> {\n const paths = await this.calcPathsToClean({ writers });\n if (dryRun) return paths;\n if (!silent) await this.promptForCleaning(paths);\n await this.deleteFiles(paths);\n return paths;\n }\n\n private async calcPathsToClean({ writers }: WriteConfigFilesOptions): Promise<string[]> {\n const execContext = await this.getExecContext();\n const configWriters = this.getFlatConfigWriters(execContext);\n const filteredConfigWriters = writers\n ? configWriters.filter((configWriter) => writers.includes(configWriter.id))\n : configWriters;\n\n const paths = uniq(\n filteredConfigWriters\n .map((configWriter) => {\n const patterns = configWriter.patterns;\n const currPaths = globby.sync(patterns, {\n cwd: this.workspace.path,\n dot: true,\n onlyFiles: true,\n ignore: ['**/node_modules/**'],\n });\n const filteredPaths = currPaths.filter((path) => {\n const fullPath = join(this.workspace.path, path);\n return configWriter.isBitGenerated ? configWriter.isBitGenerated(fullPath) : true;\n });\n return filteredPaths;\n })\n .flat()\n );\n return paths;\n }\n\n private addToEnvsNotImplementing(envId: string) {\n this.envsNotImplementing[envId] = true;\n }\n\n getEnvsNotImplementing() {\n return Object.keys(this.envsNotImplementing);\n }\n\n private async promptForCleaning(paths: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following files will be deleted:')}\n${paths.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(paths: string[]) {\n await Promise.all(paths.map((f) => fs.remove(join(this.workspace.path, f))));\n }\n\n static slots = [];\n // define your aspect dependencies here.\n // in case you need to use another aspect API.\n static dependencies = [CLIAspect, WorkspaceAspect, EnvsAspect, LoggerAspect];\n\n static runtime = MainRuntime;\n\n static defaultConfig: Partial<WorkspaceConfigFilesAspectConfig> = {\n enableWorkspaceConfigWrite: false,\n };\n\n static async provider(\n [cli, workspace, envs, loggerAspect]: [CLIMain, Workspace, EnvsMain, LoggerMain],\n config: WorkspaceConfigFilesAspectConfig\n ) {\n const logger = loggerAspect.createLogger(WorkspaceConfigFilesAspect.id);\n envs.registerService(new WorkspaceConfigFilesService(logger));\n\n const workspaceConfigFilesMain = new WorkspaceConfigFilesMain(workspace, envs, logger, config);\n const wsConfigCmd = new WsConfigCmd();\n wsConfigCmd.commands = [\n new WsConfigWriteCmd(workspaceConfigFilesMain),\n new WsConfigCleanCmd(workspaceConfigFilesMain),\n new WsConfigListCmd(workspaceConfigFilesMain),\n ];\n cli.register(wsConfigCmd);\n return workspaceConfigFilesMain;\n }\n}\n\nWorkspaceConfigFilesAspect.addRuntime(WorkspaceConfigFilesMain);\n\nexport default WorkspaceConfigFilesMain;\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { Logger } from '@teambit/logger';
2
- import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
- import { ConfigWriterEntry } from './config-writer-entry';
1
+ import type { Logger } from '@teambit/logger';
2
+ import type { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
+ import type { ConfigWriterEntry } from './config-writer-entry';
4
4
  export type PkgDescriptor = {
5
5
  id: string;
6
6
  displayName: string;
@@ -1 +1 @@
1
- {"version":3,"names":["WorkspaceConfigFilesService","constructor","logger","_defineProperty","transform","env","envContext","workspaceConfig","undefined","configWriterList","compute","Array","isArray","length","calcConfigFiles","exports"],"sources":["workspace-config-files.service.tsx"],"sourcesContent":["import { Logger } from '@teambit/logger';\nimport { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport { ConfigWriterList } from './config-writer-list';\nimport { ConfigWriterEntry } from './config-writer-entry';\n\nexport type PkgDescriptor = {\n id: string;\n displayName: string;\n config?: string;\n};\n\ntype PkgTransformationMap = ServiceTransformationMap & {\n workspaceConfig: () => ConfigWriterEntry[];\n};\n\nexport class WorkspaceConfigFilesService implements EnvService<any> {\n name = 'WorkspaceConfigFiles';\n\n constructor(private logger: Logger) {}\n\n transform(env: Env, envContext: EnvContext): PkgTransformationMap | undefined {\n // Old env\n if (!env?.workspaceConfig) {\n return undefined;\n }\n\n return {\n workspaceConfig: () => {\n const configWriterList: ConfigWriterList = env.workspaceConfig();\n if (!configWriterList) return [];\n if (!configWriterList.compute) {\n // This is a core env that doesn't use the ConfigWriterList but create the\n // ConfigWriterEntry directly.\n if (\n Array.isArray(configWriterList) &&\n configWriterList.length > 0 &&\n typeof configWriterList[0].calcConfigFiles === 'function'\n ) {\n return configWriterList;\n }\n return [];\n }\n return configWriterList?.compute(envContext);\n },\n };\n }\n}\n"],"mappings":";;;;;;;;;AAeO,MAAMA,2BAA2B,CAA4B;EAGlEC,WAAWA,CAASC,MAAc,EAAE;IAAA,KAAhBA,MAAc,GAAdA,MAAc;IAAAC,eAAA,eAF3B,sBAAsB;EAEQ;EAErCC,SAASA,CAACC,GAAQ,EAAEC,UAAsB,EAAoC;IAC5E;IACA,IAAI,CAACD,GAAG,EAAEE,eAAe,EAAE;MACzB,OAAOC,SAAS;IAClB;IAEA,OAAO;MACLD,eAAe,EAAEA,CAAA,KAAM;QACrB,MAAME,gBAAkC,GAAGJ,GAAG,CAACE,eAAe,CAAC,CAAC;QAChE,IAAI,CAACE,gBAAgB,EAAE,OAAO,EAAE;QAChC,IAAI,CAACA,gBAAgB,CAACC,OAAO,EAAE;UAC7B;UACA;UACA,IACEC,KAAK,CAACC,OAAO,CAACH,gBAAgB,CAAC,IAC/BA,gBAAgB,CAACI,MAAM,GAAG,CAAC,IAC3B,OAAOJ,gBAAgB,CAAC,CAAC,CAAC,CAACK,eAAe,KAAK,UAAU,EACzD;YACA,OAAOL,gBAAgB;UACzB;UACA,OAAO,EAAE;QACX;QACA,OAAOA,gBAAgB,EAAEC,OAAO,CAACJ,UAAU,CAAC;MAC9C;IACF,CAAC;EACH;AACF;AAACS,OAAA,CAAAf,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"names":["WorkspaceConfigFilesService","constructor","logger","_defineProperty","transform","env","envContext","workspaceConfig","undefined","configWriterList","compute","Array","isArray","length","calcConfigFiles","exports"],"sources":["workspace-config-files.service.tsx"],"sourcesContent":["import type { Logger } from '@teambit/logger';\nimport type { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport type { ConfigWriterList } from './config-writer-list';\nimport type { ConfigWriterEntry } from './config-writer-entry';\n\nexport type PkgDescriptor = {\n id: string;\n displayName: string;\n config?: string;\n};\n\ntype PkgTransformationMap = ServiceTransformationMap & {\n workspaceConfig: () => ConfigWriterEntry[];\n};\n\nexport class WorkspaceConfigFilesService implements EnvService<any> {\n name = 'WorkspaceConfigFiles';\n\n constructor(private logger: Logger) {}\n\n transform(env: Env, envContext: EnvContext): PkgTransformationMap | undefined {\n // Old env\n if (!env?.workspaceConfig) {\n return undefined;\n }\n\n return {\n workspaceConfig: () => {\n const configWriterList: ConfigWriterList = env.workspaceConfig();\n if (!configWriterList) return [];\n if (!configWriterList.compute) {\n // This is a core env that doesn't use the ConfigWriterList but create the\n // ConfigWriterEntry directly.\n if (\n Array.isArray(configWriterList) &&\n configWriterList.length > 0 &&\n typeof configWriterList[0].calcConfigFiles === 'function'\n ) {\n return configWriterList;\n }\n return [];\n }\n return configWriterList?.compute(envContext);\n },\n };\n }\n}\n"],"mappings":";;;;;;;;;AAeO,MAAMA,2BAA2B,CAA4B;EAGlEC,WAAWA,CAASC,MAAc,EAAE;IAAA,KAAhBA,MAAc,GAAdA,MAAc;IAAAC,eAAA,eAF3B,sBAAsB;EAEQ;EAErCC,SAASA,CAACC,GAAQ,EAAEC,UAAsB,EAAoC;IAC5E;IACA,IAAI,CAACD,GAAG,EAAEE,eAAe,EAAE;MACzB,OAAOC,SAAS;IAClB;IAEA,OAAO;MACLD,eAAe,EAAEA,CAAA,KAAM;QACrB,MAAME,gBAAkC,GAAGJ,GAAG,CAACE,eAAe,CAAC,CAAC;QAChE,IAAI,CAACE,gBAAgB,EAAE,OAAO,EAAE;QAChC,IAAI,CAACA,gBAAgB,CAACC,OAAO,EAAE;UAC7B;UACA;UACA,IACEC,KAAK,CAACC,OAAO,CAACH,gBAAgB,CAAC,IAC/BA,gBAAgB,CAACI,MAAM,GAAG,CAAC,IAC3B,OAAOJ,gBAAgB,CAAC,CAAC,CAAC,CAACK,eAAe,KAAK,UAAU,EACzD;YACA,OAAOL,gBAAgB;UACzB;UACA,OAAO,EAAE;QACX;QACA,OAAOA,gBAAgB,EAAEC,OAAO,CAACJ,UAAU,CAAC;MAC9C;IACF,CAAC;EACH;AACF;AAACS,OAAA,CAAAf,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { ExtendingConfigFile } from '../config-writer-entry';
2
- import { EnvCompsDirsMap, EnvConfigWriterEntry, WriteConfigFilesOptions } from '../workspace-config-files.main.runtime';
3
- import { WrittenRealConfigFilesByHash } from './real-config-files';
1
+ import type { ExtendingConfigFile } from '../config-writer-entry';
2
+ import type { EnvCompsDirsMap, EnvConfigWriterEntry, WriteConfigFilesOptions } from '../workspace-config-files.main.runtime';
3
+ import type { WrittenRealConfigFilesByHash } from './real-config-files';
4
4
  export type WrittenExtendingConfigFile = ExtendingConfigFile & {
5
5
  filePaths: string[];
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_normalizePath","data","_interopRequireDefault","require","_stringFormat","_toolboxCrypto","_fsExtra","_path","_pMapSeries","_lodash","_dedupPaths","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","handleExtendingConfigFiles","envEntries","envCompsDirsMap","writtenRealConfigFiles","configsRootDir","componentsRootDir","workspaceDir","opts","extendingConfigFilesMap","buildExtendingConfigFilesMap","fileHashPerDedupedPaths","dedupePaths","postProcessExtendingConfigFiles","envsWrittenExtendingConfigFiles","writeExtendingConfigFiles","allEnvsCalculatedExtendingConfigFiles","compact","pMapSeries","envConfigFileEntry","envMapVal","envId","writtenConfigFilesForEnv","getEnvOnlyWrittenRealConfigFiles","extendingConfigFile","generateOneExtendingConfigFile","undefined","indexExtendingConfigFiles","values","reduce","acc","envIds","writtenRealConfigFile","includes","writtenConfigFiles","envMapValue","configWriter","executionContext","args","generateExtendingFile","hash","sha1","content","useAbsPaths","multiEnvCalculatedExtendingConfigFiles","mergedConfigFiles","curr","currentValue","postProcessFunc","extendingConfigFileEntry","find","entry","dedupEntry","fileHashPerDedupedPath","fileHash","postProcessRes","paths","supportSpecificPathChange","path","currPath","newHash","JSON","parse","stringify","foundNewHash","finalResult","Promise","all","map","envsConfigFile","configFile","name","format","writtenPaths","filePath","join","targetPath","extendingTarget","normalize","relative","dirname","replace","dryRun","fs","outputFile","res","filePaths"],"sources":["extending-config-files.ts"],"sourcesContent":["import normalize from 'normalize-path';\nimport format from 'string-format';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport fs from 'fs-extra';\nimport { dirname, join, relative } from 'path';\nimport pMapSeries from 'p-map-series';\nimport { compact } from 'lodash';\nimport { ExtendingConfigFile } from '../config-writer-entry';\nimport { DedupedPaths, dedupePaths } from '../dedup-paths';\nimport {\n EnvCompsDirsMap,\n EnvConfigWriterEntry,\n EnvMapValue,\n WriteConfigFilesOptions,\n} from '../workspace-config-files.main.runtime';\nimport { WrittenConfigFile, WrittenRealConfigFilesByHash } from './real-config-files';\n\ntype EnvCalculatedExtendingConfigFile = {\n envId: string;\n extendingConfigFile: Required<ExtendingConfigFile>;\n};\nexport type WrittenExtendingConfigFile = ExtendingConfigFile & {\n filePaths: string[];\n};\nexport type EnvsWrittenExtendingConfigFile = { envIds: string[]; extendingConfigFile: WrittenExtendingConfigFile };\nexport type EnvsWrittenExtendingConfigFiles = Array<EnvsWrittenExtendingConfigFile>;\nexport type ExtendingConfigFilesMap = {\n [configFileHash: string]: {\n envIds: string[];\n extendingConfigFile: Required<ExtendingConfigFile>;\n };\n};\n\nexport async function handleExtendingConfigFiles(\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n writtenRealConfigFiles: WrittenRealConfigFilesByHash,\n configsRootDir: string,\n componentsRootDir: string | undefined,\n workspaceDir: string,\n opts: WriteConfigFilesOptions\n): Promise<EnvsWrittenExtendingConfigFiles> {\n const extendingConfigFilesMap = await buildExtendingConfigFilesMap(\n envEntries,\n writtenRealConfigFiles,\n envCompsDirsMap,\n configsRootDir,\n workspaceDir\n );\n const fileHashPerDedupedPaths = dedupePaths(extendingConfigFilesMap, envCompsDirsMap, componentsRootDir);\n await postProcessExtendingConfigFiles(\n envEntries,\n envCompsDirsMap,\n extendingConfigFilesMap,\n fileHashPerDedupedPaths,\n configsRootDir,\n workspaceDir\n );\n const envsWrittenExtendingConfigFiles = await writeExtendingConfigFiles(\n extendingConfigFilesMap,\n fileHashPerDedupedPaths,\n workspaceDir,\n opts\n );\n return envsWrittenExtendingConfigFiles;\n}\n\nasync function buildExtendingConfigFilesMap(\n envEntries: EnvConfigWriterEntry[],\n writtenRealConfigFiles: WrittenRealConfigFilesByHash,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n workspaceDir: string\n): Promise<ExtendingConfigFilesMap> {\n const allEnvsCalculatedExtendingConfigFiles: EnvCalculatedExtendingConfigFile[] = compact(\n await pMapSeries(envEntries, async (envConfigFileEntry) => {\n const envMapVal = envCompsDirsMap[envConfigFileEntry.envId];\n const writtenConfigFilesForEnv: WrittenConfigFile[] = getEnvOnlyWrittenRealConfigFiles(\n envConfigFileEntry.envId,\n writtenRealConfigFiles\n );\n const extendingConfigFile = generateOneExtendingConfigFile(\n writtenConfigFilesForEnv,\n envConfigFileEntry,\n envMapVal,\n configsRootDir,\n workspaceDir\n );\n if (!extendingConfigFile) {\n return undefined;\n }\n return {\n envId: envConfigFileEntry.envId,\n extendingConfigFile,\n };\n })\n );\n const extendingConfigFilesMap: ExtendingConfigFilesMap = indexExtendingConfigFiles(\n allEnvsCalculatedExtendingConfigFiles\n );\n return extendingConfigFilesMap;\n}\n\nfunction getEnvOnlyWrittenRealConfigFiles(\n envId: string,\n writtenRealConfigFiles: WrittenRealConfigFilesByHash\n): WrittenConfigFile[] {\n return Object.values(writtenRealConfigFiles).reduce((acc, { envIds, writtenRealConfigFile }) => {\n if (envIds.includes(envId)) {\n acc.push(writtenRealConfigFile);\n }\n return acc;\n }, [] as WrittenConfigFile[]);\n}\n\nfunction generateOneExtendingConfigFile(\n writtenConfigFiles: WrittenConfigFile[],\n envConfigFileEntry: EnvConfigWriterEntry,\n envMapValue: EnvMapValue,\n configsRootDir: string,\n workspaceDir: string\n): Required<ExtendingConfigFile> | undefined {\n const { configWriter, executionContext } = envConfigFileEntry;\n const args = {\n workspaceDir,\n configsRootDir,\n writtenConfigFiles,\n executionContext,\n envMapValue,\n };\n const extendingConfigFile = configWriter.generateExtendingFile(args);\n if (!extendingConfigFile) return undefined;\n const hash = extendingConfigFile.hash || sha1(extendingConfigFile.content);\n return {\n ...extendingConfigFile,\n useAbsPaths: !!extendingConfigFile.useAbsPaths,\n hash,\n };\n}\n\nfunction indexExtendingConfigFiles(\n multiEnvCalculatedExtendingConfigFiles: EnvCalculatedExtendingConfigFile[]\n): ExtendingConfigFilesMap {\n const mergedConfigFiles = multiEnvCalculatedExtendingConfigFiles.reduce(\n (acc, curr: EnvCalculatedExtendingConfigFile) => {\n const extendingConfigFile = curr.extendingConfigFile;\n const currentValue = acc[extendingConfigFile.hash];\n if (currentValue) {\n currentValue.envIds.push(curr.envId);\n } else {\n acc[extendingConfigFile.hash] = { envIds: [curr.envId], extendingConfigFile };\n }\n return acc;\n },\n {}\n );\n return mergedConfigFiles;\n}\n\nasync function postProcessExtendingConfigFiles(\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n fileHashPerDedupedPaths: DedupedPaths,\n configsRootDir: string,\n workspaceDir: string\n) {\n await pMapSeries(envEntries, async (envConfigFileEntry) => {\n const postProcessFunc = envConfigFileEntry.configWriter.postProcessExtendingConfigFiles;\n if (!postProcessFunc) {\n return undefined;\n }\n const envMapVal = envCompsDirsMap[envConfigFileEntry.envId];\n const extendingConfigFileEntry = Object.values(extendingConfigFilesMap).find((entry) => {\n return entry.envIds.includes(envConfigFileEntry.envId);\n });\n if (!extendingConfigFileEntry) {\n return undefined;\n }\n const dedupEntry = fileHashPerDedupedPaths.find((fileHashPerDedupedPath) => {\n return fileHashPerDedupedPath.fileHash === extendingConfigFileEntry.extendingConfigFile.hash;\n });\n if (!dedupEntry) {\n return undefined;\n }\n\n const postProcessRes = await postProcessFunc({\n configsRootDir,\n extendingConfigFile: extendingConfigFileEntry.extendingConfigFile,\n envMapValue: envMapVal,\n workspaceDir,\n paths: dedupEntry.paths,\n supportSpecificPathChange: true,\n });\n if (!postProcessRes) {\n return undefined;\n }\n if (typeof postProcessRes === 'string') {\n extendingConfigFileEntry.extendingConfigFile.content = postProcessRes;\n return undefined;\n }\n postProcessRes.forEach(({ path, content }) => {\n // Remove it from the current entry\n dedupEntry.paths = dedupEntry.paths.filter((currPath) => currPath !== path);\n const newHash = sha1(content);\n extendingConfigFilesMap[newHash] = JSON.parse(JSON.stringify(extendingConfigFileEntry));\n extendingConfigFilesMap[newHash].extendingConfigFile.content = content;\n const foundNewHash = fileHashPerDedupedPaths.find((entry) => entry.fileHash === newHash);\n if (foundNewHash) {\n foundNewHash.paths.push(path);\n } else {\n fileHashPerDedupedPaths.push({ fileHash: newHash, paths: [path] });\n }\n });\n return undefined;\n });\n}\n\nasync function writeExtendingConfigFiles(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n fileHashPerDedupedPaths: DedupedPaths,\n workspaceDir: string,\n opts: WriteConfigFilesOptions\n): Promise<EnvsWrittenExtendingConfigFiles> {\n const finalResult: EnvsWrittenExtendingConfigFiles = await Promise.all(\n fileHashPerDedupedPaths.map(async ({ fileHash, paths }) => {\n const envsConfigFile = extendingConfigFilesMap[fileHash];\n const configFile = envsConfigFile.extendingConfigFile;\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const writtenPaths = await Promise.all(\n paths.map(async (path) => {\n const filePath = join(workspaceDir, path, name);\n const targetPath = configFile.useAbsPaths\n ? configFile.extendingTarget.filePath\n : normalize(`./${relative(dirname(filePath), configFile.extendingTarget.filePath)}`);\n const content = configFile.content.replace(`{${configFile.extendingTarget.name}}`, targetPath);\n if (!opts.dryRun) {\n await fs.outputFile(filePath, content);\n }\n return filePath;\n })\n );\n const res: EnvsWrittenExtendingConfigFile = {\n envIds: envsConfigFile.envIds,\n extendingConfigFile: {\n name,\n hash,\n content: configFile.content,\n extendingTarget: configFile.extendingTarget,\n filePaths: writtenPaths,\n },\n };\n return res;\n })\n );\n return finalResult;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_normalizePath","data","_interopRequireDefault","require","_stringFormat","_toolboxCrypto","_fsExtra","_path","_pMapSeries","_lodash","_dedupPaths","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","handleExtendingConfigFiles","envEntries","envCompsDirsMap","writtenRealConfigFiles","configsRootDir","componentsRootDir","workspaceDir","opts","extendingConfigFilesMap","buildExtendingConfigFilesMap","fileHashPerDedupedPaths","dedupePaths","postProcessExtendingConfigFiles","envsWrittenExtendingConfigFiles","writeExtendingConfigFiles","allEnvsCalculatedExtendingConfigFiles","compact","pMapSeries","envConfigFileEntry","envMapVal","envId","writtenConfigFilesForEnv","getEnvOnlyWrittenRealConfigFiles","extendingConfigFile","generateOneExtendingConfigFile","undefined","indexExtendingConfigFiles","values","reduce","acc","envIds","writtenRealConfigFile","includes","writtenConfigFiles","envMapValue","configWriter","executionContext","args","generateExtendingFile","hash","sha1","content","useAbsPaths","multiEnvCalculatedExtendingConfigFiles","mergedConfigFiles","curr","currentValue","postProcessFunc","extendingConfigFileEntry","find","entry","dedupEntry","fileHashPerDedupedPath","fileHash","postProcessRes","paths","supportSpecificPathChange","path","currPath","newHash","JSON","parse","stringify","foundNewHash","finalResult","Promise","all","map","envsConfigFile","configFile","name","format","writtenPaths","filePath","join","targetPath","extendingTarget","normalize","relative","dirname","replace","dryRun","fs","outputFile","res","filePaths"],"sources":["extending-config-files.ts"],"sourcesContent":["import normalize from 'normalize-path';\nimport format from 'string-format';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport fs from 'fs-extra';\nimport { dirname, join, relative } from 'path';\nimport pMapSeries from 'p-map-series';\nimport { compact } from 'lodash';\nimport type { ExtendingConfigFile } from '../config-writer-entry';\nimport type { DedupedPaths } from '../dedup-paths';\nimport { dedupePaths } from '../dedup-paths';\nimport type {\n EnvCompsDirsMap,\n EnvConfigWriterEntry,\n EnvMapValue,\n WriteConfigFilesOptions,\n} from '../workspace-config-files.main.runtime';\nimport type { WrittenConfigFile, WrittenRealConfigFilesByHash } from './real-config-files';\n\ntype EnvCalculatedExtendingConfigFile = {\n envId: string;\n extendingConfigFile: Required<ExtendingConfigFile>;\n};\nexport type WrittenExtendingConfigFile = ExtendingConfigFile & {\n filePaths: string[];\n};\nexport type EnvsWrittenExtendingConfigFile = { envIds: string[]; extendingConfigFile: WrittenExtendingConfigFile };\nexport type EnvsWrittenExtendingConfigFiles = Array<EnvsWrittenExtendingConfigFile>;\nexport type ExtendingConfigFilesMap = {\n [configFileHash: string]: {\n envIds: string[];\n extendingConfigFile: Required<ExtendingConfigFile>;\n };\n};\n\nexport async function handleExtendingConfigFiles(\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n writtenRealConfigFiles: WrittenRealConfigFilesByHash,\n configsRootDir: string,\n componentsRootDir: string | undefined,\n workspaceDir: string,\n opts: WriteConfigFilesOptions\n): Promise<EnvsWrittenExtendingConfigFiles> {\n const extendingConfigFilesMap = await buildExtendingConfigFilesMap(\n envEntries,\n writtenRealConfigFiles,\n envCompsDirsMap,\n configsRootDir,\n workspaceDir\n );\n const fileHashPerDedupedPaths = dedupePaths(extendingConfigFilesMap, envCompsDirsMap, componentsRootDir);\n await postProcessExtendingConfigFiles(\n envEntries,\n envCompsDirsMap,\n extendingConfigFilesMap,\n fileHashPerDedupedPaths,\n configsRootDir,\n workspaceDir\n );\n const envsWrittenExtendingConfigFiles = await writeExtendingConfigFiles(\n extendingConfigFilesMap,\n fileHashPerDedupedPaths,\n workspaceDir,\n opts\n );\n return envsWrittenExtendingConfigFiles;\n}\n\nasync function buildExtendingConfigFilesMap(\n envEntries: EnvConfigWriterEntry[],\n writtenRealConfigFiles: WrittenRealConfigFilesByHash,\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n workspaceDir: string\n): Promise<ExtendingConfigFilesMap> {\n const allEnvsCalculatedExtendingConfigFiles: EnvCalculatedExtendingConfigFile[] = compact(\n await pMapSeries(envEntries, async (envConfigFileEntry) => {\n const envMapVal = envCompsDirsMap[envConfigFileEntry.envId];\n const writtenConfigFilesForEnv: WrittenConfigFile[] = getEnvOnlyWrittenRealConfigFiles(\n envConfigFileEntry.envId,\n writtenRealConfigFiles\n );\n const extendingConfigFile = generateOneExtendingConfigFile(\n writtenConfigFilesForEnv,\n envConfigFileEntry,\n envMapVal,\n configsRootDir,\n workspaceDir\n );\n if (!extendingConfigFile) {\n return undefined;\n }\n return {\n envId: envConfigFileEntry.envId,\n extendingConfigFile,\n };\n })\n );\n const extendingConfigFilesMap: ExtendingConfigFilesMap = indexExtendingConfigFiles(\n allEnvsCalculatedExtendingConfigFiles\n );\n return extendingConfigFilesMap;\n}\n\nfunction getEnvOnlyWrittenRealConfigFiles(\n envId: string,\n writtenRealConfigFiles: WrittenRealConfigFilesByHash\n): WrittenConfigFile[] {\n return Object.values(writtenRealConfigFiles).reduce((acc, { envIds, writtenRealConfigFile }) => {\n if (envIds.includes(envId)) {\n acc.push(writtenRealConfigFile);\n }\n return acc;\n }, [] as WrittenConfigFile[]);\n}\n\nfunction generateOneExtendingConfigFile(\n writtenConfigFiles: WrittenConfigFile[],\n envConfigFileEntry: EnvConfigWriterEntry,\n envMapValue: EnvMapValue,\n configsRootDir: string,\n workspaceDir: string\n): Required<ExtendingConfigFile> | undefined {\n const { configWriter, executionContext } = envConfigFileEntry;\n const args = {\n workspaceDir,\n configsRootDir,\n writtenConfigFiles,\n executionContext,\n envMapValue,\n };\n const extendingConfigFile = configWriter.generateExtendingFile(args);\n if (!extendingConfigFile) return undefined;\n const hash = extendingConfigFile.hash || sha1(extendingConfigFile.content);\n return {\n ...extendingConfigFile,\n useAbsPaths: !!extendingConfigFile.useAbsPaths,\n hash,\n };\n}\n\nfunction indexExtendingConfigFiles(\n multiEnvCalculatedExtendingConfigFiles: EnvCalculatedExtendingConfigFile[]\n): ExtendingConfigFilesMap {\n const mergedConfigFiles = multiEnvCalculatedExtendingConfigFiles.reduce(\n (acc, curr: EnvCalculatedExtendingConfigFile) => {\n const extendingConfigFile = curr.extendingConfigFile;\n const currentValue = acc[extendingConfigFile.hash];\n if (currentValue) {\n currentValue.envIds.push(curr.envId);\n } else {\n acc[extendingConfigFile.hash] = { envIds: [curr.envId], extendingConfigFile };\n }\n return acc;\n },\n {}\n );\n return mergedConfigFiles;\n}\n\nasync function postProcessExtendingConfigFiles(\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n fileHashPerDedupedPaths: DedupedPaths,\n configsRootDir: string,\n workspaceDir: string\n) {\n await pMapSeries(envEntries, async (envConfigFileEntry) => {\n const postProcessFunc = envConfigFileEntry.configWriter.postProcessExtendingConfigFiles;\n if (!postProcessFunc) {\n return undefined;\n }\n const envMapVal = envCompsDirsMap[envConfigFileEntry.envId];\n const extendingConfigFileEntry = Object.values(extendingConfigFilesMap).find((entry) => {\n return entry.envIds.includes(envConfigFileEntry.envId);\n });\n if (!extendingConfigFileEntry) {\n return undefined;\n }\n const dedupEntry = fileHashPerDedupedPaths.find((fileHashPerDedupedPath) => {\n return fileHashPerDedupedPath.fileHash === extendingConfigFileEntry.extendingConfigFile.hash;\n });\n if (!dedupEntry) {\n return undefined;\n }\n\n const postProcessRes = await postProcessFunc({\n configsRootDir,\n extendingConfigFile: extendingConfigFileEntry.extendingConfigFile,\n envMapValue: envMapVal,\n workspaceDir,\n paths: dedupEntry.paths,\n supportSpecificPathChange: true,\n });\n if (!postProcessRes) {\n return undefined;\n }\n if (typeof postProcessRes === 'string') {\n extendingConfigFileEntry.extendingConfigFile.content = postProcessRes;\n return undefined;\n }\n postProcessRes.forEach(({ path, content }) => {\n // Remove it from the current entry\n dedupEntry.paths = dedupEntry.paths.filter((currPath) => currPath !== path);\n const newHash = sha1(content);\n extendingConfigFilesMap[newHash] = JSON.parse(JSON.stringify(extendingConfigFileEntry));\n extendingConfigFilesMap[newHash].extendingConfigFile.content = content;\n const foundNewHash = fileHashPerDedupedPaths.find((entry) => entry.fileHash === newHash);\n if (foundNewHash) {\n foundNewHash.paths.push(path);\n } else {\n fileHashPerDedupedPaths.push({ fileHash: newHash, paths: [path] });\n }\n });\n return undefined;\n });\n}\n\nasync function writeExtendingConfigFiles(\n extendingConfigFilesMap: ExtendingConfigFilesMap,\n fileHashPerDedupedPaths: DedupedPaths,\n workspaceDir: string,\n opts: WriteConfigFilesOptions\n): Promise<EnvsWrittenExtendingConfigFiles> {\n const finalResult: EnvsWrittenExtendingConfigFiles = await Promise.all(\n fileHashPerDedupedPaths.map(async ({ fileHash, paths }) => {\n const envsConfigFile = extendingConfigFilesMap[fileHash];\n const configFile = envsConfigFile.extendingConfigFile;\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const writtenPaths = await Promise.all(\n paths.map(async (path) => {\n const filePath = join(workspaceDir, path, name);\n const targetPath = configFile.useAbsPaths\n ? configFile.extendingTarget.filePath\n : normalize(`./${relative(dirname(filePath), configFile.extendingTarget.filePath)}`);\n const content = configFile.content.replace(`{${configFile.extendingTarget.name}}`, targetPath);\n if (!opts.dryRun) {\n await fs.outputFile(filePath, content);\n }\n return filePath;\n })\n );\n const res: EnvsWrittenExtendingConfigFile = {\n envIds: envsConfigFile.envIds,\n extendingConfigFile: {\n name,\n hash,\n content: configFile.content,\n extendingTarget: configFile.extendingTarget,\n filePaths: writtenPaths,\n },\n };\n return res;\n })\n );\n return finalResult;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { ConfigFile } from '../config-writer-entry';
2
- import { EnvCompsDirsMap, EnvConfigWriterEntry, WriteConfigFilesOptions } from '../workspace-config-files.main.runtime';
1
+ import type { ConfigFile } from '../config-writer-entry';
2
+ import type { EnvCompsDirsMap, EnvConfigWriterEntry, WriteConfigFilesOptions } from '../workspace-config-files.main.runtime';
3
3
  export type EnvsWrittenRealConfigFiles = Array<EnvsWrittenRealConfigFile>;
4
4
  export type EnvsWrittenRealConfigFile = {
5
5
  envIds: string[];
@@ -1 +1 @@
1
- {"version":3,"names":["_stringFormat","data","_interopRequireDefault","require","_toolboxCrypto","_fsExtra","_path","_pMapSeries","_lodash","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","handleRealConfigFiles","envEntries","envCompsDirsMap","configsRootDir","workspaceDir","opts","allEnvsCalculatedRealConfigFiles","pMapSeries","envConfigFileEntry","envMapVal","envId","realConfigFiles","calculateOneEnvRealConfigFiles","realConfigFilesWithHash","ensureHashOnConfigFiles","compact","mergeFunc","find","envEntry","configWriter","mergeConfigFiles","mergedRealConfigFiles","mergeRealConfigFiles","writtenConfigFilesMap","Promise","all","entries","map","hash","envIds","realConfigFile","writtenRealConfigFile","writeConfigFile","configFiles","configFile","sha1","content","envMapValue","executionContext","calculatedConfigFiles","calcConfigFiles","multiEnvCalculatedRealConfigFiles","mergedConfigFiles","reduce","acc","curr","currentValue","mergedConfigFileContent","name","format","filePath","join","dryRun","fs","outputFile","res"],"sources":["real-config-files.ts"],"sourcesContent":["import format from 'string-format';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport fs from 'fs-extra';\nimport { join } from 'path';\nimport pMapSeries from 'p-map-series';\nimport { compact } from 'lodash';\nimport { ConfigFile, MergeConfigFilesFunc } from '../config-writer-entry';\nimport {\n EnvCompsDirsMap,\n EnvConfigWriterEntry,\n EnvMapValue,\n WriteConfigFilesOptions,\n} from '../workspace-config-files.main.runtime';\n\ntype MergedRealConfigFilesByHash = {\n [hash: string]: {\n envIds: string[];\n realConfigFile: Required<ConfigFile>;\n };\n};\n\nexport type EnvsWrittenRealConfigFiles = Array<EnvsWrittenRealConfigFile>;\n\nexport type EnvsWrittenRealConfigFile = {\n envIds: string[];\n writtenRealConfigFile: WrittenConfigFile;\n};\n\nexport type WrittenRealConfigFilesByHash = {\n [hash: string]: EnvsWrittenRealConfigFile;\n};\n\nexport type WrittenConfigFile = Required<ConfigFile> & {\n filePath: string;\n};\n\ntype EnvCalculatedRealConfigFiles = {\n envId: string;\n realConfigFiles: Required<ConfigFile>[];\n};\n\nexport async function handleRealConfigFiles(\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n workspaceDir: string,\n opts: WriteConfigFilesOptions\n): Promise<WrittenRealConfigFilesByHash> {\n const allEnvsCalculatedRealConfigFiles: EnvCalculatedRealConfigFiles[] = await pMapSeries(\n envEntries,\n async (envConfigFileEntry) => {\n const envMapVal = envCompsDirsMap[envConfigFileEntry.envId];\n const realConfigFiles = await calculateOneEnvRealConfigFiles(\n envConfigFileEntry,\n envMapVal,\n configsRootDir,\n workspaceDir\n );\n const realConfigFilesWithHash = ensureHashOnConfigFiles(compact(realConfigFiles));\n return {\n envId: envConfigFileEntry.envId,\n realConfigFiles: realConfigFilesWithHash,\n };\n }\n );\n // Find the first merge function exists\n const mergeFunc = envEntries.find((envEntry) => !!envEntry.configWriter.mergeConfigFiles)?.configWriter\n .mergeConfigFiles;\n const mergedRealConfigFiles = mergeRealConfigFiles(allEnvsCalculatedRealConfigFiles, mergeFunc);\n const writtenConfigFilesMap: WrittenRealConfigFilesByHash = {};\n await Promise.all(\n Object.entries(mergedRealConfigFiles).map(async ([hash, { envIds, realConfigFile }]) => {\n const writtenRealConfigFile = await writeConfigFile(realConfigFile, configsRootDir, opts);\n writtenConfigFilesMap[hash] = {\n envIds,\n writtenRealConfigFile,\n };\n })\n );\n\n return writtenConfigFilesMap;\n}\n\nfunction ensureHashOnConfigFiles(configFiles: ConfigFile[]): Array<Required<ConfigFile>> {\n return configFiles.map((configFile): Required<ConfigFile> => {\n if (!configFile.hash) {\n const hash = sha1(configFile.content);\n return { ...configFile, hash };\n }\n return configFile as Required<ConfigFile>;\n });\n}\n\nasync function calculateOneEnvRealConfigFiles(\n envConfigFileEntry: EnvConfigWriterEntry,\n envMapValue: EnvMapValue,\n configsRootDir: string,\n workspaceDir: string\n) {\n const { configWriter, executionContext } = envConfigFileEntry;\n const calculatedConfigFiles = configWriter.calcConfigFiles(\n executionContext,\n envMapValue,\n configsRootDir,\n workspaceDir\n );\n return calculatedConfigFiles;\n}\n\nfunction mergeRealConfigFiles(\n multiEnvCalculatedRealConfigFiles: EnvCalculatedRealConfigFiles[],\n mergeFunc?: MergeConfigFilesFunc\n): MergedRealConfigFilesByHash {\n const mergedConfigFiles = multiEnvCalculatedRealConfigFiles.reduce((acc, curr: EnvCalculatedRealConfigFiles) => {\n curr.realConfigFiles.forEach((realConfigFile) => {\n const currentValue = acc[realConfigFile.hash];\n if (currentValue) {\n currentValue.envIds.push(curr.envId);\n if (currentValue && mergeFunc) {\n const mergedConfigFileContent = mergeFunc(currentValue.realConfigFile, realConfigFile);\n currentValue.realConfigFile.content = mergedConfigFileContent;\n realConfigFile.content = mergedConfigFileContent;\n acc[realConfigFile.hash].realConfigFile = realConfigFile;\n }\n } else {\n acc[realConfigFile.hash] = { envIds: [curr.envId], realConfigFile };\n }\n });\n return acc;\n }, {});\n return mergedConfigFiles;\n}\n\nasync function writeConfigFile(\n configFile: ConfigFile,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n): Promise<WrittenConfigFile> {\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const filePath = join(configsRootDir, name);\n if (!opts.dryRun) {\n // const exists = await fs.pathExists(filePath);\n // if (!exists) {\n await fs.outputFile(filePath, configFile.content);\n // }\n }\n const res = {\n name,\n hash,\n filePath,\n content: configFile.content,\n };\n return res;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_stringFormat","data","_interopRequireDefault","require","_toolboxCrypto","_fsExtra","_path","_pMapSeries","_lodash","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","handleRealConfigFiles","envEntries","envCompsDirsMap","configsRootDir","workspaceDir","opts","allEnvsCalculatedRealConfigFiles","pMapSeries","envConfigFileEntry","envMapVal","envId","realConfigFiles","calculateOneEnvRealConfigFiles","realConfigFilesWithHash","ensureHashOnConfigFiles","compact","mergeFunc","find","envEntry","configWriter","mergeConfigFiles","mergedRealConfigFiles","mergeRealConfigFiles","writtenConfigFilesMap","Promise","all","entries","map","hash","envIds","realConfigFile","writtenRealConfigFile","writeConfigFile","configFiles","configFile","sha1","content","envMapValue","executionContext","calculatedConfigFiles","calcConfigFiles","multiEnvCalculatedRealConfigFiles","mergedConfigFiles","reduce","acc","curr","currentValue","mergedConfigFileContent","name","format","filePath","join","dryRun","fs","outputFile","res"],"sources":["real-config-files.ts"],"sourcesContent":["import format from 'string-format';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport fs from 'fs-extra';\nimport { join } from 'path';\nimport pMapSeries from 'p-map-series';\nimport { compact } from 'lodash';\nimport type { ConfigFile, MergeConfigFilesFunc } from '../config-writer-entry';\nimport type {\n EnvCompsDirsMap,\n EnvConfigWriterEntry,\n EnvMapValue,\n WriteConfigFilesOptions,\n} from '../workspace-config-files.main.runtime';\n\ntype MergedRealConfigFilesByHash = {\n [hash: string]: {\n envIds: string[];\n realConfigFile: Required<ConfigFile>;\n };\n};\n\nexport type EnvsWrittenRealConfigFiles = Array<EnvsWrittenRealConfigFile>;\n\nexport type EnvsWrittenRealConfigFile = {\n envIds: string[];\n writtenRealConfigFile: WrittenConfigFile;\n};\n\nexport type WrittenRealConfigFilesByHash = {\n [hash: string]: EnvsWrittenRealConfigFile;\n};\n\nexport type WrittenConfigFile = Required<ConfigFile> & {\n filePath: string;\n};\n\ntype EnvCalculatedRealConfigFiles = {\n envId: string;\n realConfigFiles: Required<ConfigFile>[];\n};\n\nexport async function handleRealConfigFiles(\n envEntries: EnvConfigWriterEntry[],\n envCompsDirsMap: EnvCompsDirsMap,\n configsRootDir: string,\n workspaceDir: string,\n opts: WriteConfigFilesOptions\n): Promise<WrittenRealConfigFilesByHash> {\n const allEnvsCalculatedRealConfigFiles: EnvCalculatedRealConfigFiles[] = await pMapSeries(\n envEntries,\n async (envConfigFileEntry) => {\n const envMapVal = envCompsDirsMap[envConfigFileEntry.envId];\n const realConfigFiles = await calculateOneEnvRealConfigFiles(\n envConfigFileEntry,\n envMapVal,\n configsRootDir,\n workspaceDir\n );\n const realConfigFilesWithHash = ensureHashOnConfigFiles(compact(realConfigFiles));\n return {\n envId: envConfigFileEntry.envId,\n realConfigFiles: realConfigFilesWithHash,\n };\n }\n );\n // Find the first merge function exists\n const mergeFunc = envEntries.find((envEntry) => !!envEntry.configWriter.mergeConfigFiles)?.configWriter\n .mergeConfigFiles;\n const mergedRealConfigFiles = mergeRealConfigFiles(allEnvsCalculatedRealConfigFiles, mergeFunc);\n const writtenConfigFilesMap: WrittenRealConfigFilesByHash = {};\n await Promise.all(\n Object.entries(mergedRealConfigFiles).map(async ([hash, { envIds, realConfigFile }]) => {\n const writtenRealConfigFile = await writeConfigFile(realConfigFile, configsRootDir, opts);\n writtenConfigFilesMap[hash] = {\n envIds,\n writtenRealConfigFile,\n };\n })\n );\n\n return writtenConfigFilesMap;\n}\n\nfunction ensureHashOnConfigFiles(configFiles: ConfigFile[]): Array<Required<ConfigFile>> {\n return configFiles.map((configFile): Required<ConfigFile> => {\n if (!configFile.hash) {\n const hash = sha1(configFile.content);\n return { ...configFile, hash };\n }\n return configFile as Required<ConfigFile>;\n });\n}\n\nasync function calculateOneEnvRealConfigFiles(\n envConfigFileEntry: EnvConfigWriterEntry,\n envMapValue: EnvMapValue,\n configsRootDir: string,\n workspaceDir: string\n) {\n const { configWriter, executionContext } = envConfigFileEntry;\n const calculatedConfigFiles = configWriter.calcConfigFiles(\n executionContext,\n envMapValue,\n configsRootDir,\n workspaceDir\n );\n return calculatedConfigFiles;\n}\n\nfunction mergeRealConfigFiles(\n multiEnvCalculatedRealConfigFiles: EnvCalculatedRealConfigFiles[],\n mergeFunc?: MergeConfigFilesFunc\n): MergedRealConfigFilesByHash {\n const mergedConfigFiles = multiEnvCalculatedRealConfigFiles.reduce((acc, curr: EnvCalculatedRealConfigFiles) => {\n curr.realConfigFiles.forEach((realConfigFile) => {\n const currentValue = acc[realConfigFile.hash];\n if (currentValue) {\n currentValue.envIds.push(curr.envId);\n if (currentValue && mergeFunc) {\n const mergedConfigFileContent = mergeFunc(currentValue.realConfigFile, realConfigFile);\n currentValue.realConfigFile.content = mergedConfigFileContent;\n realConfigFile.content = mergedConfigFileContent;\n acc[realConfigFile.hash].realConfigFile = realConfigFile;\n }\n } else {\n acc[realConfigFile.hash] = { envIds: [curr.envId], realConfigFile };\n }\n });\n return acc;\n }, {});\n return mergedConfigFiles;\n}\n\nasync function writeConfigFile(\n configFile: ConfigFile,\n configsRootDir: string,\n opts: WriteConfigFilesOptions\n): Promise<WrittenConfigFile> {\n const hash = configFile.hash || sha1(configFile.content);\n const name = format(configFile.name, { hash });\n const filePath = join(configsRootDir, name);\n if (!opts.dryRun) {\n // const exists = await fs.pathExists(filePath);\n // if (!exists) {\n await fs.outputFile(filePath, configFile.content);\n // }\n }\n const res = {\n name,\n hash,\n filePath,\n content: configFile.content,\n };\n return res;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { Command, CommandOptions } from '@teambit/cli';
2
- import { WorkspaceConfigFilesMain } from './workspace-config-files.main.runtime';
1
+ import type { Command, CommandOptions } from '@teambit/cli';
2
+ import type { WorkspaceConfigFilesMain } from './workspace-config-files.main.runtime';
3
3
  export type CleanConfigCmdFlags = {
4
4
  dryRun?: boolean;
5
5
  silent?: boolean;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_outputs","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","COMMAND_NAME","WsConfigCmd","constructor","report","unrecognizedSubcommand","chalk","red","exports","WsConfigWriteCmd","workspaceConfigFilesMain","_args","flags","results","json","dryRunWithContent","Error","envsNotImplementing","getEnvsNotImplementing","warning","getWarningForNonImplementingEnvs","output","verbose","verboseFormatWriteOutput","formatWriteOutput","clean","silent","noDedupe","writers","dryRun","cleanResults","writeResults","wsDir","writeConfigFiles","dedupe","split","updatedWriteResults","writersResult","map","oneWriterResult","realConfigFiles","forEach","realConfigFile","writtenRealConfigFile","content","extendingConfigFiles","extendingConfigFile","WsConfigCleanCmd","formatCleanOutput","cleanConfigFiles","WsConfigListCmd","formatListOutput","listConfigWriters","length","message","yellow","cyan","join"],"sources":["ws-config.cmd.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\n\nimport { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { WorkspaceConfigFilesMain, WriteConfigFilesResult } from './workspace-config-files.main.runtime';\nimport { formatCleanOutput, formatListOutput, formatWriteOutput, verboseFormatWriteOutput } from './outputs';\n\nexport type CleanConfigCmdFlags = {\n dryRun?: boolean;\n silent?: boolean;\n};\n\nexport type WriteConfigCmdFlags = {\n dryRun?: boolean;\n writers?: string;\n noDedupe?: boolean;\n dryRunWithContent?: boolean;\n clean?: boolean;\n silent?: boolean;\n verbose?: boolean;\n};\n\nconst COMMAND_NAME = 'ws-config';\n\nexport class WsConfigCmd implements Command {\n name = `${COMMAND_NAME} <sub-command>`;\n alias = 'workspace-config';\n description = 'manage workspace config files';\n options = [];\n group = 'workspace-tools';\n commands: Command[] = [];\n // helpUrl = '';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"ws-config\", please run \"bit ws-config --help\" to list the subcommands`\n );\n }\n}\n\nexport class WsConfigWriteCmd implements Command {\n name = 'write';\n description = 'write config files in the workspace. useful for IDEs';\n alias = '';\n group = 'workspace-tools';\n options = [\n [\n 'c',\n 'clean',\n 'delete existing config files from the workspace. highly recommended to run it with \"--dry-run\" first',\n ],\n [\n 'w',\n 'writers <writers>',\n `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['s', 'silent', 'do not prompt for confirmation'],\n ['', 'no-dedupe', \"write configs inside each one of the component's dir, avoid deduping\"],\n ['', 'dry-run', 'show the paths that configs will be written per env'],\n [\n '',\n 'dry-run-with-content',\n 'use with --json flag. show the config content and the paths that will be written per env',\n ],\n ['v', 'verbose', 'showing verbose output for writing'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: WriteConfigCmdFlags) {\n const results = (await this.json(_args, flags)) as WriteConfigFilesResult;\n if (flags.dryRunWithContent) {\n throw new Error(`use --json flag along with --dry-run-with-content`);\n }\n const envsNotImplementing = this.workspaceConfigFilesMain.getEnvsNotImplementing();\n const warning = getWarningForNonImplementingEnvs(envsNotImplementing);\n const output = flags.verbose ? verboseFormatWriteOutput(results, flags) : formatWriteOutput(results, flags);\n return warning + output;\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { clean, silent, noDedupe, dryRunWithContent, writers } = flags;\n const dryRun = dryRunWithContent ? true : !!flags.dryRun;\n const { cleanResults, writeResults, wsDir } = await this.workspaceConfigFilesMain.writeConfigFiles({\n clean,\n dedupe: !noDedupe,\n dryRun,\n silent,\n writers: writers?.split(','),\n });\n\n if (dryRun) {\n const updatedWriteResults = writeResults;\n if (!dryRunWithContent) {\n updatedWriteResults.writersResult = updatedWriteResults.writersResult.map((oneWriterResult) => {\n oneWriterResult.realConfigFiles.forEach((realConfigFile) => {\n realConfigFile.writtenRealConfigFile.content = '';\n });\n oneWriterResult.extendingConfigFiles.forEach((extendingConfigFile) => {\n extendingConfigFile.extendingConfigFile.content = '';\n });\n return oneWriterResult;\n });\n }\n\n return {\n wsDir,\n cleanResults,\n writeResults: updatedWriteResults,\n };\n }\n return { wsDir, cleanResults, writeResults };\n }\n}\n\nexport class WsConfigCleanCmd implements Command {\n name = 'clean';\n description = 'clean (delete) written config files in the workspace. useful for IDEs';\n alias = '';\n group = 'workspace-tools';\n options = [\n ['s', 'silent', 'do not prompt for confirmation'],\n [\n 'w',\n 'writers <writers>',\n `only clean config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['', 'dry-run', 'show the paths of configs that will be cleaned'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: CleanConfigCmdFlags) {\n const results = await this.json(_args, flags);\n const envsNotImplementing = this.workspaceConfigFilesMain.getEnvsNotImplementing();\n const warning = getWarningForNonImplementingEnvs(envsNotImplementing);\n const output = formatCleanOutput(results, flags);\n return warning + output;\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { silent, dryRun } = flags;\n const cleanResults = await this.workspaceConfigFilesMain.cleanConfigFiles({\n dryRun,\n silent,\n writers: flags.writers?.split(','),\n });\n return cleanResults;\n }\n}\n\nexport class WsConfigListCmd implements Command {\n name = 'list';\n description = 'list config writers';\n alias = '';\n group = 'workspace-tools';\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report() {\n const results = await this.json();\n const envsNotImplementing = this.workspaceConfigFilesMain.getEnvsNotImplementing();\n const warning = getWarningForNonImplementingEnvs(envsNotImplementing);\n const output = formatListOutput(results);\n return warning + output;\n }\n\n async json() {\n const cleanResults = await this.workspaceConfigFilesMain.listConfigWriters();\n return cleanResults;\n }\n}\n\nfunction getWarningForNonImplementingEnvs(envsNotImplementing: string[]) {\n if (!envsNotImplementing.length) return '';\n const message =\n chalk.yellow(`Bit cannot determine the correct contents for the config files to write. this may result in incorrect content.\nThe following environments need to add support for config files: ${chalk.cyan(envsNotImplementing.join(', '))}.\nRead here how to correct and improve dev-ex - LINK\n\n`);\n return message;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_outputs","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","COMMAND_NAME","WsConfigCmd","constructor","report","unrecognizedSubcommand","chalk","red","exports","WsConfigWriteCmd","workspaceConfigFilesMain","_args","flags","results","json","dryRunWithContent","Error","envsNotImplementing","getEnvsNotImplementing","warning","getWarningForNonImplementingEnvs","output","verbose","verboseFormatWriteOutput","formatWriteOutput","clean","silent","noDedupe","writers","dryRun","cleanResults","writeResults","wsDir","writeConfigFiles","dedupe","split","updatedWriteResults","writersResult","map","oneWriterResult","realConfigFiles","forEach","realConfigFile","writtenRealConfigFile","content","extendingConfigFiles","extendingConfigFile","WsConfigCleanCmd","formatCleanOutput","cleanConfigFiles","WsConfigListCmd","formatListOutput","listConfigWriters","length","message","yellow","cyan","join"],"sources":["ws-config.cmd.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\n\nimport type { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport type { WorkspaceConfigFilesMain, WriteConfigFilesResult } from './workspace-config-files.main.runtime';\nimport { formatCleanOutput, formatListOutput, formatWriteOutput, verboseFormatWriteOutput } from './outputs';\n\nexport type CleanConfigCmdFlags = {\n dryRun?: boolean;\n silent?: boolean;\n};\n\nexport type WriteConfigCmdFlags = {\n dryRun?: boolean;\n writers?: string;\n noDedupe?: boolean;\n dryRunWithContent?: boolean;\n clean?: boolean;\n silent?: boolean;\n verbose?: boolean;\n};\n\nconst COMMAND_NAME = 'ws-config';\n\nexport class WsConfigCmd implements Command {\n name = `${COMMAND_NAME} <sub-command>`;\n alias = 'workspace-config';\n description = 'manage workspace config files';\n options = [];\n group = 'workspace-tools';\n commands: Command[] = [];\n // helpUrl = '';\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"ws-config\", please run \"bit ws-config --help\" to list the subcommands`\n );\n }\n}\n\nexport class WsConfigWriteCmd implements Command {\n name = 'write';\n description = 'write config files in the workspace. useful for IDEs';\n alias = '';\n group = 'workspace-tools';\n options = [\n [\n 'c',\n 'clean',\n 'delete existing config files from the workspace. highly recommended to run it with \"--dry-run\" first',\n ],\n [\n 'w',\n 'writers <writers>',\n `only write config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['s', 'silent', 'do not prompt for confirmation'],\n ['', 'no-dedupe', \"write configs inside each one of the component's dir, avoid deduping\"],\n ['', 'dry-run', 'show the paths that configs will be written per env'],\n [\n '',\n 'dry-run-with-content',\n 'use with --json flag. show the config content and the paths that will be written per env',\n ],\n ['v', 'verbose', 'showing verbose output for writing'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: WriteConfigCmdFlags) {\n const results = (await this.json(_args, flags)) as WriteConfigFilesResult;\n if (flags.dryRunWithContent) {\n throw new Error(`use --json flag along with --dry-run-with-content`);\n }\n const envsNotImplementing = this.workspaceConfigFilesMain.getEnvsNotImplementing();\n const warning = getWarningForNonImplementingEnvs(envsNotImplementing);\n const output = flags.verbose ? verboseFormatWriteOutput(results, flags) : formatWriteOutput(results, flags);\n return warning + output;\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { clean, silent, noDedupe, dryRunWithContent, writers } = flags;\n const dryRun = dryRunWithContent ? true : !!flags.dryRun;\n const { cleanResults, writeResults, wsDir } = await this.workspaceConfigFilesMain.writeConfigFiles({\n clean,\n dedupe: !noDedupe,\n dryRun,\n silent,\n writers: writers?.split(','),\n });\n\n if (dryRun) {\n const updatedWriteResults = writeResults;\n if (!dryRunWithContent) {\n updatedWriteResults.writersResult = updatedWriteResults.writersResult.map((oneWriterResult) => {\n oneWriterResult.realConfigFiles.forEach((realConfigFile) => {\n realConfigFile.writtenRealConfigFile.content = '';\n });\n oneWriterResult.extendingConfigFiles.forEach((extendingConfigFile) => {\n extendingConfigFile.extendingConfigFile.content = '';\n });\n return oneWriterResult;\n });\n }\n\n return {\n wsDir,\n cleanResults,\n writeResults: updatedWriteResults,\n };\n }\n return { wsDir, cleanResults, writeResults };\n }\n}\n\nexport class WsConfigCleanCmd implements Command {\n name = 'clean';\n description = 'clean (delete) written config files in the workspace. useful for IDEs';\n alias = '';\n group = 'workspace-tools';\n options = [\n ['s', 'silent', 'do not prompt for confirmation'],\n [\n 'w',\n 'writers <writers>',\n `only clean config files for the given writers. use comma to separate multiple writers. use ${COMMAND_NAME} list to see all writers`,\n ],\n ['', 'dry-run', 'show the paths of configs that will be cleaned'],\n ['j', 'json', 'json format'],\n ] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report(_args, flags: CleanConfigCmdFlags) {\n const results = await this.json(_args, flags);\n const envsNotImplementing = this.workspaceConfigFilesMain.getEnvsNotImplementing();\n const warning = getWarningForNonImplementingEnvs(envsNotImplementing);\n const output = formatCleanOutput(results, flags);\n return warning + output;\n }\n\n async json(_args, flags: WriteConfigCmdFlags) {\n const { silent, dryRun } = flags;\n const cleanResults = await this.workspaceConfigFilesMain.cleanConfigFiles({\n dryRun,\n silent,\n writers: flags.writers?.split(','),\n });\n return cleanResults;\n }\n}\n\nexport class WsConfigListCmd implements Command {\n name = 'list';\n description = 'list config writers';\n alias = '';\n group = 'workspace-tools';\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private workspaceConfigFilesMain: WorkspaceConfigFilesMain) {}\n\n async report() {\n const results = await this.json();\n const envsNotImplementing = this.workspaceConfigFilesMain.getEnvsNotImplementing();\n const warning = getWarningForNonImplementingEnvs(envsNotImplementing);\n const output = formatListOutput(results);\n return warning + output;\n }\n\n async json() {\n const cleanResults = await this.workspaceConfigFilesMain.listConfigWriters();\n return cleanResults;\n }\n}\n\nfunction getWarningForNonImplementingEnvs(envsNotImplementing: string[]) {\n if (!envsNotImplementing.length) return '';\n const message =\n chalk.yellow(`Bit cannot determine the correct contents for the config files to write. this may result in incorrect content.\nThe following environments need to add support for config files: ${chalk.cyan(envsNotImplementing.join(', '))}.\nRead here how to correct and improve dev-ex - LINK\n\n`);\n return message;\n}\n"],"mappings":";;;;;;AAGA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6G,SAAAC,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA,KAL7G;AAsBA,MAAMgB,YAAY,GAAG,WAAW;AAEzB,MAAMC,WAAW,CAAoB;EAAAC,YAAA;IAAApB,eAAA,eACnC,GAAGkB,YAAY,gBAAgB;IAAAlB,eAAA,gBAC9B,kBAAkB;IAAAA,eAAA,sBACZ,+BAA+B;IAAAA,eAAA,kBACnC,EAAE;IAAAA,eAAA,gBACJ,iBAAiB;IAAAA,eAAA,mBACH,EAAE;EAAA;EACxB;;EAEA,MAAMqB,MAAMA,CAAC,CAACC,sBAAsB,CAAW,EAAE;IAC/C,OAAOC,gBAAK,CAACC,GAAG,CACd,IAAIF,sBAAsB,iGAC5B,CAAC;EACH;AACF;AAACG,OAAA,CAAAN,WAAA,GAAAA,WAAA;AAEM,MAAMO,gBAAgB,CAAoB;EA4B/CN,WAAWA,CAASO,wBAAkD,EAAE;IAAA,KAApDA,wBAAkD,GAAlDA,wBAAkD;IAAA3B,eAAA,eA3B/D,OAAO;IAAAA,eAAA,sBACA,sDAAsD;IAAAA,eAAA,gBAC5D,EAAE;IAAAA,eAAA,gBACF,iBAAiB;IAAAA,eAAA,kBACf,CACR,CACE,GAAG,EACH,OAAO,EACP,sGAAsG,CACvG,EACD,CACE,GAAG,EACH,mBAAmB,EACnB,8FAA8FkB,YAAY,0BAA0B,CACrI,EACD,CAAC,GAAG,EAAE,QAAQ,EAAE,gCAAgC,CAAC,EACjD,CAAC,EAAE,EAAE,WAAW,EAAE,sEAAsE,CAAC,EACzF,CAAC,EAAE,EAAE,SAAS,EAAE,qDAAqD,CAAC,EACtE,CACE,EAAE,EACF,sBAAsB,EACtB,0FAA0F,CAC3F,EACD,CAAC,GAAG,EAAE,SAAS,EAAE,oCAAoC,CAAC,EACtD,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAC7B;EAEwE;EAEzE,MAAMG,MAAMA,CAACO,KAAK,EAAEC,KAA0B,EAAE;IAC9C,MAAMC,OAAO,GAAI,MAAM,IAAI,CAACC,IAAI,CAACH,KAAK,EAAEC,KAAK,CAA4B;IACzE,IAAIA,KAAK,CAACG,iBAAiB,EAAE;MAC3B,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;IACtE;IACA,MAAMC,mBAAmB,GAAG,IAAI,CAACP,wBAAwB,CAACQ,sBAAsB,CAAC,CAAC;IAClF,MAAMC,OAAO,GAAGC,gCAAgC,CAACH,mBAAmB,CAAC;IACrE,MAAMI,MAAM,GAAGT,KAAK,CAACU,OAAO,GAAG,IAAAC,mCAAwB,EAACV,OAAO,EAAED,KAAK,CAAC,GAAG,IAAAY,4BAAiB,EAACX,OAAO,EAAED,KAAK,CAAC;IAC3G,OAAOO,OAAO,GAAGE,MAAM;EACzB;EAEA,MAAMP,IAAIA,CAACH,KAAK,EAAEC,KAA0B,EAAE;IAC5C,MAAM;MAAEa,KAAK;MAAEC,MAAM;MAAEC,QAAQ;MAAEZ,iBAAiB;MAAEa;IAAQ,CAAC,GAAGhB,KAAK;IACrE,MAAMiB,MAAM,GAAGd,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAACH,KAAK,CAACiB,MAAM;IACxD,MAAM;MAAEC,YAAY;MAAEC,YAAY;MAAEC;IAAM,CAAC,GAAG,MAAM,IAAI,CAACtB,wBAAwB,CAACuB,gBAAgB,CAAC;MACjGR,KAAK;MACLS,MAAM,EAAE,CAACP,QAAQ;MACjBE,MAAM;MACNH,MAAM;MACNE,OAAO,EAAEA,OAAO,EAAEO,KAAK,CAAC,GAAG;IAC7B,CAAC,CAAC;IAEF,IAAIN,MAAM,EAAE;MACV,MAAMO,mBAAmB,GAAGL,YAAY;MACxC,IAAI,CAAChB,iBAAiB,EAAE;QACtBqB,mBAAmB,CAACC,aAAa,GAAGD,mBAAmB,CAACC,aAAa,CAACC,GAAG,CAAEC,eAAe,IAAK;UAC7FA,eAAe,CAACC,eAAe,CAACC,OAAO,CAAEC,cAAc,IAAK;YAC1DA,cAAc,CAACC,qBAAqB,CAACC,OAAO,GAAG,EAAE;UACnD,CAAC,CAAC;UACFL,eAAe,CAACM,oBAAoB,CAACJ,OAAO,CAAEK,mBAAmB,IAAK;YACpEA,mBAAmB,CAACA,mBAAmB,CAACF,OAAO,GAAG,EAAE;UACtD,CAAC,CAAC;UACF,OAAOL,eAAe;QACxB,CAAC,CAAC;MACJ;MAEA,OAAO;QACLP,KAAK;QACLF,YAAY;QACZC,YAAY,EAAEK;MAChB,CAAC;IACH;IACA,OAAO;MAAEJ,KAAK;MAAEF,YAAY;MAAEC;IAAa,CAAC;EAC9C;AACF;AAACvB,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEM,MAAMsC,gBAAgB,CAAoB;EAgB/C5C,WAAWA,CAASO,wBAAkD,EAAE;IAAA,KAApDA,wBAAkD,GAAlDA,wBAAkD;IAAA3B,eAAA,eAf/D,OAAO;IAAAA,eAAA,sBACA,uEAAuE;IAAAA,eAAA,gBAC7E,EAAE;IAAAA,eAAA,gBACF,iBAAiB;IAAAA,eAAA,kBACf,CACR,CAAC,GAAG,EAAE,QAAQ,EAAE,gCAAgC,CAAC,EACjD,CACE,GAAG,EACH,mBAAmB,EACnB,8FAA8FkB,YAAY,0BAA0B,CACrI,EACD,CAAC,EAAE,EAAE,SAAS,EAAE,gDAAgD,CAAC,EACjE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAC7B;EAEwE;EAEzE,MAAMG,MAAMA,CAACO,KAAK,EAAEC,KAA0B,EAAE;IAC9C,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,IAAI,CAACH,KAAK,EAAEC,KAAK,CAAC;IAC7C,MAAMK,mBAAmB,GAAG,IAAI,CAACP,wBAAwB,CAACQ,sBAAsB,CAAC,CAAC;IAClF,MAAMC,OAAO,GAAGC,gCAAgC,CAACH,mBAAmB,CAAC;IACrE,MAAMI,MAAM,GAAG,IAAA2B,4BAAiB,EAACnC,OAAO,EAAED,KAAK,CAAC;IAChD,OAAOO,OAAO,GAAGE,MAAM;EACzB;EAEA,MAAMP,IAAIA,CAACH,KAAK,EAAEC,KAA0B,EAAE;IAC5C,MAAM;MAAEc,MAAM;MAAEG;IAAO,CAAC,GAAGjB,KAAK;IAChC,MAAMkB,YAAY,GAAG,MAAM,IAAI,CAACpB,wBAAwB,CAACuC,gBAAgB,CAAC;MACxEpB,MAAM;MACNH,MAAM;MACNE,OAAO,EAAEhB,KAAK,CAACgB,OAAO,EAAEO,KAAK,CAAC,GAAG;IACnC,CAAC,CAAC;IACF,OAAOL,YAAY;EACrB;AACF;AAACtB,OAAA,CAAAuC,gBAAA,GAAAA,gBAAA;AAEM,MAAMG,eAAe,CAAoB;EAO9C/C,WAAWA,CAASO,wBAAkD,EAAE;IAAA,KAApDA,wBAAkD,GAAlDA,wBAAkD;IAAA3B,eAAA,eAN/D,MAAM;IAAAA,eAAA,sBACC,qBAAqB;IAAAA,eAAA,gBAC3B,EAAE;IAAAA,eAAA,gBACF,iBAAiB;IAAAA,eAAA,kBACf,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EAEiC;EAEzE,MAAMqB,MAAMA,CAAA,EAAG;IACb,MAAMS,OAAO,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,CAAC;IACjC,MAAMG,mBAAmB,GAAG,IAAI,CAACP,wBAAwB,CAACQ,sBAAsB,CAAC,CAAC;IAClF,MAAMC,OAAO,GAAGC,gCAAgC,CAACH,mBAAmB,CAAC;IACrE,MAAMI,MAAM,GAAG,IAAA8B,2BAAgB,EAACtC,OAAO,CAAC;IACxC,OAAOM,OAAO,GAAGE,MAAM;EACzB;EAEA,MAAMP,IAAIA,CAAA,EAAG;IACX,MAAMgB,YAAY,GAAG,MAAM,IAAI,CAACpB,wBAAwB,CAAC0C,iBAAiB,CAAC,CAAC;IAC5E,OAAOtB,YAAY;EACrB;AACF;AAACtB,OAAA,CAAA0C,eAAA,GAAAA,eAAA;AAED,SAAS9B,gCAAgCA,CAACH,mBAA6B,EAAE;EACvE,IAAI,CAACA,mBAAmB,CAACoC,MAAM,EAAE,OAAO,EAAE;EAC1C,MAAMC,OAAO,GACXhD,gBAAK,CAACiD,MAAM,CAAC;AACjB,mEAAmEjD,gBAAK,CAACkD,IAAI,CAACvC,mBAAmB,CAACwC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7G;AACA;AACA,CAAC,CAAC;EACA,OAAOH,OAAO;AAChB","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { EnvConfigWritersList } from '../workspace-config-files.main.runtime';
3
- import { ConfigWriterEntry } from '../config-writer-entry';
2
+ import type { EnvConfigWritersList } from '../workspace-config-files.main.runtime';
3
+ import type { ConfigWriterEntry } from '../config-writer-entry';
4
4
 
5
5
  export function formatListOutput(result: EnvConfigWritersList): string {
6
6
  return Object.values(result)
@@ -1,10 +1,14 @@
1
1
  import chalk from 'chalk';
2
2
  import { relative } from 'path';
3
- import { OneConfigWriterIdResult, WriteConfigFilesResult, WriteResults } from '../workspace-config-files.main.runtime';
3
+ import type {
4
+ OneConfigWriterIdResult,
5
+ WriteConfigFilesResult,
6
+ WriteResults,
7
+ } from '../workspace-config-files.main.runtime';
4
8
  import type { WriteConfigCmdFlags } from '../ws-config.cmd';
5
9
  import { formatCleanOutput } from './format-clean-output';
6
10
  import { SUMMARY, WRITE_TITLE } from './write-outputs-texts';
7
- import { EnvsWrittenExtendingConfigFile, EnvsWrittenExtendingConfigFiles } from '../writers';
11
+ import type { EnvsWrittenExtendingConfigFile, EnvsWrittenExtendingConfigFiles } from '../writers';
8
12
 
9
13
  export function formatWriteOutput(writeConfigFilesResult: WriteConfigFilesResult, flags: WriteConfigCmdFlags): string {
10
14
  const { cleanResults, writeResults, wsDir } = writeConfigFilesResult;
@@ -1,10 +1,14 @@
1
1
  import chalk from 'chalk';
2
2
  import { relative } from 'path';
3
- import { OneConfigWriterIdResult, WriteConfigFilesResult, WriteResults } from '../workspace-config-files.main.runtime';
3
+ import type {
4
+ OneConfigWriterIdResult,
5
+ WriteConfigFilesResult,
6
+ WriteResults,
7
+ } from '../workspace-config-files.main.runtime';
4
8
  import type { WriteConfigCmdFlags } from '../ws-config.cmd';
5
9
  import { formatCleanOutput } from './format-clean-output';
6
10
  import { SUMMARY, WRITE_TITLE } from './write-outputs-texts';
7
- import {
11
+ import type {
8
12
  EnvsWrittenExtendingConfigFile,
9
13
  EnvsWrittenExtendingConfigFiles,
10
14
  EnvsWrittenRealConfigFile,
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace-config-files",
3
- "version": "1.0.667",
3
+ "version": "1.0.668",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/workspace-config-files",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace-config-files",
9
- "version": "1.0.667"
9
+ "version": "1.0.668"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -20,13 +20,13 @@
20
20
  "@teambit/toolbox.path.path": "0.0.8",
21
21
  "@teambit/harmony": "0.4.7",
22
22
  "@teambit/legacy.cli.prompts": "0.0.19",
23
- "@teambit/legacy.consumer": "0.0.57",
24
23
  "@teambit/bit-error": "0.0.404",
25
24
  "@teambit/toolbox.crypto.sha1": "0.0.7",
26
- "@teambit/envs": "1.0.667",
27
- "@teambit/cli": "0.0.1244",
28
- "@teambit/logger": "0.0.1337",
29
- "@teambit/workspace": "1.0.667"
25
+ "@teambit/envs": "1.0.668",
26
+ "@teambit/cli": "0.0.1245",
27
+ "@teambit/legacy.consumer": "0.0.58",
28
+ "@teambit/logger": "0.0.1338",
29
+ "@teambit/workspace": "1.0.668"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/lodash": "4.14.165",
@@ -1,7 +1,7 @@
1
- import { Logger } from '@teambit/logger';
2
- import { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
- import { ConfigWriterList } from './config-writer-list';
4
- import { ConfigWriterEntry } from './config-writer-entry';
1
+ import type { Logger } from '@teambit/logger';
2
+ import type { EnvService, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
+ import type { ConfigWriterList } from './config-writer-list';
4
+ import type { ConfigWriterEntry } from './config-writer-entry';
5
5
 
6
6
  export type PkgDescriptor = {
7
7
  id: string;
@@ -5,15 +5,16 @@ import fs from 'fs-extra';
5
5
  import { dirname, join, relative } from 'path';
6
6
  import pMapSeries from 'p-map-series';
7
7
  import { compact } from 'lodash';
8
- import { ExtendingConfigFile } from '../config-writer-entry';
9
- import { DedupedPaths, dedupePaths } from '../dedup-paths';
10
- import {
8
+ import type { ExtendingConfigFile } from '../config-writer-entry';
9
+ import type { DedupedPaths } from '../dedup-paths';
10
+ import { dedupePaths } from '../dedup-paths';
11
+ import type {
11
12
  EnvCompsDirsMap,
12
13
  EnvConfigWriterEntry,
13
14
  EnvMapValue,
14
15
  WriteConfigFilesOptions,
15
16
  } from '../workspace-config-files.main.runtime';
16
- import { WrittenConfigFile, WrittenRealConfigFilesByHash } from './real-config-files';
17
+ import type { WrittenConfigFile, WrittenRealConfigFilesByHash } from './real-config-files';
17
18
 
18
19
  type EnvCalculatedExtendingConfigFile = {
19
20
  envId: string;
@@ -4,8 +4,8 @@ import fs from 'fs-extra';
4
4
  import { join } from 'path';
5
5
  import pMapSeries from 'p-map-series';
6
6
  import { compact } from 'lodash';
7
- import { ConfigFile, MergeConfigFilesFunc } from '../config-writer-entry';
8
- import {
7
+ import type { ConfigFile, MergeConfigFilesFunc } from '../config-writer-entry';
8
+ import type {
9
9
  EnvCompsDirsMap,
10
10
  EnvConfigWriterEntry,
11
11
  EnvMapValue,