@teambit/builder 1.0.107 → 1.0.108

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 (55) hide show
  1. package/build-pipe.ts +216 -0
  2. package/build-pipeline-order.ts +192 -0
  3. package/build-pipeline-result-list.ts +97 -0
  4. package/build-task.ts +151 -0
  5. package/build.cmd.ts +157 -0
  6. package/builder-env-type.ts +16 -0
  7. package/builder.aspect.ts +5 -0
  8. package/builder.graphql.ts +185 -0
  9. package/builder.main.runtime.ts +493 -0
  10. package/builder.route.ts +95 -0
  11. package/dist/artifact/artifact-definition.d.ts +2 -2
  12. package/dist/artifact/artifact-extractor.d.ts +3 -3
  13. package/dist/artifact/artifact-factory.d.ts +1 -1
  14. package/dist/artifact/artifact-factory.js +1 -2
  15. package/dist/artifact/artifact-factory.js.map +1 -1
  16. package/dist/artifact/artifact-list.d.ts +1 -1
  17. package/dist/artifact/artifact.d.ts +1 -1
  18. package/dist/artifact/artifacts.cmd.d.ts +1 -1
  19. package/dist/build-pipe.d.ts +3 -3
  20. package/dist/build-pipe.js +5 -12
  21. package/dist/build-pipe.js.map +1 -1
  22. package/dist/build-pipeline-result-list.d.ts +2 -2
  23. package/dist/build-pipeline-result-list.js +1 -2
  24. package/dist/build-pipeline-result-list.js.map +1 -1
  25. package/dist/build-task.d.ts +1 -1
  26. package/dist/build.cmd.d.ts +1 -1
  27. package/dist/builder.composition.d.ts +2 -2
  28. package/dist/builder.graphql.d.ts +17 -17
  29. package/dist/builder.graphql.js +4 -8
  30. package/dist/builder.graphql.js.map +1 -1
  31. package/dist/builder.main.runtime.d.ts +5 -5
  32. package/dist/builder.main.runtime.js +11 -14
  33. package/dist/builder.main.runtime.js.map +1 -1
  34. package/dist/builder.route.d.ts +1 -1
  35. package/dist/builder.route.js +3 -3
  36. package/dist/builder.route.js.map +1 -1
  37. package/dist/builder.service.d.ts +9 -9
  38. package/dist/builder.service.js +4 -4
  39. package/dist/builder.service.js.map +1 -1
  40. package/dist/pipeline.d.ts +1 -1
  41. package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
  42. package/dist/storage/storage-resolver.d.ts +2 -2
  43. package/dist/task-results-list.js +2 -8
  44. package/dist/task-results-list.js.map +1 -1
  45. package/dist/tasks-queue.d.ts +1 -1
  46. package/dist/types.d.ts +2 -2
  47. package/index.ts +20 -0
  48. package/package.json +26 -33
  49. package/pipeline.ts +104 -0
  50. package/task-results-list.ts +68 -0
  51. package/task.ts +50 -0
  52. package/tasks-queue.ts +40 -0
  53. package/tsconfig.json +16 -21
  54. package/types/asset.d.ts +15 -3
  55. package/types.ts +37 -0
@@ -294,10 +294,10 @@ class BuilderMain {
294
294
  if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();
295
295
  allTasksResults.push(...buildEnvsExecutionResults.tasksResults);
296
296
  pipeResults.push(buildEnvsExecutionResults);
297
- if (forceDeploy || !disableTagAndSnapPipelines && !(buildEnvsExecutionResults !== null && buildEnvsExecutionResults !== void 0 && buildEnvsExecutionResults.hasErrors())) {
297
+ if (forceDeploy || !disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors()) {
298
298
  const builderOptionsForTagSnap = _objectSpread(_objectSpread({}, builderOptions), {}, {
299
299
  seedersOnly: isolateOptions.seedersOnly,
300
- previousTasksResults: buildEnvsExecutionResults === null || buildEnvsExecutionResults === void 0 ? void 0 : buildEnvsExecutionResults.tasksResults
300
+ previousTasksResults: buildEnvsExecutionResults?.tasksResults
301
301
  });
302
302
  const deployEnvsExecutionResults = isSnap ? await this.runSnapTasks(components, builderOptionsForTagSnap) : await this.runTagTasks(components, builderOptionsForTagSnap);
303
303
  if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();
@@ -397,23 +397,20 @@ class BuilderMain {
397
397
  * (not to be confused with the data saved in the aspect itself, which is saved in the "data" property of the aspect).
398
398
  */
399
399
  getDataByAspect(component, aspectName) {
400
- var _this$getBuilderData;
401
- const aspectsData = (_this$getBuilderData = this.getBuilderData(component)) === null || _this$getBuilderData === void 0 ? void 0 : _this$getBuilderData.aspectsData;
402
- const data = aspectsData === null || aspectsData === void 0 ? void 0 : aspectsData.find(aspectData => aspectData.aspectId === aspectName);
403
- return data === null || data === void 0 ? void 0 : data.data;
400
+ const aspectsData = this.getBuilderData(component)?.aspectsData;
401
+ const data = aspectsData?.find(aspectData => aspectData.aspectId === aspectName);
402
+ return data?.data;
404
403
  }
405
404
  getArtifacts(component) {
406
- var _this$getBuilderData2;
407
- const artifacts = ((_this$getBuilderData2 = this.getBuilderData(component)) === null || _this$getBuilderData2 === void 0 ? void 0 : _this$getBuilderData2.artifacts) || _artifact().ArtifactList.fromArray([]);
405
+ const artifacts = this.getBuilderData(component)?.artifacts || _artifact().ArtifactList.fromArray([]);
408
406
  return artifacts;
409
407
  }
410
408
  getBuilderData(component) {
411
- var _component$get, _clonedData$artifacts;
412
- const data = (_component$get = component.get(_builder().BuilderAspect.id)) === null || _component$get === void 0 ? void 0 : _component$get.data;
409
+ const data = component.get(_builder().BuilderAspect.id)?.data;
413
410
  if (!data) return undefined;
414
411
  const clonedData = (0, _lodash().cloneDeep)(data);
415
412
  let artifactFiles;
416
- const artifacts = (_clonedData$artifacts = clonedData.artifacts) === null || _clonedData$artifacts === void 0 ? void 0 : _clonedData$artifacts.map(artifact => {
413
+ const artifacts = clonedData.artifacts?.map(artifact => {
417
414
  if (!(artifact.files instanceof _artifactFiles().ArtifactFiles)) {
418
415
  artifactFiles = _artifactFiles().ArtifactFiles.fromObject(artifact.files);
419
416
  } else {
@@ -441,17 +438,17 @@ class BuilderMain {
441
438
  const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);
442
439
  const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());
443
440
  const builderServiceOptions = _objectSpread({
444
- seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
441
+ seedersOnly: isolateOptions?.seedersOnly,
445
442
  originalSeeders: ids,
446
443
  capsulesBaseDir
447
444
  }, builderOptions || {});
448
445
  this.logger.consoleTitle(`Total ${components.length} components to build`);
449
446
  const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);
450
- if (extraOptions !== null && extraOptions !== void 0 && extraOptions.includeSnap || extraOptions !== null && extraOptions !== void 0 && extraOptions.includeTag) {
447
+ if (extraOptions?.includeSnap || extraOptions?.includeTag) {
451
448
  const builderOptionsForTagSnap = _objectSpread(_objectSpread({}, builderServiceOptions), {}, {
452
449
  previousTasksResults: buildResult.tasksResults
453
450
  });
454
- const deployEnvsExecutionResults = extraOptions !== null && extraOptions !== void 0 && extraOptions.includeSnap ? await this.runSnapTasks(components, builderOptionsForTagSnap) : await this.runTagTasks(components, builderOptionsForTagSnap);
451
+ const deployEnvsExecutionResults = extraOptions?.includeSnap ? await this.runSnapTasks(components, builderOptionsForTagSnap) : await this.runTagTasks(components, builderOptionsForTagSnap);
455
452
  buildResult.tasksResults.push(...deployEnvsExecutionResults.tasksResults);
456
453
  }
457
454
  return buildResult;
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_artifactFiles","_aspectLoader","_cli","_component","_envs","_graphql","_harmony","_globalConfig","_interopRequireDefault","_logger","_aspect","_scope","_workspace","_isolator","_bootstrap","_findDuplications","_generator","_ui","_artifact","_artifactFactory","_builder","_builder2","_builder3","_build","_buildTask","_exceptions","_buildPipelineResultList","_artifacts","_buildTask2","_builder4","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","FILE_PATH_PARAM_DELIM","exports","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","buildTaskSlot","tagTaskSlot","snapTaskSlot","logger","storeArtifacts","tasksResults","artifacts","flatMap","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","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","populateArtifactsFrom","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFrom","validateBuilderDataMap","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","Error","toString","join","promises","builderData","populateFrom","find","isEqual","ignoreVersion","idStr","populateFromComp","getHost","get","version","populateFromBuilderData","getBuilderData","artifact","artifactObj","toObject","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","_this$getBuilderData","_this$getBuilderData2","ArtifactList","fromArray","_component$get","_clonedData$artifacts","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","assign","fromArtifactObject","extraOptions","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","consoleTitle","buildResult","runOnce","includeSnap","includeTag","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","GlobalConfigAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } 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 GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport AspectAspect from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { TaskMetadata } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n populateArtifactsFrom?: ComponentID[]; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private globalConfig: GlobalConfigMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot,\n private logger: Logger\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n 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 builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, populateArtifactsFrom } = options;\n if (populateArtifactsFrom) isolateOptions.populateArtifactsFrom = populateArtifactsFrom;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: populateArtifactsFrom ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (populateArtifactsFrom) await this.combineBuildDataFrom(builderDataMap, populateArtifactsFrom);\n this.validateBuilderDataMap(builderDataMap);\n\n 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 private async combineBuildDataFrom(\n builderDataMap: ComponentMap<RawBuilderData>,\n populateArtifactsFrom: ComponentID[]\n ) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const populateFrom = populateArtifactsFrom.find((id) => id.isEqual(component.id, { ignoreVersion: true }));\n const idStr = component.id.toString();\n if (!populateFrom) {\n throw new Error(`combineBuildDataFromParent: unable to find where to populate the artifacts from for ${idStr}`);\n }\n const populateFromComp = await this.componentAspect.getHost().get(populateFrom);\n if (!populateFromComp)\n throw new Error(\n `combineBuildDataFromParent, unable to load parent component of ${idStr}. hash: ${populateFrom.version}`\n );\n const populateFromBuilderData = this.getBuilderData(populateFromComp);\n if (!populateFromBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n populateFromBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find((a) => a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name)\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n populateFromBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n populateFromBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n /**\n * this is the aspect's data that was generated as \"metadata\" of the task component-result during the build process\n * and saved by the builder aspect in the \"aspectsData\" property.\n * (not to be confused with the data saved in the aspect itself, which is saved in the \"data\" property of the aspect).\n */\n getDataByAspect(component: IComponent, aspectName: string): TaskMetadata | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions,\n extraOptions?: { includeTag?: boolean; includeSnap?: boolean }\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\n ...(builderOptions || {}),\n };\n this.logger.consoleTitle(`Total ${components.length} components to build`);\n const buildResult: TaskResultsList = await envs.runOnce(this.buildService, builderServiceOptions);\n\n if (extraOptions?.includeSnap || extraOptions?.includeTag) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderServiceOptions,\n previousTasksResults: buildResult.tasksResults,\n };\n const deployEnvsExecutionResults = extraOptions?.includeSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n buildResult.tasksResults.push(...deployEnvsExecutionResults.tasksResults);\n }\n\n return buildResult;\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n GlobalConfigAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope,\n globalConfig\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(\n isolator,\n logger,\n tagTaskSlot,\n 'getTagPipe',\n 'tag',\n artifactFactory,\n scope,\n globalConfig\n );\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope,\n globalConfig\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n globalConfig,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot,\n logger\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","data","require","_artifactFiles","_aspectLoader","_cli","_component","_envs","_graphql","_harmony","_globalConfig","_interopRequireDefault","_logger","_aspect","_scope","_workspace","_isolator","_bootstrap","_findDuplications","_generator","_ui","_artifact","_artifactFactory","_builder","_builder2","_builder3","_build","_buildTask","_exceptions","_buildPipelineResultList","_artifacts","_buildTask2","_builder4","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","FILE_PATH_PARAM_DELIM","exports","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","buildTaskSlot","tagTaskSlot","snapTaskSlot","logger","storeArtifacts","tasksResults","artifacts","flatMap","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","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","populateArtifactsFrom","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFrom","validateBuilderDataMap","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","Error","toString","join","promises","builderData","populateFrom","find","isEqual","ignoreVersion","idStr","populateFromComp","getHost","get","version","populateFromBuilderData","getBuilderData","artifact","artifactObj","toObject","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","assign","fromArtifactObject","extraOptions","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","consoleTitle","buildResult","runOnce","includeSnap","includeTag","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","GlobalConfigAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } 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 GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport AspectAspect from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { TaskMetadata } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n populateArtifactsFrom?: ComponentID[]; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private globalConfig: GlobalConfigMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot,\n private logger: Logger\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n 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 builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, populateArtifactsFrom } = options;\n if (populateArtifactsFrom) isolateOptions.populateArtifactsFrom = populateArtifactsFrom;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: populateArtifactsFrom ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (populateArtifactsFrom) await this.combineBuildDataFrom(builderDataMap, populateArtifactsFrom);\n this.validateBuilderDataMap(builderDataMap);\n\n 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 private async combineBuildDataFrom(\n builderDataMap: ComponentMap<RawBuilderData>,\n populateArtifactsFrom: ComponentID[]\n ) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const populateFrom = populateArtifactsFrom.find((id) => id.isEqual(component.id, { ignoreVersion: true }));\n const idStr = component.id.toString();\n if (!populateFrom) {\n throw new Error(`combineBuildDataFromParent: unable to find where to populate the artifacts from for ${idStr}`);\n }\n const populateFromComp = await this.componentAspect.getHost().get(populateFrom);\n if (!populateFromComp)\n throw new Error(\n `combineBuildDataFromParent, unable to load parent component of ${idStr}. hash: ${populateFrom.version}`\n );\n const populateFromBuilderData = this.getBuilderData(populateFromComp);\n if (!populateFromBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n populateFromBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find((a) => a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name)\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n populateFromBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n populateFromBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n /**\n * this is the aspect's data that was generated as \"metadata\" of the task component-result during the build process\n * and saved by the builder aspect in the \"aspectsData\" property.\n * (not to be confused with the data saved in the aspect itself, which is saved in the \"data\" property of the aspect).\n */\n getDataByAspect(component: IComponent, aspectName: string): TaskMetadata | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions,\n extraOptions?: { includeTag?: boolean; includeSnap?: boolean }\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\n ...(builderOptions || {}),\n };\n this.logger.consoleTitle(`Total ${components.length} components to build`);\n const buildResult: TaskResultsList = await envs.runOnce(this.buildService, builderServiceOptions);\n\n if (extraOptions?.includeSnap || extraOptions?.includeTag) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderServiceOptions,\n previousTasksResults: buildResult.tasksResults,\n };\n const deployEnvsExecutionResults = extraOptions?.includeSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n buildResult.tasksResults.push(...deployEnvsExecutionResults.tasksResults);\n }\n\n return buildResult;\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n GlobalConfigAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope,\n globalConfig\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(\n isolator,\n logger,\n tagTaskSlot,\n 'getTagPipe',\n 'tag',\n artifactFactory,\n scope,\n globalConfig\n );\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope,\n globalConfig\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n globalConfig,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot,\n logger\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Logger } from '@teambit/logger';
4
4
  import { ScopeMain } from '@teambit/scope';
5
5
  import { BuilderMain } from './builder.main.runtime';
6
6
  export declare const routePath = "builder";
7
- export declare type BuilderUrlParams = {
7
+ export type BuilderUrlParams = {
8
8
  aspectId?: string;
9
9
  filePath?: string;
10
10
  };
@@ -61,9 +61,9 @@ class BuilderRoute {
61
61
  });
62
62
  if (artifactFilesCount === 1) {
63
63
  const extensionWithArtifact = extensionsWithArtifacts.find(e => e.files.length > 0);
64
- const fileName = `${extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.extensionId}_${extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.files[0].path}`;
65
- const fileContent = extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.files[0].contents;
66
- const fileExt = (extensionWithArtifact === null || extensionWithArtifact === void 0 ? void 0 : extensionWithArtifact.files[0].extname) || defaultExtension;
64
+ const fileName = `${extensionWithArtifact?.extensionId}_${extensionWithArtifact?.files[0].path}`;
65
+ const fileContent = extensionWithArtifact?.files[0].contents;
66
+ const fileExt = extensionWithArtifact?.files[0].extname || defaultExtension;
67
67
  const contentType = _mime().default.getType(fileExt);
68
68
  res.set('Content-disposition', `attachment; filename=${fileName}`);
69
69
  if (contentType) res.set('Content-Type', contentType);
@@ -1 +1 @@
1
- {"version":3,"names":["_archiver","data","_interopRequireDefault","require","_mime","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","routePath","exports","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","legacyScope","extensionId","task","filter","file","path","artifactFilesCount","reduce","accum","next","length","extensionWithArtifact","find","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, 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":";;;;;;AAEA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwB,SAAAC,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAGjB,MAAMW,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAI,SAAQ;AAM3B,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,MAAM;AAC/B,MAAMC,YAAY,CAAkB;EACzCC,WAAWA,CAASC,OAAoB,EAAUC,KAAgB,EAAUC,MAAc,EAAE;IAAA,KAAxEF,OAAoB,GAApBA,OAAoB;IAAA,KAAUC,KAAgB,GAAhBA,KAAgB;IAAA,KAAUC,MAAc,GAAdA,MAAc;IAAA3B,eAAA,gBACjF,IAAGoB,SAAU,IAAG;IAAApB,eAAA,iBAChB,KAAK;IAAAA,eAAA,sBAEA,CACZ,OAAO4B,GAA8B,EAAEC,GAAa,KAAK;MACvD;MACA,MAAMC,SAAS,GAAGF,GAAG,CAACE,SAAsB;MAC5C,MAAM;QAAEC;MAAO,CAAC,GAAGH,GAAG;MACtB,MAAM,CAACI,WAAW,EAAEC,QAAQ,CAAC,GAAGF,MAAM,CAAC,CAAC,CAAC,CAACG,KAAK,CAAC,GAAG,CAAC;MACpD;MACA,MAAMC,QAAQ,GAAGH,WAAW,CAACI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MAC/C,MAAMC,SAAS,GAAGF,QAAQ,GACtB,IAAI,CAACV,OAAO,CAACa,oBAAoB,CAACR,SAAS,EAAEK,QAAQ,CAAC,GACtD,IAAI,CAACV,OAAO,CAACc,YAAY,CAACT,SAAS,CAAC;MACxC,IAAI,CAACO,SAAS,EACZ,OAAOR,GAAG,CACPW,MAAM,CAAC,GAAG,CAAC,CACXC,KAAK,CAAC;QAAEC,KAAK,EAAG,oCAAmCZ,SAAS,CAACa,EAAG,cAAaR,QAAS;MAAE,CAAC,CAAC;MAC/F,MAAMS,uBAAuB,GAAG,MAAMC,OAAO,CAACC,GAAG,CAC/CT,SAAS,CAACU,GAAG,CAAC,MAAOC,QAAQ,IAAK;QAChC,MAAMC,KAAK,GAAG,MAAMD,QAAQ,CAACC,KAAK,CAACC,2BAA2B,CAACpB,SAAS,CAACa,EAAE,EAAE,IAAI,CAACjB,KAAK,CAACyB,WAAW,CAAC;QACpG,IAAI,CAAClB,QAAQ,EAAE,OAAO;UAAEmB,WAAW,EAAEJ,QAAQ,CAACK,IAAI,CAAClB,QAAQ;UAAEc;QAAM,CAAC;QACpE,OAAO;UAAEG,WAAW,EAAEJ,QAAQ,CAACK,IAAI,CAAClB,QAAQ;UAAEc,KAAK,EAAEA,KAAK,CAACK,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAKvB,QAAQ;QAAE,CAAC;MACvG,CAAC,CACH,CAAC;MAED,MAAMwB,kBAAkB,GAAGb,uBAAuB,CAACc,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAGC,IAAI,CAACX,KAAK,CAACY,MAAM,EAAE,CAAC,CAAC;MAExG,IAAIJ,kBAAkB,KAAK,CAAC,EAC1B,OAAO5B,GAAG,CACPW,MAAM,CAAC,GAAG,CAAC,CACXC,KAAK,CAAC;QAAEC,KAAK,EAAG,oCAAmCZ,SAAS,CAACa,EAAG,cAAaR,QAAS;MAAE,CAAC,CAAC;MAE/F,IAAIsB,kBAAkB,KAAK,CAAC,EAAE;QAC5B,MAAMK,qBAAqB,GAAGlB,uBAAuB,CAACmB,IAAI,CAAEjD,CAAC,IAAKA,CAAC,CAACmC,KAAK,CAACY,MAAM,GAAG,CAAC,CAAC;QACrF,MAAMG,QAAQ,GAAI,GAAEF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEV,WAAY,IAAGU,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEb,KAAK,CAAC,CAAC,CAAC,CAACO,IAAK,EAAC;QAChG,MAAMS,WAAW,GAAGH,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEb,KAAK,CAAC,CAAC,CAAC,CAACiB,QAAQ;QAC5D,MAAMC,OAAO,GAAG,CAAAL,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEb,KAAK,CAAC,CAAC,CAAC,CAACmB,OAAO,KAAI9C,gBAAgB;QAC3E,MAAM+C,WAAW,GAAGC,eAAI,CAACC,OAAO,CAACJ,OAAO,CAAC;QACzCtC,GAAG,CAAC2C,GAAG,CAAC,qBAAqB,EAAG,wBAAuBR,QAAS,EAAC,CAAC;QAClE,IAAIK,WAAW,EAAExC,GAAG,CAAC2C,GAAG,CAAC,cAAc,EAAEH,WAAW,CAAC;QACrD,OAAOxC,GAAG,CAAC4C,IAAI,CAACR,WAAW,CAAC;MAC9B;;MAEA;AACN;AACA;MACM,MAAMS,OAAO,GAAG,IAAAC,mBAAQ,EAAC,KAAK,EAAE;QAAEC,IAAI,EAAE;MAAK,CAAC,CAAC;MAE/CF,OAAO,CAACG,EAAE,CAAC,SAAS,EAAGC,IAAI,IAAK;QAC9B,IAAI,CAACnD,MAAM,CAACmD,IAAI,CAACA,IAAI,CAACC,OAAO,CAAC;MAChC,CAAC,CAAC;MAEFL,OAAO,CAACG,EAAE,CAAC,OAAO,EAAGG,GAAG,IAAK;QAC3B,IAAI,CAACrD,MAAM,CAACe,KAAK,CAACsC,GAAG,CAACD,OAAO,CAAC;MAChC,CAAC,CAAC;MAEFnC,uBAAuB,CAACqC,OAAO,CAAEC,sBAAsB,IAAK;QAC1DA,sBAAsB,CAACjC,KAAK,CAACgC,OAAO,CAAEjC,QAAQ,IAAK;UACjD0B,OAAO,CAACS,MAAM,CAACnC,QAAQ,CAACkB,QAAQ,EAAE;YAAEkB,IAAI,EAAG,GAAEF,sBAAsB,CAAC9B,WAAY,IAAGJ,QAAQ,CAACQ,IAAK;UAAE,CAAC,CAAC;QACvG,CAAC,CAAC;MACJ,CAAC,CAAC;MAEF,IAAI;QACFkB,OAAO,CAACW,IAAI,CAACxD,GAAG,CAAC;QACjB;AACR;AACA;AACA;QACQ;QACA,KAAK6C,OAAO,CAACY,QAAQ,CAAC,CAAC;QACvB,OAAOzD,GAAG,CAAC0D,UAAU,CAAE,GAAEpD,QAAQ,CAACC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAE,MAAK,CAAC;MAC5D,CAAC,CAAC,OAAOtB,CAAM,EAAE;QACf,OAAOe,GAAG,CAAC4C,IAAI,CAAC;UAAE/B,KAAK,EAAE5B,CAAC,CAAC0E,QAAQ,CAAC;QAAE,CAAC,CAAC;MAC1C;IACF,CAAC,CACF;EA7E4F;AA8E/F;AAACnE,OAAA,CAAAE,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"names":["_archiver","data","_interopRequireDefault","require","_mime","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","routePath","exports","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","legacyScope","extensionId","task","filter","file","path","artifactFilesCount","reduce","accum","next","length","extensionWithArtifact","find","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, 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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"}
@@ -1,5 +1,5 @@
1
+ /// <reference types="react" />
1
2
  import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
2
- import React from 'react';
3
3
  import { ScopeMain } from '@teambit/scope';
4
4
  import { GlobalConfigMain } from '@teambit/global-config';
5
5
  import { Logger } from '@teambit/logger';
@@ -10,13 +10,13 @@ import { TaskResultsList } from './task-results-list';
10
10
  import { TaskSlot } from './builder.main.runtime';
11
11
  import { BuildContext, BuildTask } from './build-task';
12
12
  import { ArtifactFactory } from './artifact';
13
- export declare type BuildServiceResults = {
13
+ export type BuildServiceResults = {
14
14
  id: string;
15
15
  buildResults: TaskResultsList;
16
16
  components: Component[];
17
17
  errors?: [];
18
18
  };
19
- export declare type BuilderServiceOptions = {
19
+ export type BuilderServiceOptions = {
20
20
  seedersOnly?: boolean;
21
21
  originalSeeders?: ComponentID[];
22
22
  tasks?: string[];
@@ -26,12 +26,12 @@ export declare type BuilderServiceOptions = {
26
26
  exitOnFirstFailedTask?: boolean;
27
27
  capsulesBaseDir?: string;
28
28
  };
29
- declare type BuilderTransformationMap = ServiceTransformationMap & {
29
+ type BuilderTransformationMap = ServiceTransformationMap & {
30
30
  getBuildPipe: () => BuildTask[];
31
31
  getTagPipe: () => BuildTask[];
32
32
  getSnapPipe: () => BuildTask[];
33
33
  };
34
- export declare type EnvsBuildContext = {
34
+ export type EnvsBuildContext = {
35
35
  [envId: string]: BuildContext;
36
36
  };
37
37
  declare const pipeNames: {
@@ -39,12 +39,12 @@ declare const pipeNames: {
39
39
  getTagPipe: string;
40
40
  getSnapPipe: string;
41
41
  };
42
- export declare type PipeName = 'build' | 'tag' | 'snap';
43
- export declare type BuilderDescriptor = Array<{
42
+ export type PipeName = 'build' | 'tag' | 'snap';
43
+ export type BuilderDescriptor = Array<{
44
44
  pipeName: PipeName;
45
45
  tasks: string[];
46
46
  }>;
47
- export declare type PipeFunctionNames = keyof typeof pipeNames;
47
+ export type PipeFunctionNames = keyof typeof pipeNames;
48
48
  export declare class BuilderService implements EnvService<BuildServiceResults, string> {
49
49
  /**
50
50
  * isolator extension.
@@ -96,7 +96,7 @@ export declare class BuilderService implements EnvService<BuildServiceResults, s
96
96
  */
97
97
  runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList>;
98
98
  getComponentsCapsulesBaseDir(): string | undefined;
99
- render(): React.JSX.Element;
99
+ render(): JSX.Element;
100
100
  transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined;
101
101
  getDescriptor(): string;
102
102
  private getTasksNamesByPipeFunc;
@@ -177,24 +177,24 @@ class BuilderService {
177
177
  }, descriptor, /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Newline, null));
178
178
  }
179
179
  transform(env, envContext) {
180
- if (!(env !== null && env !== void 0 && env.build)) return undefined;
180
+ if (!env?.build) return undefined;
181
181
  return {
182
182
  getBuildPipe: () => {
183
183
  // TODO: refactor after defining for an env property
184
184
  const pipeline = env.build();
185
185
  if (!pipeline || !pipeline.compute) return [];
186
- return pipeline === null || pipeline === void 0 ? void 0 : pipeline.compute(envContext);
186
+ return pipeline?.compute(envContext);
187
187
  },
188
188
  getTagPipe: () => {
189
189
  // TODO: refactor after defining for an env property
190
190
  const pipeline = env.tag();
191
191
  if (!pipeline || !pipeline.compute) return [];
192
- return pipeline === null || pipeline === void 0 ? void 0 : pipeline.compute(envContext);
192
+ return pipeline?.compute(envContext);
193
193
  },
194
194
  getSnapPipe: () => {
195
195
  const pipeline = env.snap();
196
196
  if (!pipeline || !pipeline.compute) return [];
197
- return pipeline === null || pipeline === void 0 ? void 0 : pipeline.compute(envContext);
197
+ return pipeline?.compute(envContext);
198
198
  }
199
199
  };
200
200
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","data","require","_react","_interopRequireDefault","_chalk","_lodash","_pMapSeries","_ink","_buildPipe","_buildTask","_buildPipelineOrder","_builder","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","globalConfig","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","console","title","length","longProcessLogger","createLongProcessLogger","undefined","envsBuildContext","capsulesBaseDir","getComponentsCapsulesBaseDir","baseDir","useHash","isolateOptions","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","msg","extraDetails","seedersCapsules","graphCapsules","chalk","dim","buildContext","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","getCurrentLaneId","envIdsWithoutVersion","env","split","buildPipe","BuildPipe","exitOnFirstFailedTask","showEnvNameInOutput","showEnvVersionInOutput","uniq","buildResults","execute","end","hasErrors","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","render","descriptor","getDescriptor","createElement","Text","BuilderAspect","Newline","transform","envContext","build","pipeline","compute","tag","snap","getTasksNamesByPipeFunc","pipeFuncName","task","BuildTaskHelper","serializeId","getCurrentPipeTasks","exports"],"sources":["builder.service.tsx"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport chalk from 'chalk';\nimport { uniq } from 'lodash';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\nexport type PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, string> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain,\n private globalConfig: GlobalConfigMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n this.logger.console('\\n'); // this is to make is clear separation between the various pipelines (build/snap/tag)\n const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s), total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');\n const envsBuildContext: EnvsBuildContext = {};\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n\n const baseDir = options.capsulesBaseDir || capsulesBaseDir;\n const useHash = !baseDir;\n const isolateOptions = {\n baseDir,\n useHash,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n const msg = `building ${originalSeedersOfThisEnv.length} components of env \"${executionContext.id}\"`;\n const extraDetails = `original seeders of this env: ${originalSeedersOfThisEnv.length}, graph of this env: ${capsuleNetwork.seedersCapsules.length}, graph total (include other envs): ${capsuleNetwork.graphCapsules.length}`;\n this.logger.console(`${msg}. ${chalk.dim(extraDetails)}`);\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.getCurrentLaneId(),\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const envIdsWithoutVersion = envs.map((env) => env.id.split('@')[0]);\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n {\n exitOnFirstFailedTask: options.exitOnFirstFailedTask,\n showEnvNameInOutput: envs.length > 1,\n showEnvVersionInOutput: envIdsWithoutVersion.length > uniq(envIdsWithoutVersion).length,\n }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');\n\n return buildResults;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n render() {\n const descriptor = this.getDescriptor();\n\n return (\n <Text key={BuilderAspect.id}>\n {descriptor}\n <Newline />\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n getDescriptor() {\n return 'run `bit build --list-tasks <component-id>` to see the tasks list for the pipelines: build, tag and snap';\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","data","require","_react","_interopRequireDefault","_chalk","_lodash","_pMapSeries","_ink","_buildPipe","_buildTask","_buildPipelineOrder","_builder","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","globalConfig","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","console","title","length","longProcessLogger","createLongProcessLogger","undefined","envsBuildContext","capsulesBaseDir","getComponentsCapsulesBaseDir","baseDir","useHash","isolateOptions","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","msg","extraDetails","seedersCapsules","graphCapsules","chalk","dim","buildContext","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","getCurrentLaneId","envIdsWithoutVersion","env","split","buildPipe","BuildPipe","exitOnFirstFailedTask","showEnvNameInOutput","showEnvVersionInOutput","uniq","buildResults","execute","end","hasErrors","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","render","descriptor","getDescriptor","createElement","Text","BuilderAspect","Newline","transform","envContext","build","pipeline","compute","tag","snap","getTasksNamesByPipeFunc","pipeFuncName","task","BuildTaskHelper","serializeId","getCurrentPipeTasks","exports"],"sources":["builder.service.tsx"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport chalk from 'chalk';\nimport { uniq } from 'lodash';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\nexport type PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, string> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain,\n private globalConfig: GlobalConfigMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n this.logger.console('\\n'); // this is to make is clear separation between the various pipelines (build/snap/tag)\n const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s), total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');\n const envsBuildContext: EnvsBuildContext = {};\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n\n const baseDir = options.capsulesBaseDir || capsulesBaseDir;\n const useHash = !baseDir;\n const isolateOptions = {\n baseDir,\n useHash,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n const msg = `building ${originalSeedersOfThisEnv.length} components of env \"${executionContext.id}\"`;\n const extraDetails = `original seeders of this env: ${originalSeedersOfThisEnv.length}, graph of this env: ${capsuleNetwork.seedersCapsules.length}, graph total (include other envs): ${capsuleNetwork.graphCapsules.length}`;\n this.logger.console(`${msg}. ${chalk.dim(extraDetails)}`);\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.getCurrentLaneId(),\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const envIdsWithoutVersion = envs.map((env) => env.id.split('@')[0]);\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n {\n exitOnFirstFailedTask: options.exitOnFirstFailedTask,\n showEnvNameInOutput: envs.length > 1,\n showEnvVersionInOutput: envIdsWithoutVersion.length > uniq(envIdsWithoutVersion).length,\n }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');\n\n return buildResults;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n render() {\n const descriptor = this.getDescriptor();\n\n return (\n <Text key={BuilderAspect.id}>\n {descriptor}\n <Newline />\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n getDescriptor() {\n return 'run `bit build --list-tasks <component-id>` to see the tasks list for the pipelines: build, tag and snap';\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { BuildTask } from '@teambit/builder';
2
2
  import { EnvContext, EnvHandler } from '@teambit/envs';
3
3
  import { Task } from './task';
4
- export declare type TaskHandler = {
4
+ export type TaskHandler = {
5
5
  handler: EnvHandler<Task>;
6
6
  name: string;
7
7
  };
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.107/dist/builder.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.107/dist/builder.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.108/dist/builder.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.108/dist/builder.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,7 +1,7 @@
1
1
  import { Component } from '@teambit/component';
2
2
  import { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';
3
3
  import { FsArtifact } from '../artifact';
4
- export declare type StoreResult = {
4
+ export type StoreResult = {
5
5
  [path: string]: string;
6
6
  };
7
7
  interface BaseStorageResolver {
@@ -22,5 +22,5 @@ export interface FileStorageResolver extends BaseStorageResolver {
22
22
  */
23
23
  storeFile(component: Component, artifact: FsArtifact, file: ArtifactVinyl): Promise<string | undefined | void>;
24
24
  }
25
- export declare type ArtifactStorageResolver = FileStorageResolver | WholeArtifactStorageResolver;
25
+ export type ArtifactStorageResolver = FileStorageResolver | WholeArtifactStorageResolver;
26
26
  export {};
@@ -37,10 +37,7 @@ class TaskResultsList {
37
37
  this.capsuleRootDir = capsuleRootDir;
38
38
  }
39
39
  hasErrors() {
40
- return this.tasksResults.some(taskResult => taskResult.componentsResults.find(c => {
41
- var _c$errors;
42
- return (_c$errors = c.errors) === null || _c$errors === void 0 ? void 0 : _c$errors.length;
43
- }));
40
+ return this.tasksResults.some(taskResult => taskResult.componentsResults.find(c => c.errors?.length));
44
41
  }
45
42
  throwErrorsIfExist() {
46
43
  const errorMessage = this.getErrorMessageFormatted();
@@ -56,10 +53,7 @@ class TaskResultsList {
56
53
  const tasksErrors = [];
57
54
  let totalErrors = 0;
58
55
  this.tasksResults.forEach(taskResult => {
59
- const compsWithErrors = taskResult.componentsResults.filter(c => {
60
- var _c$errors2;
61
- return (_c$errors2 = c.errors) === null || _c$errors2 === void 0 ? void 0 : _c$errors2.length;
62
- });
56
+ const compsWithErrors = taskResult.componentsResults.filter(c => c.errors?.length);
63
57
  if (!compsWithErrors.length) return;
64
58
  const title = _chalk().default.bold(`Failed task ${tasksErrors.length + 1}: "${_buildTask().BuildTaskHelper.serializeId(taskResult.task)}" of env "${taskResult.env.id}"\n`);
65
59
  const errorsStr = compsWithErrors.map(compWithErrors => this.aggregateTaskErrorsToOneString(compWithErrors)).join('\n\n');