@teambit/aspect 0.0.647 → 0.0.651

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 (34) hide show
  1. package/{__compositions-1644549681149.js → __compositions-1645365357220.js} +0 -0
  2. package/{__overview-1644549681149.js → __overview-1645365357220.js} +0 -0
  3. package/{__preview-1644549681149.js → __preview-1645365357220.js} +2 -2
  4. package/artifacts/env-template/public/141.js +1 -1
  5. package/artifacts/env-template/public/181.js +1 -1
  6. package/artifacts/env-template/public/56.js +1 -0
  7. package/artifacts/env-template/public/719.js +143 -0
  8. package/artifacts/env-template/public/848.js +1 -1
  9. package/artifacts/env-template/public/assets-manifest.json +12 -12
  10. package/artifacts/env-template/public/compositions.e9d526785de00ea550e8.js +1 -0
  11. package/artifacts/env-template/public/compositions.html +1 -1
  12. package/artifacts/env-template/public/overview.07b61f1798a1ba2a7216.js +1 -0
  13. package/artifacts/env-template/public/overview.html +1 -1
  14. package/artifacts/env-template/public/preview-root.714be03433cbb3822c7d.js +1 -0
  15. package/artifacts/env-template/public/service-worker.js +1 -1
  16. package/artifacts/env-template/public/static/css/{664.3b6bb93f.css → 719.fd0bd83a.css} +1 -1
  17. package/artifacts/preview/teambit_harmony_aspect-preview.js +1 -1
  18. package/dist/aspect.cmd.d.ts +10 -0
  19. package/dist/aspect.cmd.js +25 -1
  20. package/dist/aspect.cmd.js.map +1 -1
  21. package/dist/aspect.env.d.ts +1 -0
  22. package/dist/aspect.env.js +1 -1
  23. package/dist/aspect.env.js.map +1 -1
  24. package/dist/aspect.main.runtime.d.ts +1 -0
  25. package/dist/aspect.main.runtime.js +54 -7
  26. package/dist/aspect.main.runtime.js.map +1 -1
  27. package/package-tar/teambit-aspect-0.0.651.tgz +0 -0
  28. package/package.json +17 -16
  29. package/artifacts/env-template/public/664.js +0 -133
  30. package/artifacts/env-template/public/841.js +0 -1
  31. package/artifacts/env-template/public/compositions.c22e3e1a054bc7f24f87.js +0 -1
  32. package/artifacts/env-template/public/overview.845fabda046def2dc2b3.js +0 -1
  33. package/artifacts/env-template/public/preview-root.c4da7de2baa5e88a649d.js +0 -1
  34. package/package-tar/teambit-aspect-0.0.647.tgz +0 -0
@@ -9,7 +9,7 @@ require("core-js/modules/es.promise.js");
9
9
  Object.defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
- exports.UnsetAspectCmd = exports.SetAspectCmd = exports.ListAspectCmd = exports.GetAspectCmd = exports.AspectCmd = void 0;
12
+ exports.UpdateAspectCmd = exports.UnsetAspectCmd = exports.SetAspectCmd = exports.ListAspectCmd = exports.GetAspectCmd = exports.AspectCmd = void 0;
13
13
 
14
14
  function _defineProperty2() {
15
15
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -106,6 +106,30 @@ ${(0, _constants().PATTERN_HELP)('aspect set')}`);
106
106
 
107
107
  exports.SetAspectCmd = SetAspectCmd;
108
108
 
109
+ class UpdateAspectCmd {
110
+ constructor(aspect) {
111
+ this.aspect = aspect;
112
+ (0, _defineProperty2().default)(this, "name", 'update <aspect-id> [pattern]');
113
+ (0, _defineProperty2().default)(this, "description", 'update a version of an aspect');
114
+ (0, _defineProperty2().default)(this, "extendedDescription", `default to all components using the aspect, unless "pattern" is provided.
115
+ ${(0, _constants().PATTERN_HELP)('aspect update <aspect-id>')}
116
+ examples:
117
+ "bit update scope.org/aspect '**/ui/**'" - update "ui" components that use scope.org/aspect to the latest version
118
+ "bit update scope.org/aspect@2.0.0" - updates all components using scope.org/aspect to version 2.0.0.`);
119
+ (0, _defineProperty2().default)(this, "options", []);
120
+ (0, _defineProperty2().default)(this, "group", 'development');
121
+ }
122
+
123
+ async report([aspectId, pattern]) {
124
+ const results = await this.aspect.updateAspectsToComponents(aspectId, pattern);
125
+ if (!results.length) return _chalk().default.yellow(`unable to find any component that use ${_chalk().default.bold(aspectId)}`);
126
+ return _chalk().default.green(`the following component(s) have been successfully updated:\n${results.join('\n')}`);
127
+ }
128
+
129
+ }
130
+
131
+ exports.UpdateAspectCmd = UpdateAspectCmd;
132
+
109
133
  class UnsetAspectCmd {
110
134
  constructor(aspect) {
111
135
  this.aspect = aspect;
@@ -1 +1 @@
1
- {"version":3,"sources":["aspect.cmd.ts"],"names":["ListAspectCmd","constructor","aspect","report","name","debug","listAspectsResults","listAspectsOfComponent","rows","Object","keys","map","componentId","longestAspectName","Math","max","_","aspectName","length","aspects","aspectSource","origin","source","padEnd","level","join","table","CLITable","render","SetAspectCmd","pattern","aspectId","config","configParsed","JSON","parse","results","setAspectsToComponents","chalk","yellow","bold","green","UnsetAspectCmd","unsetAspectsFromComponents","GetAspectCmd","componentName","extensions","mergedExtensions","beforeMerge","getAspectsOfComponent","extensionsDetailsToString","e","data","extensionId","toComponentObject","toString","stringify","undefined","beforeMergeOutput","extraData","title","details","moreData","afterMergeTitle","afterMergeOutput","json","extensionsDetailsToObject","reduce","acc","current","jsonObj","forEach","FinalAfterMerge","AspectCmd","unrecognizedSubcommand","red"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAJA;AAQO,MAAMA,aAAN,CAAuC;AAO5CC,EAAAA,WAAW,CAASC,MAAT,EAA6B;AAAA,SAApBA,MAAoB,GAApBA,MAAoB;AAAA,kDANjC,gBAMiC;AAAA,yDAL1B,6CAK0B;AAAA,qDAJ9B,CAAC,CAAC,GAAD,EAAM,OAAN,EAAe,mDAAf,CAAD,CAI8B;AAAA,mDAHhC,aAGgC;AAAA,iEAFjB,GAAE,+BAAa,aAAb,CAA4B,EAEb;AAAE;;AAE9B,QAANC,MAAM,CAAC,CAACC,IAAD,CAAD,EAAmB;AAAEC,IAAAA;AAAF,GAAnB,EAAkD;AAC5D,UAAMC,kBAAkB,GAAG,MAAM,KAAKJ,MAAL,CAAYK,sBAAZ,CAAmCH,IAAnC,CAAjC;AACA,UAAMI,IAAI,GAAGC,MAAM,CAACC,IAAP,CAAYJ,kBAAZ,EAAgCK,GAAhC,CAAqCC,WAAD,IAAiB;AAChE,YAAMC,iBAAiB,GAAGC,IAAI,CAACC,GAAL,CAAS,GAAGT,kBAAkB,CAACM,WAAD,CAAlB,CAAgCD,GAAhC,CAAqCK,CAAD,IAAOA,CAAC,CAACC,UAAF,CAAaC,MAAxD,CAAZ,CAA1B;AACA,YAAMC,OAAO,GAAGb,kBAAkB,CAACM,WAAD,CAAlB,CACbD,GADa,CACRS,YAAD,IAAkB;AACrB,cAAMC,MAAM,GAAGhB,KAAK,GAAI,aAAYe,YAAY,CAACE,MAAO,GAApC,GAAyC,EAA7D;AACA,cAAML,UAAU,GAAGG,YAAY,CAACH,UAAb,CAAwBM,MAAxB,CAA+BV,iBAA/B,CAAnB;AACA,eAAQ,GAAEI,UAAW,YAAWG,YAAY,CAACI,KAAM,IAAGH,MAAO,EAA7D;AACD,OALa,EAMbI,IANa,CAMR,IANQ,CAAhB;AAQA,aAAO,CAACb,WAAD,EAAcO,OAAd,CAAP;AACD,KAXY,CAAb;AAYA,UAAMO,KAAK,GAAG,KAAIC,oBAAJ,EAAa,EAAb,EAAiBnB,IAAjB,CAAd;AACA,WAAOkB,KAAK,CAACE,MAAN,EAAP;AACD;;AAzB2C;;;;AA4BvC,MAAMC,YAAN,CAAsC;AAS3C5B,EAAAA,WAAW,CAASC,MAAT,EAA6B;AAAA,SAApBA,MAAoB,GAApBA,MAAoB;AAAA,kDARjC,oCAQiC;AAAA,yDAP1B,qDAO0B;AAAA,iEANjB;AACzB;AACA,EAAE,+BAAa,YAAb,CAA2B,EAIa;AAAA,qDAH9B,EAG8B;AAAA,mDAFhC,aAEgC;AAAE;;AAE9B,QAANC,MAAM,CAAC,CAAC2B,OAAD,EAAUC,QAAV,EAAoBC,MAApB,CAAD,EAAwD;AAClE,UAAMC,YAAY,GAAGD,MAAM,GAAGE,IAAI,CAACC,KAAL,CAAWH,MAAX,CAAH,GAAwB,EAAnD;AACA,UAAMI,OAAO,GAAG,MAAM,KAAKlC,MAAL,CAAYmC,sBAAZ,CAAmCP,OAAnC,EAA4CC,QAA5C,EAAsDE,YAAtD,CAAtB;AACA,QAAI,CAACG,OAAO,CAAClB,MAAb,EAAqB,OAAOoB,iBAAMC,MAAN,CAAc,mCAAkCD,iBAAME,IAAN,CAAWV,OAAX,CAAoB,UAApE,CAAP;AACrB,WAAOQ,iBAAMG,KAAN,CAAa,+DAA8DL,OAAO,CAACX,IAAR,CAAa,IAAb,CAAmB,EAA9F,CAAP;AACD;;AAhB0C;;;;AAmBtC,MAAMiB,cAAN,CAAwC;AAO7CzC,EAAAA,WAAW,CAASC,MAAT,EAA6B;AAAA,SAApBA,MAAoB,GAApBA,MAAoB;AAAA,kDANjC,6BAMiC;AAAA,yDALzB,oCAKyB;AAAA,iEAJjB,GAAE,+BAAa,cAAb,CAA6B,EAId;AAAA,qDAH9B,EAG8B;AAAA,mDAFhC,aAEgC;AAAE;;AAE9B,QAANC,MAAM,CAAC,CAAC2B,OAAD,EAAUC,QAAV,CAAD,EAAwC;AAClD,UAAMK,OAAO,GAAG,MAAM,KAAKlC,MAAL,CAAYyC,0BAAZ,CAAuCb,OAAvC,EAAgDC,QAAhD,CAAtB;AACA,QAAI,CAACK,OAAO,CAAClB,MAAb,EAAqB,OAAOoB,iBAAMC,MAAN,CAAc,mCAAkCD,iBAAME,IAAN,CAAWV,OAAX,CAAoB,UAApE,CAAP;AACrB,WAAOQ,iBAAMG,KAAN,CAAa,+DAA8DL,OAAO,CAACX,IAAR,CAAa,IAAb,CAAmB,EAA9F,CAAP;AACD;;AAb4C;;;;AAgBxC,MAAMmB,YAAN,CAAsC;AAS3C3C,EAAAA,WAAW,CAASC,MAAT,EAA6B;AAAA,SAApBA,MAAoB,GAApBA,MAAoB;AAAA,kDARjC,oBAQiC;AAAA,yDAP1B,6DAO0B;AAAA,qDAN9B,CACR,CAAC,GAAD,EAAM,OAAN,EAAe,mDAAf,CADQ,EAER,CAAC,GAAD,EAAM,MAAN,EAAc,gBAAd,CAFQ,CAM8B;AAAA,mDAFhC,aAEgC;AAAE;;AAE9B,QAANC,MAAM,CAAC,CAAC0C,aAAD,CAAD,EAA4B;AAAExC,IAAAA;AAAF,GAA5B,EAA2D;AACrE,UAAM;AAAEyC,MAAAA,UAAU,EAAEC,gBAAd;AAAgCC,MAAAA;AAAhC,QAAgD,MAAM,KAAK9C,MAAL,CAAY+C,qBAAZ,CAAkCJ,aAAlC,CAA5D;;AAEA,UAAMK,yBAAyB,GAAIJ,UAAD,IAChCA,UAAU,CACPnC,GADH,CACQwC,CAAD,IAAO;AACV,YAAM;AAAE/C,QAAAA,IAAF;AAAQgD,QAAAA,IAAR;AAAcpB,QAAAA,MAAd;AAAsBqB,QAAAA;AAAtB,UAAsCF,CAAC,CAACG,iBAAF,EAA5C;AACA,aAAQ,GAAEhB,iBAAME,IAAN,CAAW,OAAX,CAAoB,MAAKpC,IAAI,KAAIiD,WAAJ,aAAIA,WAAJ,uBAAIA,WAAW,CAAEE,QAAb,EAAJ,CAA4B;AAC7E,EAAEjB,iBAAME,IAAN,CAAW,SAAX,CAAsB,IAAGN,IAAI,CAACsB,SAAL,CAAexB,MAAf,EAAuByB,SAAvB,EAAkC,CAAlC,CAAqC;AAChE,EAAEnB,iBAAME,IAAN,CAAW,OAAX,CAAoB,MAAKN,IAAI,CAACsB,SAAL,CAAeJ,IAAf,EAAqBK,SAArB,EAAgC,CAAhC,CAAmC;AAC9D,CAHU;AAID,KAPH,EAQGhC,IARH,CAQQ,IARR,CADF;;AAWA,QAAIpB,KAAJ,EAAW;AACT,YAAMqD,iBAAiB,GAAGV,WAAW,CAClCrC,GADuB,CACnB,CAAC;AAAEU,QAAAA,MAAF;AAAUyB,QAAAA,UAAV;AAAsBa,QAAAA;AAAtB,OAAD,KAAuC;AAC1C,cAAMC,KAAK,GAAGtB,iBAAMG,KAAN,CAAYD,IAAZ,CAAkB,WAAUnB,MAAO,EAAnC,CAAd;;AACA,cAAMwC,OAAO,GAAGX,yBAAyB,CAACJ,UAAD,CAAzC;AACA,cAAMgB,QAAQ,GAAGH,SAAS,GAAI,KAAIrB,iBAAME,IAAN,CAAW,aAAX,CAA0B,IAAGN,IAAI,CAACsB,SAAL,CAAeG,SAAf,EAA0BF,SAA1B,EAAqC,CAArC,CAAwC,EAA7E,GAAiF,EAA3G;AACA,eAAQ,GAAEG,KAAM,KAAIC,OAAQ,GAAEC,QAAS,EAAvC;AACD,OANuB,EAOvBrC,IAPuB,CAOlB,MAPkB,CAA1B;;AASA,YAAMsC,eAAe,GAAGzB,iBAAMG,KAAN,CAAYD,IAAZ,CAAiB,mCAAjB,CAAxB;;AACA,YAAMwB,gBAAgB,GAAI,GAAED,eAAgB,KAAIb,yBAAyB,CAACH,gBAAD,CAAmB,EAA5F;AAEA,aAAQ,GAAEW,iBAAkB,SAAQM,gBAAiB,EAArD;AACD;;AAED,WAAOd,yBAAyB,CAACH,gBAAD,CAAhC;AACD;;AAES,QAAJkB,IAAI,CAAC,CAACpB,aAAD,CAAD,EAA4B;AAAExC,IAAAA;AAAF,GAA5B,EAA2D;AACnE,UAAM;AAAEyC,MAAAA,UAAU,EAAEC,gBAAd;AAAgCC,MAAAA;AAAhC,QAAgD,MAAM,KAAK9C,MAAL,CAAY+C,qBAAZ,CAAkCJ,aAAlC,CAA5D;;AAEA,UAAMqB,yBAAyB,GAAIpB,UAAD,IAChCA,UAAU,CAACqB,MAAX,CAAkB,CAACC,GAAD,EAAMC,OAAN,KAAkB;AAClC,YAAM;AAAEjE,QAAAA,IAAF;AAAQgD,QAAAA,IAAR;AAAcpB,QAAAA,MAAd;AAAsBqB,QAAAA;AAAtB,UAAsCgB,OAAO,CAACf,iBAAR,EAA5C;AACA,YAAMrC,UAAU,GAAGb,IAAI,KAAIiD,WAAJ,aAAIA,WAAJ,uBAAIA,WAAW,CAAEE,QAAb,EAAJ,CAAJ,IAAmC,WAAtD;AACAa,MAAAA,GAAG,CAACnD,UAAD,CAAH,GAAkB;AAChBb,QAAAA,IAAI,EAAEa,UADU;AAEhBe,QAAAA,MAFgB;AAGhBoB,QAAAA;AAHgB,OAAlB;AAKA,aAAOgB,GAAP;AACD,KATD,EASG,EATH,CADF;;AAYA,QAAI/D,KAAJ,EAAW;AACT,YAAMiE,OAA4B,GAAG,EAArC;AACAtB,MAAAA,WAAW,CAACuB,OAAZ,CAAoB,CAAC;AAAElD,QAAAA,MAAF;AAAUyB,QAAAA,UAAV;AAAsBa,QAAAA;AAAtB,OAAD,KAAuC;AACzDW,QAAAA,OAAO,CAACjD,MAAD,CAAP,GAAkB;AAChByB,UAAAA,UAAU,EAAEoB,yBAAyB,CAACpB,UAAD,CADrB;AAEhBa,UAAAA;AAFgB,SAAlB;AAID,OALD;AAOAW,MAAAA,OAAO,CAACE,eAAR,GAA0B;AAAE1B,QAAAA,UAAU,EAAEoB,yBAAyB,CAACnB,gBAAD;AAAvC,OAA1B;AACA,aAAOuB,OAAP;AACD;;AAED,WAAOJ,yBAAyB,CAACnB,gBAAD,CAAhC;AACD;;AAzE0C;;;;AA4EtC,MAAM0B,SAAN,CAAmC;AAAA;AAAA,kDACjC,sBADiC;AAAA,mDAEhC,EAFgC;AAAA,yDAG1B,8BAH0B;AAAA,qDAI9B,EAJ8B;AAAA,mDAKhC,aALgC;AAAA,sDAMlB,EANkB;AAAA;;AAQ5B,QAANtE,MAAM,CAAC,CAACuE,sBAAD,CAAD,EAAqC;AAC/C,WAAOpC,iBAAMqC,GAAN,CACJ,IAAGD,sBAAuB,2FADtB,CAAP;AAGD;;AAZuC","sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { CLITable } from '@teambit/cli-table';\nimport chalk from 'chalk';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { AspectMain } from './aspect.main.runtime';\n\nexport class ListAspectCmd implements Command {\n name = 'list [pattern]';\n description = 'list all aspects configured on component(s)';\n options = [['d', 'debug', 'show the origins were the aspects were taken from']] as CommandOptions;\n group = 'development';\n extendedDescription = `${PATTERN_HELP('aspect list')}`;\n\n constructor(private aspect: AspectMain) {}\n\n async report([name]: [string], { debug }: { debug: boolean }) {\n const listAspectsResults = await this.aspect.listAspectsOfComponent(name);\n const rows = Object.keys(listAspectsResults).map((componentId) => {\n const longestAspectName = Math.max(...listAspectsResults[componentId].map((_) => _.aspectName.length));\n const aspects = listAspectsResults[componentId]\n .map((aspectSource) => {\n const origin = debug ? ` (origin: ${aspectSource.source})` : '';\n const aspectName = aspectSource.aspectName.padEnd(longestAspectName);\n return `${aspectName} (level: ${aspectSource.level})${origin}`;\n })\n .join('\\n');\n\n return [componentId, aspects];\n });\n const table = new CLITable([], rows);\n return table.render();\n }\n}\n\nexport class SetAspectCmd implements Command {\n name = 'set <pattern> <aspect-id> [config]';\n description = 'set an aspect to component(s) with optional config.';\n extendedDescription = `enter the config as stringified JSON (e.g. '{\"foo\":\"bar\"}' ).\nif no config entered, the aspect will be set with empty config ({}).\n${PATTERN_HELP('aspect set')}`;\n options = [];\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([pattern, aspectId, config]: [string, string, string]) {\n const configParsed = config ? JSON.parse(config) : {};\n const results = await this.aspect.setAspectsToComponents(pattern, aspectId, configParsed);\n if (!results.length) return chalk.yellow(`unable to find any matching for ${chalk.bold(pattern)} pattern`);\n return chalk.green(`the following component(s) have been successfully updated:\\n${results.join('\\n')}`);\n }\n}\n\nexport class UnsetAspectCmd implements Command {\n name = 'unset <pattern> <aspect-id>';\n description = `unset an aspect from component(s).`;\n extendedDescription = `${PATTERN_HELP('aspect unset')}`;\n options = [];\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([pattern, aspectId]: [string, string]) {\n const results = await this.aspect.unsetAspectsFromComponents(pattern, aspectId);\n if (!results.length) return chalk.yellow(`unable to find any matching for ${chalk.bold(pattern)} pattern`);\n return chalk.green(`the following component(s) have been successfully updated:\\n${results.join('\\n')}`);\n }\n}\n\nexport class GetAspectCmd implements Command {\n name = 'get <component-id>';\n description = \"show aspects' data and configuration of the given component\";\n options = [\n ['d', 'debug', 'show the origins were the aspects were taken from'],\n ['j', 'json', 'format as json'],\n ] as CommandOptions;\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([componentName]: [string], { debug }: { debug: boolean }) {\n const { extensions: mergedExtensions, beforeMerge } = await this.aspect.getAspectsOfComponent(componentName);\n\n const extensionsDetailsToString = (extensions: ExtensionDataList) =>\n extensions\n .map((e) => {\n const { name, data, config, extensionId } = e.toComponentObject();\n return `${chalk.bold('name:')} ${name || extensionId?.toString()}\n${chalk.bold('config:')} ${JSON.stringify(config, undefined, 2)}\n${chalk.bold('data:')} ${JSON.stringify(data, undefined, 2)}\n`;\n })\n .join('\\n');\n\n if (debug) {\n const beforeMergeOutput = beforeMerge\n .map(({ origin, extensions, extraData }) => {\n const title = chalk.green.bold(`Origin: ${origin}`);\n const details = extensionsDetailsToString(extensions);\n const moreData = extraData ? `\\n${chalk.bold('Extra Data:')} ${JSON.stringify(extraData, undefined, 2)}` : '';\n return `${title}\\n${details}${moreData}`;\n })\n .join('\\n\\n');\n\n const afterMergeTitle = chalk.green.bold('Final - after merging all origins');\n const afterMergeOutput = `${afterMergeTitle}\\n${extensionsDetailsToString(mergedExtensions)}`;\n\n return `${beforeMergeOutput}\\n\\n\\n${afterMergeOutput}`;\n }\n\n return extensionsDetailsToString(mergedExtensions);\n }\n\n async json([componentName]: [string], { debug }: { debug: boolean }) {\n const { extensions: mergedExtensions, beforeMerge } = await this.aspect.getAspectsOfComponent(componentName);\n\n const extensionsDetailsToObject = (extensions: ExtensionDataList) =>\n extensions.reduce((acc, current) => {\n const { name, data, config, extensionId } = current.toComponentObject();\n const aspectName = name || extensionId?.toString() || '<no-name>';\n acc[aspectName] = {\n name: aspectName,\n config,\n data,\n };\n return acc;\n }, {});\n\n if (debug) {\n const jsonObj: Record<string, any> = {};\n beforeMerge.forEach(({ origin, extensions, extraData }) => {\n jsonObj[origin] = {\n extensions: extensionsDetailsToObject(extensions),\n extraData,\n };\n });\n\n jsonObj.FinalAfterMerge = { extensions: extensionsDetailsToObject(mergedExtensions) };\n return jsonObj;\n }\n\n return extensionsDetailsToObject(mergedExtensions);\n }\n}\n\nexport class AspectCmd implements Command {\n name = 'aspect <sub-command>';\n alias = '';\n description = 'EXPERIMENTAL. manage aspects';\n options = [];\n group = 'development';\n commands: Command[] = [];\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"aspect\", please run \"bit aspect --help\" to list the subcommands`\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["aspect.cmd.ts"],"names":["ListAspectCmd","constructor","aspect","report","name","debug","listAspectsResults","listAspectsOfComponent","rows","Object","keys","map","componentId","longestAspectName","Math","max","_","aspectName","length","aspects","aspectSource","origin","source","padEnd","level","join","table","CLITable","render","SetAspectCmd","pattern","aspectId","config","configParsed","JSON","parse","results","setAspectsToComponents","chalk","yellow","bold","green","UpdateAspectCmd","updateAspectsToComponents","UnsetAspectCmd","unsetAspectsFromComponents","GetAspectCmd","componentName","extensions","mergedExtensions","beforeMerge","getAspectsOfComponent","extensionsDetailsToString","e","data","extensionId","toComponentObject","toString","stringify","undefined","beforeMergeOutput","extraData","title","details","moreData","afterMergeTitle","afterMergeOutput","json","extensionsDetailsToObject","reduce","acc","current","jsonObj","forEach","FinalAfterMerge","AspectCmd","unrecognizedSubcommand","red"],"mappings":"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","sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { CLITable } from '@teambit/cli-table';\nimport chalk from 'chalk';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { AspectMain } from './aspect.main.runtime';\n\nexport class ListAspectCmd implements Command {\n name = 'list [pattern]';\n description = 'list all aspects configured on component(s)';\n options = [['d', 'debug', 'show the origins were the aspects were taken from']] as CommandOptions;\n group = 'development';\n extendedDescription = `${PATTERN_HELP('aspect list')}`;\n\n constructor(private aspect: AspectMain) {}\n\n async report([name]: [string], { debug }: { debug: boolean }) {\n const listAspectsResults = await this.aspect.listAspectsOfComponent(name);\n const rows = Object.keys(listAspectsResults).map((componentId) => {\n const longestAspectName = Math.max(...listAspectsResults[componentId].map((_) => _.aspectName.length));\n const aspects = listAspectsResults[componentId]\n .map((aspectSource) => {\n const origin = debug ? ` (origin: ${aspectSource.source})` : '';\n const aspectName = aspectSource.aspectName.padEnd(longestAspectName);\n return `${aspectName} (level: ${aspectSource.level})${origin}`;\n })\n .join('\\n');\n\n return [componentId, aspects];\n });\n const table = new CLITable([], rows);\n return table.render();\n }\n}\n\nexport class SetAspectCmd implements Command {\n name = 'set <pattern> <aspect-id> [config]';\n description = 'set an aspect to component(s) with optional config.';\n extendedDescription = `enter the config as stringified JSON (e.g. '{\"foo\":\"bar\"}' ).\nif no config entered, the aspect will be set with empty config ({}).\n${PATTERN_HELP('aspect set')}`;\n options = [];\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([pattern, aspectId, config]: [string, string, string]) {\n const configParsed = config ? JSON.parse(config) : {};\n const results = await this.aspect.setAspectsToComponents(pattern, aspectId, configParsed);\n if (!results.length) return chalk.yellow(`unable to find any matching for ${chalk.bold(pattern)} pattern`);\n return chalk.green(`the following component(s) have been successfully updated:\\n${results.join('\\n')}`);\n }\n}\n\nexport class UpdateAspectCmd implements Command {\n name = 'update <aspect-id> [pattern]';\n description = 'update a version of an aspect';\n extendedDescription = `default to all components using the aspect, unless \"pattern\" is provided.\n${PATTERN_HELP('aspect update <aspect-id>')}\nexamples:\n\"bit update scope.org/aspect '**/ui/**'\" - update \"ui\" components that use scope.org/aspect to the latest version\n\"bit update scope.org/aspect@2.0.0\" - updates all components using scope.org/aspect to version 2.0.0.`;\n\n options = [];\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([aspectId, pattern]: [string, string]) {\n const results = await this.aspect.updateAspectsToComponents(aspectId, pattern);\n if (!results.length) return chalk.yellow(`unable to find any component that use ${chalk.bold(aspectId)}`);\n return chalk.green(`the following component(s) have been successfully updated:\\n${results.join('\\n')}`);\n }\n}\n\nexport class UnsetAspectCmd implements Command {\n name = 'unset <pattern> <aspect-id>';\n description = `unset an aspect from component(s).`;\n extendedDescription = `${PATTERN_HELP('aspect unset')}`;\n options = [];\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([pattern, aspectId]: [string, string]) {\n const results = await this.aspect.unsetAspectsFromComponents(pattern, aspectId);\n if (!results.length) return chalk.yellow(`unable to find any matching for ${chalk.bold(pattern)} pattern`);\n return chalk.green(`the following component(s) have been successfully updated:\\n${results.join('\\n')}`);\n }\n}\n\nexport class GetAspectCmd implements Command {\n name = 'get <component-id>';\n description = \"show aspects' data and configuration of the given component\";\n options = [\n ['d', 'debug', 'show the origins were the aspects were taken from'],\n ['j', 'json', 'format as json'],\n ] as CommandOptions;\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([componentName]: [string], { debug }: { debug: boolean }) {\n const { extensions: mergedExtensions, beforeMerge } = await this.aspect.getAspectsOfComponent(componentName);\n\n const extensionsDetailsToString = (extensions: ExtensionDataList) =>\n extensions\n .map((e) => {\n const { name, data, config, extensionId } = e.toComponentObject();\n return `${chalk.bold('name:')} ${name || extensionId?.toString()}\n${chalk.bold('config:')} ${JSON.stringify(config, undefined, 2)}\n${chalk.bold('data:')} ${JSON.stringify(data, undefined, 2)}\n`;\n })\n .join('\\n');\n\n if (debug) {\n const beforeMergeOutput = beforeMerge\n .map(({ origin, extensions, extraData }) => {\n const title = chalk.green.bold(`Origin: ${origin}`);\n const details = extensionsDetailsToString(extensions);\n const moreData = extraData ? `\\n${chalk.bold('Extra Data:')} ${JSON.stringify(extraData, undefined, 2)}` : '';\n return `${title}\\n${details}${moreData}`;\n })\n .join('\\n\\n');\n\n const afterMergeTitle = chalk.green.bold('Final - after merging all origins');\n const afterMergeOutput = `${afterMergeTitle}\\n${extensionsDetailsToString(mergedExtensions)}`;\n\n return `${beforeMergeOutput}\\n\\n\\n${afterMergeOutput}`;\n }\n\n return extensionsDetailsToString(mergedExtensions);\n }\n\n async json([componentName]: [string], { debug }: { debug: boolean }) {\n const { extensions: mergedExtensions, beforeMerge } = await this.aspect.getAspectsOfComponent(componentName);\n\n const extensionsDetailsToObject = (extensions: ExtensionDataList) =>\n extensions.reduce((acc, current) => {\n const { name, data, config, extensionId } = current.toComponentObject();\n const aspectName = name || extensionId?.toString() || '<no-name>';\n acc[aspectName] = {\n name: aspectName,\n config,\n data,\n };\n return acc;\n }, {});\n\n if (debug) {\n const jsonObj: Record<string, any> = {};\n beforeMerge.forEach(({ origin, extensions, extraData }) => {\n jsonObj[origin] = {\n extensions: extensionsDetailsToObject(extensions),\n extraData,\n };\n });\n\n jsonObj.FinalAfterMerge = { extensions: extensionsDetailsToObject(mergedExtensions) };\n return jsonObj;\n }\n\n return extensionsDetailsToObject(mergedExtensions);\n }\n}\n\nexport class AspectCmd implements Command {\n name = 'aspect <sub-command>';\n alias = '';\n description = 'EXPERIMENTAL. manage aspects';\n options = [];\n group = 'development';\n commands: Command[] = [];\n\n async report([unrecognizedSubcommand]: [string]) {\n return chalk.red(\n `\"${unrecognizedSubcommand}\" is not a subcommand of \"aspect\", please run \"bit aspect --help\" to list the subcommands`\n );\n }\n}\n"]}
@@ -19,6 +19,7 @@ export declare class AspectEnv implements DependenciesEnv {
19
19
  createTsCompiler(tsConfig: TsConfigSourceFile): Compiler;
20
20
  getNpmIgnore(context: GetNpmIgnoreContext): string[];
21
21
  getPreviewConfig(): {
22
+ strategyName: string;
22
23
  splitComponentBundle: boolean;
23
24
  };
24
25
  getDependencies(): Promise<{
@@ -88,7 +88,7 @@ class AspectEnv {
88
88
 
89
89
  getPreviewConfig() {
90
90
  return {
91
- // strategyName: 'component',
91
+ strategyName: 'component',
92
92
  splitComponentBundle: false
93
93
  };
94
94
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["aspect.env.ts"],"names":["tsconfig","require","AspectEnvType","AspectEnv","constructor","reactEnv","aspectLoader","__getDescriptor","type","getTsConfig","tsConfig","targetConf","createTsCompiler","getCompiler","getNpmIgnore","context","patterns","CAPSULE_ARTIFACTS_DIR","isCoreEnv","component","id","toStringWithoutVersion","push","getPreviewConfig","splitComponentBundle","getDependencies","dependencies","react","devDependencies","peerDependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA,MAAMA,QAAQ,GAAGC,OAAO,CAAC,4BAAD,CAAxB;;AAEO,MAAMC,aAAa,GAAG,QAAtB;AAEP;AACA;AACA;;;;AACO,MAAMC,SAAN,CAA2C;AAChDC,EAAAA,WAAW,CAASC,QAAT,EAAqCC,YAArC,EAAqE;AAAA,SAA5DD,QAA4D,GAA5DA,QAA4D;AAAA,SAAhCC,YAAgC,GAAhCA,YAAgC;AAAA,kDAEzE,qDAFyE;AAAE;;AAI7D,QAAfC,eAAe,GAAG;AACtB,WAAO;AACLC,MAAAA,IAAI,EAAEN;AADD,KAAP;AAGD;;AAEDO,EAAAA,WAAW,CAACC,QAAD,EAA+B;AACxC,UAAMC,UAAU,GAAG,qBAAMX,QAAN,EAAgBU,QAAhB,CAAnB;AACA,WAAOC,UAAP;AACD;;AAEDC,EAAAA,gBAAgB,CAACF,QAAD,EAAyC;AACvD,WAAO,KAAKL,QAAL,CAAcQ,WAAd,CAA0B,KAAKJ,WAAL,CAAiBC,QAAjB,CAA1B,CAAP;AACD;;AAEDI,EAAAA,YAAY,CAACC,OAAD,EAA+B;AACzC;AACA;AACA;AACA,UAAMC,QAAQ,GAAG,CAAC,OAAD,EAAW,GAAEC,gCAAsB,GAAnC,CAAjB,CAJyC,CAMzC;AACA;AACA;AACA;;AACA,QAAI,KAAKX,YAAL,CAAkBY,SAAlB,CAA4BH,OAAO,CAACI,SAAR,CAAkBC,EAAlB,CAAqBC,sBAArB,EAA5B,CAAJ,EAAgF;AAC9EL,MAAAA,QAAQ,CAACM,IAAT,CAAe,IAAGL,gCAAsB,eAAxC;AACD;;AACD,WAAOD,QAAP;AACD;;AAEDO,EAAAA,gBAAgB,GAAG;AACjB,WAAO;AACL;AACAC,MAAAA,oBAAoB,EAAE;AAFjB,KAAP;AAID;;AAEoB,QAAfC,eAAe,GAAG;AACtB,WAAO;AACLC,MAAAA,YAAY,EAAE;AACZC,QAAAA,KAAK,EAAE,GADK;AAEZ,qBAAa,GAFD;AAGZ,mBAAW,QAHC;AAIZ;AACA,0BAAkB;AALN,OADT;AAQL;AACAC,MAAAA,eAAe,EAAE;AACfD,QAAAA,KAAK,EAAE,GADQ;AAEf,qBAAa,GAFE;AAGf,wBAAgB,GAHD;AAIf,uBAAe,SAJA;AAKf,wBAAgB,SALD;AAMf,4BAAoB,SANL;AAOf,uBAAe,SAPA;AAQf,4CAAoC;AARrB,OATZ;AAmBLE,MAAAA,gBAAgB,EAAE;AAChB;AACAF,QAAAA,KAAK,EAAE,oBAFS;AAGhB,qBAAa;AAHG;AAnBb,KAAP;AAyBD;;AArE+C","sourcesContent":["import { Compiler } from '@teambit/compiler';\nimport type { DependenciesEnv, GetNpmIgnoreContext } from '@teambit/envs';\nimport { merge } from 'lodash';\nimport { TsConfigSourceFile } from 'typescript';\nimport { ReactEnv } from '@teambit/react';\nimport { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\n\nconst tsconfig = require('./typescript/tsconfig.json');\n\nexport const AspectEnvType = 'aspect';\n\n/**\n * a component environment built for Aspects .\n */\nexport class AspectEnv implements DependenciesEnv {\n constructor(private reactEnv: ReactEnv, private aspectLoader: AspectLoaderMain) {}\n\n icon = 'https://static.bit.dev/extensions-icons/default.svg';\n\n async __getDescriptor() {\n return {\n type: AspectEnvType,\n };\n }\n\n getTsConfig(tsConfig: TsConfigSourceFile) {\n const targetConf = merge(tsconfig, tsConfig);\n return targetConf;\n }\n\n createTsCompiler(tsConfig: TsConfigSourceFile): Compiler {\n return this.reactEnv.getCompiler(this.getTsConfig(tsConfig));\n }\n\n getNpmIgnore(context: GetNpmIgnoreContext) {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n const patterns = ['/*.ts', `${CAPSULE_ARTIFACTS_DIR}/`];\n\n // In order to load the env preview template from core aspects we need it to be in the package of the core envs\n // This is because we don't have the core envs in the local scope so we load it from the package itself in the bvm installation\n // as this will be excluded from the package tar by default (as it's under the CAPSULE_ARTIFACTS_DIR)\n // we want to make sure to add it for the core envs\n if (this.aspectLoader.isCoreEnv(context.component.id.toStringWithoutVersion())) {\n patterns.push(`!${CAPSULE_ARTIFACTS_DIR}/env-template`);\n }\n return patterns;\n }\n\n getPreviewConfig() {\n return {\n // strategyName: 'component',\n splitComponentBundle: false,\n };\n }\n\n async getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n // For aspects the babel runtime should be a runtime dep not only dev as they are compiled by babel\n '@babel/runtime': '7.12.18',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n // TODO: check if we really need react for aspects (maybe for ink support)\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["aspect.env.ts"],"names":["tsconfig","require","AspectEnvType","AspectEnv","constructor","reactEnv","aspectLoader","__getDescriptor","type","getTsConfig","tsConfig","targetConf","createTsCompiler","getCompiler","getNpmIgnore","context","patterns","CAPSULE_ARTIFACTS_DIR","isCoreEnv","component","id","toStringWithoutVersion","push","getPreviewConfig","strategyName","splitComponentBundle","getDependencies","dependencies","react","devDependencies","peerDependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA,MAAMA,QAAQ,GAAGC,OAAO,CAAC,4BAAD,CAAxB;;AAEO,MAAMC,aAAa,GAAG,QAAtB;AAEP;AACA;AACA;;;;AACO,MAAMC,SAAN,CAA2C;AAChDC,EAAAA,WAAW,CAASC,QAAT,EAAqCC,YAArC,EAAqE;AAAA,SAA5DD,QAA4D,GAA5DA,QAA4D;AAAA,SAAhCC,YAAgC,GAAhCA,YAAgC;AAAA,kDAEzE,qDAFyE;AAAE;;AAI7D,QAAfC,eAAe,GAAG;AACtB,WAAO;AACLC,MAAAA,IAAI,EAAEN;AADD,KAAP;AAGD;;AAEDO,EAAAA,WAAW,CAACC,QAAD,EAA+B;AACxC,UAAMC,UAAU,GAAG,qBAAMX,QAAN,EAAgBU,QAAhB,CAAnB;AACA,WAAOC,UAAP;AACD;;AAEDC,EAAAA,gBAAgB,CAACF,QAAD,EAAyC;AACvD,WAAO,KAAKL,QAAL,CAAcQ,WAAd,CAA0B,KAAKJ,WAAL,CAAiBC,QAAjB,CAA1B,CAAP;AACD;;AAEDI,EAAAA,YAAY,CAACC,OAAD,EAA+B;AACzC;AACA;AACA;AACA,UAAMC,QAAQ,GAAG,CAAC,OAAD,EAAW,GAAEC,gCAAsB,GAAnC,CAAjB,CAJyC,CAMzC;AACA;AACA;AACA;;AACA,QAAI,KAAKX,YAAL,CAAkBY,SAAlB,CAA4BH,OAAO,CAACI,SAAR,CAAkBC,EAAlB,CAAqBC,sBAArB,EAA5B,CAAJ,EAAgF;AAC9EL,MAAAA,QAAQ,CAACM,IAAT,CAAe,IAAGL,gCAAsB,eAAxC;AACD;;AACD,WAAOD,QAAP;AACD;;AAEDO,EAAAA,gBAAgB,GAAG;AACjB,WAAO;AACLC,MAAAA,YAAY,EAAE,WADT;AAELC,MAAAA,oBAAoB,EAAE;AAFjB,KAAP;AAID;;AAEoB,QAAfC,eAAe,GAAG;AACtB,WAAO;AACLC,MAAAA,YAAY,EAAE;AACZC,QAAAA,KAAK,EAAE,GADK;AAEZ,qBAAa,GAFD;AAGZ,mBAAW,QAHC;AAIZ;AACA,0BAAkB;AALN,OADT;AAQL;AACAC,MAAAA,eAAe,EAAE;AACfD,QAAAA,KAAK,EAAE,GADQ;AAEf,qBAAa,GAFE;AAGf,wBAAgB,GAHD;AAIf,uBAAe,SAJA;AAKf,wBAAgB,SALD;AAMf,4BAAoB,SANL;AAOf,uBAAe,SAPA;AAQf,4CAAoC;AARrB,OATZ;AAmBLE,MAAAA,gBAAgB,EAAE;AAChB;AACAF,QAAAA,KAAK,EAAE,oBAFS;AAGhB,qBAAa;AAHG;AAnBb,KAAP;AAyBD;;AArE+C","sourcesContent":["import { Compiler } from '@teambit/compiler';\nimport type { DependenciesEnv, GetNpmIgnoreContext } from '@teambit/envs';\nimport { merge } from 'lodash';\nimport { TsConfigSourceFile } from 'typescript';\nimport { ReactEnv } from '@teambit/react';\nimport { CAPSULE_ARTIFACTS_DIR } from '@teambit/builder';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\n\nconst tsconfig = require('./typescript/tsconfig.json');\n\nexport const AspectEnvType = 'aspect';\n\n/**\n * a component environment built for Aspects .\n */\nexport class AspectEnv implements DependenciesEnv {\n constructor(private reactEnv: ReactEnv, private aspectLoader: AspectLoaderMain) {}\n\n icon = 'https://static.bit.dev/extensions-icons/default.svg';\n\n async __getDescriptor() {\n return {\n type: AspectEnvType,\n };\n }\n\n getTsConfig(tsConfig: TsConfigSourceFile) {\n const targetConf = merge(tsconfig, tsConfig);\n return targetConf;\n }\n\n createTsCompiler(tsConfig: TsConfigSourceFile): Compiler {\n return this.reactEnv.getCompiler(this.getTsConfig(tsConfig));\n }\n\n getNpmIgnore(context: GetNpmIgnoreContext) {\n // ignores only .ts files in the root directory, so d.ts files inside dists are unaffected.\n // without this change, the package has \"index.ts\" file in the root, causing typescript to parse it instead of the\n // d.ts files. (changing the \"types\" prop in the package.json file doesn't help).\n const patterns = ['/*.ts', `${CAPSULE_ARTIFACTS_DIR}/`];\n\n // In order to load the env preview template from core aspects we need it to be in the package of the core envs\n // This is because we don't have the core envs in the local scope so we load it from the package itself in the bvm installation\n // as this will be excluded from the package tar by default (as it's under the CAPSULE_ARTIFACTS_DIR)\n // we want to make sure to add it for the core envs\n if (this.aspectLoader.isCoreEnv(context.component.id.toStringWithoutVersion())) {\n patterns.push(`!${CAPSULE_ARTIFACTS_DIR}/env-template`);\n }\n return patterns;\n }\n\n getPreviewConfig() {\n return {\n strategyName: 'component',\n splitComponentBundle: false,\n };\n }\n\n async getDependencies() {\n return {\n dependencies: {\n react: '-',\n 'react-dom': '-',\n 'core-js': '^3.0.0',\n // For aspects the babel runtime should be a runtime dep not only dev as they are compiled by babel\n '@babel/runtime': '7.12.18',\n },\n // TODO: add this only if using ts\n devDependencies: {\n react: '-',\n 'react-dom': '-',\n '@types/mocha': '-',\n '@types/node': '12.20.4',\n '@types/react': '^17.0.8',\n '@types/react-dom': '^17.0.5',\n '@types/jest': '^26.0.0',\n '@types/testing-library__jest-dom': '5.9.5',\n },\n peerDependencies: {\n // TODO: check if we really need react for aspects (maybe for ink support)\n react: '^16.8.0 || ^17.0.0',\n 'react-dom': '^16.8.0 || ^17.0.0',\n },\n };\n }\n}\n"]}
@@ -38,6 +38,7 @@ export declare class AspectMain {
38
38
  extraData: any;
39
39
  }[];
40
40
  }>;
41
+ updateAspectsToComponents(aspectId: string, pattern?: string): Promise<ComponentID[]>;
41
42
  static runtime: import("@teambit/harmony").RuntimeDefinition;
42
43
  static dependencies: import("@teambit/harmony").Aspect[];
43
44
  static provider([react, envs, builder, aspectLoader, compiler, babel, generator, workspace, cli]: [
@@ -41,6 +41,26 @@ function _builder() {
41
41
  return data;
42
42
  }
43
43
 
44
+ function _lodash() {
45
+ const data = require("lodash");
46
+
47
+ _lodash = function () {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _bitError() {
55
+ const data = require("@teambit/bit-error");
56
+
57
+ _bitError = function () {
58
+ return data;
59
+ };
60
+
61
+ return data;
62
+ }
63
+
44
64
  function _cli() {
45
65
  const data = require("@teambit/cli");
46
66
 
@@ -240,18 +260,18 @@ class AspectMain {
240
260
 
241
261
  async setAspectsToComponents(pattern, aspectId, config = {}) {
242
262
  const componentIds = await this.workspace.idsByPattern(pattern);
243
- componentIds.forEach(componentId => {
244
- this.workspace.bitMap.addComponentConfig(componentId, aspectId, config);
245
- });
263
+ await Promise.all(componentIds.map(async componentId => {
264
+ await this.workspace.addSpecificComponentConfig(componentId, aspectId, config);
265
+ }));
246
266
  await this.workspace.bitMap.write();
247
267
  return componentIds;
248
268
  }
249
269
 
250
270
  async unsetAspectsFromComponents(pattern, aspectId) {
251
271
  const componentIds = await this.workspace.idsByPattern(pattern);
252
- componentIds.forEach(componentId => {
253
- this.workspace.bitMap.removeComponentConfig(componentId, aspectId, true);
254
- });
272
+ await Promise.all(componentIds.map(async componentId => {
273
+ await this.workspace.removeSpecificComponentConfig(componentId, aspectId, true);
274
+ }));
255
275
  await this.workspace.bitMap.write();
256
276
  return componentIds;
257
277
  }
@@ -265,6 +285,33 @@ class AspectMain {
265
285
  return this.workspace.componentExtensions(id, componentFromScope);
266
286
  }
267
287
 
288
+ async updateAspectsToComponents(aspectId, pattern) {
289
+ let aspectCompId = await this.workspace.resolveComponentId(aspectId);
290
+
291
+ if (!aspectCompId.hasVersion()) {
292
+ try {
293
+ const fromRemote = await this.workspace.scope.getRemoteComponent(aspectCompId);
294
+ aspectCompId = aspectCompId.changeVersion(fromRemote.id.version);
295
+ } catch (err) {
296
+ throw new (_bitError().BitError)(`unable to find ${aspectId} in the remote. if this is a local aspect, please provide a version with your aspect (${aspectId}) to update to`);
297
+ }
298
+ }
299
+
300
+ const allCompIds = pattern ? await this.workspace.idsByPattern(pattern) : await this.workspace.listIds();
301
+ const allComps = await this.workspace.getMany(allCompIds);
302
+ const updatedComponentIds = await Promise.all(allComps.map(async comp => {
303
+ const aspect = comp.state.aspects.get(aspectCompId.toStringWithoutVersion());
304
+ if (!aspect) return undefined;
305
+ if (aspect.id.version === aspectCompId.version) return undefined; // nothing to update
306
+
307
+ await this.workspace.removeSpecificComponentConfig(comp.id, aspect.id.toString(), true);
308
+ await this.workspace.addSpecificComponentConfig(comp.id, aspectCompId.toString(), aspect.config);
309
+ return comp.id;
310
+ }));
311
+ await this.workspace.bitMap.write();
312
+ return (0, _lodash().compact)(updatedComponentIds);
313
+ }
314
+
268
315
  static async provider([react, envs, builder, aspectLoader, compiler, babel, generator, workspace, cli]) {
269
316
  const babelCompiler = babel.createCompiler({
270
317
  babelTransformOptions: _babelConfig().babelConfig,
@@ -295,7 +342,7 @@ class AspectMain {
295
342
  generator.registerComponentTemplate([_aspect3().aspectTemplate]);
296
343
  const aspectMain = new AspectMain(aspectEnv, envs, workspace);
297
344
  const aspectCmd = new (_aspect4().AspectCmd)();
298
- aspectCmd.commands = [new (_aspect4().ListAspectCmd)(aspectMain), new (_aspect4().GetAspectCmd)(aspectMain), new (_aspect4().SetAspectCmd)(aspectMain), new (_aspect4().UnsetAspectCmd)(aspectMain)];
345
+ aspectCmd.commands = [new (_aspect4().ListAspectCmd)(aspectMain), new (_aspect4().GetAspectCmd)(aspectMain), new (_aspect4().SetAspectCmd)(aspectMain), new (_aspect4().UnsetAspectCmd)(aspectMain), new (_aspect4().UpdateAspectCmd)(aspectMain)];
299
346
  cli.register(aspectCmd);
300
347
  return aspectMain;
301
348
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["aspect.main.runtime.ts"],"names":["tsconfig","require","AspectMain","constructor","aspectEnv","envs","workspace","compose","transformers","targetEnv","merge","listAspectsOfComponent","pattern","getIds","listIds","idsByPattern","componentIds","results","Promise","all","map","id","aspectSources","getAspectNamesForComponent","toString","componentFromScope","scope","get","beforeMerge","componentExtensions","forEach","source","extensions","ext","aspectName","name","extensionId","alreadySaved","find","_","push","origin","level","getLevelBySourceOrigin","setAspectsToComponents","aspectId","config","componentId","bitMap","addComponentConfig","write","unsetAspectsFromComponents","removeComponentConfig","getAspectsOfComponent","resolveComponentId","provider","react","builder","aspectLoader","compiler","babel","generator","cli","babelCompiler","createCompiler","babelTransformOptions","babelConfig","distDir","distGlobPatterns","compilerOverride","override","getCompiler","transformer","mergeTsConfig","setArtifactName","setDistGlobPatterns","setShouldCopyNonSupportedFiles","tsCompiler","env","compilerTasksOverride","overrideCompilerTasks","createTask","AspectEnv","reactEnv","coreExporterTask","CoreExporterTask","__dirname","includes","registerBuildTasks","registerEnv","registerComponentTemplate","aspectTemplate","aspectMain","aspectCmd","AspectCmd","commands","ListAspectCmd","GetAspectCmd","SetAspectCmd","UnsetAspectCmd","register","MainRuntime","ReactAspect","EnvsAspect","BuilderAspect","AspectLoaderAspect","CompilerAspect","BabelAspect","GeneratorAspect","WorkspaceAspect","CLIAspect","AspectAspect","addRuntime"],"mappings":"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","sourcesContent":["import { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Environment, EnvsAspect, EnvsMain, EnvTransformer } from '@teambit/envs';\nimport { ReactAspect, ReactMain } from '@teambit/react';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { BabelAspect, BabelMain } from '@teambit/babel';\nimport { ComponentID } from '@teambit/component-id';\nimport WorkspaceAspect, { ExtensionsOrigin, Workspace } from '@teambit/workspace';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { AspectAspect } from './aspect.aspect';\nimport { AspectEnv } from './aspect.env';\nimport { CoreExporterTask } from './core-exporter.task';\nimport { aspectTemplate } from './templates/aspect';\nimport { babelConfig } from './babel/babel-config';\nimport { AspectCmd, GetAspectCmd, ListAspectCmd, SetAspectCmd, UnsetAspectCmd } from './aspect.cmd';\n\nexport type AspectSource = { aspectName: string; source: string; level: string };\n\nconst tsconfig = require('./typescript/tsconfig.json');\n\nexport class AspectMain {\n constructor(readonly aspectEnv: AspectEnv, private envs: EnvsMain, private workspace: Workspace) {}\n\n /**\n * compose your own aspect environment.\n */\n compose(transformers: EnvTransformer[] = [], targetEnv: Environment = {}) {\n return this.envs.compose(this.envs.merge(targetEnv, this.aspectEnv), transformers);\n }\n\n async listAspectsOfComponent(pattern?: string): Promise<{ [component: string]: AspectSource[] }> {\n const getIds = async () => {\n if (!pattern) return this.workspace.listIds();\n return this.workspace.idsByPattern(pattern);\n };\n const componentIds = await getIds();\n const results = {};\n await Promise.all(\n componentIds.map(async (id) => {\n const aspectSources = await this.getAspectNamesForComponent(id);\n results[id.toString()] = aspectSources;\n })\n );\n return results;\n }\n\n private async getAspectNamesForComponent(id: ComponentID): Promise<AspectSource[]> {\n const componentFromScope = await this.workspace.scope.get(id);\n const { beforeMerge } = await this.workspace.componentExtensions(id, componentFromScope);\n const aspectSources: AspectSource[] = [];\n beforeMerge.forEach((source) => {\n source.extensions.forEach((ext) => {\n const aspectName = ext.name || ext.extensionId?.toString() || '<no-name>';\n const alreadySaved = aspectSources.find((_) => _.aspectName === aspectName);\n if (alreadySaved) return;\n aspectSources.push({ aspectName, source: source.origin, level: this.getLevelBySourceOrigin(source.origin) });\n });\n });\n return aspectSources;\n }\n\n private getLevelBySourceOrigin(origin: ExtensionsOrigin) {\n switch (origin) {\n case 'BitmapFile':\n case 'ComponentJsonFile':\n case 'ModelSpecific':\n return 'component';\n default:\n return 'workspace';\n }\n }\n\n async setAspectsToComponents(\n pattern: string,\n aspectId: string,\n config: Record<string, any> = {}\n ): Promise<ComponentID[]> {\n const componentIds = await this.workspace.idsByPattern(pattern);\n componentIds.forEach((componentId) => {\n this.workspace.bitMap.addComponentConfig(componentId, aspectId, config);\n });\n await this.workspace.bitMap.write();\n\n return componentIds;\n }\n\n async unsetAspectsFromComponents(pattern: string, aspectId: string): Promise<ComponentID[]> {\n const componentIds = await this.workspace.idsByPattern(pattern);\n componentIds.forEach((componentId) => {\n this.workspace.bitMap.removeComponentConfig(componentId, aspectId, true);\n });\n await this.workspace.bitMap.write();\n\n return componentIds;\n }\n\n async getAspectsOfComponent(id: string | ComponentID) {\n if (typeof id === 'string') {\n id = await this.workspace.resolveComponentId(id);\n }\n const componentFromScope = await this.workspace.scope.get(id);\n return this.workspace.componentExtensions(id, componentFromScope);\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n ReactAspect,\n EnvsAspect,\n BuilderAspect,\n AspectLoaderAspect,\n CompilerAspect,\n BabelAspect,\n GeneratorAspect,\n WorkspaceAspect,\n CLIAspect,\n ];\n\n static async provider([react, envs, builder, aspectLoader, compiler, babel, generator, workspace, cli]: [\n ReactMain,\n EnvsMain,\n BuilderMain,\n AspectLoaderMain,\n CompilerMain,\n BabelMain,\n GeneratorMain,\n Workspace,\n CLIMain\n ]) {\n const babelCompiler = babel.createCompiler({\n babelTransformOptions: babelConfig,\n distDir: 'dist',\n distGlobPatterns: [`dist/**`, `!dist/**/*.d.ts`, `!dist/tsconfig.tsbuildinfo`],\n });\n const compilerOverride = envs.override({\n getCompiler: () => {\n return babelCompiler;\n },\n });\n\n const transformer = (config) => {\n config\n .mergeTsConfig(tsconfig)\n .setArtifactName('declaration')\n .setDistGlobPatterns([`dist/**/*.d.ts`])\n .setShouldCopyNonSupportedFiles(false);\n return config;\n };\n const tsCompiler = react.env.getCompiler([transformer]);\n\n const compilerTasksOverride = react.overrideCompilerTasks([\n compiler.createTask('BabelCompiler', babelCompiler),\n compiler.createTask('TypescriptCompiler', tsCompiler),\n ]);\n\n const aspectEnv = react.compose(\n [compilerOverride, compilerTasksOverride],\n new AspectEnv(react.reactEnv, aspectLoader)\n );\n\n const coreExporterTask = new CoreExporterTask(aspectEnv, aspectLoader);\n if (!__dirname.includes('@teambit/bit')) {\n builder.registerBuildTasks([coreExporterTask]);\n }\n\n envs.registerEnv(aspectEnv);\n generator.registerComponentTemplate([aspectTemplate]);\n const aspectMain = new AspectMain(aspectEnv as AspectEnv, envs, workspace);\n const aspectCmd = new AspectCmd();\n aspectCmd.commands = [\n new ListAspectCmd(aspectMain),\n new GetAspectCmd(aspectMain),\n new SetAspectCmd(aspectMain),\n new UnsetAspectCmd(aspectMain),\n ];\n cli.register(aspectCmd);\n\n return aspectMain;\n }\n}\n\nAspectAspect.addRuntime(AspectMain);\n"]}
1
+ {"version":3,"sources":["aspect.main.runtime.ts"],"names":["tsconfig","require","AspectMain","constructor","aspectEnv","envs","workspace","compose","transformers","targetEnv","merge","listAspectsOfComponent","pattern","getIds","listIds","idsByPattern","componentIds","results","Promise","all","map","id","aspectSources","getAspectNamesForComponent","toString","componentFromScope","scope","get","beforeMerge","componentExtensions","forEach","source","extensions","ext","aspectName","name","extensionId","alreadySaved","find","_","push","origin","level","getLevelBySourceOrigin","setAspectsToComponents","aspectId","config","componentId","addSpecificComponentConfig","bitMap","write","unsetAspectsFromComponents","removeSpecificComponentConfig","getAspectsOfComponent","resolveComponentId","updateAspectsToComponents","aspectCompId","hasVersion","fromRemote","getRemoteComponent","changeVersion","version","err","BitError","allCompIds","allComps","getMany","updatedComponentIds","comp","aspect","state","aspects","toStringWithoutVersion","undefined","provider","react","builder","aspectLoader","compiler","babel","generator","cli","babelCompiler","createCompiler","babelTransformOptions","babelConfig","distDir","distGlobPatterns","compilerOverride","override","getCompiler","transformer","mergeTsConfig","setArtifactName","setDistGlobPatterns","setShouldCopyNonSupportedFiles","tsCompiler","env","compilerTasksOverride","overrideCompilerTasks","createTask","AspectEnv","reactEnv","coreExporterTask","CoreExporterTask","__dirname","includes","registerBuildTasks","registerEnv","registerComponentTemplate","aspectTemplate","aspectMain","aspectCmd","AspectCmd","commands","ListAspectCmd","GetAspectCmd","SetAspectCmd","UnsetAspectCmd","UpdateAspectCmd","register","MainRuntime","ReactAspect","EnvsAspect","BuilderAspect","AspectLoaderAspect","CompilerAspect","BabelAspect","GeneratorAspect","WorkspaceAspect","CLIAspect","AspectAspect","addRuntime"],"mappings":"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","sourcesContent":["import { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { compact } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Environment, EnvsAspect, EnvsMain, EnvTransformer } from '@teambit/envs';\nimport { ReactAspect, ReactMain } from '@teambit/react';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { BabelAspect, BabelMain } from '@teambit/babel';\nimport { ComponentID } from '@teambit/component-id';\nimport WorkspaceAspect, { ExtensionsOrigin, Workspace } from '@teambit/workspace';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { AspectAspect } from './aspect.aspect';\nimport { AspectEnv } from './aspect.env';\nimport { CoreExporterTask } from './core-exporter.task';\nimport { aspectTemplate } from './templates/aspect';\nimport { babelConfig } from './babel/babel-config';\nimport { AspectCmd, GetAspectCmd, ListAspectCmd, SetAspectCmd, UnsetAspectCmd, UpdateAspectCmd } from './aspect.cmd';\n\nexport type AspectSource = { aspectName: string; source: string; level: string };\n\nconst tsconfig = require('./typescript/tsconfig.json');\n\nexport class AspectMain {\n constructor(readonly aspectEnv: AspectEnv, private envs: EnvsMain, private workspace: Workspace) {}\n\n /**\n * compose your own aspect environment.\n */\n compose(transformers: EnvTransformer[] = [], targetEnv: Environment = {}) {\n return this.envs.compose(this.envs.merge(targetEnv, this.aspectEnv), transformers);\n }\n\n async listAspectsOfComponent(pattern?: string): Promise<{ [component: string]: AspectSource[] }> {\n const getIds = async () => {\n if (!pattern) return this.workspace.listIds();\n return this.workspace.idsByPattern(pattern);\n };\n const componentIds = await getIds();\n const results = {};\n await Promise.all(\n componentIds.map(async (id) => {\n const aspectSources = await this.getAspectNamesForComponent(id);\n results[id.toString()] = aspectSources;\n })\n );\n return results;\n }\n\n private async getAspectNamesForComponent(id: ComponentID): Promise<AspectSource[]> {\n const componentFromScope = await this.workspace.scope.get(id);\n const { beforeMerge } = await this.workspace.componentExtensions(id, componentFromScope);\n const aspectSources: AspectSource[] = [];\n beforeMerge.forEach((source) => {\n source.extensions.forEach((ext) => {\n const aspectName = ext.name || ext.extensionId?.toString() || '<no-name>';\n const alreadySaved = aspectSources.find((_) => _.aspectName === aspectName);\n if (alreadySaved) return;\n aspectSources.push({ aspectName, source: source.origin, level: this.getLevelBySourceOrigin(source.origin) });\n });\n });\n return aspectSources;\n }\n\n private getLevelBySourceOrigin(origin: ExtensionsOrigin) {\n switch (origin) {\n case 'BitmapFile':\n case 'ComponentJsonFile':\n case 'ModelSpecific':\n return 'component';\n default:\n return 'workspace';\n }\n }\n\n async setAspectsToComponents(\n pattern: string,\n aspectId: string,\n config: Record<string, any> = {}\n ): Promise<ComponentID[]> {\n const componentIds = await this.workspace.idsByPattern(pattern);\n await Promise.all(\n componentIds.map(async (componentId) => {\n await this.workspace.addSpecificComponentConfig(componentId, aspectId, config);\n })\n );\n await this.workspace.bitMap.write();\n\n return componentIds;\n }\n\n async unsetAspectsFromComponents(pattern: string, aspectId: string): Promise<ComponentID[]> {\n const componentIds = await this.workspace.idsByPattern(pattern);\n await Promise.all(\n componentIds.map(async (componentId) => {\n await this.workspace.removeSpecificComponentConfig(componentId, aspectId, true);\n })\n );\n await this.workspace.bitMap.write();\n\n return componentIds;\n }\n\n async getAspectsOfComponent(id: string | ComponentID) {\n if (typeof id === 'string') {\n id = await this.workspace.resolveComponentId(id);\n }\n const componentFromScope = await this.workspace.scope.get(id);\n return this.workspace.componentExtensions(id, componentFromScope);\n }\n\n async updateAspectsToComponents(aspectId: string, pattern?: string): Promise<ComponentID[]> {\n let aspectCompId = await this.workspace.resolveComponentId(aspectId);\n if (!aspectCompId.hasVersion()) {\n try {\n const fromRemote = await this.workspace.scope.getRemoteComponent(aspectCompId);\n aspectCompId = aspectCompId.changeVersion(fromRemote.id.version);\n } catch (err) {\n throw new BitError(\n `unable to find ${aspectId} in the remote. if this is a local aspect, please provide a version with your aspect (${aspectId}) to update to`\n );\n }\n }\n const allCompIds = pattern ? await this.workspace.idsByPattern(pattern) : await this.workspace.listIds();\n const allComps = await this.workspace.getMany(allCompIds);\n const updatedComponentIds = await Promise.all(\n allComps.map(async (comp) => {\n const aspect = comp.state.aspects.get(aspectCompId.toStringWithoutVersion());\n if (!aspect) return undefined;\n if (aspect.id.version === aspectCompId.version) return undefined; // nothing to update\n await this.workspace.removeSpecificComponentConfig(comp.id, aspect.id.toString(), true);\n await this.workspace.addSpecificComponentConfig(comp.id, aspectCompId.toString(), aspect.config);\n return comp.id;\n })\n );\n await this.workspace.bitMap.write();\n return compact(updatedComponentIds);\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n ReactAspect,\n EnvsAspect,\n BuilderAspect,\n AspectLoaderAspect,\n CompilerAspect,\n BabelAspect,\n GeneratorAspect,\n WorkspaceAspect,\n CLIAspect,\n ];\n\n static async provider([react, envs, builder, aspectLoader, compiler, babel, generator, workspace, cli]: [\n ReactMain,\n EnvsMain,\n BuilderMain,\n AspectLoaderMain,\n CompilerMain,\n BabelMain,\n GeneratorMain,\n Workspace,\n CLIMain\n ]) {\n const babelCompiler = babel.createCompiler({\n babelTransformOptions: babelConfig,\n distDir: 'dist',\n distGlobPatterns: [`dist/**`, `!dist/**/*.d.ts`, `!dist/tsconfig.tsbuildinfo`],\n });\n const compilerOverride = envs.override({\n getCompiler: () => {\n return babelCompiler;\n },\n });\n\n const transformer = (config) => {\n config\n .mergeTsConfig(tsconfig)\n .setArtifactName('declaration')\n .setDistGlobPatterns([`dist/**/*.d.ts`])\n .setShouldCopyNonSupportedFiles(false);\n return config;\n };\n const tsCompiler = react.env.getCompiler([transformer]);\n\n const compilerTasksOverride = react.overrideCompilerTasks([\n compiler.createTask('BabelCompiler', babelCompiler),\n compiler.createTask('TypescriptCompiler', tsCompiler),\n ]);\n\n const aspectEnv = react.compose(\n [compilerOverride, compilerTasksOverride],\n new AspectEnv(react.reactEnv, aspectLoader)\n );\n\n const coreExporterTask = new CoreExporterTask(aspectEnv, aspectLoader);\n if (!__dirname.includes('@teambit/bit')) {\n builder.registerBuildTasks([coreExporterTask]);\n }\n\n envs.registerEnv(aspectEnv);\n generator.registerComponentTemplate([aspectTemplate]);\n const aspectMain = new AspectMain(aspectEnv as AspectEnv, envs, workspace);\n const aspectCmd = new AspectCmd();\n aspectCmd.commands = [\n new ListAspectCmd(aspectMain),\n new GetAspectCmd(aspectMain),\n new SetAspectCmd(aspectMain),\n new UnsetAspectCmd(aspectMain),\n new UpdateAspectCmd(aspectMain),\n ];\n cli.register(aspectCmd);\n\n return aspectMain;\n }\n}\n\nAspectAspect.addRuntime(AspectMain);\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/aspect",
3
- "version": "0.0.647",
3
+ "version": "0.0.651",
4
4
  "homepage": "https://bit.dev/teambit/harmony/aspect",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "aspect",
9
- "version": "0.0.647"
9
+ "version": "0.0.651"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -26,21 +26,22 @@
26
26
  "@babel/runtime": "7.12.18",
27
27
  "core-js": "^3.0.0",
28
28
  "@teambit/cli-table": "0.0.33",
29
- "@teambit/cli": "0.0.441",
30
- "@teambit/aspect-loader": "0.0.647",
31
- "@teambit/builder": "0.0.647",
32
- "@teambit/compiler": "0.0.647",
33
- "@teambit/envs": "0.0.647",
34
- "@teambit/react": "0.0.647",
35
- "@teambit/babel": "0.0.647",
29
+ "@teambit/cli": "0.0.445",
30
+ "@teambit/aspect-loader": "0.0.651",
31
+ "@teambit/builder": "0.0.651",
32
+ "@teambit/compiler": "0.0.651",
33
+ "@teambit/envs": "0.0.651",
34
+ "@teambit/react": "0.0.651",
35
+ "@teambit/babel": "0.0.651",
36
+ "@teambit/bit-error": "0.0.394",
36
37
  "@teambit/component-id": "0.0.401",
37
- "@teambit/generator": "0.0.647",
38
- "@teambit/workspace": "0.0.647",
39
- "@teambit/compositions": "0.0.647",
38
+ "@teambit/generator": "0.0.651",
39
+ "@teambit/workspace": "0.0.651",
40
+ "@teambit/compositions": "0.0.651",
40
41
  "@teambit/design.ui.empty-box": "0.0.353",
41
- "@teambit/tester": "0.0.647",
42
- "@teambit/ui": "0.0.647",
43
- "@teambit/isolator": "0.0.647"
42
+ "@teambit/tester": "0.0.651",
43
+ "@teambit/ui": "0.0.651",
44
+ "@teambit/isolator": "0.0.651"
44
45
  },
45
46
  "devDependencies": {
46
47
  "@types/react": "^17.0.8",
@@ -52,7 +53,7 @@
52
53
  "@types/node": "12.20.4"
53
54
  },
54
55
  "peerDependencies": {
55
- "@teambit/legacy": "1.0.219",
56
+ "@teambit/legacy": "1.0.223",
56
57
  "react-dom": "^16.8.0 || ^17.0.0",
57
58
  "react": "^16.8.0 || ^17.0.0"
58
59
  },