@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.
Files changed (50) hide show
  1. package/artifact/artifact-extractor.ts +31 -30
  2. package/artifact/artifact-factory.ts +10 -17
  3. package/artifact/artifact-list.ts +61 -19
  4. package/artifact/artifact.ts +27 -18
  5. package/artifact/fs-artifact.ts +21 -0
  6. package/artifact/index.ts +1 -0
  7. package/dist/artifact/artifact-extractor.js +43 -26
  8. package/dist/artifact/artifact-extractor.js.map +1 -1
  9. package/dist/artifact/artifact-factory.d.ts +4 -4
  10. package/dist/artifact/artifact-factory.js +9 -10
  11. package/dist/artifact/artifact-factory.js.map +1 -1
  12. package/dist/artifact/artifact-list.d.ts +15 -12
  13. package/dist/artifact/artifact-list.js +68 -13
  14. package/dist/artifact/artifact-list.js.map +1 -1
  15. package/dist/artifact/artifact.d.ts +8 -26
  16. package/dist/artifact/artifact.js +33 -14
  17. package/dist/artifact/artifact.js.map +1 -1
  18. package/dist/artifact/fs-artifact.d.ts +18 -0
  19. package/dist/artifact/fs-artifact.js +35 -0
  20. package/dist/artifact/fs-artifact.js.map +1 -0
  21. package/dist/artifact/index.d.ts +1 -0
  22. package/dist/artifact/index.js +16 -0
  23. package/dist/artifact/index.js.map +1 -1
  24. package/dist/build-pipe.d.ts +2 -2
  25. package/dist/build-pipe.js.map +1 -1
  26. package/dist/build-pipeline-result-list.js +2 -2
  27. package/dist/build-pipeline-result-list.js.map +1 -1
  28. package/dist/build-task.d.ts +5 -0
  29. package/dist/build-task.js.map +1 -1
  30. package/dist/builder.graphql.d.ts +80 -4
  31. package/dist/builder.graphql.js +122 -16
  32. package/dist/builder.graphql.js.map +1 -1
  33. package/dist/builder.main.runtime.d.ts +30 -16
  34. package/dist/builder.main.runtime.js +88 -41
  35. package/dist/builder.main.runtime.js.map +1 -1
  36. package/dist/builder.route.d.ts +20 -0
  37. package/dist/builder.route.js +145 -0
  38. package/dist/builder.route.js.map +1 -0
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/storage/default-resolver.d.ts +2 -2
  42. package/dist/storage/default-resolver.js.map +1 -1
  43. package/dist/storage/storage-resolver.d.ts +3 -3
  44. package/dist/storage/storage-resolver.js.map +1 -1
  45. package/package-tar/teambit-builder-0.0.818.tgz +0 -0
  46. package/package.json +20 -14
  47. package/{preview-1660361218837.js → preview-1660620618310.js} +2 -2
  48. package/storage/default-resolver.ts +2 -2
  49. package/storage/storage-resolver.ts +3 -3
  50. 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 _artifactFiles() {
159
- const data = require("@teambit/legacy/dist/consumer/component/sources/artifact-files");
168
+ function _generator() {
169
+ const data = require("@teambit/generator");
160
170
 
161
- _artifactFiles = function () {
171
+ _generator = function () {
162
172
  return data;
163
173
  };
164
174
 
165
175
  return data;
166
176
  }
167
177
 
168
- function _generator() {
169
- const data = require("@teambit/generator");
178
+ function _artifact() {
179
+ const data = require("./artifact");
170
180
 
171
- _generator = function () {
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 artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);
344
+ const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);
317
345
  return {
318
346
  pipeline: pipelineReport,
319
- artifacts: artifactsData,
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 getArtifactsVinylByExtension(component, aspectName) {
375
- const artifactsObjects = this.getArtifactsByExtension(component, aspectName);
376
- const vinyls = await Promise.all((artifactsObjects || []).map(artifactObject => artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)));
377
- return (0, _lodash().flatten)(vinyls);
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 getArtifactsVinylByExtensionAndName(component, aspectName, name) {
381
- const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);
382
- const vinyls = await Promise.all((artifactsObjects || []).map(artifactObject => artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)));
383
- return (0, _lodash().flatten)(vinyls);
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 getArtifactsVinylByExtensionAndTaskName(component, aspectName, taskName) {
387
- const artifactsObjects = this.getArtifactsByExtensionAndTaskName(component, aspectName, taskName);
388
- const vinyls = await Promise.all((artifactsObjects || []).map(artifactObject => artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)));
389
- return (0, _lodash().flatten)(vinyls);
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 === null || artifacts === void 0 ? void 0 : artifacts.filter(artifact => artifact.name === name);
421
+ const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);
422
+ return artifacts;
395
423
  }
396
424
 
397
- getArtifactsByExtension(component, aspectName) {
398
- const artifacts = this.getArtifacts(component);
399
- return artifacts === null || artifacts === void 0 ? void 0 : artifacts.filter(artifact => artifact.task.id === aspectName);
425
+ getArtifactsByAspect(component, aspectName) {
426
+ const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);
427
+ return artifacts;
400
428
  }
401
429
 
402
- getArtifactsByExtensionAndName(component, aspectName, name) {
403
- const artifacts = this.getArtifacts(component);
404
- return artifacts === null || artifacts === void 0 ? void 0 : artifacts.filter(artifact => artifact.task.id === aspectName && artifact.name === name);
430
+ getArtifactsByAspectAndName(component, aspectName, name) {
431
+ const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);
432
+ return artifacts;
405
433
  }
406
434
 
407
- getArtifactsByExtensionAndTaskName(component, aspectName, taskName) {
408
- const artifacts = this.getArtifacts(component);
409
- return artifacts === null || artifacts === void 0 ? void 0 : artifacts.filter(artifact => artifact.task.id === aspectName && artifact.task.name === taskName);
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
- return (_this$getBuilderData2 = this.getBuilderData(component)) === null || _this$getBuilderData2 === void 0 ? void 0 : _this$getBuilderData2.artifacts;
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, _data$artifacts;
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
- (_data$artifacts = data.artifacts) === null || _data$artifacts === void 0 ? void 0 : _data$artifacts.forEach(artifact => {
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
- artifact.files = _artifactFiles().ArtifactFiles.fromObject(artifact.files);
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
- return data;
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
- static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator], config, [buildTaskSlot, tagTaskSlot, snapTaskSlot]) {
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":"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"}
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: Artifact): Promise<void>;
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 { WholeArtifactStorageResolver } from './storage-resolver';\nimport type { Artifact } from '../artifact';\n\nexport class DefaultResolver implements WholeArtifactStorageResolver {\n name = 'default';\n\n async store(component: Component, artifact: Artifact) {\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,EAA2C;IACpDA,QAAQ,CAACC,KAAT,CAAeC,uBAAf,CAAuCF,QAAQ,CAACG,OAAhD;EACD;;AALkE"}
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"}