@teambit/builder 0.0.815 → 0.0.818
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-extractor.ts +31 -30
- package/artifact/artifact-factory.ts +10 -17
- package/artifact/artifact-list.ts +61 -19
- package/artifact/artifact.ts +27 -18
- package/artifact/fs-artifact.ts +21 -0
- package/artifact/index.ts +1 -0
- package/dist/artifact/artifact-extractor.js +43 -26
- package/dist/artifact/artifact-extractor.js.map +1 -1
- package/dist/artifact/artifact-factory.d.ts +4 -4
- package/dist/artifact/artifact-factory.js +9 -10
- package/dist/artifact/artifact-factory.js.map +1 -1
- package/dist/artifact/artifact-list.d.ts +15 -12
- package/dist/artifact/artifact-list.js +68 -13
- package/dist/artifact/artifact-list.js.map +1 -1
- package/dist/artifact/artifact.d.ts +8 -26
- package/dist/artifact/artifact.js +33 -14
- package/dist/artifact/artifact.js.map +1 -1
- package/dist/artifact/fs-artifact.d.ts +18 -0
- package/dist/artifact/fs-artifact.js +35 -0
- package/dist/artifact/fs-artifact.js.map +1 -0
- package/dist/artifact/index.d.ts +1 -0
- package/dist/artifact/index.js +16 -0
- package/dist/artifact/index.js.map +1 -1
- package/dist/build-pipe.d.ts +2 -2
- package/dist/build-pipe.js.map +1 -1
- package/dist/build-pipeline-result-list.js +2 -2
- package/dist/build-pipeline-result-list.js.map +1 -1
- package/dist/build-task.d.ts +5 -0
- package/dist/build-task.js.map +1 -1
- package/dist/builder.graphql.d.ts +80 -4
- package/dist/builder.graphql.js +122 -16
- package/dist/builder.graphql.js.map +1 -1
- package/dist/builder.main.runtime.d.ts +30 -16
- package/dist/builder.main.runtime.js +88 -41
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/builder.route.d.ts +20 -0
- package/dist/builder.route.js +145 -0
- package/dist/builder.route.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/storage/default-resolver.d.ts +2 -2
- package/dist/storage/default-resolver.js.map +1 -1
- package/dist/storage/storage-resolver.d.ts +3 -3
- package/dist/storage/storage-resolver.js.map +1 -1
- package/package-tar/teambit-builder-0.0.818.tgz +0 -0
- package/package.json +20 -14
- package/{preview-1660361218837.js → preview-1660620618310.js} +2 -2
- package/storage/default-resolver.ts +2 -2
- package/storage/storage-resolver.ts +3 -3
- package/package-tar/teambit-builder-0.0.815.tgz +0 -0
|
@@ -13,7 +13,7 @@ require("core-js/modules/es.promise.js");
|
|
|
13
13
|
Object.defineProperty(exports, "__esModule", {
|
|
14
14
|
value: true
|
|
15
15
|
});
|
|
16
|
-
exports.BuilderMain = void 0;
|
|
16
|
+
exports.FILE_PATH_PARAM_DELIM = exports.BuilderMain = void 0;
|
|
17
17
|
|
|
18
18
|
function _defineProperty2() {
|
|
19
19
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -35,6 +35,16 @@ function _lodash() {
|
|
|
35
35
|
return data;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
function _artifactFiles() {
|
|
39
|
+
const data = require("@teambit/legacy/dist/consumer/component/sources/artifact-files");
|
|
40
|
+
|
|
41
|
+
_artifactFiles = function () {
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
|
|
38
48
|
function _aspectLoader() {
|
|
39
49
|
const data = require("@teambit/aspect-loader");
|
|
40
50
|
|
|
@@ -155,20 +165,20 @@ function _findDuplications() {
|
|
|
155
165
|
return data;
|
|
156
166
|
}
|
|
157
167
|
|
|
158
|
-
function
|
|
159
|
-
const data = require("@teambit/
|
|
168
|
+
function _generator() {
|
|
169
|
+
const data = require("@teambit/generator");
|
|
160
170
|
|
|
161
|
-
|
|
171
|
+
_generator = function () {
|
|
162
172
|
return data;
|
|
163
173
|
};
|
|
164
174
|
|
|
165
175
|
return data;
|
|
166
176
|
}
|
|
167
177
|
|
|
168
|
-
function
|
|
169
|
-
const data = require("
|
|
178
|
+
function _artifact() {
|
|
179
|
+
const data = require("./artifact");
|
|
170
180
|
|
|
171
|
-
|
|
181
|
+
_artifact = function () {
|
|
172
182
|
return data;
|
|
173
183
|
};
|
|
174
184
|
|
|
@@ -275,12 +285,29 @@ function _buildTask2() {
|
|
|
275
285
|
return data;
|
|
276
286
|
}
|
|
277
287
|
|
|
288
|
+
function _builder4() {
|
|
289
|
+
const data = require("./builder.route");
|
|
290
|
+
|
|
291
|
+
_builder4 = function () {
|
|
292
|
+
return data;
|
|
293
|
+
};
|
|
294
|
+
|
|
295
|
+
return data;
|
|
296
|
+
}
|
|
297
|
+
|
|
278
298
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
279
299
|
|
|
280
300
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
281
301
|
|
|
302
|
+
const FILE_PATH_PARAM_DELIM = '~';
|
|
303
|
+
/**
|
|
304
|
+
* builder data format for the bit object store
|
|
305
|
+
*/
|
|
306
|
+
|
|
307
|
+
exports.FILE_PATH_PARAM_DELIM = FILE_PATH_PARAM_DELIM;
|
|
308
|
+
|
|
282
309
|
class BuilderMain {
|
|
283
|
-
constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot) {
|
|
310
|
+
constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, buildTaskSlot, tagTaskSlot, snapTaskSlot) {
|
|
284
311
|
this.envs = envs;
|
|
285
312
|
this.workspace = workspace;
|
|
286
313
|
this.buildService = buildService;
|
|
@@ -289,6 +316,7 @@ class BuilderMain {
|
|
|
289
316
|
this.scope = scope;
|
|
290
317
|
this.isolator = isolator;
|
|
291
318
|
this.aspectLoader = aspectLoader;
|
|
319
|
+
this.componentAspect = componentAspect;
|
|
292
320
|
this.buildTaskSlot = buildTaskSlot;
|
|
293
321
|
this.tagTaskSlot = tagTaskSlot;
|
|
294
322
|
this.snapTaskSlot = snapTaskSlot;
|
|
@@ -313,10 +341,10 @@ class BuilderMain {
|
|
|
313
341
|
return _component().ComponentMap.as(components, component => {
|
|
314
342
|
const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);
|
|
315
343
|
const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);
|
|
316
|
-
const
|
|
344
|
+
const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);
|
|
317
345
|
return {
|
|
318
346
|
pipeline: pipelineReport,
|
|
319
|
-
artifacts
|
|
347
|
+
artifacts,
|
|
320
348
|
aspectsData,
|
|
321
349
|
bitVersion: (0, _bootstrap().getHarmonyVersion)(true)
|
|
322
350
|
};
|
|
@@ -371,42 +399,42 @@ class BuilderMain {
|
|
|
371
399
|
} // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props
|
|
372
400
|
|
|
373
401
|
|
|
374
|
-
async
|
|
375
|
-
const
|
|
376
|
-
const vinyls = await
|
|
377
|
-
return
|
|
402
|
+
async getArtifactsVinylByAspect(component, aspectName) {
|
|
403
|
+
const artifacts = this.getArtifactsByAspect(component, aspectName);
|
|
404
|
+
const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);
|
|
405
|
+
return vinyls;
|
|
378
406
|
}
|
|
379
407
|
|
|
380
|
-
async
|
|
381
|
-
const
|
|
382
|
-
const vinyls = await
|
|
383
|
-
return
|
|
408
|
+
async getArtifactsVinylByAspectAndName(component, aspectName, name) {
|
|
409
|
+
const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);
|
|
410
|
+
const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);
|
|
411
|
+
return vinyls;
|
|
384
412
|
}
|
|
385
413
|
|
|
386
|
-
async
|
|
387
|
-
const
|
|
388
|
-
const vinyls = await
|
|
389
|
-
return
|
|
414
|
+
async getArtifactsVinylByAspectAndTaskName(component, aspectName, name) {
|
|
415
|
+
const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);
|
|
416
|
+
const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);
|
|
417
|
+
return vinyls;
|
|
390
418
|
}
|
|
391
419
|
|
|
392
420
|
getArtifactsByName(component, name) {
|
|
393
|
-
const artifacts = this.getArtifacts(component);
|
|
394
|
-
return artifacts
|
|
421
|
+
const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);
|
|
422
|
+
return artifacts;
|
|
395
423
|
}
|
|
396
424
|
|
|
397
|
-
|
|
398
|
-
const artifacts = this.getArtifacts(component);
|
|
399
|
-
return artifacts
|
|
425
|
+
getArtifactsByAspect(component, aspectName) {
|
|
426
|
+
const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);
|
|
427
|
+
return artifacts;
|
|
400
428
|
}
|
|
401
429
|
|
|
402
|
-
|
|
403
|
-
const artifacts = this.getArtifacts(component);
|
|
404
|
-
return artifacts
|
|
430
|
+
getArtifactsByAspectAndName(component, aspectName, name) {
|
|
431
|
+
const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);
|
|
432
|
+
return artifacts;
|
|
405
433
|
}
|
|
406
434
|
|
|
407
|
-
|
|
408
|
-
const artifacts = this.getArtifacts(component);
|
|
409
|
-
return artifacts
|
|
435
|
+
getArtifactsbyAspectAndTaskName(component, aspectName, taskName) {
|
|
436
|
+
const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);
|
|
437
|
+
return artifacts;
|
|
410
438
|
}
|
|
411
439
|
|
|
412
440
|
getDataByAspect(component, aspectName) {
|
|
@@ -420,20 +448,34 @@ class BuilderMain {
|
|
|
420
448
|
getArtifacts(component) {
|
|
421
449
|
var _this$getBuilderData2;
|
|
422
450
|
|
|
423
|
-
|
|
451
|
+
const artifacts = ((_this$getBuilderData2 = this.getBuilderData(component)) === null || _this$getBuilderData2 === void 0 ? void 0 : _this$getBuilderData2.artifacts) || _artifact().ArtifactList.fromArray([]);
|
|
452
|
+
|
|
453
|
+
return artifacts;
|
|
424
454
|
}
|
|
425
455
|
|
|
426
456
|
getBuilderData(component) {
|
|
427
|
-
var _component$get,
|
|
457
|
+
var _component$get, _clonedData$artifacts;
|
|
428
458
|
|
|
429
459
|
const data = (_component$get = component.get(_builder().BuilderAspect.id)) === null || _component$get === void 0 ? void 0 : _component$get.data;
|
|
430
460
|
if (!data) return undefined;
|
|
431
|
-
|
|
461
|
+
const clonedData = (0, _lodash().cloneDeep)(data);
|
|
462
|
+
let artifactFiles;
|
|
463
|
+
(_clonedData$artifacts = clonedData.artifacts) === null || _clonedData$artifacts === void 0 ? void 0 : _clonedData$artifacts.forEach(artifact => {
|
|
432
464
|
if (!(artifact.files instanceof _artifactFiles().ArtifactFiles)) {
|
|
433
|
-
|
|
465
|
+
artifactFiles = _artifactFiles().ArtifactFiles.fromObject(artifact.files);
|
|
466
|
+
} else {
|
|
467
|
+
artifactFiles = artifact.files;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
if (!(artifact instanceof _artifact().Artifact)) {
|
|
471
|
+
Object.assign(artifact, {
|
|
472
|
+
files: artifactFiles
|
|
473
|
+
});
|
|
474
|
+
Object.assign(artifact, _artifact().Artifact.fromArtifactObject(artifact));
|
|
434
475
|
}
|
|
435
476
|
});
|
|
436
|
-
|
|
477
|
+
clonedData.artifacts = _artifact().ArtifactList.fromArray(clonedData.artifacts || []);
|
|
478
|
+
return clonedData;
|
|
437
479
|
}
|
|
438
480
|
/**
|
|
439
481
|
* build given components for release.
|
|
@@ -528,14 +570,19 @@ class BuilderMain {
|
|
|
528
570
|
return this;
|
|
529
571
|
}
|
|
530
572
|
|
|
531
|
-
|
|
573
|
+
getDownloadUrlForArtifact(componentId, taskId, path) {
|
|
574
|
+
return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component], config, [buildTaskSlot, tagTaskSlot, snapTaskSlot]) {
|
|
532
578
|
const artifactFactory = new (_artifactFactory().ArtifactFactory)();
|
|
533
579
|
const logger = loggerExt.createLogger(_builder().BuilderAspect.id);
|
|
534
580
|
const buildService = new (_builder3().BuilderService)(isolator, logger, buildTaskSlot, 'getBuildPipe', 'build', artifactFactory, scope);
|
|
535
581
|
envs.registerService(buildService);
|
|
536
582
|
const tagService = new (_builder3().BuilderService)(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);
|
|
537
583
|
const snapService = new (_builder3().BuilderService)(isolator, logger, snapTaskSlot, 'getSnapPipe', 'snap', artifactFactory, scope);
|
|
538
|
-
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot);
|
|
584
|
+
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, buildTaskSlot, tagTaskSlot, snapTaskSlot);
|
|
585
|
+
component.registerRoute([new (_builder4().BuilderRoute)(builder, scope, logger)]);
|
|
539
586
|
graphql.register((0, _builder2().builderSchema)(builder));
|
|
540
587
|
generator.registerComponentTemplate([_buildTask2().buildTaskTemplate]);
|
|
541
588
|
const func = builder.tagListener.bind(builder);
|
|
@@ -554,7 +601,7 @@ class BuilderMain {
|
|
|
554
601
|
exports.BuilderMain = BuilderMain;
|
|
555
602
|
(0, _defineProperty2().default)(BuilderMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
556
603
|
(0, _defineProperty2().default)(BuilderMain, "runtime", _cli().MainRuntime);
|
|
557
|
-
(0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect]);
|
|
604
|
+
(0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect, _component().ComponentAspect]);
|
|
558
605
|
|
|
559
606
|
_builder().BuilderAspect.addRuntime(BuilderMain);
|
|
560
607
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","_legacy","legacyScope","flatten","getArtifactsVinylByExtensionAndName","getArtifactsByExtensionAndName","getArtifactsVinylByExtensionAndTaskName","getArtifactsByExtensionAndTaskName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","find","aspectData","get","BuilderAspect","undefined","ArtifactFiles","fromObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","originalSeeders","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","builderSchema","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"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, IComponent } 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 { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\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, 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 { 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 bitVersion?: string;\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, bitVersion: getHarmonyVersion(true) };\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 this.validateBuilderDataMap(builderDataMap);\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<BuilderData>) {\n builderDataMap.forEach((buildData: BuilderData, 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 // 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._legacy, 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._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndTaskName(\n component: Component,\n aspectName: string,\n taskName: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndTaskName(component, aspectName, taskName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, 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 getArtifactsByExtensionAndTaskName(\n component: Component,\n aspectName: string,\n taskName: string\n ): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.task.name === taskName);\n }\n\n getDataByAspect(component: IComponent, 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: IComponent): BuilderData | undefined {\n const data = component.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, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\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) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAWO,MAAMA,WAAN,CAAkB;EACvBC,WAAW,CACDC,IADC,EAEDC,SAFC,EAGDC,YAHC,EAIDC,UAJC,EAKDC,WALC,EAMDC,KANC,EAODC,QAPC,EAQDC,YARC,EASDC,aATC,EAUDC,WAVC,EAWDC,YAXC,EAYT;IAAA,KAXQV,IAWR,GAXQA,IAWR;IAAA,KAVQC,SAUR,GAVQA,SAUR;IAAA,KATQC,YASR,GATQA,YASR;IAAA,KARQC,UAQR,GARQA,UAQR;IAAA,KAPQC,WAOR,GAPQA,WAOR;IAAA,KANQC,KAMR,GANQA,KAMR;IAAA,KALQC,QAKR,GALQA,QAKR;IAAA,KAJQC,YAIR,GAJQA,YAIR;IAAA,KAHQC,aAGR,GAHQA,aAGR;IAAA,KAFQC,WAER,GAFQA,WAER;IAAA,KADQC,YACR,GADQA,YACR;EAAE;;EAEwB,MAAdC,cAAc,CAACC,YAAD,EAA8B;IACxD,MAAMC,SAAS,GAAGD,YAAY,CAACE,OAAb,CAAsBC,CAAD,IAAQA,CAAC,CAACF,SAAF,GAAc,CAACE,CAAC,CAACF,SAAH,CAAd,GAA8B,EAA3D,CAAlB;IACA,MAAMG,MAAM,GAAGH,SAAS,CAACI,GAAV,CAAc,MAAOC,WAAP,IAAmD;MAC9E,OAAOC,OAAO,CAACC,GAAR,CACLF,WAAW,CAACG,OAAZ,GAAsBJ,GAAtB,CAA0B,OAAO,CAACK,SAAD,EAAYC,YAAZ,CAAP,KAAqC;QAC7D,IAAI;UACF,OAAO,MAAMA,YAAY,CAACC,KAAb,CAAmBF,SAAnB,CAAb;QACD,CAFD,CAEE,OAAOG,GAAP,EAAiB;UACjB,MAAM,KAAIC,kCAAJ,EAAyBD,GAAzB,EAA8BH,SAA9B,CAAN;QACD;MACF,CAND,CADK,CAAP;IASD,CAVc,CAAf;IAWA,MAAMH,OAAO,CAACC,GAAR,CAAYJ,MAAZ,CAAN;EACD;;EAEOW,4BAA4B,CAClCC,UADkC,EAElCC,oBAFkC,EAGP;IAC3B,MAAMC,uBAAuB,GAAG,KAAIC,kDAAJ,EAA4BF,oBAA5B,EAAkDD,UAAlD,CAAhC;IACA,OAAOI,yBAAA,CAAaC,EAAb,CAA6BL,UAA7B,EAA0CN,SAAD,IAAe;MAC7D,MAAMY,WAAW,GAAGJ,uBAAuB,CAACK,kBAAxB,CAA2Cb,SAAS,CAACc,EAArD,CAApB;MACA,MAAMC,cAAc,GAAGP,uBAAuB,CAACQ,4BAAxB,CAAqDhB,SAAS,CAACc,EAA/D,CAAvB;MACA,MAAMG,aAAa,GAAGT,uBAAuB,CAACU,2BAAxB,CAAoDlB,SAAS,CAACc,EAA9D,CAAtB;MACA,OAAO;QAAEK,QAAQ,EAAEJ,cAAZ;QAA4BxB,SAAS,EAAE0B,aAAvC;QAAsDL,WAAtD;QAAmEQ,UAAU,EAAE,IAAAC,8BAAA,EAAkB,IAAlB;MAA/E,CAAP;IACD,CALM,CAAP;EAMD;;EAEgB,MAAXC,WAAW,CACfhB,UADe,EAEfiB,OAAkB,GAAG,EAFN,EAGfC,cAAwC,GAAG,EAH5B,EAIQ;IACvB,MAAMC,WAA8B,GAAG,EAAvC;IACA,MAAM;MAAEC,YAAF;MAAgBC,WAAhB;MAA6BC,0BAA7B;MAAyDC;IAAzD,IAAoEN,OAA1E;IACA,MAAMO,oBAAoB,GAAG,MAAM,KAAKC,KAAL,CACjCzB,UADiC;MAE/B0B,YAAY,EAAE;IAFiB,GAERR,cAFQ,GAGjC;MAAES,SAAS,EAAEV,OAAO,CAACU;IAArB,CAHiC,CAAnC;IAKA,IAAIP,YAAY,IAAI,CAACC,WAArB,EAAkCG,oBAAoB,CAACI,kBAArB;IAClC,MAAMC,eAAe,GAAG,CAAC,GAAGL,oBAAoB,CAACxC,YAAzB,CAAxB;IACAmC,WAAW,CAACW,IAAZ,CAAiBN,oBAAjB;;IACA,IAAIH,WAAW,IAAK,CAACC,0BAAD,IAA+B,CAACE,oBAAoB,CAACO,SAArB,EAApD,EAAuF;MACrF,MAAMC,0BAA0B,GAAGT,MAAM,GACrC,MAAM,KAAKU,YAAL,CAAkBjC,UAAlB,EAA8BkB,cAA9B,EAA8CM,oBAAoB,CAACxC,YAAnE,CAD+B,GAErC,MAAM,KAAKkD,WAAL,CAAiBlC,UAAjB,EAA6BkB,cAA7B,EAA6CM,oBAAoB,CAACxC,YAAlE,CAFV;MAGA,IAAIoC,YAAY,IAAI,CAACC,WAArB,EAAkCW,0BAA0B,CAACJ,kBAA3B;MAClCC,eAAe,CAACC,IAAhB,CAAqB,GAAGE,0BAA0B,CAAChD,YAAnD;MACAmC,WAAW,CAACW,IAAZ,CAAiBE,0BAAjB;IACD;;IACD,MAAM,KAAKjD,cAAL,CAAoB8C,eAApB,CAAN;IACA,MAAMM,cAAc,GAAG,KAAKpC,4BAAL,CAAkCC,UAAlC,EAA8C6B,eAA9C,CAAvB;IACA,KAAKO,sBAAL,CAA4BD,cAA5B;IACA,OAAO;MAAEA,cAAF;MAAkBhB;IAAlB,CAAP;EACD;;EAEOiB,sBAAsB,CAACD,cAAD,EAA4C;IACxEA,cAAc,CAACE,OAAf,CAAuB,CAACC,SAAD,EAAyB5C,SAAzB,KAAuC;MAC5D,MAAM6C,iBAAiB,GAAGD,SAAS,CAACzB,QAAV,CAAmBxB,GAAnB,CAAwBF,CAAD,IAC/CqD,4BAAA,CAAgBC,WAAhB,CAA4B;QAAEC,QAAQ,EAAEvD,CAAC,CAACwD,MAAd;QAAsBC,IAAI,EAAEzD,CAAC,CAAC0D;MAA9B,CAA5B,CADwB,CAA1B;MAGA,MAAMC,YAAY,GAAG,IAAAC,2BAAA,EAAiBR,iBAAjB,CAArB;;MACA,IAAIO,YAAY,CAACE,MAAjB,EAAyB;QACvB,MAAM,IAAIC,KAAJ,CACH,uEAAsEvD,SAAS,CAACc,EAAV,CAAa0C,QAAb,EAAwB,qBAAoBJ,YAAY,CAACK,IAAb,CACjH,IADiH,CAEjH,EAHE,CAAN;MAKD;IACF,CAZD;EAaD,CAvFsB,CAyFvB;;;EACkC,MAA5BC,4BAA4B,CAAC1D,SAAD,EAAuB2D,UAAvB,EAAqE;IACrG,MAAMC,gBAAgB,GAAG,KAAKC,uBAAL,CAA6B7D,SAA7B,EAAwC2D,UAAxC,CAAzB;IACA,MAAMG,MAAM,GAAG,MAAMjE,OAAO,CAACC,GAAR,CACnB,CAAC8D,gBAAgB,IAAI,EAArB,EAAyBjE,GAAzB,CAA8BoE,cAAD,IAC3BA,cAAc,CAACC,KAAf,CAAqBC,2BAArB,CAAiDjE,SAAS,CAACc,EAAV,CAAaoD,OAA9D,EAAuE,KAAKnF,KAAL,CAAWoF,WAAlF,CADF,CADmB,CAArB;IAKA,OAAO,IAAAC,iBAAA,EAAQN,MAAR,CAAP;EACD;;EAEwC,MAAnCO,mCAAmC,CACvCrE,SADuC,EAEvC2D,UAFuC,EAGvCT,IAHuC,EAIb;IAC1B,MAAMU,gBAAgB,GAAG,KAAKU,8BAAL,CAAoCtE,SAApC,EAA+C2D,UAA/C,EAA2DT,IAA3D,CAAzB;IACA,MAAMY,MAAM,GAAG,MAAMjE,OAAO,CAACC,GAAR,CACnB,CAAC8D,gBAAgB,IAAI,EAArB,EAAyBjE,GAAzB,CAA8BoE,cAAD,IAC3BA,cAAc,CAACC,KAAf,CAAqBC,2BAArB,CAAiDjE,SAAS,CAACc,EAAV,CAAaoD,OAA9D,EAAuE,KAAKnF,KAAL,CAAWoF,WAAlF,CADF,CADmB,CAArB;IAKA,OAAO,IAAAC,iBAAA,EAAQN,MAAR,CAAP;EACD;;EAE4C,MAAvCS,uCAAuC,CAC3CvE,SAD2C,EAE3C2D,UAF2C,EAG3CR,QAH2C,EAIjB;IAC1B,MAAMS,gBAAgB,GAAG,KAAKY,kCAAL,CAAwCxE,SAAxC,EAAmD2D,UAAnD,EAA+DR,QAA/D,CAAzB;IACA,MAAMW,MAAM,GAAG,MAAMjE,OAAO,CAACC,GAAR,CACnB,CAAC8D,gBAAgB,IAAI,EAArB,EAAyBjE,GAAzB,CAA8BoE,cAAD,IAC3BA,cAAc,CAACC,KAAf,CAAqBC,2BAArB,CAAiDjE,SAAS,CAACc,EAAV,CAAaoD,OAA9D,EAAuE,KAAKnF,KAAL,CAAWoF,WAAlF,CADF,CADmB,CAArB;IAKA,OAAO,IAAAC,iBAAA,EAAQN,MAAR,CAAP;EACD;;EAEDW,kBAAkB,CAACzE,SAAD,EAAuBkD,IAAvB,EAAmE;IACnF,MAAM3D,SAAS,GAAG,KAAKmF,YAAL,CAAkB1E,SAAlB,CAAlB;IACA,OAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAEoF,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAAC1B,IAAT,KAAkBA,IAAlD,CAAP;EACD;;EAEDW,uBAAuB,CAAC7D,SAAD,EAAuB2D,UAAvB,EAAyE;IAC9F,MAAMpE,SAAS,GAAG,KAAKmF,YAAL,CAAkB1E,SAAlB,CAAlB;IACA,OAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAEoF,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,IAAT,CAAc/D,EAAd,KAAqB6C,UAArD,CAAP;EACD;;EAEDW,8BAA8B,CAACtE,SAAD,EAAuB2D,UAAvB,EAA2CT,IAA3C,EAAuF;IACnH,MAAM3D,SAAS,GAAG,KAAKmF,YAAL,CAAkB1E,SAAlB,CAAlB;IACA,OAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAEoF,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,IAAT,CAAc/D,EAAd,KAAqB6C,UAArB,IAAmCiB,QAAQ,CAAC1B,IAAT,KAAkBA,IAArF,CAAP;EACD;;EAEDsB,kCAAkC,CAChCxE,SADgC,EAEhC2D,UAFgC,EAGhCR,QAHgC,EAIF;IAC9B,MAAM5D,SAAS,GAAG,KAAKmF,YAAL,CAAkB1E,SAAlB,CAAlB;IACA,OAAOT,SAAP,aAAOA,SAAP,uBAAOA,SAAS,CAAEoF,MAAX,CAAmBC,QAAD,IAAcA,QAAQ,CAACC,IAAT,CAAc/D,EAAd,KAAqB6C,UAArB,IAAmCiB,QAAQ,CAACC,IAAT,CAAc3B,IAAd,KAAuBC,QAA1F,CAAP;EACD;;EAED2B,eAAe,CAAC9E,SAAD,EAAwB2D,UAAxB,EAAsE;IAAA;;IACnF,MAAM/C,WAAW,2BAAG,KAAKmE,cAAL,CAAoB/E,SAApB,CAAH,yDAAG,qBAAgCY,WAApD;IACA,MAAMoE,IAAI,GAAGpE,WAAH,aAAGA,WAAH,uBAAGA,WAAW,CAAEqE,IAAb,CAAmBC,UAAD,IAAgBA,UAAU,CAAClC,QAAX,KAAwBW,UAA1D,CAAb;IACA,OAAOqB,IAAP,aAAOA,IAAP,uBAAOA,IAAI,CAAEA,IAAb;EACD;;EAEDN,YAAY,CAAC1E,SAAD,EAAqD;IAAA;;IAC/D,gCAAO,KAAK+E,cAAL,CAAoB/E,SAApB,CAAP,0DAAO,sBAAgCT,SAAvC;EACD;;EAEDwF,cAAc,CAAC/E,SAAD,EAAiD;IAAA;;IAC7D,MAAMgF,IAAI,qBAAGhF,SAAS,CAACmF,GAAV,CAAcC,wBAAA,CAActE,EAA5B,CAAH,mDAAG,eAAiCkE,IAA9C;IACA,IAAI,CAACA,IAAL,EAAW,OAAOK,SAAP;IACX,mBAAAL,IAAI,CAACzF,SAAL,oEAAgBoD,OAAhB,CAAyBiC,QAAD,IAAc;MACpC,IAAI,EAAEA,QAAQ,CAACZ,KAAT,YAA0BsB,8BAA5B,CAAJ,EAAgD;QAC9CV,QAAQ,CAACZ,KAAT,GAAiBsB,8BAAA,CAAcC,UAAd,CAAyBX,QAAQ,CAACZ,KAAlC,CAAjB;MACD;IACF,CAJD;IAKA,OAAOgB,IAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;;;EACa,MAALjD,KAAK,CACTzB,UADS,EAETkB,cAFS,EAGTgE,cAHS,EAIiB;IAC1B,MAAMC,GAAG,GAAGnF,UAAU,CAACX,GAAX,CAAgB+F,CAAD,IAAOA,CAAC,CAAC5E,EAAxB,CAAZ;IACA,MAAM6E,OAAO,GAAG,MAAM,KAAK3G,QAAL,CAAc4G,iBAAd,CAAgCH,GAAhC,EAAqCjE,cAArC,EAAqD,KAAKzC,KAAL,CAAWoF,WAAhE,CAAtB;IACA,MAAMzF,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUmH,iBAAV,CAA4BF,OAAO,CAACG,aAAR,CAAsBC,gBAAtB,EAA5B,CAAnB;;IACA,MAAMC,qBAAqB;MACzBC,WAAW,EAAEzE,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAEyE,WADJ;MAEzBC,eAAe,EAAET;IAFQ,GAGrBD,cAAc,IAAI,EAHG,CAA3B;;IAKA,MAAMW,WAAW,GAAG,MAAMzH,IAAI,CAAC0H,OAAL,CAAa,KAAKxH,YAAlB,EAAgCoH,qBAAhC,CAA1B;IACA,OAAOG,WAAP;EACD;;EAEgB,MAAX3D,WAAW,CACflC,UADe,EAEfkB,cAFe,EAGf6E,oBAHe,EAIW;IAC1B,MAAM3H,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUmH,iBAAV,CAA4BvF,UAA5B,CAAnB;IACA,MAAM6F,WAAW,GAAG,MAAMzH,IAAI,CAAC0H,OAAL,CAAa,KAAKvH,UAAlB,EAA8B;MACtDoH,WAAW,EAAEzE,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAEyE,WADyB;MAEtDI;IAFsD,CAA9B,CAA1B;IAKA,OAAOF,WAAP;EACD;;EAEiB,MAAZ5D,YAAY,CAChBjC,UADgB,EAEhBkB,cAFgB,EAGhB6E,oBAHgB,EAIU;IAC1B,MAAM3H,IAAI,GAAG,MAAM,KAAKA,IAAL,CAAUmH,iBAAV,CAA4BvF,UAA5B,CAAnB;IACA,MAAM6F,WAAW,GAAG,MAAMzH,IAAI,CAAC0H,OAAL,CAAa,KAAKtH,WAAlB,EAA+B;MACvDmH,WAAW,EAAEzE,cAAF,aAAEA,cAAF,uBAAEA,cAAc,CAAEyE,WAD0B;MAEvDI;IAFuD,CAA/B,CAA1B;IAKA,OAAOF,WAAP;EACD;;EAEDG,SAAS,CAACtG,SAAD,EAAuB;IAC9B,MAAMuG,OAAO,GAAG,KAAK7H,IAAL,CAAU8H,MAAV,CAAiBxG,SAAjB,CAAhB;IACA,MAAMyG,UAAU,GAAG,KAAK7H,YAAL,CAAkB8H,mBAAlB,CAAsCH,OAAtC,CAAnB;IACA,MAAMI,QAAQ,GAAG,KAAK9H,UAAL,CAAgB6H,mBAAhB,CAAoCH,OAApC,CAAjB;IACA,MAAMK,SAAS,GAAG,KAAK9H,WAAL,CAAiB4H,mBAAjB,CAAqCH,OAArC,CAAlB;IACA,OAAO;MAAEzF,EAAE,EAAEd,SAAS,CAACc,EAAhB;MAAoB+F,KAAK,EAAEN,OAAO,CAACzF,EAAnC;MAAuC2F,UAAvC;MAAmDE,QAAnD;MAA6DC;IAA7D,CAAP;EACD;EAED;AACF;AACA;AACA;;;EACEE,kBAAkB,CAACC,KAAD,EAAqB;IACrC,KAAK7H,aAAL,CAAmB8H,QAAnB,CAA4BD,KAA5B;IACA,OAAO,IAAP;EACD;EAED;AACF;AACA;;;EACEE,mBAAmB,CAACF,KAAD,EAAqB;IACtC,KAAK5H,WAAL,CAAiB6H,QAAjB,CAA0BD,KAA1B;IACA,OAAO,IAAP;EACD;EAED;AACF;AACA;AACA;;;EACEG,gBAAgB,CAACH,KAAD,EAAqB;IACnC,KAAK5H,WAAL,CAAiB6H,QAAjB,CAA0BD,KAA1B;IACA,OAAO,IAAP;EACD;EAED;AACF;AACA;AACA;;;EACEI,iBAAiB,CAACJ,KAAD,EAAqB;IACpC,KAAK3H,YAAL,CAAkB4H,QAAlB,CAA2BD,KAA3B;IACA,OAAO,IAAP;EACD;;EAiBoB,aAARK,QAAQ,CACnB,CAACC,GAAD,EAAM3I,IAAN,EAAYC,SAAZ,EAAuBI,KAAvB,EAA8BC,QAA9B,EAAwCsI,SAAxC,EAAmDrI,YAAnD,EAAiEsI,OAAjE,EAA0EC,SAA1E,CADmB,EAYnBC,MAZmB,EAanB,CAACvI,aAAD,EAAgBC,WAAhB,EAA6BC,YAA7B,CAbmB,EAcnB;IACA,MAAMsI,eAAe,GAAG,KAAIC,kCAAJ,GAAxB;IACA,MAAMC,MAAM,GAAGN,SAAS,CAACO,YAAV,CAAuBzC,wBAAA,CAActE,EAArC,CAAf;IACA,MAAMlC,YAAY,GAAG,KAAIkJ,0BAAJ,EACnB9I,QADmB,EAEnB4I,MAFmB,EAGnB1I,aAHmB,EAInB,cAJmB,EAKnB,OALmB,EAMnBwI,eANmB,EAOnB3I,KAPmB,CAArB;IASAL,IAAI,CAACqJ,eAAL,CAAqBnJ,YAArB;IACA,MAAMC,UAAU,GAAG,KAAIiJ,0BAAJ,EAAmB9I,QAAnB,EAA6B4I,MAA7B,EAAqCzI,WAArC,EAAkD,YAAlD,EAAgE,KAAhE,EAAuEuI,eAAvE,EAAwF3I,KAAxF,CAAnB;IACA,MAAMD,WAAW,GAAG,KAAIgJ,0BAAJ,EAClB9I,QADkB,EAElB4I,MAFkB,EAGlBxI,YAHkB,EAIlB,aAJkB,EAKlB,MALkB,EAMlBsI,eANkB,EAOlB3I,KAPkB,CAApB;IASA,MAAMiJ,OAAO,GAAG,IAAIxJ,WAAJ,CACdE,IADc,EAEdC,SAFc,EAGdC,YAHc,EAIdC,UAJc,EAKdC,WALc,EAMdC,KANc,EAOdC,QAPc,EAQdC,YARc,EASdC,aATc,EAUdC,WAVc,EAWdC,YAXc,CAAhB;IAcAmI,OAAO,CAACP,QAAR,CAAiB,IAAAiB,yBAAA,EAAcD,OAAd,CAAjB;IACAR,SAAS,CAACU,yBAAV,CAAoC,CAACC,+BAAD,CAApC;IACA,MAAMC,IAAI,GAAGJ,OAAO,CAAC1G,WAAR,CAAoB+G,IAApB,CAAyBL,OAAzB,CAAb;IACA,IAAIjJ,KAAJ,EAAWA,KAAK,CAACuJ,KAAN,CAAYF,IAAZ;;IACX,IAAIzJ,SAAJ,EAAe;MACb,MAAM4J,QAAQ,GAAG,CAAC,KAAIC,mBAAJ,EAAeR,OAAf,EAAwBrJ,SAAxB,EAAmCiJ,MAAnC,CAAD,EAA6C,KAAIa,yBAAJ,EAAiBT,OAAjB,EAA0BjJ,KAA1B,CAA7C,CAAjB;MACAsI,GAAG,CAACL,QAAJ,CAAa,GAAGuB,QAAhB;IACD;;IACD,OAAOP,OAAP;EACD;;AAtVsB;;;gCAAZxJ,W,WA2QI,CAACkK,eAAA,CAAKC,QAAL,EAAD,EAA6BD,eAAA,CAAKC,QAAL,EAA7B,EAAyDD,eAAA,CAAKC,QAAL,EAAzD,C;gCA3QJnK,W,aA6QMoK,kB;gCA7QNpK,W,kBA8QW,CACpBqK,gBADoB,EAEpBC,kBAFoB,EAGpBC,4BAHoB,EAIpBC,oBAJoB,EAKpBC,0BALoB,EAMpBC,sBANoB,EAOpBC,kCAPoB,EAQpBC,wBARoB,EASpBC,4BAToB,C;;AA2ExBjE,wBAAA,CAAckE,UAAd,CAAyB9K,WAAzB"}
|
|
1
|
+
{"version":3,"names":["FILE_PATH_PARAM_DELIM","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","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","getArtifactsDataOfComponent","pipeline","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","undefined","byAspectNameAndTaskName","getDataByAspect","getBuilderData","data","find","aspectData","ArtifactList","fromArray","get","BuilderAspect","clonedData","cloneDeep","artifactFiles","artifact","files","ArtifactFiles","fromObject","Artifact","Object","assign","fromArtifactObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","originalSeeders","buildResult","runOnce","previousTasksResults","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\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 { 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 { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\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 { Serializable } 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 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 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<FsArtifact>>) => {\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<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: getHarmonyVersion(true) };\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 this.validateBuilderDataMap(builderDataMap);\n return { builderDataMap, pipeResults };\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 // 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._legacy, 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._legacy, 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._legacy, 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: Component, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n getDataByAspect(component: IComponent, 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): 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 clonedData.artifacts?.forEach((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 Object.assign(artifact, { files: artifactFiles });\n Object.assign(artifact, Artifact.fromArtifactObject(artifact));\n }\n });\n clonedData.artifacts = ArtifactList.fromArray(clonedData.artifacts || []);\n return clonedData;\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, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\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 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 ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain\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 component,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\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) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="express" />
|
|
2
|
+
import { Request, Response, Route } from '@teambit/express';
|
|
3
|
+
import { Logger } from '@teambit/logger';
|
|
4
|
+
import { ScopeMain } from '@teambit/scope';
|
|
5
|
+
import { BuilderMain } from './builder.main.runtime';
|
|
6
|
+
export declare const routePath = "builder";
|
|
7
|
+
export declare type BuilderUrlParams = {
|
|
8
|
+
aspectId?: string;
|
|
9
|
+
filePath?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const defaultExtension = ".tgz";
|
|
12
|
+
export declare class BuilderRoute implements Route {
|
|
13
|
+
private builder;
|
|
14
|
+
private scope;
|
|
15
|
+
private logger;
|
|
16
|
+
constructor(builder: BuilderMain, scope: ScopeMain, logger: Logger);
|
|
17
|
+
route: string;
|
|
18
|
+
method: string;
|
|
19
|
+
middlewares: ((req: Request<BuilderUrlParams>, res: Response) => Promise<import("express").Response<any, Record<string, any>>>)[];
|
|
20
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.array.iterator.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.promise.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.string.replace.js");
|
|
12
|
+
|
|
13
|
+
Object.defineProperty(exports, "__esModule", {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
exports.routePath = exports.defaultExtension = exports.BuilderRoute = void 0;
|
|
17
|
+
|
|
18
|
+
function _defineProperty2() {
|
|
19
|
+
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
|
+
|
|
21
|
+
_defineProperty2 = function () {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _archiver() {
|
|
29
|
+
const data = _interopRequireDefault(require("archiver"));
|
|
30
|
+
|
|
31
|
+
_archiver = function () {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _mime() {
|
|
39
|
+
const data = _interopRequireDefault(require("mime"));
|
|
40
|
+
|
|
41
|
+
_mime = function () {
|
|
42
|
+
return data;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const routePath = `builder`;
|
|
49
|
+
exports.routePath = routePath;
|
|
50
|
+
const defaultExtension = '.tgz';
|
|
51
|
+
exports.defaultExtension = defaultExtension;
|
|
52
|
+
|
|
53
|
+
class BuilderRoute {
|
|
54
|
+
constructor(builder, scope, logger) {
|
|
55
|
+
this.builder = builder;
|
|
56
|
+
this.scope = scope;
|
|
57
|
+
this.logger = logger;
|
|
58
|
+
(0, _defineProperty2().default)(this, "route", `/${routePath}/*`);
|
|
59
|
+
(0, _defineProperty2().default)(this, "method", 'get');
|
|
60
|
+
(0, _defineProperty2().default)(this, "middlewares", [async (req, res) => {
|
|
61
|
+
// @ts-ignore TODO: @guy please fix.
|
|
62
|
+
const component = req.component;
|
|
63
|
+
const {
|
|
64
|
+
params
|
|
65
|
+
} = req;
|
|
66
|
+
const [aspectIdStr, filePath] = params[1].split('~'); // remove trailing slash
|
|
67
|
+
|
|
68
|
+
const aspectId = aspectIdStr.replace(/\/$/, '');
|
|
69
|
+
const artifacts = aspectId ? this.builder.getArtifactsByAspect(component, aspectId) : this.builder.getArtifacts(component);
|
|
70
|
+
if (!artifacts) return res.status(404).jsonp({
|
|
71
|
+
error: `no artifacts found for component ${component.id} by aspect ${aspectId}`
|
|
72
|
+
});
|
|
73
|
+
const extensionsWithArtifacts = await Promise.all(artifacts.map(async artifact => {
|
|
74
|
+
const files = await artifact.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);
|
|
75
|
+
if (!filePath) return {
|
|
76
|
+
extensionId: artifact.task.aspectId,
|
|
77
|
+
files
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
extensionId: artifact.task.aspectId,
|
|
81
|
+
files: files.filter(file => file.path === filePath)
|
|
82
|
+
};
|
|
83
|
+
}));
|
|
84
|
+
const artifactFilesCount = extensionsWithArtifacts.reduce((accum, next) => accum + next.files.length, 0);
|
|
85
|
+
if (artifactFilesCount === 0) return res.status(404).jsonp({
|
|
86
|
+
error: `no artifacts found for component ${component.id} by aspect ${aspectId}`
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
if (artifactFilesCount === 1) {
|
|
90
|
+
const extensionWithArtifact = extensionsWithArtifacts.find(e => e.files.length > 0);
|
|
91
|
+
const fileName = `${extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.extensionId}_${extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.files[0].path}`;
|
|
92
|
+
const fileContent = extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.files[0].contents;
|
|
93
|
+
const fileExt = (extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.files[0].extname) || defaultExtension;
|
|
94
|
+
|
|
95
|
+
const contentType = _mime().default.getType(fileExt);
|
|
96
|
+
|
|
97
|
+
res.set('Content-disposition', `attachment; filename=${fileName}`);
|
|
98
|
+
if (contentType) res.set('Content-Type', contentType);
|
|
99
|
+
return res.send(fileContent);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* if more than 1 file requested, zip them before sending
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
const archive = (0, _archiver().default)('tar', {
|
|
107
|
+
gzip: true
|
|
108
|
+
});
|
|
109
|
+
archive.on('warning', warn => {
|
|
110
|
+
this.logger.warn(warn.message);
|
|
111
|
+
});
|
|
112
|
+
archive.on('error', err => {
|
|
113
|
+
this.logger.error(err.message);
|
|
114
|
+
});
|
|
115
|
+
extensionsWithArtifacts.forEach(extensionWithArtifacts => {
|
|
116
|
+
extensionWithArtifacts.files.forEach(artifact => {
|
|
117
|
+
archive.append(artifact.contents, {
|
|
118
|
+
name: `${extensionWithArtifacts.extensionId}_${artifact.path}`
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
try {
|
|
124
|
+
archive.pipe(res);
|
|
125
|
+
/**
|
|
126
|
+
* promise that is returned from the await zip.finalize(); is resolved before the archive is actually finalized
|
|
127
|
+
* resolving it results in setting the headers before the stream is finished
|
|
128
|
+
*/
|
|
129
|
+
// eslint-disable-next-line no-void
|
|
130
|
+
|
|
131
|
+
void archive.finalize();
|
|
132
|
+
return res.attachment(`${aspectId.replace('/', '_')}.tar`);
|
|
133
|
+
} catch (e) {
|
|
134
|
+
return res.send({
|
|
135
|
+
error: e.toString()
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}]);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
exports.BuilderRoute = BuilderRoute;
|
|
144
|
+
|
|
145
|
+
//# sourceMappingURL=builder.route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["routePath","defaultExtension","BuilderRoute","constructor","builder","scope","logger","req","res","component","params","aspectIdStr","filePath","split","aspectId","replace","artifacts","getArtifactsByAspect","getArtifacts","status","jsonp","error","id","extensionsWithArtifacts","Promise","all","map","artifact","files","getVinylsAndImportIfMissing","_legacy","legacyScope","extensionId","task","filter","file","path","artifactFilesCount","reduce","accum","next","length","extensionWithArtifact","find","e","fileName","fileContent","contents","fileExt","extname","contentType","mime","getType","set","send","archive","archiver","gzip","on","warn","message","err","forEach","extensionWithArtifacts","append","name","pipe","finalize","attachment","toString"],"sources":["builder.route.ts"],"sourcesContent":["import { Request, Response, Route } from '@teambit/express';\nimport { Component } from '@teambit/component';\nimport archiver from 'archiver';\nimport { Logger } from '@teambit/logger';\nimport { ScopeMain } from '@teambit/scope';\nimport mime from 'mime';\nimport { BuilderMain } from './builder.main.runtime';\n\nexport const routePath = `builder`;\n\nexport type BuilderUrlParams = {\n aspectId?: string;\n filePath?: string;\n};\nexport const defaultExtension = '.tgz';\nexport class BuilderRoute implements Route {\n constructor(private builder: BuilderMain, private scope: ScopeMain, private logger: Logger) {}\n route = `/${routePath}/*`;\n method = 'get';\n\n middlewares = [\n async (req: Request<BuilderUrlParams>, res: Response) => {\n // @ts-ignore TODO: @guy please fix.\n const component = req.component as Component;\n const { params } = req;\n const [aspectIdStr, filePath] = params[1].split('~');\n // remove trailing slash\n const aspectId = aspectIdStr.replace(/\\/$/, '');\n const artifacts = aspectId\n ? this.builder.getArtifactsByAspect(component, aspectId)\n : this.builder.getArtifacts(component);\n if (!artifacts)\n return res\n .status(404)\n .jsonp({ error: `no artifacts found for component ${component.id} by aspect ${aspectId}` });\n const extensionsWithArtifacts = await Promise.all(\n artifacts.map(async (artifact) => {\n const files = await artifact.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n if (!filePath) return { extensionId: artifact.task.aspectId, files };\n return { extensionId: artifact.task.aspectId, files: files.filter((file) => file.path === filePath) };\n })\n );\n\n const artifactFilesCount = extensionsWithArtifacts.reduce((accum, next) => accum + next.files.length, 0);\n\n if (artifactFilesCount === 0)\n return res\n .status(404)\n .jsonp({ error: `no artifacts found for component ${component.id} by aspect ${aspectId}` });\n\n if (artifactFilesCount === 1) {\n const extensionWithArtifact = extensionsWithArtifacts.find((e) => e.files.length > 0);\n const fileName = `${extensionWithArtifact?.extensionId}_${extensionWithArtifact?.files[0].path}`;\n const fileContent = extensionWithArtifact?.files[0].contents;\n const fileExt = extensionWithArtifact?.files[0].extname || defaultExtension;\n const contentType = mime.getType(fileExt);\n res.set('Content-disposition', `attachment; filename=${fileName}`);\n if (contentType) res.set('Content-Type', contentType);\n return res.send(fileContent);\n }\n\n /**\n * if more than 1 file requested, zip them before sending\n */\n const archive = archiver('tar', { gzip: true });\n\n archive.on('warning', (warn) => {\n this.logger.warn(warn.message);\n });\n\n archive.on('error', (err) => {\n this.logger.error(err.message);\n });\n\n extensionsWithArtifacts.forEach((extensionWithArtifacts) => {\n extensionWithArtifacts.files.forEach((artifact) => {\n archive.append(artifact.contents, { name: `${extensionWithArtifacts.extensionId}_${artifact.path}` });\n });\n });\n\n try {\n archive.pipe(res);\n /**\n * promise that is returned from the await zip.finalize(); is resolved before the archive is actually finalized\n * resolving it results in setting the headers before the stream is finished\n */\n // eslint-disable-next-line no-void\n void archive.finalize();\n return res.attachment(`${aspectId.replace('/', '_')}.tar`);\n } catch (e: any) {\n return res.send({ error: e.toString() });\n }\n },\n ];\n}\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BuildPipe, TaskResults } from './build-pipe';
|
|
2
2
|
export { ComponentResult, TaskMetadata } from './types';
|
|
3
3
|
export { BuildContext, BuildTask, BuiltTaskResult, TaskLocation, BuildTaskHelper, CAPSULE_ARTIFACTS_DIR, } from './build-task';
|
|
4
|
-
export type { BuilderMain, BuilderData } from './builder.main.runtime';
|
|
4
|
+
export type { BuilderMain, RawBuilderData, BuilderData } from './builder.main.runtime';
|
|
5
5
|
export type { PipelineReport } from './build-pipeline-result-list';
|
|
6
6
|
export { BuilderAspect } from './builder.aspect';
|
|
7
7
|
export { WholeArtifactStorageResolver, FileStorageResolver, ArtifactStorageResolver } from './storage';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { BuildPipe, TaskResults } from './build-pipe';\nexport { ComponentResult, TaskMetadata } from './types';\nexport {\n BuildContext,\n BuildTask,\n BuiltTaskResult,\n TaskLocation,\n BuildTaskHelper,\n CAPSULE_ARTIFACTS_DIR,\n} 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAUA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { BuildPipe, TaskResults } from './build-pipe';\nexport { ComponentResult, TaskMetadata } from './types';\nexport {\n BuildContext,\n BuildTask,\n BuiltTaskResult,\n TaskLocation,\n BuildTaskHelper,\n CAPSULE_ARTIFACTS_DIR,\n} from './build-task';\nexport type { BuilderMain, RawBuilderData, 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAUA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component } from '@teambit/component';
|
|
2
|
+
import { FsArtifact } from '../artifact';
|
|
2
3
|
import { WholeArtifactStorageResolver } from './storage-resolver';
|
|
3
|
-
import type { Artifact } from '../artifact';
|
|
4
4
|
export declare class DefaultResolver implements WholeArtifactStorageResolver {
|
|
5
5
|
name: string;
|
|
6
|
-
store(component: Component, artifact:
|
|
6
|
+
store(component: Component, artifact: FsArtifact): Promise<void>;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultResolver","store","component","artifact","files","populateVinylsFromPaths","rootDir"],"sources":["default-resolver.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport {
|
|
1
|
+
{"version":3,"names":["DefaultResolver","store","component","artifact","files","populateVinylsFromPaths","rootDir"],"sources":["default-resolver.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { FsArtifact } from '../artifact';\nimport { WholeArtifactStorageResolver } from './storage-resolver';\n\nexport class DefaultResolver implements WholeArtifactStorageResolver {\n name = 'default';\n\n async store(component: Component, artifact: FsArtifact) {\n artifact.files.populateVinylsFromPaths(artifact.rootDir);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,eAAN,CAA8D;EAAA;IAAA,8CAC5D,SAD4D;EAAA;;EAGxD,MAALC,KAAK,CAACC,SAAD,EAAuBC,QAAvB,EAA6C;IACtDA,QAAQ,CAACC,KAAT,CAAeC,uBAAf,CAAuCF,QAAQ,CAACG,OAAhD;EACD;;AALkE"}
|