@teambit/aspect 0.0.632 → 0.0.636

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 (30) hide show
  1. package/{__compositions-1643167379538.js → __compositions-1643426469482.js} +0 -0
  2. package/{__overview-1643167379538.js → __overview-1643426469482.js} +0 -0
  3. package/__preview-1643426469482.js +2 -0
  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/287.js +1 -1
  7. package/artifacts/env-template/public/664.js +39 -36
  8. package/artifacts/env-template/public/848.js +1 -1
  9. package/artifacts/env-template/public/assets-manifest.json +6 -6
  10. package/artifacts/env-template/public/compositions.a3c6670c1510715f086e.js +1 -0
  11. package/artifacts/env-template/public/compositions.html +1 -1
  12. package/artifacts/env-template/public/{overview.76e3be7a6db9b5555688.js → overview.3dc48937f1e0109056ba.js} +1 -1
  13. package/artifacts/env-template/public/overview.html +1 -1
  14. package/artifacts/env-template/public/service-worker.js +1 -1
  15. package/artifacts/env-template/public/static/css/664.e8cc4753.css +1 -0
  16. package/artifacts/preview/teambit_harmony_aspect-preview.js +1 -1
  17. package/aspect.docs.mdx +34 -0
  18. package/dist/aspect.cmd.d.ts +53 -0
  19. package/dist/aspect.cmd.js +214 -0
  20. package/dist/aspect.cmd.js.map +1 -0
  21. package/dist/aspect.docs.mdx +34 -0
  22. package/dist/aspect.main.runtime.d.ts +20 -3
  23. package/dist/aspect.main.runtime.js +67 -4
  24. package/dist/aspect.main.runtime.js.map +1 -1
  25. package/package-tar/teambit-aspect-0.0.636.tgz +0 -0
  26. package/package.json +17 -13
  27. package/__preview-1643167379538.js +0 -1
  28. package/artifacts/env-template/public/compositions.ef9a1afa21b2add03692.js +0 -1
  29. package/artifacts/env-template/public/static/css/664.50460623.css +0 -1
  30. package/package-tar/teambit-aspect-0.0.632.tgz +0 -0
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ exports.UnsetAspectCmd = exports.SetAspectCmd = exports.ListAspectCmd = exports.GetAspectCmd = exports.AspectCmd = void 0;
13
+
14
+ function _defineProperty2() {
15
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
+ _defineProperty2 = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _chalk() {
25
+ const data = _interopRequireDefault(require("chalk"));
26
+
27
+ _chalk = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ // eslint-disable-next-line max-classes-per-file
35
+ class ListAspectCmd {
36
+ constructor(aspect) {
37
+ 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", []);
41
+ (0, _defineProperty2().default)(this, "group", 'development');
42
+ }
43
+
44
+ async report([name]) {
45
+ const aspectIds = await this.aspect.listAspectsOfComponent(name);
46
+ return aspectIds.join('\n');
47
+ }
48
+
49
+ }
50
+
51
+ exports.ListAspectCmd = ListAspectCmd;
52
+
53
+ class SetAspectCmd {
54
+ constructor(aspect) {
55
+ this.aspect = aspect;
56
+ (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');
61
+ (0, _defineProperty2().default)(this, "options", []);
62
+ (0, _defineProperty2().default)(this, "group", 'development');
63
+ }
64
+
65
+ async report([pattern, aspectId, config]) {
66
+ const configParsed = config ? JSON.parse(config) : {};
67
+ const results = await this.aspect.setAspectsToComponents(pattern, aspectId, configParsed);
68
+ if (!results.length) return _chalk().default.yellow(`unable to find any matching for ${_chalk().default.bold(pattern)} pattern`);
69
+ return _chalk().default.green(`the following component(s) have been successfully updated:\n${results.join('\n')}`);
70
+ }
71
+
72
+ }
73
+
74
+ exports.SetAspectCmd = SetAspectCmd;
75
+
76
+ class UnsetAspectCmd {
77
+ constructor(aspect) {
78
+ this.aspect = aspect;
79
+ (0, _defineProperty2().default)(this, "name", 'unset <pattern> <aspect-id>');
80
+ (0, _defineProperty2().default)(this, "description", `unset an aspect from component(s).`);
81
+ (0, _defineProperty2().default)(this, "options", []);
82
+ (0, _defineProperty2().default)(this, "group", 'development');
83
+ }
84
+
85
+ async report([pattern, aspectId]) {
86
+ const results = await this.aspect.unsetAspectsFromComponents(pattern, aspectId);
87
+ if (!results.length) return _chalk().default.yellow(`unable to find any matching for ${_chalk().default.bold(pattern)} pattern`);
88
+ return _chalk().default.green(`the following component(s) have been successfully updated:\n${results.join('\n')}`);
89
+ }
90
+
91
+ }
92
+
93
+ exports.UnsetAspectCmd = UnsetAspectCmd;
94
+
95
+ class GetAspectCmd {
96
+ constructor(aspect) {
97
+ this.aspect = aspect;
98
+ (0, _defineProperty2().default)(this, "name", 'get <component-id>');
99
+ (0, _defineProperty2().default)(this, "description", "show aspects' data and configuration of the given component");
100
+ (0, _defineProperty2().default)(this, "options", [['d', 'debug', 'show the origins were the aspects were taken from'], ['j', 'json', 'format as json']]);
101
+ (0, _defineProperty2().default)(this, "group", 'development');
102
+ }
103
+
104
+ async report([componentName], {
105
+ debug
106
+ }) {
107
+ const {
108
+ extensions: mergedExtensions,
109
+ beforeMerge
110
+ } = await this.aspect.getAspectsOfComponent(componentName);
111
+
112
+ const extensionsDetailsToString = extensions => extensions.map(e => {
113
+ const {
114
+ name,
115
+ data,
116
+ config,
117
+ extensionId
118
+ } = e.toComponentObject();
119
+ return `${_chalk().default.bold('name:')} ${name || (extensionId === null || extensionId === void 0 ? void 0 : extensionId.toString())}
120
+ ${_chalk().default.bold('config:')} ${JSON.stringify(config, undefined, 2)}
121
+ ${_chalk().default.bold('data:')} ${JSON.stringify(data, undefined, 2)}
122
+ `;
123
+ }).join('\n');
124
+
125
+ if (debug) {
126
+ const beforeMergeOutput = beforeMerge.map(({
127
+ origin,
128
+ extensions,
129
+ extraData
130
+ }) => {
131
+ const title = _chalk().default.green.bold(`Origin: ${origin}`);
132
+
133
+ const details = extensionsDetailsToString(extensions);
134
+ const moreData = extraData ? `\n${_chalk().default.bold('Extra Data:')} ${JSON.stringify(extraData, undefined, 2)}` : '';
135
+ return `${title}\n${details}${moreData}`;
136
+ }).join('\n\n');
137
+
138
+ const afterMergeTitle = _chalk().default.green.bold('Final - after merging all origins');
139
+
140
+ const afterMergeOutput = `${afterMergeTitle}\n${extensionsDetailsToString(mergedExtensions)}`;
141
+ return `${beforeMergeOutput}\n\n\n${afterMergeOutput}`;
142
+ }
143
+
144
+ return extensionsDetailsToString(mergedExtensions);
145
+ }
146
+
147
+ async json([componentName], {
148
+ debug
149
+ }) {
150
+ const {
151
+ extensions: mergedExtensions,
152
+ beforeMerge
153
+ } = await this.aspect.getAspectsOfComponent(componentName);
154
+
155
+ const extensionsDetailsToObject = extensions => extensions.reduce((acc, current) => {
156
+ const {
157
+ name,
158
+ data,
159
+ config,
160
+ extensionId
161
+ } = current.toComponentObject();
162
+ const aspectName = name || (extensionId === null || extensionId === void 0 ? void 0 : extensionId.toString()) || '<no-name>';
163
+ acc[aspectName] = {
164
+ name: aspectName,
165
+ config,
166
+ data
167
+ };
168
+ return acc;
169
+ }, {});
170
+
171
+ if (debug) {
172
+ const jsonObj = {};
173
+ beforeMerge.forEach(({
174
+ origin,
175
+ extensions,
176
+ extraData
177
+ }) => {
178
+ jsonObj[origin] = {
179
+ extensions: extensionsDetailsToObject(extensions),
180
+ extraData
181
+ };
182
+ });
183
+ jsonObj.FinalAfterMerge = {
184
+ extensions: extensionsDetailsToObject(mergedExtensions)
185
+ };
186
+ return jsonObj;
187
+ }
188
+
189
+ return extensionsDetailsToObject(mergedExtensions);
190
+ }
191
+
192
+ }
193
+
194
+ exports.GetAspectCmd = GetAspectCmd;
195
+
196
+ class AspectCmd {
197
+ constructor() {
198
+ (0, _defineProperty2().default)(this, "name", 'aspect <sub-command>');
199
+ (0, _defineProperty2().default)(this, "alias", '');
200
+ (0, _defineProperty2().default)(this, "description", 'EXPERIMENTAL. manage aspects');
201
+ (0, _defineProperty2().default)(this, "options", []);
202
+ (0, _defineProperty2().default)(this, "group", 'development');
203
+ (0, _defineProperty2().default)(this, "commands", []);
204
+ }
205
+
206
+ async report([unrecognizedSubcommand]) {
207
+ return _chalk().default.red(`"${unrecognizedSubcommand}" is not a subcommand of "aspect", please run "bit aspect --help" to list the subcommands`);
208
+ }
209
+
210
+ }
211
+
212
+ exports.AspectCmd = AspectCmd;
213
+
214
+ //# sourceMappingURL=aspect.cmd.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,34 @@
1
+ ## Overview
2
+
3
+ Aspects can be configured on a component is various ways, some more general and some more specific. Once a component is loaded, Bit calculates all the sources and comes up with the final list of aspects. Each aspect has its config and data.
4
+ Config is what the user entered, Data is a result of the aspect process.
5
+
6
+ ## Debugging aspects
7
+
8
+ To help understanding why a component has these specific aspects, `bit aspect get --debug` shows each one of the sources, from the more specific one to the general one. At the end, it shows the merged result of all sources.
9
+ The various sources are as follows:
10
+
11
+ ```
12
+ 'BitmapFile'
13
+ 'Model'
14
+ 'WorkspaceVariants'
15
+ 'ComponentJsonFile'
16
+ 'WorkspaceDefault'
17
+ ```
18
+
19
+ Since the list of all the config+data can be very long and hard to follow, the flag `--json` is very helpful.
20
+ This with help of [fx](https://github.com/antonmedv/fx), it's easy to extract the data needed.
21
+
22
+ If for example, we're interested in one source only, we can run the following:
23
+
24
+ ```
25
+ bit aspect get ui/text --debug --json | fx .BitmapFile
26
+ ```
27
+
28
+ It's possible to run any arbitrary javascript code with fx, so for example, if you want to debug just one specific aspect, and see its config/data per each one of the source, you can do something like this:
29
+
30
+ ```
31
+ bit aspect get ui/text --debug --json | fx 'Object.keys(this).map(origin => ({ origin, value: this[origin].extensions["teambit.pkg/pkg"] }))'
32
+ ```
33
+
34
+ Another data shown with the `--debug` flag is the rules in the workspace.jsonc#variants applied to this component. It shows the list of these rules sorted with the data about the specifity.
@@ -1,28 +1,45 @@
1
1
  import { AspectLoaderMain } from '@teambit/aspect-loader';
2
2
  import { BuilderMain } from '@teambit/builder';
3
+ import { CLIMain } from '@teambit/cli';
3
4
  import { Environment, EnvsMain, EnvTransformer } from '@teambit/envs';
4
5
  import { ReactMain } from '@teambit/react';
5
6
  import { GeneratorMain } from '@teambit/generator';
6
7
  import { BabelMain } from '@teambit/babel';
8
+ import { ComponentID } from '@teambit/component-id';
9
+ import { Workspace } from '@teambit/workspace';
7
10
  import { CompilerMain } from '@teambit/compiler';
8
11
  import { AspectEnv } from './aspect.env';
9
12
  export declare class AspectMain {
10
13
  readonly aspectEnv: AspectEnv;
11
14
  private envs;
12
- constructor(aspectEnv: AspectEnv, envs: EnvsMain);
15
+ private workspace;
16
+ constructor(aspectEnv: AspectEnv, envs: EnvsMain, workspace: Workspace);
13
17
  /**
14
18
  * compose your own aspect environment.
15
19
  */
16
20
  compose(transformers?: EnvTransformer[], targetEnv?: Environment): Environment;
21
+ listAspectsOfComponent(id: string | ComponentID): Promise<string[]>;
22
+ setAspectsToComponents(pattern: string, aspectId: string, config?: Record<string, any>): Promise<ComponentID[]>;
23
+ unsetAspectsFromComponents(pattern: string, aspectId: string): Promise<ComponentID[]>;
24
+ getAspectsOfComponent(id: string | ComponentID): Promise<{
25
+ extensions: import("@teambit/legacy/dist/consumer/config").ExtensionDataList;
26
+ beforeMerge: {
27
+ extensions: import("@teambit/legacy/dist/consumer/config").ExtensionDataList;
28
+ origin: import("@teambit/workspace/workspace").ExtensionsOrigin;
29
+ extraData: any;
30
+ }[];
31
+ }>;
17
32
  static runtime: import("@teambit/harmony").RuntimeDefinition;
18
33
  static dependencies: import("@teambit/harmony").Aspect[];
19
- static provider([react, envs, builder, aspectLoader, compiler, babel, generator]: [
34
+ static provider([react, envs, builder, aspectLoader, compiler, babel, generator, workspace, cli]: [
20
35
  ReactMain,
21
36
  EnvsMain,
22
37
  BuilderMain,
23
38
  AspectLoaderMain,
24
39
  CompilerMain,
25
40
  BabelMain,
26
- GeneratorMain
41
+ GeneratorMain,
42
+ Workspace,
43
+ CLIMain
27
44
  ]): Promise<AspectMain>;
28
45
  }
@@ -91,6 +91,16 @@ function _babel() {
91
91
  return data;
92
92
  }
93
93
 
94
+ function _workspace() {
95
+ const data = _interopRequireDefault(require("@teambit/workspace"));
96
+
97
+ _workspace = function () {
98
+ return data;
99
+ };
100
+
101
+ return data;
102
+ }
103
+
94
104
  function _compiler() {
95
105
  const data = require("@teambit/compiler");
96
106
 
@@ -151,12 +161,23 @@ function _babelConfig() {
151
161
  return data;
152
162
  }
153
163
 
164
+ function _aspect4() {
165
+ const data = require("./aspect.cmd");
166
+
167
+ _aspect4 = function () {
168
+ return data;
169
+ };
170
+
171
+ return data;
172
+ }
173
+
154
174
  const tsconfig = require('./typescript/tsconfig.json');
155
175
 
156
176
  class AspectMain {
157
- constructor(aspectEnv, envs) {
177
+ constructor(aspectEnv, envs, workspace) {
158
178
  this.aspectEnv = aspectEnv;
159
179
  this.envs = envs;
180
+ this.workspace = workspace;
160
181
  }
161
182
  /**
162
183
  * compose your own aspect environment.
@@ -167,7 +188,45 @@ class AspectMain {
167
188
  return this.envs.compose(this.envs.merge(targetEnv, this.aspectEnv), transformers);
168
189
  }
169
190
 
170
- static async provider([react, envs, builder, aspectLoader, compiler, babel, generator]) {
191
+ async listAspectsOfComponent(id) {
192
+ if (typeof id === 'string') {
193
+ id = await this.workspace.resolveComponentId(id);
194
+ }
195
+
196
+ const component = await this.workspace.get(id);
197
+ return component.state.aspects.ids;
198
+ }
199
+
200
+ async setAspectsToComponents(pattern, aspectId, config = {}) {
201
+ const components = await this.workspace.byPattern(pattern);
202
+ const componentIds = components.map(comp => comp.id);
203
+ componentIds.forEach(componentId => {
204
+ this.workspace.bitMap.addComponentConfig(componentId, aspectId, config);
205
+ });
206
+ await this.workspace.bitMap.write();
207
+ return componentIds;
208
+ }
209
+
210
+ async unsetAspectsFromComponents(pattern, aspectId) {
211
+ const components = await this.workspace.byPattern(pattern);
212
+ const componentIds = components.map(comp => comp.id);
213
+ componentIds.forEach(componentId => {
214
+ this.workspace.bitMap.removeComponentConfig(componentId, aspectId);
215
+ });
216
+ await this.workspace.bitMap.write();
217
+ return componentIds;
218
+ }
219
+
220
+ async getAspectsOfComponent(id) {
221
+ if (typeof id === 'string') {
222
+ id = await this.workspace.resolveComponentId(id);
223
+ }
224
+
225
+ const componentFromScope = await this.workspace.scope.get(id);
226
+ return this.workspace.componentExtensions(id, componentFromScope);
227
+ }
228
+
229
+ static async provider([react, envs, builder, aspectLoader, compiler, babel, generator, workspace, cli]) {
171
230
  const babelCompiler = babel.createCompiler({
172
231
  babelTransformOptions: _babelConfig().babelConfig,
173
232
  distDir: 'dist',
@@ -195,14 +254,18 @@ class AspectMain {
195
254
 
196
255
  envs.registerEnv(aspectEnv);
197
256
  generator.registerComponentTemplate([_aspect3().aspectTemplate]);
198
- return new AspectMain(aspectEnv, envs);
257
+ const aspectMain = new AspectMain(aspectEnv, envs, workspace);
258
+ const aspectCmd = new (_aspect4().AspectCmd)();
259
+ aspectCmd.commands = [new (_aspect4().ListAspectCmd)(aspectMain), new (_aspect4().GetAspectCmd)(aspectMain), new (_aspect4().SetAspectCmd)(aspectMain), new (_aspect4().UnsetAspectCmd)(aspectMain)];
260
+ cli.register(aspectCmd);
261
+ return aspectMain;
199
262
  }
200
263
 
201
264
  }
202
265
 
203
266
  exports.AspectMain = AspectMain;
204
267
  (0, _defineProperty2().default)(AspectMain, "runtime", _cli().MainRuntime);
205
- (0, _defineProperty2().default)(AspectMain, "dependencies", [_react().ReactAspect, _envs().EnvsAspect, _builder().BuilderAspect, _aspectLoader().AspectLoaderAspect, _compiler().CompilerAspect, _babel().BabelAspect, _generator().GeneratorAspect]);
268
+ (0, _defineProperty2().default)(AspectMain, "dependencies", [_react().ReactAspect, _envs().EnvsAspect, _builder().BuilderAspect, _aspectLoader().AspectLoaderAspect, _compiler().CompilerAspect, _babel().BabelAspect, _generator().GeneratorAspect, _workspace().default, _cli().CLIAspect]);
206
269
 
207
270
  _aspect().AspectAspect.addRuntime(AspectMain);
208
271
 
@@ -1 +1 @@
1
- {"version":3,"sources":["aspect.main.runtime.ts"],"names":["tsconfig","require","AspectMain","constructor","aspectEnv","envs","compose","transformers","targetEnv","merge","provider","react","builder","aspectLoader","compiler","babel","generator","babelCompiler","createCompiler","babelTransformOptions","babelConfig","distDir","distGlobPatterns","compilerOverride","override","getCompiler","transformer","config","mergeTsConfig","setArtifactName","setDistGlobPatterns","setShouldCopyNonSupportedFiles","tsCompiler","env","compilerTasksOverride","overrideCompilerTasks","createTask","AspectEnv","reactEnv","coreExporterTask","CoreExporterTask","__dirname","includes","registerBuildTasks","registerEnv","registerComponentTemplate","aspectTemplate","MainRuntime","ReactAspect","EnvsAspect","BuilderAspect","AspectLoaderAspect","CompilerAspect","BabelAspect","GeneratorAspect","AspectAspect","addRuntime"],"mappings":"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","sourcesContent":["import { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { 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 { 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';\n\nconst tsconfig = require('./typescript/tsconfig.json');\n\nexport class AspectMain {\n constructor(readonly aspectEnv: AspectEnv, private envs: EnvsMain) {}\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 static runtime = MainRuntime;\n static dependencies = [\n ReactAspect,\n EnvsAspect,\n BuilderAspect,\n AspectLoaderAspect,\n CompilerAspect,\n BabelAspect,\n GeneratorAspect,\n ];\n\n static async provider([react, envs, builder, aspectLoader, compiler, babel, generator]: [\n ReactMain,\n EnvsMain,\n BuilderMain,\n AspectLoaderMain,\n CompilerMain,\n BabelMain,\n GeneratorMain\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 return new AspectMain(aspectEnv as AspectEnv, envs);\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","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"]}
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@teambit/aspect",
3
- "version": "0.0.632",
3
+ "version": "0.0.636",
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.632"
9
+ "version": "0.0.636"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
13
+ "chalk": "2.4.2",
13
14
  "lodash": "4.17.21",
14
15
  "typescript": "4.4.2",
15
16
  "fs-extra": "10.0.0",
@@ -24,19 +25,21 @@
24
25
  "@babel/plugin-proposal-class-properties": "7.12.13",
25
26
  "@babel/runtime": "7.12.18",
26
27
  "core-js": "^3.0.0",
27
- "@teambit/aspect-loader": "0.0.632",
28
- "@teambit/builder": "0.0.632",
29
- "@teambit/compiler": "0.0.632",
30
- "@teambit/envs": "0.0.632",
31
- "@teambit/react": "0.0.632",
32
- "@teambit/babel": "0.0.632",
33
28
  "@teambit/cli": "0.0.434",
34
- "@teambit/generator": "0.0.632",
35
- "@teambit/compositions": "0.0.632",
29
+ "@teambit/aspect-loader": "0.0.636",
30
+ "@teambit/builder": "0.0.636",
31
+ "@teambit/compiler": "0.0.636",
32
+ "@teambit/envs": "0.0.636",
33
+ "@teambit/react": "0.0.636",
34
+ "@teambit/babel": "0.0.636",
35
+ "@teambit/component-id": "0.0.400",
36
+ "@teambit/generator": "0.0.636",
37
+ "@teambit/workspace": "0.0.636",
38
+ "@teambit/compositions": "0.0.636",
36
39
  "@teambit/design.ui.empty-box": "0.0.353",
37
- "@teambit/tester": "0.0.632",
38
- "@teambit/ui": "0.0.632",
39
- "@teambit/isolator": "0.0.632"
40
+ "@teambit/tester": "0.0.636",
41
+ "@teambit/ui": "0.0.636",
42
+ "@teambit/isolator": "0.0.636"
40
43
  },
41
44
  "devDependencies": {
42
45
  "@types/react": "^17.0.8",
@@ -48,6 +51,7 @@
48
51
  "@types/node": "12.20.4"
49
52
  },
50
53
  "peerDependencies": {
54
+ "@teambit/legacy": "1.0.210",
51
55
  "react-dom": "^16.8.0 || ^17.0.0",
52
56
  "react": "^16.8.0 || ^17.0.0"
53
57
  },
@@ -1 +0,0 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_aspect@0.0.632/dist/aspect.composition.js')]
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_teambit_legacy=self.webpackChunk_teambit_legacy||[]).push([[384],{19840:(e,s,t)=>{var a=t(40695);t(16738);const c=t(22181);(0,a.Bu)("compositions",c,!1,{})}},e=>{e.O(0,[283,141,181],(()=>{return s=19840,e(e.s=s);var s}));e.O()}]);