@teambit/workspace 0.0.648 → 0.0.649
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.
- package/{__preview-1644895398222.js → __preview-1644981953366.js} +0 -0
- package/component-config-file/component-config-file.ts +40 -6
- package/dist/component-config-file/component-config-file.d.ts +7 -3
- package/dist/component-config-file/component-config-file.js +46 -6
- package/dist/component-config-file/component-config-file.js.map +1 -1
- package/dist/tag-cmd.js +1 -1
- package/dist/tag-cmd.js.map +1 -1
- package/dist/workspace.d.ts +7 -0
- package/dist/workspace.js +61 -21
- package/dist/workspace.js.map +1 -1
- package/package-tar/teambit-workspace-0.0.649.tgz +0 -0
- package/package.json +26 -26
- package/package-tar/teambit-workspace-0.0.648.tgz +0 -0
|
File without changes
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { ComponentID, AspectList } from '@teambit/component';
|
|
1
|
+
import { ComponentID, AspectList, AspectEntry, ResolveComponentIdFunc } from '@teambit/component';
|
|
2
2
|
import { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy/dist/constants';
|
|
3
|
-
import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
|
|
3
|
+
import { ExtensionDataList, configEntryToDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';
|
|
4
4
|
import { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
|
|
5
5
|
import detectIndent from 'detect-indent';
|
|
6
6
|
import detectNewline from 'detect-newline';
|
|
7
7
|
import fs from 'fs-extra';
|
|
8
8
|
import path from 'path';
|
|
9
9
|
import stringifyPackage from 'stringify-package';
|
|
10
|
+
import { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';
|
|
10
11
|
|
|
11
12
|
import { AlreadyExistsError } from './exceptions';
|
|
12
13
|
|
|
@@ -34,12 +35,12 @@ export class ComponentConfigFile {
|
|
|
34
35
|
constructor(
|
|
35
36
|
public componentId: ComponentID,
|
|
36
37
|
public aspects: AspectList,
|
|
38
|
+
private componentDir: PathOsBasedAbsolute,
|
|
37
39
|
public propagate: boolean = false,
|
|
38
40
|
private options: ComponentConfigFileOptions = { indent: DEFAULT_INDENT, newLine: DEFAULT_NEWLINE },
|
|
39
41
|
public defaultScope?: string
|
|
40
42
|
) {}
|
|
41
43
|
|
|
42
|
-
// TODO: remove consumer from here
|
|
43
44
|
static async load(
|
|
44
45
|
componentDir: PathOsBasedAbsolute,
|
|
45
46
|
aspectListFactory: (extensionDataList: ExtensionDataList) => Promise<AspectList>,
|
|
@@ -57,16 +58,23 @@ export class ComponentConfigFile {
|
|
|
57
58
|
const componentId = ComponentID.fromObject(parsed.componentId, parsed.defaultScope || outsideDefaultScope);
|
|
58
59
|
const aspects = await aspectListFactory(ExtensionDataList.fromConfigObject(parsed.extensions));
|
|
59
60
|
|
|
60
|
-
return new ComponentConfigFile(
|
|
61
|
+
return new ComponentConfigFile(
|
|
62
|
+
componentId,
|
|
63
|
+
aspects,
|
|
64
|
+
componentDir,
|
|
65
|
+
Boolean(parsed.propagate),
|
|
66
|
+
{ indent, newLine },
|
|
67
|
+
parsed.defaultScope
|
|
68
|
+
);
|
|
61
69
|
}
|
|
62
70
|
|
|
63
71
|
static composePath(componentRootFolder: string) {
|
|
64
72
|
return path.join(componentRootFolder, COMPONENT_CONFIG_FILE_NAME);
|
|
65
73
|
}
|
|
66
74
|
|
|
67
|
-
async write(
|
|
75
|
+
async write(options: WriteConfigFileOptions = {}): Promise<void> {
|
|
68
76
|
const json = this.toJson();
|
|
69
|
-
const filePath = ComponentConfigFile.composePath(componentDir);
|
|
77
|
+
const filePath = ComponentConfigFile.composePath(this.componentDir);
|
|
70
78
|
const isExist = await fs.pathExists(filePath);
|
|
71
79
|
if (isExist && !options.override) {
|
|
72
80
|
throw new AlreadyExistsError(filePath);
|
|
@@ -74,6 +82,32 @@ export class ComponentConfigFile {
|
|
|
74
82
|
return fs.writeJsonSync(filePath, json, { spaces: this.options.indent, EOL: this.options.newLine });
|
|
75
83
|
}
|
|
76
84
|
|
|
85
|
+
async addAspect(aspectId: string, config: any, resolveComponentId: ResolveComponentIdFunc) {
|
|
86
|
+
const existing = this.aspects.get(aspectId);
|
|
87
|
+
if (existing) {
|
|
88
|
+
existing.config = config;
|
|
89
|
+
} else {
|
|
90
|
+
const aspectEntry = await this.aspectEntryFromConfigObject(aspectId, config, resolveComponentId);
|
|
91
|
+
this.aspects.entries.push(aspectEntry);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async removeAspect(aspectId: string, markWithMinusIfNotExist: boolean, resolveComponentId: ResolveComponentIdFunc) {
|
|
96
|
+
const existing = this.aspects.get(aspectId);
|
|
97
|
+
if (existing) {
|
|
98
|
+
const aspectList = this.aspects.withoutEntries([aspectId]);
|
|
99
|
+
this.aspects = aspectList;
|
|
100
|
+
} else if (markWithMinusIfNotExist) {
|
|
101
|
+
await this.addAspect(aspectId, REMOVE_EXTENSION_SPECIAL_SIGN, resolveComponentId);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
private async aspectEntryFromConfigObject(id: string, config: any, resolveComponentId: ResolveComponentIdFunc) {
|
|
106
|
+
const aspectId = await resolveComponentId(id);
|
|
107
|
+
const legacyEntry = configEntryToDataEntry(id, config);
|
|
108
|
+
return new AspectEntry(aspectId, legacyEntry);
|
|
109
|
+
}
|
|
110
|
+
|
|
77
111
|
toJson(): ComponentConfigFileJson {
|
|
78
112
|
return {
|
|
79
113
|
componentId: this.componentId.toObject(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentID, AspectList } from '@teambit/component';
|
|
1
|
+
import { ComponentID, AspectList, ResolveComponentIdFunc } from '@teambit/component';
|
|
2
2
|
import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
|
|
3
3
|
import { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
|
|
4
4
|
interface ComponentConfigFileOptions {
|
|
@@ -17,13 +17,17 @@ interface ComponentConfigFileJson {
|
|
|
17
17
|
export declare class ComponentConfigFile {
|
|
18
18
|
componentId: ComponentID;
|
|
19
19
|
aspects: AspectList;
|
|
20
|
+
private componentDir;
|
|
20
21
|
propagate: boolean;
|
|
21
22
|
private options;
|
|
22
23
|
defaultScope?: string | undefined;
|
|
23
|
-
constructor(componentId: ComponentID, aspects: AspectList, propagate?: boolean, options?: ComponentConfigFileOptions, defaultScope?: string | undefined);
|
|
24
|
+
constructor(componentId: ComponentID, aspects: AspectList, componentDir: PathOsBasedAbsolute, propagate?: boolean, options?: ComponentConfigFileOptions, defaultScope?: string | undefined);
|
|
24
25
|
static load(componentDir: PathOsBasedAbsolute, aspectListFactory: (extensionDataList: ExtensionDataList) => Promise<AspectList>, outsideDefaultScope?: string): Promise<ComponentConfigFile | undefined>;
|
|
25
26
|
static composePath(componentRootFolder: string): string;
|
|
26
|
-
write(
|
|
27
|
+
write(options?: WriteConfigFileOptions): Promise<void>;
|
|
28
|
+
addAspect(aspectId: string, config: any, resolveComponentId: ResolveComponentIdFunc): Promise<void>;
|
|
29
|
+
removeAspect(aspectId: string, markWithMinusIfNotExist: boolean, resolveComponentId: ResolveComponentIdFunc): Promise<void>;
|
|
30
|
+
private aspectEntryFromConfigObject;
|
|
27
31
|
toJson(): ComponentConfigFileJson;
|
|
28
32
|
toString(): string;
|
|
29
33
|
}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
require("core-js/modules/es.array.iterator.js");
|
|
6
|
+
|
|
5
7
|
require("core-js/modules/es.promise.js");
|
|
6
8
|
|
|
7
9
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -89,6 +91,16 @@ function _stringifyPackage() {
|
|
|
89
91
|
return data;
|
|
90
92
|
}
|
|
91
93
|
|
|
94
|
+
function _config() {
|
|
95
|
+
const data = require("@teambit/legacy/dist/consumer/config");
|
|
96
|
+
|
|
97
|
+
_config = function () {
|
|
98
|
+
return data;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
return data;
|
|
102
|
+
}
|
|
103
|
+
|
|
92
104
|
function _exceptions() {
|
|
93
105
|
const data = require("./exceptions");
|
|
94
106
|
|
|
@@ -103,17 +115,17 @@ const DEFAULT_INDENT = 2;
|
|
|
103
115
|
const DEFAULT_NEWLINE = '\n';
|
|
104
116
|
|
|
105
117
|
class ComponentConfigFile {
|
|
106
|
-
constructor(componentId, aspects, propagate = false, options = {
|
|
118
|
+
constructor(componentId, aspects, componentDir, propagate = false, options = {
|
|
107
119
|
indent: DEFAULT_INDENT,
|
|
108
120
|
newLine: DEFAULT_NEWLINE
|
|
109
121
|
}, defaultScope) {
|
|
110
122
|
this.componentId = componentId;
|
|
111
123
|
this.aspects = aspects;
|
|
124
|
+
this.componentDir = componentDir;
|
|
112
125
|
this.propagate = propagate;
|
|
113
126
|
this.options = options;
|
|
114
127
|
this.defaultScope = defaultScope;
|
|
115
|
-
}
|
|
116
|
-
|
|
128
|
+
}
|
|
117
129
|
|
|
118
130
|
static async load(componentDir, aspectListFactory, outsideDefaultScope) {
|
|
119
131
|
const filePath = ComponentConfigFile.composePath(componentDir);
|
|
@@ -131,7 +143,7 @@ class ComponentConfigFile {
|
|
|
131
143
|
const componentId = _component().ComponentID.fromObject(parsed.componentId, parsed.defaultScope || outsideDefaultScope);
|
|
132
144
|
|
|
133
145
|
const aspects = await aspectListFactory(_extensionData().ExtensionDataList.fromConfigObject(parsed.extensions));
|
|
134
|
-
return new ComponentConfigFile(componentId, aspects,
|
|
146
|
+
return new ComponentConfigFile(componentId, aspects, componentDir, Boolean(parsed.propagate), {
|
|
135
147
|
indent,
|
|
136
148
|
newLine
|
|
137
149
|
}, parsed.defaultScope);
|
|
@@ -141,9 +153,9 @@ class ComponentConfigFile {
|
|
|
141
153
|
return _path().default.join(componentRootFolder, _constants().COMPONENT_CONFIG_FILE_NAME);
|
|
142
154
|
}
|
|
143
155
|
|
|
144
|
-
async write(
|
|
156
|
+
async write(options = {}) {
|
|
145
157
|
const json = this.toJson();
|
|
146
|
-
const filePath = ComponentConfigFile.composePath(componentDir);
|
|
158
|
+
const filePath = ComponentConfigFile.composePath(this.componentDir);
|
|
147
159
|
const isExist = await _fsExtra().default.pathExists(filePath);
|
|
148
160
|
|
|
149
161
|
if (isExist && !options.override) {
|
|
@@ -156,6 +168,34 @@ class ComponentConfigFile {
|
|
|
156
168
|
});
|
|
157
169
|
}
|
|
158
170
|
|
|
171
|
+
async addAspect(aspectId, config, resolveComponentId) {
|
|
172
|
+
const existing = this.aspects.get(aspectId);
|
|
173
|
+
|
|
174
|
+
if (existing) {
|
|
175
|
+
existing.config = config;
|
|
176
|
+
} else {
|
|
177
|
+
const aspectEntry = await this.aspectEntryFromConfigObject(aspectId, config, resolveComponentId);
|
|
178
|
+
this.aspects.entries.push(aspectEntry);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
async removeAspect(aspectId, markWithMinusIfNotExist, resolveComponentId) {
|
|
183
|
+
const existing = this.aspects.get(aspectId);
|
|
184
|
+
|
|
185
|
+
if (existing) {
|
|
186
|
+
const aspectList = this.aspects.withoutEntries([aspectId]);
|
|
187
|
+
this.aspects = aspectList;
|
|
188
|
+
} else if (markWithMinusIfNotExist) {
|
|
189
|
+
await this.addAspect(aspectId, _config().REMOVE_EXTENSION_SPECIAL_SIGN, resolveComponentId);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
async aspectEntryFromConfigObject(id, config, resolveComponentId) {
|
|
194
|
+
const aspectId = await resolveComponentId(id);
|
|
195
|
+
const legacyEntry = (0, _extensionData().configEntryToDataEntry)(id, config);
|
|
196
|
+
return new (_component().AspectEntry)(aspectId, legacyEntry);
|
|
197
|
+
}
|
|
198
|
+
|
|
159
199
|
toJson() {
|
|
160
200
|
return {
|
|
161
201
|
componentId: this.componentId.toObject(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["component-config-file.ts"],"names":["DEFAULT_INDENT","DEFAULT_NEWLINE","ComponentConfigFile","constructor","componentId","aspects","propagate","options","indent","newLine","defaultScope","load","
|
|
1
|
+
{"version":3,"sources":["component-config-file.ts"],"names":["DEFAULT_INDENT","DEFAULT_NEWLINE","ComponentConfigFile","constructor","componentId","aspects","componentDir","propagate","options","indent","newLine","defaultScope","load","aspectListFactory","outsideDefaultScope","filePath","composePath","isExist","fs","pathExists","undefined","content","readFile","parsed","parseComponentJsonContent","amount","ComponentID","fromObject","ExtensionDataList","fromConfigObject","extensions","Boolean","componentRootFolder","path","join","COMPONENT_CONFIG_FILE_NAME","write","json","toJson","override","AlreadyExistsError","writeJsonSync","spaces","EOL","addAspect","aspectId","config","resolveComponentId","existing","get","aspectEntry","aspectEntryFromConfigObject","entries","push","removeAspect","markWithMinusIfNotExist","aspectList","withoutEntries","REMOVE_EXTENSION_SPECIAL_SIGN","id","legacyEntry","AspectEntry","toObject","toConfigObject","toString","str","dir","JSON","parse","err","Error","message"],"mappings":"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","sourcesContent":["import { ComponentID, AspectList, AspectEntry, ResolveComponentIdFunc } from '@teambit/component';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy/dist/constants';\nimport { ExtensionDataList, configEntryToDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport detectIndent from 'detect-indent';\nimport detectNewline from 'detect-newline';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport stringifyPackage from 'stringify-package';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\n\nimport { AlreadyExistsError } from './exceptions';\n\ninterface ComponentConfigFileOptions {\n indent: number;\n newLine: '\\r\\n' | '\\n' | undefined;\n}\n\ninterface WriteConfigFileOptions {\n override?: boolean;\n}\n\ninterface ComponentConfigFileJson {\n componentId: any;\n // TODO: think if we want to change it to aspects\n extensions: any;\n propagate: boolean;\n defaultScope?: string;\n}\n\nconst DEFAULT_INDENT = 2;\nconst DEFAULT_NEWLINE = '\\n';\n\nexport class ComponentConfigFile {\n constructor(\n public componentId: ComponentID,\n public aspects: AspectList,\n private componentDir: PathOsBasedAbsolute,\n public propagate: boolean = false,\n private options: ComponentConfigFileOptions = { indent: DEFAULT_INDENT, newLine: DEFAULT_NEWLINE },\n public defaultScope?: string\n ) {}\n\n static async load(\n componentDir: PathOsBasedAbsolute,\n aspectListFactory: (extensionDataList: ExtensionDataList) => Promise<AspectList>,\n outsideDefaultScope?: string\n ): Promise<ComponentConfigFile | undefined> {\n const filePath = ComponentConfigFile.composePath(componentDir);\n const isExist = await fs.pathExists(filePath);\n if (!isExist) {\n return undefined;\n }\n const content = await fs.readFile(filePath, 'utf-8');\n const parsed: ComponentConfigFileJson = parseComponentJsonContent(content, componentDir);\n const indent = detectIndent(content).amount;\n const newLine = detectNewline(content);\n const componentId = ComponentID.fromObject(parsed.componentId, parsed.defaultScope || outsideDefaultScope);\n const aspects = await aspectListFactory(ExtensionDataList.fromConfigObject(parsed.extensions));\n\n return new ComponentConfigFile(\n componentId,\n aspects,\n componentDir,\n Boolean(parsed.propagate),\n { indent, newLine },\n parsed.defaultScope\n );\n }\n\n static composePath(componentRootFolder: string) {\n return path.join(componentRootFolder, COMPONENT_CONFIG_FILE_NAME);\n }\n\n async write(options: WriteConfigFileOptions = {}): Promise<void> {\n const json = this.toJson();\n const filePath = ComponentConfigFile.composePath(this.componentDir);\n const isExist = await fs.pathExists(filePath);\n if (isExist && !options.override) {\n throw new AlreadyExistsError(filePath);\n }\n return fs.writeJsonSync(filePath, json, { spaces: this.options.indent, EOL: this.options.newLine });\n }\n\n async addAspect(aspectId: string, config: any, resolveComponentId: ResolveComponentIdFunc) {\n const existing = this.aspects.get(aspectId);\n if (existing) {\n existing.config = config;\n } else {\n const aspectEntry = await this.aspectEntryFromConfigObject(aspectId, config, resolveComponentId);\n this.aspects.entries.push(aspectEntry);\n }\n }\n\n async removeAspect(aspectId: string, markWithMinusIfNotExist: boolean, resolveComponentId: ResolveComponentIdFunc) {\n const existing = this.aspects.get(aspectId);\n if (existing) {\n const aspectList = this.aspects.withoutEntries([aspectId]);\n this.aspects = aspectList;\n } else if (markWithMinusIfNotExist) {\n await this.addAspect(aspectId, REMOVE_EXTENSION_SPECIAL_SIGN, resolveComponentId);\n }\n }\n\n private async aspectEntryFromConfigObject(id: string, config: any, resolveComponentId: ResolveComponentIdFunc) {\n const aspectId = await resolveComponentId(id);\n const legacyEntry = configEntryToDataEntry(id, config);\n return new AspectEntry(aspectId, legacyEntry);\n }\n\n toJson(): ComponentConfigFileJson {\n return {\n componentId: this.componentId.toObject(),\n propagate: this.propagate,\n defaultScope: this.defaultScope,\n extensions: this.aspects.toConfigObject(),\n };\n }\n\n toString(): string {\n const json = this.toJson();\n return stringifyPackage(json, this.options.indent, this.options.newLine);\n }\n}\n\nfunction parseComponentJsonContent(str: string, dir: string) {\n try {\n return JSON.parse(str);\n } catch (err: any) {\n throw new Error(`failed parsing component.json file at ${dir}. original error: ${err.message}`);\n }\n}\n"]}
|
package/dist/tag-cmd.js
CHANGED
|
@@ -112,7 +112,7 @@ https://${_constants().BASE_DOCS_DOMAIN}/docs/tag-component-version
|
|
|
112
112
|
${(0, _constants().WILDCARD_HELP)('tag')}`);
|
|
113
113
|
(0, _defineProperty2().default)(this, "alias", 't');
|
|
114
114
|
(0, _defineProperty2().default)(this, "loader", true);
|
|
115
|
-
(0, _defineProperty2().default)(this, "options", [['m', 'message <message>', 'log message describing the user changes'], ['a', 'all [version]', 'tag all new and modified components'], ['s', 'scope [version]', 'tag all components of the current scope'], ['', 'editor [editor]', 'open an editor to edit the tag messages per component, optionally specify the editor-name, default to vim'], ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'], ['', 'ver <version>', 'tag specified components with the given version'], ['p', 'patch', 'increment the patch version number'], ['', 'minor', 'increment the minor version number'], ['', 'major', 'increment the major version number'], ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'], ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'], ['v', 'verbose', 'show specs output on failure'], ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'], ['i', 'ignore-issues', 'ignore component issues (shown in "bit status" as "issues found")'], ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'], ['', 'skip-tests', 'skip running component tests during tag process'], ['', 'skip-auto-tag', 'skip auto tagging dependents'], ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'], ['', 'soft', 'do not persist. only keep note of the changes to be made'], ['', 'persist', 'persist the changes generated by --soft tag'], ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'], ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'], ['', 'force-deploy', 'run the tag pipeline although the build failed'], ['', 'increment-by <number>', '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.']]);
|
|
115
|
+
(0, _defineProperty2().default)(this, "options", [['m', 'message <message>', 'log message describing the user changes'], ['a', 'all [version]', 'tag all new and modified components'], ['s', 'scope [version]', 'tag all components of the current scope'], ['', 'editor [editor]', 'EXPERIMENTAL. open an editor to edit the tag messages per component, optionally specify the editor-name, default to vim'], ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'], ['', 'ver <version>', 'tag specified components with the given version'], ['p', 'patch', 'increment the patch version number'], ['', 'minor', 'increment the minor version number'], ['', 'major', 'increment the major version number'], ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'], ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'], ['v', 'verbose', 'show specs output on failure'], ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'], ['i', 'ignore-issues', 'ignore component issues (shown in "bit status" as "issues found")'], ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'], ['', 'skip-tests', 'skip running component tests during tag process'], ['', 'skip-auto-tag', 'skip auto tagging dependents'], ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'], ['', 'soft', 'do not persist. only keep note of the changes to be made'], ['', 'persist', 'persist the changes generated by --soft tag'], ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'], ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'], ['', 'force-deploy', 'run the tag pipeline although the build failed'], ['', 'increment-by <number>', '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.']]);
|
|
116
116
|
(0, _defineProperty2().default)(this, "migration", true);
|
|
117
117
|
(0, _defineProperty2().default)(this, "remoteOp", true);
|
|
118
118
|
}
|
package/dist/tag-cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tag-cmd.ts"],"names":["Tag","BASE_DOCS_DOMAIN","report","id","message","ver","all","editor","snapped","patch","minor","major","preRelease","force","verbose","ignoreUnresolvedDependencies","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","build","soft","persist","disableDeployPipeline","disableTagPipeline","forceDeploy","incrementBy","BUILD_ON_CI","Boolean","getVersion","length","GeneralError","secondArg","semver","valid","disableTagAndSnapPipelines","releaseFlags","filter","x","releaseType","DEFAULT_BIT_RELEASE_TYPE","includeImported","params","ids","exactVersion","results","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","bold"],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport semver, { ReleaseType } from 'semver';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { tagAction } from '@teambit/legacy/dist/api/consumer';\nimport {\n TagResults,\n NOTHING_TO_TAG_MSG,\n AUTO_TAGGED_MSG,\n BasicTagParams,\n} from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport { isString } from '@teambit/legacy/dist/utils';\nimport { DEFAULT_BIT_RELEASE_TYPE, BASE_DOCS_DOMAIN, WILDCARD_HELP } from '@teambit/legacy/dist/constants';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\n\nexport class Tag implements Command {\n name = 'tag [id...]';\n group = 'development';\n shortDescription = 'record component changes and lock versions';\n description = `record component changes and lock versions.\nif component ids are entered, you can specify a version per id using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major\nhttps://${BASE_DOCS_DOMAIN}/docs/tag-component-version\n${WILDCARD_HELP('tag')}`;\n alias = 't';\n loader = true;\n options = [\n ['m', 'message <message>', 'log message describing the user changes'],\n ['a', 'all [version]', 'tag all new and modified components'],\n ['s', 'scope [version]', 'tag all components of the current scope'],\n [\n '',\n 'editor [editor]',\n 'open an editor to edit the tag messages per component, optionally specify the editor-name, default to vim',\n ],\n ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'],\n ['', 'ver <version>', 'tag specified components with the given version'],\n ['p', 'patch', 'increment the patch version number'],\n ['', 'minor', 'increment the minor version number'],\n ['', 'major', 'increment the major version number'],\n ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'],\n ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'],\n ['v', 'verbose', 'show specs output on failure'],\n ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'],\n ['i', 'ignore-issues', 'ignore component issues (shown in \"bit status\" as \"issues found\")'],\n ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n ['', 'skip-auto-tag', 'skip auto tagging dependents'],\n ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n ['', 'soft', 'do not persist. only keep note of the changes to be made'],\n ['', 'persist', 'persist the changes generated by --soft tag'],\n ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'],\n ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'],\n ['', 'force-deploy', 'run the tag pipeline although the build failed'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n ] as CommandOptions;\n migration = true;\n remoteOp = true; // In case a compiler / tester is not installed\n\n // eslint-disable-next-line complexity\n async report(\n [id = []]: [string[]],\n {\n message = '',\n ver,\n all = false,\n editor = '',\n snapped = false,\n patch,\n minor,\n major,\n preRelease,\n force = false,\n verbose = false,\n ignoreUnresolvedDependencies,\n ignoreIssues = false,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n build,\n soft = false,\n persist = false,\n disableDeployPipeline = false,\n disableTagPipeline = false,\n forceDeploy = false,\n incrementBy = 1,\n }: {\n all?: boolean | string;\n snapped?: boolean | string;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n ignoreUnresolvedDependencies?: boolean;\n ignoreIssues?: boolean;\n scope?: string | boolean;\n incrementBy?: number;\n disableDeployPipeline?: boolean;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n function getVersion(): string | undefined {\n if (scope && isString(scope)) return scope;\n if (all && isString(all)) return all;\n if (snapped && isString(snapped)) return snapped;\n return ver;\n }\n\n if (!id.length && !all && !snapped && !scope && !persist) {\n throw new GeneralError('missing [id]. to tag all components, please use --all flag');\n }\n if (id.length && all) {\n throw new GeneralError(\n 'you can use either a specific component [id] to tag a particular component or --all flag to tag them all'\n );\n }\n if (typeof ignoreUnresolvedDependencies === 'boolean') {\n ignoreIssues = ignoreUnresolvedDependencies;\n }\n if (id.length === 2) {\n const secondArg = id[1];\n // previously, the synopsis of this command was `bit tag [id] [version]`, show a descriptive\n // error when users still use it.\n if (semver.valid(secondArg)) {\n throw new GeneralError(\n `seems like you entered a version as the second arg, this is not supported anymore, please use \"@\" sign or --ver flag instead`\n );\n }\n }\n const disableTagAndSnapPipelines = disableTagPipeline || disableDeployPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new GeneralError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (all && persist) {\n throw new GeneralError('you can use either --all or --persist, but not both');\n }\n if (editor && persist) {\n throw new GeneralError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new GeneralError('you can use either --editor or --message, but not both');\n }\n\n const releaseFlags = [patch, minor, major, preRelease].filter((x) => x);\n if (releaseFlags.length > 1) {\n throw new GeneralError('you can use only one of the following - patch, minor, major, pre-release');\n }\n\n let releaseType: ReleaseType = DEFAULT_BIT_RELEASE_TYPE;\n const includeImported = Boolean(scope && all);\n\n if (major) releaseType = 'major';\n else if (minor) releaseType = 'minor';\n else if (patch) releaseType = 'patch';\n else if (preRelease) releaseType = 'prerelease';\n\n const params = {\n ids: id,\n all: Boolean(all),\n snapped: Boolean(snapped),\n editor,\n message,\n exactVersion: getVersion(),\n releaseType,\n preRelease: typeof preRelease === 'string' ? preRelease : '',\n force,\n verbose,\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n build,\n soft,\n persist,\n scope,\n includeImported,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n };\n\n const results = await tagAction(params);\n if (!results) return chalk.yellow(NOTHING_TO_TAG_MSG);\n const { taggedComponents, autoTaggedResults, warnings, newComponents }: TagResults = results;\n const changedComponents = taggedComponents.filter((component) => !newComponents.searchWithoutVersion(component.id));\n const addedComponents = taggedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoTaggedResults ? autoTaggedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanationPersist = `\\n(use \"bit export [collection]\" to push these components to a remote\")\n(use \"bit untag\" to unstage versions)\\n`;\n const tagExplanationSoft = `\\n(use \"bit tag --persist\" to persist the changes\")\n(use \"bit untag --soft\" to remove the soft-tags)\\n`;\n\n const tagExplanation = results.isSoftTag ? tagExplanationSoft : tagExplanationPersist;\n\n const outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\n componentOutput += `\\n ${AUTO_TAGGED_MSG}:\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const publishOutput = () => {\n const { publishedPackages } = results;\n if (!publishedPackages || !publishedPackages.length) return '';\n const successTitle = `\\n\\n${chalk.green(\n `published the following ${publishedPackages.length} component(s) successfully\\n`\n )}`;\n const successCompsStr = publishedPackages.join('\\n');\n const successOutput = successCompsStr ? successTitle + successCompsStr : '';\n return successOutput;\n };\n\n const softTagPrefix = results.isSoftTag ? 'soft-tagged ' : '';\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(softTagPrefix + label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const newDesc = results.isSoftTag\n ? 'set to be tagged first version for components'\n : 'first version for components';\n const changedDesc = results.isSoftTag\n ? 'components that set to get a version bump'\n : 'components that got a version bump';\n const softTagClarification = results.isSoftTag\n ? chalk.bold(\n 'keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag'\n )\n : '';\n return (\n warningsOutput +\n chalk.green(\n `${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`\n ) +\n tagExplanation +\n outputIfExists('new components', newDesc, addedComponents) +\n outputIfExists('changed components', changedDesc, changedComponents) +\n publishOutput() +\n softTagClarification\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["tag-cmd.ts"],"names":["Tag","BASE_DOCS_DOMAIN","report","id","message","ver","all","editor","snapped","patch","minor","major","preRelease","force","verbose","ignoreUnresolvedDependencies","ignoreIssues","ignoreNewestVersion","skipTests","skipAutoTag","scope","build","soft","persist","disableDeployPipeline","disableTagPipeline","forceDeploy","incrementBy","BUILD_ON_CI","Boolean","getVersion","length","GeneralError","secondArg","semver","valid","disableTagAndSnapPipelines","releaseFlags","filter","x","releaseType","DEFAULT_BIT_RELEASE_TYPE","includeImported","params","ids","exactVersion","results","chalk","yellow","NOTHING_TO_TAG_MSG","taggedComponents","autoTaggedResults","warnings","newComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","tagExplanationPersist","tagExplanationSoft","tagExplanation","isSoftTag","outputComponents","comps","map","componentOutput","toString","autoTag","result","triggeredBy","searchWithoutScopeAndVersion","autoTagComp","a","AUTO_TAGGED_MSG","publishOutput","publishedPackages","successTitle","green","successCompsStr","successOutput","softTagPrefix","outputIfExists","label","explanation","components","underline","newDesc","changedDesc","softTagClarification","bold"],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport semver, { ReleaseType } from 'semver';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { tagAction } from '@teambit/legacy/dist/api/consumer';\nimport {\n TagResults,\n NOTHING_TO_TAG_MSG,\n AUTO_TAGGED_MSG,\n BasicTagParams,\n} from '@teambit/legacy/dist/api/consumer/lib/tag';\nimport { isString } from '@teambit/legacy/dist/utils';\nimport { DEFAULT_BIT_RELEASE_TYPE, BASE_DOCS_DOMAIN, WILDCARD_HELP } from '@teambit/legacy/dist/constants';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { isFeatureEnabled, BUILD_ON_CI } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\n\nexport class Tag implements Command {\n name = 'tag [id...]';\n group = 'development';\n shortDescription = 'record component changes and lock versions';\n description = `record component changes and lock versions.\nif component ids are entered, you can specify a version per id using \"@\" sign, e.g. bit tag foo@1.0.0 bar@minor baz@major\nhttps://${BASE_DOCS_DOMAIN}/docs/tag-component-version\n${WILDCARD_HELP('tag')}`;\n alias = 't';\n loader = true;\n options = [\n ['m', 'message <message>', 'log message describing the user changes'],\n ['a', 'all [version]', 'tag all new and modified components'],\n ['s', 'scope [version]', 'tag all components of the current scope'],\n [\n '',\n 'editor [editor]',\n 'EXPERIMENTAL. open an editor to edit the tag messages per component, optionally specify the editor-name, default to vim',\n ],\n ['', 'snapped [version]', 'tag components that their head is a snap (not a tag)'],\n ['', 'ver <version>', 'tag specified components with the given version'],\n ['p', 'patch', 'increment the patch version number'],\n ['', 'minor', 'increment the minor version number'],\n ['', 'major', 'increment the major version number'],\n ['', 'pre-release [identifier]', 'EXPERIMENTAL. increment a pre-release version (e.g. 1.0.0-dev.1)'],\n ['f', 'force', 'force-tag even if tests are failing and even when component has not changed'],\n ['v', 'verbose', 'show specs output on failure'],\n ['', 'ignore-unresolved-dependencies', 'DEPRECATED. use --ignore-issues instead'],\n ['i', 'ignore-issues', 'ignore component issues (shown in \"bit status\" as \"issues found\")'],\n ['I', 'ignore-newest-version', 'ignore existing of newer versions (default = false)'],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n ['', 'skip-auto-tag', 'skip auto tagging dependents'],\n ['b', 'build', 'EXPERIMENTAL. not needed for now. run the pipeline build and complete the tag'],\n ['', 'soft', 'do not persist. only keep note of the changes to be made'],\n ['', 'persist', 'persist the changes generated by --soft tag'],\n ['', 'disable-deploy-pipeline', 'DEPRECATED. use --disable-tag-pipeline instead'],\n ['', 'disable-tag-pipeline', 'skip the tag pipeline to avoid publishing the components'],\n ['', 'force-deploy', 'run the tag pipeline although the build failed'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n ] as CommandOptions;\n migration = true;\n remoteOp = true; // In case a compiler / tester is not installed\n\n // eslint-disable-next-line complexity\n async report(\n [id = []]: [string[]],\n {\n message = '',\n ver,\n all = false,\n editor = '',\n snapped = false,\n patch,\n minor,\n major,\n preRelease,\n force = false,\n verbose = false,\n ignoreUnresolvedDependencies,\n ignoreIssues = false,\n ignoreNewestVersion = false,\n skipTests = false,\n skipAutoTag = false,\n scope,\n build,\n soft = false,\n persist = false,\n disableDeployPipeline = false,\n disableTagPipeline = false,\n forceDeploy = false,\n incrementBy = 1,\n }: {\n all?: boolean | string;\n snapped?: boolean | string;\n ver?: string;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n ignoreUnresolvedDependencies?: boolean;\n ignoreIssues?: boolean;\n scope?: string | boolean;\n incrementBy?: number;\n disableDeployPipeline?: boolean;\n disableTagPipeline?: boolean;\n } & Partial<BasicTagParams>\n ): Promise<string> {\n build = isFeatureEnabled(BUILD_ON_CI) ? Boolean(build) : true;\n if (soft) build = false;\n function getVersion(): string | undefined {\n if (scope && isString(scope)) return scope;\n if (all && isString(all)) return all;\n if (snapped && isString(snapped)) return snapped;\n return ver;\n }\n\n if (!id.length && !all && !snapped && !scope && !persist) {\n throw new GeneralError('missing [id]. to tag all components, please use --all flag');\n }\n if (id.length && all) {\n throw new GeneralError(\n 'you can use either a specific component [id] to tag a particular component or --all flag to tag them all'\n );\n }\n if (typeof ignoreUnresolvedDependencies === 'boolean') {\n ignoreIssues = ignoreUnresolvedDependencies;\n }\n if (id.length === 2) {\n const secondArg = id[1];\n // previously, the synopsis of this command was `bit tag [id] [version]`, show a descriptive\n // error when users still use it.\n if (semver.valid(secondArg)) {\n throw new GeneralError(\n `seems like you entered a version as the second arg, this is not supported anymore, please use \"@\" sign or --ver flag instead`\n );\n }\n }\n const disableTagAndSnapPipelines = disableTagPipeline || disableDeployPipeline;\n if (disableTagAndSnapPipelines && forceDeploy) {\n throw new GeneralError('you can use either force-deploy or disable-tag-pipeline, but not both');\n }\n if (all && persist) {\n throw new GeneralError('you can use either --all or --persist, but not both');\n }\n if (editor && persist) {\n throw new GeneralError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new GeneralError('you can use either --editor or --message, but not both');\n }\n\n const releaseFlags = [patch, minor, major, preRelease].filter((x) => x);\n if (releaseFlags.length > 1) {\n throw new GeneralError('you can use only one of the following - patch, minor, major, pre-release');\n }\n\n let releaseType: ReleaseType = DEFAULT_BIT_RELEASE_TYPE;\n const includeImported = Boolean(scope && all);\n\n if (major) releaseType = 'major';\n else if (minor) releaseType = 'minor';\n else if (patch) releaseType = 'patch';\n else if (preRelease) releaseType = 'prerelease';\n\n const params = {\n ids: id,\n all: Boolean(all),\n snapped: Boolean(snapped),\n editor,\n message,\n exactVersion: getVersion(),\n releaseType,\n preRelease: typeof preRelease === 'string' ? preRelease : '',\n force,\n verbose,\n ignoreIssues,\n ignoreNewestVersion,\n skipTests,\n skipAutoTag,\n build,\n soft,\n persist,\n scope,\n includeImported,\n disableTagAndSnapPipelines,\n forceDeploy,\n incrementBy,\n };\n\n const results = await tagAction(params);\n if (!results) return chalk.yellow(NOTHING_TO_TAG_MSG);\n const { taggedComponents, autoTaggedResults, warnings, newComponents }: TagResults = results;\n const changedComponents = taggedComponents.filter((component) => !newComponents.searchWithoutVersion(component.id));\n const addedComponents = taggedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoTaggedResults ? autoTaggedResults.length : 0;\n\n const warningsOutput = warnings && warnings.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n const tagExplanationPersist = `\\n(use \"bit export [collection]\" to push these components to a remote\")\n(use \"bit untag\" to unstage versions)\\n`;\n const tagExplanationSoft = `\\n(use \"bit tag --persist\" to persist the changes\")\n(use \"bit untag --soft\" to remove the soft-tags)\\n`;\n\n const tagExplanation = results.isSoftTag ? tagExplanationSoft : tagExplanationPersist;\n\n const outputComponents = (comps) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${component.id.toString()}`;\n const autoTag = autoTaggedResults.filter((result) =>\n result.triggeredBy.searchWithoutScopeAndVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) => a.component.id.toString());\n componentOutput += `\\n ${AUTO_TAGGED_MSG}:\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const publishOutput = () => {\n const { publishedPackages } = results;\n if (!publishedPackages || !publishedPackages.length) return '';\n const successTitle = `\\n\\n${chalk.green(\n `published the following ${publishedPackages.length} component(s) successfully\\n`\n )}`;\n const successCompsStr = publishedPackages.join('\\n');\n const successOutput = successCompsStr ? successTitle + successCompsStr : '';\n return successOutput;\n };\n\n const softTagPrefix = results.isSoftTag ? 'soft-tagged ' : '';\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(softTagPrefix + label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const newDesc = results.isSoftTag\n ? 'set to be tagged first version for components'\n : 'first version for components';\n const changedDesc = results.isSoftTag\n ? 'components that set to get a version bump'\n : 'components that got a version bump';\n const softTagClarification = results.isSoftTag\n ? chalk.bold(\n 'keep in mind that this is a soft-tag (changes recorded to be tagged), to persist the changes use --persist flag'\n )\n : '';\n return (\n warningsOutput +\n chalk.green(\n `${taggedComponents.length + autoTaggedCount} component(s) ${results.isSoftTag ? 'soft-' : ''}tagged`\n ) +\n tagExplanation +\n outputIfExists('new components', newDesc, addedComponents) +\n outputIfExists('changed components', changedDesc, changedComponents) +\n publishOutput() +\n softTagClarification\n );\n }\n}\n"]}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -250,6 +250,7 @@ export declare class Workspace implements ComponentFactory {
|
|
|
250
250
|
*/
|
|
251
251
|
load(ids: Array<BitId | string>): Promise<ResolvedComponent[]>;
|
|
252
252
|
createAspectList(extensionDataList: ExtensionDataList): Promise<AspectList>;
|
|
253
|
+
private extensionDataEntryToAspectEntry;
|
|
253
254
|
/**
|
|
254
255
|
* get a component from workspace
|
|
255
256
|
* @param id component ID
|
|
@@ -274,6 +275,9 @@ export declare class Workspace implements ComponentFactory {
|
|
|
274
275
|
} | null>;
|
|
275
276
|
getDefaultExtensions(): ExtensionDataList;
|
|
276
277
|
ejectConfig(id: ComponentID, options: EjectConfOptions): Promise<EjectConfResult>;
|
|
278
|
+
/**
|
|
279
|
+
* see component-aspect, createAspectListFromLegacy() method for a context why this is needed.
|
|
280
|
+
*/
|
|
277
281
|
private resolveScopeAspectListIds;
|
|
278
282
|
/**
|
|
279
283
|
* load components into the workspace through a variants pattern.
|
|
@@ -379,6 +383,9 @@ export declare class Workspace implements ComponentFactory {
|
|
|
379
383
|
}>;
|
|
380
384
|
private filterEnvsFromExtensionsIfNeeded;
|
|
381
385
|
triggerOnPreWatch(componentIds: ComponentID[], watchOpts: WatchOptions): Promise<void>;
|
|
386
|
+
addSpecificComponentConfig(id: ComponentID, aspectId: string, config?: Record<string, any>): Promise<void>;
|
|
387
|
+
removeSpecificComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): Promise<void>;
|
|
388
|
+
getSpecificComponentConfig(id: ComponentID, aspectId: string): Promise<any>;
|
|
382
389
|
/**
|
|
383
390
|
* This will mutate the entries with extensionId prop to have resolved legacy id
|
|
384
391
|
* This should be worked on the extension data list not the new aspect list
|
package/dist/workspace.js
CHANGED
|
@@ -853,12 +853,14 @@ class Workspace {
|
|
|
853
853
|
}
|
|
854
854
|
|
|
855
855
|
async createAspectList(extensionDataList) {
|
|
856
|
-
const entiresP = extensionDataList.map(
|
|
857
|
-
return new (_component().AspectEntry)(await this.resolveComponentId(entry.id), entry);
|
|
858
|
-
});
|
|
856
|
+
const entiresP = extensionDataList.map(entry => this.extensionDataEntryToAspectEntry(entry));
|
|
859
857
|
const entries = await Promise.all(entiresP);
|
|
860
858
|
return this.componentAspect.createAspectListFromEntries(entries);
|
|
861
859
|
}
|
|
860
|
+
|
|
861
|
+
async extensionDataEntryToAspectEntry(dataEntry) {
|
|
862
|
+
return new (_component().AspectEntry)(await this.resolveComponentId(dataEntry.id), dataEntry);
|
|
863
|
+
}
|
|
862
864
|
/**
|
|
863
865
|
* get a component from workspace
|
|
864
866
|
* @param id component ID
|
|
@@ -1068,14 +1070,18 @@ class Workspace {
|
|
|
1068
1070
|
const componentDir = this.componentDir(id, {
|
|
1069
1071
|
ignoreVersion: true
|
|
1070
1072
|
});
|
|
1071
|
-
const componentConfigFile = new (_componentConfigFile().ComponentConfigFile)(componentId, aspects, options.propagate);
|
|
1072
|
-
await componentConfigFile.write(
|
|
1073
|
+
const componentConfigFile = new (_componentConfigFile().ComponentConfigFile)(componentId, aspects, componentDir, options.propagate);
|
|
1074
|
+
await componentConfigFile.write({
|
|
1073
1075
|
override: options.override
|
|
1074
1076
|
});
|
|
1075
1077
|
return {
|
|
1076
1078
|
configPath: _componentConfigFile().ComponentConfigFile.composePath(componentDir)
|
|
1077
1079
|
};
|
|
1078
1080
|
}
|
|
1081
|
+
/**
|
|
1082
|
+
* see component-aspect, createAspectListFromLegacy() method for a context why this is needed.
|
|
1083
|
+
*/
|
|
1084
|
+
|
|
1079
1085
|
|
|
1080
1086
|
async resolveScopeAspectListIds(aspectListFromScope) {
|
|
1081
1087
|
const resolvedList = await aspectListFromScope.pmap(async entry => {
|
|
@@ -1557,6 +1563,46 @@ class Workspace {
|
|
|
1557
1563
|
await func(components, watchOpts);
|
|
1558
1564
|
});
|
|
1559
1565
|
}
|
|
1566
|
+
|
|
1567
|
+
async addSpecificComponentConfig(id, aspectId, config = {}) {
|
|
1568
|
+
const componentConfigFile = await this.componentConfigFile(id);
|
|
1569
|
+
|
|
1570
|
+
if (componentConfigFile) {
|
|
1571
|
+
await componentConfigFile.addAspect(aspectId, config, this.resolveComponentId.bind(this));
|
|
1572
|
+
await componentConfigFile.write({
|
|
1573
|
+
override: true
|
|
1574
|
+
});
|
|
1575
|
+
} else {
|
|
1576
|
+
this.bitMap.addComponentConfig(id, aspectId, config);
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
async removeSpecificComponentConfig(id, aspectId, markWithMinusIfNotExist) {
|
|
1581
|
+
const componentConfigFile = await this.componentConfigFile(id);
|
|
1582
|
+
|
|
1583
|
+
if (componentConfigFile) {
|
|
1584
|
+
await componentConfigFile.removeAspect(aspectId, markWithMinusIfNotExist, this.resolveComponentId.bind(this));
|
|
1585
|
+
await componentConfigFile.write({
|
|
1586
|
+
override: true
|
|
1587
|
+
});
|
|
1588
|
+
} else {
|
|
1589
|
+
this.bitMap.removeComponentConfig(id, aspectId, markWithMinusIfNotExist);
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
async getSpecificComponentConfig(id, aspectId) {
|
|
1594
|
+
var _this$bitMap$getBitma;
|
|
1595
|
+
|
|
1596
|
+
const componentConfigFile = await this.componentConfigFile(id);
|
|
1597
|
+
|
|
1598
|
+
if (componentConfigFile) {
|
|
1599
|
+
var _componentConfigFile$2;
|
|
1600
|
+
|
|
1601
|
+
return (_componentConfigFile$2 = componentConfigFile.aspects.get(aspectId)) === null || _componentConfigFile$2 === void 0 ? void 0 : _componentConfigFile$2.config;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
return (_this$bitMap$getBitma = this.bitMap.getBitmapEntry(id).config) === null || _this$bitMap$getBitma === void 0 ? void 0 : _this$bitMap$getBitma[aspectId];
|
|
1605
|
+
}
|
|
1560
1606
|
/**
|
|
1561
1607
|
* This will mutate the entries with extensionId prop to have resolved legacy id
|
|
1562
1608
|
* This should be worked on the extension data list not the new aspect list
|
|
@@ -2069,10 +2115,7 @@ class Workspace {
|
|
|
2069
2115
|
|
|
2070
2116
|
async _saveManyComponentConfigFiles(componentConfigFiles) {
|
|
2071
2117
|
await Promise.all(Array.from(componentConfigFiles).map(async componentConfigFile => {
|
|
2072
|
-
|
|
2073
|
-
ignoreVersion: true
|
|
2074
|
-
});
|
|
2075
|
-
await componentConfigFile.write(componentDir, {
|
|
2118
|
+
await componentConfigFile.write({
|
|
2076
2119
|
override: true
|
|
2077
2120
|
});
|
|
2078
2121
|
}));
|
|
@@ -2462,12 +2505,12 @@ your workspace.jsonc has this component-id set. you might want to remove/change
|
|
|
2462
2505
|
const existsOnWorkspace = await this.hasId(envId);
|
|
2463
2506
|
const envIdStrNoVersion = envId.toStringWithoutVersion();
|
|
2464
2507
|
await this.unsetEnvFromComponents(componentIds);
|
|
2465
|
-
componentIds.
|
|
2466
|
-
this.
|
|
2467
|
-
this.
|
|
2508
|
+
await Promise.all(componentIds.map(async componentId => {
|
|
2509
|
+
await this.addSpecificComponentConfig(componentId, existsOnWorkspace ? envIdStrNoVersion : envIdStr);
|
|
2510
|
+
await this.addSpecificComponentConfig(componentId, _envs().EnvsAspect.id, {
|
|
2468
2511
|
env: envIdStrNoVersion
|
|
2469
2512
|
});
|
|
2470
|
-
});
|
|
2513
|
+
}));
|
|
2471
2514
|
await this.bitMap.write();
|
|
2472
2515
|
}
|
|
2473
2516
|
/**
|
|
@@ -2478,11 +2521,8 @@ your workspace.jsonc has this component-id set. you might want to remove/change
|
|
|
2478
2521
|
async unsetEnvFromComponents(ids) {
|
|
2479
2522
|
const changed = [];
|
|
2480
2523
|
const unchanged = [];
|
|
2481
|
-
ids.
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
const bitMapEntry = this.bitMap.getBitmapEntry(id);
|
|
2485
|
-
const envsAspect = (_bitMapEntry$config = bitMapEntry.config) === null || _bitMapEntry$config === void 0 ? void 0 : _bitMapEntry$config[_envs().EnvsAspect.id];
|
|
2524
|
+
await Promise.all(ids.map(async id => {
|
|
2525
|
+
const envsAspect = await this.getSpecificComponentConfig(id, _envs().EnvsAspect.id);
|
|
2486
2526
|
const currentEnv = envsAspect && envsAspect !== _config().REMOVE_EXTENSION_SPECIAL_SIGN ? envsAspect.env : null;
|
|
2487
2527
|
|
|
2488
2528
|
if (!currentEnv) {
|
|
@@ -2490,10 +2530,10 @@ your workspace.jsonc has this component-id set. you might want to remove/change
|
|
|
2490
2530
|
return;
|
|
2491
2531
|
}
|
|
2492
2532
|
|
|
2493
|
-
this.
|
|
2494
|
-
this.
|
|
2533
|
+
await this.removeSpecificComponentConfig(id, currentEnv, false);
|
|
2534
|
+
await this.removeSpecificComponentConfig(id, _envs().EnvsAspect.id, false);
|
|
2495
2535
|
changed.push(id);
|
|
2496
|
-
});
|
|
2536
|
+
}));
|
|
2497
2537
|
await this.bitMap.write();
|
|
2498
2538
|
return {
|
|
2499
2539
|
changed,
|