@teambit/compiler 0.0.651 → 0.0.654

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.
@@ -1 +1 @@
1
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.compilation_compiler@0.0.651/dist/compiler.docs.mdx')]
1
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.compilation_compiler@0.0.654/dist/compiler.docs.mdx')]
@@ -1,18 +1,18 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { Logger } from '@teambit/logger';
3
3
  import type { PubsubMain } from '@teambit/pubsub';
4
- import type ConsumerComponent from '@teambit/legacy/dist/consumer/component';
4
+ import { Component } from '@teambit/component';
5
5
  import { CompileError, WorkspaceCompiler, CompileOptions } from './workspace-compiler';
6
- declare type ComponentsStatus = {
6
+ export declare type ComponentsStatus = {
7
7
  buildResults: string[];
8
- component: Array<ConsumerComponent>;
9
- errors: Array<CompileError>;
8
+ component: Component;
9
+ errors: CompileError[];
10
10
  };
11
11
  export declare class CompileCmd implements Command {
12
12
  private compile;
13
13
  private logger;
14
14
  private pubsub;
15
- componentsStatus: Array<ComponentsStatus>;
15
+ componentsStatus: ComponentsStatus[];
16
16
  name: string;
17
17
  description: string;
18
18
  alias: string;
@@ -33,4 +33,3 @@ export declare class CompileCmd implements Command {
33
33
  private getStatusLine;
34
34
  private onComponentCompilationDone;
35
35
  }
36
- export {};
@@ -109,7 +109,7 @@ class CompileCmd {
109
109
  const compileTimeLength = process.hrtime(startTimestamp);
110
110
  outputString += '\n';
111
111
  outputString += ` ${_chalk().default.underline('STATUS')}\t${_chalk().default.underline('COMPONENT ID')}\n`;
112
- outputString += (0, _outputFormatter().formatCompileResults)(this.componentsStatus, compilerOptions.verbose);
112
+ outputString += (0, _outputFormatter().formatCompileResults)(this.componentsStatus, !!compilerOptions.verbose);
113
113
  outputString += '\n';
114
114
  outputString += this.getStatusLine(this.componentsStatus, compileTimeLength);
115
115
  this.logger.clearStatusLine();
@@ -1 +1 @@
1
- {"version":3,"sources":["compiler.cmd.ts"],"names":["CompileCmd","constructor","compile","logger","pubsub","report","components","compilerOptions","startTimestamp","process","hrtime","setStatusLine","sub","CompilerAspect","id","onComponentCompilationDone","bind","outputString","compileComponents","initiator","CompilationInitiator","CmdReport","compileTimeLength","chalk","underline","componentsStatus","verbose","getStatusLine","clearStatusLine","data","code","getExitCode","json","deleteDistDir","compileResults","CmdJson","failedComponents","filter","component","errors","length","getSummaryIcon","green","red","yellow","numberOfComponents","numberOfFailingComponents","numberOfSuccessfulComponents","icon","summaryLine","event","type","ComponentCompilationOnDoneEvent","TYPE","push"],"mappings":"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","sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport type { PubsubMain, BitBaseEvent } from '@teambit/pubsub';\nimport chalk from 'chalk';\nimport prettyTime from 'pretty-time';\nimport type ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { formatCompileResults } from './output-formatter';\nimport { CompileError, WorkspaceCompiler, CompileOptions } from './workspace-compiler';\nimport { CompilationInitiator } from './types';\n\n// IDs & events\nimport { CompilerAspect } from './compiler.aspect';\nimport { ComponentCompilationOnDoneEvent } from './events';\n\ntype ComponentsStatus = {\n buildResults: string[];\n component: Array<ConsumerComponent>;\n errors: Array<CompileError>;\n};\n\nexport class CompileCmd implements Command {\n componentsStatus: Array<ComponentsStatus> = [];\n name = 'compile [component...]';\n description = 'compile components in the development workspace';\n alias = '';\n group = 'development';\n options = [\n ['c', 'changed', 'compile only new and modified components'],\n ['v', 'verbose', 'show more data, such as, dist paths'],\n ['j', 'json', 'return the compile results in json format'],\n ['d', 'delete-dist-dir', 'delete existing dist folder before writing new compiled files'],\n ] as CommandOptions;\n\n constructor(private compile: WorkspaceCompiler, private logger: Logger, private pubsub: PubsubMain) {}\n\n async report([components = []]: [string[]], compilerOptions: CompileOptions) {\n const startTimestamp = process.hrtime();\n this.logger.setStatusLine('Compiling your components, hold tight.');\n this.pubsub.sub(CompilerAspect.id, this.onComponentCompilationDone.bind(this));\n\n let outputString = '';\n await this.compile.compileComponents(components, {\n ...compilerOptions,\n initiator: CompilationInitiator.CmdReport,\n });\n const compileTimeLength = process.hrtime(startTimestamp);\n\n outputString += '\\n';\n outputString += ` ${chalk.underline('STATUS')}\\t${chalk.underline('COMPONENT ID')}\\n`;\n outputString += formatCompileResults(this.componentsStatus, compilerOptions.verbose);\n outputString += '\\n';\n\n outputString += this.getStatusLine(this.componentsStatus, compileTimeLength);\n\n this.logger.clearStatusLine();\n\n return {\n data: outputString,\n code: this.getExitCode(this.componentsStatus),\n };\n }\n\n async json([components]: [string[]], compilerOptions: CompileOptions) {\n compilerOptions.deleteDistDir = true;\n // @ts-ignore\n const compileResults = await this.compile.compileComponents(components, {\n ...compilerOptions,\n initiator: CompilationInitiator.CmdJson,\n });\n return {\n data: compileResults,\n // @todo: fix the code once compile is ready.\n code: 0,\n };\n }\n\n private failedComponents(componentsStatus: ComponentsStatus[]): ComponentsStatus[] {\n return componentsStatus.filter((component) => component.errors.length);\n }\n\n private getSummaryIcon(componentsStatus: ComponentsStatus[]) {\n switch (this.failedComponents(componentsStatus).length) {\n case 0:\n return chalk.green('✔');\n case componentsStatus.length:\n return chalk.red('✗');\n default:\n return chalk.yellow('⍻');\n }\n }\n\n private getExitCode(componentsStatus: ComponentsStatus[]) {\n return this.failedComponents(componentsStatus).length ? 1 : 0;\n }\n\n private getStatusLine(componentsStatus: ComponentsStatus[], compileTimeLength) {\n const numberOfComponents = componentsStatus.length;\n const numberOfFailingComponents = this.failedComponents(componentsStatus).length;\n const numberOfSuccessfulComponents = componentsStatus.filter((component) => !component.errors.length).length;\n\n const icon = this.getSummaryIcon(componentsStatus);\n const summaryLine = numberOfFailingComponents\n ? `${icon} ${numberOfFailingComponents}/${numberOfComponents} components failed to compile.`\n : `${icon} ${numberOfSuccessfulComponents}/${numberOfComponents} components compiled successfully.`;\n\n return `${summaryLine}\\nFinished. (${prettyTime(compileTimeLength)})`;\n }\n\n private onComponentCompilationDone(event: BitBaseEvent<any>) {\n if (event.type === ComponentCompilationOnDoneEvent.TYPE) {\n this.componentsStatus.push(event.data);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["compiler.cmd.ts"],"names":["CompileCmd","constructor","compile","logger","pubsub","report","components","compilerOptions","startTimestamp","process","hrtime","setStatusLine","sub","CompilerAspect","id","onComponentCompilationDone","bind","outputString","compileComponents","initiator","CompilationInitiator","CmdReport","compileTimeLength","chalk","underline","componentsStatus","verbose","getStatusLine","clearStatusLine","data","code","getExitCode","json","deleteDistDir","compileResults","CmdJson","failedComponents","filter","component","errors","length","getSummaryIcon","green","red","yellow","numberOfComponents","numberOfFailingComponents","numberOfSuccessfulComponents","icon","summaryLine","event","type","ComponentCompilationOnDoneEvent","TYPE","push"],"mappings":"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","sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport type { PubsubMain, BitBaseEvent } from '@teambit/pubsub';\nimport chalk from 'chalk';\nimport prettyTime from 'pretty-time';\nimport { Component } from '@teambit/component';\nimport { formatCompileResults } from './output-formatter';\nimport { CompileError, WorkspaceCompiler, CompileOptions } from './workspace-compiler';\nimport { CompilationInitiator } from './types';\n\n// IDs & events\nimport { CompilerAspect } from './compiler.aspect';\nimport { ComponentCompilationOnDoneEvent } from './events';\n\nexport type ComponentsStatus = {\n buildResults: string[];\n component: Component;\n errors: CompileError[];\n};\n\nexport class CompileCmd implements Command {\n componentsStatus: ComponentsStatus[] = [];\n name = 'compile [component...]';\n description = 'compile components in the development workspace';\n alias = '';\n group = 'development';\n options = [\n ['c', 'changed', 'compile only new and modified components'],\n ['v', 'verbose', 'show more data, such as, dist paths'],\n ['j', 'json', 'return the compile results in json format'],\n ['d', 'delete-dist-dir', 'delete existing dist folder before writing new compiled files'],\n ] as CommandOptions;\n\n constructor(private compile: WorkspaceCompiler, private logger: Logger, private pubsub: PubsubMain) {}\n\n async report([components = []]: [string[]], compilerOptions: CompileOptions) {\n const startTimestamp = process.hrtime();\n this.logger.setStatusLine('Compiling your components, hold tight.');\n this.pubsub.sub(CompilerAspect.id, this.onComponentCompilationDone.bind(this));\n\n let outputString = '';\n await this.compile.compileComponents(components, {\n ...compilerOptions,\n initiator: CompilationInitiator.CmdReport,\n });\n const compileTimeLength = process.hrtime(startTimestamp);\n\n outputString += '\\n';\n outputString += ` ${chalk.underline('STATUS')}\\t${chalk.underline('COMPONENT ID')}\\n`;\n outputString += formatCompileResults(this.componentsStatus, !!compilerOptions.verbose);\n outputString += '\\n';\n\n outputString += this.getStatusLine(this.componentsStatus, compileTimeLength);\n\n this.logger.clearStatusLine();\n\n return {\n data: outputString,\n code: this.getExitCode(this.componentsStatus),\n };\n }\n\n async json([components]: [string[]], compilerOptions: CompileOptions) {\n compilerOptions.deleteDistDir = true;\n // @ts-ignore\n const compileResults = await this.compile.compileComponents(components, {\n ...compilerOptions,\n initiator: CompilationInitiator.CmdJson,\n });\n return {\n data: compileResults,\n // @todo: fix the code once compile is ready.\n code: 0,\n };\n }\n\n private failedComponents(componentsStatus: ComponentsStatus[]): ComponentsStatus[] {\n return componentsStatus.filter((component) => component.errors.length);\n }\n\n private getSummaryIcon(componentsStatus: ComponentsStatus[]) {\n switch (this.failedComponents(componentsStatus).length) {\n case 0:\n return chalk.green('✔');\n case componentsStatus.length:\n return chalk.red('✗');\n default:\n return chalk.yellow('⍻');\n }\n }\n\n private getExitCode(componentsStatus: ComponentsStatus[]) {\n return this.failedComponents(componentsStatus).length ? 1 : 0;\n }\n\n private getStatusLine(componentsStatus: ComponentsStatus[], compileTimeLength) {\n const numberOfComponents = componentsStatus.length;\n const numberOfFailingComponents = this.failedComponents(componentsStatus).length;\n const numberOfSuccessfulComponents = componentsStatus.filter((component) => !component.errors.length).length;\n\n const icon = this.getSummaryIcon(componentsStatus);\n const summaryLine = numberOfFailingComponents\n ? `${icon} ${numberOfFailingComponents}/${numberOfComponents} components failed to compile.`\n : `${icon} ${numberOfSuccessfulComponents}/${numberOfComponents} components compiled successfully.`;\n\n return `${summaryLine}\\nFinished. (${prettyTime(compileTimeLength)})`;\n }\n\n private onComponentCompilationDone(event: BitBaseEvent<any>) {\n if (event.type === ComponentCompilationOnDoneEvent.TYPE) {\n this.componentsStatus.push(event.data);\n }\n }\n}\n"]}
@@ -1,18 +1,18 @@
1
1
  import { BitBaseEvent } from '@teambit/pubsub';
2
- import type ConsumerComponent from '@teambit/legacy/dist/consumer/component';
2
+ import { Component } from '@teambit/component';
3
3
  import { CompileError } from '../workspace-compiler';
4
4
  declare class ComponentCompilationOnDoneEventData {
5
5
  readonly errors: Array<CompileError>;
6
- readonly component: ConsumerComponent;
6
+ readonly component: Component;
7
7
  readonly buildResults: string[];
8
- constructor(errors: Array<CompileError>, component: ConsumerComponent, buildResults: string[]);
8
+ constructor(errors: Array<CompileError>, component: Component, buildResults: string[]);
9
9
  }
10
10
  export declare class ComponentCompilationOnDoneEvent extends BitBaseEvent<ComponentCompilationOnDoneEventData> {
11
11
  readonly errors: Array<CompileError>;
12
- readonly component: ConsumerComponent;
12
+ readonly component: Component;
13
13
  readonly buildResults: string[];
14
14
  readonly timestamp: number;
15
15
  static readonly TYPE = "component-compilation-on-done";
16
- constructor(errors: Array<CompileError>, component: ConsumerComponent, buildResults: string[], timestamp?: number);
16
+ constructor(errors: Array<CompileError>, component: Component, buildResults: string[], timestamp?: number);
17
17
  }
18
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["component-compilation-on-done.ts"],"names":["ComponentCompilationOnDoneEventData","constructor","errors","component","buildResults","ComponentCompilationOnDoneEvent","BitBaseEvent","timestamp","Date","now","TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AADA;AAKA,MAAMA,mCAAN,CAA0C;AACxCC,EAAAA,WAAW,CACAC,MADA,EAEAC,SAFA,EAGAC,YAHA,EAIT;AAAA,SAHSF,MAGT,GAHSA,MAGT;AAAA,SAFSC,SAET,GAFSA,SAET;AAAA,SADSC,YACT,GADSA,YACT;AAAE;;AALoC;;AAQnC,MAAMC,+BAAN,SAA8CC,sBAA9C,CAAgG;AAGrGL,EAAAA,WAAW,CACAC,MADA,EAEAC,SAFA,EAGAC,YAHA,EAIAG,SAAS,GAAGC,IAAI,CAACC,GAAL,EAJZ,EAKT;AACA,UACEJ,+BAA+B,CAACK,IADlC,EAEE,OAFF,EAGEH,SAHF,EAIE,IAAIP,mCAAJ,CAAwCE,MAAxC,EAAgDC,SAAhD,EAA2DC,YAA3D,CAJF;AADA,SAJSF,MAIT,GAJSA,MAIT;AAAA,SAHSC,SAGT,GAHSA,SAGT;AAAA,SAFSC,YAET,GAFSA,YAET;AAAA,SADSG,SACT,GADSA,SACT;AAOD;;AAfoG;;;gCAA1FF,+B,UACY,+B","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { BitBaseEvent } from '@teambit/pubsub';\nimport type ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { CompileError } from '../workspace-compiler';\n\nclass ComponentCompilationOnDoneEventData {\n constructor(\n readonly errors: Array<CompileError>,\n readonly component: ConsumerComponent,\n readonly buildResults: string[]\n ) {}\n}\n\nexport class ComponentCompilationOnDoneEvent extends BitBaseEvent<ComponentCompilationOnDoneEventData> {\n static readonly TYPE = 'component-compilation-on-done';\n\n constructor(\n readonly errors: Array<CompileError>,\n readonly component: ConsumerComponent,\n readonly buildResults: string[],\n readonly timestamp = Date.now()\n ) {\n super(\n ComponentCompilationOnDoneEvent.TYPE,\n '0.0.1',\n timestamp,\n new ComponentCompilationOnDoneEventData(errors, component, buildResults)\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["component-compilation-on-done.ts"],"names":["ComponentCompilationOnDoneEventData","constructor","errors","component","buildResults","ComponentCompilationOnDoneEvent","BitBaseEvent","timestamp","Date","now","TYPE"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AADA;AAKA,MAAMA,mCAAN,CAA0C;AACxCC,EAAAA,WAAW,CAAUC,MAAV,EAAgDC,SAAhD,EAA+EC,YAA/E,EAAuG;AAAA,SAA7FF,MAA6F,GAA7FA,MAA6F;AAAA,SAAvDC,SAAuD,GAAvDA,SAAuD;AAAA,SAAxBC,YAAwB,GAAxBA,YAAwB;AAAE;;AAD5E;;AAInC,MAAMC,+BAAN,SAA8CC,sBAA9C,CAAgG;AAGrGL,EAAAA,WAAW,CACAC,MADA,EAEAC,SAFA,EAGAC,YAHA,EAIAG,SAAS,GAAGC,IAAI,CAACC,GAAL,EAJZ,EAKT;AACA,UACEJ,+BAA+B,CAACK,IADlC,EAEE,OAFF,EAGEH,SAHF,EAIE,IAAIP,mCAAJ,CAAwCE,MAAxC,EAAgDC,SAAhD,EAA2DC,YAA3D,CAJF;AADA,SAJSF,MAIT,GAJSA,MAIT;AAAA,SAHSC,SAGT,GAHSA,SAGT;AAAA,SAFSC,YAET,GAFSA,YAET;AAAA,SADSG,SACT,GADSA,SACT;AAOD;;AAfoG;;;gCAA1FF,+B,UACY,+B","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { BitBaseEvent } from '@teambit/pubsub';\nimport { Component } from '@teambit/component';\nimport { CompileError } from '../workspace-compiler';\n\nclass ComponentCompilationOnDoneEventData {\n constructor(readonly errors: Array<CompileError>, readonly component: Component, readonly buildResults: string[]) {}\n}\n\nexport class ComponentCompilationOnDoneEvent extends BitBaseEvent<ComponentCompilationOnDoneEventData> {\n static readonly TYPE = 'component-compilation-on-done';\n\n constructor(\n readonly errors: Array<CompileError>,\n readonly component: Component,\n readonly buildResults: string[],\n readonly timestamp = Date.now()\n ) {\n super(\n ComponentCompilationOnDoneEvent.TYPE,\n '0.0.1',\n timestamp,\n new ComponentCompilationOnDoneEventData(errors, component, buildResults)\n );\n }\n}\n"]}
@@ -1 +1,2 @@
1
- export declare const formatCompileResults: (compileResults: any, verbose: any) => any;
1
+ import { ComponentsStatus } from './compiler.cmd';
2
+ export declare const formatCompileResults: (compileResults: ComponentsStatus[], verbose: boolean) => string;
@@ -18,7 +18,7 @@ function _chalk() {
18
18
  }
19
19
 
20
20
  const formatCompileResults = (compileResults, verbose) => compileResults.map(componentResult => ({
21
- componentId: componentResult.component.name,
21
+ componentId: componentResult.component.id.fullName,
22
22
  files: componentResult.buildResults,
23
23
  status: componentResult.errors.length ? 'FAILURE' : 'SUCCESS',
24
24
  icon: componentResult.errors.length ? _chalk().default.red('✗') : _chalk().default.green('✔')
@@ -1 +1 @@
1
- {"version":3,"sources":["output-formatter.ts"],"names":["formatCompileResults","compileResults","verbose","map","componentResult","componentId","component","name","files","buildResults","status","errors","length","icon","chalk","red","green","reduce","outputString","result","fileList","file"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,oBAAoB,GAAG,CAACC,cAAD,EAAiBC,OAAjB,KAClCD,cAAc,CACXE,GADH,CACQC,eAAD,KAAsB;AACzBC,EAAAA,WAAW,EAAED,eAAe,CAACE,SAAhB,CAA0BC,IADd;AAEzBC,EAAAA,KAAK,EAAEJ,eAAe,CAACK,YAFE;AAGzBC,EAAAA,MAAM,EAAEN,eAAe,CAACO,MAAhB,CAAuBC,MAAvB,GAAgC,SAAhC,GAA4C,SAH3B;AAIzBC,EAAAA,IAAI,EAAET,eAAe,CAACO,MAAhB,CAAuBC,MAAvB,GAAgCE,iBAAMC,GAAN,CAAU,GAAV,CAAhC,GAAiDD,iBAAME,KAAN,CAAY,GAAZ;AAJ9B,CAAtB,CADP,EAOGC,MAPH,CAOU,CAACC,YAAD,EAAeC,MAAf,KAA0B;AAChCD,EAAAA,YAAY,IAAK,GAAEC,MAAM,CAACN,IAAK,IAAGM,MAAM,CAACT,MAAO,KAAIS,MAAM,CAACd,WAAY,EAAvE;;AACA,MAAIH,OAAJ,EAAa;AAAA;;AACXgB,IAAAA,YAAY,IAAI,GAAhB;AACAA,IAAAA,YAAY,IAAIC,MAAJ,aAAIA,MAAJ,wCAAIA,MAAM,CAAEX,KAAZ,kDAAI,cAAeS,MAAf,CAAsB,CAACG,QAAD,EAAWC,IAAX,KAAqB,GAAED,QAAS,UAASC,IAAK,IAApE,EAAyE,IAAzE,CAAhB;AACD;;AACDH,EAAAA,YAAY,IAAI,IAAhB;AACA,SAAOA,YAAP;AACD,CAfH,EAeK,EAfL,CADK","sourcesContent":["import chalk from 'chalk';\n\nexport const formatCompileResults = (compileResults, verbose) =>\n compileResults\n .map((componentResult) => ({\n componentId: componentResult.component.name,\n files: componentResult.buildResults,\n status: componentResult.errors.length ? 'FAILURE' : 'SUCCESS',\n icon: componentResult.errors.length ? chalk.red('✗') : chalk.green('✔'),\n }))\n .reduce((outputString, result) => {\n outputString += `${result.icon} ${result.status}\\t${result.componentId}`;\n if (verbose) {\n outputString += ':';\n outputString += result?.files?.reduce((fileList, file) => `${fileList}\\t\\t - ${file}\\n`, '\\n');\n }\n outputString += '\\n';\n return outputString;\n }, '');\n"]}
1
+ {"version":3,"sources":["output-formatter.ts"],"names":["formatCompileResults","compileResults","verbose","map","componentResult","componentId","component","id","fullName","files","buildResults","status","errors","length","icon","chalk","red","green","reduce","outputString","result","fileList","file"],"mappings":";;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,oBAAoB,GAAG,CAACC,cAAD,EAAqCC,OAArC,KAClCD,cAAc,CACXE,GADH,CACQC,eAAD,KAAwC;AAC3CC,EAAAA,WAAW,EAAED,eAAe,CAACE,SAAhB,CAA0BC,EAA1B,CAA6BC,QADC;AAE3CC,EAAAA,KAAK,EAAEL,eAAe,CAACM,YAFoB;AAG3CC,EAAAA,MAAM,EAAEP,eAAe,CAACQ,MAAhB,CAAuBC,MAAvB,GAAgC,SAAhC,GAA4C,SAHT;AAI3CC,EAAAA,IAAI,EAAEV,eAAe,CAACQ,MAAhB,CAAuBC,MAAvB,GAAgCE,iBAAMC,GAAN,CAAU,GAAV,CAAhC,GAAiDD,iBAAME,KAAN,CAAY,GAAZ;AAJZ,CAAxC,CADP,EAOGC,MAPH,CAOU,CAACC,YAAD,EAAeC,MAAf,KAA0B;AAChCD,EAAAA,YAAY,IAAK,GAAEC,MAAM,CAACN,IAAK,IAAGM,MAAM,CAACT,MAAO,KAAIS,MAAM,CAACf,WAAY,EAAvE;;AACA,MAAIH,OAAJ,EAAa;AAAA;;AACXiB,IAAAA,YAAY,IAAI,GAAhB;AACAA,IAAAA,YAAY,IAAIC,MAAJ,aAAIA,MAAJ,wCAAIA,MAAM,CAAEX,KAAZ,kDAAI,cAAeS,MAAf,CAAsB,CAACG,QAAD,EAAWC,IAAX,KAAqB,GAAED,QAAS,UAASC,IAAK,IAApE,EAAyE,IAAzE,CAAhB;AACD;;AACDH,EAAAA,YAAY,IAAI,IAAhB;AACA,SAAOA,YAAP;AACD,CAfH,EAeK,EAfL,CADK","sourcesContent":["import chalk from 'chalk';\nimport { ComponentsStatus } from './compiler.cmd';\n\nexport const formatCompileResults = (compileResults: ComponentsStatus[], verbose: boolean) =>\n compileResults\n .map((componentResult: ComponentsStatus) => ({\n componentId: componentResult.component.id.fullName,\n files: componentResult.buildResults,\n status: componentResult.errors.length ? 'FAILURE' : 'SUCCESS',\n icon: componentResult.errors.length ? chalk.red('✗') : chalk.green('✔'),\n }))\n .reduce((outputString, result) => {\n outputString += `${result.icon} ${result.status}\\t${result.componentId}`;\n if (verbose) {\n outputString += ':';\n outputString += result?.files?.reduce((fileList, file) => `${fileList}\\t\\t - ${file}\\n`, '\\n');\n }\n outputString += '\\n';\n return outputString;\n }, '');\n"]}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { BuildContext, BuildTask, BuiltTaskResult, TaskResultsList } from '@teambit/builder';
2
- import ConsumerComponent from '@teambit/legacy/dist/consumer/component';
3
2
  import type { Component } from '@teambit/component';
4
3
  export declare type TranspileFileParams = {
5
4
  componentDir: string;
@@ -16,7 +15,7 @@ export declare enum CompilationInitiator {
16
15
  ComponentAdded = 7
17
16
  }
18
17
  export declare type TranspileComponentParams = {
19
- component: ConsumerComponent;
18
+ component: Component;
20
19
  componentDir: string;
21
20
  outputDir: string;
22
21
  initiator: CompilationInitiator;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["types.ts"],"names":["CompilationInitiator"],"mappings":";;;;;;IASYA,oB;;;WAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;GAAAA,oB,oCAAAA,oB","sourcesContent":["import { BuildContext, BuildTask, BuiltTaskResult, TaskResultsList } from '@teambit/builder';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport type { Component } from '@teambit/component';\n\nexport type TranspileFileParams = {\n componentDir: string; // absolute path of the component's root directory\n filePath: string; // relative path of the file inside the component directory\n};\n\nexport enum CompilationInitiator {\n CmdReport,\n CmdJson,\n PreStart,\n PreWatch,\n Start,\n ComponentChanged,\n AspectLoadFail,\n ComponentAdded,\n}\n\nexport type TranspileComponentParams = {\n component: ConsumerComponent;\n componentDir: string; // absolute path of the component's root directory\n outputDir: string; // absolute path of the component's output directory\n initiator: CompilationInitiator; // origin of the compilation's request\n};\n\nexport type TranspileFileOutput =\n | {\n outputText: string;\n outputPath: string;\n }[]\n | null;\n\nexport interface CompilerOptions {\n /**\n * name of the compiler.\n */\n name?: string;\n\n /**\n * relative path of the dist directory inside the capsule. e.g. \"dist\".\n */\n distDir: string;\n\n /**\n * determines which ones of the generated files will be saved in the bit objects when tagging.\n * e.g. distGlobPatterns = [`${this.distDir}/**`, `!${this.distDir}/tsconfig.tsbuildinfo`];\n * see https://github.com/mrmlnc/fast-glob for the supported glob patters syntax.\n */\n distGlobPatterns?: string[];\n\n /**\n * whether or not unsupported files (such as assets) should be copied into the dist directory\n */\n shouldCopyNonSupportedFiles?: boolean;\n\n /**\n * optional. default to \"dist\".\n * useful when the build pipeline has multiple compiler tasks of the same compiler.\n * e.g. using the same Babel compiler for two different tasks, one for creating \"es5\" files, and\n * the second for creating \"esm\". the artifact names would be \"es5\" and \"esm\" accordingly.\n */\n artifactName?: string;\n}\n\nexport interface Compiler extends CompilerOptions {\n /**\n * id of the compiler.\n */\n id: string;\n\n /**\n * Delete dist folder before writing the new compiled files\n */\n deleteDistDir?: boolean;\n\n /**\n * serialized config of the compiler.\n */\n displayConfig?(): string;\n\n /**\n * transpile a single file that gets saved into the workspace, used by `bit compile` and during\n * development\n */\n transpileFile?: (fileContent: string, params: TranspileFileParams) => TranspileFileOutput;\n\n /**\n * transpile all the files of a component, use this when you can't use `transpileFile`\n */\n transpileComponent?: (params: TranspileComponentParams) => Promise<void>;\n\n /**\n * compile components inside isolated capsules. this being used during tag for the release.\n * meaning, the final package of the component has the dists generated by this method.\n */\n build(context: BuildContext): Promise<BuiltTaskResult>;\n\n /**\n * given a source file, return its parallel in the dists. e.g. \"index.ts\" => \"dist/index.js\"\n * both, the return path and the given path are relative paths.\n */\n getDistPathBySrcPath(srcPath: string): string;\n\n /**\n * given a component, returns the path to the source folder to use for the preview, uses the one\n * in node_modules by default\n */\n getPreviewComponentRootPath?(component: Component): string;\n\n /**\n * only supported files matching get compiled. others, are copied to the dist dir.\n */\n isFileSupported(filePath: string): boolean;\n\n /**\n * sugar to create a Compiler task via the concrete compiler\n */\n createTask?(name?: string): BuildTask;\n\n /**\n * run before the build pipeline has started. this is useful when some preparation are needed to\n * be done on all envs before the build starts.\n */\n preBuild?(context: BuildContext): Promise<void>;\n\n /**\n * run after the build pipeline completed for all envs. useful for some cleanups\n */\n postBuild?(context: BuildContext, tasksResults: TaskResultsList): Promise<void>;\n\n /**\n * returns the version of the current compiler instance (e.g. '4.0.1').\n */\n version(): string;\n\n /**\n * returns the display name of the current compiler instance (e.g. 'TypeScript')\n */\n displayName: string;\n}\n"]}
1
+ {"version":3,"sources":["types.ts"],"names":["CompilationInitiator"],"mappings":";;;;;;IAQYA,oB;;;WAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;AAAAA,EAAAA,oB,CAAAA,oB;GAAAA,oB,oCAAAA,oB","sourcesContent":["import { BuildContext, BuildTask, BuiltTaskResult, TaskResultsList } from '@teambit/builder';\nimport type { Component } from '@teambit/component';\n\nexport type TranspileFileParams = {\n componentDir: string; // absolute path of the component's root directory\n filePath: string; // relative path of the file inside the component directory\n};\n\nexport enum CompilationInitiator {\n CmdReport,\n CmdJson,\n PreStart,\n PreWatch,\n Start,\n ComponentChanged,\n AspectLoadFail,\n ComponentAdded,\n}\n\nexport type TranspileComponentParams = {\n component: Component;\n componentDir: string; // absolute path of the component's root directory\n outputDir: string; // absolute path of the component's output directory\n initiator: CompilationInitiator; // origin of the compilation's request\n};\n\nexport type TranspileFileOutput =\n | {\n outputText: string;\n outputPath: string;\n }[]\n | null;\n\nexport interface CompilerOptions {\n /**\n * name of the compiler.\n */\n name?: string;\n\n /**\n * relative path of the dist directory inside the capsule. e.g. \"dist\".\n */\n distDir: string;\n\n /**\n * determines which ones of the generated files will be saved in the bit objects when tagging.\n * e.g. distGlobPatterns = [`${this.distDir}/**`, `!${this.distDir}/tsconfig.tsbuildinfo`];\n * see https://github.com/mrmlnc/fast-glob for the supported glob patters syntax.\n */\n distGlobPatterns?: string[];\n\n /**\n * whether or not unsupported files (such as assets) should be copied into the dist directory\n */\n shouldCopyNonSupportedFiles?: boolean;\n\n /**\n * optional. default to \"dist\".\n * useful when the build pipeline has multiple compiler tasks of the same compiler.\n * e.g. using the same Babel compiler for two different tasks, one for creating \"es5\" files, and\n * the second for creating \"esm\". the artifact names would be \"es5\" and \"esm\" accordingly.\n */\n artifactName?: string;\n}\n\nexport interface Compiler extends CompilerOptions {\n /**\n * id of the compiler.\n */\n id: string;\n\n /**\n * Delete dist folder before writing the new compiled files\n */\n deleteDistDir?: boolean;\n\n /**\n * serialized config of the compiler.\n */\n displayConfig?(): string;\n\n /**\n * transpile a single file that gets saved into the workspace, used by `bit compile` and during\n * development\n */\n transpileFile?: (fileContent: string, params: TranspileFileParams) => TranspileFileOutput;\n\n /**\n * transpile all the files of a component, use this when you can't use `transpileFile`\n */\n transpileComponent?: (params: TranspileComponentParams) => Promise<void>;\n\n /**\n * compile components inside isolated capsules. this being used during tag for the release.\n * meaning, the final package of the component has the dists generated by this method.\n */\n build(context: BuildContext): Promise<BuiltTaskResult>;\n\n /**\n * given a source file, return its parallel in the dists. e.g. \"index.ts\" => \"dist/index.js\"\n * both, the return path and the given path are relative paths.\n */\n getDistPathBySrcPath(srcPath: string): string;\n\n /**\n * given a component, returns the path to the source folder to use for the preview, uses the one\n * in node_modules by default\n */\n getPreviewComponentRootPath?(component: Component): string;\n\n /**\n * only supported files matching get compiled. others, are copied to the dist dir.\n */\n isFileSupported(filePath: string): boolean;\n\n /**\n * sugar to create a Compiler task via the concrete compiler\n */\n createTask?(name?: string): BuildTask;\n\n /**\n * run before the build pipeline has started. this is useful when some preparation are needed to\n * be done on all envs before the build starts.\n */\n preBuild?(context: BuildContext): Promise<void>;\n\n /**\n * run after the build pipeline completed for all envs. useful for some cleanups\n */\n postBuild?(context: BuildContext, tasksResults: TaskResultsList): Promise<void>;\n\n /**\n * returns the version of the current compiler instance (e.g. '4.0.1').\n */\n version(): string;\n\n /**\n * returns the display name of the current compiler instance (e.g. 'TypeScript')\n */\n displayName: string;\n}\n"]}
@@ -4,7 +4,6 @@ import type { PubsubMain } from '@teambit/pubsub';
4
4
  import { SerializableResults, Workspace, WatchOptions } from '@teambit/workspace';
5
5
  import { BitId } from '@teambit/legacy-bit-id';
6
6
  import { Logger } from '@teambit/logger';
7
- import ConsumerComponent from '@teambit/legacy/dist/consumer/component';
8
7
  import { Dist } from '@teambit/legacy/dist/consumer/component/sources';
9
8
  import { AspectLoaderMain } from '@teambit/aspect-loader';
10
9
  import { UiMain } from '@teambit/ui';
@@ -38,13 +37,13 @@ export declare class ComponentCompiler {
38
37
  private logger;
39
38
  private dists;
40
39
  private compileErrors;
41
- constructor(pubsub: PubsubMain, workspace: Workspace, component: ConsumerComponent, compilerInstance: Compiler, compilerId: string, logger: Logger, dists?: Dist[], compileErrors?: CompileError[]);
40
+ constructor(pubsub: PubsubMain, workspace: Workspace, component: Component, compilerInstance: Compiler, compilerId: string, logger: Logger, dists?: Dist[], compileErrors?: CompileError[]);
42
41
  compile(noThrow: boolean | undefined, options: CompileOptions): Promise<BuildResult>;
43
42
  private throwOnCompileErrors;
44
43
  private get distDir();
45
44
  private get componentDir();
46
- private compileOneFileWithNewCompiler;
47
- private compileAllFilesWithNewCompiler;
45
+ private compileOneFile;
46
+ private compileAllFiles;
48
47
  }
49
48
  export declare class WorkspaceCompiler {
50
49
  private workspace;
@@ -21,16 +21,6 @@ function _pMapSeries() {
21
21
  return data;
22
22
  }
23
23
 
24
- function _component() {
25
- const data = require("@teambit/component");
26
-
27
- _component = function () {
28
- return data;
29
- };
30
-
31
- return data;
32
- }
33
-
34
24
  function _path() {
35
25
  const data = _interopRequireDefault(require("path"));
36
26
 
@@ -167,11 +157,19 @@ class ComponentCompiler {
167
157
  await dataToPersist.persistAllToFS();
168
158
  }
169
159
 
170
- if (this.compilerInstance.transpileFile) {
171
- await Promise.all(this.component.files.map(file => this.compileOneFileWithNewCompiler(file, options.initiator)));
172
- } else if (this.compilerInstance.transpileComponent) {
173
- await this.compileAllFilesWithNewCompiler(this.component, options.initiator);
174
- } else {
160
+ const compilers = this.compilerInstance.compilers ? this.compilerInstance.compilers : [this.compilerInstance];
161
+ const canTranspileFile = compilers.find(c => c.transpileFile);
162
+ const canTranspileComponent = compilers.find(c => c.transpileComponent);
163
+
164
+ if (canTranspileFile) {
165
+ await Promise.all(this.component.filesystem.files.map(file => this.compileOneFile(file, options.initiator)));
166
+ }
167
+
168
+ if (canTranspileComponent) {
169
+ await this.compileAllFiles(this.component, options.initiator);
170
+ }
171
+
172
+ if (!canTranspileFile && !canTranspileComponent) {
175
173
  throw new Error(`compiler ${this.compilerId.toString()} doesn't implement either "transpileFile" or "transpileComponent" methods`);
176
174
  }
177
175
 
@@ -183,7 +181,7 @@ class ComponentCompiler {
183
181
  dataToPersist.addBasePath(this.workspace.path);
184
182
  await dataToPersist.persistAllToFS();
185
183
  const buildResults = this.dists.map(distFile => distFile.path);
186
- if (this.component.compiler) _loader().default.succeed();
184
+ if (this.component.state._consumer.compiler) _loader().default.succeed();
187
185
  this.pubsub.pub(_compiler().CompilerAspect.id, new (_events().ComponentCompilationOnDoneEvent)(this.compileErrors, this.component, buildResults));
188
186
  return {
189
187
  component: this.component.id.toString(),
@@ -212,7 +210,7 @@ ${this.compileErrors.map(formatError).join('\n')}`);
212
210
  }
213
211
 
214
212
  get distDir() {
215
- const packageName = (0, _componentIdToPackageName().default)(this.component);
213
+ const packageName = (0, _componentIdToPackageName().default)(this.component.state._consumer);
216
214
 
217
215
  const packageDir = _path().default.join('node_modules', packageName);
218
216
 
@@ -222,10 +220,10 @@ ${this.compileErrors.map(formatError).join('\n')}`);
222
220
  }
223
221
 
224
222
  get componentDir() {
225
- return this.workspace.componentDir(new (_component().ComponentID)(this.component.id));
223
+ return this.workspace.componentDir(this.component.id);
226
224
  }
227
225
 
228
- async compileOneFileWithNewCompiler(file, initiator) {
226
+ async compileOneFile(file, initiator) {
229
227
  const options = {
230
228
  componentDir: this.componentDir,
231
229
  filePath: file.relative,
@@ -266,10 +264,10 @@ ${this.compileErrors.map(formatError).join('\n')}`);
266
264
  }
267
265
  }
268
266
 
269
- async compileAllFilesWithNewCompiler(component, initiator) {
267
+ async compileAllFiles(component, initiator) {
270
268
  const base = this.distDir;
271
269
  const filesToCompile = [];
272
- component.files.forEach(file => {
270
+ component.filesystem.files.forEach(file => {
273
271
  const isFileSupported = this.compilerInstance.isFileSupported(file.path);
274
272
 
275
273
  if (isFileSupported) {
@@ -386,7 +384,7 @@ class WorkspaceCompiler {
386
384
  if (this.workspace.isLegacy) throw new Error('workspace-compiler should work for Harmony workspace only');
387
385
  const componentIds = await this.getIdsToCompile(componentsIds, options.changed);
388
386
  const components = await this.workspace.getMany(componentIds);
389
- const componentsAndNewCompilers = [];
387
+ const componentsCompilers = [];
390
388
  components.forEach(c => {
391
389
  var _environment$getCompi, _c$state$_consumer$co;
392
390
 
@@ -396,11 +394,11 @@ class WorkspaceCompiler {
396
394
 
397
395
  if (compilerInstance && (_c$state$_consumer$co = c.state._consumer.componentMap) !== null && _c$state$_consumer$co !== void 0 && _c$state$_consumer$co.getComponentDir()) {
398
396
  const compilerName = compilerInstance.constructor.name || 'compiler';
399
- componentsAndNewCompilers.push(new ComponentCompiler(this.pubsub, this.workspace, c.state._consumer, compilerInstance, compilerName, this.logger));
397
+ componentsCompilers.push(new ComponentCompiler(this.pubsub, this.workspace, c, compilerInstance, compilerName, this.logger));
400
398
  }
401
399
  });
402
- const newCompilersResultOnWorkspace = await (0, _pMapSeries().default)(componentsAndNewCompilers, componentAndNewCompilers => componentAndNewCompilers.compile(noThrow, options));
403
- return newCompilersResultOnWorkspace;
400
+ const resultOnWorkspace = await (0, _pMapSeries().default)(componentsCompilers, componentCompiler => componentCompiler.compile(noThrow, options));
401
+ return resultOnWorkspace;
404
402
  }
405
403
 
406
404
  async getIdsToCompile(componentsIds, changed = false) {
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace-compiler.ts"],"names":["ComponentCompiler","constructor","pubsub","workspace","component","compilerInstance","compilerId","logger","dists","compileErrors","compile","noThrow","options","dataToPersist","deleteDistDir","DataToPersist","removePath","RemovePath","distDir","addBasePath","path","persistAllToFS","transpileFile","Promise","all","files","map","file","compileOneFileWithNewCompiler","initiator","transpileComponent","compileAllFilesWithNewCompiler","Error","toString","throwOnCompileErrors","addManyFiles","buildResults","distFile","compiler","loader","succeed","pub","CompilerAspect","id","ComponentCompilationOnDoneEvent","length","forEach","errorItem","error","formatError","err","join","CompilerErrorEvent","console","message","packageName","packageDir","distDirName","DEFAULT_DIST_DIRNAME","componentDir","ComponentID","filePath","relative","isFileSupported","compileResults","contents","push","base","result","Dist","outputPath","Buffer","from","outputText","shouldCopyNonSupportedFiles","filesToCompile","outputDir","getComponentPackagePath","WorkspaceCompiler","envs","aspectLoader","ui","registerOnComponentChange","onComponentChange","bind","registerOnComponentAdd","registerOnPreWatch","onPreWatch","registerPreStart","onPreStart","registerOnAspectLoadErrorSlot","onAspectLoadFail","preStartOpts","skipCompilation","compileComponents","changed","verbose","CompilationInitiator","PreStart","code","AspectLoadFail","ComponentChanged","results","components","watchOpts","preCompile","start","Date","now","c","_legacy","PreWatch","end","consoleSuccess","componentsIds","ConsumerNotFound","isLegacy","componentIds","getIdsToCompile","getMany","componentsAndNewCompilers","environment","getEnv","env","getCompiler","state","_consumer","componentMap","getComponentDir","compilerName","name","newCompilersResultOnWorkspace","componentAndNewCompilers","resolveMultipleComponentIds","getNewAndModifiedIds","getAllComponentIds"],"mappings":"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","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentID } from '@teambit/component';\nimport { EnvsMain } from '@teambit/envs';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport { SerializableResults, Workspace, WatchOptions } from '@teambit/workspace';\nimport path from 'path';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { Logger } from '@teambit/logger';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy/dist/constants';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Dist, SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport RemovePath from '@teambit/legacy/dist/consumer/component/sources/remove-path';\nimport { UiMain } from '@teambit/ui';\nimport type { PreStartOpts } from '@teambit/ui';\nimport { PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';\nimport { CompilerAspect } from './compiler.aspect';\nimport { CompilerErrorEvent, ComponentCompilationOnDoneEvent } from './events';\nimport { Compiler, CompilationInitiator } from './types';\n\nexport type BuildResult = { component: string; buildResults: string[] | null | undefined };\n\nexport type CompileOptions = {\n changed?: boolean; // compile only new and modified components\n verbose?: boolean; // show more data, such as, dist paths\n /**\n * whether the dist root dir should be deleted before writing new dists.\n * defaults to true for `bit compile` and false everywhere else, such as `bit watch` and `bit\n * start` to avoid webpack \"EINTR\" error.\n */\n deleteDistDir?: boolean;\n initiator: CompilationInitiator; // describes where the compilation is coming from\n};\n\nexport type CompileError = { path: string; error: Error };\n\nexport class ComponentCompiler {\n constructor(\n private pubsub: PubsubMain,\n private workspace: Workspace,\n private component: ConsumerComponent,\n private compilerInstance: Compiler,\n private compilerId: string,\n private logger: Logger,\n private dists: Dist[] = [],\n private compileErrors: CompileError[] = []\n ) {}\n\n async compile(noThrow = true, options: CompileOptions): Promise<BuildResult> {\n let dataToPersist;\n const deleteDistDir = options.deleteDistDir ?? this.compilerInstance.deleteDistDir;\n // delete dist folder before transpilation (because some compilers (like ngPackagr) can generate files there during the compilation process)\n if (deleteDistDir) {\n dataToPersist = new DataToPersist();\n dataToPersist.removePath(new RemovePath(this.distDir));\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n }\n\n if (this.compilerInstance.transpileFile) {\n await Promise.all(\n this.component.files.map((file: SourceFile) => this.compileOneFileWithNewCompiler(file, options.initiator))\n );\n } else if (this.compilerInstance.transpileComponent) {\n await this.compileAllFilesWithNewCompiler(this.component, options.initiator);\n } else {\n throw new Error(\n `compiler ${this.compilerId.toString()} doesn't implement either \"transpileFile\" or \"transpileComponent\" methods`\n );\n }\n this.throwOnCompileErrors(noThrow);\n\n // writing the dists with `component.setDists(dists); component.dists.writeDists` is tricky\n // as it uses other base-paths and doesn't respect the new node-modules base path.\n dataToPersist = new DataToPersist();\n dataToPersist.addManyFiles(this.dists);\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n const buildResults = this.dists.map((distFile) => distFile.path);\n if (this.component.compiler) loader.succeed();\n this.pubsub.pub(\n CompilerAspect.id,\n new ComponentCompilationOnDoneEvent(this.compileErrors, this.component, buildResults)\n );\n return { component: this.component.id.toString(), buildResults };\n }\n\n private throwOnCompileErrors(noThrow = true) {\n if (this.compileErrors.length) {\n this.compileErrors.forEach((errorItem) => {\n this.logger.error(`compilation error at ${errorItem.path}`, errorItem.error);\n });\n const formatError = (errorItem) => `${errorItem.path}\\n${errorItem.error}`;\n const err = new Error(`compilation failed. see the following errors from the compiler\n${this.compileErrors.map(formatError).join('\\n')}`);\n\n this.pubsub.pub(CompilerAspect.id, new CompilerErrorEvent(err));\n\n if (!noThrow) {\n throw err;\n }\n\n this.logger.console(err.message);\n }\n }\n\n private get distDir(): PathOsBasedRelative {\n const packageName = componentIdToPackageName(this.component);\n const packageDir = path.join('node_modules', packageName);\n const distDirName = DEFAULT_DIST_DIRNAME;\n return path.join(packageDir, distDirName);\n }\n\n private get componentDir(): PathOsBasedAbsolute {\n return this.workspace.componentDir(new ComponentID(this.component.id));\n }\n\n private async compileOneFileWithNewCompiler(file: SourceFile, initiator: CompilationInitiator): Promise<void> {\n const options = { componentDir: this.componentDir, filePath: file.relative, initiator };\n const isFileSupported = this.compilerInstance.isFileSupported(file.path);\n let compileResults;\n if (isFileSupported) {\n try {\n compileResults = this.compilerInstance.transpileFile?.(file.contents.toString(), options);\n } catch (error: any) {\n this.compileErrors.push({ path: file.path, error });\n return;\n }\n }\n const base = this.distDir;\n if (isFileSupported && compileResults) {\n this.dists.push(\n ...compileResults.map(\n (result) =>\n new Dist({\n base,\n path: path.join(base, result.outputPath),\n contents: Buffer.from(result.outputText),\n })\n )\n );\n } else if (this.compilerInstance.shouldCopyNonSupportedFiles) {\n // compiler doesn't support this file type. copy the file as is to the dist dir.\n this.dists.push(new Dist({ base, path: path.join(base, file.relative), contents: file.contents }));\n }\n }\n\n private async compileAllFilesWithNewCompiler(\n component: ConsumerComponent,\n initiator: CompilationInitiator\n ): Promise<void> {\n const base = this.distDir;\n const filesToCompile: SourceFile[] = [];\n component.files.forEach((file: SourceFile) => {\n const isFileSupported = this.compilerInstance.isFileSupported(file.path);\n if (isFileSupported) {\n filesToCompile.push(file);\n } else if (this.compilerInstance.shouldCopyNonSupportedFiles) {\n // compiler doesn't support this file type. copy the file as is to the dist dir.\n this.dists.push(\n new Dist({\n base,\n path: path.join(base, file.relative),\n contents: file.contents,\n })\n );\n }\n });\n\n if (filesToCompile.length) {\n try {\n await this.compilerInstance.transpileComponent?.({\n component,\n componentDir: this.componentDir,\n outputDir: this.workspace.getComponentPackagePath(component),\n initiator,\n });\n } catch (error: any) {\n this.compileErrors.push({ path: this.componentDir, error });\n }\n }\n }\n}\n\nexport class WorkspaceCompiler {\n constructor(\n private workspace: Workspace,\n private envs: EnvsMain,\n private pubsub: PubsubMain,\n private aspectLoader: AspectLoaderMain,\n private ui: UiMain,\n private logger: Logger\n ) {\n if (this.workspace) {\n this.workspace.registerOnComponentChange(this.onComponentChange.bind(this));\n this.workspace.registerOnComponentAdd(this.onComponentChange.bind(this));\n this.workspace.registerOnPreWatch(this.onPreWatch.bind(this));\n this.ui.registerPreStart(this.onPreStart.bind(this));\n }\n if (this.aspectLoader) {\n this.aspectLoader.registerOnAspectLoadErrorSlot(this.onAspectLoadFail.bind(this));\n }\n }\n\n async onPreStart(preStartOpts: PreStartOpts): Promise<void> {\n if (preStartOpts.skipCompilation) {\n return;\n }\n await this.compileComponents([], {\n changed: true,\n verbose: false,\n deleteDistDir: false,\n initiator: CompilationInitiator.PreStart,\n });\n }\n\n async onAspectLoadFail(err: Error & { code?: string }, id: ComponentID): Promise<boolean> {\n if (err.code && err.code === 'MODULE_NOT_FOUND' && this.workspace) {\n await this.compileComponents([id.toString()], { initiator: CompilationInitiator.AspectLoadFail }, true);\n return true;\n }\n return false;\n }\n\n async onComponentChange(\n component: Component,\n files: string[],\n initiator?: CompilationInitiator\n ): Promise<SerializableResults> {\n const buildResults = await this.compileComponents(\n [component.id.toString()],\n { initiator: initiator || CompilationInitiator.ComponentChanged },\n true\n );\n return {\n results: buildResults,\n toString() {\n return `${buildResults[0]?.buildResults?.join('\\n\\t')}`;\n },\n };\n }\n\n async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n if (watchOpts.preCompile) {\n const start = Date.now();\n this.logger.console(`compiling ${components.length} components`);\n await this.compileComponents(\n components.map((c) => c.id._legacy),\n { initiator: CompilationInitiator.PreWatch }\n );\n const end = Date.now() - start;\n this.logger.consoleSuccess(`compiled ${components.length} components successfully (${end / 1000} sec)`);\n }\n }\n\n async compileComponents(\n componentsIds: string[] | BitId[] | ComponentID[], // when empty, it compiles new+modified (unless options.all is set),\n options: CompileOptions,\n noThrow?: boolean\n ): Promise<BuildResult[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n if (this.workspace.isLegacy) throw new Error('workspace-compiler should work for Harmony workspace only');\n const componentIds = await this.getIdsToCompile(componentsIds, options.changed);\n const components = await this.workspace.getMany(componentIds);\n\n const componentsAndNewCompilers: ComponentCompiler[] = [];\n components.forEach((c) => {\n const environment = this.envs.getEnv(c).env;\n const compilerInstance = environment.getCompiler?.();\n // if there is no componentDir (e.g. author that added files, not dir), then we can't write the dists\n // inside the component dir.\n if (compilerInstance && c.state._consumer.componentMap?.getComponentDir()) {\n const compilerName = compilerInstance.constructor.name || 'compiler';\n componentsAndNewCompilers.push(\n new ComponentCompiler(\n this.pubsub,\n this.workspace,\n c.state._consumer,\n compilerInstance,\n compilerName,\n this.logger\n )\n );\n }\n });\n const newCompilersResultOnWorkspace = await mapSeries(componentsAndNewCompilers, (componentAndNewCompilers) =>\n componentAndNewCompilers.compile(noThrow, options)\n );\n\n return newCompilersResultOnWorkspace;\n }\n\n private async getIdsToCompile(\n componentsIds: Array<string | ComponentID | BitId>,\n changed = false\n ): Promise<ComponentID[]> {\n if (componentsIds.length) {\n return this.workspace.resolveMultipleComponentIds(componentsIds);\n }\n if (changed) {\n return this.workspace.getNewAndModifiedIds();\n }\n return this.workspace.getAllComponentIds();\n }\n}\n"]}
1
+ {"version":3,"sources":["workspace-compiler.ts"],"names":["ComponentCompiler","constructor","pubsub","workspace","component","compilerInstance","compilerId","logger","dists","compileErrors","compile","noThrow","options","dataToPersist","deleteDistDir","DataToPersist","removePath","RemovePath","distDir","addBasePath","path","persistAllToFS","compilers","canTranspileFile","find","c","transpileFile","canTranspileComponent","transpileComponent","Promise","all","filesystem","files","map","file","compileOneFile","initiator","compileAllFiles","Error","toString","throwOnCompileErrors","addManyFiles","buildResults","distFile","state","_consumer","compiler","loader","succeed","pub","CompilerAspect","id","ComponentCompilationOnDoneEvent","length","forEach","errorItem","error","formatError","err","join","CompilerErrorEvent","console","message","packageName","packageDir","distDirName","DEFAULT_DIST_DIRNAME","componentDir","filePath","relative","isFileSupported","compileResults","contents","push","base","result","Dist","outputPath","Buffer","from","outputText","shouldCopyNonSupportedFiles","filesToCompile","outputDir","getComponentPackagePath","WorkspaceCompiler","envs","aspectLoader","ui","registerOnComponentChange","onComponentChange","bind","registerOnComponentAdd","registerOnPreWatch","onPreWatch","registerPreStart","onPreStart","registerOnAspectLoadErrorSlot","onAspectLoadFail","preStartOpts","skipCompilation","compileComponents","changed","verbose","CompilationInitiator","PreStart","code","AspectLoadFail","ComponentChanged","results","components","watchOpts","preCompile","start","Date","now","_legacy","PreWatch","end","consoleSuccess","componentsIds","ConsumerNotFound","isLegacy","componentIds","getIdsToCompile","getMany","componentsCompilers","environment","getEnv","env","getCompiler","componentMap","getComponentDir","compilerName","name","resultOnWorkspace","componentCompiler","resolveMultipleComponentIds","getNewAndModifiedIds","getAllComponentIds"],"mappings":"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","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport mapSeries from 'p-map-series';\nimport { Component, ComponentID } from '@teambit/component';\nimport { EnvsMain } from '@teambit/envs';\nimport type { PubsubMain } from '@teambit/pubsub';\nimport { SerializableResults, Workspace, WatchOptions } from '@teambit/workspace';\nimport path from 'path';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { Logger } from '@teambit/logger';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { DEFAULT_DIST_DIRNAME } from '@teambit/legacy/dist/constants';\nimport { AbstractVinyl, Dist } from '@teambit/legacy/dist/consumer/component/sources';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport RemovePath from '@teambit/legacy/dist/consumer/component/sources/remove-path';\nimport { UiMain } from '@teambit/ui';\nimport type { PreStartOpts } from '@teambit/ui';\nimport { PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';\nimport { MultiCompiler } from '@teambit/multi-compiler';\nimport { CompilerAspect } from './compiler.aspect';\nimport { CompilerErrorEvent, ComponentCompilationOnDoneEvent } from './events';\nimport { Compiler, CompilationInitiator } from './types';\n\nexport type BuildResult = { component: string; buildResults: string[] | null | undefined };\n\nexport type CompileOptions = {\n changed?: boolean; // compile only new and modified components\n verbose?: boolean; // show more data, such as, dist paths\n /**\n * whether the dist root dir should be deleted before writing new dists.\n * defaults to true for `bit compile` and false everywhere else, such as `bit watch` and `bit\n * start` to avoid webpack \"EINTR\" error.\n */\n deleteDistDir?: boolean;\n initiator: CompilationInitiator; // describes where the compilation is coming from\n};\n\nexport type CompileError = { path: string; error: Error };\n\nexport class ComponentCompiler {\n constructor(\n private pubsub: PubsubMain,\n private workspace: Workspace,\n private component: Component,\n private compilerInstance: Compiler,\n private compilerId: string,\n private logger: Logger,\n private dists: Dist[] = [],\n private compileErrors: CompileError[] = []\n ) {}\n\n async compile(noThrow = true, options: CompileOptions): Promise<BuildResult> {\n let dataToPersist;\n const deleteDistDir = options.deleteDistDir ?? this.compilerInstance.deleteDistDir;\n // delete dist folder before transpilation (because some compilers (like ngPackagr) can generate files there during the compilation process)\n if (deleteDistDir) {\n dataToPersist = new DataToPersist();\n dataToPersist.removePath(new RemovePath(this.distDir));\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n }\n\n const compilers: Compiler[] = (this.compilerInstance as MultiCompiler).compilers\n ? (this.compilerInstance as MultiCompiler).compilers\n : [this.compilerInstance];\n const canTranspileFile = compilers.find((c) => c.transpileFile);\n const canTranspileComponent = compilers.find((c) => c.transpileComponent);\n\n if (canTranspileFile) {\n await Promise.all(\n this.component.filesystem.files.map((file: AbstractVinyl) => this.compileOneFile(file, options.initiator))\n );\n }\n\n if (canTranspileComponent) {\n await this.compileAllFiles(this.component, options.initiator);\n }\n\n if (!canTranspileFile && !canTranspileComponent) {\n throw new Error(\n `compiler ${this.compilerId.toString()} doesn't implement either \"transpileFile\" or \"transpileComponent\" methods`\n );\n }\n this.throwOnCompileErrors(noThrow);\n\n // writing the dists with `component.setDists(dists); component.dists.writeDists` is tricky\n // as it uses other base-paths and doesn't respect the new node-modules base path.\n dataToPersist = new DataToPersist();\n dataToPersist.addManyFiles(this.dists);\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n const buildResults = this.dists.map((distFile) => distFile.path);\n if (this.component.state._consumer.compiler) loader.succeed();\n this.pubsub.pub(\n CompilerAspect.id,\n new ComponentCompilationOnDoneEvent(this.compileErrors, this.component, buildResults)\n );\n return { component: this.component.id.toString(), buildResults };\n }\n\n private throwOnCompileErrors(noThrow = true) {\n if (this.compileErrors.length) {\n this.compileErrors.forEach((errorItem) => {\n this.logger.error(`compilation error at ${errorItem.path}`, errorItem.error);\n });\n const formatError = (errorItem) => `${errorItem.path}\\n${errorItem.error}`;\n const err = new Error(`compilation failed. see the following errors from the compiler\n${this.compileErrors.map(formatError).join('\\n')}`);\n\n this.pubsub.pub(CompilerAspect.id, new CompilerErrorEvent(err));\n\n if (!noThrow) {\n throw err;\n }\n\n this.logger.console(err.message);\n }\n }\n\n private get distDir(): PathOsBasedRelative {\n const packageName = componentIdToPackageName(this.component.state._consumer);\n const packageDir = path.join('node_modules', packageName);\n const distDirName = DEFAULT_DIST_DIRNAME;\n return path.join(packageDir, distDirName);\n }\n\n private get componentDir(): PathOsBasedAbsolute {\n return this.workspace.componentDir(this.component.id);\n }\n\n private async compileOneFile(file: AbstractVinyl, initiator: CompilationInitiator): Promise<void> {\n const options = { componentDir: this.componentDir, filePath: file.relative, initiator };\n const isFileSupported = this.compilerInstance.isFileSupported(file.path);\n let compileResults;\n if (isFileSupported) {\n try {\n compileResults = this.compilerInstance.transpileFile?.(file.contents.toString(), options);\n } catch (error: any) {\n this.compileErrors.push({ path: file.path, error });\n return;\n }\n }\n const base = this.distDir;\n if (isFileSupported && compileResults) {\n this.dists.push(\n ...compileResults.map(\n (result) =>\n new Dist({\n base,\n path: path.join(base, result.outputPath),\n contents: Buffer.from(result.outputText),\n })\n )\n );\n } else if (this.compilerInstance.shouldCopyNonSupportedFiles) {\n // compiler doesn't support this file type. copy the file as is to the dist dir.\n this.dists.push(new Dist({ base, path: path.join(base, file.relative), contents: file.contents }));\n }\n }\n\n private async compileAllFiles(component: Component, initiator: CompilationInitiator): Promise<void> {\n const base = this.distDir;\n const filesToCompile: AbstractVinyl[] = [];\n component.filesystem.files.forEach((file: AbstractVinyl) => {\n const isFileSupported = this.compilerInstance.isFileSupported(file.path);\n if (isFileSupported) {\n filesToCompile.push(file);\n } else if (this.compilerInstance.shouldCopyNonSupportedFiles) {\n // compiler doesn't support this file type. copy the file as is to the dist dir.\n this.dists.push(\n new Dist({\n base,\n path: path.join(base, file.relative),\n contents: file.contents,\n })\n );\n }\n });\n\n if (filesToCompile.length) {\n try {\n await this.compilerInstance.transpileComponent?.({\n component,\n componentDir: this.componentDir,\n outputDir: this.workspace.getComponentPackagePath(component),\n initiator,\n });\n } catch (error: any) {\n this.compileErrors.push({ path: this.componentDir, error });\n }\n }\n }\n}\n\nexport class WorkspaceCompiler {\n constructor(\n private workspace: Workspace,\n private envs: EnvsMain,\n private pubsub: PubsubMain,\n private aspectLoader: AspectLoaderMain,\n private ui: UiMain,\n private logger: Logger\n ) {\n if (this.workspace) {\n this.workspace.registerOnComponentChange(this.onComponentChange.bind(this));\n this.workspace.registerOnComponentAdd(this.onComponentChange.bind(this));\n this.workspace.registerOnPreWatch(this.onPreWatch.bind(this));\n this.ui.registerPreStart(this.onPreStart.bind(this));\n }\n if (this.aspectLoader) {\n this.aspectLoader.registerOnAspectLoadErrorSlot(this.onAspectLoadFail.bind(this));\n }\n }\n\n async onPreStart(preStartOpts: PreStartOpts): Promise<void> {\n if (preStartOpts.skipCompilation) {\n return;\n }\n await this.compileComponents([], {\n changed: true,\n verbose: false,\n deleteDistDir: false,\n initiator: CompilationInitiator.PreStart,\n });\n }\n\n async onAspectLoadFail(err: Error & { code?: string }, id: ComponentID): Promise<boolean> {\n if (err.code && err.code === 'MODULE_NOT_FOUND' && this.workspace) {\n await this.compileComponents([id.toString()], { initiator: CompilationInitiator.AspectLoadFail }, true);\n return true;\n }\n return false;\n }\n\n async onComponentChange(\n component: Component,\n files: string[],\n initiator?: CompilationInitiator\n ): Promise<SerializableResults> {\n const buildResults = await this.compileComponents(\n [component.id.toString()],\n { initiator: initiator || CompilationInitiator.ComponentChanged },\n true\n );\n return {\n results: buildResults,\n toString() {\n return `${buildResults[0]?.buildResults?.join('\\n\\t')}`;\n },\n };\n }\n\n async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n if (watchOpts.preCompile) {\n const start = Date.now();\n this.logger.console(`compiling ${components.length} components`);\n await this.compileComponents(\n components.map((c) => c.id._legacy),\n { initiator: CompilationInitiator.PreWatch }\n );\n const end = Date.now() - start;\n this.logger.consoleSuccess(`compiled ${components.length} components successfully (${end / 1000} sec)`);\n }\n }\n\n async compileComponents(\n componentsIds: string[] | BitId[] | ComponentID[], // when empty, it compiles new+modified (unless options.all is set),\n options: CompileOptions,\n noThrow?: boolean\n ): Promise<BuildResult[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n if (this.workspace.isLegacy) throw new Error('workspace-compiler should work for Harmony workspace only');\n const componentIds = await this.getIdsToCompile(componentsIds, options.changed);\n const components = await this.workspace.getMany(componentIds);\n\n const componentsCompilers: ComponentCompiler[] = [];\n components.forEach((c) => {\n const environment = this.envs.getEnv(c).env;\n const compilerInstance = environment.getCompiler?.();\n // if there is no componentDir (e.g. author that added files, not dir), then we can't write the dists\n // inside the component dir.\n if (compilerInstance && c.state._consumer.componentMap?.getComponentDir()) {\n const compilerName = compilerInstance.constructor.name || 'compiler';\n componentsCompilers.push(\n new ComponentCompiler(this.pubsub, this.workspace, c, compilerInstance, compilerName, this.logger)\n );\n }\n });\n const resultOnWorkspace = await mapSeries(componentsCompilers, (componentCompiler) =>\n componentCompiler.compile(noThrow, options)\n );\n\n return resultOnWorkspace;\n }\n\n private async getIdsToCompile(\n componentsIds: Array<string | ComponentID | BitId>,\n changed = false\n ): Promise<ComponentID[]> {\n if (componentsIds.length) {\n return this.workspace.resolveMultipleComponentIds(componentsIds);\n }\n if (changed) {\n return this.workspace.getNewAndModifiedIds();\n }\n return this.workspace.getAllComponentIds();\n }\n}\n"]}
@@ -1,14 +1,10 @@
1
1
  /* eslint-disable max-classes-per-file */
2
2
  import { BitBaseEvent } from '@teambit/pubsub';
3
- import type ConsumerComponent from '@teambit/legacy/dist/consumer/component';
3
+ import { Component } from '@teambit/component';
4
4
  import { CompileError } from '../workspace-compiler';
5
5
 
6
6
  class ComponentCompilationOnDoneEventData {
7
- constructor(
8
- readonly errors: Array<CompileError>,
9
- readonly component: ConsumerComponent,
10
- readonly buildResults: string[]
11
- ) {}
7
+ constructor(readonly errors: Array<CompileError>, readonly component: Component, readonly buildResults: string[]) {}
12
8
  }
13
9
 
14
10
  export class ComponentCompilationOnDoneEvent extends BitBaseEvent<ComponentCompilationOnDoneEventData> {
@@ -16,7 +12,7 @@ export class ComponentCompilationOnDoneEvent extends BitBaseEvent<ComponentCompi
16
12
 
17
13
  constructor(
18
14
  readonly errors: Array<CompileError>,
19
- readonly component: ConsumerComponent,
15
+ readonly component: Component,
20
16
  readonly buildResults: string[],
21
17
  readonly timestamp = Date.now()
22
18
  ) {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/compiler",
3
- "version": "0.0.651",
3
+ "version": "0.0.654",
4
4
  "homepage": "https://bit.dev/teambit/compilation/compiler",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.compilation",
8
8
  "name": "compiler",
9
- "version": "0.0.651"
9
+ "version": "0.0.654"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -18,18 +18,19 @@
18
18
  "p-map-series": "2.1.0",
19
19
  "@babel/runtime": "7.12.18",
20
20
  "core-js": "^3.0.0",
21
- "@teambit/cli": "0.0.445",
22
- "@teambit/logger": "0.0.535",
23
- "@teambit/pubsub": "0.0.651",
24
- "@teambit/aspect-loader": "0.0.651",
25
- "@teambit/builder": "0.0.651",
26
- "@teambit/component": "0.0.651",
27
- "@teambit/envs": "0.0.651",
28
- "@teambit/generator": "0.0.651",
21
+ "@teambit/cli": "0.0.446",
22
+ "@teambit/component": "0.0.654",
23
+ "@teambit/logger": "0.0.536",
24
+ "@teambit/pubsub": "0.0.654",
25
+ "@teambit/aspect-loader": "0.0.654",
26
+ "@teambit/builder": "0.0.654",
27
+ "@teambit/envs": "0.0.654",
28
+ "@teambit/generator": "0.0.654",
29
29
  "@teambit/legacy-bit-id": "0.0.398",
30
- "@teambit/ui": "0.0.651",
31
- "@teambit/workspace": "0.0.651",
32
- "@teambit/isolator": "0.0.651",
30
+ "@teambit/ui": "0.0.654",
31
+ "@teambit/workspace": "0.0.654",
32
+ "@teambit/isolator": "0.0.654",
33
+ "@teambit/multi-compiler": "0.0.654",
33
34
  "@teambit/bit-error": "0.0.394"
34
35
  },
35
36
  "devDependencies": {
@@ -43,7 +44,7 @@
43
44
  "@teambit/compilation.aspect-docs.compiler": "0.0.132"
44
45
  },
45
46
  "peerDependencies": {
46
- "@teambit/legacy": "1.0.223",
47
+ "@teambit/legacy": "1.0.225",
47
48
  "react-dom": "^16.8.0 || ^17.0.0",
48
49
  "react": "^16.8.0 || ^17.0.0"
49
50
  },
@@ -71,7 +72,7 @@
71
72
  "react": "-"
72
73
  },
73
74
  "peerDependencies": {
74
- "@teambit/legacy": "1.0.223",
75
+ "@teambit/legacy": "1.0.225",
75
76
  "react-dom": "^16.8.0 || ^17.0.0",
76
77
  "react": "^16.8.0 || ^17.0.0"
77
78
  }