@teambit/aspect 0.0.637 → 0.0.641

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 (31) hide show
  1. package/{__compositions-1643599267183.js → __compositions-1644176887286.js} +0 -0
  2. package/{__overview-1643599267183.js → __overview-1644176887286.js} +0 -0
  3. package/{__preview-1643599267183.js → __preview-1644176887286.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/664.js +6 -4
  7. package/artifacts/env-template/public/733.js +1 -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.d358d3b1455dbd0ce85c.js +1 -0
  11. package/artifacts/env-template/public/compositions.html +1 -1
  12. package/artifacts/env-template/public/{overview.efc721595618d778f5d7.js → overview.92a5e67a813dde7c514d.js} +1 -1
  13. package/artifacts/env-template/public/overview.html +1 -1
  14. package/artifacts/env-template/public/preview-root.b7c3405a276c5fb44ba9.js +1 -0
  15. package/artifacts/env-template/public/service-worker.js +1 -1
  16. package/artifacts/env-template/public/static/css/664.fd0bd83a.css +1 -0
  17. package/artifacts/env-template/public/static/css/{previewRoot.5ad41161.css → previewRoot.1262db93.css} +1 -1
  18. package/artifacts/preview/teambit_harmony_aspect-preview.js +1 -1
  19. package/dist/aspect.cmd.d.ts +7 -3
  20. package/dist/aspect.cmd.js +44 -10
  21. package/dist/aspect.cmd.js.map +1 -1
  22. package/dist/aspect.main.runtime.d.ts +12 -3
  23. package/dist/aspect.main.runtime.js +50 -11
  24. package/dist/aspect.main.runtime.js.map +1 -1
  25. package/package-tar/teambit-aspect-0.0.641.tgz +0 -0
  26. package/package.json +17 -16
  27. package/artifacts/env-template/public/287.js +0 -1
  28. package/artifacts/env-template/public/compositions.545ce1870255a5cddfff.js +0 -1
  29. package/artifacts/env-template/public/preview-root.344bfad0432988cf6b3e.js +0 -1
  30. package/artifacts/env-template/public/static/css/664.e8cc4753.css +0 -1
  31. package/package-tar/teambit-aspect-0.0.637.tgz +0 -0
@@ -21,6 +21,26 @@ function _defineProperty2() {
21
21
  return data;
22
22
  }
23
23
 
24
+ function _constants() {
25
+ const data = require("@teambit/legacy/dist/constants");
26
+
27
+ _constants = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _cliTable() {
35
+ const data = require("@teambit/cli-table");
36
+
37
+ _cliTable = function () {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
24
44
  function _chalk() {
25
45
  const data = _interopRequireDefault(require("chalk"));
26
46
 
@@ -35,15 +55,28 @@ function _chalk() {
35
55
  class ListAspectCmd {
36
56
  constructor(aspect) {
37
57
  this.aspect = aspect;
38
- (0, _defineProperty2().default)(this, "name", 'list <component-id>');
39
- (0, _defineProperty2().default)(this, "description", 'list all aspect names configured on a component');
40
- (0, _defineProperty2().default)(this, "options", []);
58
+ (0, _defineProperty2().default)(this, "name", 'list [pattern]');
59
+ (0, _defineProperty2().default)(this, "description", 'list all aspects configured on component(s)');
60
+ (0, _defineProperty2().default)(this, "options", [['d', 'debug', 'show the origins were the aspects were taken from']]);
41
61
  (0, _defineProperty2().default)(this, "group", 'development');
62
+ (0, _defineProperty2().default)(this, "extendedDescription", `${(0, _constants().PATTERN_HELP)('aspect list')}`);
42
63
  }
43
64
 
44
- async report([name]) {
45
- const aspectIds = await this.aspect.listAspectsOfComponent(name);
46
- return aspectIds.join('\n');
65
+ async report([name], {
66
+ debug
67
+ }) {
68
+ const listAspectsResults = await this.aspect.listAspectsOfComponent(name);
69
+ const rows = Object.keys(listAspectsResults).map(componentId => {
70
+ const longestAspectName = Math.max(...listAspectsResults[componentId].map(_ => _.aspectName.length));
71
+ const aspects = listAspectsResults[componentId].map(aspectSource => {
72
+ const origin = debug ? ` (origin: ${aspectSource.source})` : '';
73
+ const aspectName = aspectSource.aspectName.padEnd(longestAspectName);
74
+ return `${aspectName} (level: ${aspectSource.level})${origin}`;
75
+ }).join('\n');
76
+ return [componentId, aspects];
77
+ });
78
+ const table = new (_cliTable().CLITable)([], rows);
79
+ return table.render();
47
80
  }
48
81
 
49
82
  }
@@ -54,10 +87,10 @@ class SetAspectCmd {
54
87
  constructor(aspect) {
55
88
  this.aspect = aspect;
56
89
  (0, _defineProperty2().default)(this, "name", 'set <pattern> <aspect-id> [config]');
57
- (0, _defineProperty2().default)(this, "description", `set an aspect to component(s) with optional config.
58
- enter the config as stringified JSON (e.g. '{"foo":"bar"}' ).
59
- if no config entered, the aspect will be set with empty config ({}).`);
60
- (0, _defineProperty2().default)(this, "shortDescription", 'set an aspect to component(s) with optional config');
90
+ (0, _defineProperty2().default)(this, "description", 'set an aspect to component(s) with optional config.');
91
+ (0, _defineProperty2().default)(this, "extendedDescription", `enter the config as stringified JSON (e.g. '{"foo":"bar"}' ).
92
+ if no config entered, the aspect will be set with empty config ({}).
93
+ ${(0, _constants().PATTERN_HELP)('aspect set')}`);
61
94
  (0, _defineProperty2().default)(this, "options", []);
62
95
  (0, _defineProperty2().default)(this, "group", 'development');
63
96
  }
@@ -78,6 +111,7 @@ class UnsetAspectCmd {
78
111
  this.aspect = aspect;
79
112
  (0, _defineProperty2().default)(this, "name", 'unset <pattern> <aspect-id>');
80
113
  (0, _defineProperty2().default)(this, "description", `unset an aspect from component(s).`);
114
+ (0, _defineProperty2().default)(this, "extendedDescription", `${(0, _constants().PATTERN_HELP)('aspect unset')}`);
81
115
  (0, _defineProperty2().default)(this, "options", []);
82
116
  (0, _defineProperty2().default)(this, "group", 'development');
83
117
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["aspect.cmd.ts"],"names":["ListAspectCmd","constructor","aspect","report","name","aspectIds","listAspectsOfComponent","join","SetAspectCmd","pattern","aspectId","config","configParsed","JSON","parse","results","setAspectsToComponents","length","chalk","yellow","bold","green","UnsetAspectCmd","unsetAspectsFromComponents","GetAspectCmd","componentName","debug","extensions","mergedExtensions","beforeMerge","getAspectsOfComponent","extensionsDetailsToString","map","e","data","extensionId","toComponentObject","toString","stringify","undefined","beforeMergeOutput","origin","extraData","title","details","moreData","afterMergeTitle","afterMergeOutput","json","extensionsDetailsToObject","reduce","acc","current","aspectName","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 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 <component-id>';\n description = 'list all aspect names configured on a component';\n options = [];\n group = 'development';\n\n constructor(private aspect: AspectMain) {}\n\n async report([name]: [string]) {\n const aspectIds = await this.aspect.listAspectsOfComponent(name);\n return aspectIds.join('\\n');\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.\nenter the config as stringified JSON (e.g. '{\"foo\":\"bar\"}' ).\nif no config entered, the aspect will be set with empty config ({}).`;\n shortDescription = 'set an aspect to component(s) with optional config';\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 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","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 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"]}
@@ -6,9 +6,14 @@ import { ReactMain } from '@teambit/react';
6
6
  import { GeneratorMain } from '@teambit/generator';
7
7
  import { BabelMain } from '@teambit/babel';
8
8
  import { ComponentID } from '@teambit/component-id';
9
- import { Workspace } from '@teambit/workspace';
9
+ import { ExtensionsOrigin, Workspace } from '@teambit/workspace';
10
10
  import { CompilerMain } from '@teambit/compiler';
11
11
  import { AspectEnv } from './aspect.env';
12
+ export declare type AspectSource = {
13
+ aspectName: string;
14
+ source: string;
15
+ level: string;
16
+ };
12
17
  export declare class AspectMain {
13
18
  readonly aspectEnv: AspectEnv;
14
19
  private envs;
@@ -18,14 +23,18 @@ export declare class AspectMain {
18
23
  * compose your own aspect environment.
19
24
  */
20
25
  compose(transformers?: EnvTransformer[], targetEnv?: Environment): Environment;
21
- listAspectsOfComponent(id: string | ComponentID): Promise<string[]>;
26
+ listAspectsOfComponent(pattern?: string): Promise<{
27
+ [component: string]: AspectSource[];
28
+ }>;
29
+ private getAspectNamesForComponent;
30
+ private getLevelBySourceOrigin;
22
31
  setAspectsToComponents(pattern: string, aspectId: string, config?: Record<string, any>): Promise<ComponentID[]>;
23
32
  unsetAspectsFromComponents(pattern: string, aspectId: string): Promise<ComponentID[]>;
24
33
  getAspectsOfComponent(id: string | ComponentID): Promise<{
25
34
  extensions: import("@teambit/legacy/dist/consumer/config").ExtensionDataList;
26
35
  beforeMerge: {
27
36
  extensions: import("@teambit/legacy/dist/consumer/config").ExtensionDataList;
28
- origin: import("@teambit/workspace/workspace").ExtensionsOrigin;
37
+ origin: ExtensionsOrigin;
29
38
  extraData: any;
30
39
  }[];
31
40
  }>;
@@ -188,18 +188,58 @@ class AspectMain {
188
188
  return this.envs.compose(this.envs.merge(targetEnv, this.aspectEnv), transformers);
189
189
  }
190
190
 
191
- async listAspectsOfComponent(id) {
192
- if (typeof id === 'string') {
193
- id = await this.workspace.resolveComponentId(id);
194
- }
191
+ async listAspectsOfComponent(pattern) {
192
+ const getIds = async () => {
193
+ if (!pattern) return this.workspace.listIds();
194
+ return this.workspace.idsByPattern(pattern);
195
+ };
196
+
197
+ const componentIds = await getIds();
198
+ const results = {};
199
+ await Promise.all(componentIds.map(async id => {
200
+ const aspectSources = await this.getAspectNamesForComponent(id);
201
+ results[id.toString()] = aspectSources;
202
+ }));
203
+ return results;
204
+ }
195
205
 
196
- const component = await this.workspace.get(id);
197
- return component.state.aspects.ids;
206
+ async getAspectNamesForComponent(id) {
207
+ const componentFromScope = await this.workspace.scope.get(id);
208
+ const {
209
+ beforeMerge
210
+ } = await this.workspace.componentExtensions(id, componentFromScope);
211
+ const aspectSources = [];
212
+ beforeMerge.forEach(source => {
213
+ source.extensions.forEach(ext => {
214
+ var _ext$extensionId;
215
+
216
+ const aspectName = ext.name || ((_ext$extensionId = ext.extensionId) === null || _ext$extensionId === void 0 ? void 0 : _ext$extensionId.toString()) || '<no-name>';
217
+ const alreadySaved = aspectSources.find(_ => _.aspectName === aspectName);
218
+ if (alreadySaved) return;
219
+ aspectSources.push({
220
+ aspectName,
221
+ source: source.origin,
222
+ level: this.getLevelBySourceOrigin(source.origin)
223
+ });
224
+ });
225
+ });
226
+ return aspectSources;
227
+ }
228
+
229
+ getLevelBySourceOrigin(origin) {
230
+ switch (origin) {
231
+ case 'BitmapFile':
232
+ case 'ComponentJsonFile':
233
+ case 'ModelSpecific':
234
+ return 'component';
235
+
236
+ default:
237
+ return 'workspace';
238
+ }
198
239
  }
199
240
 
200
241
  async setAspectsToComponents(pattern, aspectId, config = {}) {
201
- const components = await this.workspace.byPattern(pattern);
202
- const componentIds = components.map(comp => comp.id);
242
+ const componentIds = await this.workspace.idsByPattern(pattern);
203
243
  componentIds.forEach(componentId => {
204
244
  this.workspace.bitMap.addComponentConfig(componentId, aspectId, config);
205
245
  });
@@ -208,10 +248,9 @@ class AspectMain {
208
248
  }
209
249
 
210
250
  async unsetAspectsFromComponents(pattern, aspectId) {
211
- const components = await this.workspace.byPattern(pattern);
212
- const componentIds = components.map(comp => comp.id);
251
+ const componentIds = await this.workspace.idsByPattern(pattern);
213
252
  componentIds.forEach(componentId => {
214
- this.workspace.bitMap.removeComponentConfig(componentId, aspectId);
253
+ this.workspace.bitMap.removeComponentConfig(componentId, aspectId, true);
215
254
  });
216
255
  await this.workspace.bitMap.write();
217
256
  return componentIds;
@@ -1 +1 @@
1
- {"version":3,"sources":["aspect.main.runtime.ts"],"names":["tsconfig","require","AspectMain","constructor","aspectEnv","envs","workspace","compose","transformers","targetEnv","merge","listAspectsOfComponent","id","resolveComponentId","component","get","state","aspects","ids","setAspectsToComponents","pattern","aspectId","config","components","byPattern","componentIds","map","comp","forEach","componentId","bitMap","addComponentConfig","write","unsetAspectsFromComponents","removeComponentConfig","getAspectsOfComponent","componentFromScope","scope","componentExtensions","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, { 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\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(id: string | ComponentID): Promise<string[]> {\n if (typeof id === 'string') {\n id = await this.workspace.resolveComponentId(id);\n }\n const component = await this.workspace.get(id);\n return component.state.aspects.ids;\n }\n\n async setAspectsToComponents(\n pattern: string,\n aspectId: string,\n config: Record<string, any> = {}\n ): Promise<ComponentID[]> {\n const components = await this.workspace.byPattern(pattern);\n const componentIds = components.map((comp) => comp.id);\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 components = await this.workspace.byPattern(pattern);\n const componentIds = components.map((comp) => comp.id);\n componentIds.forEach((componentId) => {\n this.workspace.bitMap.removeComponentConfig(componentId, aspectId);\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","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"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/aspect",
3
- "version": "0.0.637",
3
+ "version": "0.0.641",
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.637"
9
+ "version": "0.0.641"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
@@ -25,21 +25,22 @@
25
25
  "@babel/plugin-proposal-class-properties": "7.12.13",
26
26
  "@babel/runtime": "7.12.18",
27
27
  "core-js": "^3.0.0",
28
- "@teambit/cli": "0.0.434",
29
- "@teambit/aspect-loader": "0.0.637",
30
- "@teambit/builder": "0.0.637",
31
- "@teambit/compiler": "0.0.637",
32
- "@teambit/envs": "0.0.637",
33
- "@teambit/react": "0.0.637",
34
- "@teambit/babel": "0.0.637",
28
+ "@teambit/cli-table": "0.0.33",
29
+ "@teambit/cli": "0.0.438",
30
+ "@teambit/aspect-loader": "0.0.641",
31
+ "@teambit/builder": "0.0.641",
32
+ "@teambit/compiler": "0.0.641",
33
+ "@teambit/envs": "0.0.641",
34
+ "@teambit/react": "0.0.641",
35
+ "@teambit/babel": "0.0.641",
35
36
  "@teambit/component-id": "0.0.400",
36
- "@teambit/generator": "0.0.637",
37
- "@teambit/workspace": "0.0.637",
38
- "@teambit/compositions": "0.0.637",
37
+ "@teambit/generator": "0.0.641",
38
+ "@teambit/workspace": "0.0.641",
39
+ "@teambit/compositions": "0.0.641",
39
40
  "@teambit/design.ui.empty-box": "0.0.353",
40
- "@teambit/tester": "0.0.637",
41
- "@teambit/ui": "0.0.637",
42
- "@teambit/isolator": "0.0.637"
41
+ "@teambit/tester": "0.0.641",
42
+ "@teambit/ui": "0.0.641",
43
+ "@teambit/isolator": "0.0.641"
43
44
  },
44
45
  "devDependencies": {
45
46
  "@types/react": "^17.0.8",
@@ -51,7 +52,7 @@
51
52
  "@types/node": "12.20.4"
52
53
  },
53
54
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.210",
55
+ "@teambit/legacy": "1.0.216",
55
56
  "react-dom": "^16.8.0 || ^17.0.0",
56
57
  "react": "^16.8.0 || ^17.0.0"
57
58
  },