@teambit/builder 1.0.335 → 1.0.337
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/artifacts/__bit_junit.xml +1 -1
- package/artifacts/preview/teambit_pipelines_builder-preview.js +1 -1
- package/artifacts/schema.json +823 -581
- package/dist/build.cmd.d.ts +2 -1
- package/dist/build.cmd.js +14 -3
- package/dist/build.cmd.js.map +1 -1
- package/dist/builder.main.runtime.d.ts +9 -3
- package/dist/builder.main.runtime.js +55 -5
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/exceptions/components-have-issues.d.ts +5 -0
- package/dist/exceptions/components-have-issues.js +69 -0
- package/dist/exceptions/components-have-issues.js.map +1 -0
- package/dist/{preview-1720927249302.js → preview-1721099996991.js} +2 -2
- package/exceptions/components-have-issues.ts +42 -0
- package/package.json +20 -18
package/dist/build.cmd.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ type BuildOpts = {
|
|
|
17
17
|
failFast?: boolean;
|
|
18
18
|
includeSnap?: boolean;
|
|
19
19
|
includeTag?: boolean;
|
|
20
|
+
ignoreIssues?: string;
|
|
20
21
|
};
|
|
21
22
|
export declare class BuilderCmd implements Command {
|
|
22
23
|
private builder;
|
|
@@ -38,7 +39,7 @@ export declare class BuilderCmd implements Command {
|
|
|
38
39
|
group: string;
|
|
39
40
|
options: CommandOptions;
|
|
40
41
|
constructor(builder: BuilderMain, workspace: Workspace, logger: Logger);
|
|
41
|
-
report([pattern]: [string], { unmodified, dev, install, cachePackagesOnCapsulesRoot, reuseCapsules, rewrite, reinstall, tasks, listTasks, skipTests, failFast, includeSnap, includeTag, }: BuildOpts): Promise<string>;
|
|
42
|
+
report([pattern]: [string], { unmodified, dev, install, cachePackagesOnCapsulesRoot, reuseCapsules, rewrite, reinstall, tasks, listTasks, skipTests, failFast, includeSnap, includeTag, ignoreIssues, }: BuildOpts): Promise<string>;
|
|
42
43
|
private getListTasks;
|
|
43
44
|
}
|
|
44
45
|
export {};
|
package/dist/build.cmd.js
CHANGED
|
@@ -32,6 +32,13 @@ function _chalk() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
+
function _componentIssues() {
|
|
36
|
+
const data = require("@teambit/component-issues");
|
|
37
|
+
_componentIssues = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
35
42
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
36
43
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
37
44
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
@@ -64,7 +71,9 @@ the "--rewrite" flag ensures the component files are fresh, and the "--tasks" en
|
|
|
64
71
|
_defineProperty(this, "alias", '');
|
|
65
72
|
_defineProperty(this, "group", 'development');
|
|
66
73
|
_defineProperty(this, "options", [['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'], ['d', 'dev', 'run the pipeline in dev mode'], ['', 'install', 'install core aspects in capsules'], ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'], ['', 'rewrite', 'use only with --reuse-capsules. rewrite the component files'], ['', 'reinstall', 'use only with --reuse-capsules. rerun the installation'], ['', 'tasks <string>', `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.
|
|
67
|
-
specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. teambit.compilation/compiler)`], ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'], ['', 'list-tasks <string>', 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap'], ['', 'skip-tests', 'skip running component tests during build process'], ['', 'fail-fast', 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependency failed)'], ['', 'include-snap', 'EXPERIMENTAL. include snap pipeline tasks. Warning: this may deploy/publish if you have such tasks'], ['', 'include-tag', 'EXPERIMENTAL. include tag pipeline tasks. Warning: this may deploy/publish if you have such tasks']
|
|
74
|
+
specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. teambit.compilation/compiler)`], ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'], ['', 'list-tasks <string>', 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap'], ['', 'skip-tests', 'skip running component tests during build process'], ['', 'fail-fast', 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependency failed)'], ['', 'include-snap', 'EXPERIMENTAL. include snap pipeline tasks. Warning: this may deploy/publish if you have such tasks'], ['', 'include-tag', 'EXPERIMENTAL. include tag pipeline tasks. Warning: this may deploy/publish if you have such tasks'], ['i', 'ignore-issues <issues>', `ignore component issues (shown in "bit status" as "issues found"), issues to ignore:
|
|
75
|
+
[${Object.keys(_componentIssues().IssuesClasses).join(', ')}]
|
|
76
|
+
to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`]]);
|
|
68
77
|
}
|
|
69
78
|
async report([pattern], {
|
|
70
79
|
unmodified = false,
|
|
@@ -79,7 +88,8 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
|
|
|
79
88
|
skipTests,
|
|
80
89
|
failFast,
|
|
81
90
|
includeSnap,
|
|
82
|
-
includeTag
|
|
91
|
+
includeTag,
|
|
92
|
+
ignoreIssues
|
|
83
93
|
}) {
|
|
84
94
|
if (rewrite && !reuseCapsules) throw new Error('cannot use --rewrite without --reuse-capsules');
|
|
85
95
|
if (reinstall && !reuseCapsules) throw new Error('cannot use --reinstall without --reuse-capsules');
|
|
@@ -112,7 +122,8 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
|
|
|
112
122
|
exitOnFirstFailedTask: failFast
|
|
113
123
|
}, {
|
|
114
124
|
includeSnap,
|
|
115
|
-
includeTag
|
|
125
|
+
includeTag,
|
|
126
|
+
ignoreIssues
|
|
116
127
|
});
|
|
117
128
|
this.logger.console(`build output can be found in path: ${envsExecutionResults.capsuleRootDir}`);
|
|
118
129
|
const duration = (0, _prettyTime().default)(process.hrtime(start));
|
package/dist/build.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_prettyTime","data","_interopRequireDefault","require","_workspace","_constants","_chalk","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BuilderCmd","constructor","builder","workspace","logger","name","description","COMPONENT_PATTERN_HELP","cmd","report","pattern","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","rewrite","reinstall","tasks","listTasks","skipTests","failFast","includeSnap","includeTag","Error","OutsideWorkspaceError","getListTasks","setStatusLine","start","process","hrtime","components","getComponentsByUserInput","length","chalk","bold","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","installPackages","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","console","capsuleRootDir","duration","prettyTime","succeedOrFailed","hasErrors","msg","consoleFailure","throwErrorsIfExist","green","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport prettyTime from 'pretty-time';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\n\ntype BuildOpts = {\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n rewrite?: boolean; //relevant only when reuseCapsules is set\n reinstall?: boolean; //relevant only when reuseCapsules is set\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n includeSnap?: boolean;\n includeTag?: boolean;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build.';\n extendedDescription = `by default, only new and modified components are built.\nthe build takes place in an isolated directories on the filesystem (called \"capsules\"). the component files are copied to these directories\nand the package-manager installs the dependencies in the capsules root. once done, the build pipeline is running.\nbecause this process can take a while on a large workspace, some flags are available to shorten the process. See the example section for more info.\n `;\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n examples = [\n {\n cmd: 'build --reuse-capsules --tasks \"custom-task\"',\n description: 'helps to debug this \"custom-task\" without recreating the capsules from scratch',\n },\n {\n cmd: 'build --reuse-capsules --rewrite --tasks \"BabelCompile,MochaTest\"',\n description: `helpful when for example the tests are failing and code changes are needed to debug it.\nthe \"--rewrite\" flag ensures the component files are fresh, and the \"--tasks\" ensures to re-compile them and then run the tests`,\n },\n ];\n helpUrl = 'reference/build-pipeline/builder-overview';\n alias = '';\n group = 'development';\n options = [\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'],\n ['d', 'dev', 'run the pipeline in dev mode'],\n ['', 'install', 'install core aspects in capsules'],\n ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'],\n ['', 'rewrite', 'use only with --reuse-capsules. rewrite the component files'],\n ['', 'reinstall', 'use only with --reuse-capsules. rerun the installation'],\n [\n '',\n 'tasks <string>',\n `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.\nspecify the task-name (e.g. \"TypescriptCompiler\") or the task-aspect-id (e.g. teambit.compilation/compiler)`,\n ],\n ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'],\n [\n '',\n 'list-tasks <string>',\n 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap',\n ],\n ['', 'skip-tests', 'skip running component tests during build process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependency failed)',\n ],\n [\n '',\n 'include-snap',\n 'EXPERIMENTAL. include snap pipeline tasks. Warning: this may deploy/publish if you have such tasks',\n ],\n [\n '',\n 'include-tag',\n 'EXPERIMENTAL. include tag pipeline tasks. Warning: this may deploy/publish if you have such tasks',\n ],\n ] as CommandOptions;\n\n constructor(private builder: BuilderMain, private workspace: Workspace, private logger: Logger) {}\n\n async report(\n [pattern]: [string],\n {\n unmodified = false,\n dev = false,\n install = false,\n cachePackagesOnCapsulesRoot = false,\n reuseCapsules = false,\n rewrite = false,\n reinstall = false,\n tasks,\n listTasks,\n skipTests,\n failFast,\n includeSnap,\n includeTag,\n }: BuildOpts\n ): Promise<string> {\n if (rewrite && !reuseCapsules) throw new Error('cannot use --rewrite without --reuse-capsules');\n if (reinstall && !reuseCapsules) throw new Error('cannot use --reinstall without --reuse-capsules');\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (listTasks) {\n return this.getListTasks(listTasks);\n }\n\n this.logger.setStatusLine('build');\n const start = process.hrtime();\n const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);\n if (!components.length) {\n return chalk.bold(\n `no components found to build. use \"--unmodified\" flag to build all components or specify the ids to build, otherwise, only new and modified components will be built`\n );\n }\n\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n installPackages: rewrite && !reinstall ? false : true,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules && !rewrite && !reinstall,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n },\n {\n includeSnap,\n includeTag,\n }\n );\n this.logger.console(`build output can be found in path: ${envsExecutionResults.capsuleRootDir}`);\n const duration = prettyTime(process.hrtime(start));\n const succeedOrFailed = envsExecutionResults.hasErrors() ? 'failed' : 'succeeded';\n const msg = `build ${succeedOrFailed}. completed in ${duration}.`;\n if (envsExecutionResults.hasErrors()) {\n this.logger.consoleFailure(msg);\n }\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(msg);\n }\n\n private async getListTasks(componentIdStr: string): Promise<string> {\n const compId = await this.workspace.resolveComponentId(componentIdStr);\n const component = await this.workspace.get(compId);\n const results = this.builder.listTasks(component);\n return `${chalk.green('Task List')}\nid: ${results.id.toString()}\nenvId: ${results.envId}\n\n${chalk.bold('Build Pipeline Tasks:')}\n${results.buildTasks.join('\\n')}\n\n${chalk.bold('Tag Pipeline Tasks:')}\n${results.tagTasks.join('\\n')}\n\n${chalk.bold('Snap Pipeline Tasks:')}\n${results.snapTasks.join('\\n') || '<N/A>'}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_prettyTime","data","_interopRequireDefault","require","_workspace","_constants","_chalk","_componentIssues","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BuilderCmd","constructor","builder","workspace","logger","name","description","COMPONENT_PATTERN_HELP","cmd","keys","IssuesClasses","join","report","pattern","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","rewrite","reinstall","tasks","listTasks","skipTests","failFast","includeSnap","includeTag","ignoreIssues","Error","OutsideWorkspaceError","getListTasks","setStatusLine","start","process","hrtime","components","getComponentsByUserInput","length","chalk","bold","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","installPackages","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","console","capsuleRootDir","duration","prettyTime","succeedOrFailed","hasErrors","msg","consoleFailure","throwErrorsIfExist","green","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport prettyTime from 'pretty-time';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\nimport { IssuesClasses } from '@teambit/component-issues';\n\ntype BuildOpts = {\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n rewrite?: boolean; //relevant only when reuseCapsules is set\n reinstall?: boolean; //relevant only when reuseCapsules is set\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n includeSnap?: boolean;\n includeTag?: boolean;\n ignoreIssues?: string;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build.';\n extendedDescription = `by default, only new and modified components are built.\nthe build takes place in an isolated directories on the filesystem (called \"capsules\"). the component files are copied to these directories\nand the package-manager installs the dependencies in the capsules root. once done, the build pipeline is running.\nbecause this process can take a while on a large workspace, some flags are available to shorten the process. See the example section for more info.\n `;\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n examples = [\n {\n cmd: 'build --reuse-capsules --tasks \"custom-task\"',\n description: 'helps to debug this \"custom-task\" without recreating the capsules from scratch',\n },\n {\n cmd: 'build --reuse-capsules --rewrite --tasks \"BabelCompile,MochaTest\"',\n description: `helpful when for example the tests are failing and code changes are needed to debug it.\nthe \"--rewrite\" flag ensures the component files are fresh, and the \"--tasks\" ensures to re-compile them and then run the tests`,\n },\n ];\n helpUrl = 'reference/build-pipeline/builder-overview';\n alias = '';\n group = 'development';\n options = [\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'],\n ['d', 'dev', 'run the pipeline in dev mode'],\n ['', 'install', 'install core aspects in capsules'],\n ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'],\n ['', 'rewrite', 'use only with --reuse-capsules. rewrite the component files'],\n ['', 'reinstall', 'use only with --reuse-capsules. rerun the installation'],\n [\n '',\n 'tasks <string>',\n `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.\nspecify the task-name (e.g. \"TypescriptCompiler\") or the task-aspect-id (e.g. teambit.compilation/compiler)`,\n ],\n ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'],\n [\n '',\n 'list-tasks <string>',\n 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap',\n ],\n ['', 'skip-tests', 'skip running component tests during build process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependency failed)',\n ],\n [\n '',\n 'include-snap',\n 'EXPERIMENTAL. include snap pipeline tasks. Warning: this may deploy/publish if you have such tasks',\n ],\n [\n '',\n 'include-tag',\n 'EXPERIMENTAL. include tag pipeline tasks. Warning: this may deploy/publish if you have such tasks',\n ],\n [\n 'i',\n 'ignore-issues <issues>',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ] as CommandOptions;\n\n constructor(private builder: BuilderMain, private workspace: Workspace, private logger: Logger) {}\n\n async report(\n [pattern]: [string],\n {\n unmodified = false,\n dev = false,\n install = false,\n cachePackagesOnCapsulesRoot = false,\n reuseCapsules = false,\n rewrite = false,\n reinstall = false,\n tasks,\n listTasks,\n skipTests,\n failFast,\n includeSnap,\n includeTag,\n ignoreIssues,\n }: BuildOpts\n ): Promise<string> {\n if (rewrite && !reuseCapsules) throw new Error('cannot use --rewrite without --reuse-capsules');\n if (reinstall && !reuseCapsules) throw new Error('cannot use --reinstall without --reuse-capsules');\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (listTasks) {\n return this.getListTasks(listTasks);\n }\n\n this.logger.setStatusLine('build');\n const start = process.hrtime();\n const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);\n if (!components.length) {\n return chalk.bold(\n `no components found to build. use \"--unmodified\" flag to build all components or specify the ids to build, otherwise, only new and modified components will be built`\n );\n }\n\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n installPackages: rewrite && !reinstall ? false : true,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules && !rewrite && !reinstall,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n },\n {\n includeSnap,\n includeTag,\n ignoreIssues,\n }\n );\n this.logger.console(`build output can be found in path: ${envsExecutionResults.capsuleRootDir}`);\n const duration = prettyTime(process.hrtime(start));\n const succeedOrFailed = envsExecutionResults.hasErrors() ? 'failed' : 'succeeded';\n const msg = `build ${succeedOrFailed}. completed in ${duration}.`;\n if (envsExecutionResults.hasErrors()) {\n this.logger.consoleFailure(msg);\n }\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(msg);\n }\n\n private async getListTasks(componentIdStr: string): Promise<string> {\n const compId = await this.workspace.resolveComponentId(componentIdStr);\n const component = await this.workspace.get(compId);\n const results = this.builder.listTasks(component);\n return `${chalk.green('Task List')}\nid: ${results.id.toString()}\nenvId: ${results.envId}\n\n${chalk.bold('Build Pipeline Tasks:')}\n${results.buildTasks.join('\\n')}\n\n${chalk.bold('Tag Pipeline Tasks:')}\n${results.tagTasks.join('\\n')}\n\n${chalk.bold('Snap Pipeline Tasks:')}\n${results.snapTasks.join('\\n') || '<N/A>'}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ import { Workspace } from '@teambit/workspace';
|
|
|
12
12
|
import { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';
|
|
13
13
|
import { GeneratorMain } from '@teambit/generator';
|
|
14
14
|
import { UiMain } from '@teambit/ui';
|
|
15
|
+
import { IssuesMain } from '@teambit/issues';
|
|
15
16
|
import { Artifact, ArtifactList } from './artifact';
|
|
16
17
|
import { BuilderService, BuilderServiceOptions } from './builder.service';
|
|
17
18
|
import { BuildTask } from './build-task';
|
|
@@ -62,7 +63,8 @@ export declare class BuilderMain {
|
|
|
62
63
|
private tagTaskSlot;
|
|
63
64
|
private snapTaskSlot;
|
|
64
65
|
private logger;
|
|
65
|
-
|
|
66
|
+
private issues;
|
|
67
|
+
constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, globalConfig: GlobalConfigMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot, logger: Logger, issues: IssuesMain);
|
|
66
68
|
private storeArtifacts;
|
|
67
69
|
pipelineResultsToBuilderData(components: Component[], buildPipelineResults: TaskResults[]): ComponentMap<RawBuilderData>;
|
|
68
70
|
tagListener(components: Component[], options?: OnTagOpts, isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<OnTagResults>;
|
|
@@ -102,6 +104,7 @@ export declare class BuilderMain {
|
|
|
102
104
|
build(components: Component[], isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions, extraOptions?: {
|
|
103
105
|
includeTag?: boolean;
|
|
104
106
|
includeSnap?: boolean;
|
|
107
|
+
ignoreIssues?: string;
|
|
105
108
|
}): Promise<TaskResultsList>;
|
|
106
109
|
runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList>;
|
|
107
110
|
runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList>;
|
|
@@ -132,10 +135,12 @@ export declare class BuilderMain {
|
|
|
132
135
|
*/
|
|
133
136
|
registerSnapTasks(tasks: BuildTask[]): this;
|
|
134
137
|
getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string): string;
|
|
138
|
+
private throwForVariousIssues;
|
|
139
|
+
throwForComponentIssues(components: Component[], ignoreIssues?: string): Promise<void>;
|
|
135
140
|
static slots: ((registerFn: () => string) => SlotRegistry<BuildTask>)[];
|
|
136
141
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
137
142
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
138
|
-
static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [
|
|
143
|
+
static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig, issues,]: [
|
|
139
144
|
CLIMain,
|
|
140
145
|
EnvsMain,
|
|
141
146
|
Workspace,
|
|
@@ -147,6 +152,7 @@ export declare class BuilderMain {
|
|
|
147
152
|
GeneratorMain,
|
|
148
153
|
ComponentMain,
|
|
149
154
|
UiMain,
|
|
150
|
-
GlobalConfigMain
|
|
155
|
+
GlobalConfigMain,
|
|
156
|
+
IssuesMain
|
|
151
157
|
], config: any, [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]): Promise<BuilderMain>;
|
|
152
158
|
}
|
|
@@ -130,6 +130,20 @@ function _ui() {
|
|
|
130
130
|
};
|
|
131
131
|
return data;
|
|
132
132
|
}
|
|
133
|
+
function _issues() {
|
|
134
|
+
const data = require("@teambit/issues");
|
|
135
|
+
_issues = function () {
|
|
136
|
+
return data;
|
|
137
|
+
};
|
|
138
|
+
return data;
|
|
139
|
+
}
|
|
140
|
+
function _bitError() {
|
|
141
|
+
const data = require("@teambit/bit-error");
|
|
142
|
+
_bitError = function () {
|
|
143
|
+
return data;
|
|
144
|
+
};
|
|
145
|
+
return data;
|
|
146
|
+
}
|
|
133
147
|
function _artifact() {
|
|
134
148
|
const data = require("./artifact");
|
|
135
149
|
_artifact = function () {
|
|
@@ -214,6 +228,13 @@ function _builder4() {
|
|
|
214
228
|
};
|
|
215
229
|
return data;
|
|
216
230
|
}
|
|
231
|
+
function _componentsHaveIssues() {
|
|
232
|
+
const data = require("./exceptions/components-have-issues");
|
|
233
|
+
_componentsHaveIssues = function () {
|
|
234
|
+
return data;
|
|
235
|
+
};
|
|
236
|
+
return data;
|
|
237
|
+
}
|
|
217
238
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
218
239
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
219
240
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -230,7 +251,7 @@ const FILE_PATH_PARAM_DELIM = exports.FILE_PATH_PARAM_DELIM = '~';
|
|
|
230
251
|
*/
|
|
231
252
|
|
|
232
253
|
class BuilderMain {
|
|
233
|
-
constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot, logger) {
|
|
254
|
+
constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot, logger, issues) {
|
|
234
255
|
this.envs = envs;
|
|
235
256
|
this.workspace = workspace;
|
|
236
257
|
this.buildService = buildService;
|
|
@@ -245,6 +266,7 @@ class BuilderMain {
|
|
|
245
266
|
this.tagTaskSlot = tagTaskSlot;
|
|
246
267
|
this.snapTaskSlot = snapTaskSlot;
|
|
247
268
|
this.logger = logger;
|
|
269
|
+
this.issues = issues;
|
|
248
270
|
}
|
|
249
271
|
async storeArtifacts(tasksResults) {
|
|
250
272
|
const artifacts = tasksResults.flatMap(t => t.artifacts ? [t.artifacts] : []);
|
|
@@ -288,7 +310,9 @@ class BuilderMain {
|
|
|
288
310
|
}, isolateOptions), _objectSpread(_objectSpread({}, builderOptions), {}, {
|
|
289
311
|
// even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed
|
|
290
312
|
tasks: populateArtifactsFrom ? [_aspect().AspectAspect.id] : undefined
|
|
291
|
-
})
|
|
313
|
+
}), {
|
|
314
|
+
ignoreIssues: '*'
|
|
315
|
+
});
|
|
292
316
|
if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();
|
|
293
317
|
allTasksResults.push(...buildEnvsExecutionResults.tasksResults);
|
|
294
318
|
pipeResults.push(buildEnvsExecutionResults);
|
|
@@ -483,6 +507,7 @@ class BuilderMain {
|
|
|
483
507
|
return clonedData;
|
|
484
508
|
}
|
|
485
509
|
async build(components, isolateOptions, builderOptions, extraOptions) {
|
|
510
|
+
await this.throwForVariousIssues(components, extraOptions?.ignoreIssues);
|
|
486
511
|
const ids = components.map(c => c.id);
|
|
487
512
|
const capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();
|
|
488
513
|
const baseIsolateOpts = {
|
|
@@ -569,14 +594,39 @@ class BuilderMain {
|
|
|
569
594
|
getDownloadUrlForArtifact(componentId, taskId, path) {
|
|
570
595
|
return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;
|
|
571
596
|
}
|
|
572
|
-
|
|
597
|
+
async throwForVariousIssues(components, ignoreIssues) {
|
|
598
|
+
const componentsToCheck = components.filter(c => !c.isDeleted());
|
|
599
|
+
await this.throwForComponentIssues(componentsToCheck, ignoreIssues);
|
|
600
|
+
}
|
|
601
|
+
async throwForComponentIssues(components, ignoreIssues) {
|
|
602
|
+
if (ignoreIssues === '*') {
|
|
603
|
+
// ignore all issues
|
|
604
|
+
return;
|
|
605
|
+
}
|
|
606
|
+
const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map(issue => issue.trim()) || [];
|
|
607
|
+
const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();
|
|
608
|
+
const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];
|
|
609
|
+
await this.issues.triggerAddComponentIssues(components, issuesToIgnore);
|
|
610
|
+
this.issues.removeIgnoredIssuesFromComponents(components, issuesToIgnore);
|
|
611
|
+
const legacyComponents = components.map(c => c.state._consumer);
|
|
612
|
+
const componentsWithBlockingIssues = legacyComponents.filter(component => component.issues?.shouldBlockTagging());
|
|
613
|
+
if (componentsWithBlockingIssues.length) {
|
|
614
|
+
throw new (_componentsHaveIssues().ComponentsHaveIssues)(componentsWithBlockingIssues);
|
|
615
|
+
}
|
|
616
|
+
const workspaceIssues = this.workspace.getWorkspaceIssues();
|
|
617
|
+
if (workspaceIssues.length) {
|
|
618
|
+
const issuesStr = workspaceIssues.map(issueErr => issueErr.message).join('\n');
|
|
619
|
+
throw new (_bitError().BitError)(`the workspace has the following issues:\n${issuesStr}`);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig, issues], config, [buildTaskSlot, tagTaskSlot, snapTaskSlot]) {
|
|
573
623
|
const artifactFactory = new (_artifactFactory().ArtifactFactory)();
|
|
574
624
|
const logger = loggerExt.createLogger(_builder().BuilderAspect.id);
|
|
575
625
|
const buildService = new (_builder3().BuilderService)(isolator, logger, buildTaskSlot, 'getBuildPipe', 'build', artifactFactory, scope, globalConfig);
|
|
576
626
|
envs.registerService(buildService);
|
|
577
627
|
const tagService = new (_builder3().BuilderService)(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope, globalConfig);
|
|
578
628
|
const snapService = new (_builder3().BuilderService)(isolator, logger, snapTaskSlot, 'getSnapPipe', 'snap', artifactFactory, scope, globalConfig);
|
|
579
|
-
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot, logger);
|
|
629
|
+
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot, logger, issues);
|
|
580
630
|
builder.registerBuildTasks([new (_ui().BundleUiTask)(ui, logger)]);
|
|
581
631
|
component.registerRoute([new (_builder4().BuilderRoute)(builder, scope, logger)]);
|
|
582
632
|
graphql.register((0, _builder2().builderSchema)(builder, logger));
|
|
@@ -589,7 +639,7 @@ class BuilderMain {
|
|
|
589
639
|
exports.BuilderMain = BuilderMain;
|
|
590
640
|
_defineProperty(BuilderMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
591
641
|
_defineProperty(BuilderMain, "runtime", _cli().MainRuntime);
|
|
592
|
-
_defineProperty(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect, _component2().ComponentAspect, _ui().UIAspect, _globalConfig().GlobalConfigAspect]);
|
|
642
|
+
_defineProperty(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect, _component2().ComponentAspect, _ui().UIAspect, _globalConfig().GlobalConfigAspect, _issues().IssuesAspect]);
|
|
593
643
|
_builder().BuilderAspect.addRuntime(BuilderMain);
|
|
594
644
|
|
|
595
645
|
//# sourceMappingURL=builder.main.runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","data","require","_component","_aspectLoader","_cli","_component2","_envs","_graphql","_harmony","_globalConfig","_logger","_aspect","_scope","_workspace","_isolator","_bit","_toolboxArray","_generator","_ui","_artifact","_artifactFactory","_builder","_builder2","_builder3","_build","_buildTask","_exceptions","_buildPipelineResultList","_artifacts","_buildTask2","_builder4","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FILE_PATH_PARAM_DELIM","exports","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","buildTaskSlot","tagTaskSlot","snapTaskSlot","logger","storeArtifacts","tasksResults","artifacts","flatMap","Promise","all","map","artifactMap","toArray","component","artifactList","store","err","ArtifactStorageError","id","toString","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","pipelineReport","getPipelineReportOfComponent","getArtifactsDataOfComponent","pipeline","bitVersion","getBitVersion","tagListener","options","isolateOptions","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","populateArtifactsFrom","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFrom","validateBuilderDataMap","sanitizePreviewData","harmonyComps","compsBeingTaggedLookup","Set","comp","harmonyCompIdsWithEnvId","envId","getEnvId","isUsingCoreEnv","inWs","lastTaggedEnvHasOnlyOverview","has","isEnvTaggedWithComp","envCompId","ComponentID","fromString","hasId","get","state","aspects","onlyOverview","harmonyCompIdsWithEnvIdMap","Map","compsToDeleteOnlyOverviewPreviewData","envData","previewData","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","Error","join","promises","builderData","populateFrom","find","isEqual","ignoreVersion","idStr","populateFromComp","getHost","version","populateFromBuilderData","getBuilderData","artifact","artifactObj","toObject","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","assign","fromArtifactObject","extraOptions","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","consoleTitle","buildResult","runOnce","includeSnap","includeTag","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","GlobalConfigAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl, ArtifactFiles, ArtifactObject } from '@teambit/component.sources';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent, ComponentAspect, ComponentMain, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { GlobalConfigAspect, GlobalConfigMain } from '@teambit/global-config';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { AspectAspect } from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getBitVersion } from '@teambit/bit.get-bit-version';\nimport { findDuplications } from '@teambit/toolbox.array.duplications-finder';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { TaskMetadata } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n populateArtifactsFrom?: ComponentID[]; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private globalConfig: GlobalConfigMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot,\n private logger: Logger\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n await Promise.all(\n artifacts.map(async (artifactMap: ComponentMap<ArtifactList<FsArtifact>>) => {\n await Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component.id.toString());\n }\n })\n );\n })\n );\n }\n\n pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<RawBuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<RawBuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts, aspectsData, bitVersion: getBitVersion() };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {},\n builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, populateArtifactsFrom } = options;\n if (populateArtifactsFrom) isolateOptions.populateArtifactsFrom = populateArtifactsFrom;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: populateArtifactsFrom ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (populateArtifactsFrom) await this.combineBuildDataFrom(builderDataMap, populateArtifactsFrom);\n this.validateBuilderDataMap(builderDataMap);\n\n await this.sanitizePreviewData(components);\n\n return { builderDataMap, pipeResults };\n }\n\n /**\n * remove the onlyOverview from the preview data of the component if\n * the env is in the workspace\n * the env is not tagged with the component\n * the last tagged env has onlyOverview undefined in preview data\n *\n * We don't want to do this but have no choice because,\n * when we load components in workspace,\n * we set the onlyOverview to true in the env's preview data\n * which sets the onlyOverview to true in the component's preview data\n * but if you don't tag the env with the component,\n * the onlyOverview will be true in the component's preview data, since its env is in the workspace\n * even though the env it is tagged with doesn't have onlyOverview in its preview data\n * which will result in inconsistent preview data when exported to the scope\n */\n async sanitizePreviewData(harmonyComps: Component[]) {\n const compsBeingTaggedLookup = new Set(harmonyComps.map((comp) => comp.id.toString()));\n\n const harmonyCompIdsWithEnvId = await Promise.all(\n harmonyComps.map(async (comp) => {\n const envId = await this.envs.getEnvId(comp);\n if (this.envs.isUsingCoreEnv(comp)) {\n return [comp.id.toString(), { envId, inWs: false, lastTaggedEnvHasOnlyOverview: false }] as [\n string,\n { envId: string; inWs: boolean; lastTaggedEnvHasOnlyOverview?: boolean; isEnvTaggedWithComp?: boolean }\n ];\n }\n\n // check if the env is tagged with the component\n if (envId && !compsBeingTaggedLookup.has(comp.id.toString())) {\n return [comp.id.toString(), { envId, isEnvTaggedWithComp: false }] as [\n string,\n { envId: string; inWs?: boolean; lastTaggedEnvHasOnlyOverview?: boolean; isEnvTaggedWithComp?: boolean }\n ];\n }\n\n const envCompId = (envId && ComponentID.fromString(envId)) || undefined;\n const inWs = this.workspace && envCompId ? await this.workspace.hasId(envCompId) : false;\n\n const lastTaggedEnvHasOnlyOverview: boolean | undefined =\n envCompId &&\n (await this.scope.get(envCompId, false))?.state.aspects.get('teambit.preview/preview')?.data?.onlyOverview;\n\n return [comp.id.toString(), { envId, inWs, lastTaggedEnvHasOnlyOverview, isEnvTaggedWithComp: true }] as [\n string,\n { envId: string; inWs: boolean; lastTaggedEnvHasOnlyOverview: boolean; isEnvTaggedWithComp?: boolean }\n ];\n })\n );\n\n const harmonyCompIdsWithEnvIdMap = new Map(harmonyCompIdsWithEnvId);\n\n const compsToDeleteOnlyOverviewPreviewData = harmonyComps.filter((comp) => {\n const envData:\n | { envId: string; inWs?: boolean; lastTaggedEnvHasOnlyOverview?: boolean; isEnvTaggedWithComp?: boolean }\n | undefined = harmonyCompIdsWithEnvIdMap.get(comp.id.toString());\n return envData?.inWs && !envData?.lastTaggedEnvHasOnlyOverview && envData?.isEnvTaggedWithComp;\n });\n\n for (const comp of compsToDeleteOnlyOverviewPreviewData) {\n const previewData = comp.state.aspects.get('teambit.preview/preview')?.data;\n // if the env is not tagged with the component remove it from the preview data of the component\n delete previewData?.onlyOverview;\n }\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<RawBuilderData>) {\n builderDataMap.forEach((buildData: RawBuilderData, component) => {\n const taskSerializedIds = buildData.pipeline.map((t) =>\n BuildTaskHelper.serializeId({ aspectId: t.taskId, name: t.taskName })\n );\n const duplications = findDuplications(taskSerializedIds);\n if (duplications.length) {\n throw new Error(\n `build-task-results validation has failed. the following task(s) of \"${component.id.toString()}\" are duplicated: ${duplications.join(\n ', '\n )}`\n );\n }\n });\n }\n\n private async combineBuildDataFrom(\n builderDataMap: ComponentMap<RawBuilderData>,\n populateArtifactsFrom: ComponentID[]\n ) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const populateFrom = populateArtifactsFrom.find((id) => id.isEqual(component.id, { ignoreVersion: true }));\n const idStr = component.id.toString();\n if (!populateFrom) {\n throw new Error(`combineBuildDataFromParent: unable to find where to populate the artifacts from for ${idStr}`);\n }\n const populateFromComp = await this.componentAspect.getHost().get(populateFrom);\n if (!populateFromComp)\n throw new Error(\n `combineBuildDataFromParent, unable to load parent component of ${idStr}. hash: ${populateFrom.version}`\n );\n const populateFromBuilderData = this.getBuilderData(populateFromComp);\n if (!populateFromBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n populateFromBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find(\n (a) =>\n a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name && a.name === artifactObj.name\n )\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n populateFromBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n populateFromBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n /**\n * this is the aspect's data that was generated as \"metadata\" of the task component-result during the build process\n * and saved by the builder aspect in the \"aspectsData\" property.\n * (not to be confused with the data saved in the aspect itself, which is saved in the \"data\" property of the aspect).\n */\n getDataByAspect(component: IComponent, aspectName: string): TaskMetadata | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions,\n extraOptions?: { includeTag?: boolean; includeSnap?: boolean }\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\n ...(builderOptions || {}),\n };\n this.logger.consoleTitle(`Total ${components.length} components to build`);\n const buildResult: TaskResultsList = await envs.runOnce(this.buildService, builderServiceOptions);\n\n if (extraOptions?.includeSnap || extraOptions?.includeTag) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderServiceOptions,\n previousTasksResults: buildResult.tasksResults,\n };\n const deployEnvsExecutionResults = extraOptions?.includeSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n buildResult.tasksResults.push(...deployEnvsExecutionResults.tasksResults);\n }\n\n return buildResult;\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n GlobalConfigAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope,\n globalConfig\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(\n isolator,\n logger,\n tagTaskSlot,\n 'getTagPipe',\n 'tag',\n artifactFactory,\n scope,\n globalConfig\n );\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope,\n globalConfig\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n globalConfig,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot,\n logger\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","_component","_aspectLoader","_cli","_component2","_envs","_graphql","_harmony","_globalConfig","_logger","_aspect","_scope","_workspace","_isolator","_bit","_toolboxArray","_generator","_ui","_issues","_bitError","_artifact","_artifactFactory","_builder","_builder2","_builder3","_build","_buildTask","_exceptions","_buildPipelineResultList","_artifacts","_buildTask2","_builder4","_componentsHaveIssues","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FILE_PATH_PARAM_DELIM","exports","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","buildTaskSlot","tagTaskSlot","snapTaskSlot","logger","issues","storeArtifacts","tasksResults","artifacts","flatMap","Promise","all","map","artifactMap","toArray","component","artifactList","store","err","ArtifactStorageError","id","toString","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","pipelineReport","getPipelineReportOfComponent","getArtifactsDataOfComponent","pipeline","bitVersion","getBitVersion","tagListener","options","isolateOptions","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","populateArtifactsFrom","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","ignoreIssues","throwErrorsIfExist","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFrom","validateBuilderDataMap","sanitizePreviewData","harmonyComps","compsBeingTaggedLookup","Set","comp","harmonyCompIdsWithEnvId","envId","getEnvId","isUsingCoreEnv","inWs","lastTaggedEnvHasOnlyOverview","has","isEnvTaggedWithComp","envCompId","ComponentID","fromString","hasId","get","state","aspects","onlyOverview","harmonyCompIdsWithEnvIdMap","Map","compsToDeleteOnlyOverviewPreviewData","envData","previewData","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","Error","join","promises","builderData","populateFrom","find","isEqual","ignoreVersion","idStr","populateFromComp","getHost","version","populateFromBuilderData","getBuilderData","artifact","artifactObj","toObject","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","assign","fromArtifactObject","extraOptions","throwForVariousIssues","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","consoleTitle","buildResult","runOnce","includeSnap","includeTag","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","componentsToCheck","isDeleted","throwForComponentIssues","issuesToIgnoreFromFlag","split","issue","trim","issuesToIgnoreFromConfig","getIssuesToIgnoreGlobally","issuesToIgnore","triggerAddComponentIssues","removeIgnoredIssuesFromComponents","legacyComponents","_consumer","componentsWithBlockingIssues","shouldBlockTagging","ComponentsHaveIssues","workspaceIssues","getWorkspaceIssues","issuesStr","issueErr","message","BitError","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","GlobalConfigAspect","IssuesAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport { ArtifactVinyl, ArtifactFiles, ArtifactObject } from '@teambit/component.sources';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent, ComponentAspect, ComponentMain, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { GlobalConfigAspect, GlobalConfigMain } from '@teambit/global-config';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { AspectAspect } from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getBitVersion } from '@teambit/bit.get-bit-version';\nimport { findDuplications } from '@teambit/toolbox.array.duplications-finder';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { IssuesAspect, IssuesMain } from '@teambit/issues';\nimport { BitError } from '@teambit/bit-error';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { TaskMetadata } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\nimport { ComponentsHaveIssues } from './exceptions/components-have-issues';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n populateArtifactsFrom?: ComponentID[]; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private globalConfig: GlobalConfigMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot,\n private logger: Logger,\n private issues: IssuesMain\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n await Promise.all(\n artifacts.map(async (artifactMap: ComponentMap<ArtifactList<FsArtifact>>) => {\n await Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component.id.toString());\n }\n })\n );\n })\n );\n }\n\n pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<RawBuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<RawBuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts, aspectsData, bitVersion: getBitVersion() };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {},\n builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, populateArtifactsFrom } = options;\n if (populateArtifactsFrom) isolateOptions.populateArtifactsFrom = populateArtifactsFrom;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: populateArtifactsFrom ? [AspectAspect.id] : undefined,\n },\n { ignoreIssues: '*' }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (populateArtifactsFrom) await this.combineBuildDataFrom(builderDataMap, populateArtifactsFrom);\n this.validateBuilderDataMap(builderDataMap);\n\n await this.sanitizePreviewData(components);\n\n return { builderDataMap, pipeResults };\n }\n\n /**\n * remove the onlyOverview from the preview data of the component if\n * the env is in the workspace\n * the env is not tagged with the component\n * the last tagged env has onlyOverview undefined in preview data\n *\n * We don't want to do this but have no choice because,\n * when we load components in workspace,\n * we set the onlyOverview to true in the env's preview data\n * which sets the onlyOverview to true in the component's preview data\n * but if you don't tag the env with the component,\n * the onlyOverview will be true in the component's preview data, since its env is in the workspace\n * even though the env it is tagged with doesn't have onlyOverview in its preview data\n * which will result in inconsistent preview data when exported to the scope\n */\n async sanitizePreviewData(harmonyComps: Component[]) {\n const compsBeingTaggedLookup = new Set(harmonyComps.map((comp) => comp.id.toString()));\n\n const harmonyCompIdsWithEnvId = await Promise.all(\n harmonyComps.map(async (comp) => {\n const envId = await this.envs.getEnvId(comp);\n if (this.envs.isUsingCoreEnv(comp)) {\n return [comp.id.toString(), { envId, inWs: false, lastTaggedEnvHasOnlyOverview: false }] as [\n string,\n { envId: string; inWs: boolean; lastTaggedEnvHasOnlyOverview?: boolean; isEnvTaggedWithComp?: boolean }\n ];\n }\n\n // check if the env is tagged with the component\n if (envId && !compsBeingTaggedLookup.has(comp.id.toString())) {\n return [comp.id.toString(), { envId, isEnvTaggedWithComp: false }] as [\n string,\n { envId: string; inWs?: boolean; lastTaggedEnvHasOnlyOverview?: boolean; isEnvTaggedWithComp?: boolean }\n ];\n }\n\n const envCompId = (envId && ComponentID.fromString(envId)) || undefined;\n const inWs = this.workspace && envCompId ? await this.workspace.hasId(envCompId) : false;\n\n const lastTaggedEnvHasOnlyOverview: boolean | undefined =\n envCompId &&\n (await this.scope.get(envCompId, false))?.state.aspects.get('teambit.preview/preview')?.data?.onlyOverview;\n\n return [comp.id.toString(), { envId, inWs, lastTaggedEnvHasOnlyOverview, isEnvTaggedWithComp: true }] as [\n string,\n { envId: string; inWs: boolean; lastTaggedEnvHasOnlyOverview: boolean; isEnvTaggedWithComp?: boolean }\n ];\n })\n );\n\n const harmonyCompIdsWithEnvIdMap = new Map(harmonyCompIdsWithEnvId);\n\n const compsToDeleteOnlyOverviewPreviewData = harmonyComps.filter((comp) => {\n const envData:\n | { envId: string; inWs?: boolean; lastTaggedEnvHasOnlyOverview?: boolean; isEnvTaggedWithComp?: boolean }\n | undefined = harmonyCompIdsWithEnvIdMap.get(comp.id.toString());\n return envData?.inWs && !envData?.lastTaggedEnvHasOnlyOverview && envData?.isEnvTaggedWithComp;\n });\n\n for (const comp of compsToDeleteOnlyOverviewPreviewData) {\n const previewData = comp.state.aspects.get('teambit.preview/preview')?.data;\n // if the env is not tagged with the component remove it from the preview data of the component\n delete previewData?.onlyOverview;\n }\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<RawBuilderData>) {\n builderDataMap.forEach((buildData: RawBuilderData, component) => {\n const taskSerializedIds = buildData.pipeline.map((t) =>\n BuildTaskHelper.serializeId({ aspectId: t.taskId, name: t.taskName })\n );\n const duplications = findDuplications(taskSerializedIds);\n if (duplications.length) {\n throw new Error(\n `build-task-results validation has failed. the following task(s) of \"${component.id.toString()}\" are duplicated: ${duplications.join(\n ', '\n )}`\n );\n }\n });\n }\n\n private async combineBuildDataFrom(\n builderDataMap: ComponentMap<RawBuilderData>,\n populateArtifactsFrom: ComponentID[]\n ) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const populateFrom = populateArtifactsFrom.find((id) => id.isEqual(component.id, { ignoreVersion: true }));\n const idStr = component.id.toString();\n if (!populateFrom) {\n throw new Error(`combineBuildDataFromParent: unable to find where to populate the artifacts from for ${idStr}`);\n }\n const populateFromComp = await this.componentAspect.getHost().get(populateFrom);\n if (!populateFromComp)\n throw new Error(\n `combineBuildDataFromParent, unable to load parent component of ${idStr}. hash: ${populateFrom.version}`\n );\n const populateFromBuilderData = this.getBuilderData(populateFromComp);\n if (!populateFromBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n populateFromBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find(\n (a) =>\n a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name && a.name === artifactObj.name\n )\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n populateFromBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n populateFromBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n /**\n * this is the aspect's data that was generated as \"metadata\" of the task component-result during the build process\n * and saved by the builder aspect in the \"aspectsData\" property.\n * (not to be confused with the data saved in the aspect itself, which is saved in the \"data\" property of the aspect).\n */\n getDataByAspect(component: IComponent, aspectName: string): TaskMetadata | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions,\n extraOptions?: { includeTag?: boolean; includeSnap?: boolean; ignoreIssues?: string }\n ): Promise<TaskResultsList> {\n await this.throwForVariousIssues(components, extraOptions?.ignoreIssues);\n const ids = components.map((c) => c.id);\n const capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\n ...(builderOptions || {}),\n };\n this.logger.consoleTitle(`Total ${components.length} components to build`);\n const buildResult: TaskResultsList = await envs.runOnce(this.buildService, builderServiceOptions);\n\n if (extraOptions?.includeSnap || extraOptions?.includeTag) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderServiceOptions,\n previousTasksResults: buildResult.tasksResults,\n };\n const deployEnvsExecutionResults = extraOptions?.includeSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n buildResult.tasksResults.push(...deployEnvsExecutionResults.tasksResults);\n }\n\n return buildResult;\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n private async throwForVariousIssues(components: Component[], ignoreIssues?: string) {\n const componentsToCheck = components.filter((c) => !c.isDeleted());\n await this.throwForComponentIssues(componentsToCheck, ignoreIssues);\n }\n\n async throwForComponentIssues(components: Component[], ignoreIssues?: string) {\n if (ignoreIssues === '*') {\n // ignore all issues\n return;\n }\n const issuesToIgnoreFromFlag = ignoreIssues?.split(',').map((issue) => issue.trim()) || [];\n const issuesToIgnoreFromConfig = this.issues.getIssuesToIgnoreGlobally();\n const issuesToIgnore = [...issuesToIgnoreFromFlag, ...issuesToIgnoreFromConfig];\n await this.issues.triggerAddComponentIssues(components, issuesToIgnore);\n this.issues.removeIgnoredIssuesFromComponents(components, issuesToIgnore);\n const legacyComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const componentsWithBlockingIssues = legacyComponents.filter((component) => component.issues?.shouldBlockTagging());\n if (componentsWithBlockingIssues.length) {\n throw new ComponentsHaveIssues(componentsWithBlockingIssues);\n }\n\n const workspaceIssues = this.workspace.getWorkspaceIssues();\n if (workspaceIssues.length) {\n const issuesStr = workspaceIssues.map((issueErr) => issueErr.message).join('\\n');\n throw new BitError(`the workspace has the following issues:\\n${issuesStr}`);\n }\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n GlobalConfigAspect,\n IssuesAspect,\n ];\n\n static async provider(\n [\n cli,\n envs,\n workspace,\n scope,\n isolator,\n loggerExt,\n aspectLoader,\n graphql,\n generator,\n component,\n ui,\n globalConfig,\n issues,\n ]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain,\n IssuesMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope,\n globalConfig\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(\n isolator,\n logger,\n tagTaskSlot,\n 'getTagPipe',\n 'tag',\n artifactFactory,\n scope,\n globalConfig\n );\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope,\n globalConfig\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n globalConfig,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot,\n logger,\n issues\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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","ignoreList":[]}
|