@teambit/builder 0.0.597 → 0.0.603
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/artifact/artifact-definition.ts +7 -1
- package/builder.service.tsx +14 -3
- package/dist/artifact/artifact-definition.d.ts +6 -1
- package/dist/build-pipe.d.ts +2 -2
- package/dist/build-pipe.js +5 -4
- package/dist/build-pipe.js.map +1 -1
- package/dist/builder.main.runtime.d.ts +3 -2
- package/dist/builder.main.runtime.js +8 -6
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/builder.service.d.ts +2 -0
- package/dist/builder.service.js +1 -1
- package/dist/builder.service.js.map +1 -1
- package/dist/exceptions/artifact-definition-no-glob.d.ts +3 -0
- package/dist/exceptions/artifact-definition-no-glob.js +17 -0
- package/dist/exceptions/artifact-definition-no-glob.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/exceptions/artifact-definition-no-glob.ts +5 -0
- package/package-tar/teambit-builder-0.0.603.tgz +0 -0
- package/package.json +16 -16
- package/package-tar/teambit-builder-0.0.597.tgz +0 -0
|
@@ -25,7 +25,13 @@ export type ArtifactDefinition = {
|
|
|
25
25
|
* glob patterns of files to include upon artifact creation. minimatch is used to match the patterns.
|
|
26
26
|
* e.g. ['*.ts', '!foo.ts'] matches all ts files but ignores foo.ts.
|
|
27
27
|
*/
|
|
28
|
-
globPatterns
|
|
28
|
+
globPatterns?: string[];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* directories of files to include upon artifact creation. minimatch is used to match the patterns.
|
|
32
|
+
* e.g. ['/tmp'] will include all files from tmp dir
|
|
33
|
+
*/
|
|
34
|
+
directories?: string[];
|
|
29
35
|
|
|
30
36
|
/**
|
|
31
37
|
* define the root directory for reading the artifacts from the capsule file system.
|
package/builder.service.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import { Text, Newline } from 'ink';
|
|
|
5
5
|
import { Logger } from '@teambit/logger';
|
|
6
6
|
import { IsolatorMain } from '@teambit/isolator';
|
|
7
7
|
import { Component } from '@teambit/component';
|
|
8
|
-
import { BuildPipe } from './build-pipe';
|
|
8
|
+
import { BuildPipe, TaskResults } from './build-pipe';
|
|
9
9
|
import { TaskResultsList } from './task-results-list';
|
|
10
10
|
import { TaskSlot } from './builder.main.runtime';
|
|
11
11
|
import { BuildContext, BuildTaskHelper } from './build-task';
|
|
@@ -20,7 +20,12 @@ export type BuildServiceResults = {
|
|
|
20
20
|
errors?: [];
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
export type BuilderServiceOptions = {
|
|
23
|
+
export type BuilderServiceOptions = {
|
|
24
|
+
seedersOnly?: boolean;
|
|
25
|
+
tasks?: string[];
|
|
26
|
+
skipTests?: boolean;
|
|
27
|
+
previousTasksResults?: TaskResults[];
|
|
28
|
+
};
|
|
24
29
|
|
|
25
30
|
export type EnvsBuildContext = { [envId: string]: BuildContext };
|
|
26
31
|
|
|
@@ -102,7 +107,13 @@ export class BuilderService implements EnvService<BuildServiceResults, BuilderDe
|
|
|
102
107
|
envsBuildContext[executionContext.id] = buildContext;
|
|
103
108
|
})
|
|
104
109
|
);
|
|
105
|
-
const buildPipe = BuildPipe.from(
|
|
110
|
+
const buildPipe = BuildPipe.from(
|
|
111
|
+
tasksQueue,
|
|
112
|
+
envsBuildContext,
|
|
113
|
+
this.logger,
|
|
114
|
+
this.artifactFactory,
|
|
115
|
+
options.previousTasksResults
|
|
116
|
+
);
|
|
106
117
|
const buildResults = await buildPipe.execute();
|
|
107
118
|
longProcessLogger.end();
|
|
108
119
|
buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();
|
|
@@ -21,7 +21,12 @@ export declare type ArtifactDefinition = {
|
|
|
21
21
|
* glob patterns of files to include upon artifact creation. minimatch is used to match the patterns.
|
|
22
22
|
* e.g. ['*.ts', '!foo.ts'] matches all ts files but ignores foo.ts.
|
|
23
23
|
*/
|
|
24
|
-
globPatterns
|
|
24
|
+
globPatterns?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* directories of files to include upon artifact creation. minimatch is used to match the patterns.
|
|
27
|
+
* e.g. ['/tmp'] will include all files from tmp dir
|
|
28
|
+
*/
|
|
29
|
+
directories?: string[];
|
|
25
30
|
/**
|
|
26
31
|
* define the root directory for reading the artifacts from the capsule file system.
|
|
27
32
|
* the rootDir must be unique per artifacts, otherwise we risk overriding data between artifacts.
|
package/dist/build-pipe.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare class BuildPipe {
|
|
|
50
50
|
/**
|
|
51
51
|
* array of services to apply on the components.
|
|
52
52
|
*/
|
|
53
|
-
tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory);
|
|
53
|
+
tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory, previousTaskResults?: TaskResults[]);
|
|
54
54
|
/**
|
|
55
55
|
* execute a pipeline of build tasks.
|
|
56
56
|
*/
|
|
@@ -64,5 +64,5 @@ export declare class BuildPipe {
|
|
|
64
64
|
/**
|
|
65
65
|
* create a build pipe from an array of tasks.
|
|
66
66
|
*/
|
|
67
|
-
static from(tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory): BuildPipe;
|
|
67
|
+
static from(tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory, previousTaskResults?: TaskResults[]): BuildPipe;
|
|
68
68
|
}
|
package/dist/build-pipe.js
CHANGED
|
@@ -66,7 +66,7 @@ class BuildPipe {
|
|
|
66
66
|
/**
|
|
67
67
|
* array of services to apply on the components.
|
|
68
68
|
*/
|
|
69
|
-
tasksQueue, envsBuildContext, logger, artifactFactory) {
|
|
69
|
+
tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults) {
|
|
70
70
|
this.tasksQueue = tasksQueue;
|
|
71
71
|
this.envsBuildContext = envsBuildContext;
|
|
72
72
|
this.logger = logger;
|
|
@@ -74,7 +74,8 @@ class BuildPipe {
|
|
|
74
74
|
(0, _defineProperty2().default)(this, "failedTasks", []);
|
|
75
75
|
(0, _defineProperty2().default)(this, "failedDependencyTask", void 0);
|
|
76
76
|
(0, _defineProperty2().default)(this, "longProcessLogger", void 0);
|
|
77
|
-
(0, _defineProperty2().default)(this, "taskResults",
|
|
77
|
+
(0, _defineProperty2().default)(this, "taskResults", void 0);
|
|
78
|
+
this.taskResults = previousTaskResults || [];
|
|
78
79
|
}
|
|
79
80
|
/**
|
|
80
81
|
* execute a pipeline of build tasks.
|
|
@@ -198,8 +199,8 @@ class BuildPipe {
|
|
|
198
199
|
*/
|
|
199
200
|
|
|
200
201
|
|
|
201
|
-
static from(tasksQueue, envsBuildContext, logger, artifactFactory) {
|
|
202
|
-
return new BuildPipe(tasksQueue, envsBuildContext, logger, artifactFactory);
|
|
202
|
+
static from(tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults) {
|
|
203
|
+
return new BuildPipe(tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults);
|
|
203
204
|
}
|
|
204
205
|
|
|
205
206
|
}
|
package/dist/build-pipe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["build-pipe.ts"],"names":["BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","execute","executePreBuild","longProcessLogger","createLongProcessLogger","length","task","env","executeTask","end","tasksResultsList","TaskResultsList","taskResults","executePostBuild","setStatusLine","preBuild","getBuildContext","id","consoleSuccess","taskId","BuildTaskHelper","serializeId","taskName","description","logProgress","updateFailedDependencyTask","shouldSkipTask","startTask","process","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","endTime","compsWithErrors","componentsResults","filter","c","errors","artifacts","consoleFailure","failedTasks","push","duration","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeId","find","failedTask","envId","failedTaskId","consoleWarning","Error","previousTasksResults","from"],"mappings":"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","sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { ArtifactFactory, ArtifactList } from './artifact';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory\n ) {}\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n this.logger.consoleSuccess();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const taskName = `${taskId}${task.description ? ` (${task.description})` : ''}`;\n this.longProcessLogger.logProgress(`env \"${env.id}\", task \"${taskName}\"`);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n const buildTaskResult = await task.execute(buildContext);\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts;\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.failedTasks.push(task);\n } else {\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`env \"${env.id}\", task \"${taskName}\" has completed successfully in ${duration}`);\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n this.logger.consoleSuccess();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeId(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string) {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.taskResults;\n return buildContext;\n }\n\n /**\n * create a build pipe from an array of tasks.\n */\n static from(\n tasksQueue: TasksQueue,\n envsBuildContext: EnvsBuildContext,\n logger: Logger,\n artifactFactory: ArtifactFactory\n ) {\n return new BuildPipe(tasksQueue, envsBuildContext, logger, artifactFactory);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["build-pipe.ts"],"names":["BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","taskResults","execute","executePreBuild","longProcessLogger","createLongProcessLogger","length","task","env","executeTask","end","tasksResultsList","TaskResultsList","executePostBuild","setStatusLine","preBuild","getBuildContext","id","consoleSuccess","taskId","BuildTaskHelper","serializeId","taskName","description","logProgress","updateFailedDependencyTask","shouldSkipTask","startTask","process","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","endTime","compsWithErrors","componentsResults","filter","c","errors","artifacts","consoleFailure","failedTasks","push","duration","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeId","find","failedTask","envId","failedTaskId","consoleWarning","Error","previousTasksResults","from"],"mappings":"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","sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { ArtifactFactory, ArtifactList } from './artifact';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n previousTaskResults?: TaskResults[]\n ) {\n this.taskResults = previousTaskResults || [];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n this.logger.consoleSuccess();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const taskName = `${taskId}${task.description ? ` (${task.description})` : ''}`;\n this.longProcessLogger.logProgress(`env \"${env.id}\", task \"${taskName}\"`);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n const buildTaskResult = await task.execute(buildContext);\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts;\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.failedTasks.push(task);\n } else {\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`env \"${env.id}\", task \"${taskName}\" has completed successfully in ${duration}`);\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n this.logger.consoleSuccess();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeId(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string) {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.taskResults;\n return buildContext;\n }\n\n /**\n * create a build pipe from an array of tasks.\n */\n static from(\n tasksQueue: TasksQueue,\n envsBuildContext: EnvsBuildContext,\n logger: Logger,\n artifactFactory: ArtifactFactory,\n previousTaskResults?: TaskResults[]\n ) {\n return new BuildPipe(tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults);\n }\n}\n"]}
|
|
@@ -14,6 +14,7 @@ import { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/
|
|
|
14
14
|
import { GeneratorMain } from '@teambit/generator';
|
|
15
15
|
import { BuilderService, BuilderServiceOptions } from './builder.service';
|
|
16
16
|
import { BuildTask } from './build-task';
|
|
17
|
+
import { TaskResults } from './build-pipe';
|
|
17
18
|
import { TaskResultsList } from './task-results-list';
|
|
18
19
|
import { AspectData, PipelineReport } from './build-pipeline-result-list';
|
|
19
20
|
import { Serializable } from './types';
|
|
@@ -54,8 +55,8 @@ export declare class BuilderMain {
|
|
|
54
55
|
* env. at the end, the results contain the data and errors per env.
|
|
55
56
|
*/
|
|
56
57
|
build(components: Component[], isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<TaskResultsList>;
|
|
57
|
-
runTagTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList>;
|
|
58
|
-
runSnapTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList>;
|
|
58
|
+
runTagTasks(components: Component[], isolateOptions?: IsolateComponentsOptions, previousTasksResults?: TaskResults[]): Promise<TaskResultsList>;
|
|
59
|
+
runSnapTasks(components: Component[], isolateOptions?: IsolateComponentsOptions, previousTasksResults?: TaskResults[]): Promise<TaskResultsList>;
|
|
59
60
|
listTasks(component: Component): {
|
|
60
61
|
id: import("@teambit/component").ComponentID;
|
|
61
62
|
envId: string;
|
|
@@ -310,8 +310,8 @@ class BuilderMain {
|
|
|
310
310
|
pipeResults.push(envsExecutionResults);
|
|
311
311
|
|
|
312
312
|
if (forceDeploy || !disableTagAndSnapPipelines && !envsExecutionResults.hasErrors()) {
|
|
313
|
-
const deployEnvsExecutionResults = isSnap ? await this.runSnapTasks(components, isolateOptions) : await this.runTagTasks(components, isolateOptions);
|
|
314
|
-
if (throwOnError) deployEnvsExecutionResults.throwErrorsIfExist();
|
|
313
|
+
const deployEnvsExecutionResults = isSnap ? await this.runSnapTasks(components, isolateOptions, envsExecutionResults.tasksResults) : await this.runTagTasks(components, isolateOptions, envsExecutionResults.tasksResults);
|
|
314
|
+
if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();
|
|
315
315
|
allTasksResults.push(...deployEnvsExecutionResults.tasksResults);
|
|
316
316
|
pipeResults.push(deployEnvsExecutionResults);
|
|
317
317
|
}
|
|
@@ -399,18 +399,20 @@ class BuilderMain {
|
|
|
399
399
|
return buildResult;
|
|
400
400
|
}
|
|
401
401
|
|
|
402
|
-
async runTagTasks(components, isolateOptions) {
|
|
402
|
+
async runTagTasks(components, isolateOptions, previousTasksResults) {
|
|
403
403
|
const envs = await this.envs.createEnvironment(components);
|
|
404
404
|
const buildResult = await envs.runOnce(this.tagService, {
|
|
405
|
-
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly
|
|
405
|
+
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
|
|
406
|
+
previousTasksResults
|
|
406
407
|
});
|
|
407
408
|
return buildResult;
|
|
408
409
|
}
|
|
409
410
|
|
|
410
|
-
async runSnapTasks(components, isolateOptions) {
|
|
411
|
+
async runSnapTasks(components, isolateOptions, previousTasksResults) {
|
|
411
412
|
const envs = await this.envs.createEnvironment(components);
|
|
412
413
|
const buildResult = await envs.runOnce(this.snapService, {
|
|
413
|
-
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly
|
|
414
|
+
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
|
|
415
|
+
previousTasksResults
|
|
414
416
|
});
|
|
415
417
|
return buildResult;
|
|
416
418
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["builder.main.runtime.ts"],"names":["BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","artifactsData","getArtifactsDataOfComponent","pipeline","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByExtensionAndName","name","getArtifactsByExtensionAndName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","find","aspectData","aspectId","state","aspects","get","BuilderAspect","undefined","forEach","ArtifactFiles","fromObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","buildResult","runOnce","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"mappings":"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","sourcesContent":["import { flatten } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain, OnTagResults } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { OnTagOpts } from '@teambit/legacy/dist/scope/scope';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { ArtifactList } 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 } 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 { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\n\nexport type BuilderData = {\n pipeline: PipelineReport[];\n artifacts: ArtifactObject[] | undefined;\n aspectsData: AspectData[];\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 buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<BuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<BuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts: artifactsData, aspectsData };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap } = options;\n const envsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n { skipTests: options.skipTests }\n );\n if (throwOnError && !forceDeploy) envsExecutionResults.throwErrorsIfExist();\n const allTasksResults = [...envsExecutionResults.tasksResults];\n pipeResults.push(envsExecutionResults);\n if (forceDeploy || (!disableTagAndSnapPipelines && !envsExecutionResults.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions)\n : await this.runTagTasks(components, isolateOptions);\n if (throwOnError) 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 return { builderDataMap, pipeResults };\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtension(component, aspectName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.name === name);\n }\n\n getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName);\n }\n\n getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.name === name);\n }\n\n getDataByAspect(component: Component, aspectName: string): Serializable | 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: Component): ArtifactObject[] | undefined {\n return this.getBuilderData(component)?.artifacts;\n }\n\n getBuilderData(component: Component): BuilderData | undefined {\n const data = component.state.aspects.get(BuilderAspect.id)?.data as BuilderData | undefined;\n if (!data) return undefined;\n data.artifacts?.forEach((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifact.files = ArtifactFiles.fromObject(artifact.files);\n }\n });\n return data;\n }\n\n /**\n * build given components for release.\n * for each one of the envs it runs a series of tasks.\n * in case of an error in a task, it stops the execution of that env and continue to the next\n * env. at the end, the results contain the data and errors per env.\n */\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = { seedersOnly: isolateOptions?.seedersOnly, ...(builderOptions || {}) };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, { seedersOnly: isolateOptions?.seedersOnly });\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, { seedersOnly: isolateOptions?.seedersOnly });\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 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 ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain\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 );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n\n graphql.register(builderSchema(builder));\n generator.registerComponentTemplate([buildTaskTemplate]);\n const func = builder.tagListener.bind(builder);\n if (scope) scope.onTag(func);\n if (workspace && !workspace.consumer.isLegacy) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.unregister('build');\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"]}
|
|
1
|
+
{"version":3,"sources":["builder.main.runtime.ts"],"names":["BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","artifactsData","getArtifactsDataOfComponent","pipeline","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByExtensionAndName","name","getArtifactsByExtensionAndName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","find","aspectData","aspectId","state","aspects","get","BuilderAspect","undefined","forEach","ArtifactFiles","fromObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","buildResult","runOnce","previousTasksResults","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAUO,MAAMA,WAAN,CAAkB;AACvBC,EAAAA,WAAW,CACDC,IADC,EAEDC,SAFC,EAGDC,YAHC,EAIDC,UAJC,EAKDC,WALC,EAMDC,KANC,EAODC,QAPC,EAQDC,YARC,EASDC,aATC,EAUDC,WAVC,EAWDC,YAXC,EAYT;AAAA,SAXQV,IAWR,GAXQA,IAWR;AAAA,SAVQC,SAUR,GAVQA,SAUR;AAAA,SATQC,YASR,GATQA,YASR;AAAA,SARQC,UAQR,GARQA,UAQR;AAAA,SAPQC,WAOR,GAPQA,WAOR;AAAA,SANQC,KAMR,GANQA,KAMR;AAAA,SALQC,QAKR,GALQA,QAKR;AAAA,SAJQC,YAIR,GAJQA,YAIR;AAAA,SAHQC,aAGR,GAHQA,aAGR;AAAA,SAFQC,WAER,GAFQA,WAER;AAAA,SADQC,YACR,GADQA,YACR;AAAE;;AAEwB,QAAdC,cAAc,CAACC,YAAD,EAA8B;AACxD,UAAMC,SAAS,GAAGD,YAAY,CAACE,OAAb,CAAsBC,CAAD,IAAQA,CAAC,CAACF,SAAF,GAAc,CAACE,CAAC,CAACF,SAAH,CAAd,GAA8B,EAA3D,CAAlB;AACA,UAAMG,MAAM,GAAGH,SAAS,CAACI,GAAV,CAAc,MAAOC,WAAP,IAAmD;AAC9E,aAAOC,OAAO,CAACC,GAAR,CACLF,WAAW,CAACG,OAAZ,GAAsBJ,GAAtB,CAA0B,OAAO,CAACK,SAAD,EAAYC,YAAZ,CAAP,KAAqC;AAC7D,YAAI;AACF,iBAAO,MAAMA,YAAY,CAACC,KAAb,CAAmBF,SAAnB,CAAb;AACD,SAFD,CAEE,OAAOG,GAAP,EAAiB;AACjB,gBAAM,KAAIC,kCAAJ,EAAyBD,GAAzB,EAA8BH,SAA9B,CAAN;AACD;AACF,OAND,CADK,CAAP;AASD,KAVc,CAAf;AAWA,UAAMH,OAAO,CAACC,GAAR,CAAYJ,MAAZ,CAAN;AACD;;AAEOW,EAAAA,4BAA4B,CAClCC,UADkC,EAElCC,oBAFkC,EAGP;AAC3B,UAAMC,uBAAuB,GAAG,KAAIC,kDAAJ,EAA4BF,oBAA5B,EAAkDD,UAAlD,CAAhC;AACA,WAAOI,0BAAaC,EAAb,CAA6BL,UAA7B,EAA0CN,SAAD,IAAe;AAC7D,YAAMY,WAAW,GAAGJ,uBAAuB,CAACK,kBAAxB,CAA2Cb,SAAS,CAACc,EAArD,CAApB;AACA,YAAMC,cAAc,GAAGP,uBAAuB,CAACQ,4BAAxB,CAAqDhB,SAAS,CAACc,EAA/D,CAAvB;AACA,YAAMG,aAAa,GAAGT,uBAAuB,CAACU,2BAAxB,CAAoDlB,SAAS,CAACc,EAA9D,CAAtB;AACA,aAAO;AAAEK,QAAAA,QAAQ,EAAEJ,cAAZ;AAA4BxB,QAAAA,SAAS,EAAE0B,aAAvC;AAAsDL,QAAAA;AAAtD,OAAP;AACD,KALM,CAAP;AAMD;;AAEgB,QAAXQ,WAAW,CACfd,UADe,EAEfe,OAAkB,GAAG,EAFN,EAGfC,cAAwC,GAAG,EAH5B,EAIQ;AACvB,UAAMC,WAA8B,GAAG,EAAvC;AACA,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA,WAAhB;AAA6BC,MAAAA,0BAA7B;AAAyDC,MAAAA;AAAzD,QAAoEN,OAA1E;AACA,UAAMO,oBAAoB,GAAG,MAAM,KAAKC,KAAL,CACjCvB,UADiC;AAE/BwB,MAAAA,YAAY,EAAE;AAFiB,OAERR,cAFQ,GAGjC;AAAES,MAAAA,SAAS,EAAEV,OAAO,CAACU;AAArB,KAHiC,CAAnC;AAKA,QAAIP,YAAY,IAAI,CAACC,WAArB,EAAkCG,oBAAoB,CAACI,kBAArB;AAClC,UAAMC,eAAe,GAAG,CAAC,GAAGL,oBAAoB,CAACtC,YAAzB,CAAxB;AACAiC,IAAAA,WAAW,CAACW,IAAZ,CAAiBN,oBAAjB;;AACA,QAAIH,WAAW,IAAK,CAACC,0BAAD,IAA+B,CAACE,oBAAoB,CAACO,SAArB,EAApD,EAAuF;AACrF,YAAMC,0BAA0B,GAAGT,MAAM,GACrC,MAAM,KAAKU,YAAL,CAAkB/B,UAAlB,EAA8BgB,cAA9B,EAA8CM,oBAAoB,CAACtC,YAAnE,CAD+B,GAErC,MAAM,KAAKgD,WAAL,CAAiBhC,UAAjB,EAA6BgB,cAA7B,EAA6CM,oBAAoB,CAACtC,YAAlE,CAFV;AAGA,UAAIkC,YAAY,IAAI,CAACC,WAArB,EAAkCW,0BAA0B,CAACJ,kBAA3B;AAClCC,MAAAA,eAAe,CAACC,IAAhB,CAAqB,GAAGE,0BAA0B,CAAC9C,YAAnD;AACAiC,MAAAA,WAAW,CAACW,IAAZ,CAAiBE,0BAAjB;AACD;;AACD,UAAM,KAAK/C,cAAL,CAAoB4C,eAApB,CAAN;AACA,UAAMM,cAAc,GAAG,KAAKlC,4BAAL,CAAkCC,UAAlC,EAA8C2B,eAA9C,CAAvB;AACA,WAAO;AAAEM,MAAAA,cAAF;AAAkBhB,MAAAA;AAAlB,KAAP;AACD,GAtEsB,CAwEvB;;;AACkC,QAA5BiB,4BAA4B,CAACxC,SAAD,EAAuByC,UAAvB,EAAqE;AACrG,UAAMC,gBAAgB,GAAG,KAAKC,uBAAL,CAA6B3C,SAA7B,EAAwCyC,UAAxC,CAAzB;AACA,UAAMG,MAAM,GAAG,MAAM/C,OAAO,CAACC,GAAR,CACnB,CAAC4C,gBAAgB,IAAI,EAArB,EAAyB/C,GAAzB,CAA8BkD,cAAD,IAC3BA,cAAc,CAACC,KAAf,CAAqBC,2BAArB,CAAiD/C,SAAS,CAACc,EAAV,CAAa/B,KAA9D,EAA+E,KAAKA,KAAL,CAAWiE,WAA1F,CADF,CADmB,CAArB;AAKA,WAAO,uBAAQJ,MAAR,CAAP;AACD;;AAEwC,QAAnCK,mCAAmC,CACvCjD,SADuC,EAEvCyC,UAFuC,EAGvCS,IAHuC,EAIb;AAC1B,UAAMR,gBAAgB,GAAG,KAAKS,8BAAL,CAAoCnD,SAApC,EAA+CyC,UAA/C,EAA2DS,IAA3D,CAAzB;AACA,UAAMN,MAAM,GAAG,MAAM/C,OAAO,CAACC,GAAR,CACnB,CAAC4C,gBAAgB,IAAI,EAArB,EAAyB/C,GAAzB,CAA8BkD,cAAD,IAC3BA,cAAc,CAACC,KAAf,CAAqBC,2BAArB,CAAiD/C,SAAS,CAACc,EAAV,CAAa/B,KAA9D,EAA+E,KAAKA,KAAL,CAAWiE,WAA1F,CADF,CADmB,CAArB;AAKA,WAAO,uBAAQJ,MAAR,CAAP;AACD;;AAEDQ,EAAAA,kBAAkB,CAACpD,SAAD,EAAuBkD,IAAvB,EAAmE;AACnF,UAAM3D,SAAS,GAAG,KAAK8D,YAAL,CAAkBrD,SAAlB,CAAlB;AACA,WAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAE+D,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAACL,IAAT,KAAkBA,IAAlD,CAAP;AACD;;AAEDP,EAAAA,uBAAuB,CAAC3C,SAAD,EAAuByC,UAAvB,EAAyE;AAC9F,UAAMlD,SAAS,GAAG,KAAK8D,YAAL,CAAkBrD,SAAlB,CAAlB;AACA,WAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAE+D,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,IAAT,CAAc1C,EAAd,KAAqB2B,UAArD,CAAP;AACD;;AAEDU,EAAAA,8BAA8B,CAACnD,SAAD,EAAuByC,UAAvB,EAA2CS,IAA3C,EAAuF;AACnH,UAAM3D,SAAS,GAAG,KAAK8D,YAAL,CAAkBrD,SAAlB,CAAlB;AACA,WAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAE+D,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,IAAT,CAAc1C,EAAd,KAAqB2B,UAArB,IAAmCc,QAAQ,CAACL,IAAT,KAAkBA,IAArF,CAAP;AACD;;AAEDO,EAAAA,eAAe,CAACzD,SAAD,EAAuByC,UAAvB,EAAqE;AAAA;;AAClF,UAAM7B,WAAW,2BAAG,KAAK8C,cAAL,CAAoB1D,SAApB,CAAH,yDAAG,qBAAgCY,WAApD;AACA,UAAM+C,IAAI,GAAG/C,WAAH,aAAGA,WAAH,uBAAGA,WAAW,CAAEgD,IAAb,CAAmBC,UAAD,IAAgBA,UAAU,CAACC,QAAX,KAAwBrB,UAA1D,CAAb;AACA,WAAOkB,IAAP,aAAOA,IAAP,uBAAOA,IAAI,CAAEA,IAAb;AACD;;AAEDN,EAAAA,YAAY,CAACrD,SAAD,EAAqD;AAAA;;AAC/D,oCAAO,KAAK0D,cAAL,CAAoB1D,SAApB,CAAP,0DAAO,sBAAgCT,SAAvC;AACD;;AAEDmE,EAAAA,cAAc,CAAC1D,SAAD,EAAgD;AAAA;;AAC5D,UAAM2D,IAAI,4BAAG3D,SAAS,CAAC+D,KAAV,CAAgBC,OAAhB,CAAwBC,GAAxB,CAA4BC,yBAAcpD,EAA1C,CAAH,0DAAG,sBAA+C6C,IAA5D;AACA,QAAI,CAACA,IAAL,EAAW,OAAOQ,SAAP;AACX,uBAAAR,IAAI,CAACpE,SAAL,oEAAgB6E,OAAhB,CAAyBb,QAAD,IAAc;AACpC,UAAI,EAAEA,QAAQ,CAACT,KAAT,YAA0BuB,8BAA5B,CAAJ,EAAgD;AAC9Cd,QAAAA,QAAQ,CAACT,KAAT,GAAiBuB,+BAAcC,UAAd,CAAyBf,QAAQ,CAACT,KAAlC,CAAjB;AACD;AACF,KAJD;AAKA,WAAOa,IAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACa,QAAL9B,KAAK,CACTvB,UADS,EAETgB,cAFS,EAGTiD,cAHS,EAIiB;AAC1B,UAAMC,GAAG,GAAGlE,UAAU,CAACX,GAAX,CAAgB8E,CAAD,IAAOA,CAAC,CAAC3D,EAAxB,CAAZ;AACA,UAAM4D,OAAO,GAAG,MAAM,KAAK1F,QAAL,CAAc2F,iBAAd,CAAgCH,GAAhC,EAAqClD,cAArC,CAAtB;AACA,UAAM5C,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUkG,iBAAV,CAA4BF,OAAO,CAACG,aAAR,CAAsBC,gBAAtB,EAA5B,CAAnB;;AACA,UAAMC,qBAAqB;AAAKC,MAAAA,WAAW,EAAE1D,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAE0D;AAAlC,OAAmDT,cAAc,IAAI,EAArE,CAA3B;;AACA,UAAMU,WAAW,GAAG,MAAMvG,IAAI,CAACwG,OAAL,CAAa,KAAKtG,YAAlB,EAAgCmG,qBAAhC,CAA1B;AACA,WAAOE,WAAP;AACD;;AAEgB,QAAX3C,WAAW,CACfhC,UADe,EAEfgB,cAFe,EAGf6D,oBAHe,EAIW;AAC1B,UAAMzG,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUkG,iBAAV,CAA4BtE,UAA5B,CAAnB;AACA,UAAM2E,WAAW,GAAG,MAAMvG,IAAI,CAACwG,OAAL,CAAa,KAAKrG,UAAlB,EAA8B;AACtDmG,MAAAA,WAAW,EAAE1D,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAE0D,WADyB;AAEtDG,MAAAA;AAFsD,KAA9B,CAA1B;AAKA,WAAOF,WAAP;AACD;;AAEiB,QAAZ5C,YAAY,CAChB/B,UADgB,EAEhBgB,cAFgB,EAGhB6D,oBAHgB,EAIU;AAC1B,UAAMzG,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUkG,iBAAV,CAA4BtE,UAA5B,CAAnB;AACA,UAAM2E,WAAW,GAAG,MAAMvG,IAAI,CAACwG,OAAL,CAAa,KAAKpG,WAAlB,EAA+B;AACvDkG,MAAAA,WAAW,EAAE1D,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAE0D,WAD0B;AAEvDG,MAAAA;AAFuD,KAA/B,CAA1B;AAKA,WAAOF,WAAP;AACD;;AAEDG,EAAAA,SAAS,CAACpF,SAAD,EAAuB;AAC9B,UAAMqF,OAAO,GAAG,KAAK3G,IAAL,CAAU4G,MAAV,CAAiBtF,SAAjB,CAAhB;AACA,UAAMuF,UAAU,GAAG,KAAK3G,YAAL,CAAkB4G,mBAAlB,CAAsCH,OAAtC,CAAnB;AACA,UAAMI,QAAQ,GAAG,KAAK5G,UAAL,CAAgB2G,mBAAhB,CAAoCH,OAApC,CAAjB;AACA,UAAMK,SAAS,GAAG,KAAK5G,WAAL,CAAiB0G,mBAAjB,CAAqCH,OAArC,CAAlB;AACA,WAAO;AAAEvE,MAAAA,EAAE,EAAEd,SAAS,CAACc,EAAhB;AAAoB6E,MAAAA,KAAK,EAAEN,OAAO,CAACvE,EAAnC;AAAuCyE,MAAAA,UAAvC;AAAmDE,MAAAA,QAAnD;AAA6DC,MAAAA;AAA7D,KAAP;AACD;AAED;AACF;AACA;AACA;;;AACEE,EAAAA,kBAAkB,CAACC,KAAD,EAAqB;AACrC,SAAK3G,aAAL,CAAmB4G,QAAnB,CAA4BD,KAA5B;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,mBAAmB,CAACF,KAAD,EAAqB;AACtC,SAAK1G,WAAL,CAAiB2G,QAAjB,CAA0BD,KAA1B;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;AACA;;;AACEG,EAAAA,gBAAgB,CAACH,KAAD,EAAqB;AACnC,SAAK1G,WAAL,CAAiB2G,QAAjB,CAA0BD,KAA1B;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;AACA;;;AACEI,EAAAA,iBAAiB,CAACJ,KAAD,EAAqB;AACpC,SAAKzG,YAAL,CAAkB0G,QAAlB,CAA2BD,KAA3B;AACA,WAAO,IAAP;AACD;;AAiBoB,eAARK,QAAQ,CACnB,CAACC,GAAD,EAAMzH,IAAN,EAAYC,SAAZ,EAAuBI,KAAvB,EAA8BC,QAA9B,EAAwCoH,SAAxC,EAAmDnH,YAAnD,EAAiEoH,OAAjE,EAA0EC,SAA1E,CADmB,EAYnBC,MAZmB,EAanB,CAACrH,aAAD,EAAgBC,WAAhB,EAA6BC,YAA7B,CAbmB,EAcnB;AACA,UAAMoH,eAAe,GAAG,KAAIC,kCAAJ,GAAxB;AACA,UAAMC,MAAM,GAAGN,SAAS,CAACO,YAAV,CAAuBzC,yBAAcpD,EAArC,CAAf;AACA,UAAMlC,YAAY,GAAG,KAAIgI,0BAAJ,EACnB5H,QADmB,EAEnB0H,MAFmB,EAGnBxH,aAHmB,EAInB,cAJmB,EAKnB,OALmB,EAMnBsH,eANmB,EAOnBzH,KAPmB,CAArB;AASAL,IAAAA,IAAI,CAACmI,eAAL,CAAqBjI,YAArB;AACA,UAAMC,UAAU,GAAG,KAAI+H,0BAAJ,EAAmB5H,QAAnB,EAA6B0H,MAA7B,EAAqCvH,WAArC,EAAkD,YAAlD,EAAgE,KAAhE,EAAuEqH,eAAvE,EAAwFzH,KAAxF,CAAnB;AACA,UAAMD,WAAW,GAAG,KAAI8H,0BAAJ,EAClB5H,QADkB,EAElB0H,MAFkB,EAGlBtH,YAHkB,EAIlB,aAJkB,EAKlB,MALkB,EAMlBoH,eANkB,EAOlBzH,KAPkB,CAApB;AASA,UAAM+H,OAAO,GAAG,IAAItI,WAAJ,CACdE,IADc,EAEdC,SAFc,EAGdC,YAHc,EAIdC,UAJc,EAKdC,WALc,EAMdC,KANc,EAOdC,QAPc,EAQdC,YARc,EASdC,aATc,EAUdC,WAVc,EAWdC,YAXc,CAAhB;AAcAiH,IAAAA,OAAO,CAACP,QAAR,CAAiB,+BAAcgB,OAAd,CAAjB;AACAR,IAAAA,SAAS,CAACS,yBAAV,CAAoC,CAACC,8BAAD,CAApC;AACA,UAAMC,IAAI,GAAGH,OAAO,CAAC1F,WAAR,CAAoB8F,IAApB,CAAyBJ,OAAzB,CAAb;AACA,QAAI/H,KAAJ,EAAWA,KAAK,CAACoI,KAAN,CAAYF,IAAZ;;AACX,QAAItI,SAAS,IAAI,CAACA,SAAS,CAACyI,QAAV,CAAmBC,QAArC,EAA+C;AAC7C,YAAMC,QAAQ,GAAG,CAAC,KAAIC,mBAAJ,EAAeT,OAAf,EAAwBnI,SAAxB,EAAmC+H,MAAnC,CAAD,EAA6C,KAAIc,yBAAJ,EAAiBV,OAAjB,EAA0B/H,KAA1B,CAA7C,CAAjB;AACAoH,MAAAA,GAAG,CAACsB,UAAJ,CAAe,OAAf;AACAtB,MAAAA,GAAG,CAACL,QAAJ,CAAa,GAAGwB,QAAhB;AACD;;AACD,WAAOR,OAAP;AACD;;AA3SsB;;;gCAAZtI,W,WA+NI,CAACkJ,gBAAKC,QAAL,EAAD,EAA6BD,gBAAKC,QAAL,EAA7B,EAAyDD,gBAAKC,QAAL,EAAzD,C;gCA/NJnJ,W,aAiOMoJ,kB;gCAjONpJ,W,kBAkOW,CACpBqJ,gBADoB,EAEpBC,kBAFoB,EAGpBC,4BAHoB,EAIpBC,oBAJoB,EAKpBC,0BALoB,EAMpBC,sBANoB,EAOpBC,kCAPoB,EAQpBC,wBARoB,EASpBC,4BAToB,C;;AA4ExBnE,yBAAcoE,UAAd,CAAyB9J,WAAzB","sourcesContent":["import { flatten } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain, OnTagResults } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { OnTagOpts } from '@teambit/legacy/dist/scope/scope';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { ArtifactList } 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 } 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 { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\n\nexport type BuilderData = {\n pipeline: PipelineReport[];\n artifacts: ArtifactObject[] | undefined;\n aspectsData: AspectData[];\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 buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<BuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<BuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts: artifactsData, aspectsData };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap } = options;\n const envsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n { skipTests: options.skipTests }\n );\n if (throwOnError && !forceDeploy) envsExecutionResults.throwErrorsIfExist();\n const allTasksResults = [...envsExecutionResults.tasksResults];\n pipeResults.push(envsExecutionResults);\n if (forceDeploy || (!disableTagAndSnapPipelines && !envsExecutionResults.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions, envsExecutionResults.tasksResults)\n : await this.runTagTasks(components, isolateOptions, envsExecutionResults.tasksResults);\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 return { builderDataMap, pipeResults };\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtension(component, aspectName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.name === name);\n }\n\n getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName);\n }\n\n getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.name === name);\n }\n\n getDataByAspect(component: Component, aspectName: string): Serializable | 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: Component): ArtifactObject[] | undefined {\n return this.getBuilderData(component)?.artifacts;\n }\n\n getBuilderData(component: Component): BuilderData | undefined {\n const data = component.state.aspects.get(BuilderAspect.id)?.data as BuilderData | undefined;\n if (!data) return undefined;\n data.artifacts?.forEach((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifact.files = ArtifactFiles.fromObject(artifact.files);\n }\n });\n return data;\n }\n\n /**\n * build given components for release.\n * for each one of the envs it runs a series of tasks.\n * in case of an error in a task, it stops the execution of that env and continue to the next\n * env. at the end, the results contain the data and errors per env.\n */\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = { seedersOnly: isolateOptions?.seedersOnly, ...(builderOptions || {}) };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n async runSnapTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\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 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 ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain\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 );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n\n graphql.register(builderSchema(builder));\n generator.registerComponentTemplate([buildTaskTemplate]);\n const func = builder.tagListener.bind(builder);\n if (scope) scope.onTag(func);\n if (workspace && !workspace.consumer.isLegacy) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.unregister('build');\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"]}
|
|
@@ -3,6 +3,7 @@ import { ScopeMain } from '@teambit/scope';
|
|
|
3
3
|
import { Logger } from '@teambit/logger';
|
|
4
4
|
import { IsolatorMain } from '@teambit/isolator';
|
|
5
5
|
import { Component } from '@teambit/component';
|
|
6
|
+
import { TaskResults } from './build-pipe';
|
|
6
7
|
import { TaskResultsList } from './task-results-list';
|
|
7
8
|
import { TaskSlot } from './builder.main.runtime';
|
|
8
9
|
import { BuildContext } from './build-task';
|
|
@@ -17,6 +18,7 @@ export declare type BuilderServiceOptions = {
|
|
|
17
18
|
seedersOnly?: boolean;
|
|
18
19
|
tasks?: string[];
|
|
19
20
|
skipTests?: boolean;
|
|
21
|
+
previousTasksResults?: TaskResults[];
|
|
20
22
|
};
|
|
21
23
|
export declare type EnvsBuildContext = {
|
|
22
24
|
[envId: string]: BuildContext;
|
package/dist/builder.service.js
CHANGED
|
@@ -146,7 +146,7 @@ class BuilderService {
|
|
|
146
146
|
envsBuildContext[executionContext.id] = buildContext;
|
|
147
147
|
}));
|
|
148
148
|
|
|
149
|
-
const buildPipe = _buildPipe().BuildPipe.from(tasksQueue, envsBuildContext, this.logger, this.artifactFactory);
|
|
149
|
+
const buildPipe = _buildPipe().BuildPipe.from(tasksQueue, envsBuildContext, this.logger, this.artifactFactory, options.previousTasksResults);
|
|
150
150
|
|
|
151
151
|
const buildResults = await buildPipe.execute();
|
|
152
152
|
longProcessLogger.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["builder.service.tsx"],"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","Promise","all","componentIds","components","component","id","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","buildPipe","BuildPipe","from","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","pipeName","renderOnePipe","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"mappings":"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","sourcesContent":["import { EnvDefinition, EnvService, ExecutionContext } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component } from '@teambit/component';\nimport { BuildPipe } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = { seedersOnly?: boolean; tasks?: string[]; skipTests?: boolean };\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\ntype PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: string,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await Promise.all(\n envsExecutionContext.map(async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", seeders total: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n });\n envsBuildContext[executionContext.id] = buildContext;\n })\n );\n const buildPipe = BuildPipe.from(tasksQueue, envsBuildContext, this.logger, this.artifactFactory);\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["builder.service.tsx"],"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","Promise","all","componentIds","components","component","id","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","buildPipe","BuildPipe","from","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","pipeName","renderOnePipe","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"mappings":"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","sourcesContent":["import { EnvDefinition, EnvService, ExecutionContext } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\ntype PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: string,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await Promise.all(\n envsExecutionContext.map(async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", seeders total: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n });\n envsBuildContext[executionContext.id] = buildContext;\n })\n );\n const buildPipe = BuildPipe.from(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ArtifactDefinitionError = void 0;
|
|
7
|
+
|
|
8
|
+
class ArtifactDefinitionError extends Error {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(`must include glob or directories`);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
exports.ArtifactDefinitionError = ArtifactDefinitionError;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=artifact-definition-no-glob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["artifact-definition-no-glob.ts"],"names":["ArtifactDefinitionError","Error","constructor"],"mappings":";;;;;;;AAAO,MAAMA,uBAAN,SAAsCC,KAAtC,CAA4C;AACjDC,EAAAA,WAAW,GAAG;AACZ,UAAO,kCAAP;AACD;;AAHgD","sourcesContent":["export class ArtifactDefinitionError extends Error {\n constructor() {\n super(`must include glob or directories`);\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BuildPipe } from './build-pipe';
|
|
1
|
+
export { BuildPipe, TaskResults } from './build-pipe';
|
|
2
2
|
export { ComponentResult, TaskMetadata } from './types';
|
|
3
3
|
export { BuildContext, BuildTask, BuiltTaskResult, TaskLocation, BuildTaskHelper } from './build-task';
|
|
4
4
|
export type { BuilderMain, BuilderData } from './builder.main.runtime';
|
package/dist/index.js
CHANGED
|
@@ -105,6 +105,12 @@ Object.defineProperty(exports, "TaskMetadata", {
|
|
|
105
105
|
return _types().TaskMetadata;
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
|
+
Object.defineProperty(exports, "TaskResults", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function () {
|
|
111
|
+
return _buildPipe().TaskResults;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
108
114
|
Object.defineProperty(exports, "TaskResultsList", {
|
|
109
115
|
enumerable: true,
|
|
110
116
|
get: function () {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { BuildPipe, TaskResults } from './build-pipe';\nexport { ComponentResult, TaskMetadata } from './types';\nexport { BuildContext, BuildTask, BuiltTaskResult, TaskLocation, BuildTaskHelper } from './build-task';\nexport type { BuilderMain, BuilderData } from './builder.main.runtime';\nexport type { PipelineReport } from './build-pipeline-result-list';\nexport { BuilderAspect } from './builder.aspect';\nexport { WholeArtifactStorageResolver, FileStorageResolver, ArtifactStorageResolver } from './storage';\nexport { Artifact, ArtifactList, ArtifactFactory, ArtifactDefinition, ArtifactModelDefinition } from './artifact';\nexport { TaskResultsList } from './task-results-list';\nexport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\n"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/builder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.603",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/pipelines/builder",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.pipelines",
|
|
8
8
|
"name": "builder",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.603"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
"globby": "11.0.1",
|
|
23
23
|
"@babel/runtime": "7.12.18",
|
|
24
24
|
"core-js": "^3.0.0",
|
|
25
|
-
"@teambit/component": "0.0.
|
|
26
|
-
"@teambit/envs": "0.0.
|
|
27
|
-
"@teambit/logger": "0.0.
|
|
28
|
-
"@teambit/tester": "0.0.
|
|
29
|
-
"@teambit/isolator": "0.0.
|
|
30
|
-
"@teambit/cli": "0.0.
|
|
31
|
-
"@teambit/workspace": "0.0.
|
|
32
|
-
"@teambit/aspect-loader": "0.0.
|
|
33
|
-
"@teambit/generator": "0.0.
|
|
34
|
-
"@teambit/graphql": "0.0.
|
|
35
|
-
"@teambit/scope": "0.0.
|
|
25
|
+
"@teambit/component": "0.0.603",
|
|
26
|
+
"@teambit/envs": "0.0.603",
|
|
27
|
+
"@teambit/logger": "0.0.504",
|
|
28
|
+
"@teambit/tester": "0.0.603",
|
|
29
|
+
"@teambit/isolator": "0.0.603",
|
|
30
|
+
"@teambit/cli": "0.0.415",
|
|
31
|
+
"@teambit/workspace": "0.0.603",
|
|
32
|
+
"@teambit/aspect-loader": "0.0.603",
|
|
33
|
+
"@teambit/generator": "0.0.603",
|
|
34
|
+
"@teambit/graphql": "0.0.603",
|
|
35
|
+
"@teambit/scope": "0.0.603",
|
|
36
36
|
"@teambit/bit-error": "0.0.394",
|
|
37
37
|
"@teambit/component-id": "0.0.398"
|
|
38
38
|
},
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"@types/jest": "^26.0.0",
|
|
47
47
|
"@types/react-dom": "^17.0.5",
|
|
48
48
|
"@types/node": "12.20.4",
|
|
49
|
-
"@teambit/pipelines.aspect-docs.builder": "0.0.
|
|
49
|
+
"@teambit/pipelines.aspect-docs.builder": "0.0.131"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@teambit/legacy": "1.0.
|
|
52
|
+
"@teambit/legacy": "1.0.200",
|
|
53
53
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
54
54
|
"react": "^16.8.0 || ^17.0.0"
|
|
55
55
|
},
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"react": "-"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
|
-
"@teambit/legacy": "1.0.
|
|
80
|
+
"@teambit/legacy": "1.0.200",
|
|
81
81
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
82
82
|
"react": "^16.8.0 || ^17.0.0"
|
|
83
83
|
}
|
|
Binary file
|