@teambit/snapping 1.0.767 → 1.0.769

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.
@@ -419,7 +419,8 @@ class SnappingMain {
419
419
  exitOnFirstFailedTask: failFast,
420
420
  detachHead,
421
421
  overrideHead,
422
- loose
422
+ loose,
423
+ ignoreIssues
423
424
  };
424
425
  const {
425
426
  taggedComponents,
@@ -677,7 +678,8 @@ class SnappingMain {
677
678
  packageManagerConfigRootDir: this.workspace.path,
678
679
  exitOnFirstFailedTask,
679
680
  detachHead,
680
- loose
681
+ loose,
682
+ ignoreIssues
681
683
  };
682
684
  const {
683
685
  taggedComponents,
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_graph","_fsExtra","_interopRequireDefault","_legacy","_getFlattenedDependencies","_workspace","_semver","_lodash","_componentId","_legacy2","_legacy3","_legacy4","_pMapSeries","_logger","_bitError","_pMap","_pkgModules","_harmonyModules","_configStore","_scope","_objects","_dependencyResolver","_legacy5","_builder","_laneId","_importer","_export","_componentVersion","_component","_dependencies","_snapCmd","_snapping","_tagCmd","_resetCmd","_generateCompFromScope","_flattenedEdges","_snapDistanceCmd","_resetComponent","_application","_legacy6","_lanesModules","_remove","_versionMaker","_harmony","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SnappingMain","constructor","workspace","logger","dependencyResolver","scope","exporter","builder","importer","deps","application","remove","onPreSnapSlot","objectsRepo","legacyScope","objects","registerOnPreSnap","onPreSnap","register","tag","ids","message","version","editor","versionsFile","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipTasks","skipAutoTag","build","unmodified","soft","persist","ignoreBuildErrors","rebuildDepsGraph","incrementBy","disableTagAndSnapPipelines","failFast","detachHead","overrideHead","loose","BitError","Boolean","exactVersion","OutsideWorkspaceError","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","setStatusLine","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","compIds","ComponentIdList","fromArray","debug","toString","components","loadComponentsForTagOrSnap","throwForVariousIssues","params","packageManagerConfigRootDir","path","exitOnFirstFailedTask","taggedComponents","autoTaggedResults","publishedPackages","stagedConfig","removedComponents","totalComponentsCount","makeVersion","tagResults","isSoftTag","onDestroy","write","consumerComponents","map","c","state","_consumer","componentIds","versionMaker","VersionMaker","addAspectsFromConfigObject","component","configObject","ExtensionDataList","adjustEnvsOnConfigObject","extensionsFromConfigObject","fromConfigObject","depsResolverFromConfig","findCoreExtension","DependencyResolverAspect","id","policy","extensions","autoDeps","extractAutoDepsFromConfig","consumerComponent","extensionDataList","mergeConfigs","filterRemovedExtensions","aspects","createAspectListFromExtensionDataList","snapFromScope","snapDataPerCompRaw","lane","laneIdStr","laneId","LaneId","parse","importLaneObject","err","name","LaneNotFound","createLaneInScope","scopeJson","setLaneAsNew","setCurrentLaneId","scopeImporter","shouldOnlyFetchFromCurrentLane","laneCompIds","toComponentIdsIncludeUpdateDependents","snapDataPerComp","snapData","componentId","ComponentID","fromString","dependencies","files","isNew","mainFile","newDependencies","dep","isComponent","type","removeDependencies","compact","allCompIds","s","componentIdsLatest","changeVersion","LATEST","newCompsData","Promise","all","newComp","generateCompFromScope","import","preferDependencyGraph","reason","getSnapData","find","isEqual","ignoreVersion","Error","updatedLegacyComponents","updatedComponents","getManyByLegacy","existingComponents","pMapSeries","foundInUpdated","isEqualWithoutVersion","get","updateDependents","comp","getComponentDependencies","fromLane","searchWithoutVersion","addDeps","updateSourceFiles","loadAspectOnlyForIds","compsToLoadAspects","hasWithoutVersion","loadManyCompsAspects","executeOnCompAspectReCalcSlot","shouldTag","makeVersionParams","tagDataPerComp","versionToTag","undefined","isSnap","updateDependentsOnLane","results","exportedIds","updatedLane","loadLane","toLaneId","exported","pushToScopes","allVersions","laneObject","exportHeadsOnly","snappedComponents","snappedIds","autoSnappedResults","snap","pattern","legacyBitIds","skipAutoSnap","self","getIdsToSnap","snapResults","currentLane","getCurrentLaneId","laneName","isDefault","listDuringMergeStateComponents","tagPendingComponentsIds","getTagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","resolveComponentId","filterIdsFromPoolIdsByPattern","allTagPending","listPotentialTagIds","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","includeDeleted","idsMatchingPatternBitIds","componentsToUntag","modelComponent","toComponentId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponentsIds","bySoftTagged","idsToRemoveSoftTags","componentMap","bitMap","getComponent","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","currentLaneId","getStagedConfig","versionToSetInBitmap","updateVersions","stagedSnaps","markAsChanged","isSoftUntag","resetNeverExported","notExported","getNotExportedIds","hashes","BitObject","makeHash","fullName","deleteObjectsFromFS","h","Ref","from","updateComponentId","_addFlattenedDependenciesToComponents","profile","getLane","forkedFrom","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","clearStatusLine","_addFlattenedDepsGraphToComponents","flattenedEdgesGetter","FlattenedEdgesGetter","buildGraph","populateFlattenedAndEdgesForComp","throwForDepsFromAnotherLane","allIds","missingDeps","throwForDepsFromAnotherLaneForComp","flattenedMissingDeps","uniqFromArray","flat","importWithoutDeps","cache","ignoreMissingHead","includeVersionHistory","componentsToCheck","isDeleted","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","throwForMissingObjects","depsFromModel","componentFromModel","getAllDependencies","depsFromModelIds","d","isExported","hasVersion","isTag","has","isPartOfHistory","isPartOfLaneHistoryOrMain","isPartOfMainHistory","VersionNotFound","ComponentNotFound","HeadNotFound","ParentNotFound","laneOrMainStr","toStringWithoutVersion","graph","Graph","addEdges","label","setNode","Node","setEdge","Edge","devDependencies","extensionDependencies","allFlattened","flattenedDependencies","allFlattenedUniq","allFlattenedWithoutCurrent","componentsAndVersions","getComponentsAndVersions","versionStr","someCompsHaveMissingFlattened","edges","outEdges","flattenedEdges","allEdges","edgesWithBitIds","edge","source","node","attr","target","flattened","flattenedFromEdges","uniq","missingFlattened","difference","warn","join","missingBitIds","_updateComponentsByTagResult","tagResult","result","matchingComponent","existingBuilder","Extensions","builderData","_getPublishedPackages","Map","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","set","integrity","previouslyUsedVersion","_addCompToObjects","shouldValidateVersion","addVersionOpts","addedVersionStr","_addCompFromScopeToObjects","unmergedComponent","unmergedComponents","getEntry","unrelated","hash","unrelatedHead","setUnrelated","addAsOnlyParent","unrelatedLaneId","headOnCurrentLane","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","validate","objectRepo","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","dependenciesGraph","consumerComponentToVersion","origin","defaultScope","add","addVersion","file","enrichComp","modifiedLog","getObjectsToEnrichComp","obj","setBuildStatus","buildStatus","modelComp","loadVersion","addModifiedLog","artifactObjects","Version","dependenciesGraphToSource","dependenciesGraphRef","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","shouldClearCacheFirst","idsWithoutVersions","appIds","loadAllAppsAsAspects","componentFsCache","deleteAllDependenciesDataCache","clearAllComponentsCache","clearComponentCache","getMany","componentsMissingFromScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","getCompIdWithExactVersionAccordingToSemver","isHash","range","getExactVersionBySemverRange","currentFiles","filesystem","delete","found","f","relative","fs","removeSync","index","findIndex","splice","currentFile","contents","Buffer","content","SourceFile","base","test","updateDependenciesVersionsOfComponent","currentBitIds","updatedIds","componentIdStr","legacyComponent","dependenciesList","getDependencies","updatedBitId","depIdStr","packageName","findDependency","getPackageName","UpdateDepsAspectsSaveIntoDepsResolver","toStringArray","ext","extId","extensionId","startsWith","updatedExtId","newExtensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","existingExtension","config","findExtension","assign","extension","ExtensionDataEntry","includeUnmodified","listTagPendingIds","localOnlyIds","byLocalOnly","localOnlyListIds","softTaggedComponents","snappedComponentsIds","bySnappedOnMain","tagPendingBitIdsIncludeSnapped","idWithoutVer","split","idIsPattern","isPattern","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","loggerMain","configStore","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","tagCmd","TagCmd","resetCmd","ResetCmd","snapDistanceCmd","SnapDistanceCmd","exports","Slot","withType","WorkspaceAspect","CLIAspect","LoggerAspect","ScopeAspect","ExportAspect","BuilderAspect","ImporterAspect","ConfigStoreAspect","DependenciesAspect","ApplicationAspect","RemoveAspect","MainRuntime","addRuntime","_default"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport fs from 'fs-extra';\nimport {\n UnmergedComponents,\n VersionNotFound,\n ComponentNotFound,\n HeadNotFound,\n ParentNotFound,\n} from '@teambit/legacy.scope';\nimport { FlattenedDependenciesGetter } from './get-flattened-dependencies';\nimport type { Workspace, AutoTagResult } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport type { ReleaseType } from 'semver';\nimport semver from 'semver';\nimport { compact, difference, uniq } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport { Extensions, LATEST } from '@teambit/legacy.constants';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { ComponentsPendingImport } from '@teambit/legacy.consumer';\nimport { ComponentsList } from '@teambit/legacy.component-list';\nimport pMapSeries from 'p-map-series';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport pMap from 'p-map';\nimport { validateVersion } from '@teambit/pkg.modules.semver-helper';\nimport { concurrentComponentsLimit } from '@teambit/harmony.modules.concurrency';\nimport type { ConfigStoreMain } from '@teambit/config-store';\nimport { ConfigStoreAspect } from '@teambit/config-store';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport type { Repository, Lane, ModelComponent, DepEdge, DepEdgeType, Log, AddVersionOpts } from '@teambit/objects';\nimport { BitObject, Ref, Version } from '@teambit/objects';\nimport type { Component, ConsumerComponent } from '@teambit/component';\nimport type { DependencyResolverMain, VariantPolicyConfigArr } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { BuilderMain, LegacyOnTagResult } from '@teambit/builder';\nimport { BuilderAspect } from '@teambit/builder';\nimport { LaneId } from '@teambit/lane-id';\nimport type { ImporterMain } from '@teambit/importer';\nimport { ImporterAspect } from '@teambit/importer';\nimport type { ExportMain } from '@teambit/export';\nimport { ExportAspect } from '@teambit/export';\nimport { isHash, isTag } from '@teambit/component-version';\nimport type { ArtifactSource } from '@teambit/component.sources';\nimport { ArtifactFiles, getArtifactsFiles, SourceFile } from '@teambit/component.sources';\nimport type { DependenciesMain } from '@teambit/dependencies';\nimport { DependenciesAspect } from '@teambit/dependencies';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport ResetCmd from './reset-cmd';\nimport type { NewDependencies } from './generate-comp-from-scope';\nimport { addDeps, generateCompFromScope } from './generate-comp-from-scope';\nimport { FlattenedEdgesGetter } from './flattened-edges';\nimport { SnapDistanceCmd } from './snap-distance-cmd';\nimport type { ResetResult } from './reset-component';\nimport {\n removeLocalVersionsForAllComponents,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from './reset-component';\nimport type { ApplicationMain } from '@teambit/application';\nimport { ApplicationAspect } from '@teambit/application';\nimport { LaneNotFound } from '@teambit/legacy.scope-api';\nimport { createLaneInScope } from '@teambit/lanes.modules.create-lane';\nimport type { RemoveMain } from '@teambit/remove';\nimport { RemoveAspect } from '@teambit/remove';\nimport type { BasicTagParams, BasicTagSnapParams, VersionMakerParams } from './version-maker';\nimport { VersionMaker, updateVersions } from './version-maker';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\n\nexport type PackageIntegritiesByPublishedPackages = Map<\n string,\n {\n integrity: string | undefined;\n previouslyUsedVersion: string | undefined;\n }\n>;\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag?: string; // must be set for tag. undefined for snap.\n prereleaseId?: string;\n message?: string;\n isNew?: boolean;\n};\n\nexport type SnapDataParsed = {\n componentId: ComponentID;\n dependencies: string[];\n aspects?: Record<string, any>;\n message?: string;\n files?: FileData[];\n isNew?: boolean;\n newDependencies?: {\n id: string; // component-id or package-name.\n version?: string; // for packages, it is mandatory.\n isComponent: boolean;\n type: 'runtime' | 'dev' | 'peer';\n }[];\n removeDependencies?: string[];\n forkFrom?: ComponentID;\n};\n\nexport type SnapResults = BasicTagResults & {\n snappedComponents: ConsumerComponent[];\n autoSnappedResults: AutoTagResult[];\n laneName: string | null; // null if default\n};\n\nexport type SnapFromScopeResults = {\n snappedIds: ComponentID[];\n exportedIds?: ComponentID[];\n autoSnappedResults: AutoTagResult[];\n snappedComponents: ConsumerComponent[];\n};\n\nexport type TagResults = BasicTagResults & {\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n isSoftTag: boolean;\n publishedPackages: string[];\n exportedIds?: ComponentIdList; // relevant only for tag-from-scope when --push is used\n};\n\nexport type BasicTagResults = {\n warnings: string[];\n newComponents: ComponentIdList;\n removedComponents?: ComponentIdList;\n totalComponentsCount?: number; // total count of all components tagged/snapped (including auto-tagged)\n};\n\nexport type FileData = { path: string; content: string; delete?: boolean };\n\nexport type SnapDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n aspects?: Record<string, any>;\n message?: string;\n files?: FileData[];\n isNew?: boolean;\n mainFile?: string; // relevant when isNew is true. default to \"index.ts\".\n newDependencies?: NewDependencies;\n removeDependencies?: string[];\n forkFrom?: string; // origin id to fork from. the componentId is the new id. (no need to populate isNew prop).\n version?: string; // relevant when passing \"--tag\". optionally, specify the semver to tag. default to \"patch\".\n};\n\nexport type OnPreSnap = (\n componentsToSnap: Component[],\n idsToAutoSnap: ComponentID[],\n params: VersionMakerParams\n) => Promise<void>;\n\nexport type OnPreSnapSlot = SlotRegistry<OnPreSnap>;\n\nexport class SnappingMain {\n private objectsRepo: Repository;\n constructor(\n readonly workspace: Workspace,\n readonly logger: Logger,\n readonly dependencyResolver: DependencyResolverMain,\n readonly scope: ScopeMain,\n private exporter: ExportMain,\n readonly builder: BuilderMain,\n private importer: ImporterMain,\n private deps: DependenciesMain,\n private application: ApplicationMain,\n private remove: RemoveMain,\n readonly onPreSnapSlot: OnPreSnapSlot\n ) {\n this.objectsRepo = this.scope?.legacyScope?.objects;\n }\n\n registerOnPreSnap(onPreSnap: OnPreSnap) {\n this.onPreSnapSlot.register(onPreSnap);\n }\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n versionsFile,\n snapped = false,\n unmerged = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipTasks,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n failFast = false,\n detachHead,\n overrideHead,\n loose = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n failFast?: boolean;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n if (soft) build = false;\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n ignoreNewestVersion = Boolean(ignoreNewestVersion || detachHead || overrideHead);\n\n const exactVersion = version;\n if (!this.workspace) throw new OutsideWorkspaceError();\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(this.workspace);\n this.logger.setStatusLine('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(\n unmodified,\n exactVersion,\n persist,\n ids,\n snapped,\n unmerged\n );\n if (!bitIds.length) return null;\n\n const compIds = ComponentIdList.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${compIds.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(compIds, !soft);\n await this.throwForVariousIssues(components, ignoreIssues);\n\n const params = {\n message,\n editor,\n versionsFile,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion,\n skipTests,\n skipTasks,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n exitOnFirstFailedTask: failFast,\n detachHead,\n overrideHead,\n loose,\n };\n const {\n taggedComponents,\n autoTaggedResults,\n publishedPackages,\n stagedConfig,\n removedComponents,\n totalComponentsCount,\n } = await this.makeVersion(compIds, components, params);\n\n const tagResults = {\n taggedComponents,\n autoTaggedResults,\n isSoftTag: soft,\n publishedPackages,\n warnings,\n newComponents,\n removedComponents,\n totalComponentsCount,\n };\n\n await consumer.onDestroy(`tag (message: ${message || 'N/A'})`);\n await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async makeVersion(ids: ComponentID[], components: Component[], params: VersionMakerParams) {\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const componentIds = ComponentIdList.fromArray(ids);\n const versionMaker = new VersionMaker(this, components, consumerComponents, componentIds, params);\n return versionMaker.makeVersion();\n }\n\n private async addAspectsFromConfigObject(\n component: Component,\n configObject?: Record<string, any>\n ): Promise<VariantPolicyConfigArr | undefined> {\n if (!configObject) return;\n ExtensionDataList.adjustEnvsOnConfigObject(configObject);\n const extensionsFromConfigObject = ExtensionDataList.fromConfigObject(configObject);\n const depsResolverFromConfig = extensionsFromConfigObject.findCoreExtension(DependencyResolverAspect.id);\n if (depsResolverFromConfig) {\n // @todo: merge also the scope-specific into the config here. same way we do in \"addConfigDepsFromModelToConfigMerge\"\n depsResolverFromConfig.data.policy = component.state._consumer.extensions.findCoreExtension(\n DependencyResolverAspect.id\n )?.data.policy;\n }\n const autoDeps = extensionsFromConfigObject.extractAutoDepsFromConfig();\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConfigObject,\n consumerComponent.extensions,\n ]).filterRemovedExtensions();\n consumerComponent.extensions = extensionDataList;\n component.state.aspects = await this.scope.createAspectListFromExtensionDataList(extensionDataList);\n\n return autoDeps;\n }\n\n async snapFromScope(\n snapDataPerCompRaw: SnapDataPerCompRaw[],\n params: {\n push?: boolean;\n ignoreIssues?: string;\n lane?: string;\n updateDependents?: boolean;\n tag?: boolean;\n // in case of merging lanes, the component files are updated in-memory\n updatedLegacyComponents?: ConsumerComponent[];\n loadAspectOnlyForIds?: ComponentIdList; // if undefined, load aspects for all components\n } & Partial<BasicTagParams>\n ): Promise<SnapFromScopeResults> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n let lane: Lane | undefined;\n const laneIdStr = params.lane;\n if (laneIdStr) {\n const laneId = LaneId.parse(laneIdStr);\n try {\n lane = await this.importer.importLaneObject(laneId);\n } catch (err: any) {\n if (err.constructor.name !== LaneNotFound.name) throw err;\n // if the lane is not found, it's probably because it's new. create a new lane.\n lane = await createLaneInScope(laneId.name, this.scope, laneId.scope);\n // it's important to set the lane as new in scope.json. otherwise, later, when importing and the lane is loaded\n // from the filesystem, it looses the \"isNew: true\", and then it tries to fetch the lane from the remote scope.\n // which fails with the importer.\n this.scope.legacyScope.scopeJson.setLaneAsNew(laneId.name);\n }\n // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists\n // from the original scope instead of the lane-scope.\n this.scope.legacyScope.setCurrentLaneId(laneId);\n this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;\n }\n const laneCompIds = lane?.toComponentIdsIncludeUpdateDependents();\n const snapDataPerComp = snapDataPerCompRaw.map((snapData) => {\n return {\n componentId: ComponentID.fromString(snapData.componentId),\n dependencies: snapData.dependencies || [],\n aspects: snapData.aspects,\n message: snapData.message,\n files: snapData.files,\n isNew: snapData.isNew,\n mainFile: snapData.mainFile,\n newDependencies: (snapData.newDependencies || []).map((dep) => ({\n id: dep.id,\n version: dep.version,\n isComponent: dep.isComponent ?? true,\n type: dep.type ?? 'runtime',\n })),\n removeDependencies: snapData.removeDependencies,\n version: snapData.version,\n };\n });\n\n // console.log('snapDataPerComp', JSON.stringify(snapDataPerComp, undefined, 2));\n\n const componentIds = compact(snapDataPerComp.map((t) => (t.isNew ? null : t.componentId)));\n const allCompIds = snapDataPerComp.map((s) => s.componentId);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const newCompsData = compact(snapDataPerComp.map((t) => (t.isNew ? t : null)));\n const newComponents = await Promise.all(\n newCompsData.map((newComp) => generateCompFromScope(this.scope, this.dependencyResolver, newComp, this))\n );\n\n await this.scope.import(componentIdsLatest, {\n preferDependencyGraph: false,\n lane,\n reason: `seeders to snap`,\n });\n const getSnapData = (id: ComponentID): SnapDataParsed => {\n const snapData = snapDataPerComp.find((t) => {\n return t.componentId.isEqual(id, { ignoreVersion: true });\n });\n if (!snapData) throw new Error(`unable to find ${id.toString()} in snapDataPerComp`);\n return snapData;\n };\n const updatedLegacyComponents = params.updatedLegacyComponents || [];\n const updatedComponents = await this.scope.getManyByLegacy(updatedLegacyComponents);\n\n const existingComponents = compact(\n await pMapSeries(componentIdsLatest, async (id) => {\n const foundInUpdated = updatedComponents.find((c) => c.id.isEqualWithoutVersion(id));\n return foundInUpdated || this.scope.get(id);\n })\n );\n // in case of update-dependents, align the dependencies of the dependents according to the lane\n if (params.updateDependents && laneCompIds) {\n existingComponents.forEach((comp) => {\n const deps = this.dependencyResolver.getComponentDependencies(comp);\n const snapData = getSnapData(comp.id);\n deps.forEach((dep) => {\n const fromLane = laneCompIds.searchWithoutVersion(dep.componentId);\n if (fromLane) {\n snapData.dependencies.push(fromLane.toString());\n }\n });\n });\n }\n\n const components = [...existingComponents, ...newComponents];\n\n // this must be done before we load component aspects later on, because this updated deps may update aspects.\n await pMapSeries(components, async (component) => {\n const snapData = getSnapData(component.id);\n const autoDeps = await this.addAspectsFromConfigObject(component, snapData.aspects);\n // adds explicitly defined dependencies and dependencies from envs/aspects (overrides)\n await addDeps(component, snapData, this.scope, this.deps, this.dependencyResolver, this, autoDeps);\n });\n\n // for new components these are not needed. coz when generating them we already add the aspects and the files.\n await Promise.all(\n existingComponents.map(async (comp) => {\n const snapData = getSnapData(comp.id);\n if (snapData.files?.length) {\n await this.updateSourceFiles(comp, snapData.files);\n }\n })\n );\n\n // load the aspects user configured to set on the components. it creates capsules if needed.\n // otherwise, when a user set a custom-env, it won't be loaded and the Version object will leave the\n // teambit.envs/envs in a weird state. the config will be set correctly but the data will be set to the default\n // node env.\n const { loadAspectOnlyForIds } = params;\n const compsToLoadAspects = loadAspectOnlyForIds\n ? components.filter((c) => loadAspectOnlyForIds.hasWithoutVersion(c.id))\n : components;\n\n await this.scope.loadManyCompsAspects(compsToLoadAspects);\n\n // this is similar to what happens in the workspace. the \"onLoad\" is running and populating the \"data\" of the aspects.\n await pMapSeries(compsToLoadAspects, async (comp) => this.scope.executeOnCompAspectReCalcSlot(comp));\n\n const ids = ComponentIdList.fromArray(allCompIds);\n const shouldTag = Boolean(params.tag);\n const makeVersionParams = {\n ...params,\n tagDataPerComp: snapDataPerComp.map((s) => ({\n componentId: s.componentId,\n message: s.message,\n dependencies: [],\n versionToTag: shouldTag ? s.version || 'patch' : undefined,\n })),\n persist: true,\n isSnap: !shouldTag,\n message: params.message as string,\n updateDependentsOnLane: params.updateDependents,\n };\n const results = await this.makeVersion(ids, components, makeVersionParams);\n\n const { taggedComponents } = results;\n let exportedIds: ComponentIdList | undefined;\n if (params.push) {\n const updatedLane = lane ? await this.scope.legacyScope.loadLane(lane.toLaneId()) : undefined;\n const { exported } = await this.exporter.pushToScopes({\n scope: this.scope.legacyScope,\n ids,\n allVersions: false,\n laneObject: updatedLane,\n // no need other snaps. only the latest one. without this option, when snapping on lane from another-scope, it\n // may throw an error saying the previous snaps don't exist on the filesystem.\n // (see the e2e - \"snap on a lane when the component is new to the lane and the scope\")\n exportHeadsOnly: true,\n });\n exportedIds = exported;\n }\n\n return {\n snappedComponents: taggedComponents,\n snappedIds: taggedComponents.map((comp) => comp.id),\n autoSnappedResults: results.autoTaggedResults,\n exportedIds,\n };\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n unmerged,\n editor,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipTasks,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n unmodified = false,\n exitOnFirstFailedTask = false,\n detachHead,\n loose = false,\n }: Partial<BasicTagSnapParams> & {\n pattern?: string;\n legacyBitIds?: ComponentIdList;\n unmerged?: boolean;\n editor?: string;\n ignoreIssues?: string;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n unmodified?: boolean;\n exitOnFirstFailedTask?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(this.workspace);\n const newComponents = (await componentsList.listNewComponents()) as ComponentIdList;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(ids);\n await this.throwForVariousIssues(components, ignoreIssues);\n const makeVersionParams = {\n editor,\n ignoreNewestVersion: false,\n message,\n skipTests,\n skipTasks,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n isSnap: true,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n packageManagerConfigRootDir: this.workspace.path,\n exitOnFirstFailedTask,\n detachHead,\n loose,\n };\n const { taggedComponents, autoTaggedResults, stagedConfig, removedComponents, totalComponentsCount } =\n await this.makeVersion(ids, components, makeVersionParams);\n\n const snapResults: Partial<SnapResults> = {\n snappedComponents: taggedComponents,\n autoSnappedResults: autoTaggedResults,\n newComponents,\n removedComponents,\n totalComponentsCount,\n };\n\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.toString();\n await consumer.onDestroy(`snap (message: ${message || 'N/A'})`);\n await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(): Promise<ComponentIdList | null> {\n if (unmerged) {\n return componentsList.listDuringMergeStateComponents();\n }\n const tagPendingComponentsIds = await self.getTagPendingComponentsIds(unmodified);\n if (!tagPendingComponentsIds.length) return null;\n // when unmodified, we ask for all components, throw if no matching. if not unmodified and no matching, see error\n // below, suggesting to use --unmodified flag.\n const shouldThrowForNoMatching = unmodified;\n const getCompIds = async () => {\n if (!pattern) return tagPendingComponentsIds;\n if (!pattern.includes('*') && !pattern.includes(',')) {\n const compId = await self.workspace.resolveComponentId(pattern);\n return [compId];\n }\n return self.workspace.filterIdsFromPoolIdsByPattern(pattern, tagPendingComponentsIds, shouldThrowForNoMatching);\n };\n const componentIds = await getCompIds();\n if (!componentIds.length && pattern) {\n const allTagPending = await self.workspace.listPotentialTagIds();\n if (allTagPending.length) {\n throw new BitError(`unable to find matching for \"${pattern}\" pattern among modified/new components.\nthere are matching among unmodified components though. consider using --unmodified flag if needed.\nin case you're unsure about the pattern syntax, use \"bit pattern [--help]\"`);\n }\n }\n if (!componentIds.length) {\n return null;\n }\n return ComponentIdList.fromArray(componentIds);\n }\n }\n\n /**\n * remove tags/snaps that exist locally, which were not exported yet.\n * once a tag/snap is exported, it's impossible to delete it as other components may depend on it\n */\n async reset(\n componentPattern?: string,\n head?: boolean,\n force = false,\n soft = false\n ): Promise<{ results: ResetResult[]; isSoftUntag: boolean }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<ResetResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(this.workspace, this.remove, currentLane, head);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(this.workspace, this.remove);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern, true, { includeDeleted: true });\n const idsMatchingPatternBitIds = ComponentIdList.fromArray(idsMatchingPattern);\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toComponentId())\n );\n return removeLocalVersionsForMultipleComponents(consumer, componentsToUntag, currentLane, head, force);\n };\n const softUntag = async () => {\n const softTaggedComponentsIds = this.workspace.filter.bySoftTagged();\n const idsToRemoveSoftTags = componentPattern\n ? await this.workspace.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId, { ignoreVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId, versions: [removedVersion] };\n })\n );\n };\n let results: ResetResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const currentLaneId = consumer.getCurrentLaneId();\n const stagedConfig = await this.workspace.scope.getStagedConfig();\n\n await pMapSeries(results, async ({ component, versionToSetInBitmap }) => {\n if (!component) return;\n await updateVersions(this.workspace, stagedConfig, currentLaneId, component, versionToSetInBitmap, false);\n });\n await this.workspace.scope.legacyScope.stagedSnaps.write();\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy('reset');\n return { results, isSoftUntag: !isRealUntag };\n }\n\n async resetNeverExported(): Promise<ComponentID[]> {\n const notExported = this.workspace.consumer.getNotExportedIds();\n const hashes = notExported.map((id) => BitObject.makeHash(id.fullName));\n await this.scope.legacyScope.objects.deleteObjectsFromFS(hashes.map((h) => Ref.from(h)));\n notExported.map((id) => this.workspace.consumer.bitMap.updateComponentId(id.changeVersion(undefined)));\n await this.workspace.bitMap.write(`reset (never-exported)`);\n return notExported;\n }\n\n /**\n * used externally. don't make it private.\n */\n async _addFlattenedDependenciesToComponents(components: ConsumerComponent[], rebuildDepsGraph = false) {\n this.logger.setStatusLine('importing missing dependencies...');\n this.logger.profile('snap._addFlattenedDependenciesToComponents');\n const getLane = async () => {\n const lane = await this.scope.legacyScope.getCurrentLaneObject();\n if (!lane) return undefined;\n if (!lane.isNew) return lane;\n const forkedFrom = lane.forkedFrom;\n if (!forkedFrom) return undefined;\n return this.scope.legacyScope.loadLane(forkedFrom);\n };\n const lane = await getLane();\n\n if (rebuildDepsGraph) {\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(this.scope.legacyScope, components, lane);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n this.logger.clearStatusLine();\n await this._addFlattenedDepsGraphToComponents(components);\n return;\n }\n\n const flattenedEdgesGetter = new FlattenedEdgesGetter(this.scope, components, this.logger, lane);\n await flattenedEdgesGetter.buildGraph();\n\n components.forEach((component) => {\n flattenedEdgesGetter.populateFlattenedAndEdgesForComp(component);\n });\n this.logger.profile('snap._addFlattenedDependenciesToComponents');\n }\n\n async throwForDepsFromAnotherLane(components: ConsumerComponent[]) {\n const lane = await this.scope.legacyScope.getCurrentLaneObject();\n const allIds = ComponentIdList.fromArray(components.map((c) => c.id));\n const missingDeps = await pMapSeries(components, async (component) => {\n return this.throwForDepsFromAnotherLaneForComp(component, allIds, lane);\n });\n const flattenedMissingDeps = ComponentIdList.uniqFromArray(\n missingDeps.flat().map((id) => id.changeVersion(undefined))\n );\n if (!flattenedMissingDeps.length) return;\n // ignore the cache. even if the component exists locally, we still need its VersionHistory object\n // in order to traverse the history and determine whether it's part of the lane history.\n await this.scope.legacyScope.scopeImporter.importWithoutDeps(flattenedMissingDeps, {\n cache: false,\n ignoreMissingHead: true,\n includeVersionHistory: true,\n lane,\n reason: 'of latest with version-history to make sure there are no dependencies from another lane',\n });\n await pMapSeries(components, async (component) => {\n await this.throwForDepsFromAnotherLaneForComp(component, allIds, lane, true);\n });\n }\n\n async throwForVariousIssues(components: Component[], ignoreIssues?: string) {\n const componentsToCheck = components.filter((c) => !c.isDeleted());\n const consumerComponents = componentsToCheck.map((c) => c.state._consumer) as ConsumerComponent[];\n await this.throwForLegacyDependenciesInsideHarmony(consumerComponents);\n await this.builder.throwForComponentIssues(componentsToCheck, ignoreIssues);\n this.throwForPendingImport(consumerComponents);\n }\n\n private async throwForDepsFromAnotherLaneForComp(\n component: ConsumerComponent,\n allIds: ComponentIdList,\n lane?: Lane,\n throwForMissingObjects = false\n ) {\n const depsFromModel = component.componentFromModel?.getAllDependencies();\n const depsFromModelIds = depsFromModel\n ? ComponentIdList.fromArray(depsFromModel.map((d) => d.id))\n : new ComponentIdList();\n const deps = component.getAllDependencies();\n const missingDeps: ComponentID[] = [];\n await Promise.all(\n deps.map(async (dep) => {\n if (!this.scope.isExported(dep.id) || !dep.id.hasVersion()) return;\n if (isTag(dep.id.version)) return;\n if (allIds.hasWithoutVersion(dep.id)) return; // it's tagged/snapped now.\n if (depsFromModelIds.has(dep.id)) return; // this dep is not new, it was already snapped/tagged with it before.\n let isPartOfHistory: boolean | undefined;\n try {\n isPartOfHistory = lane\n ? await this.scope.legacyScope.isPartOfLaneHistoryOrMain(dep.id, lane)\n : await this.scope.legacyScope.isPartOfMainHistory(dep.id);\n } catch (err) {\n if (throwForMissingObjects) throw err;\n if (\n err instanceof VersionNotFound ||\n err instanceof ComponentNotFound ||\n err instanceof HeadNotFound ||\n err instanceof ParentNotFound\n ) {\n missingDeps.push(dep.id);\n return;\n }\n throw err;\n }\n\n if (!isPartOfHistory) {\n if (!throwForMissingObjects) {\n // it's possible that the dependency wasn't imported recently and the head is stale.\n missingDeps.push(dep.id);\n return;\n }\n const laneOrMainStr = lane ? `current lane \"${lane.name}\"` : 'main';\n throw new Error(\n `unable to tag/snap ${component.id.toString()}, it has a dependency ${dep.id.toString()} which is not part of ${laneOrMainStr} history.\none option to resolve this is installing ${dep.id.toStringWithoutVersion()} via \"bit install\", which installs the version from main.\nanother option, in case this dependency is not in main yet is to remove all references of this dependency in the code and then tag/snap.`\n );\n }\n })\n );\n return missingDeps;\n }\n\n async _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]) {\n const graph = new Graph<ComponentID, string>();\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n graph.setNode(new Node(dep.id.toString(), dep.id));\n graph.setEdge(new Edge(compId.toString(), dep.id.toString(), label));\n });\n };\n components.forEach((comp) => {\n graph.setNode(new Node(comp.id.toString(), comp.id));\n addEdges(comp.id, comp.dependencies, 'prod');\n addEdges(comp.id, comp.devDependencies, 'dev');\n addEdges(comp.id, comp.extensionDependencies, 'ext');\n });\n const allFlattened = components.map((comp) => comp.flattenedDependencies);\n const allFlattenedUniq = ComponentIdList.uniqFromArray(allFlattened.flat());\n const allFlattenedWithoutCurrent = allFlattenedUniq.filter((id) => !components.find((c) => c.id.isEqual(id)));\n const componentsAndVersions = await this.scope.legacyScope.getComponentsAndVersions(\n ComponentIdList.fromArray(allFlattenedWithoutCurrent)\n );\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toComponentId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n let someCompsHaveMissingFlattened = false;\n components.forEach((component) => {\n const edges = graph.outEdges(component.id.toString());\n const flattenedEdges = component.flattenedDependencies.map((dep) => graph.outEdges(dep.toString())).flat();\n const allEdges = [...edges, ...flattenedEdges];\n const edgesWithBitIds: DepEdge[] = allEdges.map((edge) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n source: graph.node(edge.source)!.attr,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n target: graph.node(edge.target)!.attr,\n type: edge.attr as DepEdgeType,\n }));\n component.flattenedEdges = edgesWithBitIds;\n\n // due to some previous bugs, some components might have missing flattened dependencies.\n // as a result, the flattenedEdges may have more components than the flattenedDependencies, which will cause\n // issues later on when the graph is built. this fixes it by adding the missing flattened dependencies, and\n // then recursively adding the flattenedEdge accordingly.\n const flattened = component.flattenedDependencies.map((dep) => dep.toString());\n const flattenedFromEdges = uniq(\n edgesWithBitIds.map((edge) => [edge.target.toString(), edge.source.toString()]).flat()\n );\n const missingFlattened = difference(flattenedFromEdges, flattened).filter((id) => id !== component.id.toString());\n\n if (missingFlattened.length) {\n someCompsHaveMissingFlattened = true;\n this.logger.warn(`missing flattened for ${component.id.toString()}: ${missingFlattened.join(', ')}`);\n const missingBitIds = missingFlattened.map((id) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return graph.node(id)!.attr;\n });\n component.flattenedDependencies.push(...missingBitIds);\n }\n });\n if (someCompsHaveMissingFlattened) {\n await this._addFlattenedDepsGraphToComponents(components);\n }\n }\n\n /**\n * used externally. don't make it private.\n */\n _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]) {\n tagResult.forEach((result) => {\n const matchingComponent = components.find((c) => c.id.isEqual(result.id));\n if (matchingComponent) {\n const existingBuilder = matchingComponent.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = result.builderData.data;\n else matchingComponent.extensions.push(result.builderData);\n }\n });\n }\n\n /**\n * used externally. don't make it private.\n */\n _getPublishedPackages(components: ConsumerComponent[]): PackageIntegritiesByPublishedPackages {\n const publishedPackages: PackageIntegritiesByPublishedPackages = new Map();\n for (const comp of components) {\n const builderExt = comp.extensions.findCoreExtension(Extensions.builder);\n const pkgData = builderExt?.data?.aspectsData?.find((a) => a.aspectId === Extensions.pkg);\n if (pkgData?.data?.publishedPackage != null) {\n publishedPackages.set(pkgData.data.publishedPackage, {\n integrity: pkgData.data.integrity,\n previouslyUsedVersion: comp.previouslyUsedVersion,\n });\n }\n }\n return publishedPackages;\n }\n\n async _addCompToObjects({\n source,\n lane,\n shouldValidateVersion = false,\n addVersionOpts,\n }: {\n source: ConsumerComponent;\n lane?: Lane;\n shouldValidateVersion?: boolean;\n addVersionOpts?: AddVersionOpts;\n }): Promise<{\n component: ModelComponent;\n version: Version;\n addedVersionStr: string;\n }> {\n const { addedVersionStr, component, version } = await this._addCompFromScopeToObjects(source, lane, addVersionOpts);\n const unmergedComponent = this.scope.legacyScope.objects.unmergedComponents.getEntry(component.toComponentId());\n if (unmergedComponent) {\n if (unmergedComponent.unrelated) {\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding an unrelated entry ${unmergedComponent.head.hash}`\n );\n if (!source.previouslyUsedVersion) {\n throw new Error(\n `source.previouslyUsedVersion must be set for ${component.name} because it's unrelated resolved.`\n );\n }\n if (unmergedComponent.unrelated === true) {\n // backward compatibility\n const unrelatedHead = Ref.from(source.previouslyUsedVersion);\n version.setUnrelated({ head: unrelatedHead, laneId: unmergedComponent.laneId });\n version.addAsOnlyParent(unmergedComponent.head);\n } else {\n const unrelated = unmergedComponent.unrelated;\n version.setUnrelated({ head: unrelated.unrelatedHead, laneId: unrelated.unrelatedLaneId });\n version.addAsOnlyParent(unrelated.headOnCurrentLane);\n }\n } else {\n // this is adding a second parent to the version. the order is important. the first parent is coming from the current-lane.\n version.addParent(unmergedComponent.head);\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding a parent ${unmergedComponent.head.hash}`\n );\n version.log.message = version.log.message || UnmergedComponents.buildSnapMessage(unmergedComponent);\n }\n this.scope.legacyScope.objects.unmergedComponents.removeComponent(component.toComponentId());\n }\n if (shouldValidateVersion) version.validate();\n return { addedVersionStr, component, version };\n }\n\n /**\n * used externally. don't make it private.\n */\n async _addCompFromScopeToObjects(\n source: ConsumerComponent,\n lane?: Lane,\n addVersionOpts?: AddVersionOpts\n ): Promise<{\n component: ModelComponent;\n version: Version;\n addedVersionStr: string;\n }> {\n const objectRepo = this.objectsRepo;\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n // @todo: fix the ts error here with \"source\"\n const component = await this.scope.legacyScope.sources.findOrAddComponent(source as any);\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files, flattenedEdges, dependenciesGraph } =\n await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n version.origin = {\n id: { scope: source.scope || (source.defaultScope as string), name: source.name },\n lane: lane ? { scope: lane.scope, name: lane.name, hash: lane.hash().toString() } : undefined,\n };\n objectRepo.add(version);\n if (flattenedEdges) this.objectsRepo.add(flattenedEdges);\n if (dependenciesGraph) this.objectsRepo.add(dependenciesGraph);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n const addedVersionStr = component.addVersion(\n version,\n source.version,\n lane,\n source.previouslyUsedVersion,\n addVersionOpts\n );\n objectRepo.add(component);\n if (lane) objectRepo.add(lane);\n files.forEach((file) => objectRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => objectRepo.add(file.source));\n return { component, version, addedVersionStr };\n }\n\n /**\n * for an existing component in the local scope, add the updated Version-object/artifacts to the repository\n * so the next \"persist()\" call will save them to the filesystem\n */\n async enrichComp(component: Component, modifiedLog?: Log) {\n const objects = await this.getObjectsToEnrichComp(component, modifiedLog);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n }\n\n /**\n * used externally. don't make it private.\n * needed to be updated after the build-pipeline was running\n */\n setBuildStatus(component: Component, buildStatus: BuildStatus) {\n component.state._consumer.buildStatus = buildStatus;\n }\n\n /**\n * for an existing component in the local scope, update the Version object with the updated data from the\n * consumer-component and return the objects that need to be saved in the filesystem\n */\n async getObjectsToEnrichComp(component: Component, modifiedLog?: Log): Promise<BitObject[]> {\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const modelComp =\n consumerComponent.modelComponent || // @todo: fix the ts error here with \"source\"\n (await this.scope.legacyScope.sources.findOrAddComponent(consumerComponent as any));\n const version = await modelComp.loadVersion(consumerComponent.id.version as string, this.objectsRepo, true);\n if (modifiedLog) version.addModifiedLog(modifiedLog);\n const artifactFiles = getArtifactsFiles(consumerComponent.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n version.extensions = consumerComponent.extensions;\n version.buildStatus = consumerComponent.buildStatus;\n const artifactObjects = artifacts.map((file) => file.source);\n const dependenciesGraph = Version.dependenciesGraphToSource(consumerComponent.dependenciesGraph);\n version.dependenciesGraphRef = dependenciesGraph ? dependenciesGraph.hash() : undefined;\n\n const result = [version, ...artifactObjects];\n if (dependenciesGraph) result.push(dependenciesGraph);\n return result;\n }\n\n private transformArtifactsFromVinylToSource(artifactsFiles: ArtifactFiles[]): ArtifactSource[] {\n const artifacts: ArtifactSource[] = [];\n artifactsFiles.forEach((artifactFiles) => {\n const artifactsSource = ArtifactFiles.fromVinylsToSources(artifactFiles.vinyls);\n if (artifactsSource.length) artifactFiles.populateRefsFromSources(artifactsSource);\n artifacts.push(...artifactsSource);\n });\n return artifacts;\n }\n\n private async loadComponentsForTagOrSnap(ids: ComponentIdList, shouldClearCacheFirst = true): Promise<Component[]> {\n const idsWithoutVersions = ids.map((id) => id.changeVersion(undefined));\n // don't pass the idsWithoutVersions to `this.application.loadAllAppsAsAspects()`.\n // otherwise, the auto-tag components (which are loaded later) won't have the application data.\n const appIds = await this.application.loadAllAppsAsAspects();\n if (shouldClearCacheFirst) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n // don't clear only the cache of these ids. we need also the auto-tag. so it's safer to just clear all.\n this.workspace.clearAllComponentsCache();\n } else {\n appIds.forEach((id) => this.workspace.clearComponentCache(id));\n }\n\n return this.workspace.getMany(idsWithoutVersions);\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const componentsMissingFromScope = components\n .filter((c) => !c.componentFromModel && this.scope.isExported(c.id))\n .map((c) => c.id.toString());\n if (componentsMissingFromScope.length) {\n throw new ComponentsPendingImport(componentsMissingFromScope);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n /**\n * used externally. don't make it private.\n *\n * the compId.version can be a range (e.g. \"^1.0.0\"), in which case, it finds the component in the local scope and\n * resolves the latest version that falls under the range.\n * in case the version has no range, it returns the same compId.\n * in case it has no version, it returns the latest.\n */\n async getCompIdWithExactVersionAccordingToSemver(compId: ComponentID): Promise<ComponentID> {\n if (isHash(compId.version)) {\n return compId;\n }\n const range = compId.version || '*'; // if not version specified, assume the latest\n const id = compId.changeVersion(undefined);\n const exactVersion = await this.scope.getExactVersionBySemverRange(id, range);\n if (!exactVersion) {\n throw new Error(`unable to find a version that satisfies \"${range}\" of \"${compId.toString()}\"`);\n }\n return compId.changeVersion(exactVersion);\n }\n\n async updateSourceFiles(component: Component, files: FileData[]) {\n const currentFiles = component.state.filesystem.files;\n\n files.forEach((file) => {\n if (file.delete) {\n const found = currentFiles.find((f) => f.relative === file.path);\n if (!found) return;\n if (this.workspace) {\n fs.removeSync(found.path);\n }\n const index = currentFiles.findIndex((f) => f.relative === file.path);\n if (index !== -1) {\n currentFiles.splice(index, 1);\n }\n return;\n }\n const currentFile = currentFiles.find((f) => f.relative === file.path);\n if (currentFile) {\n currentFile.contents = Buffer.from(file.content);\n } else {\n currentFiles.push(\n new SourceFile({ base: '.', path: file.path, contents: Buffer.from(file.content), test: false })\n );\n }\n });\n\n if (!currentFiles.length)\n throw new Error(`unable to update component ${component.id.toString()}, all files were deleted`);\n }\n\n /**\n * used externally. don't make it private.\n */\n async updateDependenciesVersionsOfComponent(\n component: Component,\n dependencies: ComponentID[],\n currentBitIds: ComponentID[]\n ) {\n const updatedIds = ComponentIdList.fromArray([...currentBitIds, ...dependencies]);\n const componentIdStr = component.id.toString();\n const legacyComponent: ConsumerComponent = component.state._consumer;\n const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];\n const dependenciesList = this.dependencyResolver.getDependencies(component);\n deps.forEach((dep) => {\n const updatedBitId = updatedIds.searchWithoutVersion(dep.id);\n if (updatedBitId) {\n const depIdStr = dep.id.toString();\n const packageName = dependenciesList.findDependency(depIdStr)?.getPackageName?.();\n if (!packageName) {\n throw new Error(\n `unable to find the package-name of \"${depIdStr}\" dependency inside the dependency-resolver data of \"${componentIdStr}\"`\n );\n }\n this.logger.debug(`updating \"${componentIdStr}\", dependency ${depIdStr} to version ${updatedBitId.version}}`);\n dep.id = updatedBitId;\n dep.packageName = packageName;\n }\n });\n await this.UpdateDepsAspectsSaveIntoDepsResolver(component, updatedIds.toStringArray());\n }\n\n /**\n * it does two things:\n * 1. update extensions versions according to the version provided in updatedIds.\n * 2. save all dependencies data from the legacy into DependencyResolver aspect.\n */\n async UpdateDepsAspectsSaveIntoDepsResolver(component: Component, updatedIds: string[]) {\n const legacyComponent: ConsumerComponent = component.state._consumer;\n legacyComponent.extensions.forEach((ext) => {\n const extId = ext.extensionId;\n if (!extId) return;\n const found = updatedIds.find((d) => d.startsWith(`${extId.toStringWithoutVersion()}@`));\n if (found) {\n const updatedExtId = ComponentID.fromString(found);\n this.logger.debug(\n `updating \"${component.id.toString()}\", extension ${extId.toString()} to version ${updatedExtId.version}}`\n );\n ext.extensionId = updatedExtId;\n if (ext.newExtensionId) ext.newExtensionId = updatedExtId;\n }\n });\n\n component.state.aspects = await this.scope.createAspectListFromExtensionDataList(legacyComponent.extensions);\n\n const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.config.extensions.findExtension(extId);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n const extension = new ExtensionDataEntry(undefined, undefined, extId, undefined, data);\n component.config.extensions.push(extension);\n }\n\n private async getTagPendingComponentsIds(includeUnmodified = false) {\n const ids = includeUnmodified\n ? await this.workspace.listPotentialTagIds()\n : await this.workspace.listTagPendingIds();\n const localOnlyIds = this.workspace.filter.byLocalOnly(ids);\n if (!localOnlyIds.length) {\n return ids;\n }\n const localOnlyListIds = ComponentIdList.fromArray(localOnlyIds);\n return ids.filter((id) => !localOnlyListIds.hasWithoutVersion(id));\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean,\n unmerged: boolean\n ): Promise<{ bitIds: ComponentID[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace);\n if (persist) {\n const softTaggedComponents = this.workspace.filter.bySoftTagged();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingComponentsIds = await this.getTagPendingComponentsIds(includeUnmodified);\n\n const snappedComponentsIds = (await this.workspace.filter.bySnappedOnMain()).map((id) =>\n id.changeVersion(undefined)\n );\n\n const tagPendingBitIdsIncludeSnapped = ComponentIdList.fromArray([\n ...tagPendingComponentsIds,\n ...snappedComponentsIds,\n ]);\n\n if (snappedComponentsIds.length) {\n const localOnlyIds = this.workspace.filter.byLocalOnly(snappedComponentsIds);\n const localOnlyListIds = ComponentIdList.fromArray(localOnlyIds);\n snappedComponentsIds.forEach((id) => {\n if (localOnlyListIds.hasWithoutVersion(id)) {\n const index = snappedComponentsIds.findIndex((c) => c.isEqual(id));\n snappedComponentsIds.splice(index, 1);\n }\n });\n }\n\n if (ids.length) {\n const componentIds = await pMapSeries(ids, async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idIsPattern = this.workspace.isPattern(id);\n if (idIsPattern) {\n const allIds = await this.workspace.filterIdsFromPoolIdsByPattern(\n idWithoutVer,\n tagPendingBitIdsIncludeSnapped\n );\n return allIds.map((componentId) => componentId.changeVersion(version));\n }\n const componentId = await this.workspace.resolveComponentId(idWithoutVer);\n if (!includeUnmodified) {\n if (!tagPendingBitIdsIncludeSnapped.hasWithoutVersion(componentId)) return null;\n }\n return componentId.changeVersion(version);\n });\n\n return { bitIds: compact(componentIds.flat()), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n if (unmerged) {\n return { bitIds: componentsList.listDuringMergeStateComponents(), warnings };\n }\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(\n tagPendingComponentsIds,\n false\n );\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingBitIdsIncludeSnapped.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [Slot.withType<OnPreSnap>()];\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n LoggerAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ImporterAspect,\n ConfigStoreAspect,\n DependenciesAspect,\n ApplicationAspect,\n RemoveAspect,\n ];\n static runtime = MainRuntime;\n static async provider(\n [\n workspace,\n cli,\n loggerMain,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n configStore,\n deps,\n application,\n remove,\n ]: [\n Workspace,\n CLIMain,\n LoggerMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain,\n ImporterMain,\n ConfigStoreMain,\n DependenciesMain,\n ApplicationMain,\n RemoveMain,\n ],\n config,\n [onPreSnapSlot]: [OnPreSnapSlot]\n ) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(\n workspace,\n logger,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n deps,\n application,\n remove,\n onPreSnapSlot\n );\n const snapCmd = new SnapCmd(snapping, logger, configStore);\n const tagCmd = new TagCmd(snapping, logger, configStore);\n const resetCmd = new ResetCmd(snapping);\n const snapDistanceCmd = new SnapDistanceCmd(scope, workspace);\n cli.register(tagCmd, snapCmd, resetCmd, snapDistanceCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":";;;;;;AACA,SAAAA,KAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAM,0BAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,yBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAO,WAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,UAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,QAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,OAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,aAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,YAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,SAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,QAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAY,SAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,QAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,SAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,QAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,YAAA;EAAA,MAAAd,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAa,WAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAe,QAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,OAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,UAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,SAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,MAAA;EAAA,MAAAjB,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAgB,KAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,YAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,WAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAmB,gBAAA;EAAA,MAAAnB,IAAA,GAAAC,OAAA;EAAAkB,eAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAoB,aAAA;EAAA,MAAApB,IAAA,GAAAC,OAAA;EAAAmB,YAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAqB,OAAA;EAAA,MAAArB,IAAA,GAAAC,OAAA;EAAAoB,MAAA,YAAAA,CAAA;IAAA,OAAArB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAsB,SAAA;EAAA,MAAAtB,IAAA,GAAAC,OAAA;EAAAqB,QAAA,YAAAA,CAAA;IAAA,OAAAtB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAuB,oBAAA;EAAA,MAAAvB,IAAA,GAAAC,OAAA;EAAAsB,mBAAA,YAAAA,CAAA;IAAA,OAAAvB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAwB,SAAA;EAAA,MAAAxB,IAAA,GAAAC,OAAA;EAAAuB,QAAA,YAAAA,CAAA;IAAA,OAAAxB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAyB,SAAA;EAAA,MAAAzB,IAAA,GAAAC,OAAA;EAAAwB,QAAA,YAAAA,CAAA;IAAA,OAAAzB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA0B,QAAA;EAAA,MAAA1B,IAAA,GAAAC,OAAA;EAAAyB,OAAA,YAAAA,CAAA;IAAA,OAAA1B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA2B,UAAA;EAAA,MAAA3B,IAAA,GAAAC,OAAA;EAAA0B,SAAA,YAAAA,CAAA;IAAA,OAAA3B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA4B,QAAA;EAAA,MAAA5B,IAAA,GAAAC,OAAA;EAAA2B,OAAA,YAAAA,CAAA;IAAA,OAAA5B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA6B,kBAAA;EAAA,MAAA7B,IAAA,GAAAC,OAAA;EAAA4B,iBAAA,YAAAA,CAAA;IAAA,OAAA7B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA8B,WAAA;EAAA,MAAA9B,IAAA,GAAAC,OAAA;EAAA6B,UAAA,YAAAA,CAAA;IAAA,OAAA9B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA+B,cAAA;EAAA,MAAA/B,IAAA,GAAAC,OAAA;EAAA8B,aAAA,YAAAA,CAAA;IAAA,OAAA/B,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgC,SAAA;EAAA,MAAAhC,IAAA,GAAAC,OAAA;EAAA+B,QAAA,YAAAA,CAAA;IAAA,OAAAhC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiC,UAAA;EAAA,MAAAjC,IAAA,GAAAC,OAAA;EAAAgC,SAAA,YAAAA,CAAA;IAAA,OAAAjC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkC,QAAA;EAAA,MAAAlC,IAAA,GAAAC,OAAA;EAAAiC,OAAA,YAAAA,CAAA;IAAA,OAAAlC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAmC,UAAA;EAAA,MAAAnC,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAkC,SAAA,YAAAA,CAAA;IAAA,OAAAnC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAoC,uBAAA;EAAA,MAAApC,IAAA,GAAAC,OAAA;EAAAmC,sBAAA,YAAAA,CAAA;IAAA,OAAApC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAqC,gBAAA;EAAA,MAAArC,IAAA,GAAAC,OAAA;EAAAoC,eAAA,YAAAA,CAAA;IAAA,OAAArC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAsC,iBAAA;EAAA,MAAAtC,IAAA,GAAAC,OAAA;EAAAqC,gBAAA,YAAAA,CAAA;IAAA,OAAAtC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAuC,gBAAA;EAAA,MAAAvC,IAAA,GAAAC,OAAA;EAAAsC,eAAA,YAAAA,CAAA;IAAA,OAAAvC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMA,SAAAwC,aAAA;EAAA,MAAAxC,IAAA,GAAAC,OAAA;EAAAuC,YAAA,YAAAA,CAAA;IAAA,OAAAxC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAyC,SAAA;EAAA,MAAAzC,IAAA,GAAAC,OAAA;EAAAwC,QAAA,YAAAA,CAAA;IAAA,OAAAzC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAA0C,cAAA;EAAA,MAAA1C,IAAA,GAAAC,OAAA;EAAAyC,aAAA,YAAAA,CAAA;IAAA,OAAA1C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA2C,QAAA;EAAA,MAAA3C,IAAA,GAAAC,OAAA;EAAA0C,OAAA,YAAAA,CAAA;IAAA,OAAA3C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA4C,cAAA;EAAA,MAAA5C,IAAA,GAAAC,OAAA;EAAA2C,aAAA,YAAAA,CAAA;IAAA,OAAA5C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAA6C,SAAA;EAAA,MAAA7C,IAAA,GAAAC,OAAA;EAAA4C,QAAA,YAAAA,CAAA;IAAA,OAAA7C,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwC,SAAAI,uBAAA0C,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAwFjC,MAAM8B,YAAY,CAAC;EAExBC,WAAWA,CACAC,SAAoB,EACpBC,MAAc,EACdC,kBAA0C,EAC1CC,KAAgB,EACjBC,QAAoB,EACnBC,OAAoB,EACrBC,QAAsB,EACtBC,IAAsB,EACtBC,WAA4B,EAC5BC,MAAkB,EACjBC,aAA4B,EACrC;IAAA,KAXSV,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAC1CC,KAAgB,GAAhBA,KAAgB;IAAA,KACjBC,QAAoB,GAApBA,QAAoB;IAAA,KACnBC,OAAoB,GAApBA,OAAoB;IAAA,KACrBC,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,IAAsB,GAAtBA,IAAsB;IAAA,KACtBC,WAA4B,GAA5BA,WAA4B;IAAA,KAC5BC,MAAkB,GAAlBA,MAAkB;IAAA,KACjBC,aAA4B,GAA5BA,aAA4B;IAAA5B,eAAA;IAErC,IAAI,CAAC6B,WAAW,GAAG,IAAI,CAACR,KAAK,EAAES,WAAW,EAAEC,OAAO;EACrD;EAEAC,iBAAiBA,CAACC,SAAoB,EAAE;IACtC,IAAI,CAACL,aAAa,CAACM,QAAQ,CAACD,SAAS,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE;EACA,MAAME,GAAGA,CAAC;IACRC,GAAG,GAAG,EAAE;IACRC,OAAO,GAAG,EAAE;IACZC,OAAO;IACPC,MAAM,GAAG,EAAE;IACXC,YAAY;IACZC,OAAO,GAAG,KAAK;IACfC,QAAQ,GAAG,KAAK;IAChBC,WAAW;IACXC,YAAY;IACZC,YAAY;IACZC,mBAAmB,GAAG,KAAK;IAC3BC,SAAS,GAAG,KAAK;IACjBC,SAAS;IACTC,WAAW,GAAG,KAAK;IACnBC,KAAK;IACLC,UAAU,GAAG,KAAK;IAClBC,IAAI,GAAG,KAAK;IACZC,OAAO,GAAG,KAAK;IACfC,iBAAiB,GAAG,KAAK;IACzBC,gBAAgB;IAChBC,WAAW,GAAG,CAAC;IACfC,0BAA0B,GAAG,KAAK;IAClCC,QAAQ,GAAG,KAAK;IAChBC,UAAU;IACVC,YAAY;IACZC,KAAK,GAAG;EAYgB,CAAC,EAA8B;IACvD,IAAIT,IAAI,EAAEF,KAAK,GAAG,KAAK;IACvB,IAAIX,MAAM,IAAIc,OAAO,EAAE;MACrB,MAAM,KAAIS,oBAAQ,EAAC,wDAAwD,CAAC;IAC9E;IACA,IAAIvB,MAAM,IAAIF,OAAO,EAAE;MACrB,MAAM,KAAIyB,oBAAQ,EAAC,wDAAwD,CAAC;IAC9E;IACAhB,mBAAmB,GAAGiB,OAAO,CAACjB,mBAAmB,IAAIa,UAAU,IAAIC,YAAY,CAAC;IAEhF,MAAMI,YAAY,GAAG1B,OAAO;IAC5B,IAAI,CAAC,IAAI,CAACpB,SAAS,EAAE,MAAM,KAAI+C,kCAAqB,EAAC,CAAC;IACtD,MAAMC,iBAAiB,GAAG,IAAAC,6BAAe,EAACH,YAAY,CAAC;IACvD,MAAMI,QAAQ,GAAG,IAAI,CAAClD,SAAS,CAACkD,QAAQ;IACxC,MAAMC,cAAc,GAAG,KAAIC,yBAAc,EAAC,IAAI,CAACpD,SAAS,CAAC;IACzD,IAAI,CAACC,MAAM,CAACoD,aAAa,CAAC,gCAAgC,CAAC;IAC3D,MAAMC,aAAa,GAAG,MAAMH,cAAc,CAACI,iBAAiB,CAAC,CAAC;IAC9D,MAAM;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAG,MAAM,IAAI,CAACC,kBAAkB,CACxDzB,UAAU,EACVa,YAAY,EACZX,OAAO,EACPjB,GAAG,EACHK,OAAO,EACPC,QACF,CAAC;IACD,IAAI,CAACgC,MAAM,CAAC5E,MAAM,EAAE,OAAO,IAAI;IAE/B,MAAM+E,OAAO,GAAGC,8BAAe,CAACC,SAAS,CAACL,MAAM,CAAC;IAEjD,IAAI,CAACvD,MAAM,CAAC6D,KAAK,CAAC,qCAAqCH,OAAO,CAACI,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAACN,OAAO,EAAE,CAACzB,IAAI,CAAC;IACxE,MAAM,IAAI,CAACgC,qBAAqB,CAACF,UAAU,EAAErC,YAAY,CAAC;IAE1D,MAAMwC,MAAM,GAAG;MACbhD,OAAO;MACPE,MAAM;MACNC,YAAY;MACZwB,YAAY,EAAEE,iBAAiB;MAC/BvB,WAAW;MACXC,YAAY;MACZE,mBAAmB;MACnBC,SAAS;MACTC,SAAS;MACTC,WAAW;MACXG,IAAI;MACJF,KAAK;MACLG,OAAO;MACPI,0BAA0B;MAC1BH,iBAAiB;MACjBC,gBAAgB;MAChBC,WAAW;MACX8B,2BAA2B,EAAE,IAAI,CAACpE,SAAS,CAACqE,IAAI;MAChDC,qBAAqB,EAAE9B,QAAQ;MAC/BC,UAAU;MACVC,YAAY;MACZC;IACF,CAAC;IACD,MAAM;MACJ4B,gBAAgB;MAChBC,iBAAiB;MACjBC,iBAAiB;MACjBC,YAAY;MACZC,iBAAiB;MACjBC;IACF,CAAC,GAAG,MAAM,IAAI,CAACC,WAAW,CAAClB,OAAO,EAAEK,UAAU,EAAEG,MAAM,CAAC;IAEvD,MAAMW,UAAU,GAAG;MACjBP,gBAAgB;MAChBC,iBAAiB;MACjBO,SAAS,EAAE7C,IAAI;MACfuC,iBAAiB;MACjBhB,QAAQ;MACRH,aAAa;MACbqB,iBAAiB;MACjBC;IACF,CAAC;IAED,MAAM1B,QAAQ,CAAC8B,SAAS,CAAC,iBAAiB7D,OAAO,IAAI,KAAK,GAAG,CAAC;IAC9D,MAAMuD,YAAY,EAAEO,KAAK,CAAC,CAAC;IAC3B;IACA,OAAOH,UAAU;EACnB;EAEA,MAAMD,WAAWA,CAAC3D,GAAkB,EAAE8C,UAAuB,EAAEG,MAA0B,EAAE;IACzF,MAAMe,kBAAkB,GAAGlB,UAAU,CAACmB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,SAAS,CAAwB;IAC1F,MAAMC,YAAY,GAAG3B,8BAAe,CAACC,SAAS,CAAC3C,GAAG,CAAC;IACnD,MAAMsE,YAAY,GAAG,KAAIC,4BAAY,EAAC,IAAI,EAAEzB,UAAU,EAAEkB,kBAAkB,EAAEK,YAAY,EAAEpB,MAAM,CAAC;IACjG,OAAOqB,YAAY,CAACX,WAAW,CAAC,CAAC;EACnC;EAEA,MAAca,0BAA0BA,CACtCC,SAAoB,EACpBC,YAAkC,EACW;IAC7C,IAAI,CAACA,YAAY,EAAE;IACnBC,4BAAiB,CAACC,wBAAwB,CAACF,YAAY,CAAC;IACxD,MAAMG,0BAA0B,GAAGF,4BAAiB,CAACG,gBAAgB,CAACJ,YAAY,CAAC;IACnF,MAAMK,sBAAsB,GAAGF,0BAA0B,CAACG,iBAAiB,CAACC,8CAAwB,CAACC,EAAE,CAAC;IACxG,IAAIH,sBAAsB,EAAE;MAC1B;MACAA,sBAAsB,CAACpL,IAAI,CAACwL,MAAM,GAAGV,SAAS,CAACN,KAAK,CAACC,SAAS,CAACgB,UAAU,CAACJ,iBAAiB,CACzFC,8CAAwB,CAACC,EAC3B,CAAC,EAAEvL,IAAI,CAACwL,MAAM;IAChB;IACA,MAAME,QAAQ,GAAGR,0BAA0B,CAACS,yBAAyB,CAAC,CAAC;IACvE,MAAMC,iBAAoC,GAAGd,SAAS,CAACN,KAAK,CAACC,SAAS;IACtE,MAAMoB,iBAAiB,GAAGb,4BAAiB,CAACc,YAAY,CAAC,CACvDZ,0BAA0B,EAC1BU,iBAAiB,CAACH,UAAU,CAC7B,CAAC,CAACM,uBAAuB,CAAC,CAAC;IAC5BH,iBAAiB,CAACH,UAAU,GAAGI,iBAAiB;IAChDf,SAAS,CAACN,KAAK,CAACwB,OAAO,GAAG,MAAM,IAAI,CAAC1G,KAAK,CAAC2G,qCAAqC,CAACJ,iBAAiB,CAAC;IAEnG,OAAOH,QAAQ;EACjB;EAEA,MAAMQ,aAAaA,CACjBC,kBAAwC,EACxC7C,MAS2B,EACI;IAC/B,IAAI,IAAI,CAACnE,SAAS,EAAE;MAClB,MAAM,KAAI4C,oBAAQ,EAChB,mGACF,CAAC;IACH;IACA,IAAIqE,IAAsB;IAC1B,MAAMC,SAAS,GAAG/C,MAAM,CAAC8C,IAAI;IAC7B,IAAIC,SAAS,EAAE;MACb,MAAMC,MAAM,GAAGC,gBAAM,CAACC,KAAK,CAACH,SAAS,CAAC;MACtC,IAAI;QACFD,IAAI,GAAG,MAAM,IAAI,CAAC3G,QAAQ,CAACgH,gBAAgB,CAACH,MAAM,CAAC;MACrD,CAAC,CAAC,OAAOI,GAAQ,EAAE;QACjB,IAAIA,GAAG,CAACxH,WAAW,CAACyH,IAAI,KAAKC,uBAAY,CAACD,IAAI,EAAE,MAAMD,GAAG;QACzD;QACAN,IAAI,GAAG,MAAM,IAAAS,iCAAiB,EAACP,MAAM,CAACK,IAAI,EAAE,IAAI,CAACrH,KAAK,EAAEgH,MAAM,CAAChH,KAAK,CAAC;QACrE;QACA;QACA;QACA,IAAI,CAACA,KAAK,CAACS,WAAW,CAAC+G,SAAS,CAACC,YAAY,CAACT,MAAM,CAACK,IAAI,CAAC;MAC5D;MACA;MACA;MACA,IAAI,CAACrH,KAAK,CAACS,WAAW,CAACiH,gBAAgB,CAACV,MAAM,CAAC;MAC/C,IAAI,CAAChH,KAAK,CAACS,WAAW,CAACkH,aAAa,CAACC,8BAA8B,GAAG,IAAI;IAC5E;IACA,MAAMC,WAAW,GAAGf,IAAI,EAAEgB,qCAAqC,CAAC,CAAC;IACjE,MAAMC,eAAe,GAAGlB,kBAAkB,CAAC7B,GAAG,CAAEgD,QAAQ,IAAK;MAC3D,OAAO;QACLC,WAAW,EAAEC,0BAAW,CAACC,UAAU,CAACH,QAAQ,CAACC,WAAW,CAAC;QACzDG,YAAY,EAAEJ,QAAQ,CAACI,YAAY,IAAI,EAAE;QACzC1B,OAAO,EAAEsB,QAAQ,CAACtB,OAAO;QACzB1F,OAAO,EAAEgH,QAAQ,CAAChH,OAAO;QACzBqH,KAAK,EAAEL,QAAQ,CAACK,KAAK;QACrBC,KAAK,EAAEN,QAAQ,CAACM,KAAK;QACrBC,QAAQ,EAAEP,QAAQ,CAACO,QAAQ;QAC3BC,eAAe,EAAE,CAACR,QAAQ,CAACQ,eAAe,IAAI,EAAE,EAAExD,GAAG,CAAEyD,GAAG,KAAM;UAC9DxC,EAAE,EAAEwC,GAAG,CAACxC,EAAE;UACVhF,OAAO,EAAEwH,GAAG,CAACxH,OAAO;UACpByH,WAAW,EAAED,GAAG,CAACC,WAAW,IAAI,IAAI;UACpCC,IAAI,EAAEF,GAAG,CAACE,IAAI,IAAI;QACpB,CAAC,CAAC,CAAC;QACHC,kBAAkB,EAAEZ,QAAQ,CAACY,kBAAkB;QAC/C3H,OAAO,EAAE+G,QAAQ,CAAC/G;MACpB,CAAC;IACH,CAAC,CAAC;;IAEF;;IAEA,MAAMmE,YAAY,GAAG,IAAAyD,iBAAO,EAACd,eAAe,CAAC/C,GAAG,CAAEnH,CAAC,IAAMA,CAAC,CAACyK,KAAK,GAAG,IAAI,GAAGzK,CAAC,CAACoK,WAAY,CAAC,CAAC;IAC1F,MAAMa,UAAU,GAAGf,eAAe,CAAC/C,GAAG,CAAE+D,CAAC,IAAKA,CAAC,CAACd,WAAW,CAAC;IAC5D,MAAMe,kBAAkB,GAAG5D,YAAY,CAACJ,GAAG,CAAEiB,EAAE,IAAKA,EAAE,CAACgD,aAAa,CAACC,iBAAM,CAAC,CAAC;IAC7E,MAAMC,YAAY,GAAG,IAAAN,iBAAO,EAACd,eAAe,CAAC/C,GAAG,CAAEnH,CAAC,IAAMA,CAAC,CAACyK,KAAK,GAAGzK,CAAC,GAAG,IAAK,CAAC,CAAC;IAC9E,MAAMsF,aAAa,GAAG,MAAMiG,OAAO,CAACC,GAAG,CACrCF,YAAY,CAACnE,GAAG,CAAEsE,OAAO,IAAK,IAAAC,8CAAqB,EAAC,IAAI,CAACvJ,KAAK,EAAE,IAAI,CAACD,kBAAkB,EAAEuJ,OAAO,EAAE,IAAI,CAAC,CACzG,CAAC;IAED,MAAM,IAAI,CAACtJ,KAAK,CAACwJ,MAAM,CAACR,kBAAkB,EAAE;MAC1CS,qBAAqB,EAAE,KAAK;MAC5B3C,IAAI;MACJ4C,MAAM,EAAE;IACV,CAAC,CAAC;IACF,MAAMC,WAAW,GAAI1D,EAAe,IAAqB;MACvD,MAAM+B,QAAQ,GAAGD,eAAe,CAAC6B,IAAI,CAAE/L,CAAC,IAAK;QAC3C,OAAOA,CAAC,CAACoK,WAAW,CAAC4B,OAAO,CAAC5D,EAAE,EAAE;UAAE6D,aAAa,EAAE;QAAK,CAAC,CAAC;MAC3D,CAAC,CAAC;MACF,IAAI,CAAC9B,QAAQ,EAAE,MAAM,IAAI+B,KAAK,CAAC,kBAAkB9D,EAAE,CAACrC,QAAQ,CAAC,CAAC,qBAAqB,CAAC;MACpF,OAAOoE,QAAQ;IACjB,CAAC;IACD,MAAMgC,uBAAuB,GAAGhG,MAAM,CAACgG,uBAAuB,IAAI,EAAE;IACpE,MAAMC,iBAAiB,GAAG,MAAM,IAAI,CAACjK,KAAK,CAACkK,eAAe,CAACF,uBAAuB,CAAC;IAEnF,MAAMG,kBAAkB,GAAG,IAAAtB,iBAAO,EAChC,MAAM,IAAAuB,qBAAU,EAACpB,kBAAkB,EAAE,MAAO/C,EAAE,IAAK;MACjD,MAAMoE,cAAc,GAAGJ,iBAAiB,CAACL,IAAI,CAAE3E,CAAC,IAAKA,CAAC,CAACgB,EAAE,CAACqE,qBAAqB,CAACrE,EAAE,CAAC,CAAC;MACpF,OAAOoE,cAAc,IAAI,IAAI,CAACrK,KAAK,CAACuK,GAAG,CAACtE,EAAE,CAAC;IAC7C,CAAC,CACH,CAAC;IACD;IACA,IAAIjC,MAAM,CAACwG,gBAAgB,IAAI3C,WAAW,EAAE;MAC1CsC,kBAAkB,CAACzL,OAAO,CAAE+L,IAAI,IAAK;QACnC,MAAMrK,IAAI,GAAG,IAAI,CAACL,kBAAkB,CAAC2K,wBAAwB,CAACD,IAAI,CAAC;QACnE,MAAMzC,QAAQ,GAAG2B,WAAW,CAACc,IAAI,CAACxE,EAAE,CAAC;QACrC7F,IAAI,CAAC1B,OAAO,CAAE+J,GAAG,IAAK;UACpB,MAAMkC,QAAQ,GAAG9C,WAAW,CAAC+C,oBAAoB,CAACnC,GAAG,CAACR,WAAW,CAAC;UAClE,IAAI0C,QAAQ,EAAE;YACZ3C,QAAQ,CAACI,YAAY,CAAC/J,IAAI,CAACsM,QAAQ,CAAC/G,QAAQ,CAAC,CAAC,CAAC;UACjD;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,MAAMC,UAAU,GAAG,CAAC,GAAGsG,kBAAkB,EAAE,GAAGhH,aAAa,CAAC;;IAE5D;IACA,MAAM,IAAAiH,qBAAU,EAACvG,UAAU,EAAE,MAAO2B,SAAS,IAAK;MAChD,MAAMwC,QAAQ,GAAG2B,WAAW,CAACnE,SAAS,CAACS,EAAE,CAAC;MAC1C,MAAMG,QAAQ,GAAG,MAAM,IAAI,CAACb,0BAA0B,CAACC,SAAS,EAAEwC,QAAQ,CAACtB,OAAO,CAAC;MACnF;MACA,MAAM,IAAAmE,gCAAO,EAACrF,SAAS,EAAEwC,QAAQ,EAAE,IAAI,CAAChI,KAAK,EAAE,IAAI,CAACI,IAAI,EAAE,IAAI,CAACL,kBAAkB,EAAE,IAAI,EAAEqG,QAAQ,CAAC;IACpG,CAAC,CAAC;;IAEF;IACA,MAAMgD,OAAO,CAACC,GAAG,CACfc,kBAAkB,CAACnF,GAAG,CAAC,MAAOyF,IAAI,IAAK;MACrC,MAAMzC,QAAQ,GAAG2B,WAAW,CAACc,IAAI,CAACxE,EAAE,CAAC;MACrC,IAAI+B,QAAQ,CAACK,KAAK,EAAE5J,MAAM,EAAE;QAC1B,MAAM,IAAI,CAACqM,iBAAiB,CAACL,IAAI,EAAEzC,QAAQ,CAACK,KAAK,CAAC;MACpD;IACF,CAAC,CACH,CAAC;;IAED;IACA;IACA;IACA;IACA,MAAM;MAAE0C;IAAqB,CAAC,GAAG/G,MAAM;IACvC,MAAMgH,kBAAkB,GAAGD,oBAAoB,GAC3ClH,UAAU,CAAC3F,MAAM,CAAE+G,CAAC,IAAK8F,oBAAoB,CAACE,iBAAiB,CAAChG,CAAC,CAACgB,EAAE,CAAC,CAAC,GACtEpC,UAAU;IAEd,MAAM,IAAI,CAAC7D,KAAK,CAACkL,oBAAoB,CAACF,kBAAkB,CAAC;;IAEzD;IACA,MAAM,IAAAZ,qBAAU,EAACY,kBAAkB,EAAE,MAAOP,IAAI,IAAK,IAAI,CAACzK,KAAK,CAACmL,6BAA6B,CAACV,IAAI,CAAC,CAAC;IAEpG,MAAM1J,GAAG,GAAG0C,8BAAe,CAACC,SAAS,CAACoF,UAAU,CAAC;IACjD,MAAMsC,SAAS,GAAG1I,OAAO,CAACsB,MAAM,CAAClD,GAAG,CAAC;IACrC,MAAMuK,iBAAiB,GAAA9M,aAAA,CAAAA,aAAA,KAClByF,MAAM;MACTsH,cAAc,EAAEvD,eAAe,CAAC/C,GAAG,CAAE+D,CAAC,KAAM;QAC1Cd,WAAW,EAAEc,CAAC,CAACd,WAAW;QAC1BjH,OAAO,EAAE+H,CAAC,CAAC/H,OAAO;QAClBoH,YAAY,EAAE,EAAE;QAChBmD,YAAY,EAAEH,SAAS,GAAGrC,CAAC,CAAC9H,OAAO,IAAI,OAAO,GAAGuK;MACnD,CAAC,CAAC,CAAC;MACHxJ,OAAO,EAAE,IAAI;MACbyJ,MAAM,EAAE,CAACL,SAAS;MAClBpK,OAAO,EAAEgD,MAAM,CAAChD,OAAiB;MACjC0K,sBAAsB,EAAE1H,MAAM,CAACwG;IAAgB,EAChD;IACD,MAAMmB,OAAO,GAAG,MAAM,IAAI,CAACjH,WAAW,CAAC3D,GAAG,EAAE8C,UAAU,EAAEwH,iBAAiB,CAAC;IAE1E,MAAM;MAAEjH;IAAiB,CAAC,GAAGuH,OAAO;IACpC,IAAIC,WAAwC;IAC5C,IAAI5H,MAAM,CAAC3F,IAAI,EAAE;MACf,MAAMwN,WAAW,GAAG/E,IAAI,GAAG,MAAM,IAAI,CAAC9G,KAAK,CAACS,WAAW,CAACqL,QAAQ,CAAChF,IAAI,CAACiF,QAAQ,CAAC,CAAC,CAAC,GAAGP,SAAS;MAC7F,MAAM;QAAEQ;MAAS,CAAC,GAAG,MAAM,IAAI,CAAC/L,QAAQ,CAACgM,YAAY,CAAC;QACpDjM,KAAK,EAAE,IAAI,CAACA,KAAK,CAACS,WAAW;QAC7BM,GAAG;QACHmL,WAAW,EAAE,KAAK;QAClBC,UAAU,EAAEN,WAAW;QACvB;QACA;QACA;QACAO,eAAe,EAAE;MACnB,CAAC,CAAC;MACFR,WAAW,GAAGI,QAAQ;IACxB;IAEA,OAAO;MACLK,iBAAiB,EAAEjI,gBAAgB;MACnCkI,UAAU,EAAElI,gBAAgB,CAACY,GAAG,CAAEyF,IAAI,IAAKA,IAAI,CAACxE,EAAE,CAAC;MACnDsG,kBAAkB,EAAEZ,OAAO,CAACtH,iBAAiB;MAC7CuH;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,MAAMY,IAAIA,CAAC;IACTC,OAAO;IACPC,YAAY;IAAE;IACdrL,QAAQ;IACRH,MAAM;IACNF,OAAO,GAAG,EAAE;IACZQ,YAAY;IACZE,SAAS,GAAG,KAAK;IACjBC,SAAS;IACTgL,YAAY,GAAG,KAAK;IACpB9K,KAAK;IACLO,0BAA0B,GAAG,KAAK;IAClCH,iBAAiB,GAAG,KAAK;IACzBC,gBAAgB;IAChBJ,UAAU,GAAG,KAAK;IAClBqC,qBAAqB,GAAG,KAAK;IAC7B7B,UAAU;IACVE,KAAK,GAAG;EAWV,CAAC,EAA+B;IAC9B,IAAI,CAAC,IAAI,CAAC3C,SAAS,EAAE,MAAM,KAAI+C,kCAAqB,EAAC,CAAC;IACtD,IAAI6J,OAAO,IAAIC,YAAY,EAAE,MAAM,IAAI3C,KAAK,CAAC,sDAAsD,CAAC;IACpG,MAAMhH,QAAkB,GAAG,IAAI,CAAClD,SAAS,CAACkD,QAAQ;IAClD,MAAMC,cAAc,GAAG,KAAIC,yBAAc,EAAC,IAAI,CAACpD,SAAS,CAAC;IACzD,MAAMsD,aAAa,GAAI,MAAMH,cAAc,CAACI,iBAAiB,CAAC,CAAqB;IACnF;IACA,MAAMwJ,IAAI,GAAG,IAAI;IACjB,MAAM7L,GAAG,GAAG2L,YAAY,KAAK,MAAMG,YAAY,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC9L,GAAG,EAAE,OAAO,IAAI;IACrB,IAAI,CAACjB,MAAM,CAAC6D,KAAK,CAAC,sCAAsC5C,GAAG,CAAC6C,QAAQ,CAAC,CAAC,EAAE,CAAC;IACzE,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAAC/C,GAAG,CAAC;IAC7D,MAAM,IAAI,CAACgD,qBAAqB,CAACF,UAAU,EAAErC,YAAY,CAAC;IAC1D,MAAM6J,iBAAiB,GAAG;MACxBnK,MAAM;MACNO,mBAAmB,EAAE,KAAK;MAC1BT,OAAO;MACPU,SAAS;MACTC,SAAS;MACTC,WAAW,EAAE+K,YAAY;MACzB3K,OAAO,EAAE,IAAI;MACbD,IAAI,EAAE,KAAK;MACXF,KAAK;MACL4J,MAAM,EAAE,IAAI;MACZrJ,0BAA0B;MAC1BH,iBAAiB;MACjBC,gBAAgB;MAChB+B,2BAA2B,EAAE,IAAI,CAACpE,SAAS,CAACqE,IAAI;MAChDC,qBAAqB;MACrB7B,UAAU;MACVE;IACF,CAAC;IACD,MAAM;MAAE4B,gBAAgB;MAAEC,iBAAiB;MAAEE,YAAY;MAAEC,iBAAiB;MAAEC;IAAqB,CAAC,GAClG,MAAM,IAAI,CAACC,WAAW,CAAC3D,GAAG,EAAE8C,UAAU,EAAEwH,iBAAiB,CAAC;IAE5D,MAAMyB,WAAiC,GAAG;MACxCT,iBAAiB,EAAEjI,gBAAgB;MACnCmI,kBAAkB,EAAElI,iBAAiB;MACrClB,aAAa;MACbqB,iBAAiB;MACjBC;IACF,CAAC;IAED,MAAMsI,WAAW,GAAGhK,QAAQ,CAACiK,gBAAgB,CAAC,CAAC;IAC/CF,WAAW,CAACG,QAAQ,GAAGF,WAAW,CAACG,SAAS,CAAC,CAAC,GAAG,IAAI,GAAGH,WAAW,CAACnJ,QAAQ,CAAC,CAAC;IAC9E,MAAMb,QAAQ,CAAC8B,SAAS,CAAC,kBAAkB7D,OAAO,IAAI,KAAK,GAAG,CAAC;IAC/D,MAAMuD,YAAY,EAAEO,KAAK,CAAC,CAAC;IAC3B;IACA,OAAOgI,WAAW;IAElB,eAAeD,YAAYA,CAAA,EAAoC;MAC7D,IAAIxL,QAAQ,EAAE;QACZ,OAAO2B,cAAc,CAACmK,8BAA8B,CAAC,CAAC;MACxD;MACA,MAAMC,uBAAuB,GAAG,MAAMR,IAAI,CAACS,0BAA0B,CAACvL,UAAU,CAAC;MACjF,IAAI,CAACsL,uBAAuB,CAAC3O,MAAM,EAAE,OAAO,IAAI;MAChD;MACA;MACA,MAAM6O,wBAAwB,GAAGxL,UAAU;MAC3C,MAAMyL,UAAU,GAAG,MAAAA,CAAA,KAAY;QAC7B,IAAI,CAACd,OAAO,EAAE,OAAOW,uBAAuB;QAC5C,IAAI,CAACX,OAAO,CAACe,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACf,OAAO,CAACe,QAAQ,CAAC,GAAG,CAAC,EAAE;UACpD,MAAMC,MAAM,GAAG,MAAMb,IAAI,CAAC/M,SAAS,CAAC6N,kBAAkB,CAACjB,OAAO,CAAC;UAC/D,OAAO,CAACgB,MAAM,CAAC;QACjB;QACA,OAAOb,IAAI,CAAC/M,SAAS,CAAC8N,6BAA6B,CAAClB,OAAO,EAAEW,uBAAuB,EAAEE,wBAAwB,CAAC;MACjH,CAAC;MACD,MAAMlI,YAAY,GAAG,MAAMmI,UAAU,CAAC,CAAC;MACvC,IAAI,CAACnI,YAAY,CAAC3G,MAAM,IAAIgO,OAAO,EAAE;QACnC,MAAMmB,aAAa,GAAG,MAAMhB,IAAI,CAAC/M,SAAS,CAACgO,mBAAmB,CAAC,CAAC;QAChE,IAAID,aAAa,CAACnP,MAAM,EAAE;UACxB,MAAM,KAAIgE,oBAAQ,EAAC,gCAAgCgK,OAAO;AACpE;AACA,2EAA2E,CAAC;QACpE;MACF;MACA,IAAI,CAACrH,YAAY,CAAC3G,MAAM,EAAE;QACxB,OAAO,IAAI;MACb;MACA,OAAOgF,8BAAe,CAACC,SAAS,CAAC0B,YAAY,CAAC;IAChD;EACF;;EAEA;AACF;AACA;AACA;EACE,MAAM0I,KAAKA,CACTC,gBAAyB,EACzBC,IAAc,EACdC,KAAK,GAAG,KAAK,EACblM,IAAI,GAAG,KAAK,EAC+C;IAC3D,IAAI,CAAC,IAAI,CAAClC,SAAS,EAAE,MAAM,KAAI+C,kCAAqB,EAAC,CAAC;IACtD,MAAMG,QAAQ,GAAG,IAAI,CAAClD,SAAS,CAACkD,QAAQ;IACxC,MAAMgK,WAAW,GAAG,MAAMhK,QAAQ,CAACmL,oBAAoB,CAAC,CAAC;IACzD,MAAMC,KAAK,GAAG,MAAAA,CAAA,KAAoC;MAChD,IAAI,CAACJ,gBAAgB,EAAE;QACrB,OAAO,IAAAK,qDAAmC,EAAC,IAAI,CAACvO,SAAS,EAAE,IAAI,CAACS,MAAM,EAAEyM,WAAW,EAAEiB,IAAI,CAAC;MAC5F;MACA,MAAMK,mBAAmB,GAAG,MAAM,IAAAC,gDAA8B,EAAC,IAAI,CAACzO,SAAS,EAAE,IAAI,CAACS,MAAM,CAAC;MAC7F,MAAMiO,kBAAkB,GAAG,MAAM,IAAI,CAAC1O,SAAS,CAAC2O,YAAY,CAACT,gBAAgB,EAAE,IAAI,EAAE;QAAEU,cAAc,EAAE;MAAK,CAAC,CAAC;MAC9G,MAAMC,wBAAwB,GAAGjL,8BAAe,CAACC,SAAS,CAAC6K,kBAAkB,CAAC;MAC9E,MAAMI,iBAAiB,GAAGN,mBAAmB,CAACnQ,MAAM,CAAE0Q,cAAc,IAClEF,wBAAwB,CAACzD,iBAAiB,CAAC2D,cAAc,CAACC,aAAa,CAAC,CAAC,CAC3E,CAAC;MACD,OAAO,IAAAC,0DAAwC,EAAC/L,QAAQ,EAAE4L,iBAAiB,EAAE5B,WAAW,EAAEiB,IAAI,EAAEC,KAAK,CAAC;IACxG,CAAC;IACD,MAAMc,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAMC,uBAAuB,GAAG,IAAI,CAACnP,SAAS,CAAC3B,MAAM,CAAC+Q,YAAY,CAAC,CAAC;MACpE,MAAMC,mBAAmB,GAAGnB,gBAAgB,GACxC,MAAM,IAAI,CAAClO,SAAS,CAAC8N,6BAA6B,CAACI,gBAAgB,EAAEiB,uBAAuB,CAAC,GAC7FA,uBAAuB;MAC3B,OAAO,IAAAnG,iBAAO,EACZqG,mBAAmB,CAAClK,GAAG,CAAEiD,WAAW,IAAK;QACvC,MAAMkH,YAAY,GAAGpM,QAAQ,CAACqM,MAAM,CAACC,YAAY,CAACpH,WAAW,EAAE;UAAE6B,aAAa,EAAE;QAAK,CAAC,CAAC;QACvF,MAAMwF,cAAc,GAAGH,YAAY,CAACI,WAAW,EAAEtO,OAAO;QACxD,IAAI,CAACqO,cAAc,EAAE,OAAO,IAAI;QAChCH,YAAY,CAACK,gBAAgB,CAAC,CAAC;QAC/B,OAAO;UAAEvJ,EAAE,EAAEgC,WAAW;UAAEwH,QAAQ,EAAE,CAACH,cAAc;QAAE,CAAC;MACxD,CAAC,CACH,CAAC;IACH,CAAC;IACD,IAAI3D,OAAsB;IAC1B,MAAM+D,WAAW,GAAG,CAAC3N,IAAI;IACzB,IAAI2N,WAAW,EAAE;MACf/D,OAAO,GAAG,MAAMwC,KAAK,CAAC,CAAC;MACvB,MAAMpL,QAAQ,CAAC/C,KAAK,CAACU,OAAO,CAACsB,OAAO,CAAC,CAAC;MACtC,MAAM2N,aAAa,GAAG5M,QAAQ,CAACiK,gBAAgB,CAAC,CAAC;MACjD,MAAMzI,YAAY,GAAG,MAAM,IAAI,CAAC1E,SAAS,CAACG,KAAK,CAAC4P,eAAe,CAAC,CAAC;MAEjE,MAAM,IAAAxF,qBAAU,EAACuB,OAAO,EAAE,OAAO;QAAEnG,SAAS;QAAEqK;MAAqB,CAAC,KAAK;QACvE,IAAI,CAACrK,SAAS,EAAE;QAChB,MAAM,IAAAsK,8BAAc,EAAC,IAAI,CAACjQ,SAAS,EAAE0E,YAAY,EAAEoL,aAAa,EAAEnK,SAAS,EAAEqK,oBAAoB,EAAE,KAAK,CAAC;MAC3G,CAAC,CAAC;MACF,MAAM,IAAI,CAAChQ,SAAS,CAACG,KAAK,CAACS,WAAW,CAACsP,WAAW,CAACjL,KAAK,CAAC,CAAC;IAC5D,CAAC,MAAM;MACL6G,OAAO,GAAG,MAAMoD,SAAS,CAAC,CAAC;MAC3BhM,QAAQ,CAACqM,MAAM,CAACY,aAAa,CAAC,CAAC;IACjC;IAEA,MAAMjN,QAAQ,CAAC8B,SAAS,CAAC,OAAO,CAAC;IACjC,OAAO;MAAE8G,OAAO;MAAEsE,WAAW,EAAE,CAACP;IAAY,CAAC;EAC/C;EAEA,MAAMQ,kBAAkBA,CAAA,EAA2B;IACjD,MAAMC,WAAW,GAAG,IAAI,CAACtQ,SAAS,CAACkD,QAAQ,CAACqN,iBAAiB,CAAC,CAAC;IAC/D,MAAMC,MAAM,GAAGF,WAAW,CAACnL,GAAG,CAAEiB,EAAE,IAAKqK,oBAAS,CAACC,QAAQ,CAACtK,EAAE,CAACuK,QAAQ,CAAC,CAAC;IACvE,MAAM,IAAI,CAACxQ,KAAK,CAACS,WAAW,CAACC,OAAO,CAAC+P,mBAAmB,CAACJ,MAAM,CAACrL,GAAG,CAAE0L,CAAC,IAAKC,cAAG,CAACC,IAAI,CAACF,CAAC,CAAC,CAAC,CAAC;IACxFP,WAAW,CAACnL,GAAG,CAAEiB,EAAE,IAAK,IAAI,CAACpG,SAAS,CAACkD,QAAQ,CAACqM,MAAM,CAACyB,iBAAiB,CAAC5K,EAAE,CAACgD,aAAa,CAACuC,SAAS,CAAC,CAAC,CAAC;IACtG,MAAM,IAAI,CAAC3L,SAAS,CAACuP,MAAM,CAACtK,KAAK,CAAC,wBAAwB,CAAC;IAC3D,OAAOqL,WAAW;EACpB;;EAEA;AACF;AACA;EACE,MAAMW,qCAAqCA,CAACjN,UAA+B,EAAE3B,gBAAgB,GAAG,KAAK,EAAE;IACrG,IAAI,CAACpC,MAAM,CAACoD,aAAa,CAAC,mCAAmC,CAAC;IAC9D,IAAI,CAACpD,MAAM,CAACiR,OAAO,CAAC,4CAA4C,CAAC;IACjE,MAAMC,OAAO,GAAG,MAAAA,CAAA,KAAY;MAC1B,MAAMlK,IAAI,GAAG,MAAM,IAAI,CAAC9G,KAAK,CAACS,WAAW,CAACyN,oBAAoB,CAAC,CAAC;MAChE,IAAI,CAACpH,IAAI,EAAE,OAAO0E,SAAS;MAC3B,IAAI,CAAC1E,IAAI,CAACwB,KAAK,EAAE,OAAOxB,IAAI;MAC5B,MAAMmK,UAAU,GAAGnK,IAAI,CAACmK,UAAU;MAClC,IAAI,CAACA,UAAU,EAAE,OAAOzF,SAAS;MACjC,OAAO,IAAI,CAACxL,KAAK,CAACS,WAAW,CAACqL,QAAQ,CAACmF,UAAU,CAAC;IACpD,CAAC;IACD,MAAMnK,IAAI,GAAG,MAAMkK,OAAO,CAAC,CAAC;IAE5B,IAAI9O,gBAAgB,EAAE;MACpB,MAAMgP,2BAA2B,GAAG,KAAIC,uDAA2B,EAAC,IAAI,CAACnR,KAAK,CAACS,WAAW,EAAEoD,UAAU,EAAEiD,IAAI,CAAC;MAC7G,MAAMoK,2BAA2B,CAACE,6BAA6B,CAAC,CAAC;MACjE,IAAI,CAACtR,MAAM,CAACuR,eAAe,CAAC,CAAC;MAC7B,MAAM,IAAI,CAACC,kCAAkC,CAACzN,UAAU,CAAC;MACzD;IACF;IAEA,MAAM0N,oBAAoB,GAAG,KAAIC,sCAAoB,EAAC,IAAI,CAACxR,KAAK,EAAE6D,UAAU,EAAE,IAAI,CAAC/D,MAAM,EAAEgH,IAAI,CAAC;IAChG,MAAMyK,oBAAoB,CAACE,UAAU,CAAC,CAAC;IAEvC5N,UAAU,CAACnF,OAAO,CAAE8G,SAAS,IAAK;MAChC+L,oBAAoB,CAACG,gCAAgC,CAAClM,SAAS,CAAC;IAClE,CAAC,CAAC;IACF,IAAI,CAAC1F,MAAM,CAACiR,OAAO,CAAC,4CAA4C,CAAC;EACnE;EAEA,MAAMY,2BAA2BA,CAAC9N,UAA+B,EAAE;IACjE,MAAMiD,IAAI,GAAG,MAAM,IAAI,CAAC9G,KAAK,CAACS,WAAW,CAACyN,oBAAoB,CAAC,CAAC;IAChE,MAAM0D,MAAM,GAAGnO,8BAAe,CAACC,SAAS,CAACG,UAAU,CAACmB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACgB,EAAE,CAAC,CAAC;IACrE,MAAM4L,WAAW,GAAG,MAAM,IAAAzH,qBAAU,EAACvG,UAAU,EAAE,MAAO2B,SAAS,IAAK;MACpE,OAAO,IAAI,CAACsM,kCAAkC,CAACtM,SAAS,EAAEoM,MAAM,EAAE9K,IAAI,CAAC;IACzE,CAAC,CAAC;IACF,MAAMiL,oBAAoB,GAAGtO,8BAAe,CAACuO,aAAa,CACxDH,WAAW,CAACI,IAAI,CAAC,CAAC,CAACjN,GAAG,CAAEiB,EAAE,IAAKA,EAAE,CAACgD,aAAa,CAACuC,SAAS,CAAC,CAC5D,CAAC;IACD,IAAI,CAACuG,oBAAoB,CAACtT,MAAM,EAAE;IAClC;IACA;IACA,MAAM,IAAI,CAACuB,KAAK,CAACS,WAAW,CAACkH,aAAa,CAACuK,iBAAiB,CAACH,oBAAoB,EAAE;MACjFI,KAAK,EAAE,KAAK;MACZC,iBAAiB,EAAE,IAAI;MACvBC,qBAAqB,EAAE,IAAI;MAC3BvL,IAAI;MACJ4C,MAAM,EAAE;IACV,CAAC,CAAC;IACF,MAAM,IAAAU,qBAAU,EAACvG,UAAU,EAAE,MAAO2B,SAAS,IAAK;MAChD,MAAM,IAAI,CAACsM,kCAAkC,CAACtM,SAAS,EAAEoM,MAAM,EAAE9K,IAAI,EAAE,IAAI,CAAC;IAC9E,CAAC,CAAC;EACJ;EAEA,MAAM/C,qBAAqBA,CAACF,UAAuB,EAAErC,YAAqB,EAAE;IAC1E,MAAM8Q,iBAAiB,GAAGzO,UAAU,CAAC3F,MAAM,CAAE+G,CAAC,IAAK,CAACA,CAAC,CAACsN,SAAS,CAAC,CAAC,CAAC;IAClE,MAAMxN,kBAAkB,GAAGuN,iBAAiB,CAACtN,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,SAAS,CAAwB;IACjG,MAAM,IAAI,CAACqN,uCAAuC,CAACzN,kBAAkB,CAAC;IACtE,MAAM,IAAI,CAAC7E,OAAO,CAACuS,uBAAuB,CAACH,iBAAiB,EAAE9Q,YAAY,CAAC;IAC3E,IAAI,CAACkR,qBAAqB,CAAC3N,kBAAkB,CAAC;EAChD;EAEA,MAAc+M,kCAAkCA,CAC9CtM,SAA4B,EAC5BoM,MAAuB,EACvB9K,IAAW,EACX6L,sBAAsB,GAAG,KAAK,EAC9B;IACA,MAAMC,aAAa,GAAGpN,SAAS,CAACqN,kBAAkB,EAAEC,kBAAkB,CAAC,CAAC;IACxE,MAAMC,gBAAgB,GAAGH,aAAa,GAClCnP,8BAAe,CAACC,SAAS,CAACkP,aAAa,CAAC5N,GAAG,CAAEgO,CAAC,IAAKA,CAAC,CAAC/M,EAAE,CAAC,CAAC,GACzD,KAAIxC,8BAAe,EAAC,CAAC;IACzB,MAAMrD,IAAI,GAAGoF,SAAS,CAACsN,kBAAkB,CAAC,CAAC;IAC3C,MAAMjB,WAA0B,GAAG,EAAE;IACrC,MAAMzI,OAAO,CAACC,GAAG,CACfjJ,IAAI,CAAC4E,GAAG,CAAC,MAAOyD,GAAG,IAAK;MACtB,IAAI,CAAC,IAAI,CAACzI,KAAK,CAACiT,UAAU,CAACxK,GAAG,CAACxC,EAAE,CAAC,IAAI,CAACwC,GAAG,CAACxC,EAAE,CAACiN,UAAU,CAAC,CAAC,EAAE;MAC5D,IAAI,IAAAC,yBAAK,EAAC1K,GAAG,CAACxC,EAAE,CAAChF,OAAO,CAAC,EAAE;MAC3B,IAAI2Q,MAAM,CAAC3G,iBAAiB,CAACxC,GAAG,CAACxC,EAAE,CAAC,EAAE,OAAO,CAAC;MAC9C,IAAI8M,gBAAgB,CAACK,GAAG,CAAC3K,GAAG,CAACxC,EAAE,CAAC,EAAE,OAAO,CAAC;MAC1C,IAAIoN,eAAoC;MACxC,IAAI;QACFA,eAAe,GAAGvM,IAAI,GAClB,MAAM,IAAI,CAAC9G,KAAK,CAACS,WAAW,CAAC6S,yBAAyB,CAAC7K,GAAG,CAACxC,EAAE,EAAEa,IAAI,CAAC,GACpE,MAAM,IAAI,CAAC9G,KAAK,CAACS,WAAW,CAAC8S,mBAAmB,CAAC9K,GAAG,CAACxC,EAAE,CAAC;MAC9D,CAAC,CAAC,OAAOmB,GAAG,EAAE;QACZ,IAAIuL,sBAAsB,EAAE,MAAMvL,GAAG;QACrC,IACEA,GAAG,YAAYoM,yBAAe,IAC9BpM,GAAG,YAAYqM,2BAAiB,IAChCrM,GAAG,YAAYsM,sBAAY,IAC3BtM,GAAG,YAAYuM,wBAAc,EAC7B;UACA9B,WAAW,CAACxT,IAAI,CAACoK,GAAG,CAACxC,EAAE,CAAC;UACxB;QACF;QACA,MAAMmB,GAAG;MACX;MAEA,IAAI,CAACiM,eAAe,EAAE;QACpB,IAAI,CAACV,sBAAsB,EAAE;UAC3B;UACAd,WAAW,CAACxT,IAAI,CAACoK,GAAG,CAACxC,EAAE,CAAC;UACxB;QACF;QACA,MAAM2N,aAAa,GAAG9M,IAAI,GAAG,iBAAiBA,IAAI,CAACO,IAAI,GAAG,GAAG,MAAM;QACnE,MAAM,IAAI0C,KAAK,CACb,sBAAsBvE,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,yBAAyB6E,GAAG,CAACxC,EAAE,CAACrC,QAAQ,CAAC,CAAC,yBAAyBgQ,aAAa;AACzI,2CAA2CnL,GAAG,CAACxC,EAAE,CAAC4N,sBAAsB,CAAC,CAAC;AAC1E,yIACU,CAAC;MACH;IACF,CAAC,CACH,CAAC;IACD,OAAOhC,WAAW;EACpB;EAEA,MAAMP,kCAAkCA,CAACzN,UAA+B,EAAE;IACxE,MAAMiQ,KAAK,GAAG,KAAIC,cAAK,EAAsB,CAAC;IAC9C,MAAMC,QAAQ,GAAGA,CAACvG,MAAmB,EAAErF,YAA+C,EAAE6L,KAAkB,KAAK;MAC7G7L,YAAY,CAACmC,GAAG,CAAC,CAAC,CAAC7L,OAAO,CAAE+J,GAAG,IAAK;QAClCqL,KAAK,CAACI,OAAO,CAAC,KAAIC,aAAI,EAAC1L,GAAG,CAACxC,EAAE,CAACrC,QAAQ,CAAC,CAAC,EAAE6E,GAAG,CAACxC,EAAE,CAAC,CAAC;QAClD6N,KAAK,CAACM,OAAO,CAAC,KAAIC,aAAI,EAAC5G,MAAM,CAAC7J,QAAQ,CAAC,CAAC,EAAE6E,GAAG,CAACxC,EAAE,CAACrC,QAAQ,CAAC,CAAC,EAAEqQ,KAAK,CAAC,CAAC;MACtE,CAAC,CAAC;IACJ,CAAC;IACDpQ,UAAU,CAACnF,OAAO,CAAE+L,IAAI,IAAK;MAC3BqJ,KAAK,CAACI,OAAO,CAAC,KAAIC,aAAI,EAAC1J,IAAI,CAACxE,EAAE,CAACrC,QAAQ,CAAC,CAAC,EAAE6G,IAAI,CAACxE,EAAE,CAAC,CAAC;MACpD+N,QAAQ,CAACvJ,IAAI,CAACxE,EAAE,EAAEwE,IAAI,CAACrC,YAAY,EAAE,MAAM,CAAC;MAC5C4L,QAAQ,CAACvJ,IAAI,CAACxE,EAAE,EAAEwE,IAAI,CAAC6J,eAAe,EAAE,KAAK,CAAC;MAC9CN,QAAQ,CAACvJ,IAAI,CAACxE,EAAE,EAAEwE,IAAI,CAAC8J,qBAAqB,EAAE,KAAK,CAAC;IACtD,CAAC,CAAC;IACF,MAAMC,YAAY,GAAG3Q,UAAU,CAACmB,GAAG,CAAEyF,IAAI,IAAKA,IAAI,CAACgK,qBAAqB,CAAC;IACzE,MAAMC,gBAAgB,GAAGjR,8BAAe,CAACuO,aAAa,CAACwC,YAAY,CAACvC,IAAI,CAAC,CAAC,CAAC;IAC3E,MAAM0C,0BAA0B,GAAGD,gBAAgB,CAACxW,MAAM,CAAE+H,EAAE,IAAK,CAACpC,UAAU,CAAC+F,IAAI,CAAE3E,CAAC,IAAKA,CAAC,CAACgB,EAAE,CAAC4D,OAAO,CAAC5D,EAAE,CAAC,CAAC,CAAC;IAC7G,MAAM2O,qBAAqB,GAAG,MAAM,IAAI,CAAC5U,KAAK,CAACS,WAAW,CAACoU,wBAAwB,CACjFpR,8BAAe,CAACC,SAAS,CAACiR,0BAA0B,CACtD,CAAC;IACDC,qBAAqB,CAAClW,OAAO,CAAC,CAAC;MAAE8G,SAAS;MAAEvE,OAAO;MAAE6T;IAAW,CAAC,KAAK;MACpE,MAAMrH,MAAM,GAAGjI,SAAS,CAACqJ,aAAa,CAAC,CAAC,CAAC5F,aAAa,CAAC6L,UAAU,CAAC;MAClEhB,KAAK,CAACI,OAAO,CAAC,KAAIC,aAAI,EAAC1G,MAAM,CAAC7J,QAAQ,CAAC,CAAC,EAAE6J,MAAM,CAAC,CAAC;MAClDuG,QAAQ,CAACvG,MAAM,EAAExM,OAAO,CAACmH,YAAY,EAAE,MAAM,CAAC;MAC9C4L,QAAQ,CAACvG,MAAM,EAAExM,OAAO,CAACqT,eAAe,EAAE,KAAK,CAAC;MAChDN,QAAQ,CAACvG,MAAM,EAAExM,OAAO,CAACsT,qBAAqB,EAAE,KAAK,CAAC;IACxD,CAAC,CAAC;IACF,IAAIQ,6BAA6B,GAAG,KAAK;IACzClR,UAAU,CAACnF,OAAO,CAAE8G,SAAS,IAAK;MAChC,MAAMwP,KAAK,GAAGlB,KAAK,CAACmB,QAAQ,CAACzP,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,CAAC;MACrD,MAAMsR,cAAc,GAAG1P,SAAS,CAACiP,qBAAqB,CAACzP,GAAG,CAAEyD,GAAG,IAAKqL,KAAK,CAACmB,QAAQ,CAACxM,GAAG,CAAC7E,QAAQ,CAAC,CAAC,CAAC,CAAC,CAACqO,IAAI,CAAC,CAAC;MAC1G,MAAMkD,QAAQ,GAAG,CAAC,GAAGH,KAAK,EAAE,GAAGE,cAAc,CAAC;MAC9C,MAAME,eAA0B,GAAGD,QAAQ,CAACnQ,GAAG,CAAEqQ,IAAI,KAAM;QACzD;QACAC,MAAM,EAAExB,KAAK,CAACyB,IAAI,CAACF,IAAI,CAACC,MAAM,CAAC,CAAEE,IAAI;QACrC;QACAC,MAAM,EAAE3B,KAAK,CAACyB,IAAI,CAACF,IAAI,CAACI,MAAM,CAAC,CAAED,IAAI;QACrC7M,IAAI,EAAE0M,IAAI,CAACG;MACb,CAAC,CAAC,CAAC;MACHhQ,SAAS,CAAC0P,cAAc,GAAGE,eAAe;;MAE1C;MACA;MACA;MACA;MACA,MAAMM,SAAS,GAAGlQ,SAAS,CAACiP,qBAAqB,CAACzP,GAAG,CAAEyD,GAAG,IAAKA,GAAG,CAAC7E,QAAQ,CAAC,CAAC,CAAC;MAC9E,MAAM+R,kBAAkB,GAAG,IAAAC,cAAI,EAC7BR,eAAe,CAACpQ,GAAG,CAAEqQ,IAAI,IAAK,CAACA,IAAI,CAACI,MAAM,CAAC7R,QAAQ,CAAC,CAAC,EAAEyR,IAAI,CAACC,MAAM,CAAC1R,QAAQ,CAAC,CAAC,CAAC,CAAC,CAACqO,IAAI,CAAC,CACvF,CAAC;MACD,MAAM4D,gBAAgB,GAAG,IAAAC,oBAAU,EAACH,kBAAkB,EAAED,SAAS,CAAC,CAACxX,MAAM,CAAE+H,EAAE,IAAKA,EAAE,KAAKT,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,CAAC;MAEjH,IAAIiS,gBAAgB,CAACpX,MAAM,EAAE;QAC3BsW,6BAA6B,GAAG,IAAI;QACpC,IAAI,CAACjV,MAAM,CAACiW,IAAI,CAAC,yBAAyBvQ,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,KAAKiS,gBAAgB,CAACG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpG,MAAMC,aAAa,GAAGJ,gBAAgB,CAAC7Q,GAAG,CAAEiB,EAAE,IAAK;UACjD;UACA,OAAO6N,KAAK,CAACyB,IAAI,CAACtP,EAAE,CAAC,CAAEuP,IAAI;QAC7B,CAAC,CAAC;QACFhQ,SAAS,CAACiP,qBAAqB,CAACpW,IAAI,CAAC,GAAG4X,aAAa,CAAC;MACxD;IACF,CAAC,CAAC;IACF,IAAIlB,6BAA6B,EAAE;MACjC,MAAM,IAAI,CAACzD,kCAAkC,CAACzN,UAAU,CAAC;IAC3D;EACF;;EAEA;AACF;AACA;EACEqS,4BAA4BA,CAACrS,UAA+B,EAAEsS,SAA8B,EAAE;IAC5FA,SAAS,CAACzX,OAAO,CAAE0X,MAAM,IAAK;MAC5B,MAAMC,iBAAiB,GAAGxS,UAAU,CAAC+F,IAAI,CAAE3E,CAAC,IAAKA,CAAC,CAACgB,EAAE,CAAC4D,OAAO,CAACuM,MAAM,CAACnQ,EAAE,CAAC,CAAC;MACzE,IAAIoQ,iBAAiB,EAAE;QACrB,MAAMC,eAAe,GAAGD,iBAAiB,CAAClQ,UAAU,CAACJ,iBAAiB,CAACwQ,qBAAU,CAACrW,OAAO,CAAC;QAC1F,IAAIoW,eAAe,EAAEA,eAAe,CAAC5b,IAAI,GAAG0b,MAAM,CAACI,WAAW,CAAC9b,IAAI,CAAC,KAC/D2b,iBAAiB,CAAClQ,UAAU,CAAC9H,IAAI,CAAC+X,MAAM,CAACI,WAAW,CAAC;MAC5D;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEC,qBAAqBA,CAAC5S,UAA+B,EAAyC;IAC5F,MAAMS,iBAAwD,GAAG,IAAIoS,GAAG,CAAC,CAAC;IAC1E,KAAK,MAAMjM,IAAI,IAAI5G,UAAU,EAAE;MAC7B,MAAM8S,UAAU,GAAGlM,IAAI,CAACtE,UAAU,CAACJ,iBAAiB,CAACwQ,qBAAU,CAACrW,OAAO,CAAC;MACxE,MAAM0W,OAAO,GAAGD,UAAU,EAAEjc,IAAI,EAAEmc,WAAW,EAAEjN,IAAI,CAAEkN,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAKR,qBAAU,CAACS,GAAG,CAAC;MACzF,IAAIJ,OAAO,EAAElc,IAAI,EAAEuc,gBAAgB,IAAI,IAAI,EAAE;QAC3C3S,iBAAiB,CAAC4S,GAAG,CAACN,OAAO,CAAClc,IAAI,CAACuc,gBAAgB,EAAE;UACnDE,SAAS,EAAEP,OAAO,CAAClc,IAAI,CAACyc,SAAS;UACjCC,qBAAqB,EAAE3M,IAAI,CAAC2M;QAC9B,CAAC,CAAC;MACJ;IACF;IACA,OAAO9S,iBAAiB;EAC1B;EAEA,MAAM+S,iBAAiBA,CAAC;IACtB/B,MAAM;IACNxO,IAAI;IACJwQ,qBAAqB,GAAG,KAAK;IAC7BC;EAMF,CAAC,EAIE;IACD,MAAM;MAAEC,eAAe;MAAEhS,SAAS;MAAEvE;IAAQ,CAAC,GAAG,MAAM,IAAI,CAACwW,0BAA0B,CAACnC,MAAM,EAAExO,IAAI,EAAEyQ,cAAc,CAAC;IACnH,MAAMG,iBAAiB,GAAG,IAAI,CAAC1X,KAAK,CAACS,WAAW,CAACC,OAAO,CAACiX,kBAAkB,CAACC,QAAQ,CAACpS,SAAS,CAACqJ,aAAa,CAAC,CAAC,CAAC;IAC/G,IAAI6I,iBAAiB,EAAE;MACrB,IAAIA,iBAAiB,CAACG,SAAS,EAAE;QAC/B,IAAI,CAAC/X,MAAM,CAAC6D,KAAK,CACf,0CAA0C6B,SAAS,CAAC6B,IAAI,gCAAgCqQ,iBAAiB,CAAC1J,IAAI,CAAC8J,IAAI,EACrH,CAAC;QACD,IAAI,CAACxC,MAAM,CAAC8B,qBAAqB,EAAE;UACjC,MAAM,IAAIrN,KAAK,CACb,gDAAgDvE,SAAS,CAAC6B,IAAI,mCAChE,CAAC;QACH;QACA,IAAIqQ,iBAAiB,CAACG,SAAS,KAAK,IAAI,EAAE;UACxC;UACA,MAAME,aAAa,GAAGpH,cAAG,CAACC,IAAI,CAAC0E,MAAM,CAAC8B,qBAAqB,CAAC;UAC5DnW,OAAO,CAAC+W,YAAY,CAAC;YAAEhK,IAAI,EAAE+J,aAAa;YAAE/Q,MAAM,EAAE0Q,iBAAiB,CAAC1Q;UAAO,CAAC,CAAC;UAC/E/F,OAAO,CAACgX,eAAe,CAACP,iBAAiB,CAAC1J,IAAI,CAAC;QACjD,CAAC,MAAM;UACL,MAAM6J,SAAS,GAAGH,iBAAiB,CAACG,SAAS;UAC7C5W,OAAO,CAAC+W,YAAY,CAAC;YAAEhK,IAAI,EAAE6J,SAAS,CAACE,aAAa;YAAE/Q,MAAM,EAAE6Q,SAAS,CAACK;UAAgB,CAAC,CAAC;UAC1FjX,OAAO,CAACgX,eAAe,CAACJ,SAAS,CAACM,iBAAiB,CAAC;QACtD;MACF,CAAC,MAAM;QACL;QACAlX,OAAO,CAACmX,SAAS,CAACV,iBAAiB,CAAC1J,IAAI,CAAC;QACzC,IAAI,CAAClO,MAAM,CAAC6D,KAAK,CACf,0CAA0C6B,SAAS,CAAC6B,IAAI,sBAAsBqQ,iBAAiB,CAAC1J,IAAI,CAAC8J,IAAI,EAC3G,CAAC;QACD7W,OAAO,CAACoX,GAAG,CAACrX,OAAO,GAAGC,OAAO,CAACoX,GAAG,CAACrX,OAAO,IAAIsX,4BAAkB,CAACC,gBAAgB,CAACb,iBAAiB,CAAC;MACrG;MACA,IAAI,CAAC1X,KAAK,CAACS,WAAW,CAACC,OAAO,CAACiX,kBAAkB,CAACa,eAAe,CAAChT,SAAS,CAACqJ,aAAa,CAAC,CAAC,CAAC;IAC9F;IACA,IAAIyI,qBAAqB,EAAErW,OAAO,CAACwX,QAAQ,CAAC,CAAC;IAC7C,OAAO;MAAEjB,eAAe;MAAEhS,SAAS;MAAEvE;IAAQ,CAAC;EAChD;;EAEA;AACF;AACA;EACE,MAAMwW,0BAA0BA,CAC9BnC,MAAyB,EACzBxO,IAAW,EACXyQ,cAA+B,EAK9B;IACD,MAAMmB,UAAU,GAAG,IAAI,CAAClY,WAAW;IACnC;IACA;IACA,MAAMgF,SAAS,GAAG,MAAM,IAAI,CAACxF,KAAK,CAACS,WAAW,CAACkY,OAAO,CAACC,kBAAkB,CAACtD,MAAa,CAAC;IACxF,MAAMuD,aAAa,GAAG,IAAAC,8BAAiB,EAACxD,MAAM,CAACnP,UAAU,CAAC;IAC1D,MAAM4S,SAAS,GAAG,IAAI,CAACC,mCAAmC,CAACH,aAAa,CAAC;IACzE,MAAM;MAAE5X,OAAO;MAAEoH,KAAK;MAAE6M,cAAc;MAAE+D;IAAkB,CAAC,GACzD,MAAM,IAAI,CAACjZ,KAAK,CAACS,WAAW,CAACkY,OAAO,CAACO,0BAA0B,CAAC5D,MAAM,CAAC;IACzErU,OAAO,CAACkY,MAAM,GAAG;MACflT,EAAE,EAAE;QAAEjG,KAAK,EAAEsV,MAAM,CAACtV,KAAK,IAAKsV,MAAM,CAAC8D,YAAuB;QAAE/R,IAAI,EAAEiO,MAAM,CAACjO;MAAK,CAAC;MACjFP,IAAI,EAAEA,IAAI,GAAG;QAAE9G,KAAK,EAAE8G,IAAI,CAAC9G,KAAK;QAAEqH,IAAI,EAAEP,IAAI,CAACO,IAAI;QAAEyQ,IAAI,EAAEhR,IAAI,CAACgR,IAAI,CAAC,CAAC,CAAClU,QAAQ,CAAC;MAAE,CAAC,GAAG4H;IACtF,CAAC;IACDkN,UAAU,CAACW,GAAG,CAACpY,OAAO,CAAC;IACvB,IAAIiU,cAAc,EAAE,IAAI,CAAC1U,WAAW,CAAC6Y,GAAG,CAACnE,cAAc,CAAC;IACxD,IAAI+D,iBAAiB,EAAE,IAAI,CAACzY,WAAW,CAAC6Y,GAAG,CAACJ,iBAAiB,CAAC;IAC9D,IAAI,CAAC3D,MAAM,CAACrU,OAAO,EAAE,MAAM,IAAI8I,KAAK,CAAC,4CAA4C,CAAC;IAClF,MAAMyN,eAAe,GAAGhS,SAAS,CAAC8T,UAAU,CAC1CrY,OAAO,EACPqU,MAAM,CAACrU,OAAO,EACd6F,IAAI,EACJwO,MAAM,CAAC8B,qBAAqB,EAC5BG,cACF,CAAC;IACDmB,UAAU,CAACW,GAAG,CAAC7T,SAAS,CAAC;IACzB,IAAIsB,IAAI,EAAE4R,UAAU,CAACW,GAAG,CAACvS,IAAI,CAAC;IAC9BuB,KAAK,CAAC3J,OAAO,CAAE6a,IAAI,IAAKb,UAAU,CAACW,GAAG,CAACE,IAAI,CAACA,IAAI,CAAC,CAAC;IAClD,IAAIR,SAAS,EAAEA,SAAS,CAACra,OAAO,CAAE6a,IAAI,IAAKb,UAAU,CAACW,GAAG,CAACE,IAAI,CAACjE,MAAM,CAAC,CAAC;IACvE,OAAO;MAAE9P,SAAS;MAAEvE,OAAO;MAAEuW;IAAgB,CAAC;EAChD;;EAEA;AACF;AACA;AACA;EACE,MAAMgC,UAAUA,CAAChU,SAAoB,EAAEiU,WAAiB,EAAE;IACxD,MAAM/Y,OAAO,GAAG,MAAM,IAAI,CAACgZ,sBAAsB,CAAClU,SAAS,EAAEiU,WAAW,CAAC;IACzE/Y,OAAO,CAAChC,OAAO,CAAEib,GAAG,IAAK,IAAI,CAACnZ,WAAW,CAAC6Y,GAAG,CAACM,GAAG,CAAC,CAAC;EACrD;;EAEA;AACF;AACA;AACA;EACEC,cAAcA,CAACpU,SAAoB,EAAEqU,WAAwB,EAAE;IAC7DrU,SAAS,CAACN,KAAK,CAACC,SAAS,CAAC0U,WAAW,GAAGA,WAAW;EACrD;;EAEA;AACF;AACA;AACA;EACE,MAAMH,sBAAsBA,CAAClU,SAAoB,EAAEiU,WAAiB,EAAwB;IAC1F,MAAMnT,iBAAoC,GAAGd,SAAS,CAACN,KAAK,CAACC,SAAS;IACtE,MAAM2U,SAAS,GACbxT,iBAAiB,CAACsI,cAAc;IAAI;IACnC,MAAM,IAAI,CAAC5O,KAAK,CAACS,WAAW,CAACkY,OAAO,CAACC,kBAAkB,CAACtS,iBAAwB,CAAC,CAAC;IACrF,MAAMrF,OAAO,GAAG,MAAM6Y,SAAS,CAACC,WAAW,CAACzT,iBAAiB,CAACL,EAAE,CAAChF,OAAO,EAAY,IAAI,CAACT,WAAW,EAAE,IAAI,CAAC;IAC3G,IAAIiZ,WAAW,EAAExY,OAAO,CAAC+Y,cAAc,CAACP,WAAW,CAAC;IACpD,MAAMZ,aAAa,GAAG,IAAAC,8BAAiB,EAACxS,iBAAiB,CAACH,UAAU,CAAC;IACrE,MAAM4S,SAAS,GAAG,IAAI,CAACC,mCAAmC,CAACH,aAAa,CAAC;IACzE5X,OAAO,CAACkF,UAAU,GAAGG,iBAAiB,CAACH,UAAU;IACjDlF,OAAO,CAAC4Y,WAAW,GAAGvT,iBAAiB,CAACuT,WAAW;IACnD,MAAMI,eAAe,GAAGlB,SAAS,CAAC/T,GAAG,CAAEuU,IAAI,IAAKA,IAAI,CAACjE,MAAM,CAAC;IAC5D,MAAM2D,iBAAiB,GAAGiB,kBAAO,CAACC,yBAAyB,CAAC7T,iBAAiB,CAAC2S,iBAAiB,CAAC;IAChGhY,OAAO,CAACmZ,oBAAoB,GAAGnB,iBAAiB,GAAGA,iBAAiB,CAACnB,IAAI,CAAC,CAAC,GAAGtM,SAAS;IAEvF,MAAM4K,MAAM,GAAG,CAACnV,OAAO,EAAE,GAAGgZ,eAAe,CAAC;IAC5C,IAAIhB,iBAAiB,EAAE7C,MAAM,CAAC/X,IAAI,CAAC4a,iBAAiB,CAAC;IACrD,OAAO7C,MAAM;EACf;EAEQ4C,mCAAmCA,CAACqB,cAA+B,EAAoB;IAC7F,MAAMtB,SAA2B,GAAG,EAAE;IACtCsB,cAAc,CAAC3b,OAAO,CAAEma,aAAa,IAAK;MACxC,MAAMyB,eAAe,GAAGC,0BAAa,CAACC,mBAAmB,CAAC3B,aAAa,CAAC4B,MAAM,CAAC;MAC/E,IAAIH,eAAe,CAAC7b,MAAM,EAAEoa,aAAa,CAAC6B,uBAAuB,CAACJ,eAAe,CAAC;MAClFvB,SAAS,CAAC1a,IAAI,CAAC,GAAGic,eAAe,CAAC;IACpC,CAAC,CAAC;IACF,OAAOvB,SAAS;EAClB;EAEA,MAAcjV,0BAA0BA,CAAC/C,GAAoB,EAAE4Z,qBAAqB,GAAG,IAAI,EAAwB;IACjH,MAAMC,kBAAkB,GAAG7Z,GAAG,CAACiE,GAAG,CAAEiB,EAAE,IAAKA,EAAE,CAACgD,aAAa,CAACuC,SAAS,CAAC,CAAC;IACvE;IACA;IACA,MAAMqP,MAAM,GAAG,MAAM,IAAI,CAACxa,WAAW,CAACya,oBAAoB,CAAC,CAAC;IAC5D,IAAIH,qBAAqB,EAAE;MACzB,MAAM,IAAI,CAAC9a,SAAS,CAACkD,QAAQ,CAACgY,gBAAgB,CAACC,8BAA8B,CAAC,CAAC;MAC/E;MACA,IAAI,CAACnb,SAAS,CAACob,uBAAuB,CAAC,CAAC;IAC1C,CAAC,MAAM;MACLJ,MAAM,CAACnc,OAAO,CAAEuH,EAAE,IAAK,IAAI,CAACpG,SAAS,CAACqb,mBAAmB,CAACjV,EAAE,CAAC,CAAC;IAChE;IAEA,OAAO,IAAI,CAACpG,SAAS,CAACsb,OAAO,CAACP,kBAAkB,CAAC;EACnD;EAEQlI,qBAAqBA,CAAC7O,UAA+B,EAAE;IAC7D,MAAMuX,0BAA0B,GAAGvX,UAAU,CAC1C3F,MAAM,CAAE+G,CAAC,IAAK,CAACA,CAAC,CAAC4N,kBAAkB,IAAI,IAAI,CAAC7S,KAAK,CAACiT,UAAU,CAAChO,CAAC,CAACgB,EAAE,CAAC,CAAC,CACnEjB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACgB,EAAE,CAACrC,QAAQ,CAAC,CAAC,CAAC;IAC9B,IAAIwX,0BAA0B,CAAC3c,MAAM,EAAE;MACrC,MAAM,KAAI4c,kCAAuB,EAACD,0BAA0B,CAAC;IAC/D;EACF;EAEA,MAAc5I,uCAAuCA,CAAC3O,UAA+B,EAAE;IACrF,MAAMyX,iBAAiB,GAAG,MAAO9V,SAA4B,IAAK;MAChE,MAAM+V,eAAe,GAAG/V,SAAS,CAACgW,qBAAqB,CAAC,CAAC;MACzD,MAAM/a,WAAW,GAAG,IAAI,CAACZ,SAAS,CAACG,KAAK,CAACS,WAAW;MACpD,MAAM2I,OAAO,CAACC,GAAG,CACfkS,eAAe,CAACvW,GAAG,CAAC,MAAOyW,KAAK,IAAK;QACnC,IAAI,CAACA,KAAK,CAACvI,UAAU,CAAC,CAAC,EAAE;QACzB,MAAM4G,SAAS,GAAG,MAAMrZ,WAAW,CAACib,wBAAwB,CAACD,KAAK,CAAC;QACnE,IAAI,CAAC3B,SAAS,EAAE;QAChB,MAAM7Y,OAAO,GAAG,MAAM6Y,SAAS,CAACC,WAAW,CAAC0B,KAAK,CAACxa,OAAO,EAAYR,WAAW,CAACC,OAAO,CAAC;QACzF,IAAIO,OAAO,CAAC0a,QAAQ,EAAE;UACpB,MAAM,IAAI5R,KAAK,CACb,mBAAmBvE,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,sBAAsB6X,KAAK,CAAC7X,QAAQ,CAAC,CAAC,aAClF,CAAC;QACH;MACF,CAAC,CACH,CAAC;IACH,CAAC;IACD,MAAM,IAAAgY,eAAI,EAAC/X,UAAU,EAAG2B,SAAS,IAAK8V,iBAAiB,CAAC9V,SAAS,CAAC,EAAE;MAAEqW,WAAW,EAAE,IAAAC,2CAAyB,EAAC;IAAE,CAAC,CAAC;EACnH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,0CAA0CA,CAACtO,MAAmB,EAAwB;IAC1F,IAAI,IAAAuO,0BAAM,EAACvO,MAAM,CAACxM,OAAO,CAAC,EAAE;MAC1B,OAAOwM,MAAM;IACf;IACA,MAAMwO,KAAK,GAAGxO,MAAM,CAACxM,OAAO,IAAI,GAAG,CAAC,CAAC;IACrC,MAAMgF,EAAE,GAAGwH,MAAM,CAACxE,aAAa,CAACuC,SAAS,CAAC;IAC1C,MAAM7I,YAAY,GAAG,MAAM,IAAI,CAAC3C,KAAK,CAACkc,4BAA4B,CAACjW,EAAE,EAAEgW,KAAK,CAAC;IAC7E,IAAI,CAACtZ,YAAY,EAAE;MACjB,MAAM,IAAIoH,KAAK,CAAC,4CAA4CkS,KAAK,SAASxO,MAAM,CAAC7J,QAAQ,CAAC,CAAC,GAAG,CAAC;IACjG;IACA,OAAO6J,MAAM,CAACxE,aAAa,CAACtG,YAAY,CAAC;EAC3C;EAEA,MAAMmI,iBAAiBA,CAACtF,SAAoB,EAAE6C,KAAiB,EAAE;IAC/D,MAAM8T,YAAY,GAAG3W,SAAS,CAACN,KAAK,CAACkX,UAAU,CAAC/T,KAAK;IAErDA,KAAK,CAAC3J,OAAO,CAAE6a,IAAI,IAAK;MACtB,IAAIA,IAAI,CAAC8C,MAAM,EAAE;QACf,MAAMC,KAAK,GAAGH,YAAY,CAACvS,IAAI,CAAE2S,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAKjD,IAAI,CAACrV,IAAI,CAAC;QAChE,IAAI,CAACoY,KAAK,EAAE;QACZ,IAAI,IAAI,CAACzc,SAAS,EAAE;UAClB4c,kBAAE,CAACC,UAAU,CAACJ,KAAK,CAACpY,IAAI,CAAC;QAC3B;QACA,MAAMyY,KAAK,GAAGR,YAAY,CAACS,SAAS,CAAEL,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAKjD,IAAI,CAACrV,IAAI,CAAC;QACrE,IAAIyY,KAAK,KAAK,CAAC,CAAC,EAAE;UAChBR,YAAY,CAACU,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QAC/B;QACA;MACF;MACA,MAAMG,WAAW,GAAGX,YAAY,CAACvS,IAAI,CAAE2S,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAKjD,IAAI,CAACrV,IAAI,CAAC;MACtE,IAAI4Y,WAAW,EAAE;QACfA,WAAW,CAACC,QAAQ,GAAGC,MAAM,CAACpM,IAAI,CAAC2I,IAAI,CAAC0D,OAAO,CAAC;MAClD,CAAC,MAAM;QACLd,YAAY,CAAC9d,IAAI,CACf,KAAI6e,uBAAU,EAAC;UAAEC,IAAI,EAAE,GAAG;UAAEjZ,IAAI,EAAEqV,IAAI,CAACrV,IAAI;UAAE6Y,QAAQ,EAAEC,MAAM,CAACpM,IAAI,CAAC2I,IAAI,CAAC0D,OAAO,CAAC;UAAEG,IAAI,EAAE;QAAM,CAAC,CACjG,CAAC;MACH;IACF,CAAC,CAAC;IAEF,IAAI,CAACjB,YAAY,CAAC1d,MAAM,EACtB,MAAM,IAAIsL,KAAK,CAAC,8BAA8BvE,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,0BAA0B,CAAC;EACpG;;EAEA;AACF;AACA;EACE,MAAMyZ,qCAAqCA,CACzC7X,SAAoB,EACpB4C,YAA2B,EAC3BkV,aAA4B,EAC5B;IACA,MAAMC,UAAU,GAAG9Z,8BAAe,CAACC,SAAS,CAAC,CAAC,GAAG4Z,aAAa,EAAE,GAAGlV,YAAY,CAAC,CAAC;IACjF,MAAMoV,cAAc,GAAGhY,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC;IAC9C,MAAM6Z,eAAkC,GAAGjY,SAAS,CAACN,KAAK,CAACC,SAAS;IACpE,MAAM/E,IAAI,GAAG,CAAC,GAAGqd,eAAe,CAACrV,YAAY,CAACmC,GAAG,CAAC,CAAC,EAAE,GAAGkT,eAAe,CAACnJ,eAAe,CAAC/J,GAAG,CAAC,CAAC,CAAC;IAC9F,MAAMmT,gBAAgB,GAAG,IAAI,CAAC3d,kBAAkB,CAAC4d,eAAe,CAACnY,SAAS,CAAC;IAC3EpF,IAAI,CAAC1B,OAAO,CAAE+J,GAAG,IAAK;MACpB,MAAMmV,YAAY,GAAGL,UAAU,CAAC3S,oBAAoB,CAACnC,GAAG,CAACxC,EAAE,CAAC;MAC5D,IAAI2X,YAAY,EAAE;QAChB,MAAMC,QAAQ,GAAGpV,GAAG,CAACxC,EAAE,CAACrC,QAAQ,CAAC,CAAC;QAClC,MAAMka,WAAW,GAAGJ,gBAAgB,CAACK,cAAc,CAACF,QAAQ,CAAC,EAAEG,cAAc,GAAG,CAAC;QACjF,IAAI,CAACF,WAAW,EAAE;UAChB,MAAM,IAAI/T,KAAK,CACb,uCAAuC8T,QAAQ,wDAAwDL,cAAc,GACvH,CAAC;QACH;QACA,IAAI,CAAC1d,MAAM,CAAC6D,KAAK,CAAC,aAAa6Z,cAAc,iBAAiBK,QAAQ,eAAeD,YAAY,CAAC3c,OAAO,GAAG,CAAC;QAC7GwH,GAAG,CAACxC,EAAE,GAAG2X,YAAY;QACrBnV,GAAG,CAACqV,WAAW,GAAGA,WAAW;MAC/B;IACF,CAAC,CAAC;IACF,MAAM,IAAI,CAACG,qCAAqC,CAACzY,SAAS,EAAE+X,UAAU,CAACW,aAAa,CAAC,CAAC,CAAC;EACzF;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMD,qCAAqCA,CAACzY,SAAoB,EAAE+X,UAAoB,EAAE;IACtF,MAAME,eAAkC,GAAGjY,SAAS,CAACN,KAAK,CAACC,SAAS;IACpEsY,eAAe,CAACtX,UAAU,CAACzH,OAAO,CAAEyf,GAAG,IAAK;MAC1C,MAAMC,KAAK,GAAGD,GAAG,CAACE,WAAW;MAC7B,IAAI,CAACD,KAAK,EAAE;MACZ,MAAM9B,KAAK,GAAGiB,UAAU,CAAC3T,IAAI,CAAEoJ,CAAC,IAAKA,CAAC,CAACsL,UAAU,CAAC,GAAGF,KAAK,CAACvK,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC;MACxF,IAAIyI,KAAK,EAAE;QACT,MAAMiC,YAAY,GAAGrW,0BAAW,CAACC,UAAU,CAACmU,KAAK,CAAC;QAClD,IAAI,CAACxc,MAAM,CAAC6D,KAAK,CACf,aAAa6B,SAAS,CAACS,EAAE,CAACrC,QAAQ,CAAC,CAAC,gBAAgBwa,KAAK,CAACxa,QAAQ,CAAC,CAAC,eAAe2a,YAAY,CAACtd,OAAO,GACzG,CAAC;QACDkd,GAAG,CAACE,WAAW,GAAGE,YAAY;QAC9B,IAAIJ,GAAG,CAACK,cAAc,EAAEL,GAAG,CAACK,cAAc,GAAGD,YAAY;MAC3D;IACF,CAAC,CAAC;IAEF/Y,SAAS,CAACN,KAAK,CAACwB,OAAO,GAAG,MAAM,IAAI,CAAC1G,KAAK,CAAC2G,qCAAqC,CAAC8W,eAAe,CAACtX,UAAU,CAAC;IAE5G,MAAMsY,0BAA0B,GAAG,CAAC,MAAM,IAAI,CAAC1e,kBAAkB,CAAC2e,qBAAqB,CAAClZ,SAAS,CAAC,EAAEmZ,SAAS,CAAC,CAAC;IAC/G,MAAMP,KAAK,GAAGpY,8CAAwB,CAACC,EAAE;IACzC,MAAMvL,IAAI,GAAG;MAAE0N,YAAY,EAAEqW;IAA2B,CAAC;IACzD,MAAMG,iBAAiB,GAAGpZ,SAAS,CAACqZ,MAAM,CAAC1Y,UAAU,CAAC2Y,aAAa,CAACV,KAAK,CAAC;IAC1E,IAAIQ,iBAAiB,EAAE;MACrB;MACA9gB,MAAM,CAACihB,MAAM,CAACH,iBAAiB,CAAClkB,IAAI,EAAEA,IAAI,CAAC;MAC3C;IACF;IACA,MAAMskB,SAAS,GAAG,KAAIC,6BAAkB,EAACzT,SAAS,EAAEA,SAAS,EAAE4S,KAAK,EAAE5S,SAAS,EAAE9Q,IAAI,CAAC;IACtF8K,SAAS,CAACqZ,MAAM,CAAC1Y,UAAU,CAAC9H,IAAI,CAAC2gB,SAAS,CAAC;EAC7C;EAEA,MAAc3R,0BAA0BA,CAAC6R,iBAAiB,GAAG,KAAK,EAAE;IAClE,MAAMne,GAAG,GAAGme,iBAAiB,GACzB,MAAM,IAAI,CAACrf,SAAS,CAACgO,mBAAmB,CAAC,CAAC,GAC1C,MAAM,IAAI,CAAChO,SAAS,CAACsf,iBAAiB,CAAC,CAAC;IAC5C,MAAMC,YAAY,GAAG,IAAI,CAACvf,SAAS,CAAC3B,MAAM,CAACmhB,WAAW,CAACte,GAAG,CAAC;IAC3D,IAAI,CAACqe,YAAY,CAAC3gB,MAAM,EAAE;MACxB,OAAOsC,GAAG;IACZ;IACA,MAAMue,gBAAgB,GAAG7b,8BAAe,CAACC,SAAS,CAAC0b,YAAY,CAAC;IAChE,OAAOre,GAAG,CAAC7C,MAAM,CAAE+H,EAAE,IAAK,CAACqZ,gBAAgB,CAACrU,iBAAiB,CAAChF,EAAE,CAAC,CAAC;EACpE;EAEA,MAAc1C,kBAAkBA,CAC9B2b,iBAA0B,EAC1Bvc,YAAgC,EAChCX,OAAgB,EAChBjB,GAAa,EACbK,OAAgB,EAChBC,QAAiB,EACuC;IACxD,MAAMiC,QAAkB,GAAG,EAAE;IAC7B,MAAMN,cAAc,GAAG,KAAIC,yBAAc,EAAC,IAAI,CAACpD,SAAS,CAAC;IACzD,IAAImC,OAAO,EAAE;MACX,MAAMud,oBAAoB,GAAG,IAAI,CAAC1f,SAAS,CAAC3B,MAAM,CAAC+Q,YAAY,CAAC,CAAC;MACjE,OAAO;QAAE5L,MAAM,EAAEkc,oBAAoB;QAAEjc,QAAQ,EAAE;MAAG,CAAC;IACvD;IAEA,MAAM8J,uBAAuB,GAAG,MAAM,IAAI,CAACC,0BAA0B,CAAC6R,iBAAiB,CAAC;IAExF,MAAMM,oBAAoB,GAAG,CAAC,MAAM,IAAI,CAAC3f,SAAS,CAAC3B,MAAM,CAACuhB,eAAe,CAAC,CAAC,EAAEza,GAAG,CAAEiB,EAAE,IAClFA,EAAE,CAACgD,aAAa,CAACuC,SAAS,CAC5B,CAAC;IAED,MAAMkU,8BAA8B,GAAGjc,8BAAe,CAACC,SAAS,CAAC,CAC/D,GAAG0J,uBAAuB,EAC1B,GAAGoS,oBAAoB,CACxB,CAAC;IAEF,IAAIA,oBAAoB,CAAC/gB,MAAM,EAAE;MAC/B,MAAM2gB,YAAY,GAAG,IAAI,CAACvf,SAAS,CAAC3B,MAAM,CAACmhB,WAAW,CAACG,oBAAoB,CAAC;MAC5E,MAAMF,gBAAgB,GAAG7b,8BAAe,CAACC,SAAS,CAAC0b,YAAY,CAAC;MAChEI,oBAAoB,CAAC9gB,OAAO,CAAEuH,EAAE,IAAK;QACnC,IAAIqZ,gBAAgB,CAACrU,iBAAiB,CAAChF,EAAE,CAAC,EAAE;UAC1C,MAAM0W,KAAK,GAAG6C,oBAAoB,CAAC5C,SAAS,CAAE3X,CAAC,IAAKA,CAAC,CAAC4E,OAAO,CAAC5D,EAAE,CAAC,CAAC;UAClEuZ,oBAAoB,CAAC3C,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;QACvC;MACF,CAAC,CAAC;IACJ;IAEA,IAAI5b,GAAG,CAACtC,MAAM,EAAE;MACd,MAAM2G,YAAY,GAAG,MAAM,IAAAgF,qBAAU,EAACrJ,GAAG,EAAE,MAAOkF,EAAE,IAAK;QACvD,MAAM,CAAC0Z,YAAY,EAAE1e,OAAO,CAAC,GAAGgF,EAAE,CAAC2Z,KAAK,CAAC,GAAG,CAAC;QAC7C,MAAMC,WAAW,GAAG,IAAI,CAAChgB,SAAS,CAACigB,SAAS,CAAC7Z,EAAE,CAAC;QAChD,IAAI4Z,WAAW,EAAE;UACf,MAAMjO,MAAM,GAAG,MAAM,IAAI,CAAC/R,SAAS,CAAC8N,6BAA6B,CAC/DgS,YAAY,EACZD,8BACF,CAAC;UACD,OAAO9N,MAAM,CAAC5M,GAAG,CAAEiD,WAAW,IAAKA,WAAW,CAACgB,aAAa,CAAChI,OAAO,CAAC,CAAC;QACxE;QACA,MAAMgH,WAAW,GAAG,MAAM,IAAI,CAACpI,SAAS,CAAC6N,kBAAkB,CAACiS,YAAY,CAAC;QACzE,IAAI,CAACT,iBAAiB,EAAE;UACtB,IAAI,CAACQ,8BAA8B,CAACzU,iBAAiB,CAAChD,WAAW,CAAC,EAAE,OAAO,IAAI;QACjF;QACA,OAAOA,WAAW,CAACgB,aAAa,CAAChI,OAAO,CAAC;MAC3C,CAAC,CAAC;MAEF,OAAO;QAAEoC,MAAM,EAAE,IAAAwF,iBAAO,EAACzD,YAAY,CAAC6M,IAAI,CAAC,CAAC,CAAC;QAAE3O;MAAS,CAAC;IAC3D;IAEA,IAAIlC,OAAO,EAAE;MACX,OAAO;QAAEiC,MAAM,EAAEmc,oBAAoB;QAAElc;MAAS,CAAC;IACnD;IAEA,IAAIjC,QAAQ,EAAE;MACZ,OAAO;QAAEgC,MAAM,EAAEL,cAAc,CAACmK,8BAA8B,CAAC,CAAC;QAAE7J;MAAS,CAAC;IAC9E;IAEA,IAAI4b,iBAAiB,IAAIvc,YAAY,EAAE;MACrC,MAAMod,0BAA0B,GAAG,MAAM,IAAI,CAAClgB,SAAS,CAACG,KAAK,CAACS,WAAW,CAACuf,cAAc,CACtF5S,uBAAuB,EACvB,KACF,CAAC;MACD2S,0BAA0B,CAACrhB,OAAO,CAAEuJ,WAAW,IAAK;QAClD,IAAIA,WAAW,CAAChH,OAAO,IAAIgf,iBAAM,CAACC,KAAK,CAACjY,WAAW,CAAChH,OAAO,CAAC,IAAIgf,iBAAM,CAACE,EAAE,CAAClY,WAAW,CAAChH,OAAO,EAAE0B,YAAY,CAAC,EAAE;UAC5GW,QAAQ,CAACjF,IAAI,CAAC,YAAY4J,WAAW,CAACrE,QAAQ,CAAC,CAAC,+BAA+BjB,YAAY,EAAE,CAAC;QAChG;MACF,CAAC,CAAC;IACJ;IAEA,OAAO;MAAEU,MAAM,EAAEqc,8BAA8B,CAAC1a,GAAG,CAAEiB,EAAE,IAAKA,EAAE,CAACgD,aAAa,CAACuC,SAAS,CAAC,CAAC;MAAElI;IAAS,CAAC;EACtG;EAkBA,aAAa8c,QAAQA,CACnB,CACEvgB,SAAS,EACTwgB,GAAG,EACHC,UAAU,EACVvgB,kBAAkB,EAClBC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRogB,WAAW,EACXngB,IAAI,EACJC,WAAW,EACXC,MAAM,CAcP,EACDue,MAAM,EACN,CAACte,aAAa,CAAkB,EAChC;IACA,MAAMT,MAAM,GAAGwgB,UAAU,CAACE,YAAY,CAACC,0BAAc,CAACxa,EAAE,CAAC;IACzD,MAAMya,QAAQ,GAAG,IAAI/gB,YAAY,CAC/BE,SAAS,EACTC,MAAM,EACNC,kBAAkB,EAClBC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,IAAI,EACJC,WAAW,EACXC,MAAM,EACNC,aACF,CAAC;IACD,MAAMogB,OAAO,GAAG,KAAIC,kBAAO,EAACF,QAAQ,EAAE5gB,MAAM,EAAEygB,WAAW,CAAC;IAC1D,MAAMM,MAAM,GAAG,KAAIC,gBAAM,EAACJ,QAAQ,EAAE5gB,MAAM,EAAEygB,WAAW,CAAC;IACxD,MAAMQ,QAAQ,GAAG,KAAIC,mBAAQ,EAACN,QAAQ,CAAC;IACvC,MAAMO,eAAe,GAAG,KAAIC,kCAAe,EAAClhB,KAAK,EAAEH,SAAS,CAAC;IAC7DwgB,GAAG,CAACxf,QAAQ,CAACggB,MAAM,EAAEF,OAAO,EAAEI,QAAQ,EAAEE,eAAe,CAAC;IACxD,OAAOP,QAAQ;EACjB;AACF;AAACS,OAAA,CAAAxhB,YAAA,GAAAA,YAAA;AAAAhB,eAAA,CAptCYgB,YAAY,WAgpCR,CAACyhB,eAAI,CAACC,QAAQ,CAAY,CAAC,CAAC;AAAA1iB,eAAA,CAhpChCgB,YAAY,kBAipCD,CACpB2hB,4BAAe,EACfC,gBAAS,EACTC,sBAAY,EACZxb,8CAAwB,EACxByb,oBAAW,EACXC,sBAAY,EACZC,wBAAa,EACbC,0BAAc,EACdC,gCAAiB,EACjBC,kCAAkB,EAClBC,gCAAiB,EACjBC,sBAAY,CACb;AAAArjB,eAAA,CA9pCUgB,YAAY,aA+pCNsiB,kBAAW;AAuD9BxB,0BAAc,CAACyB,UAAU,CAACviB,YAAY,CAAC;AAAC,IAAAwiB,QAAA,GAAAhB,OAAA,CAAAzjB,OAAA,GAEzBiC,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_graph","_fsExtra","_interopRequireDefault","_legacy","_getFlattenedDependencies","_workspace","_semver","_lodash","_componentId","_legacy2","_legacy3","_legacy4","_pMapSeries","_logger","_bitError","_pMap","_pkgModules","_harmonyModules","_configStore","_scope","_objects","_dependencyResolver","_legacy5","_builder","_laneId","_importer","_export","_componentVersion","_component","_dependencies","_snapCmd","_snapping","_tagCmd","_resetCmd","_generateCompFromScope","_flattenedEdges","_snapDistanceCmd","_resetComponent","_application","_legacy6","_lanesModules","_remove","_versionMaker","_harmony","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","SnappingMain","constructor","workspace","logger","dependencyResolver","scope","exporter","builder","importer","deps","application","remove","onPreSnapSlot","objectsRepo","legacyScope","objects","registerOnPreSnap","onPreSnap","register","tag","ids","message","version","editor","versionsFile","snapped","unmerged","releaseType","preReleaseId","ignoreIssues","ignoreNewestVersion","skipTests","skipTasks","skipAutoTag","build","unmodified","soft","persist","ignoreBuildErrors","rebuildDepsGraph","incrementBy","disableTagAndSnapPipelines","failFast","detachHead","overrideHead","loose","BitError","Boolean","exactVersion","OutsideWorkspaceError","validExactVersion","validateVersion","consumer","componentsList","ComponentsList","setStatusLine","newComponents","listNewComponents","bitIds","warnings","getComponentsToTag","compIds","ComponentIdList","fromArray","debug","toString","components","loadComponentsForTagOrSnap","throwForVariousIssues","params","packageManagerConfigRootDir","path","exitOnFirstFailedTask","taggedComponents","autoTaggedResults","publishedPackages","stagedConfig","removedComponents","totalComponentsCount","makeVersion","tagResults","isSoftTag","onDestroy","write","consumerComponents","map","c","state","_consumer","componentIds","versionMaker","VersionMaker","addAspectsFromConfigObject","component","configObject","ExtensionDataList","adjustEnvsOnConfigObject","extensionsFromConfigObject","fromConfigObject","depsResolverFromConfig","findCoreExtension","DependencyResolverAspect","id","policy","extensions","autoDeps","extractAutoDepsFromConfig","consumerComponent","extensionDataList","mergeConfigs","filterRemovedExtensions","aspects","createAspectListFromExtensionDataList","snapFromScope","snapDataPerCompRaw","lane","laneIdStr","laneId","LaneId","parse","importLaneObject","err","name","LaneNotFound","createLaneInScope","scopeJson","setLaneAsNew","setCurrentLaneId","scopeImporter","shouldOnlyFetchFromCurrentLane","laneCompIds","toComponentIdsIncludeUpdateDependents","snapDataPerComp","snapData","componentId","ComponentID","fromString","dependencies","files","isNew","mainFile","newDependencies","dep","isComponent","type","removeDependencies","compact","allCompIds","s","componentIdsLatest","changeVersion","LATEST","newCompsData","Promise","all","newComp","generateCompFromScope","import","preferDependencyGraph","reason","getSnapData","find","isEqual","ignoreVersion","Error","updatedLegacyComponents","updatedComponents","getManyByLegacy","existingComponents","pMapSeries","foundInUpdated","isEqualWithoutVersion","get","updateDependents","comp","getComponentDependencies","fromLane","searchWithoutVersion","addDeps","updateSourceFiles","loadAspectOnlyForIds","compsToLoadAspects","hasWithoutVersion","loadManyCompsAspects","executeOnCompAspectReCalcSlot","shouldTag","makeVersionParams","tagDataPerComp","versionToTag","undefined","isSnap","updateDependentsOnLane","results","exportedIds","updatedLane","loadLane","toLaneId","exported","pushToScopes","allVersions","laneObject","exportHeadsOnly","snappedComponents","snappedIds","autoSnappedResults","snap","pattern","legacyBitIds","skipAutoSnap","self","getIdsToSnap","snapResults","currentLane","getCurrentLaneId","laneName","isDefault","listDuringMergeStateComponents","tagPendingComponentsIds","getTagPendingComponentsIds","shouldThrowForNoMatching","getCompIds","includes","compId","resolveComponentId","filterIdsFromPoolIdsByPattern","allTagPending","listPotentialTagIds","reset","componentPattern","head","force","getCurrentLaneObject","untag","removeLocalVersionsForAllComponents","candidateComponents","getComponentsWithOptionToUntag","idsMatchingPattern","idsByPattern","includeDeleted","idsMatchingPatternBitIds","componentsToUntag","modelComponent","toComponentId","removeLocalVersionsForMultipleComponents","softUntag","softTaggedComponentsIds","bySoftTagged","idsToRemoveSoftTags","componentMap","bitMap","getComponent","removedVersion","nextVersion","clearNextVersion","versions","isRealUntag","currentLaneId","getStagedConfig","versionToSetInBitmap","updateVersions","stagedSnaps","markAsChanged","isSoftUntag","resetNeverExported","notExported","getNotExportedIds","hashes","BitObject","makeHash","fullName","deleteObjectsFromFS","h","Ref","from","updateComponentId","_addFlattenedDependenciesToComponents","profile","getLane","forkedFrom","flattenedDependenciesGetter","FlattenedDependenciesGetter","populateFlattenedDependencies","clearStatusLine","_addFlattenedDepsGraphToComponents","flattenedEdgesGetter","FlattenedEdgesGetter","buildGraph","populateFlattenedAndEdgesForComp","throwForDepsFromAnotherLane","allIds","missingDeps","throwForDepsFromAnotherLaneForComp","flattenedMissingDeps","uniqFromArray","flat","importWithoutDeps","cache","ignoreMissingHead","includeVersionHistory","componentsToCheck","isDeleted","throwForLegacyDependenciesInsideHarmony","throwForComponentIssues","throwForPendingImport","throwForMissingObjects","depsFromModel","componentFromModel","getAllDependencies","depsFromModelIds","d","isExported","hasVersion","isTag","has","isPartOfHistory","isPartOfLaneHistoryOrMain","isPartOfMainHistory","VersionNotFound","ComponentNotFound","HeadNotFound","ParentNotFound","laneOrMainStr","toStringWithoutVersion","graph","Graph","addEdges","label","setNode","Node","setEdge","Edge","devDependencies","extensionDependencies","allFlattened","flattenedDependencies","allFlattenedUniq","allFlattenedWithoutCurrent","componentsAndVersions","getComponentsAndVersions","versionStr","someCompsHaveMissingFlattened","edges","outEdges","flattenedEdges","allEdges","edgesWithBitIds","edge","source","node","attr","target","flattened","flattenedFromEdges","uniq","missingFlattened","difference","warn","join","missingBitIds","_updateComponentsByTagResult","tagResult","result","matchingComponent","existingBuilder","Extensions","builderData","_getPublishedPackages","Map","builderExt","pkgData","aspectsData","a","aspectId","pkg","publishedPackage","set","integrity","previouslyUsedVersion","_addCompToObjects","shouldValidateVersion","addVersionOpts","addedVersionStr","_addCompFromScopeToObjects","unmergedComponent","unmergedComponents","getEntry","unrelated","hash","unrelatedHead","setUnrelated","addAsOnlyParent","unrelatedLaneId","headOnCurrentLane","addParent","log","UnmergedComponents","buildSnapMessage","removeComponent","validate","objectRepo","sources","findOrAddComponent","artifactFiles","getArtifactsFiles","artifacts","transformArtifactsFromVinylToSource","dependenciesGraph","consumerComponentToVersion","origin","defaultScope","add","addVersion","file","enrichComp","modifiedLog","getObjectsToEnrichComp","obj","setBuildStatus","buildStatus","modelComp","loadVersion","addModifiedLog","artifactObjects","Version","dependenciesGraphToSource","dependenciesGraphRef","artifactsFiles","artifactsSource","ArtifactFiles","fromVinylsToSources","vinyls","populateRefsFromSources","shouldClearCacheFirst","idsWithoutVersions","appIds","loadAllAppsAsAspects","componentFsCache","deleteAllDependenciesDataCache","clearAllComponentsCache","clearComponentCache","getMany","componentsMissingFromScope","ComponentsPendingImport","throwForComponent","dependenciesIds","getAllDependenciesIds","depId","getModelComponentIfExist","isLegacy","pMap","concurrency","concurrentComponentsLimit","getCompIdWithExactVersionAccordingToSemver","isHash","range","getExactVersionBySemverRange","currentFiles","filesystem","delete","found","f","relative","fs","removeSync","index","findIndex","splice","currentFile","contents","Buffer","content","SourceFile","base","test","updateDependenciesVersionsOfComponent","currentBitIds","updatedIds","componentIdStr","legacyComponent","dependenciesList","getDependencies","updatedBitId","depIdStr","packageName","findDependency","getPackageName","UpdateDepsAspectsSaveIntoDepsResolver","toStringArray","ext","extId","extensionId","startsWith","updatedExtId","newExtensionId","dependenciesListSerialized","extractDepsFromLegacy","serialize","existingExtension","config","findExtension","assign","extension","ExtensionDataEntry","includeUnmodified","listTagPendingIds","localOnlyIds","byLocalOnly","localOnlyListIds","softTaggedComponents","snappedComponentsIds","bySnappedOnMain","tagPendingBitIdsIncludeSnapped","idWithoutVer","split","idIsPattern","isPattern","tagPendingComponentsLatest","latestVersions","semver","valid","gt","provider","cli","loggerMain","configStore","createLogger","SnappingAspect","snapping","snapCmd","SnapCmd","tagCmd","TagCmd","resetCmd","ResetCmd","snapDistanceCmd","SnapDistanceCmd","exports","Slot","withType","WorkspaceAspect","CLIAspect","LoggerAspect","ScopeAspect","ExportAspect","BuilderAspect","ImporterAspect","ConfigStoreAspect","DependenciesAspect","ApplicationAspect","RemoveAspect","MainRuntime","addRuntime","_default"],"sources":["snapping.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime } from '@teambit/cli';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport fs from 'fs-extra';\nimport {\n UnmergedComponents,\n VersionNotFound,\n ComponentNotFound,\n HeadNotFound,\n ParentNotFound,\n} from '@teambit/legacy.scope';\nimport { FlattenedDependenciesGetter } from './get-flattened-dependencies';\nimport type { Workspace, AutoTagResult } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport type { ReleaseType } from 'semver';\nimport semver from 'semver';\nimport { compact, difference, uniq } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport { Extensions, LATEST } from '@teambit/legacy.constants';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { ComponentsPendingImport } from '@teambit/legacy.consumer';\nimport { ComponentsList } from '@teambit/legacy.component-list';\nimport pMapSeries from 'p-map-series';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport { BitError } from '@teambit/bit-error';\nimport pMap from 'p-map';\nimport { validateVersion } from '@teambit/pkg.modules.semver-helper';\nimport { concurrentComponentsLimit } from '@teambit/harmony.modules.concurrency';\nimport type { ConfigStoreMain } from '@teambit/config-store';\nimport { ConfigStoreAspect } from '@teambit/config-store';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport type { Repository, Lane, ModelComponent, DepEdge, DepEdgeType, Log, AddVersionOpts } from '@teambit/objects';\nimport { BitObject, Ref, Version } from '@teambit/objects';\nimport type { Component, ConsumerComponent } from '@teambit/component';\nimport type { DependencyResolverMain, VariantPolicyConfigArr } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy.extension-data';\nimport type { BuilderMain, LegacyOnTagResult } from '@teambit/builder';\nimport { BuilderAspect } from '@teambit/builder';\nimport { LaneId } from '@teambit/lane-id';\nimport type { ImporterMain } from '@teambit/importer';\nimport { ImporterAspect } from '@teambit/importer';\nimport type { ExportMain } from '@teambit/export';\nimport { ExportAspect } from '@teambit/export';\nimport { isHash, isTag } from '@teambit/component-version';\nimport type { ArtifactSource } from '@teambit/component.sources';\nimport { ArtifactFiles, getArtifactsFiles, SourceFile } from '@teambit/component.sources';\nimport type { DependenciesMain } from '@teambit/dependencies';\nimport { DependenciesAspect } from '@teambit/dependencies';\nimport { SnapCmd } from './snap-cmd';\nimport { SnappingAspect } from './snapping.aspect';\nimport { TagCmd } from './tag-cmd';\nimport ResetCmd from './reset-cmd';\nimport type { NewDependencies } from './generate-comp-from-scope';\nimport { addDeps, generateCompFromScope } from './generate-comp-from-scope';\nimport { FlattenedEdgesGetter } from './flattened-edges';\nimport { SnapDistanceCmd } from './snap-distance-cmd';\nimport type { ResetResult } from './reset-component';\nimport {\n removeLocalVersionsForAllComponents,\n getComponentsWithOptionToUntag,\n removeLocalVersionsForMultipleComponents,\n} from './reset-component';\nimport type { ApplicationMain } from '@teambit/application';\nimport { ApplicationAspect } from '@teambit/application';\nimport { LaneNotFound } from '@teambit/legacy.scope-api';\nimport { createLaneInScope } from '@teambit/lanes.modules.create-lane';\nimport type { RemoveMain } from '@teambit/remove';\nimport { RemoveAspect } from '@teambit/remove';\nimport type { BasicTagParams, BasicTagSnapParams, VersionMakerParams } from './version-maker';\nimport { VersionMaker, updateVersions } from './version-maker';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { Slot } from '@teambit/harmony';\n\nexport type PackageIntegritiesByPublishedPackages = Map<\n string,\n {\n integrity: string | undefined;\n previouslyUsedVersion: string | undefined;\n }\n>;\n\nexport type TagDataPerComp = {\n componentId: ComponentID;\n dependencies: ComponentID[];\n versionToTag?: string; // must be set for tag. undefined for snap.\n prereleaseId?: string;\n message?: string;\n isNew?: boolean;\n};\n\nexport type SnapDataParsed = {\n componentId: ComponentID;\n dependencies: string[];\n aspects?: Record<string, any>;\n message?: string;\n files?: FileData[];\n isNew?: boolean;\n newDependencies?: {\n id: string; // component-id or package-name.\n version?: string; // for packages, it is mandatory.\n isComponent: boolean;\n type: 'runtime' | 'dev' | 'peer';\n }[];\n removeDependencies?: string[];\n forkFrom?: ComponentID;\n};\n\nexport type SnapResults = BasicTagResults & {\n snappedComponents: ConsumerComponent[];\n autoSnappedResults: AutoTagResult[];\n laneName: string | null; // null if default\n};\n\nexport type SnapFromScopeResults = {\n snappedIds: ComponentID[];\n exportedIds?: ComponentID[];\n autoSnappedResults: AutoTagResult[];\n snappedComponents: ConsumerComponent[];\n};\n\nexport type TagResults = BasicTagResults & {\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n isSoftTag: boolean;\n publishedPackages: string[];\n exportedIds?: ComponentIdList; // relevant only for tag-from-scope when --push is used\n};\n\nexport type BasicTagResults = {\n warnings: string[];\n newComponents: ComponentIdList;\n removedComponents?: ComponentIdList;\n totalComponentsCount?: number; // total count of all components tagged/snapped (including auto-tagged)\n};\n\nexport type FileData = { path: string; content: string; delete?: boolean };\n\nexport type SnapDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n aspects?: Record<string, any>;\n message?: string;\n files?: FileData[];\n isNew?: boolean;\n mainFile?: string; // relevant when isNew is true. default to \"index.ts\".\n newDependencies?: NewDependencies;\n removeDependencies?: string[];\n forkFrom?: string; // origin id to fork from. the componentId is the new id. (no need to populate isNew prop).\n version?: string; // relevant when passing \"--tag\". optionally, specify the semver to tag. default to \"patch\".\n};\n\nexport type OnPreSnap = (\n componentsToSnap: Component[],\n idsToAutoSnap: ComponentID[],\n params: VersionMakerParams\n) => Promise<void>;\n\nexport type OnPreSnapSlot = SlotRegistry<OnPreSnap>;\n\nexport class SnappingMain {\n private objectsRepo: Repository;\n constructor(\n readonly workspace: Workspace,\n readonly logger: Logger,\n readonly dependencyResolver: DependencyResolverMain,\n readonly scope: ScopeMain,\n private exporter: ExportMain,\n readonly builder: BuilderMain,\n private importer: ImporterMain,\n private deps: DependenciesMain,\n private application: ApplicationMain,\n private remove: RemoveMain,\n readonly onPreSnapSlot: OnPreSnapSlot\n ) {\n this.objectsRepo = this.scope?.legacyScope?.objects;\n }\n\n registerOnPreSnap(onPreSnap: OnPreSnap) {\n this.onPreSnapSlot.register(onPreSnap);\n }\n\n /**\n * tag the given component ids or all modified/new components if \"all\" param is set.\n * tag is a similar operation as a snap, which saves the changes into the local scope, but it also creates an alias\n * with a valid semver to that version.\n * tag can be done only on main, not on a lane.\n */\n // eslint-disable-next-line complexity\n async tag({\n ids = [],\n message = '',\n version,\n editor = '',\n versionsFile,\n snapped = false,\n unmerged = false,\n releaseType,\n preReleaseId,\n ignoreIssues,\n ignoreNewestVersion = false,\n skipTests = false,\n skipTasks,\n skipAutoTag = false,\n build,\n unmodified = false,\n soft = false,\n persist = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n incrementBy = 1,\n disableTagAndSnapPipelines = false,\n failFast = false,\n detachHead,\n overrideHead,\n loose = false,\n }: {\n ids?: string[];\n all?: boolean | string;\n snapped?: boolean;\n unmerged?: boolean;\n version?: string;\n releaseType?: ReleaseType;\n ignoreIssues?: string;\n scope?: string | boolean;\n incrementBy?: number;\n failFast?: boolean;\n } & Partial<BasicTagParams>): Promise<TagResults | null> {\n if (soft) build = false;\n if (editor && persist) {\n throw new BitError('you can use either --editor or --persist, but not both');\n }\n if (editor && message) {\n throw new BitError('you can use either --editor or --message, but not both');\n }\n ignoreNewestVersion = Boolean(ignoreNewestVersion || detachHead || overrideHead);\n\n const exactVersion = version;\n if (!this.workspace) throw new OutsideWorkspaceError();\n const validExactVersion = validateVersion(exactVersion);\n const consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(this.workspace);\n this.logger.setStatusLine('determine components to tag...');\n const newComponents = await componentsList.listNewComponents();\n const { bitIds, warnings } = await this.getComponentsToTag(\n unmodified,\n exactVersion,\n persist,\n ids,\n snapped,\n unmerged\n );\n if (!bitIds.length) return null;\n\n const compIds = ComponentIdList.fromArray(bitIds);\n\n this.logger.debug(`tagging the following components: ${compIds.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(compIds, !soft);\n await this.throwForVariousIssues(components, ignoreIssues);\n\n const params = {\n message,\n editor,\n versionsFile,\n exactVersion: validExactVersion,\n releaseType,\n preReleaseId,\n ignoreNewestVersion,\n skipTests,\n skipTasks,\n skipAutoTag,\n soft,\n build,\n persist,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n incrementBy,\n packageManagerConfigRootDir: this.workspace.path,\n exitOnFirstFailedTask: failFast,\n detachHead,\n overrideHead,\n loose,\n ignoreIssues,\n };\n const {\n taggedComponents,\n autoTaggedResults,\n publishedPackages,\n stagedConfig,\n removedComponents,\n totalComponentsCount,\n } = await this.makeVersion(compIds, components, params);\n\n const tagResults = {\n taggedComponents,\n autoTaggedResults,\n isSoftTag: soft,\n publishedPackages,\n warnings,\n newComponents,\n removedComponents,\n totalComponentsCount,\n };\n\n await consumer.onDestroy(`tag (message: ${message || 'N/A'})`);\n await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return tagResults;\n }\n\n async makeVersion(ids: ComponentID[], components: Component[], params: VersionMakerParams) {\n const consumerComponents = components.map((c) => c.state._consumer) as ConsumerComponent[];\n const componentIds = ComponentIdList.fromArray(ids);\n const versionMaker = new VersionMaker(this, components, consumerComponents, componentIds, params);\n return versionMaker.makeVersion();\n }\n\n private async addAspectsFromConfigObject(\n component: Component,\n configObject?: Record<string, any>\n ): Promise<VariantPolicyConfigArr | undefined> {\n if (!configObject) return;\n ExtensionDataList.adjustEnvsOnConfigObject(configObject);\n const extensionsFromConfigObject = ExtensionDataList.fromConfigObject(configObject);\n const depsResolverFromConfig = extensionsFromConfigObject.findCoreExtension(DependencyResolverAspect.id);\n if (depsResolverFromConfig) {\n // @todo: merge also the scope-specific into the config here. same way we do in \"addConfigDepsFromModelToConfigMerge\"\n depsResolverFromConfig.data.policy = component.state._consumer.extensions.findCoreExtension(\n DependencyResolverAspect.id\n )?.data.policy;\n }\n const autoDeps = extensionsFromConfigObject.extractAutoDepsFromConfig();\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConfigObject,\n consumerComponent.extensions,\n ]).filterRemovedExtensions();\n consumerComponent.extensions = extensionDataList;\n component.state.aspects = await this.scope.createAspectListFromExtensionDataList(extensionDataList);\n\n return autoDeps;\n }\n\n async snapFromScope(\n snapDataPerCompRaw: SnapDataPerCompRaw[],\n params: {\n push?: boolean;\n ignoreIssues?: string;\n lane?: string;\n updateDependents?: boolean;\n tag?: boolean;\n // in case of merging lanes, the component files are updated in-memory\n updatedLegacyComponents?: ConsumerComponent[];\n loadAspectOnlyForIds?: ComponentIdList; // if undefined, load aspects for all components\n } & Partial<BasicTagParams>\n ): Promise<SnapFromScopeResults> {\n if (this.workspace) {\n throw new BitError(\n `unable to run this command from a workspace, please create a new bare-scope and run it from there`\n );\n }\n let lane: Lane | undefined;\n const laneIdStr = params.lane;\n if (laneIdStr) {\n const laneId = LaneId.parse(laneIdStr);\n try {\n lane = await this.importer.importLaneObject(laneId);\n } catch (err: any) {\n if (err.constructor.name !== LaneNotFound.name) throw err;\n // if the lane is not found, it's probably because it's new. create a new lane.\n lane = await createLaneInScope(laneId.name, this.scope, laneId.scope);\n // it's important to set the lane as new in scope.json. otherwise, later, when importing and the lane is loaded\n // from the filesystem, it looses the \"isNew: true\", and then it tries to fetch the lane from the remote scope.\n // which fails with the importer.\n this.scope.legacyScope.scopeJson.setLaneAsNew(laneId.name);\n }\n // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists\n // from the original scope instead of the lane-scope.\n this.scope.legacyScope.setCurrentLaneId(laneId);\n this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;\n }\n const laneCompIds = lane?.toComponentIdsIncludeUpdateDependents();\n const snapDataPerComp = snapDataPerCompRaw.map((snapData) => {\n return {\n componentId: ComponentID.fromString(snapData.componentId),\n dependencies: snapData.dependencies || [],\n aspects: snapData.aspects,\n message: snapData.message,\n files: snapData.files,\n isNew: snapData.isNew,\n mainFile: snapData.mainFile,\n newDependencies: (snapData.newDependencies || []).map((dep) => ({\n id: dep.id,\n version: dep.version,\n isComponent: dep.isComponent ?? true,\n type: dep.type ?? 'runtime',\n })),\n removeDependencies: snapData.removeDependencies,\n version: snapData.version,\n };\n });\n\n // console.log('snapDataPerComp', JSON.stringify(snapDataPerComp, undefined, 2));\n\n const componentIds = compact(snapDataPerComp.map((t) => (t.isNew ? null : t.componentId)));\n const allCompIds = snapDataPerComp.map((s) => s.componentId);\n const componentIdsLatest = componentIds.map((id) => id.changeVersion(LATEST));\n const newCompsData = compact(snapDataPerComp.map((t) => (t.isNew ? t : null)));\n const newComponents = await Promise.all(\n newCompsData.map((newComp) => generateCompFromScope(this.scope, this.dependencyResolver, newComp, this))\n );\n\n await this.scope.import(componentIdsLatest, {\n preferDependencyGraph: false,\n lane,\n reason: `seeders to snap`,\n });\n const getSnapData = (id: ComponentID): SnapDataParsed => {\n const snapData = snapDataPerComp.find((t) => {\n return t.componentId.isEqual(id, { ignoreVersion: true });\n });\n if (!snapData) throw new Error(`unable to find ${id.toString()} in snapDataPerComp`);\n return snapData;\n };\n const updatedLegacyComponents = params.updatedLegacyComponents || [];\n const updatedComponents = await this.scope.getManyByLegacy(updatedLegacyComponents);\n\n const existingComponents = compact(\n await pMapSeries(componentIdsLatest, async (id) => {\n const foundInUpdated = updatedComponents.find((c) => c.id.isEqualWithoutVersion(id));\n return foundInUpdated || this.scope.get(id);\n })\n );\n // in case of update-dependents, align the dependencies of the dependents according to the lane\n if (params.updateDependents && laneCompIds) {\n existingComponents.forEach((comp) => {\n const deps = this.dependencyResolver.getComponentDependencies(comp);\n const snapData = getSnapData(comp.id);\n deps.forEach((dep) => {\n const fromLane = laneCompIds.searchWithoutVersion(dep.componentId);\n if (fromLane) {\n snapData.dependencies.push(fromLane.toString());\n }\n });\n });\n }\n\n const components = [...existingComponents, ...newComponents];\n\n // this must be done before we load component aspects later on, because this updated deps may update aspects.\n await pMapSeries(components, async (component) => {\n const snapData = getSnapData(component.id);\n const autoDeps = await this.addAspectsFromConfigObject(component, snapData.aspects);\n // adds explicitly defined dependencies and dependencies from envs/aspects (overrides)\n await addDeps(component, snapData, this.scope, this.deps, this.dependencyResolver, this, autoDeps);\n });\n\n // for new components these are not needed. coz when generating them we already add the aspects and the files.\n await Promise.all(\n existingComponents.map(async (comp) => {\n const snapData = getSnapData(comp.id);\n if (snapData.files?.length) {\n await this.updateSourceFiles(comp, snapData.files);\n }\n })\n );\n\n // load the aspects user configured to set on the components. it creates capsules if needed.\n // otherwise, when a user set a custom-env, it won't be loaded and the Version object will leave the\n // teambit.envs/envs in a weird state. the config will be set correctly but the data will be set to the default\n // node env.\n const { loadAspectOnlyForIds } = params;\n const compsToLoadAspects = loadAspectOnlyForIds\n ? components.filter((c) => loadAspectOnlyForIds.hasWithoutVersion(c.id))\n : components;\n\n await this.scope.loadManyCompsAspects(compsToLoadAspects);\n\n // this is similar to what happens in the workspace. the \"onLoad\" is running and populating the \"data\" of the aspects.\n await pMapSeries(compsToLoadAspects, async (comp) => this.scope.executeOnCompAspectReCalcSlot(comp));\n\n const ids = ComponentIdList.fromArray(allCompIds);\n const shouldTag = Boolean(params.tag);\n const makeVersionParams = {\n ...params,\n tagDataPerComp: snapDataPerComp.map((s) => ({\n componentId: s.componentId,\n message: s.message,\n dependencies: [],\n versionToTag: shouldTag ? s.version || 'patch' : undefined,\n })),\n persist: true,\n isSnap: !shouldTag,\n message: params.message as string,\n updateDependentsOnLane: params.updateDependents,\n };\n const results = await this.makeVersion(ids, components, makeVersionParams);\n\n const { taggedComponents } = results;\n let exportedIds: ComponentIdList | undefined;\n if (params.push) {\n const updatedLane = lane ? await this.scope.legacyScope.loadLane(lane.toLaneId()) : undefined;\n const { exported } = await this.exporter.pushToScopes({\n scope: this.scope.legacyScope,\n ids,\n allVersions: false,\n laneObject: updatedLane,\n // no need other snaps. only the latest one. without this option, when snapping on lane from another-scope, it\n // may throw an error saying the previous snaps don't exist on the filesystem.\n // (see the e2e - \"snap on a lane when the component is new to the lane and the scope\")\n exportHeadsOnly: true,\n });\n exportedIds = exported;\n }\n\n return {\n snappedComponents: taggedComponents,\n snappedIds: taggedComponents.map((comp) => comp.id),\n autoSnappedResults: results.autoTaggedResults,\n exportedIds,\n };\n }\n\n /**\n * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.\n * once a component is snapped on a lane, it becomes part of it.\n */\n async snap({\n pattern,\n legacyBitIds, // @todo: change to ComponentID[]. pass only if have the ids already parsed.\n unmerged,\n editor,\n message = '',\n ignoreIssues,\n skipTests = false,\n skipTasks,\n skipAutoSnap = false,\n build,\n disableTagAndSnapPipelines = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n unmodified = false,\n exitOnFirstFailedTask = false,\n detachHead,\n loose = false,\n }: Partial<BasicTagSnapParams> & {\n pattern?: string;\n legacyBitIds?: ComponentIdList;\n unmerged?: boolean;\n editor?: string;\n ignoreIssues?: string;\n skipAutoSnap?: boolean;\n disableTagAndSnapPipelines?: boolean;\n unmodified?: boolean;\n exitOnFirstFailedTask?: boolean;\n }): Promise<SnapResults | null> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (pattern && legacyBitIds) throw new Error(`please pass either pattern or legacyBitIds, not both`);\n const consumer: Consumer = this.workspace.consumer;\n const componentsList = new ComponentsList(this.workspace);\n const newComponents = (await componentsList.listNewComponents()) as ComponentIdList;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n const ids = legacyBitIds || (await getIdsToSnap());\n if (!ids) return null;\n this.logger.debug(`snapping the following components: ${ids.toString()}`);\n const components = await this.loadComponentsForTagOrSnap(ids);\n await this.throwForVariousIssues(components, ignoreIssues);\n const makeVersionParams = {\n editor,\n ignoreNewestVersion: false,\n message,\n skipTests,\n skipTasks,\n skipAutoTag: skipAutoSnap,\n persist: true,\n soft: false,\n build,\n isSnap: true,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n packageManagerConfigRootDir: this.workspace.path,\n exitOnFirstFailedTask,\n detachHead,\n loose,\n ignoreIssues,\n };\n const { taggedComponents, autoTaggedResults, stagedConfig, removedComponents, totalComponentsCount } =\n await this.makeVersion(ids, components, makeVersionParams);\n\n const snapResults: Partial<SnapResults> = {\n snappedComponents: taggedComponents,\n autoSnappedResults: autoTaggedResults,\n newComponents,\n removedComponents,\n totalComponentsCount,\n };\n\n const currentLane = consumer.getCurrentLaneId();\n snapResults.laneName = currentLane.isDefault() ? null : currentLane.toString();\n await consumer.onDestroy(`snap (message: ${message || 'N/A'})`);\n await stagedConfig?.write();\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return snapResults;\n\n async function getIdsToSnap(): Promise<ComponentIdList | null> {\n if (unmerged) {\n return componentsList.listDuringMergeStateComponents();\n }\n const tagPendingComponentsIds = await self.getTagPendingComponentsIds(unmodified);\n if (!tagPendingComponentsIds.length) return null;\n // when unmodified, we ask for all components, throw if no matching. if not unmodified and no matching, see error\n // below, suggesting to use --unmodified flag.\n const shouldThrowForNoMatching = unmodified;\n const getCompIds = async () => {\n if (!pattern) return tagPendingComponentsIds;\n if (!pattern.includes('*') && !pattern.includes(',')) {\n const compId = await self.workspace.resolveComponentId(pattern);\n return [compId];\n }\n return self.workspace.filterIdsFromPoolIdsByPattern(pattern, tagPendingComponentsIds, shouldThrowForNoMatching);\n };\n const componentIds = await getCompIds();\n if (!componentIds.length && pattern) {\n const allTagPending = await self.workspace.listPotentialTagIds();\n if (allTagPending.length) {\n throw new BitError(`unable to find matching for \"${pattern}\" pattern among modified/new components.\nthere are matching among unmodified components though. consider using --unmodified flag if needed.\nin case you're unsure about the pattern syntax, use \"bit pattern [--help]\"`);\n }\n }\n if (!componentIds.length) {\n return null;\n }\n return ComponentIdList.fromArray(componentIds);\n }\n }\n\n /**\n * remove tags/snaps that exist locally, which were not exported yet.\n * once a tag/snap is exported, it's impossible to delete it as other components may depend on it\n */\n async reset(\n componentPattern?: string,\n head?: boolean,\n force = false,\n soft = false\n ): Promise<{ results: ResetResult[]; isSoftUntag: boolean }> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const consumer = this.workspace.consumer;\n const currentLane = await consumer.getCurrentLaneObject();\n const untag = async (): Promise<ResetResult[]> => {\n if (!componentPattern) {\n return removeLocalVersionsForAllComponents(this.workspace, this.remove, currentLane, head);\n }\n const candidateComponents = await getComponentsWithOptionToUntag(this.workspace, this.remove);\n const idsMatchingPattern = await this.workspace.idsByPattern(componentPattern, true, { includeDeleted: true });\n const idsMatchingPatternBitIds = ComponentIdList.fromArray(idsMatchingPattern);\n const componentsToUntag = candidateComponents.filter((modelComponent) =>\n idsMatchingPatternBitIds.hasWithoutVersion(modelComponent.toComponentId())\n );\n return removeLocalVersionsForMultipleComponents(consumer, componentsToUntag, currentLane, head, force);\n };\n const softUntag = async () => {\n const softTaggedComponentsIds = this.workspace.filter.bySoftTagged();\n const idsToRemoveSoftTags = componentPattern\n ? await this.workspace.filterIdsFromPoolIdsByPattern(componentPattern, softTaggedComponentsIds)\n : softTaggedComponentsIds;\n return compact(\n idsToRemoveSoftTags.map((componentId) => {\n const componentMap = consumer.bitMap.getComponent(componentId, { ignoreVersion: true });\n const removedVersion = componentMap.nextVersion?.version;\n if (!removedVersion) return null;\n componentMap.clearNextVersion();\n return { id: componentId, versions: [removedVersion] };\n })\n );\n };\n let results: ResetResult[];\n const isRealUntag = !soft;\n if (isRealUntag) {\n results = await untag();\n await consumer.scope.objects.persist();\n const currentLaneId = consumer.getCurrentLaneId();\n const stagedConfig = await this.workspace.scope.getStagedConfig();\n\n await pMapSeries(results, async ({ component, versionToSetInBitmap }) => {\n if (!component) return;\n await updateVersions(this.workspace, stagedConfig, currentLaneId, component, versionToSetInBitmap, false);\n });\n await this.workspace.scope.legacyScope.stagedSnaps.write();\n } else {\n results = await softUntag();\n consumer.bitMap.markAsChanged();\n }\n\n await consumer.onDestroy('reset');\n return { results, isSoftUntag: !isRealUntag };\n }\n\n async resetNeverExported(): Promise<ComponentID[]> {\n const notExported = this.workspace.consumer.getNotExportedIds();\n const hashes = notExported.map((id) => BitObject.makeHash(id.fullName));\n await this.scope.legacyScope.objects.deleteObjectsFromFS(hashes.map((h) => Ref.from(h)));\n notExported.map((id) => this.workspace.consumer.bitMap.updateComponentId(id.changeVersion(undefined)));\n await this.workspace.bitMap.write(`reset (never-exported)`);\n return notExported;\n }\n\n /**\n * used externally. don't make it private.\n */\n async _addFlattenedDependenciesToComponents(components: ConsumerComponent[], rebuildDepsGraph = false) {\n this.logger.setStatusLine('importing missing dependencies...');\n this.logger.profile('snap._addFlattenedDependenciesToComponents');\n const getLane = async () => {\n const lane = await this.scope.legacyScope.getCurrentLaneObject();\n if (!lane) return undefined;\n if (!lane.isNew) return lane;\n const forkedFrom = lane.forkedFrom;\n if (!forkedFrom) return undefined;\n return this.scope.legacyScope.loadLane(forkedFrom);\n };\n const lane = await getLane();\n\n if (rebuildDepsGraph) {\n const flattenedDependenciesGetter = new FlattenedDependenciesGetter(this.scope.legacyScope, components, lane);\n await flattenedDependenciesGetter.populateFlattenedDependencies();\n this.logger.clearStatusLine();\n await this._addFlattenedDepsGraphToComponents(components);\n return;\n }\n\n const flattenedEdgesGetter = new FlattenedEdgesGetter(this.scope, components, this.logger, lane);\n await flattenedEdgesGetter.buildGraph();\n\n components.forEach((component) => {\n flattenedEdgesGetter.populateFlattenedAndEdgesForComp(component);\n });\n this.logger.profile('snap._addFlattenedDependenciesToComponents');\n }\n\n async throwForDepsFromAnotherLane(components: ConsumerComponent[]) {\n const lane = await this.scope.legacyScope.getCurrentLaneObject();\n const allIds = ComponentIdList.fromArray(components.map((c) => c.id));\n const missingDeps = await pMapSeries(components, async (component) => {\n return this.throwForDepsFromAnotherLaneForComp(component, allIds, lane);\n });\n const flattenedMissingDeps = ComponentIdList.uniqFromArray(\n missingDeps.flat().map((id) => id.changeVersion(undefined))\n );\n if (!flattenedMissingDeps.length) return;\n // ignore the cache. even if the component exists locally, we still need its VersionHistory object\n // in order to traverse the history and determine whether it's part of the lane history.\n await this.scope.legacyScope.scopeImporter.importWithoutDeps(flattenedMissingDeps, {\n cache: false,\n ignoreMissingHead: true,\n includeVersionHistory: true,\n lane,\n reason: 'of latest with version-history to make sure there are no dependencies from another lane',\n });\n await pMapSeries(components, async (component) => {\n await this.throwForDepsFromAnotherLaneForComp(component, allIds, lane, true);\n });\n }\n\n async throwForVariousIssues(components: Component[], ignoreIssues?: string) {\n const componentsToCheck = components.filter((c) => !c.isDeleted());\n const consumerComponents = componentsToCheck.map((c) => c.state._consumer) as ConsumerComponent[];\n await this.throwForLegacyDependenciesInsideHarmony(consumerComponents);\n await this.builder.throwForComponentIssues(componentsToCheck, ignoreIssues);\n this.throwForPendingImport(consumerComponents);\n }\n\n private async throwForDepsFromAnotherLaneForComp(\n component: ConsumerComponent,\n allIds: ComponentIdList,\n lane?: Lane,\n throwForMissingObjects = false\n ) {\n const depsFromModel = component.componentFromModel?.getAllDependencies();\n const depsFromModelIds = depsFromModel\n ? ComponentIdList.fromArray(depsFromModel.map((d) => d.id))\n : new ComponentIdList();\n const deps = component.getAllDependencies();\n const missingDeps: ComponentID[] = [];\n await Promise.all(\n deps.map(async (dep) => {\n if (!this.scope.isExported(dep.id) || !dep.id.hasVersion()) return;\n if (isTag(dep.id.version)) return;\n if (allIds.hasWithoutVersion(dep.id)) return; // it's tagged/snapped now.\n if (depsFromModelIds.has(dep.id)) return; // this dep is not new, it was already snapped/tagged with it before.\n let isPartOfHistory: boolean | undefined;\n try {\n isPartOfHistory = lane\n ? await this.scope.legacyScope.isPartOfLaneHistoryOrMain(dep.id, lane)\n : await this.scope.legacyScope.isPartOfMainHistory(dep.id);\n } catch (err) {\n if (throwForMissingObjects) throw err;\n if (\n err instanceof VersionNotFound ||\n err instanceof ComponentNotFound ||\n err instanceof HeadNotFound ||\n err instanceof ParentNotFound\n ) {\n missingDeps.push(dep.id);\n return;\n }\n throw err;\n }\n\n if (!isPartOfHistory) {\n if (!throwForMissingObjects) {\n // it's possible that the dependency wasn't imported recently and the head is stale.\n missingDeps.push(dep.id);\n return;\n }\n const laneOrMainStr = lane ? `current lane \"${lane.name}\"` : 'main';\n throw new Error(\n `unable to tag/snap ${component.id.toString()}, it has a dependency ${dep.id.toString()} which is not part of ${laneOrMainStr} history.\none option to resolve this is installing ${dep.id.toStringWithoutVersion()} via \"bit install\", which installs the version from main.\nanother option, in case this dependency is not in main yet is to remove all references of this dependency in the code and then tag/snap.`\n );\n }\n })\n );\n return missingDeps;\n }\n\n async _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]) {\n const graph = new Graph<ComponentID, string>();\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n graph.setNode(new Node(dep.id.toString(), dep.id));\n graph.setEdge(new Edge(compId.toString(), dep.id.toString(), label));\n });\n };\n components.forEach((comp) => {\n graph.setNode(new Node(comp.id.toString(), comp.id));\n addEdges(comp.id, comp.dependencies, 'prod');\n addEdges(comp.id, comp.devDependencies, 'dev');\n addEdges(comp.id, comp.extensionDependencies, 'ext');\n });\n const allFlattened = components.map((comp) => comp.flattenedDependencies);\n const allFlattenedUniq = ComponentIdList.uniqFromArray(allFlattened.flat());\n const allFlattenedWithoutCurrent = allFlattenedUniq.filter((id) => !components.find((c) => c.id.isEqual(id)));\n const componentsAndVersions = await this.scope.legacyScope.getComponentsAndVersions(\n ComponentIdList.fromArray(allFlattenedWithoutCurrent)\n );\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toComponentId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n let someCompsHaveMissingFlattened = false;\n components.forEach((component) => {\n const edges = graph.outEdges(component.id.toString());\n const flattenedEdges = component.flattenedDependencies.map((dep) => graph.outEdges(dep.toString())).flat();\n const allEdges = [...edges, ...flattenedEdges];\n const edgesWithBitIds: DepEdge[] = allEdges.map((edge) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n source: graph.node(edge.source)!.attr,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n target: graph.node(edge.target)!.attr,\n type: edge.attr as DepEdgeType,\n }));\n component.flattenedEdges = edgesWithBitIds;\n\n // due to some previous bugs, some components might have missing flattened dependencies.\n // as a result, the flattenedEdges may have more components than the flattenedDependencies, which will cause\n // issues later on when the graph is built. this fixes it by adding the missing flattened dependencies, and\n // then recursively adding the flattenedEdge accordingly.\n const flattened = component.flattenedDependencies.map((dep) => dep.toString());\n const flattenedFromEdges = uniq(\n edgesWithBitIds.map((edge) => [edge.target.toString(), edge.source.toString()]).flat()\n );\n const missingFlattened = difference(flattenedFromEdges, flattened).filter((id) => id !== component.id.toString());\n\n if (missingFlattened.length) {\n someCompsHaveMissingFlattened = true;\n this.logger.warn(`missing flattened for ${component.id.toString()}: ${missingFlattened.join(', ')}`);\n const missingBitIds = missingFlattened.map((id) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return graph.node(id)!.attr;\n });\n component.flattenedDependencies.push(...missingBitIds);\n }\n });\n if (someCompsHaveMissingFlattened) {\n await this._addFlattenedDepsGraphToComponents(components);\n }\n }\n\n /**\n * used externally. don't make it private.\n */\n _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]) {\n tagResult.forEach((result) => {\n const matchingComponent = components.find((c) => c.id.isEqual(result.id));\n if (matchingComponent) {\n const existingBuilder = matchingComponent.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = result.builderData.data;\n else matchingComponent.extensions.push(result.builderData);\n }\n });\n }\n\n /**\n * used externally. don't make it private.\n */\n _getPublishedPackages(components: ConsumerComponent[]): PackageIntegritiesByPublishedPackages {\n const publishedPackages: PackageIntegritiesByPublishedPackages = new Map();\n for (const comp of components) {\n const builderExt = comp.extensions.findCoreExtension(Extensions.builder);\n const pkgData = builderExt?.data?.aspectsData?.find((a) => a.aspectId === Extensions.pkg);\n if (pkgData?.data?.publishedPackage != null) {\n publishedPackages.set(pkgData.data.publishedPackage, {\n integrity: pkgData.data.integrity,\n previouslyUsedVersion: comp.previouslyUsedVersion,\n });\n }\n }\n return publishedPackages;\n }\n\n async _addCompToObjects({\n source,\n lane,\n shouldValidateVersion = false,\n addVersionOpts,\n }: {\n source: ConsumerComponent;\n lane?: Lane;\n shouldValidateVersion?: boolean;\n addVersionOpts?: AddVersionOpts;\n }): Promise<{\n component: ModelComponent;\n version: Version;\n addedVersionStr: string;\n }> {\n const { addedVersionStr, component, version } = await this._addCompFromScopeToObjects(source, lane, addVersionOpts);\n const unmergedComponent = this.scope.legacyScope.objects.unmergedComponents.getEntry(component.toComponentId());\n if (unmergedComponent) {\n if (unmergedComponent.unrelated) {\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding an unrelated entry ${unmergedComponent.head.hash}`\n );\n if (!source.previouslyUsedVersion) {\n throw new Error(\n `source.previouslyUsedVersion must be set for ${component.name} because it's unrelated resolved.`\n );\n }\n if (unmergedComponent.unrelated === true) {\n // backward compatibility\n const unrelatedHead = Ref.from(source.previouslyUsedVersion);\n version.setUnrelated({ head: unrelatedHead, laneId: unmergedComponent.laneId });\n version.addAsOnlyParent(unmergedComponent.head);\n } else {\n const unrelated = unmergedComponent.unrelated;\n version.setUnrelated({ head: unrelated.unrelatedHead, laneId: unrelated.unrelatedLaneId });\n version.addAsOnlyParent(unrelated.headOnCurrentLane);\n }\n } else {\n // this is adding a second parent to the version. the order is important. the first parent is coming from the current-lane.\n version.addParent(unmergedComponent.head);\n this.logger.debug(\n `sources.addSource, unmerged component \"${component.name}\". adding a parent ${unmergedComponent.head.hash}`\n );\n version.log.message = version.log.message || UnmergedComponents.buildSnapMessage(unmergedComponent);\n }\n this.scope.legacyScope.objects.unmergedComponents.removeComponent(component.toComponentId());\n }\n if (shouldValidateVersion) version.validate();\n return { addedVersionStr, component, version };\n }\n\n /**\n * used externally. don't make it private.\n */\n async _addCompFromScopeToObjects(\n source: ConsumerComponent,\n lane?: Lane,\n addVersionOpts?: AddVersionOpts\n ): Promise<{\n component: ModelComponent;\n version: Version;\n addedVersionStr: string;\n }> {\n const objectRepo = this.objectsRepo;\n // if a component exists in the model, add a new version. Otherwise, create a new component on the model\n // @todo: fix the ts error here with \"source\"\n const component = await this.scope.legacyScope.sources.findOrAddComponent(source as any);\n const artifactFiles = getArtifactsFiles(source.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n const { version, files, flattenedEdges, dependenciesGraph } =\n await this.scope.legacyScope.sources.consumerComponentToVersion(source);\n version.origin = {\n id: { scope: source.scope || (source.defaultScope as string), name: source.name },\n lane: lane ? { scope: lane.scope, name: lane.name, hash: lane.hash().toString() } : undefined,\n };\n objectRepo.add(version);\n if (flattenedEdges) this.objectsRepo.add(flattenedEdges);\n if (dependenciesGraph) this.objectsRepo.add(dependenciesGraph);\n if (!source.version) throw new Error(`addSource expects source.version to be set`);\n const addedVersionStr = component.addVersion(\n version,\n source.version,\n lane,\n source.previouslyUsedVersion,\n addVersionOpts\n );\n objectRepo.add(component);\n if (lane) objectRepo.add(lane);\n files.forEach((file) => objectRepo.add(file.file));\n if (artifacts) artifacts.forEach((file) => objectRepo.add(file.source));\n return { component, version, addedVersionStr };\n }\n\n /**\n * for an existing component in the local scope, add the updated Version-object/artifacts to the repository\n * so the next \"persist()\" call will save them to the filesystem\n */\n async enrichComp(component: Component, modifiedLog?: Log) {\n const objects = await this.getObjectsToEnrichComp(component, modifiedLog);\n objects.forEach((obj) => this.objectsRepo.add(obj));\n }\n\n /**\n * used externally. don't make it private.\n * needed to be updated after the build-pipeline was running\n */\n setBuildStatus(component: Component, buildStatus: BuildStatus) {\n component.state._consumer.buildStatus = buildStatus;\n }\n\n /**\n * for an existing component in the local scope, update the Version object with the updated data from the\n * consumer-component and return the objects that need to be saved in the filesystem\n */\n async getObjectsToEnrichComp(component: Component, modifiedLog?: Log): Promise<BitObject[]> {\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const modelComp =\n consumerComponent.modelComponent || // @todo: fix the ts error here with \"source\"\n (await this.scope.legacyScope.sources.findOrAddComponent(consumerComponent as any));\n const version = await modelComp.loadVersion(consumerComponent.id.version as string, this.objectsRepo, true);\n if (modifiedLog) version.addModifiedLog(modifiedLog);\n const artifactFiles = getArtifactsFiles(consumerComponent.extensions);\n const artifacts = this.transformArtifactsFromVinylToSource(artifactFiles);\n version.extensions = consumerComponent.extensions;\n version.buildStatus = consumerComponent.buildStatus;\n const artifactObjects = artifacts.map((file) => file.source);\n const dependenciesGraph = Version.dependenciesGraphToSource(consumerComponent.dependenciesGraph);\n version.dependenciesGraphRef = dependenciesGraph ? dependenciesGraph.hash() : undefined;\n\n const result = [version, ...artifactObjects];\n if (dependenciesGraph) result.push(dependenciesGraph);\n return result;\n }\n\n private transformArtifactsFromVinylToSource(artifactsFiles: ArtifactFiles[]): ArtifactSource[] {\n const artifacts: ArtifactSource[] = [];\n artifactsFiles.forEach((artifactFiles) => {\n const artifactsSource = ArtifactFiles.fromVinylsToSources(artifactFiles.vinyls);\n if (artifactsSource.length) artifactFiles.populateRefsFromSources(artifactsSource);\n artifacts.push(...artifactsSource);\n });\n return artifacts;\n }\n\n private async loadComponentsForTagOrSnap(ids: ComponentIdList, shouldClearCacheFirst = true): Promise<Component[]> {\n const idsWithoutVersions = ids.map((id) => id.changeVersion(undefined));\n // don't pass the idsWithoutVersions to `this.application.loadAllAppsAsAspects()`.\n // otherwise, the auto-tag components (which are loaded later) won't have the application data.\n const appIds = await this.application.loadAllAppsAsAspects();\n if (shouldClearCacheFirst) {\n await this.workspace.consumer.componentFsCache.deleteAllDependenciesDataCache();\n // don't clear only the cache of these ids. we need also the auto-tag. so it's safer to just clear all.\n this.workspace.clearAllComponentsCache();\n } else {\n appIds.forEach((id) => this.workspace.clearComponentCache(id));\n }\n\n return this.workspace.getMany(idsWithoutVersions);\n }\n\n private throwForPendingImport(components: ConsumerComponent[]) {\n const componentsMissingFromScope = components\n .filter((c) => !c.componentFromModel && this.scope.isExported(c.id))\n .map((c) => c.id.toString());\n if (componentsMissingFromScope.length) {\n throw new ComponentsPendingImport(componentsMissingFromScope);\n }\n }\n\n private async throwForLegacyDependenciesInsideHarmony(components: ConsumerComponent[]) {\n const throwForComponent = async (component: ConsumerComponent) => {\n const dependenciesIds = component.getAllDependenciesIds();\n const legacyScope = this.workspace.scope.legacyScope;\n await Promise.all(\n dependenciesIds.map(async (depId) => {\n if (!depId.hasVersion()) return;\n const modelComp = await legacyScope.getModelComponentIfExist(depId);\n if (!modelComp) return;\n const version = await modelComp.loadVersion(depId.version as string, legacyScope.objects);\n if (version.isLegacy) {\n throw new Error(\n `unable tagging \"${component.id.toString()}\", its dependency \"${depId.toString()}\" is legacy`\n );\n }\n })\n );\n };\n await pMap(components, (component) => throwForComponent(component), { concurrency: concurrentComponentsLimit() });\n }\n\n /**\n * used externally. don't make it private.\n *\n * the compId.version can be a range (e.g. \"^1.0.0\"), in which case, it finds the component in the local scope and\n * resolves the latest version that falls under the range.\n * in case the version has no range, it returns the same compId.\n * in case it has no version, it returns the latest.\n */\n async getCompIdWithExactVersionAccordingToSemver(compId: ComponentID): Promise<ComponentID> {\n if (isHash(compId.version)) {\n return compId;\n }\n const range = compId.version || '*'; // if not version specified, assume the latest\n const id = compId.changeVersion(undefined);\n const exactVersion = await this.scope.getExactVersionBySemverRange(id, range);\n if (!exactVersion) {\n throw new Error(`unable to find a version that satisfies \"${range}\" of \"${compId.toString()}\"`);\n }\n return compId.changeVersion(exactVersion);\n }\n\n async updateSourceFiles(component: Component, files: FileData[]) {\n const currentFiles = component.state.filesystem.files;\n\n files.forEach((file) => {\n if (file.delete) {\n const found = currentFiles.find((f) => f.relative === file.path);\n if (!found) return;\n if (this.workspace) {\n fs.removeSync(found.path);\n }\n const index = currentFiles.findIndex((f) => f.relative === file.path);\n if (index !== -1) {\n currentFiles.splice(index, 1);\n }\n return;\n }\n const currentFile = currentFiles.find((f) => f.relative === file.path);\n if (currentFile) {\n currentFile.contents = Buffer.from(file.content);\n } else {\n currentFiles.push(\n new SourceFile({ base: '.', path: file.path, contents: Buffer.from(file.content), test: false })\n );\n }\n });\n\n if (!currentFiles.length)\n throw new Error(`unable to update component ${component.id.toString()}, all files were deleted`);\n }\n\n /**\n * used externally. don't make it private.\n */\n async updateDependenciesVersionsOfComponent(\n component: Component,\n dependencies: ComponentID[],\n currentBitIds: ComponentID[]\n ) {\n const updatedIds = ComponentIdList.fromArray([...currentBitIds, ...dependencies]);\n const componentIdStr = component.id.toString();\n const legacyComponent: ConsumerComponent = component.state._consumer;\n const deps = [...legacyComponent.dependencies.get(), ...legacyComponent.devDependencies.get()];\n const dependenciesList = this.dependencyResolver.getDependencies(component);\n deps.forEach((dep) => {\n const updatedBitId = updatedIds.searchWithoutVersion(dep.id);\n if (updatedBitId) {\n const depIdStr = dep.id.toString();\n const packageName = dependenciesList.findDependency(depIdStr)?.getPackageName?.();\n if (!packageName) {\n throw new Error(\n `unable to find the package-name of \"${depIdStr}\" dependency inside the dependency-resolver data of \"${componentIdStr}\"`\n );\n }\n this.logger.debug(`updating \"${componentIdStr}\", dependency ${depIdStr} to version ${updatedBitId.version}}`);\n dep.id = updatedBitId;\n dep.packageName = packageName;\n }\n });\n await this.UpdateDepsAspectsSaveIntoDepsResolver(component, updatedIds.toStringArray());\n }\n\n /**\n * it does two things:\n * 1. update extensions versions according to the version provided in updatedIds.\n * 2. save all dependencies data from the legacy into DependencyResolver aspect.\n */\n async UpdateDepsAspectsSaveIntoDepsResolver(component: Component, updatedIds: string[]) {\n const legacyComponent: ConsumerComponent = component.state._consumer;\n legacyComponent.extensions.forEach((ext) => {\n const extId = ext.extensionId;\n if (!extId) return;\n const found = updatedIds.find((d) => d.startsWith(`${extId.toStringWithoutVersion()}@`));\n if (found) {\n const updatedExtId = ComponentID.fromString(found);\n this.logger.debug(\n `updating \"${component.id.toString()}\", extension ${extId.toString()} to version ${updatedExtId.version}}`\n );\n ext.extensionId = updatedExtId;\n if (ext.newExtensionId) ext.newExtensionId = updatedExtId;\n }\n });\n\n component.state.aspects = await this.scope.createAspectListFromExtensionDataList(legacyComponent.extensions);\n\n const dependenciesListSerialized = (await this.dependencyResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.config.extensions.findExtension(extId);\n if (existingExtension) {\n // Only merge top level of extension data\n Object.assign(existingExtension.data, data);\n return;\n }\n const extension = new ExtensionDataEntry(undefined, undefined, extId, undefined, data);\n component.config.extensions.push(extension);\n }\n\n private async getTagPendingComponentsIds(includeUnmodified = false) {\n const ids = includeUnmodified\n ? await this.workspace.listPotentialTagIds()\n : await this.workspace.listTagPendingIds();\n const localOnlyIds = this.workspace.filter.byLocalOnly(ids);\n if (!localOnlyIds.length) {\n return ids;\n }\n const localOnlyListIds = ComponentIdList.fromArray(localOnlyIds);\n return ids.filter((id) => !localOnlyListIds.hasWithoutVersion(id));\n }\n\n private async getComponentsToTag(\n includeUnmodified: boolean,\n exactVersion: string | undefined,\n persist: boolean,\n ids: string[],\n snapped: boolean,\n unmerged: boolean\n ): Promise<{ bitIds: ComponentID[]; warnings: string[] }> {\n const warnings: string[] = [];\n const componentsList = new ComponentsList(this.workspace);\n if (persist) {\n const softTaggedComponents = this.workspace.filter.bySoftTagged();\n return { bitIds: softTaggedComponents, warnings: [] };\n }\n\n const tagPendingComponentsIds = await this.getTagPendingComponentsIds(includeUnmodified);\n\n const snappedComponentsIds = (await this.workspace.filter.bySnappedOnMain()).map((id) =>\n id.changeVersion(undefined)\n );\n\n const tagPendingBitIdsIncludeSnapped = ComponentIdList.fromArray([\n ...tagPendingComponentsIds,\n ...snappedComponentsIds,\n ]);\n\n if (snappedComponentsIds.length) {\n const localOnlyIds = this.workspace.filter.byLocalOnly(snappedComponentsIds);\n const localOnlyListIds = ComponentIdList.fromArray(localOnlyIds);\n snappedComponentsIds.forEach((id) => {\n if (localOnlyListIds.hasWithoutVersion(id)) {\n const index = snappedComponentsIds.findIndex((c) => c.isEqual(id));\n snappedComponentsIds.splice(index, 1);\n }\n });\n }\n\n if (ids.length) {\n const componentIds = await pMapSeries(ids, async (id) => {\n const [idWithoutVer, version] = id.split('@');\n const idIsPattern = this.workspace.isPattern(id);\n if (idIsPattern) {\n const allIds = await this.workspace.filterIdsFromPoolIdsByPattern(\n idWithoutVer,\n tagPendingBitIdsIncludeSnapped\n );\n return allIds.map((componentId) => componentId.changeVersion(version));\n }\n const componentId = await this.workspace.resolveComponentId(idWithoutVer);\n if (!includeUnmodified) {\n if (!tagPendingBitIdsIncludeSnapped.hasWithoutVersion(componentId)) return null;\n }\n return componentId.changeVersion(version);\n });\n\n return { bitIds: compact(componentIds.flat()), warnings };\n }\n\n if (snapped) {\n return { bitIds: snappedComponentsIds, warnings };\n }\n\n if (unmerged) {\n return { bitIds: componentsList.listDuringMergeStateComponents(), warnings };\n }\n\n if (includeUnmodified && exactVersion) {\n const tagPendingComponentsLatest = await this.workspace.scope.legacyScope.latestVersions(\n tagPendingComponentsIds,\n false\n );\n tagPendingComponentsLatest.forEach((componentId) => {\n if (componentId.version && semver.valid(componentId.version) && semver.gt(componentId.version, exactVersion)) {\n warnings.push(`warning: ${componentId.toString()} has a version greater than ${exactVersion}`);\n }\n });\n }\n\n return { bitIds: tagPendingBitIdsIncludeSnapped.map((id) => id.changeVersion(undefined)), warnings };\n }\n\n static slots = [Slot.withType<OnPreSnap>()];\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n LoggerAspect,\n DependencyResolverAspect,\n ScopeAspect,\n ExportAspect,\n BuilderAspect,\n ImporterAspect,\n ConfigStoreAspect,\n DependenciesAspect,\n ApplicationAspect,\n RemoveAspect,\n ];\n static runtime = MainRuntime;\n static async provider(\n [\n workspace,\n cli,\n loggerMain,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n configStore,\n deps,\n application,\n remove,\n ]: [\n Workspace,\n CLIMain,\n LoggerMain,\n DependencyResolverMain,\n ScopeMain,\n ExportMain,\n BuilderMain,\n ImporterMain,\n ConfigStoreMain,\n DependenciesMain,\n ApplicationMain,\n RemoveMain,\n ],\n config,\n [onPreSnapSlot]: [OnPreSnapSlot]\n ) {\n const logger = loggerMain.createLogger(SnappingAspect.id);\n const snapping = new SnappingMain(\n workspace,\n logger,\n dependencyResolver,\n scope,\n exporter,\n builder,\n importer,\n deps,\n application,\n remove,\n onPreSnapSlot\n );\n const snapCmd = new SnapCmd(snapping, logger, configStore);\n const tagCmd = new TagCmd(snapping, logger, configStore);\n const resetCmd = new ResetCmd(snapping);\n const snapDistanceCmd = new SnapDistanceCmd(scope, workspace);\n cli.register(tagCmd, snapCmd, resetCmd, snapDistanceCmd);\n return snapping;\n }\n}\n\nSnappingAspect.addRuntime(SnappingMain);\n\nexport default SnappingMain;\n"],"mappings":"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","ignoreList":[]}
@@ -28,6 +28,7 @@ export type BasicTagParams = BasicTagSnapParams & {
28
28
  editor?: string;
29
29
  versionsFile?: string;
30
30
  unmodified?: boolean;
31
+ ignoreIssues?: string;
31
32
  };
32
33
  export type VersionMakerParams = {
33
34
  tagDataPerComp?: TagDataPerComp[];
@@ -175,6 +175,12 @@ class VersionMaker {
175
175
  const autoTagComponents = autoTagData.map(autoTagItem => autoTagItem.component);
176
176
  const autoTagComponentsFiltered = autoTagComponents.filter(c => !idsToTag.has(c.id));
177
177
  const autoTagIds = _componentId().ComponentIdList.fromArray(autoTagComponentsFiltered.map(autoTag => autoTag.id));
178
+
179
+ // Validate component issues for auto-tag components
180
+ if (this.allWorkspaceComps && autoTagIds.length) {
181
+ const autoTagHarmonyComponents = this.allWorkspaceComps.filter(c => autoTagIds.has(c.id));
182
+ await this.builder.throwForComponentIssues(autoTagHarmonyComponents, this.params.ignoreIssues);
183
+ }
178
184
  await this.triggerOnPreSnap(autoTagIds);
179
185
  this.allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];
180
186
  await this.parseVersionsFile(idsToTag, autoTagIds);
@@ -276,14 +282,17 @@ class VersionMaker {
276
282
  rootComponentsPath: this.workspace.rootComponentsPath,
277
283
  componentIdByPkgName
278
284
  };
279
- await (0, _toolboxPromise().pMapPool)(this.allComponentsToTag, async consumerComponent => {
285
+ const components = [];
286
+ for (const consumerComponent of this.allComponentsToTag) {
280
287
  const component = this._findWorkspaceCompByConsumerComp(consumerComponent);
281
288
  if (consumerComponent.componentMap?.rootDir && component) {
282
- await this.dependencyResolver.addDependenciesGraph(component, consumerComponent.componentMap.rootDir, options);
289
+ components.push({
290
+ component,
291
+ componentRelativeDir: consumerComponent.componentMap.rootDir
292
+ });
283
293
  }
284
- }, {
285
- concurrency: 10
286
- });
294
+ }
295
+ await this.dependencyResolver.addDependenciesGraph(components, options);
287
296
  this.snapping.logger.clearStatusLine();
288
297
  this.snapping.logger.profile('snap._addDependenciesGraphToComponents');
289
298
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_uuid","_bitError","_componentId","_legacy","_legacy2","_workspaceModules","_legacy3","_remove","_pkgModules","_harmonyModules","_toolboxCrypto","_componentVersion","_objects","_messagePerComponent","_versionFileParser","_dependencyResolver","_toolboxPromise","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VersionMaker","constructor","snapping","components","consumerComponents","ids","params","workspace","scope","builder","dependencyResolver","consumer","legacyScope","makeVersion","allWorkspaceComps","list","undefined","componentsToTag","getUniqCompsToTag","idsToTag","ComponentIdList","fromArray","map","c","id","autoTagData","getAutoTagData","autoTagComponents","autoTagItem","component","autoTagComponentsFiltered","filter","has","autoTagIds","autoTag","triggerOnPreSnap","allComponentsToTag","parseVersionsFile","messagePerId","getMessagePerId","checkForNewerVersions","setCurrentSchema","isSnap","setHashes","setFutureVersions","updateDependenciesVersions","addLogToComponents","unmergedComps","listComponentsDuringMerge","lane","getCurrentLaneObject","stagedConfig","getStagedConfig","soft","Error","updateNextVersionOnBitmap","preReleaseId","taggedComponents","autoTaggedResults","publishedPackages","totalComponentsCount","length","rebuildDepsGraph","build","updateDependentsOnLane","setHeadAsParent","detachHead","overrideHead","_addFlattenedDependenciesToComponents","_addDependenciesGraphToComponents","throwForDepsFromAnotherLane","emptyBuilderData","addBuildStatus","BuildStatus","Pending","currentLane","getCurrentLaneId","mapSeries","results","_addCompToObjects","source","shouldValidateVersion","Boolean","addVersionOpts","addToUpdateDependentsInLane","modelComponent","getModelComponent","updateVersions","addedVersionStr","tagData","tagDataPerComp","find","componentId","isEqualWithoutVersion","isNew","version","removeAllParents","stagedSnaps","write","harmonyCompsToTag","getManyByLegacy","state","_consumer","removedComponents","removeDeletedComponentsFromBitmap","addLaneObject","objects","persist","removeMergeConfigFromComponents","linkToNodeModulesByComponents","clearObjectsFromCache","logger","setStatusLine","profile","componentIdByPkgName","_getComponentIdByPkgNameMap","options","rootDir","path","rootComponentsPath","pMapPool","consumerComponent","_findWorkspaceCompByConsumerComp","componentMap","addDependenciesGraph","concurrency","clearStatusLine","Map","forEach","pkgName","getPackageName","set","workspaceComp","every","snappedComponent","allFunctions","onPreSnapSlot","values","func","message","msgStr","laneHistory","lanes","updateLaneHistory","add","disableTagAndSnapPipelines","ignoreBuildErrors","populateArtifactsFrom","skipTasks","packageManagerConfigRootDir","exitOnFirstFailedTask","populateArtifactsIgnorePkgJson","skipTests","loose","onTagOpts","throwOnError","forceDeploy","skipTasksParsed","split","trim","seedersOnly","isolateOptions","builderOptions","componentsToBuild","isDeleted","componentsToBuildLegacy","reloadAspectsWithNewVersion","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","packageIntegritiesByPublishedPackages","_getPublishedPackages","push","Array","from","keys","addIntegritiesToConsumerComponentsGraphs","Succeed","comp","enrichComp","updateHiddenProp","ignoreNewestVersion","throwForNewestVersion","messagesFromEditorFetcher","MessagePerComponentFetcher","editor","getMessagesFromEditor","tmp","msg","versionsFile","versionFileParser","VersionFileParser","tagDataFromFile","consumerComponentsIdsMap","componentIdString","toString","skipAutoTag","getLaneAutoTagIdsFromScope","idsToTriggerAutoTag","hasVersion","autoTagDataWithLocalOnly","getAutoTagInfo","localOnly","listLocalOnly","hasWithoutVersion","laneCompIds","toComponentIds","graphIds","getGraphIds","dependentsMap","reduce","acc","dependents","predecessors","dependentsCompIds","d","attr","dependentsCompIdsFromTheLane","s","allDependentsIds","uniqFromArray","flat","allDependents","getManyConsumerComponents","dependent","triggeredByIds","triggeredBy","fromStringArray","releaseType","incrementBy","exactVersion","isPreReleaseLike","includes","Promise","all","componentToTag","isAutoTag","sources","findOrAddComponent","nextVersion","getNewVersion","toStringWithoutVersion","versionToTag","exactVersionOrReleaseType","getValidVersionOrReleaseType","getVersionToAdd","prereleaseId","preRelease","versionByEnteredId","getVersionByEnteredId","newVersion","setNewVersion","schema","CURRENT_SCHEMA","sha1","v4","enteredIds","enteredId","searchWithoutVersion","buildStatus","isRemoved","Skipped","extensions","clone","existingBuilder","findCoreExtension","Extensions","getNewDependencyVersion","foundDependency","changeVersion","changeExtensionsVersion","ext","extensionId","newDepId","updateDepsResolverData","componentRangePrefix","entry","DependencyResolverAspect","dependencies","get","dep","__type","COMPONENT_DEP_TYPE","depId","ComponentID","fromObject","serialize","isSnapVersion","versionRange","oneComponentToTag","calcComponentRangePrefixByConsumerComponent","getAllDependencies","dependency","autoTagComps","messagePerComponent","copyLogFromPreviousSnap","basicLog","getBasicLog","getLog","msgFromEditor","item","currentLog","log","date","username","email","autoTagComp","defaultMsg","exports","newestVersionsP","componentFromModel","getModelComponentIfExist","BitError","listVersions","latest","getHeadRegardlessOfLaneAsTagOrHash","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","compact","NewerVersionFound","_addIntegritiesToDependenciesGraph","addIntegritiesToDependenciesGraph","bind","dependenciesGraph","resolvedVersions","selector","integrity","previouslyUsedVersion","entries","index","indexOf","name","substring","pendingPkg","packages","resolution","replacePendingVersions","comps","removedComps","compBitIdsToRemove","deleteComponentsFiles","cleanFromBitMap","configMergeFile","getConflictMergeFile","compId","isNowSnapped","removeConflict","currentlyUnmerged","hasConflict","delete","isAvailableOnMain","isDefault","hasHead","versionToSetInBitmap","isTag","idLatest","toBitIdWithLatestVersionAllowNull","isOnBitmap","bitMap","getComponentIfExist","ignoreVersion","stagedData","getPerId","config","RemoveAspect","addFromComponentJson","componentMapObject","updateComponentId","availableOnMain","setOnLanesOnly","getComponent","resolveComponentId","compMapObj","toPlainObject","addComponentConfig","removeConfig","hash","getRef","addSnap","getConfigPerId","clearNextVersion","graph","replaceAll","updatedDependenciesGraph","DependenciesGraph","deserialize","versionObj","getBitObjectVersionById","hidden","addModifiedLog"],"sources":["version-maker.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { compact, get } from 'lodash';\nimport type { ReleaseType } from 'semver';\nimport { v4 } from 'uuid';\nimport { BitError } from '@teambit/bit-error';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { BuildStatus, Extensions } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { NewerVersionFound } from '@teambit/legacy.consumer';\nimport type { Component } from '@teambit/component';\nimport { RemoveAspect, deleteComponentsFiles } from '@teambit/remove';\nimport { getValidVersionOrReleaseType } from '@teambit/pkg.modules.semver-helper';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { isSnap as isSnapVersion } from '@teambit/component-version';\nimport type { BuilderMain, OnTagOpts } from '@teambit/builder';\nimport type { ModelComponent, Log, Lane } from '@teambit/objects';\nimport { DependenciesGraph } from '@teambit/objects';\nimport type { MessagePerComponent } from './message-per-component';\nimport { MessagePerComponentFetcher } from './message-per-component';\nimport { VersionFileParser } from './version-file-parser';\nimport type { DependencyResolverMain, ComponentRangePrefix } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, COMPONENT_DEP_TYPE } from '@teambit/dependency-resolver';\nimport type { ScopeMain, StagedConfig } from '@teambit/scope';\nimport type { Workspace, AutoTagResult } from '@teambit/workspace';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport type { PackageIntegritiesByPublishedPackages, SnappingMain, TagDataPerComp } from './snapping.main.runtime';\nimport type { LaneId } from '@teambit/lane-id';\n\nexport type BasicTagSnapParams = {\n message: string;\n skipTests?: boolean;\n skipTasks?: string;\n build?: boolean;\n ignoreBuildErrors?: boolean;\n rebuildDepsGraph?: boolean;\n detachHead?: boolean;\n overrideHead?: boolean;\n loose?: boolean;\n};\n\nexport type BasicTagParams = BasicTagSnapParams & {\n ignoreNewestVersion?: boolean;\n skipAutoTag?: boolean;\n soft?: boolean;\n persist: boolean;\n disableTagAndSnapPipelines?: boolean;\n preReleaseId?: string;\n editor?: string;\n versionsFile?: string;\n unmodified?: boolean;\n};\n\nexport type VersionMakerParams = {\n tagDataPerComp?: TagDataPerComp[];\n populateArtifactsFrom?: ComponentID[];\n populateArtifactsIgnorePkgJson?: boolean;\n copyLogFromPreviousSnap?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n exitOnFirstFailedTask?: boolean;\n updateDependentsOnLane?: boolean;\n setHeadAsParent?: boolean;\n} & BasicTagParams;\n\n/**\n * create a tag or a snap of the given components and save them in the local scope.\n */\nexport class VersionMaker {\n private workspace?: Workspace;\n private consumer?: Consumer;\n private legacyScope: Scope;\n private scope: ScopeMain;\n private builder: BuilderMain;\n private dependencyResolver: DependencyResolverMain;\n private allComponentsToTag: ConsumerComponent[] = [];\n private allWorkspaceComps?: Component[];\n constructor(\n private snapping: SnappingMain,\n private components: Component[],\n private consumerComponents: ConsumerComponent[],\n private ids: ComponentIdList,\n private params: VersionMakerParams\n ) {\n this.workspace = snapping.workspace;\n this.scope = snapping.scope;\n this.builder = snapping.builder;\n this.dependencyResolver = snapping.dependencyResolver;\n\n this.consumer = this.workspace?.consumer;\n this.legacyScope = this.scope.legacyScope;\n }\n\n async makeVersion(): Promise<{\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n publishedPackages: string[];\n stagedConfig?: StagedConfig;\n removedComponents?: ComponentIdList;\n totalComponentsCount?: number;\n }> {\n this.allWorkspaceComps = this.workspace ? await this.workspace.list() : undefined;\n const componentsToTag = this.getUniqCompsToTag();\n const idsToTag = ComponentIdList.fromArray(componentsToTag.map((c) => c.id));\n const autoTagData = await this.getAutoTagData(idsToTag);\n const autoTagComponents = autoTagData.map((autoTagItem) => autoTagItem.component);\n const autoTagComponentsFiltered = autoTagComponents.filter((c) => !idsToTag.has(c.id));\n const autoTagIds = ComponentIdList.fromArray(autoTagComponentsFiltered.map((autoTag) => autoTag.id));\n await this.triggerOnPreSnap(autoTagIds);\n this.allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];\n await this.parseVersionsFile(idsToTag, autoTagIds);\n const messagePerId = await this.getMessagePerId(idsToTag, autoTagIds);\n await this.checkForNewerVersions();\n this.setCurrentSchema();\n // go through all components and find the future versions for them\n this.params.isSnap ? this.setHashes() : await this.setFutureVersions(autoTagIds);\n // go through all dependencies and update their versions\n this.updateDependenciesVersions();\n await this.addLogToComponents(componentsToTag, autoTagComponents, messagePerId);\n // don't move it down. otherwise, it'll be empty and we don't know which components were during merge.\n // (it's being deleted in snapping.main.runtime - `_addCompToObjects` method)\n const unmergedComps = (await this.workspace?.listComponentsDuringMerge()) || [];\n const lane = await this.legacyScope.getCurrentLaneObject();\n const stagedConfig = (await this.workspace?.scope.getStagedConfig()) || undefined;\n if (this.params.soft) {\n if (!this.consumer) throw new Error(`unable to soft-tag without consumer`);\n this.consumer.updateNextVersionOnBitmap(this.allComponentsToTag, this.params.preReleaseId);\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n publishedPackages: [],\n stagedConfig,\n totalComponentsCount: this.allComponentsToTag.length,\n };\n }\n\n const { rebuildDepsGraph, build, updateDependentsOnLane, setHeadAsParent, detachHead, overrideHead } = this.params;\n await this.snapping._addFlattenedDependenciesToComponents(this.allComponentsToTag, rebuildDepsGraph);\n await this._addDependenciesGraphToComponents();\n await this.snapping.throwForDepsFromAnotherLane(this.allComponentsToTag);\n if (!build) this.emptyBuilderData();\n this.addBuildStatus(this.allComponentsToTag, BuildStatus.Pending);\n\n const currentLane = this.consumer?.getCurrentLaneId();\n await mapSeries(this.allComponentsToTag, async (component) => {\n const results = await this.snapping._addCompToObjects({\n source: component,\n lane,\n shouldValidateVersion: Boolean(build),\n addVersionOpts: {\n addToUpdateDependentsInLane: updateDependentsOnLane,\n setHeadAsParent,\n detachHead,\n overrideHead: overrideHead,\n },\n });\n if (this.workspace) {\n const modelComponent = component.modelComponent || (await this.legacyScope.getModelComponent(component.id));\n await updateVersions(\n this.workspace,\n stagedConfig!,\n currentLane!,\n modelComponent,\n results.addedVersionStr,\n true\n );\n } else {\n const tagData = this.params.tagDataPerComp?.find((t) => t.componentId.isEqualWithoutVersion(component.id));\n if (tagData?.isNew) results.version.removeAllParents();\n }\n });\n\n if (this.workspace) {\n await this.workspace.scope.legacyScope.stagedSnaps.write();\n }\n const publishedPackages: string[] = [];\n const harmonyCompsToTag = await (this.workspace || this.scope).getManyByLegacy(this.allComponentsToTag);\n // this is not necessarily the same as the previous allComponentsToTag. although it should be, because\n // harmonyCompsToTag is created from allComponentsToTag. however, for aspects, the getMany returns them from cache\n // and therefore, their instance of ConsumerComponent can be different than the one in allComponentsToTag.\n this.allComponentsToTag = harmonyCompsToTag.map((c) => c.state._consumer);\n await this.build(harmonyCompsToTag, publishedPackages);\n\n const removedComponents = await removeDeletedComponentsFromBitmap(this.allComponentsToTag, this.workspace);\n await this.addLaneObject(lane);\n await this.legacyScope.objects.persist();\n await removeMergeConfigFromComponents(unmergedComps, this.allComponentsToTag, this.workspace);\n if (this.workspace) {\n await linkToNodeModulesByComponents(harmonyCompsToTag, this.workspace);\n }\n // clear all objects. otherwise, ModelComponent has the wrong divergeData\n this.legacyScope.objects.clearObjectsFromCache();\n\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n publishedPackages,\n stagedConfig,\n removedComponents,\n totalComponentsCount: this.allComponentsToTag.length,\n };\n }\n\n private async _addDependenciesGraphToComponents(): Promise<void> {\n if (!this.workspace || !this.allWorkspaceComps) {\n return;\n }\n this.snapping.logger.setStatusLine('adding dependencies graph...');\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n const componentIdByPkgName = this._getComponentIdByPkgNameMap();\n const options = {\n rootDir: this.workspace.path,\n rootComponentsPath: this.workspace.rootComponentsPath,\n componentIdByPkgName,\n };\n await pMapPool(\n this.allComponentsToTag,\n async (consumerComponent) => {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (consumerComponent.componentMap?.rootDir && component) {\n await this.dependencyResolver.addDependenciesGraph(\n component,\n consumerComponent.componentMap.rootDir,\n options\n );\n }\n },\n { concurrency: 10 }\n );\n this.snapping.logger.clearStatusLine();\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n }\n\n private _findWorkspaceCompByConsumerComp(consumerComponent: ConsumerComponent): Component | undefined {\n return this.allWorkspaceComps?.find((component) => component.id.isEqualWithoutVersion(consumerComponent.id));\n }\n\n private _getComponentIdByPkgNameMap(): Map<string, ComponentID> {\n if (!this.allWorkspaceComps) throw new Error('please make sure to populate this.allWorkspaceComps before');\n const componentIdByPkgName = new Map<string, ComponentID>();\n this.allComponentsToTag.forEach((consumerComponent) => {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (component) {\n const pkgName = this.dependencyResolver.getPackageName(component);\n componentIdByPkgName.set(pkgName, consumerComponent.id);\n }\n });\n for (const workspaceComp of this.allWorkspaceComps) {\n if (\n this.allComponentsToTag.every(\n (snappedComponent) => !snappedComponent.id.isEqualWithoutVersion(workspaceComp.id)\n )\n ) {\n componentIdByPkgName.set(this.dependencyResolver.getPackageName(workspaceComp), workspaceComp.id);\n }\n }\n return componentIdByPkgName;\n }\n\n private async triggerOnPreSnap(autoTagIds: ComponentIdList) {\n const allFunctions = this.snapping.onPreSnapSlot.values();\n await mapSeries(allFunctions, (func) => func(this.components, autoTagIds, this.params));\n }\n\n private async addLaneObject(lane?: Lane) {\n if (lane) {\n const { message } = this.params;\n const msgStr = message ? ` (${message})` : '';\n const laneHistory = await this.legacyScope.lanes.updateLaneHistory(lane, `snap${msgStr}`);\n this.legacyScope.objects.add(laneHistory);\n }\n }\n\n private async build(harmonyCompsToTag: Component[], publishedPackages: string[]) {\n if (!this.params.build) {\n return;\n }\n const {\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n skipTasks,\n packageManagerConfigRootDir,\n exitOnFirstFailedTask,\n populateArtifactsIgnorePkgJson,\n skipTests,\n loose,\n } = this.params;\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy: ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n loose,\n };\n const skipTasksParsed = skipTasks ? skipTasks.split(',').map((t) => t.trim()) : undefined;\n const seedersOnly = !this.workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly, populateArtifactsIgnorePkgJson };\n const builderOptions = { exitOnFirstFailedTask, skipTests, skipTasks: skipTasksParsed, loose };\n\n const componentsToBuild = harmonyCompsToTag.filter((c) => !c.isDeleted());\n if (componentsToBuild.length) {\n const componentsToBuildLegacy: ConsumerComponent[] = componentsToBuild.map((c) => c.state._consumer);\n await this.scope.reloadAspectsWithNewVersion(componentsToBuildLegacy);\n const { builderDataMap } = await this.builder.tagListener(\n componentsToBuild,\n onTagOpts,\n isolateOptions,\n builderOptions\n );\n const buildResult = this.builder.builderDataMapToLegacyOnTagResults(builderDataMap);\n\n this.snapping._updateComponentsByTagResult(componentsToBuildLegacy, buildResult);\n const packageIntegritiesByPublishedPackages = this.snapping._getPublishedPackages(componentsToBuildLegacy);\n publishedPackages.push(...Array.from(packageIntegritiesByPublishedPackages.keys()));\n\n addIntegritiesToConsumerComponentsGraphs(packageIntegritiesByPublishedPackages, this.allComponentsToTag);\n this.addBuildStatus(componentsToBuildLegacy, BuildStatus.Succeed);\n await mapSeries(componentsToBuild, (comp) => this.snapping.enrichComp(comp));\n if (populateArtifactsFrom) await updateHiddenProp(this.scope, populateArtifactsFrom);\n }\n }\n\n private async checkForNewerVersions() {\n // check for each one of the components whether it is using an old version\n // TODO: once --detach-head is supported by the remote, deprecate --ignore-newest-version. and change this\n // throwForNewestVersion to suggest using --detach-head instead. also, it the error should not be limited\n // to tags and can be thrown for snaps as well.\n // once --ignore-newest-version is removed, no need for this condition. it's ok to not provide the override-head option.\n const { detachHead, ignoreNewestVersion, isSnap } = this.params;\n if (ignoreNewestVersion && !detachHead) this.params.overrideHead = true;\n if (!ignoreNewestVersion && !isSnap) {\n await throwForNewestVersion(this.allComponentsToTag, this.legacyScope);\n }\n }\n\n private async getMessagePerId(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const messagesFromEditorFetcher = new MessagePerComponentFetcher(idsToTag, autoTagIds);\n const { editor, message, tagDataPerComp } = this.params;\n if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(this.legacyScope.tmp, editor);\n if (tagDataPerComp) return tagDataPerComp.map((t) => ({ id: t.componentId, msg: t.message || message }));\n return [];\n }\n\n private async parseVersionsFile(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const { versionsFile } = this.params;\n if (!versionsFile) return;\n\n const allComponentsToTag = ComponentIdList.fromArray([...idsToTag, ...autoTagIds]);\n const versionFileParser = new VersionFileParser(allComponentsToTag);\n const tagDataFromFile = await versionFileParser.parseVersionsFile(versionsFile);\n this.params.tagDataPerComp = tagDataFromFile;\n }\n\n private getUniqCompsToTag(): ConsumerComponent[] {\n const consumerComponentsIdsMap = {};\n // Concat and unique all the dependencies from all the components so we will not import\n // the same dependency more then once, it's mainly for performance purpose\n this.consumerComponents.forEach((consumerComponent) => {\n const componentIdString = consumerComponent.id.toString();\n // Store it in a map so we can take it easily from the sorted array which contain only the id\n consumerComponentsIdsMap[componentIdString] = consumerComponent;\n });\n return Object.values(consumerComponentsIdsMap); // consumerComponents unique\n }\n\n private async getAutoTagData(idsToTag: ComponentIdList): Promise<AutoTagResult[]> {\n if (this.params.skipAutoTag) return [];\n if (!this.workspace) return this.getLaneAutoTagIdsFromScope(idsToTag);\n // ids without versions are new. it's impossible that tagged (and not-modified) components has\n // them as dependencies.\n const idsToTriggerAutoTag = idsToTag.filter((id) => id.hasVersion());\n const autoTagDataWithLocalOnly = await this.workspace.getAutoTagInfo(\n ComponentIdList.fromArray(idsToTriggerAutoTag)\n );\n const localOnly = this.workspace?.listLocalOnly();\n return localOnly\n ? autoTagDataWithLocalOnly.filter((autoTagItem) => !localOnly.hasWithoutVersion(autoTagItem.component.id))\n : autoTagDataWithLocalOnly;\n }\n\n private async getLaneAutoTagIdsFromScope(idsToTag: ComponentIdList): Promise<AutoTagResult[]> {\n const lane = await this.legacyScope.getCurrentLaneObject();\n if (!lane) return [];\n const laneCompIds = lane.toComponentIds();\n const graphIds = await this.scope.getGraphIds(laneCompIds);\n const dependentsMap = idsToTag.reduce(\n (acc, id) => {\n const dependents = graphIds.predecessors(id.toString());\n const dependentsCompIds = dependents.map((d) => d.attr);\n const dependentsCompIdsFromTheLane = dependentsCompIds.filter((s) => laneCompIds.has(s));\n if (!dependentsCompIdsFromTheLane.length) return acc;\n acc[id.toString()] = ComponentIdList.fromArray(dependentsCompIdsFromTheLane);\n return acc;\n },\n {} as Record<string, ComponentIdList>\n );\n if (Object.keys(dependentsMap).length === 0) return [];\n const allDependentsIds = ComponentIdList.uniqFromArray(Object.values(dependentsMap).flat());\n const allDependents = await this.legacyScope.getManyConsumerComponents(allDependentsIds);\n return allDependents.map((dependent) => {\n const triggeredByIds = Object.keys(dependentsMap).filter((id) => dependentsMap[id].has(dependent.id));\n const triggeredBy = ComponentIdList.fromStringArray(triggeredByIds);\n return { component: dependent, triggeredBy };\n });\n }\n\n private async setFutureVersions(autoTagIds: ComponentIdList): Promise<void> {\n const { releaseType, tagDataPerComp, incrementBy, persist, soft, exactVersion, preReleaseId } = this.params;\n const isPreReleaseLike = releaseType\n ? ['prerelease', 'premajor', 'preminor', 'prepatch'].includes(releaseType)\n : false;\n await Promise.all(\n this.allComponentsToTag.map(async (componentToTag) => {\n const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);\n const modelComponent = await this.legacyScope.sources.findOrAddComponent(componentToTag);\n const nextVersion = componentToTag.componentMap?.nextVersion?.version;\n const getNewVersion = (): string => {\n if (tagDataPerComp) {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqualWithoutVersion(componentToTag.id));\n if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n if (!tagData.versionToTag)\n throw new Error(`tag-data.TagResults is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n incrementBy,\n tagData.prereleaseId\n );\n }\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n }\n if (isAutoTag) {\n // auto-tag always bumped as patch unless it's pre-release\n if (isPreReleaseLike) {\n return soft\n ? (releaseType as string)\n : modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n }\n return soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n }\n const versionByEnteredId = this.getVersionByEnteredId(this.ids, componentToTag, modelComponent);\n return soft\n ? versionByEnteredId || exactVersion || (releaseType as string)\n : versionByEnteredId ||\n modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n };\n const newVersion = getNewVersion();\n componentToTag.setNewVersion(newVersion);\n })\n );\n }\n\n private setCurrentSchema() {\n this.allComponentsToTag.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n }\n\n private setHashes(): void {\n this.allComponentsToTag.forEach((componentToTag) => {\n componentToTag.setNewVersion(sha1(v4()));\n });\n }\n\n private getVersionByEnteredId(\n enteredIds: ComponentIdList,\n component: ConsumerComponent,\n modelComponent: ModelComponent\n ): string | undefined {\n const enteredId = enteredIds.searchWithoutVersion(component.id);\n if (enteredId && enteredId.hasVersion()) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(enteredId.version as string);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion\n );\n }\n return undefined;\n }\n\n private addBuildStatus(components: ConsumerComponent[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = component.isRemoved() ? BuildStatus.Skipped : buildStatus;\n });\n }\n\n /**\n * otherwise, tagging without build will have the old build data of the previous snap/tag.\n * in case we currently build, it's ok to leave the data as is, because it'll be overridden anyway.\n */\n private emptyBuilderData() {\n this.allComponentsToTag.forEach((component) => {\n component.extensions = component.extensions.clone();\n const existingBuilder = component.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = {};\n });\n }\n\n private updateDependenciesVersions() {\n // filter out removed components.\n // if a component has a deleted-component as a dependency, it was probably running \"bit install <dep>\" with a version\n // from main. we want to keep it as the user requested. Otherwise, this changes the dependency version to the newly\n // snapped one unintentionally.\n const componentsToTag = this.allComponentsToTag.filter((c) => !c.isRemoved());\n const getNewDependencyVersion = (id: ComponentID): ComponentID | null => {\n const foundDependency = componentsToTag.find((component) => component.id.isEqualWithoutVersion(id));\n return foundDependency ? id.changeVersion(foundDependency.version) : null;\n };\n const changeExtensionsVersion = (component: ConsumerComponent): void => {\n component.extensions.forEach((ext) => {\n if (ext.extensionId) {\n const newDepId = getNewDependencyVersion(ext.extensionId);\n if (newDepId) ext.extensionId = newDepId;\n }\n });\n };\n // in case we update dependencies according to the currently tagged component, we want to keep the versionRange\n // up to date with the new tags. e.g. 0.0.1 -> 0.0.2, will change the versionRange to ^0.0.2 or ~0.0.2.\n // in case componentRangePrefix is \"+\", we care only about packages in workspace.jsonc. so it won't be relevant.\n const updateDepsResolverData = (component: ConsumerComponent, componentRangePrefix?: ComponentRangePrefix) => {\n const entry = component.extensions.findCoreExtension(DependencyResolverAspect.id);\n if (!entry) {\n return component;\n }\n const dependencies = get(entry, ['data', 'dependencies'], []);\n dependencies.forEach((dep) => {\n if (dep.__type !== COMPONENT_DEP_TYPE) {\n return;\n }\n // @todo: it's unclear why \"dep.componentId\" randomly becomes a ComponentID instance.\n // this check is added because on Ripple in some scenarios it was throwing:\n // \"ComponentID.fromObject expect to get an object, got an instance of ComponentID\" (locally it didn't happen)\n const depId =\n dep.componentId instanceof ComponentID ? dep.componentId : ComponentID.fromObject(dep.componentId);\n const newDepId = getNewDependencyVersion(depId);\n dep.componentId = (newDepId || depId).serialize();\n dep.id = (newDepId || depId).toString();\n dep.version = (newDepId || depId).version;\n // if newDepId, then it means the dependency is in the current workspace and currently being tagged.\n // the versionRange needs to be updated to the new version.\n // However, for snaps, we should not apply range prefixes as they are not valid semver\n if (newDepId && (componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(dep.version)) {\n dep.versionRange = `${componentRangePrefix}${dep.version}`;\n }\n });\n return component;\n };\n\n componentsToTag.forEach((oneComponentToTag) => {\n const componentRangePrefix =\n this.dependencyResolver.calcComponentRangePrefixByConsumerComponent(oneComponentToTag);\n oneComponentToTag.getAllDependencies().forEach((dependency) => {\n const newDepId = getNewDependencyVersion(dependency.id);\n if (!newDepId) return;\n dependency.id = newDepId;\n // if componentRangePrefix === '+', then, only it only saves packages in workspace.jsonc.\n // in this case, these dependencies are in .bitmap. not in workspace.jsonc. so it's not relevant.\n // For snaps (hash versions), we should not apply range prefixes as they are not valid semver\n if ((componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(newDepId.version)) {\n dependency.versionRange = `${componentRangePrefix}${newDepId.version}`;\n }\n });\n changeExtensionsVersion(oneComponentToTag);\n oneComponentToTag = updateDepsResolverData(oneComponentToTag);\n });\n }\n\n private async addLogToComponents(\n components: ConsumerComponent[],\n autoTagComps: ConsumerComponent[],\n messagePerComponent: MessagePerComponent[]\n ) {\n let { message } = this.params;\n const { persist, copyLogFromPreviousSnap } = this.params;\n // @ts-ignore this happens when running `bit tag -m \"\"`.\n if (message === true) {\n message = '';\n }\n const basicLog = await getBasicLog();\n const getLog = (component: ConsumerComponent): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n if (copyLogFromPreviousSnap) {\n const currentLog = component.log;\n if (!currentLog) {\n throw new Error(\n `addLogToComponents is set copyLogFromPreviousSnap: true, but it is unable to find log in the previous snap`\n );\n }\n currentLog.message = msgFromEditor || message || currentLog.message;\n currentLog.date = basicLog.date;\n return currentLog;\n }\n\n return {\n username: nextVersion?.username || basicLog.username,\n email: nextVersion?.email || basicLog.email,\n message: nextVersion?.message || msgFromEditor || message,\n date: basicLog.date,\n };\n };\n\n components.forEach((component) => {\n component.log = getLog(component);\n });\n autoTagComps.forEach((autoTagComp) => {\n autoTagComp.log = getLog(autoTagComp);\n const defaultMsg = 'bump dependencies versions';\n if (message) {\n autoTagComp.log.message += ` (${defaultMsg})`;\n } else if (!autoTagComp.log.message) {\n autoTagComp.log.message = defaultMsg;\n }\n });\n }\n}\n\nasync function throwForNewestVersion(allComponentsToTag: ConsumerComponent[], legacyScope: Scope) {\n const newestVersionsP = allComponentsToTag.map(async (component) => {\n if (component.componentFromModel) {\n // otherwise it's a new component, so this check is irrelevant\n const modelComponent = await legacyScope.getModelComponentIfExist(component.id);\n if (!modelComponent) throw new BitError(`component ${component.id} was not found in the model`);\n if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.\n const latest = modelComponent.getHeadRegardlessOfLaneAsTagOrHash();\n if (latest !== component.version) {\n return {\n componentId: component.id.toStringWithoutVersion(),\n currentVersion: component.version!,\n latestVersion: latest,\n };\n }\n }\n return null;\n });\n const newestVersions = await Promise.all(newestVersionsP);\n const newestVersionsWithoutEmpty = compact(newestVersions);\n if (newestVersionsWithoutEmpty.length) {\n throw new NewerVersionFound(newestVersionsWithoutEmpty);\n }\n}\n\nfunction addIntegritiesToConsumerComponentsGraphs(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n consumerComponents: ConsumerComponent[]\n) {\n const _addIntegritiesToDependenciesGraph = addIntegritiesToDependenciesGraph.bind(\n null,\n packageIntegritiesByPublishedPackages\n );\n for (const consumerComponent of consumerComponents) {\n if (consumerComponent.dependenciesGraph) {\n consumerComponent.dependenciesGraph = _addIntegritiesToDependenciesGraph(consumerComponent.dependenciesGraph);\n }\n }\n}\n\n/**\n * Updates the dependencies graph by replacing all \"pending\" version numbers of component dependencies\n * with the actual version numbers of the recently published packages. It also attaches the integrity\n * checksums of these components to ensure data integrity for each resolved dependency.\n *\n * @param packageIntegritiesByPublishedPackages - A map of package names and versions to their integrity checksums.\n * @param dependenciesGraph - The current dependencies graph, containing nodes with potentially \"pending\" versions.\n * @returns A new DependenciesGraph with updated versions and integrity checksums for all previously pending dependencies.\n */\nfunction addIntegritiesToDependenciesGraph(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n dependenciesGraph: DependenciesGraph\n): DependenciesGraph {\n const resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }> = [];\n for (const [selector, { integrity, previouslyUsedVersion }] of packageIntegritiesByPublishedPackages.entries()) {\n if (integrity == null) continue;\n const index = selector.indexOf('@', 1);\n const name = selector.substring(0, index);\n const version = selector.substring(index + 1);\n const pendingPkg =\n dependenciesGraph.packages.get(`${name}@${previouslyUsedVersion}`) ??\n dependenciesGraph.packages.get(`${name}@${version}`);\n if (pendingPkg) {\n pendingPkg.resolution = { integrity };\n resolvedVersions.push({ name, version, previouslyUsedVersion });\n }\n }\n return replacePendingVersions(dependenciesGraph, resolvedVersions) as DependenciesGraph;\n}\n\nasync function removeDeletedComponentsFromBitmap(\n comps: ConsumerComponent[],\n workspace?: Workspace\n): Promise<ComponentIdList | undefined> {\n if (!workspace) {\n return undefined;\n }\n const removedComps = comps.filter((comp) => comp.isRemoved());\n if (!removedComps.length) return undefined;\n const compBitIdsToRemove = ComponentIdList.fromArray(removedComps.map((c) => c.id));\n await deleteComponentsFiles(workspace.consumer, compBitIdsToRemove);\n await workspace.consumer.cleanFromBitMap(compBitIdsToRemove);\n\n return compBitIdsToRemove;\n}\n\nasync function removeMergeConfigFromComponents(\n unmergedComps: ComponentID[],\n components: ConsumerComponent[],\n workspace?: Workspace\n) {\n if (!workspace || !unmergedComps.length) {\n return;\n }\n const configMergeFile = workspace.getConflictMergeFile();\n\n unmergedComps.forEach((compId) => {\n const isNowSnapped = components.find((c) => c.id.isEqualWithoutVersion(compId));\n if (isNowSnapped) {\n configMergeFile.removeConflict(compId.toStringWithoutVersion());\n }\n });\n const currentlyUnmerged = workspace ? await workspace.listComponentsDuringMerge() : [];\n if (configMergeFile.hasConflict() && currentlyUnmerged.length) {\n // it's possible that \"workspace\" section is still there. but if all \"unmerged\" are now merged,\n // then, it's safe to delete the file.\n await configMergeFile.write();\n } else {\n await configMergeFile.delete();\n }\n}\n\nexport type BitCloudUser = {\n username?: string;\n name?: string;\n displayName?: string;\n profileImage?: string;\n};\n\nfunction isAvailableOnMain(currentLane: LaneId, modelComponent: ModelComponent, id: ComponentID) {\n if (currentLane.isDefault()) {\n return true;\n }\n if (!id.hasVersion()) {\n // component was unsnapped on the current lane and is back to a new component\n return true;\n }\n return modelComponent.hasHead();\n}\n\nexport async function updateVersions(\n workspace: Workspace,\n stagedConfig: StagedConfig,\n currentLane: LaneId,\n modelComponent: ModelComponent,\n versionToSetInBitmap?: string, // helpful for detached head\n isTag = true\n) {\n const consumer = workspace.consumer;\n const idLatest: ComponentID = modelComponent.toBitIdWithLatestVersionAllowNull();\n const id = versionToSetInBitmap ? idLatest.changeVersion(versionToSetInBitmap) : idLatest;\n const isOnBitmap = consumer.bitMap.getComponentIfExist(id, { ignoreVersion: true });\n if (!isOnBitmap && !isTag) {\n // handle the case when a component was deleted, snapped/tagged and is now reset.\n const stagedData = stagedConfig.getPerId(id);\n if (stagedData?.config && stagedData.config[RemoveAspect.id]) {\n consumer.bitMap.addFromComponentJson(stagedData.id, stagedData.componentMapObject);\n }\n }\n consumer.bitMap.updateComponentId(id, undefined, undefined, true);\n const availableOnMain = isAvailableOnMain(currentLane, modelComponent, id);\n if (!availableOnMain) {\n consumer.bitMap.setOnLanesOnly(id, true);\n }\n const componentMap = consumer.bitMap.getComponent(id);\n const compId = await workspace.resolveComponentId(id);\n // it can be either a tag/snap or reset.\n if (isTag) {\n const compMapObj = componentMap.toPlainObject();\n const config = componentMap.config;\n stagedConfig.addComponentConfig(compId, config, compMapObj);\n consumer.bitMap.removeConfig(id);\n const hash = modelComponent.getRef(id.version as string);\n if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);\n workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());\n } else if (!componentMap.config) {\n componentMap.config = stagedConfig.getConfigPerId(compId);\n }\n componentMap.clearNextVersion();\n}\n\nfunction replacePendingVersions(\n graph: DependenciesGraph,\n resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }>\n): DependenciesGraph {\n let s = graph.serialize();\n for (const { name, version, previouslyUsedVersion } of resolvedVersions) {\n if (previouslyUsedVersion) {\n s = s.replaceAll(`${name}@${previouslyUsedVersion}:`, `${name}@${version}`);\n }\n }\n const updatedDependenciesGraph = DependenciesGraph.deserialize(s);\n // This should never happen as we know at this point that the schema version is supported\n if (updatedDependenciesGraph == null) {\n throw new BitError('Failed to deserialize dependencies graph in replacePendingVersions()');\n }\n return updatedDependenciesGraph;\n}\n\n/**\n * relevant for \"_tag\" (tag-from-scope) command.\n * the new tag uses the same files/config/build-artifacts as the previous snap.\n * we want to mark the previous snap as hidden. so then \"bit log\" and \"bit blame\" won't show it.\n */\nasync function updateHiddenProp(scope: ScopeMain, ids: ComponentID[]) {\n const log = await getBasicLog();\n log.message = 'marked as hidden';\n await pMapPool(\n ids,\n async (id) => {\n const versionObj = await scope.getBitObjectVersionById(id);\n if (!versionObj) return;\n versionObj.hidden = true;\n versionObj.addModifiedLog(log);\n scope.legacyScope.objects.add(versionObj);\n },\n { concurrency: 50 }\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_uuid","_bitError","_componentId","_legacy","_legacy2","_workspaceModules","_legacy3","_remove","_pkgModules","_harmonyModules","_toolboxCrypto","_componentVersion","_objects","_messagePerComponent","_versionFileParser","_dependencyResolver","_toolboxPromise","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","VersionMaker","constructor","snapping","components","consumerComponents","ids","params","workspace","scope","builder","dependencyResolver","consumer","legacyScope","makeVersion","allWorkspaceComps","list","undefined","componentsToTag","getUniqCompsToTag","idsToTag","ComponentIdList","fromArray","map","c","id","autoTagData","getAutoTagData","autoTagComponents","autoTagItem","component","autoTagComponentsFiltered","filter","has","autoTagIds","autoTag","length","autoTagHarmonyComponents","throwForComponentIssues","ignoreIssues","triggerOnPreSnap","allComponentsToTag","parseVersionsFile","messagePerId","getMessagePerId","checkForNewerVersions","setCurrentSchema","isSnap","setHashes","setFutureVersions","updateDependenciesVersions","addLogToComponents","unmergedComps","listComponentsDuringMerge","lane","getCurrentLaneObject","stagedConfig","getStagedConfig","soft","Error","updateNextVersionOnBitmap","preReleaseId","taggedComponents","autoTaggedResults","publishedPackages","totalComponentsCount","rebuildDepsGraph","build","updateDependentsOnLane","setHeadAsParent","detachHead","overrideHead","_addFlattenedDependenciesToComponents","_addDependenciesGraphToComponents","throwForDepsFromAnotherLane","emptyBuilderData","addBuildStatus","BuildStatus","Pending","currentLane","getCurrentLaneId","mapSeries","results","_addCompToObjects","source","shouldValidateVersion","Boolean","addVersionOpts","addToUpdateDependentsInLane","modelComponent","getModelComponent","updateVersions","addedVersionStr","tagData","tagDataPerComp","find","componentId","isEqualWithoutVersion","isNew","version","removeAllParents","stagedSnaps","write","harmonyCompsToTag","getManyByLegacy","state","_consumer","removedComponents","removeDeletedComponentsFromBitmap","addLaneObject","objects","persist","removeMergeConfigFromComponents","linkToNodeModulesByComponents","clearObjectsFromCache","logger","setStatusLine","profile","componentIdByPkgName","_getComponentIdByPkgNameMap","options","rootDir","path","rootComponentsPath","consumerComponent","_findWorkspaceCompByConsumerComp","componentMap","push","componentRelativeDir","addDependenciesGraph","clearStatusLine","Map","forEach","pkgName","getPackageName","set","workspaceComp","every","snappedComponent","allFunctions","onPreSnapSlot","values","func","message","msgStr","laneHistory","lanes","updateLaneHistory","add","disableTagAndSnapPipelines","ignoreBuildErrors","populateArtifactsFrom","skipTasks","packageManagerConfigRootDir","exitOnFirstFailedTask","populateArtifactsIgnorePkgJson","skipTests","loose","onTagOpts","throwOnError","forceDeploy","skipTasksParsed","split","trim","seedersOnly","isolateOptions","builderOptions","componentsToBuild","isDeleted","componentsToBuildLegacy","reloadAspectsWithNewVersion","builderDataMap","tagListener","buildResult","builderDataMapToLegacyOnTagResults","_updateComponentsByTagResult","packageIntegritiesByPublishedPackages","_getPublishedPackages","Array","from","keys","addIntegritiesToConsumerComponentsGraphs","Succeed","comp","enrichComp","updateHiddenProp","ignoreNewestVersion","throwForNewestVersion","messagesFromEditorFetcher","MessagePerComponentFetcher","editor","getMessagesFromEditor","tmp","msg","versionsFile","versionFileParser","VersionFileParser","tagDataFromFile","consumerComponentsIdsMap","componentIdString","toString","skipAutoTag","getLaneAutoTagIdsFromScope","idsToTriggerAutoTag","hasVersion","autoTagDataWithLocalOnly","getAutoTagInfo","localOnly","listLocalOnly","hasWithoutVersion","laneCompIds","toComponentIds","graphIds","getGraphIds","dependentsMap","reduce","acc","dependents","predecessors","dependentsCompIds","d","attr","dependentsCompIdsFromTheLane","s","allDependentsIds","uniqFromArray","flat","allDependents","getManyConsumerComponents","dependent","triggeredByIds","triggeredBy","fromStringArray","releaseType","incrementBy","exactVersion","isPreReleaseLike","includes","Promise","all","componentToTag","isAutoTag","sources","findOrAddComponent","nextVersion","getNewVersion","toStringWithoutVersion","versionToTag","exactVersionOrReleaseType","getValidVersionOrReleaseType","getVersionToAdd","prereleaseId","preRelease","versionByEnteredId","getVersionByEnteredId","newVersion","setNewVersion","schema","CURRENT_SCHEMA","sha1","v4","enteredIds","enteredId","searchWithoutVersion","buildStatus","isRemoved","Skipped","extensions","clone","existingBuilder","findCoreExtension","Extensions","getNewDependencyVersion","foundDependency","changeVersion","changeExtensionsVersion","ext","extensionId","newDepId","updateDepsResolverData","componentRangePrefix","entry","DependencyResolverAspect","dependencies","get","dep","__type","COMPONENT_DEP_TYPE","depId","ComponentID","fromObject","serialize","isSnapVersion","versionRange","oneComponentToTag","calcComponentRangePrefixByConsumerComponent","getAllDependencies","dependency","autoTagComps","messagePerComponent","copyLogFromPreviousSnap","basicLog","getBasicLog","getLog","msgFromEditor","item","currentLog","log","date","username","email","autoTagComp","defaultMsg","exports","newestVersionsP","componentFromModel","getModelComponentIfExist","BitError","listVersions","latest","getHeadRegardlessOfLaneAsTagOrHash","currentVersion","latestVersion","newestVersions","newestVersionsWithoutEmpty","compact","NewerVersionFound","_addIntegritiesToDependenciesGraph","addIntegritiesToDependenciesGraph","bind","dependenciesGraph","resolvedVersions","selector","integrity","previouslyUsedVersion","entries","index","indexOf","name","substring","pendingPkg","packages","resolution","replacePendingVersions","comps","removedComps","compBitIdsToRemove","deleteComponentsFiles","cleanFromBitMap","configMergeFile","getConflictMergeFile","compId","isNowSnapped","removeConflict","currentlyUnmerged","hasConflict","delete","isAvailableOnMain","isDefault","hasHead","versionToSetInBitmap","isTag","idLatest","toBitIdWithLatestVersionAllowNull","isOnBitmap","bitMap","getComponentIfExist","ignoreVersion","stagedData","getPerId","config","RemoveAspect","addFromComponentJson","componentMapObject","updateComponentId","availableOnMain","setOnLanesOnly","getComponent","resolveComponentId","compMapObj","toPlainObject","addComponentConfig","removeConfig","hash","getRef","addSnap","getConfigPerId","clearNextVersion","graph","replaceAll","updatedDependenciesGraph","DependenciesGraph","deserialize","pMapPool","versionObj","getBitObjectVersionById","hidden","addModifiedLog","concurrency"],"sources":["version-maker.ts"],"sourcesContent":["import mapSeries from 'p-map-series';\nimport { compact, get } from 'lodash';\nimport type { ReleaseType } from 'semver';\nimport { v4 } from 'uuid';\nimport { BitError } from '@teambit/bit-error';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { BuildStatus, Extensions } from '@teambit/legacy.constants';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport type { Consumer } from '@teambit/legacy.consumer';\nimport { NewerVersionFound } from '@teambit/legacy.consumer';\nimport type { Component } from '@teambit/component';\nimport { RemoveAspect, deleteComponentsFiles } from '@teambit/remove';\nimport { getValidVersionOrReleaseType } from '@teambit/pkg.modules.semver-helper';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { isSnap as isSnapVersion } from '@teambit/component-version';\nimport type { BuilderMain, OnTagOpts } from '@teambit/builder';\nimport type { ModelComponent, Log, Lane } from '@teambit/objects';\nimport { DependenciesGraph } from '@teambit/objects';\nimport type { MessagePerComponent } from './message-per-component';\nimport { MessagePerComponentFetcher } from './message-per-component';\nimport { VersionFileParser } from './version-file-parser';\nimport type { DependencyResolverMain, ComponentRangePrefix } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect, COMPONENT_DEP_TYPE } from '@teambit/dependency-resolver';\nimport type { ScopeMain, StagedConfig } from '@teambit/scope';\nimport type { Workspace, AutoTagResult } from '@teambit/workspace';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport type { PackageIntegritiesByPublishedPackages, SnappingMain, TagDataPerComp } from './snapping.main.runtime';\nimport type { LaneId } from '@teambit/lane-id';\n\nexport type BasicTagSnapParams = {\n message: string;\n skipTests?: boolean;\n skipTasks?: string;\n build?: boolean;\n ignoreBuildErrors?: boolean;\n rebuildDepsGraph?: boolean;\n detachHead?: boolean;\n overrideHead?: boolean;\n loose?: boolean;\n};\n\nexport type BasicTagParams = BasicTagSnapParams & {\n ignoreNewestVersion?: boolean;\n skipAutoTag?: boolean;\n soft?: boolean;\n persist: boolean;\n disableTagAndSnapPipelines?: boolean;\n preReleaseId?: string;\n editor?: string;\n versionsFile?: string;\n unmodified?: boolean;\n ignoreIssues?: string;\n};\n\nexport type VersionMakerParams = {\n tagDataPerComp?: TagDataPerComp[];\n populateArtifactsFrom?: ComponentID[];\n populateArtifactsIgnorePkgJson?: boolean;\n copyLogFromPreviousSnap?: boolean;\n exactVersion?: string | null | undefined;\n releaseType?: ReleaseType;\n incrementBy?: number;\n isSnap?: boolean;\n packageManagerConfigRootDir?: string;\n exitOnFirstFailedTask?: boolean;\n updateDependentsOnLane?: boolean;\n setHeadAsParent?: boolean;\n} & BasicTagParams;\n\n/**\n * create a tag or a snap of the given components and save them in the local scope.\n */\nexport class VersionMaker {\n private workspace?: Workspace;\n private consumer?: Consumer;\n private legacyScope: Scope;\n private scope: ScopeMain;\n private builder: BuilderMain;\n private dependencyResolver: DependencyResolverMain;\n private allComponentsToTag: ConsumerComponent[] = [];\n private allWorkspaceComps?: Component[];\n constructor(\n private snapping: SnappingMain,\n private components: Component[],\n private consumerComponents: ConsumerComponent[],\n private ids: ComponentIdList,\n private params: VersionMakerParams\n ) {\n this.workspace = snapping.workspace;\n this.scope = snapping.scope;\n this.builder = snapping.builder;\n this.dependencyResolver = snapping.dependencyResolver;\n\n this.consumer = this.workspace?.consumer;\n this.legacyScope = this.scope.legacyScope;\n }\n\n async makeVersion(): Promise<{\n taggedComponents: ConsumerComponent[];\n autoTaggedResults: AutoTagResult[];\n publishedPackages: string[];\n stagedConfig?: StagedConfig;\n removedComponents?: ComponentIdList;\n totalComponentsCount?: number;\n }> {\n this.allWorkspaceComps = this.workspace ? await this.workspace.list() : undefined;\n const componentsToTag = this.getUniqCompsToTag();\n const idsToTag = ComponentIdList.fromArray(componentsToTag.map((c) => c.id));\n const autoTagData = await this.getAutoTagData(idsToTag);\n const autoTagComponents = autoTagData.map((autoTagItem) => autoTagItem.component);\n const autoTagComponentsFiltered = autoTagComponents.filter((c) => !idsToTag.has(c.id));\n const autoTagIds = ComponentIdList.fromArray(autoTagComponentsFiltered.map((autoTag) => autoTag.id));\n\n // Validate component issues for auto-tag components\n if (this.allWorkspaceComps && autoTagIds.length) {\n const autoTagHarmonyComponents = this.allWorkspaceComps.filter((c) => autoTagIds.has(c.id));\n await this.builder.throwForComponentIssues(autoTagHarmonyComponents, this.params.ignoreIssues);\n }\n\n await this.triggerOnPreSnap(autoTagIds);\n this.allComponentsToTag = [...componentsToTag, ...autoTagComponentsFiltered];\n await this.parseVersionsFile(idsToTag, autoTagIds);\n const messagePerId = await this.getMessagePerId(idsToTag, autoTagIds);\n await this.checkForNewerVersions();\n this.setCurrentSchema();\n // go through all components and find the future versions for them\n this.params.isSnap ? this.setHashes() : await this.setFutureVersions(autoTagIds);\n // go through all dependencies and update their versions\n this.updateDependenciesVersions();\n await this.addLogToComponents(componentsToTag, autoTagComponents, messagePerId);\n // don't move it down. otherwise, it'll be empty and we don't know which components were during merge.\n // (it's being deleted in snapping.main.runtime - `_addCompToObjects` method)\n const unmergedComps = (await this.workspace?.listComponentsDuringMerge()) || [];\n const lane = await this.legacyScope.getCurrentLaneObject();\n const stagedConfig = (await this.workspace?.scope.getStagedConfig()) || undefined;\n if (this.params.soft) {\n if (!this.consumer) throw new Error(`unable to soft-tag without consumer`);\n this.consumer.updateNextVersionOnBitmap(this.allComponentsToTag, this.params.preReleaseId);\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n publishedPackages: [],\n stagedConfig,\n totalComponentsCount: this.allComponentsToTag.length,\n };\n }\n\n const { rebuildDepsGraph, build, updateDependentsOnLane, setHeadAsParent, detachHead, overrideHead } = this.params;\n await this.snapping._addFlattenedDependenciesToComponents(this.allComponentsToTag, rebuildDepsGraph);\n await this._addDependenciesGraphToComponents();\n await this.snapping.throwForDepsFromAnotherLane(this.allComponentsToTag);\n if (!build) this.emptyBuilderData();\n this.addBuildStatus(this.allComponentsToTag, BuildStatus.Pending);\n\n const currentLane = this.consumer?.getCurrentLaneId();\n await mapSeries(this.allComponentsToTag, async (component) => {\n const results = await this.snapping._addCompToObjects({\n source: component,\n lane,\n shouldValidateVersion: Boolean(build),\n addVersionOpts: {\n addToUpdateDependentsInLane: updateDependentsOnLane,\n setHeadAsParent,\n detachHead,\n overrideHead: overrideHead,\n },\n });\n if (this.workspace) {\n const modelComponent = component.modelComponent || (await this.legacyScope.getModelComponent(component.id));\n await updateVersions(\n this.workspace,\n stagedConfig!,\n currentLane!,\n modelComponent,\n results.addedVersionStr,\n true\n );\n } else {\n const tagData = this.params.tagDataPerComp?.find((t) => t.componentId.isEqualWithoutVersion(component.id));\n if (tagData?.isNew) results.version.removeAllParents();\n }\n });\n\n if (this.workspace) {\n await this.workspace.scope.legacyScope.stagedSnaps.write();\n }\n const publishedPackages: string[] = [];\n const harmonyCompsToTag = await (this.workspace || this.scope).getManyByLegacy(this.allComponentsToTag);\n // this is not necessarily the same as the previous allComponentsToTag. although it should be, because\n // harmonyCompsToTag is created from allComponentsToTag. however, for aspects, the getMany returns them from cache\n // and therefore, their instance of ConsumerComponent can be different than the one in allComponentsToTag.\n this.allComponentsToTag = harmonyCompsToTag.map((c) => c.state._consumer);\n await this.build(harmonyCompsToTag, publishedPackages);\n\n const removedComponents = await removeDeletedComponentsFromBitmap(this.allComponentsToTag, this.workspace);\n await this.addLaneObject(lane);\n await this.legacyScope.objects.persist();\n await removeMergeConfigFromComponents(unmergedComps, this.allComponentsToTag, this.workspace);\n if (this.workspace) {\n await linkToNodeModulesByComponents(harmonyCompsToTag, this.workspace);\n }\n // clear all objects. otherwise, ModelComponent has the wrong divergeData\n this.legacyScope.objects.clearObjectsFromCache();\n\n return {\n taggedComponents: componentsToTag,\n autoTaggedResults: autoTagData,\n publishedPackages,\n stagedConfig,\n removedComponents,\n totalComponentsCount: this.allComponentsToTag.length,\n };\n }\n\n private async _addDependenciesGraphToComponents(): Promise<void> {\n if (!this.workspace || !this.allWorkspaceComps) {\n return;\n }\n this.snapping.logger.setStatusLine('adding dependencies graph...');\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n const componentIdByPkgName = this._getComponentIdByPkgNameMap();\n const options = {\n rootDir: this.workspace.path,\n rootComponentsPath: this.workspace.rootComponentsPath,\n componentIdByPkgName,\n };\n const components: Array<{ component: Component; componentRelativeDir: string }> = [];\n for (const consumerComponent of this.allComponentsToTag) {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (consumerComponent.componentMap?.rootDir && component) {\n components.push({\n component,\n componentRelativeDir: consumerComponent.componentMap.rootDir,\n });\n }\n }\n await this.dependencyResolver.addDependenciesGraph(components, options);\n this.snapping.logger.clearStatusLine();\n this.snapping.logger.profile('snap._addDependenciesGraphToComponents');\n }\n\n private _findWorkspaceCompByConsumerComp(consumerComponent: ConsumerComponent): Component | undefined {\n return this.allWorkspaceComps?.find((component) => component.id.isEqualWithoutVersion(consumerComponent.id));\n }\n\n private _getComponentIdByPkgNameMap(): Map<string, ComponentID> {\n if (!this.allWorkspaceComps) throw new Error('please make sure to populate this.allWorkspaceComps before');\n const componentIdByPkgName = new Map<string, ComponentID>();\n this.allComponentsToTag.forEach((consumerComponent) => {\n const component = this._findWorkspaceCompByConsumerComp(consumerComponent);\n if (component) {\n const pkgName = this.dependencyResolver.getPackageName(component);\n componentIdByPkgName.set(pkgName, consumerComponent.id);\n }\n });\n for (const workspaceComp of this.allWorkspaceComps) {\n if (\n this.allComponentsToTag.every(\n (snappedComponent) => !snappedComponent.id.isEqualWithoutVersion(workspaceComp.id)\n )\n ) {\n componentIdByPkgName.set(this.dependencyResolver.getPackageName(workspaceComp), workspaceComp.id);\n }\n }\n return componentIdByPkgName;\n }\n\n private async triggerOnPreSnap(autoTagIds: ComponentIdList) {\n const allFunctions = this.snapping.onPreSnapSlot.values();\n await mapSeries(allFunctions, (func) => func(this.components, autoTagIds, this.params));\n }\n\n private async addLaneObject(lane?: Lane) {\n if (lane) {\n const { message } = this.params;\n const msgStr = message ? ` (${message})` : '';\n const laneHistory = await this.legacyScope.lanes.updateLaneHistory(lane, `snap${msgStr}`);\n this.legacyScope.objects.add(laneHistory);\n }\n }\n\n private async build(harmonyCompsToTag: Component[], publishedPackages: string[]) {\n if (!this.params.build) {\n return;\n }\n const {\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n skipTasks,\n packageManagerConfigRootDir,\n exitOnFirstFailedTask,\n populateArtifactsIgnorePkgJson,\n skipTests,\n loose,\n } = this.params;\n const onTagOpts: OnTagOpts = {\n disableTagAndSnapPipelines,\n throwOnError: true,\n forceDeploy: ignoreBuildErrors,\n isSnap,\n populateArtifactsFrom,\n loose,\n };\n const skipTasksParsed = skipTasks ? skipTasks.split(',').map((t) => t.trim()) : undefined;\n const seedersOnly = !this.workspace; // if tag from scope, build only the given components\n const isolateOptions = { packageManagerConfigRootDir, seedersOnly, populateArtifactsIgnorePkgJson };\n const builderOptions = { exitOnFirstFailedTask, skipTests, skipTasks: skipTasksParsed, loose };\n\n const componentsToBuild = harmonyCompsToTag.filter((c) => !c.isDeleted());\n if (componentsToBuild.length) {\n const componentsToBuildLegacy: ConsumerComponent[] = componentsToBuild.map((c) => c.state._consumer);\n await this.scope.reloadAspectsWithNewVersion(componentsToBuildLegacy);\n const { builderDataMap } = await this.builder.tagListener(\n componentsToBuild,\n onTagOpts,\n isolateOptions,\n builderOptions\n );\n const buildResult = this.builder.builderDataMapToLegacyOnTagResults(builderDataMap);\n\n this.snapping._updateComponentsByTagResult(componentsToBuildLegacy, buildResult);\n const packageIntegritiesByPublishedPackages = this.snapping._getPublishedPackages(componentsToBuildLegacy);\n publishedPackages.push(...Array.from(packageIntegritiesByPublishedPackages.keys()));\n\n addIntegritiesToConsumerComponentsGraphs(packageIntegritiesByPublishedPackages, this.allComponentsToTag);\n this.addBuildStatus(componentsToBuildLegacy, BuildStatus.Succeed);\n await mapSeries(componentsToBuild, (comp) => this.snapping.enrichComp(comp));\n if (populateArtifactsFrom) await updateHiddenProp(this.scope, populateArtifactsFrom);\n }\n }\n\n private async checkForNewerVersions() {\n // check for each one of the components whether it is using an old version\n // TODO: once --detach-head is supported by the remote, deprecate --ignore-newest-version. and change this\n // throwForNewestVersion to suggest using --detach-head instead. also, it the error should not be limited\n // to tags and can be thrown for snaps as well.\n // once --ignore-newest-version is removed, no need for this condition. it's ok to not provide the override-head option.\n const { detachHead, ignoreNewestVersion, isSnap } = this.params;\n if (ignoreNewestVersion && !detachHead) this.params.overrideHead = true;\n if (!ignoreNewestVersion && !isSnap) {\n await throwForNewestVersion(this.allComponentsToTag, this.legacyScope);\n }\n }\n\n private async getMessagePerId(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const messagesFromEditorFetcher = new MessagePerComponentFetcher(idsToTag, autoTagIds);\n const { editor, message, tagDataPerComp } = this.params;\n if (editor) return messagesFromEditorFetcher.getMessagesFromEditor(this.legacyScope.tmp, editor);\n if (tagDataPerComp) return tagDataPerComp.map((t) => ({ id: t.componentId, msg: t.message || message }));\n return [];\n }\n\n private async parseVersionsFile(idsToTag: ComponentIdList, autoTagIds: ComponentIdList) {\n const { versionsFile } = this.params;\n if (!versionsFile) return;\n\n const allComponentsToTag = ComponentIdList.fromArray([...idsToTag, ...autoTagIds]);\n const versionFileParser = new VersionFileParser(allComponentsToTag);\n const tagDataFromFile = await versionFileParser.parseVersionsFile(versionsFile);\n this.params.tagDataPerComp = tagDataFromFile;\n }\n\n private getUniqCompsToTag(): ConsumerComponent[] {\n const consumerComponentsIdsMap = {};\n // Concat and unique all the dependencies from all the components so we will not import\n // the same dependency more then once, it's mainly for performance purpose\n this.consumerComponents.forEach((consumerComponent) => {\n const componentIdString = consumerComponent.id.toString();\n // Store it in a map so we can take it easily from the sorted array which contain only the id\n consumerComponentsIdsMap[componentIdString] = consumerComponent;\n });\n return Object.values(consumerComponentsIdsMap); // consumerComponents unique\n }\n\n private async getAutoTagData(idsToTag: ComponentIdList): Promise<AutoTagResult[]> {\n if (this.params.skipAutoTag) return [];\n if (!this.workspace) return this.getLaneAutoTagIdsFromScope(idsToTag);\n // ids without versions are new. it's impossible that tagged (and not-modified) components has\n // them as dependencies.\n const idsToTriggerAutoTag = idsToTag.filter((id) => id.hasVersion());\n const autoTagDataWithLocalOnly = await this.workspace.getAutoTagInfo(\n ComponentIdList.fromArray(idsToTriggerAutoTag)\n );\n const localOnly = this.workspace?.listLocalOnly();\n return localOnly\n ? autoTagDataWithLocalOnly.filter((autoTagItem) => !localOnly.hasWithoutVersion(autoTagItem.component.id))\n : autoTagDataWithLocalOnly;\n }\n\n private async getLaneAutoTagIdsFromScope(idsToTag: ComponentIdList): Promise<AutoTagResult[]> {\n const lane = await this.legacyScope.getCurrentLaneObject();\n if (!lane) return [];\n const laneCompIds = lane.toComponentIds();\n const graphIds = await this.scope.getGraphIds(laneCompIds);\n const dependentsMap = idsToTag.reduce(\n (acc, id) => {\n const dependents = graphIds.predecessors(id.toString());\n const dependentsCompIds = dependents.map((d) => d.attr);\n const dependentsCompIdsFromTheLane = dependentsCompIds.filter((s) => laneCompIds.has(s));\n if (!dependentsCompIdsFromTheLane.length) return acc;\n acc[id.toString()] = ComponentIdList.fromArray(dependentsCompIdsFromTheLane);\n return acc;\n },\n {} as Record<string, ComponentIdList>\n );\n if (Object.keys(dependentsMap).length === 0) return [];\n const allDependentsIds = ComponentIdList.uniqFromArray(Object.values(dependentsMap).flat());\n const allDependents = await this.legacyScope.getManyConsumerComponents(allDependentsIds);\n return allDependents.map((dependent) => {\n const triggeredByIds = Object.keys(dependentsMap).filter((id) => dependentsMap[id].has(dependent.id));\n const triggeredBy = ComponentIdList.fromStringArray(triggeredByIds);\n return { component: dependent, triggeredBy };\n });\n }\n\n private async setFutureVersions(autoTagIds: ComponentIdList): Promise<void> {\n const { releaseType, tagDataPerComp, incrementBy, persist, soft, exactVersion, preReleaseId } = this.params;\n const isPreReleaseLike = releaseType\n ? ['prerelease', 'premajor', 'preminor', 'prepatch'].includes(releaseType)\n : false;\n await Promise.all(\n this.allComponentsToTag.map(async (componentToTag) => {\n const isAutoTag = autoTagIds.hasWithoutVersion(componentToTag.id);\n const modelComponent = await this.legacyScope.sources.findOrAddComponent(componentToTag);\n const nextVersion = componentToTag.componentMap?.nextVersion?.version;\n const getNewVersion = (): string => {\n if (tagDataPerComp) {\n const tagData = tagDataPerComp.find((t) => t.componentId.isEqualWithoutVersion(componentToTag.id));\n if (!tagData) throw new Error(`tag-data is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n if (!tagData.versionToTag)\n throw new Error(`tag-data.TagResults is missing for ${componentToTag.id.toStringWithoutVersion()}`);\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(tagData.versionToTag);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n incrementBy,\n tagData.prereleaseId\n );\n }\n if (nextVersion && persist) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(nextVersion);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion,\n undefined,\n componentToTag.componentMap?.nextVersion?.preRelease\n );\n }\n if (isAutoTag) {\n // auto-tag always bumped as patch unless it's pre-release\n if (isPreReleaseLike) {\n return soft\n ? (releaseType as string)\n : modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n }\n return soft ? 'patch' : modelComponent.getVersionToAdd('patch', undefined, incrementBy, preReleaseId);\n }\n const versionByEnteredId = this.getVersionByEnteredId(this.ids, componentToTag, modelComponent);\n return soft\n ? versionByEnteredId || exactVersion || (releaseType as string)\n : versionByEnteredId ||\n modelComponent.getVersionToAdd(releaseType, exactVersion, incrementBy, preReleaseId);\n };\n const newVersion = getNewVersion();\n componentToTag.setNewVersion(newVersion);\n })\n );\n }\n\n private setCurrentSchema() {\n this.allComponentsToTag.forEach((component) => {\n component.schema = CURRENT_SCHEMA;\n });\n }\n\n private setHashes(): void {\n this.allComponentsToTag.forEach((componentToTag) => {\n componentToTag.setNewVersion(sha1(v4()));\n });\n }\n\n private getVersionByEnteredId(\n enteredIds: ComponentIdList,\n component: ConsumerComponent,\n modelComponent: ModelComponent\n ): string | undefined {\n const enteredId = enteredIds.searchWithoutVersion(component.id);\n if (enteredId && enteredId.hasVersion()) {\n const exactVersionOrReleaseType = getValidVersionOrReleaseType(enteredId.version as string);\n return modelComponent.getVersionToAdd(\n exactVersionOrReleaseType.releaseType,\n exactVersionOrReleaseType.exactVersion\n );\n }\n return undefined;\n }\n\n private addBuildStatus(components: ConsumerComponent[], buildStatus: BuildStatus) {\n components.forEach((component) => {\n component.buildStatus = component.isRemoved() ? BuildStatus.Skipped : buildStatus;\n });\n }\n\n /**\n * otherwise, tagging without build will have the old build data of the previous snap/tag.\n * in case we currently build, it's ok to leave the data as is, because it'll be overridden anyway.\n */\n private emptyBuilderData() {\n this.allComponentsToTag.forEach((component) => {\n component.extensions = component.extensions.clone();\n const existingBuilder = component.extensions.findCoreExtension(Extensions.builder);\n if (existingBuilder) existingBuilder.data = {};\n });\n }\n\n private updateDependenciesVersions() {\n // filter out removed components.\n // if a component has a deleted-component as a dependency, it was probably running \"bit install <dep>\" with a version\n // from main. we want to keep it as the user requested. Otherwise, this changes the dependency version to the newly\n // snapped one unintentionally.\n const componentsToTag = this.allComponentsToTag.filter((c) => !c.isRemoved());\n const getNewDependencyVersion = (id: ComponentID): ComponentID | null => {\n const foundDependency = componentsToTag.find((component) => component.id.isEqualWithoutVersion(id));\n return foundDependency ? id.changeVersion(foundDependency.version) : null;\n };\n const changeExtensionsVersion = (component: ConsumerComponent): void => {\n component.extensions.forEach((ext) => {\n if (ext.extensionId) {\n const newDepId = getNewDependencyVersion(ext.extensionId);\n if (newDepId) ext.extensionId = newDepId;\n }\n });\n };\n // in case we update dependencies according to the currently tagged component, we want to keep the versionRange\n // up to date with the new tags. e.g. 0.0.1 -> 0.0.2, will change the versionRange to ^0.0.2 or ~0.0.2.\n // in case componentRangePrefix is \"+\", we care only about packages in workspace.jsonc. so it won't be relevant.\n const updateDepsResolverData = (component: ConsumerComponent, componentRangePrefix?: ComponentRangePrefix) => {\n const entry = component.extensions.findCoreExtension(DependencyResolverAspect.id);\n if (!entry) {\n return component;\n }\n const dependencies = get(entry, ['data', 'dependencies'], []);\n dependencies.forEach((dep) => {\n if (dep.__type !== COMPONENT_DEP_TYPE) {\n return;\n }\n // @todo: it's unclear why \"dep.componentId\" randomly becomes a ComponentID instance.\n // this check is added because on Ripple in some scenarios it was throwing:\n // \"ComponentID.fromObject expect to get an object, got an instance of ComponentID\" (locally it didn't happen)\n const depId =\n dep.componentId instanceof ComponentID ? dep.componentId : ComponentID.fromObject(dep.componentId);\n const newDepId = getNewDependencyVersion(depId);\n dep.componentId = (newDepId || depId).serialize();\n dep.id = (newDepId || depId).toString();\n dep.version = (newDepId || depId).version;\n // if newDepId, then it means the dependency is in the current workspace and currently being tagged.\n // the versionRange needs to be updated to the new version.\n // However, for snaps, we should not apply range prefixes as they are not valid semver\n if (newDepId && (componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(dep.version)) {\n dep.versionRange = `${componentRangePrefix}${dep.version}`;\n }\n });\n return component;\n };\n\n componentsToTag.forEach((oneComponentToTag) => {\n const componentRangePrefix =\n this.dependencyResolver.calcComponentRangePrefixByConsumerComponent(oneComponentToTag);\n oneComponentToTag.getAllDependencies().forEach((dependency) => {\n const newDepId = getNewDependencyVersion(dependency.id);\n if (!newDepId) return;\n dependency.id = newDepId;\n // if componentRangePrefix === '+', then, only it only saves packages in workspace.jsonc.\n // in this case, these dependencies are in .bitmap. not in workspace.jsonc. so it's not relevant.\n // For snaps (hash versions), we should not apply range prefixes as they are not valid semver\n if ((componentRangePrefix === '^' || componentRangePrefix === '~') && !isSnapVersion(newDepId.version)) {\n dependency.versionRange = `${componentRangePrefix}${newDepId.version}`;\n }\n });\n changeExtensionsVersion(oneComponentToTag);\n oneComponentToTag = updateDepsResolverData(oneComponentToTag);\n });\n }\n\n private async addLogToComponents(\n components: ConsumerComponent[],\n autoTagComps: ConsumerComponent[],\n messagePerComponent: MessagePerComponent[]\n ) {\n let { message } = this.params;\n const { persist, copyLogFromPreviousSnap } = this.params;\n // @ts-ignore this happens when running `bit tag -m \"\"`.\n if (message === true) {\n message = '';\n }\n const basicLog = await getBasicLog();\n const getLog = (component: ConsumerComponent): Log => {\n const nextVersion = persist ? component.componentMap?.nextVersion : null;\n const msgFromEditor = messagePerComponent.find((item) => item.id.isEqualWithoutVersion(component.id))?.msg;\n if (copyLogFromPreviousSnap) {\n const currentLog = component.log;\n if (!currentLog) {\n throw new Error(\n `addLogToComponents is set copyLogFromPreviousSnap: true, but it is unable to find log in the previous snap`\n );\n }\n currentLog.message = msgFromEditor || message || currentLog.message;\n currentLog.date = basicLog.date;\n return currentLog;\n }\n\n return {\n username: nextVersion?.username || basicLog.username,\n email: nextVersion?.email || basicLog.email,\n message: nextVersion?.message || msgFromEditor || message,\n date: basicLog.date,\n };\n };\n\n components.forEach((component) => {\n component.log = getLog(component);\n });\n autoTagComps.forEach((autoTagComp) => {\n autoTagComp.log = getLog(autoTagComp);\n const defaultMsg = 'bump dependencies versions';\n if (message) {\n autoTagComp.log.message += ` (${defaultMsg})`;\n } else if (!autoTagComp.log.message) {\n autoTagComp.log.message = defaultMsg;\n }\n });\n }\n}\n\nasync function throwForNewestVersion(allComponentsToTag: ConsumerComponent[], legacyScope: Scope) {\n const newestVersionsP = allComponentsToTag.map(async (component) => {\n if (component.componentFromModel) {\n // otherwise it's a new component, so this check is irrelevant\n const modelComponent = await legacyScope.getModelComponentIfExist(component.id);\n if (!modelComponent) throw new BitError(`component ${component.id} was not found in the model`);\n if (!modelComponent.listVersions().length) return null; // no versions yet, no issues.\n const latest = modelComponent.getHeadRegardlessOfLaneAsTagOrHash();\n if (latest !== component.version) {\n return {\n componentId: component.id.toStringWithoutVersion(),\n currentVersion: component.version!,\n latestVersion: latest,\n };\n }\n }\n return null;\n });\n const newestVersions = await Promise.all(newestVersionsP);\n const newestVersionsWithoutEmpty = compact(newestVersions);\n if (newestVersionsWithoutEmpty.length) {\n throw new NewerVersionFound(newestVersionsWithoutEmpty);\n }\n}\n\nfunction addIntegritiesToConsumerComponentsGraphs(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n consumerComponents: ConsumerComponent[]\n) {\n const _addIntegritiesToDependenciesGraph = addIntegritiesToDependenciesGraph.bind(\n null,\n packageIntegritiesByPublishedPackages\n );\n for (const consumerComponent of consumerComponents) {\n if (consumerComponent.dependenciesGraph) {\n consumerComponent.dependenciesGraph = _addIntegritiesToDependenciesGraph(consumerComponent.dependenciesGraph);\n }\n }\n}\n\n/**\n * Updates the dependencies graph by replacing all \"pending\" version numbers of component dependencies\n * with the actual version numbers of the recently published packages. It also attaches the integrity\n * checksums of these components to ensure data integrity for each resolved dependency.\n *\n * @param packageIntegritiesByPublishedPackages - A map of package names and versions to their integrity checksums.\n * @param dependenciesGraph - The current dependencies graph, containing nodes with potentially \"pending\" versions.\n * @returns A new DependenciesGraph with updated versions and integrity checksums for all previously pending dependencies.\n */\nfunction addIntegritiesToDependenciesGraph(\n packageIntegritiesByPublishedPackages: PackageIntegritiesByPublishedPackages,\n dependenciesGraph: DependenciesGraph\n): DependenciesGraph {\n const resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }> = [];\n for (const [selector, { integrity, previouslyUsedVersion }] of packageIntegritiesByPublishedPackages.entries()) {\n if (integrity == null) continue;\n const index = selector.indexOf('@', 1);\n const name = selector.substring(0, index);\n const version = selector.substring(index + 1);\n const pendingPkg =\n dependenciesGraph.packages.get(`${name}@${previouslyUsedVersion}`) ??\n dependenciesGraph.packages.get(`${name}@${version}`);\n if (pendingPkg) {\n pendingPkg.resolution = { integrity };\n resolvedVersions.push({ name, version, previouslyUsedVersion });\n }\n }\n return replacePendingVersions(dependenciesGraph, resolvedVersions) as DependenciesGraph;\n}\n\nasync function removeDeletedComponentsFromBitmap(\n comps: ConsumerComponent[],\n workspace?: Workspace\n): Promise<ComponentIdList | undefined> {\n if (!workspace) {\n return undefined;\n }\n const removedComps = comps.filter((comp) => comp.isRemoved());\n if (!removedComps.length) return undefined;\n const compBitIdsToRemove = ComponentIdList.fromArray(removedComps.map((c) => c.id));\n await deleteComponentsFiles(workspace.consumer, compBitIdsToRemove);\n await workspace.consumer.cleanFromBitMap(compBitIdsToRemove);\n\n return compBitIdsToRemove;\n}\n\nasync function removeMergeConfigFromComponents(\n unmergedComps: ComponentID[],\n components: ConsumerComponent[],\n workspace?: Workspace\n) {\n if (!workspace || !unmergedComps.length) {\n return;\n }\n const configMergeFile = workspace.getConflictMergeFile();\n\n unmergedComps.forEach((compId) => {\n const isNowSnapped = components.find((c) => c.id.isEqualWithoutVersion(compId));\n if (isNowSnapped) {\n configMergeFile.removeConflict(compId.toStringWithoutVersion());\n }\n });\n const currentlyUnmerged = workspace ? await workspace.listComponentsDuringMerge() : [];\n if (configMergeFile.hasConflict() && currentlyUnmerged.length) {\n // it's possible that \"workspace\" section is still there. but if all \"unmerged\" are now merged,\n // then, it's safe to delete the file.\n await configMergeFile.write();\n } else {\n await configMergeFile.delete();\n }\n}\n\nexport type BitCloudUser = {\n username?: string;\n name?: string;\n displayName?: string;\n profileImage?: string;\n};\n\nfunction isAvailableOnMain(currentLane: LaneId, modelComponent: ModelComponent, id: ComponentID) {\n if (currentLane.isDefault()) {\n return true;\n }\n if (!id.hasVersion()) {\n // component was unsnapped on the current lane and is back to a new component\n return true;\n }\n return modelComponent.hasHead();\n}\n\nexport async function updateVersions(\n workspace: Workspace,\n stagedConfig: StagedConfig,\n currentLane: LaneId,\n modelComponent: ModelComponent,\n versionToSetInBitmap?: string, // helpful for detached head\n isTag = true\n) {\n const consumer = workspace.consumer;\n const idLatest: ComponentID = modelComponent.toBitIdWithLatestVersionAllowNull();\n const id = versionToSetInBitmap ? idLatest.changeVersion(versionToSetInBitmap) : idLatest;\n const isOnBitmap = consumer.bitMap.getComponentIfExist(id, { ignoreVersion: true });\n if (!isOnBitmap && !isTag) {\n // handle the case when a component was deleted, snapped/tagged and is now reset.\n const stagedData = stagedConfig.getPerId(id);\n if (stagedData?.config && stagedData.config[RemoveAspect.id]) {\n consumer.bitMap.addFromComponentJson(stagedData.id, stagedData.componentMapObject);\n }\n }\n consumer.bitMap.updateComponentId(id, undefined, undefined, true);\n const availableOnMain = isAvailableOnMain(currentLane, modelComponent, id);\n if (!availableOnMain) {\n consumer.bitMap.setOnLanesOnly(id, true);\n }\n const componentMap = consumer.bitMap.getComponent(id);\n const compId = await workspace.resolveComponentId(id);\n // it can be either a tag/snap or reset.\n if (isTag) {\n const compMapObj = componentMap.toPlainObject();\n const config = componentMap.config;\n stagedConfig.addComponentConfig(compId, config, compMapObj);\n consumer.bitMap.removeConfig(id);\n const hash = modelComponent.getRef(id.version as string);\n if (!hash) throw new Error(`updateComponentsVersions: unable to find a hash for ${id.toString()}`);\n workspace.scope.legacyScope.stagedSnaps.addSnap(hash?.toString());\n } else if (!componentMap.config) {\n componentMap.config = stagedConfig.getConfigPerId(compId);\n }\n componentMap.clearNextVersion();\n}\n\nfunction replacePendingVersions(\n graph: DependenciesGraph,\n resolvedVersions: Array<{ name: string; version: string; previouslyUsedVersion?: string }>\n): DependenciesGraph {\n let s = graph.serialize();\n for (const { name, version, previouslyUsedVersion } of resolvedVersions) {\n if (previouslyUsedVersion) {\n s = s.replaceAll(`${name}@${previouslyUsedVersion}:`, `${name}@${version}`);\n }\n }\n const updatedDependenciesGraph = DependenciesGraph.deserialize(s);\n // This should never happen as we know at this point that the schema version is supported\n if (updatedDependenciesGraph == null) {\n throw new BitError('Failed to deserialize dependencies graph in replacePendingVersions()');\n }\n return updatedDependenciesGraph;\n}\n\n/**\n * relevant for \"_tag\" (tag-from-scope) command.\n * the new tag uses the same files/config/build-artifacts as the previous snap.\n * we want to mark the previous snap as hidden. so then \"bit log\" and \"bit blame\" won't show it.\n */\nasync function updateHiddenProp(scope: ScopeMain, ids: ComponentID[]) {\n const log = await getBasicLog();\n log.message = 'marked as hidden';\n await pMapPool(\n ids,\n async (id) => {\n const versionObj = await scope.getBitObjectVersionById(id);\n if (!versionObj) return;\n versionObj.hidden = true;\n versionObj.addModifiedLog(log);\n scope.legacyScope.objects.add(versionObj);\n },\n { concurrency: 50 }\n );\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,MAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,UAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,SAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,aAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,YAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,SAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,QAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,kBAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,iBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAU,SAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,QAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,QAAA;EAAA,MAAAX,IAAA,GAAAE,OAAA;EAAAS,OAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,YAAA;EAAA,MAAAZ,IAAA,GAAAE,OAAA;EAAAU,WAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,gBAAA;EAAA,MAAAb,IAAA,GAAAE,OAAA;EAAAW,eAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,eAAA;EAAA,MAAAd,IAAA,GAAAE,OAAA;EAAAY,cAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,kBAAA;EAAA,MAAAf,IAAA,GAAAE,OAAA;EAAAa,iBAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAgB,SAAA;EAAA,MAAAhB,IAAA,GAAAE,OAAA;EAAAc,QAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAiB,qBAAA;EAAA,MAAAjB,IAAA,GAAAE,OAAA;EAAAe,oBAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,mBAAA;EAAA,MAAAlB,IAAA,GAAAE,OAAA;EAAAgB,kBAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAmB,oBAAA;EAAA,MAAAnB,IAAA,GAAAE,OAAA;EAAAiB,mBAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAoB,gBAAA;EAAA,MAAApB,IAAA,GAAAE,OAAA;EAAAkB,eAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6D,SAAAC,uBAAAoB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AA4C7D;AACA;AACA;AACO,MAAMgB,YAAY,CAAC;EASxBC,WAAWA,CACDC,QAAsB,EACtBC,UAAuB,EACvBC,kBAAuC,EACvCC,GAAoB,EACpBC,MAA0B,EAClC;IAAA,KALQJ,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,UAAuB,GAAvBA,UAAuB;IAAA,KACvBC,kBAAuC,GAAvCA,kBAAuC;IAAA,KACvCC,GAAoB,GAApBA,GAAoB;IAAA,KACpBC,MAA0B,GAA1BA,MAA0B;IAAAxB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,6BAPc,EAAE;IAAAA,eAAA;IASlD,IAAI,CAACyB,SAAS,GAAGL,QAAQ,CAACK,SAAS;IACnC,IAAI,CAACC,KAAK,GAAGN,QAAQ,CAACM,KAAK;IAC3B,IAAI,CAACC,OAAO,GAAGP,QAAQ,CAACO,OAAO;IAC/B,IAAI,CAACC,kBAAkB,GAAGR,QAAQ,CAACQ,kBAAkB;IAErD,IAAI,CAACC,QAAQ,GAAG,IAAI,CAACJ,SAAS,EAAEI,QAAQ;IACxC,IAAI,CAACC,WAAW,GAAG,IAAI,CAACJ,KAAK,CAACI,WAAW;EAC3C;EAEA,MAAMC,WAAWA,CAAA,EAOd;IACD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACP,SAAS,GAAG,MAAM,IAAI,CAACA,SAAS,CAACQ,IAAI,CAAC,CAAC,GAAGC,SAAS;IACjF,MAAMC,eAAe,GAAG,IAAI,CAACC,iBAAiB,CAAC,CAAC;IAChD,MAAMC,QAAQ,GAAGC,8BAAe,CAACC,SAAS,CAACJ,eAAe,CAACK,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,CAAC,CAAC;IAC5E,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACC,cAAc,CAACP,QAAQ,CAAC;IACvD,MAAMQ,iBAAiB,GAAGF,WAAW,CAACH,GAAG,CAAEM,WAAW,IAAKA,WAAW,CAACC,SAAS,CAAC;IACjF,MAAMC,yBAAyB,GAAGH,iBAAiB,CAACI,MAAM,CAAER,CAAC,IAAK,CAACJ,QAAQ,CAACa,GAAG,CAACT,CAAC,CAACC,EAAE,CAAC,CAAC;IACtF,MAAMS,UAAU,GAAGb,8BAAe,CAACC,SAAS,CAACS,yBAAyB,CAACR,GAAG,CAAEY,OAAO,IAAKA,OAAO,CAACV,EAAE,CAAC,CAAC;;IAEpG;IACA,IAAI,IAAI,CAACV,iBAAiB,IAAImB,UAAU,CAACE,MAAM,EAAE;MAC/C,MAAMC,wBAAwB,GAAG,IAAI,CAACtB,iBAAiB,CAACiB,MAAM,CAAER,CAAC,IAAKU,UAAU,CAACD,GAAG,CAACT,CAAC,CAACC,EAAE,CAAC,CAAC;MAC3F,MAAM,IAAI,CAACf,OAAO,CAAC4B,uBAAuB,CAACD,wBAAwB,EAAE,IAAI,CAAC9B,MAAM,CAACgC,YAAY,CAAC;IAChG;IAEA,MAAM,IAAI,CAACC,gBAAgB,CAACN,UAAU,CAAC;IACvC,IAAI,CAACO,kBAAkB,GAAG,CAAC,GAAGvB,eAAe,EAAE,GAAGa,yBAAyB,CAAC;IAC5E,MAAM,IAAI,CAACW,iBAAiB,CAACtB,QAAQ,EAAEc,UAAU,CAAC;IAClD,MAAMS,YAAY,GAAG,MAAM,IAAI,CAACC,eAAe,CAACxB,QAAQ,EAAEc,UAAU,CAAC;IACrE,MAAM,IAAI,CAACW,qBAAqB,CAAC,CAAC;IAClC,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACvB;IACA,IAAI,CAACvC,MAAM,CAACwC,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,CAAC,GAAG,MAAM,IAAI,CAACC,iBAAiB,CAACf,UAAU,CAAC;IAChF;IACA,IAAI,CAACgB,0BAA0B,CAAC,CAAC;IACjC,MAAM,IAAI,CAACC,kBAAkB,CAACjC,eAAe,EAAEU,iBAAiB,EAAEe,YAAY,CAAC;IAC/E;IACA;IACA,MAAMS,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC5C,SAAS,EAAE6C,yBAAyB,CAAC,CAAC,KAAK,EAAE;IAC/E,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACzC,WAAW,CAAC0C,oBAAoB,CAAC,CAAC;IAC1D,MAAMC,YAAY,GAAG,CAAC,MAAM,IAAI,CAAChD,SAAS,EAAEC,KAAK,CAACgD,eAAe,CAAC,CAAC,KAAKxC,SAAS;IACjF,IAAI,IAAI,CAACV,MAAM,CAACmD,IAAI,EAAE;MACpB,IAAI,CAAC,IAAI,CAAC9C,QAAQ,EAAE,MAAM,IAAI+C,KAAK,CAAC,qCAAqC,CAAC;MAC1E,IAAI,CAAC/C,QAAQ,CAACgD,yBAAyB,CAAC,IAAI,CAACnB,kBAAkB,EAAE,IAAI,CAAClC,MAAM,CAACsD,YAAY,CAAC;MAC1F,OAAO;QACLC,gBAAgB,EAAE5C,eAAe;QACjC6C,iBAAiB,EAAErC,WAAW;QAC9BsC,iBAAiB,EAAE,EAAE;QACrBR,YAAY;QACZS,oBAAoB,EAAE,IAAI,CAACxB,kBAAkB,CAACL;MAChD,CAAC;IACH;IAEA,MAAM;MAAE8B,gBAAgB;MAAEC,KAAK;MAAEC,sBAAsB;MAAEC,eAAe;MAAEC,UAAU;MAAEC;IAAa,CAAC,GAAG,IAAI,CAAChE,MAAM;IAClH,MAAM,IAAI,CAACJ,QAAQ,CAACqE,qCAAqC,CAAC,IAAI,CAAC/B,kBAAkB,EAAEyB,gBAAgB,CAAC;IACpG,MAAM,IAAI,CAACO,iCAAiC,CAAC,CAAC;IAC9C,MAAM,IAAI,CAACtE,QAAQ,CAACuE,2BAA2B,CAAC,IAAI,CAACjC,kBAAkB,CAAC;IACxE,IAAI,CAAC0B,KAAK,EAAE,IAAI,CAACQ,gBAAgB,CAAC,CAAC;IACnC,IAAI,CAACC,cAAc,CAAC,IAAI,CAACnC,kBAAkB,EAAEoC,qBAAW,CAACC,OAAO,CAAC;IAEjE,MAAMC,WAAW,GAAG,IAAI,CAACnE,QAAQ,EAAEoE,gBAAgB,CAAC,CAAC;IACrD,MAAM,IAAAC,qBAAS,EAAC,IAAI,CAACxC,kBAAkB,EAAE,MAAOX,SAAS,IAAK;MAC5D,MAAMoD,OAAO,GAAG,MAAM,IAAI,CAAC/E,QAAQ,CAACgF,iBAAiB,CAAC;QACpDC,MAAM,EAAEtD,SAAS;QACjBwB,IAAI;QACJ+B,qBAAqB,EAAEC,OAAO,CAACnB,KAAK,CAAC;QACrCoB,cAAc,EAAE;UACdC,2BAA2B,EAAEpB,sBAAsB;UACnDC,eAAe;UACfC,UAAU;UACVC,YAAY,EAAEA;QAChB;MACF,CAAC,CAAC;MACF,IAAI,IAAI,CAAC/D,SAAS,EAAE;QAClB,MAAMiF,cAAc,GAAG3D,SAAS,CAAC2D,cAAc,KAAK,MAAM,IAAI,CAAC5E,WAAW,CAAC6E,iBAAiB,CAAC5D,SAAS,CAACL,EAAE,CAAC,CAAC;QAC3G,MAAMkE,cAAc,CAClB,IAAI,CAACnF,SAAS,EACdgD,YAAY,EACZuB,WAAW,EACXU,cAAc,EACdP,OAAO,CAACU,eAAe,EACvB,IACF,CAAC;MACH,CAAC,MAAM;QACL,MAAMC,OAAO,GAAG,IAAI,CAACtF,MAAM,CAACuF,cAAc,EAAEC,IAAI,CAAE9G,CAAC,IAAKA,CAAC,CAAC+G,WAAW,CAACC,qBAAqB,CAACnE,SAAS,CAACL,EAAE,CAAC,CAAC;QAC1G,IAAIoE,OAAO,EAAEK,KAAK,EAAEhB,OAAO,CAACiB,OAAO,CAACC,gBAAgB,CAAC,CAAC;MACxD;IACF,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC5F,SAAS,EAAE;MAClB,MAAM,IAAI,CAACA,SAAS,CAACC,KAAK,CAACI,WAAW,CAACwF,WAAW,CAACC,KAAK,CAAC,CAAC;IAC5D;IACA,MAAMtC,iBAA2B,GAAG,EAAE;IACtC,MAAMuC,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC/F,SAAS,IAAI,IAAI,CAACC,KAAK,EAAE+F,eAAe,CAAC,IAAI,CAAC/D,kBAAkB,CAAC;IACvG;IACA;IACA;IACA,IAAI,CAACA,kBAAkB,GAAG8D,iBAAiB,CAAChF,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACiF,KAAK,CAACC,SAAS,CAAC;IACzE,MAAM,IAAI,CAACvC,KAAK,CAACoC,iBAAiB,EAAEvC,iBAAiB,CAAC;IAEtD,MAAM2C,iBAAiB,GAAG,MAAMC,iCAAiC,CAAC,IAAI,CAACnE,kBAAkB,EAAE,IAAI,CAACjC,SAAS,CAAC;IAC1G,MAAM,IAAI,CAACqG,aAAa,CAACvD,IAAI,CAAC;IAC9B,MAAM,IAAI,CAACzC,WAAW,CAACiG,OAAO,CAACC,OAAO,CAAC,CAAC;IACxC,MAAMC,+BAA+B,CAAC5D,aAAa,EAAE,IAAI,CAACX,kBAAkB,EAAE,IAAI,CAACjC,SAAS,CAAC;IAC7F,IAAI,IAAI,CAACA,SAAS,EAAE;MAClB,MAAM,IAAAyG,iDAA6B,EAACV,iBAAiB,EAAE,IAAI,CAAC/F,SAAS,CAAC;IACxE;IACA;IACA,IAAI,CAACK,WAAW,CAACiG,OAAO,CAACI,qBAAqB,CAAC,CAAC;IAEhD,OAAO;MACLpD,gBAAgB,EAAE5C,eAAe;MACjC6C,iBAAiB,EAAErC,WAAW;MAC9BsC,iBAAiB;MACjBR,YAAY;MACZmD,iBAAiB;MACjB1C,oBAAoB,EAAE,IAAI,CAACxB,kBAAkB,CAACL;IAChD,CAAC;EACH;EAEA,MAAcqC,iCAAiCA,CAAA,EAAkB;IAC/D,IAAI,CAAC,IAAI,CAACjE,SAAS,IAAI,CAAC,IAAI,CAACO,iBAAiB,EAAE;MAC9C;IACF;IACA,IAAI,CAACZ,QAAQ,CAACgH,MAAM,CAACC,aAAa,CAAC,8BAA8B,CAAC;IAClE,IAAI,CAACjH,QAAQ,CAACgH,MAAM,CAACE,OAAO,CAAC,wCAAwC,CAAC;IACtE,MAAMC,oBAAoB,GAAG,IAAI,CAACC,2BAA2B,CAAC,CAAC;IAC/D,MAAMC,OAAO,GAAG;MACdC,OAAO,EAAE,IAAI,CAACjH,SAAS,CAACkH,IAAI;MAC5BC,kBAAkB,EAAE,IAAI,CAACnH,SAAS,CAACmH,kBAAkB;MACrDL;IACF,CAAC;IACD,MAAMlH,UAAyE,GAAG,EAAE;IACpF,KAAK,MAAMwH,iBAAiB,IAAI,IAAI,CAACnF,kBAAkB,EAAE;MACvD,MAAMX,SAAS,GAAG,IAAI,CAAC+F,gCAAgC,CAACD,iBAAiB,CAAC;MAC1E,IAAIA,iBAAiB,CAACE,YAAY,EAAEL,OAAO,IAAI3F,SAAS,EAAE;QACxD1B,UAAU,CAAC2H,IAAI,CAAC;UACdjG,SAAS;UACTkG,oBAAoB,EAAEJ,iBAAiB,CAACE,YAAY,CAACL;QACvD,CAAC,CAAC;MACJ;IACF;IACA,MAAM,IAAI,CAAC9G,kBAAkB,CAACsH,oBAAoB,CAAC7H,UAAU,EAAEoH,OAAO,CAAC;IACvE,IAAI,CAACrH,QAAQ,CAACgH,MAAM,CAACe,eAAe,CAAC,CAAC;IACtC,IAAI,CAAC/H,QAAQ,CAACgH,MAAM,CAACE,OAAO,CAAC,wCAAwC,CAAC;EACxE;EAEQQ,gCAAgCA,CAACD,iBAAoC,EAAyB;IACpG,OAAO,IAAI,CAAC7G,iBAAiB,EAAEgF,IAAI,CAAEjE,SAAS,IAAKA,SAAS,CAACL,EAAE,CAACwE,qBAAqB,CAAC2B,iBAAiB,CAACnG,EAAE,CAAC,CAAC;EAC9G;EAEQ8F,2BAA2BA,CAAA,EAA6B;IAC9D,IAAI,CAAC,IAAI,CAACxG,iBAAiB,EAAE,MAAM,IAAI4C,KAAK,CAAC,4DAA4D,CAAC;IAC1G,MAAM2D,oBAAoB,GAAG,IAAIa,GAAG,CAAsB,CAAC;IAC3D,IAAI,CAAC1F,kBAAkB,CAAC2F,OAAO,CAAER,iBAAiB,IAAK;MACrD,MAAM9F,SAAS,GAAG,IAAI,CAAC+F,gCAAgC,CAACD,iBAAiB,CAAC;MAC1E,IAAI9F,SAAS,EAAE;QACb,MAAMuG,OAAO,GAAG,IAAI,CAAC1H,kBAAkB,CAAC2H,cAAc,CAACxG,SAAS,CAAC;QACjEwF,oBAAoB,CAACiB,GAAG,CAACF,OAAO,EAAET,iBAAiB,CAACnG,EAAE,CAAC;MACzD;IACF,CAAC,CAAC;IACF,KAAK,MAAM+G,aAAa,IAAI,IAAI,CAACzH,iBAAiB,EAAE;MAClD,IACE,IAAI,CAAC0B,kBAAkB,CAACgG,KAAK,CAC1BC,gBAAgB,IAAK,CAACA,gBAAgB,CAACjH,EAAE,CAACwE,qBAAqB,CAACuC,aAAa,CAAC/G,EAAE,CACnF,CAAC,EACD;QACA6F,oBAAoB,CAACiB,GAAG,CAAC,IAAI,CAAC5H,kBAAkB,CAAC2H,cAAc,CAACE,aAAa,CAAC,EAAEA,aAAa,CAAC/G,EAAE,CAAC;MACnG;IACF;IACA,OAAO6F,oBAAoB;EAC7B;EAEA,MAAc9E,gBAAgBA,CAACN,UAA2B,EAAE;IAC1D,MAAMyG,YAAY,GAAG,IAAI,CAACxI,QAAQ,CAACyI,aAAa,CAACC,MAAM,CAAC,CAAC;IACzD,MAAM,IAAA5D,qBAAS,EAAC0D,YAAY,EAAGG,IAAI,IAAKA,IAAI,CAAC,IAAI,CAAC1I,UAAU,EAAE8B,UAAU,EAAE,IAAI,CAAC3B,MAAM,CAAC,CAAC;EACzF;EAEA,MAAcsG,aAAaA,CAACvD,IAAW,EAAE;IACvC,IAAIA,IAAI,EAAE;MACR,MAAM;QAAEyF;MAAQ,CAAC,GAAG,IAAI,CAACxI,MAAM;MAC/B,MAAMyI,MAAM,GAAGD,OAAO,GAAG,KAAKA,OAAO,GAAG,GAAG,EAAE;MAC7C,MAAME,WAAW,GAAG,MAAM,IAAI,CAACpI,WAAW,CAACqI,KAAK,CAACC,iBAAiB,CAAC7F,IAAI,EAAE,OAAO0F,MAAM,EAAE,CAAC;MACzF,IAAI,CAACnI,WAAW,CAACiG,OAAO,CAACsC,GAAG,CAACH,WAAW,CAAC;IAC3C;EACF;EAEA,MAAc9E,KAAKA,CAACoC,iBAA8B,EAAEvC,iBAA2B,EAAE;IAC/E,IAAI,CAAC,IAAI,CAACzD,MAAM,CAAC4D,KAAK,EAAE;MACtB;IACF;IACA,MAAM;MACJkF,0BAA0B;MAC1BC,iBAAiB;MACjBvG,MAAM;MACNwG,qBAAqB;MACrBC,SAAS;MACTC,2BAA2B;MAC3BC,qBAAqB;MACrBC,8BAA8B;MAC9BC,SAAS;MACTC;IACF,CAAC,GAAG,IAAI,CAACtJ,MAAM;IACf,MAAMuJ,SAAoB,GAAG;MAC3BT,0BAA0B;MAC1BU,YAAY,EAAE,IAAI;MAClBC,WAAW,EAAEV,iBAAiB;MAC9BvG,MAAM;MACNwG,qBAAqB;MACrBM;IACF,CAAC;IACD,MAAMI,eAAe,GAAGT,SAAS,GAAGA,SAAS,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC3I,GAAG,CAAEtC,CAAC,IAAKA,CAAC,CAACkL,IAAI,CAAC,CAAC,CAAC,GAAGlJ,SAAS;IACzF,MAAMmJ,WAAW,GAAG,CAAC,IAAI,CAAC5J,SAAS,CAAC,CAAC;IACrC,MAAM6J,cAAc,GAAG;MAAEZ,2BAA2B;MAAEW,WAAW;MAAET;IAA+B,CAAC;IACnG,MAAMW,cAAc,GAAG;MAAEZ,qBAAqB;MAAEE,SAAS;MAAEJ,SAAS,EAAES,eAAe;MAAEJ;IAAM,CAAC;IAE9F,MAAMU,iBAAiB,GAAGhE,iBAAiB,CAACvE,MAAM,CAAER,CAAC,IAAK,CAACA,CAAC,CAACgJ,SAAS,CAAC,CAAC,CAAC;IACzE,IAAID,iBAAiB,CAACnI,MAAM,EAAE;MAC5B,MAAMqI,uBAA4C,GAAGF,iBAAiB,CAAChJ,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACiF,KAAK,CAACC,SAAS,CAAC;MACpG,MAAM,IAAI,CAACjG,KAAK,CAACiK,2BAA2B,CAACD,uBAAuB,CAAC;MACrE,MAAM;QAAEE;MAAe,CAAC,GAAG,MAAM,IAAI,CAACjK,OAAO,CAACkK,WAAW,CACvDL,iBAAiB,EACjBT,SAAS,EACTO,cAAc,EACdC,cACF,CAAC;MACD,MAAMO,WAAW,GAAG,IAAI,CAACnK,OAAO,CAACoK,kCAAkC,CAACH,cAAc,CAAC;MAEnF,IAAI,CAACxK,QAAQ,CAAC4K,4BAA4B,CAACN,uBAAuB,EAAEI,WAAW,CAAC;MAChF,MAAMG,qCAAqC,GAAG,IAAI,CAAC7K,QAAQ,CAAC8K,qBAAqB,CAACR,uBAAuB,CAAC;MAC1GzG,iBAAiB,CAAC+D,IAAI,CAAC,GAAGmD,KAAK,CAACC,IAAI,CAACH,qCAAqC,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC;MAEnFC,wCAAwC,CAACL,qCAAqC,EAAE,IAAI,CAACvI,kBAAkB,CAAC;MACxG,IAAI,CAACmC,cAAc,CAAC6F,uBAAuB,EAAE5F,qBAAW,CAACyG,OAAO,CAAC;MACjE,MAAM,IAAArG,qBAAS,EAACsF,iBAAiB,EAAGgB,IAAI,IAAK,IAAI,CAACpL,QAAQ,CAACqL,UAAU,CAACD,IAAI,CAAC,CAAC;MAC5E,IAAIhC,qBAAqB,EAAE,MAAMkC,gBAAgB,CAAC,IAAI,CAAChL,KAAK,EAAE8I,qBAAqB,CAAC;IACtF;EACF;EAEA,MAAc1G,qBAAqBA,CAAA,EAAG;IACpC;IACA;IACA;IACA;IACA;IACA,MAAM;MAAEyB,UAAU;MAAEoH,mBAAmB;MAAE3I;IAAO,CAAC,GAAG,IAAI,CAACxC,MAAM;IAC/D,IAAImL,mBAAmB,IAAI,CAACpH,UAAU,EAAE,IAAI,CAAC/D,MAAM,CAACgE,YAAY,GAAG,IAAI;IACvE,IAAI,CAACmH,mBAAmB,IAAI,CAAC3I,MAAM,EAAE;MACnC,MAAM4I,qBAAqB,CAAC,IAAI,CAAClJ,kBAAkB,EAAE,IAAI,CAAC5B,WAAW,CAAC;IACxE;EACF;EAEA,MAAc+B,eAAeA,CAACxB,QAAyB,EAAEc,UAA2B,EAAE;IACpF,MAAM0J,yBAAyB,GAAG,KAAIC,iDAA0B,EAACzK,QAAQ,EAAEc,UAAU,CAAC;IACtF,MAAM;MAAE4J,MAAM;MAAE/C,OAAO;MAAEjD;IAAe,CAAC,GAAG,IAAI,CAACvF,MAAM;IACvD,IAAIuL,MAAM,EAAE,OAAOF,yBAAyB,CAACG,qBAAqB,CAAC,IAAI,CAAClL,WAAW,CAACmL,GAAG,EAAEF,MAAM,CAAC;IAChG,IAAIhG,cAAc,EAAE,OAAOA,cAAc,CAACvE,GAAG,CAAEtC,CAAC,KAAM;MAAEwC,EAAE,EAAExC,CAAC,CAAC+G,WAAW;MAAEiG,GAAG,EAAEhN,CAAC,CAAC8J,OAAO,IAAIA;IAAQ,CAAC,CAAC,CAAC;IACxG,OAAO,EAAE;EACX;EAEA,MAAcrG,iBAAiBA,CAACtB,QAAyB,EAAEc,UAA2B,EAAE;IACtF,MAAM;MAAEgK;IAAa,CAAC,GAAG,IAAI,CAAC3L,MAAM;IACpC,IAAI,CAAC2L,YAAY,EAAE;IAEnB,MAAMzJ,kBAAkB,GAAGpB,8BAAe,CAACC,SAAS,CAAC,CAAC,GAAGF,QAAQ,EAAE,GAAGc,UAAU,CAAC,CAAC;IAClF,MAAMiK,iBAAiB,GAAG,KAAIC,sCAAiB,EAAC3J,kBAAkB,CAAC;IACnE,MAAM4J,eAAe,GAAG,MAAMF,iBAAiB,CAACzJ,iBAAiB,CAACwJ,YAAY,CAAC;IAC/E,IAAI,CAAC3L,MAAM,CAACuF,cAAc,GAAGuG,eAAe;EAC9C;EAEQlL,iBAAiBA,CAAA,EAAwB;IAC/C,MAAMmL,wBAAwB,GAAG,CAAC,CAAC;IACnC;IACA;IACA,IAAI,CAACjM,kBAAkB,CAAC+H,OAAO,CAAER,iBAAiB,IAAK;MACrD,MAAM2E,iBAAiB,GAAG3E,iBAAiB,CAACnG,EAAE,CAAC+K,QAAQ,CAAC,CAAC;MACzD;MACAF,wBAAwB,CAACC,iBAAiB,CAAC,GAAG3E,iBAAiB;IACjE,CAAC,CAAC;IACF,OAAOzI,MAAM,CAAC0J,MAAM,CAACyD,wBAAwB,CAAC,CAAC,CAAC;EAClD;EAEA,MAAc3K,cAAcA,CAACP,QAAyB,EAA4B;IAChF,IAAI,IAAI,CAACb,MAAM,CAACkM,WAAW,EAAE,OAAO,EAAE;IACtC,IAAI,CAAC,IAAI,CAACjM,SAAS,EAAE,OAAO,IAAI,CAACkM,0BAA0B,CAACtL,QAAQ,CAAC;IACrE;IACA;IACA,MAAMuL,mBAAmB,GAAGvL,QAAQ,CAACY,MAAM,CAAEP,EAAE,IAAKA,EAAE,CAACmL,UAAU,CAAC,CAAC,CAAC;IACpE,MAAMC,wBAAwB,GAAG,MAAM,IAAI,CAACrM,SAAS,CAACsM,cAAc,CAClEzL,8BAAe,CAACC,SAAS,CAACqL,mBAAmB,CAC/C,CAAC;IACD,MAAMI,SAAS,GAAG,IAAI,CAACvM,SAAS,EAAEwM,aAAa,CAAC,CAAC;IACjD,OAAOD,SAAS,GACZF,wBAAwB,CAAC7K,MAAM,CAAEH,WAAW,IAAK,CAACkL,SAAS,CAACE,iBAAiB,CAACpL,WAAW,CAACC,SAAS,CAACL,EAAE,CAAC,CAAC,GACxGoL,wBAAwB;EAC9B;EAEA,MAAcH,0BAA0BA,CAACtL,QAAyB,EAA4B;IAC5F,MAAMkC,IAAI,GAAG,MAAM,IAAI,CAACzC,WAAW,CAAC0C,oBAAoB,CAAC,CAAC;IAC1D,IAAI,CAACD,IAAI,EAAE,OAAO,EAAE;IACpB,MAAM4J,WAAW,GAAG5J,IAAI,CAAC6J,cAAc,CAAC,CAAC;IACzC,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAAC3M,KAAK,CAAC4M,WAAW,CAACH,WAAW,CAAC;IAC1D,MAAMI,aAAa,GAAGlM,QAAQ,CAACmM,MAAM,CACnC,CAACC,GAAG,EAAE/L,EAAE,KAAK;MACX,MAAMgM,UAAU,GAAGL,QAAQ,CAACM,YAAY,CAACjM,EAAE,CAAC+K,QAAQ,CAAC,CAAC,CAAC;MACvD,MAAMmB,iBAAiB,GAAGF,UAAU,CAAClM,GAAG,CAAEqM,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC;MACvD,MAAMC,4BAA4B,GAAGH,iBAAiB,CAAC3L,MAAM,CAAE+L,CAAC,IAAKb,WAAW,CAACjL,GAAG,CAAC8L,CAAC,CAAC,CAAC;MACxF,IAAI,CAACD,4BAA4B,CAAC1L,MAAM,EAAE,OAAOoL,GAAG;MACpDA,GAAG,CAAC/L,EAAE,CAAC+K,QAAQ,CAAC,CAAC,CAAC,GAAGnL,8BAAe,CAACC,SAAS,CAACwM,4BAA4B,CAAC;MAC5E,OAAON,GAAG;IACZ,CAAC,EACD,CAAC,CACH,CAAC;IACD,IAAIrO,MAAM,CAACiM,IAAI,CAACkC,aAAa,CAAC,CAAClL,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;IACtD,MAAM4L,gBAAgB,GAAG3M,8BAAe,CAAC4M,aAAa,CAAC9O,MAAM,CAAC0J,MAAM,CAACyE,aAAa,CAAC,CAACY,IAAI,CAAC,CAAC,CAAC;IAC3F,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACtN,WAAW,CAACuN,yBAAyB,CAACJ,gBAAgB,CAAC;IACxF,OAAOG,aAAa,CAAC5M,GAAG,CAAE8M,SAAS,IAAK;MACtC,MAAMC,cAAc,GAAGnP,MAAM,CAACiM,IAAI,CAACkC,aAAa,CAAC,CAACtL,MAAM,CAAEP,EAAE,IAAK6L,aAAa,CAAC7L,EAAE,CAAC,CAACQ,GAAG,CAACoM,SAAS,CAAC5M,EAAE,CAAC,CAAC;MACrG,MAAM8M,WAAW,GAAGlN,8BAAe,CAACmN,eAAe,CAACF,cAAc,CAAC;MACnE,OAAO;QAAExM,SAAS,EAAEuM,SAAS;QAAEE;MAAY,CAAC;IAC9C,CAAC,CAAC;EACJ;EAEA,MAActL,iBAAiBA,CAACf,UAA2B,EAAiB;IAC1E,MAAM;MAAEuM,WAAW;MAAE3I,cAAc;MAAE4I,WAAW;MAAE3H,OAAO;MAAErD,IAAI;MAAEiL,YAAY;MAAE9K;IAAa,CAAC,GAAG,IAAI,CAACtD,MAAM;IAC3G,MAAMqO,gBAAgB,GAAGH,WAAW,GAChC,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAACI,QAAQ,CAACJ,WAAW,CAAC,GACxE,KAAK;IACT,MAAMK,OAAO,CAACC,GAAG,CACf,IAAI,CAACtM,kBAAkB,CAAClB,GAAG,CAAC,MAAOyN,cAAc,IAAK;MACpD,MAAMC,SAAS,GAAG/M,UAAU,CAAC+K,iBAAiB,CAAC+B,cAAc,CAACvN,EAAE,CAAC;MACjE,MAAMgE,cAAc,GAAG,MAAM,IAAI,CAAC5E,WAAW,CAACqO,OAAO,CAACC,kBAAkB,CAACH,cAAc,CAAC;MACxF,MAAMI,WAAW,GAAGJ,cAAc,CAAClH,YAAY,EAAEsH,WAAW,EAAEjJ,OAAO;MACrE,MAAMkJ,aAAa,GAAGA,CAAA,KAAc;QAClC,IAAIvJ,cAAc,EAAE;UAClB,MAAMD,OAAO,GAAGC,cAAc,CAACC,IAAI,CAAE9G,CAAC,IAAKA,CAAC,CAAC+G,WAAW,CAACC,qBAAqB,CAAC+I,cAAc,CAACvN,EAAE,CAAC,CAAC;UAClG,IAAI,CAACoE,OAAO,EAAE,MAAM,IAAIlC,KAAK,CAAC,2BAA2BqL,cAAc,CAACvN,EAAE,CAAC6N,sBAAsB,CAAC,CAAC,EAAE,CAAC;UACtG,IAAI,CAACzJ,OAAO,CAAC0J,YAAY,EACvB,MAAM,IAAI5L,KAAK,CAAC,sCAAsCqL,cAAc,CAACvN,EAAE,CAAC6N,sBAAsB,CAAC,CAAC,EAAE,CAAC;UACrG,MAAME,yBAAyB,GAAG,IAAAC,0CAA4B,EAAC5J,OAAO,CAAC0J,YAAY,CAAC;UACpF,OAAO9J,cAAc,CAACiK,eAAe,CACnCF,yBAAyB,CAACf,WAAW,EACrCe,yBAAyB,CAACb,YAAY,EACtCD,WAAW,EACX7I,OAAO,CAAC8J,YACV,CAAC;QACH;QACA,IAAIP,WAAW,IAAIrI,OAAO,EAAE;UAC1B,MAAMyI,yBAAyB,GAAG,IAAAC,0CAA4B,EAACL,WAAW,CAAC;UAC3E,OAAO3J,cAAc,CAACiK,eAAe,CACnCF,yBAAyB,CAACf,WAAW,EACrCe,yBAAyB,CAACb,YAAY,EACtC1N,SAAS,EACT+N,cAAc,CAAClH,YAAY,EAAEsH,WAAW,EAAEQ,UAC5C,CAAC;QACH;QACA,IAAIX,SAAS,EAAE;UACb;UACA,IAAIL,gBAAgB,EAAE;YACpB,OAAOlL,IAAI,GACN+K,WAAW,GACZhJ,cAAc,CAACiK,eAAe,CAACjB,WAAW,EAAEE,YAAY,EAAED,WAAW,EAAE7K,YAAY,CAAC;UAC1F;UACA,OAAOH,IAAI,GAAG,OAAO,GAAG+B,cAAc,CAACiK,eAAe,CAAC,OAAO,EAAEzO,SAAS,EAAEyN,WAAW,EAAE7K,YAAY,CAAC;QACvG;QACA,MAAMgM,kBAAkB,GAAG,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAACxP,GAAG,EAAE0O,cAAc,EAAEvJ,cAAc,CAAC;QAC/F,OAAO/B,IAAI,GACPmM,kBAAkB,IAAIlB,YAAY,IAAKF,WAAsB,GAC7DoB,kBAAkB,IAChBpK,cAAc,CAACiK,eAAe,CAACjB,WAAW,EAAEE,YAAY,EAAED,WAAW,EAAE7K,YAAY,CAAC;MAC5F,CAAC;MACD,MAAMkM,UAAU,GAAGV,aAAa,CAAC,CAAC;MAClCL,cAAc,CAACgB,aAAa,CAACD,UAAU,CAAC;IAC1C,CAAC,CACH,CAAC;EACH;EAEQjN,gBAAgBA,CAAA,EAAG;IACzB,IAAI,CAACL,kBAAkB,CAAC2F,OAAO,CAAEtG,SAAS,IAAK;MAC7CA,SAAS,CAACmO,MAAM,GAAGC,yBAAc;IACnC,CAAC,CAAC;EACJ;EAEQlN,SAASA,CAAA,EAAS;IACxB,IAAI,CAACP,kBAAkB,CAAC2F,OAAO,CAAE4G,cAAc,IAAK;MAClDA,cAAc,CAACgB,aAAa,CAAC,IAAAG,qBAAI,EAAC,IAAAC,UAAE,EAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;EACJ;EAEQN,qBAAqBA,CAC3BO,UAA2B,EAC3BvO,SAA4B,EAC5B2D,cAA8B,EACV;IACpB,MAAM6K,SAAS,GAAGD,UAAU,CAACE,oBAAoB,CAACzO,SAAS,CAACL,EAAE,CAAC;IAC/D,IAAI6O,SAAS,IAAIA,SAAS,CAAC1D,UAAU,CAAC,CAAC,EAAE;MACvC,MAAM4C,yBAAyB,GAAG,IAAAC,0CAA4B,EAACa,SAAS,CAACnK,OAAiB,CAAC;MAC3F,OAAOV,cAAc,CAACiK,eAAe,CACnCF,yBAAyB,CAACf,WAAW,EACrCe,yBAAyB,CAACb,YAC5B,CAAC;IACH;IACA,OAAO1N,SAAS;EAClB;EAEQ2D,cAAcA,CAACxE,UAA+B,EAAEoQ,WAAwB,EAAE;IAChFpQ,UAAU,CAACgI,OAAO,CAAEtG,SAAS,IAAK;MAChCA,SAAS,CAAC0O,WAAW,GAAG1O,SAAS,CAAC2O,SAAS,CAAC,CAAC,GAAG5L,qBAAW,CAAC6L,OAAO,GAAGF,WAAW;IACnF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;EACU7L,gBAAgBA,CAAA,EAAG;IACzB,IAAI,CAAClC,kBAAkB,CAAC2F,OAAO,CAAEtG,SAAS,IAAK;MAC7CA,SAAS,CAAC6O,UAAU,GAAG7O,SAAS,CAAC6O,UAAU,CAACC,KAAK,CAAC,CAAC;MACnD,MAAMC,eAAe,GAAG/O,SAAS,CAAC6O,UAAU,CAACG,iBAAiB,CAACC,oBAAU,CAACrQ,OAAO,CAAC;MAClF,IAAImQ,eAAe,EAAEA,eAAe,CAACtT,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC,CAAC;EACJ;EAEQ2F,0BAA0BA,CAAA,EAAG;IACnC;IACA;IACA;IACA;IACA,MAAMhC,eAAe,GAAG,IAAI,CAACuB,kBAAkB,CAACT,MAAM,CAAER,CAAC,IAAK,CAACA,CAAC,CAACiP,SAAS,CAAC,CAAC,CAAC;IAC7E,MAAMO,uBAAuB,GAAIvP,EAAe,IAAyB;MACvE,MAAMwP,eAAe,GAAG/P,eAAe,CAAC6E,IAAI,CAAEjE,SAAS,IAAKA,SAAS,CAACL,EAAE,CAACwE,qBAAqB,CAACxE,EAAE,CAAC,CAAC;MACnG,OAAOwP,eAAe,GAAGxP,EAAE,CAACyP,aAAa,CAACD,eAAe,CAAC9K,OAAO,CAAC,GAAG,IAAI;IAC3E,CAAC;IACD,MAAMgL,uBAAuB,GAAIrP,SAA4B,IAAW;MACtEA,SAAS,CAAC6O,UAAU,CAACvI,OAAO,CAAEgJ,GAAG,IAAK;QACpC,IAAIA,GAAG,CAACC,WAAW,EAAE;UACnB,MAAMC,QAAQ,GAAGN,uBAAuB,CAACI,GAAG,CAACC,WAAW,CAAC;UACzD,IAAIC,QAAQ,EAAEF,GAAG,CAACC,WAAW,GAAGC,QAAQ;QAC1C;MACF,CAAC,CAAC;IACJ,CAAC;IACD;IACA;IACA;IACA,MAAMC,sBAAsB,GAAGA,CAACzP,SAA4B,EAAE0P,oBAA2C,KAAK;MAC5G,MAAMC,KAAK,GAAG3P,SAAS,CAAC6O,UAAU,CAACG,iBAAiB,CAACY,8CAAwB,CAACjQ,EAAE,CAAC;MACjF,IAAI,CAACgQ,KAAK,EAAE;QACV,OAAO3P,SAAS;MAClB;MACA,MAAM6P,YAAY,GAAG,IAAAC,aAAG,EAACH,KAAK,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC;MAC7DE,YAAY,CAACvJ,OAAO,CAAEyJ,GAAG,IAAK;QAC5B,IAAIA,GAAG,CAACC,MAAM,KAAKC,wCAAkB,EAAE;UACrC;QACF;QACA;QACA;QACA;QACA,MAAMC,KAAK,GACTH,GAAG,CAAC7L,WAAW,YAAYiM,0BAAW,GAAGJ,GAAG,CAAC7L,WAAW,GAAGiM,0BAAW,CAACC,UAAU,CAACL,GAAG,CAAC7L,WAAW,CAAC;QACpG,MAAMsL,QAAQ,GAAGN,uBAAuB,CAACgB,KAAK,CAAC;QAC/CH,GAAG,CAAC7L,WAAW,GAAG,CAACsL,QAAQ,IAAIU,KAAK,EAAEG,SAAS,CAAC,CAAC;QACjDN,GAAG,CAACpQ,EAAE,GAAG,CAAC6P,QAAQ,IAAIU,KAAK,EAAExF,QAAQ,CAAC,CAAC;QACvCqF,GAAG,CAAC1L,OAAO,GAAG,CAACmL,QAAQ,IAAIU,KAAK,EAAE7L,OAAO;QACzC;QACA;QACA;QACA,IAAImL,QAAQ,KAAKE,oBAAoB,KAAK,GAAG,IAAIA,oBAAoB,KAAK,GAAG,CAAC,IAAI,CAAC,IAAAY,0BAAa,EAACP,GAAG,CAAC1L,OAAO,CAAC,EAAE;UAC7G0L,GAAG,CAACQ,YAAY,GAAG,GAAGb,oBAAoB,GAAGK,GAAG,CAAC1L,OAAO,EAAE;QAC5D;MACF,CAAC,CAAC;MACF,OAAOrE,SAAS;IAClB,CAAC;IAEDZ,eAAe,CAACkH,OAAO,CAAEkK,iBAAiB,IAAK;MAC7C,MAAMd,oBAAoB,GACxB,IAAI,CAAC7Q,kBAAkB,CAAC4R,2CAA2C,CAACD,iBAAiB,CAAC;MACxFA,iBAAiB,CAACE,kBAAkB,CAAC,CAAC,CAACpK,OAAO,CAAEqK,UAAU,IAAK;QAC7D,MAAMnB,QAAQ,GAAGN,uBAAuB,CAACyB,UAAU,CAAChR,EAAE,CAAC;QACvD,IAAI,CAAC6P,QAAQ,EAAE;QACfmB,UAAU,CAAChR,EAAE,GAAG6P,QAAQ;QACxB;QACA;QACA;QACA,IAAI,CAACE,oBAAoB,KAAK,GAAG,IAAIA,oBAAoB,KAAK,GAAG,KAAK,CAAC,IAAAY,0BAAa,EAACd,QAAQ,CAACnL,OAAO,CAAC,EAAE;UACtGsM,UAAU,CAACJ,YAAY,GAAG,GAAGb,oBAAoB,GAAGF,QAAQ,CAACnL,OAAO,EAAE;QACxE;MACF,CAAC,CAAC;MACFgL,uBAAuB,CAACmB,iBAAiB,CAAC;MAC1CA,iBAAiB,GAAGf,sBAAsB,CAACe,iBAAiB,CAAC;IAC/D,CAAC,CAAC;EACJ;EAEA,MAAcnP,kBAAkBA,CAC9B/C,UAA+B,EAC/BsS,YAAiC,EACjCC,mBAA0C,EAC1C;IACA,IAAI;MAAE5J;IAAQ,CAAC,GAAG,IAAI,CAACxI,MAAM;IAC7B,MAAM;MAAEwG,OAAO;MAAE6L;IAAwB,CAAC,GAAG,IAAI,CAACrS,MAAM;IACxD;IACA,IAAIwI,OAAO,KAAK,IAAI,EAAE;MACpBA,OAAO,GAAG,EAAE;IACd;IACA,MAAM8J,QAAQ,GAAG,MAAM,IAAAC,6BAAW,EAAC,CAAC;IACpC,MAAMC,MAAM,GAAIjR,SAA4B,IAAU;MACpD,MAAMsN,WAAW,GAAGrI,OAAO,GAAGjF,SAAS,CAACgG,YAAY,EAAEsH,WAAW,GAAG,IAAI;MACxE,MAAM4D,aAAa,GAAGL,mBAAmB,CAAC5M,IAAI,CAAEkN,IAAI,IAAKA,IAAI,CAACxR,EAAE,CAACwE,qBAAqB,CAACnE,SAAS,CAACL,EAAE,CAAC,CAAC,EAAEwK,GAAG;MAC1G,IAAI2G,uBAAuB,EAAE;QAC3B,MAAMM,UAAU,GAAGpR,SAAS,CAACqR,GAAG;QAChC,IAAI,CAACD,UAAU,EAAE;UACf,MAAM,IAAIvP,KAAK,CACb,6GACF,CAAC;QACH;QACAuP,UAAU,CAACnK,OAAO,GAAGiK,aAAa,IAAIjK,OAAO,IAAImK,UAAU,CAACnK,OAAO;QACnEmK,UAAU,CAACE,IAAI,GAAGP,QAAQ,CAACO,IAAI;QAC/B,OAAOF,UAAU;MACnB;MAEA,OAAO;QACLG,QAAQ,EAAEjE,WAAW,EAAEiE,QAAQ,IAAIR,QAAQ,CAACQ,QAAQ;QACpDC,KAAK,EAAElE,WAAW,EAAEkE,KAAK,IAAIT,QAAQ,CAACS,KAAK;QAC3CvK,OAAO,EAAEqG,WAAW,EAAErG,OAAO,IAAIiK,aAAa,IAAIjK,OAAO;QACzDqK,IAAI,EAAEP,QAAQ,CAACO;MACjB,CAAC;IACH,CAAC;IAEDhT,UAAU,CAACgI,OAAO,CAAEtG,SAAS,IAAK;MAChCA,SAAS,CAACqR,GAAG,GAAGJ,MAAM,CAACjR,SAAS,CAAC;IACnC,CAAC,CAAC;IACF4Q,YAAY,CAACtK,OAAO,CAAEmL,WAAW,IAAK;MACpCA,WAAW,CAACJ,GAAG,GAAGJ,MAAM,CAACQ,WAAW,CAAC;MACrC,MAAMC,UAAU,GAAG,4BAA4B;MAC/C,IAAIzK,OAAO,EAAE;QACXwK,WAAW,CAACJ,GAAG,CAACpK,OAAO,IAAI,KAAKyK,UAAU,GAAG;MAC/C,CAAC,MAAM,IAAI,CAACD,WAAW,CAACJ,GAAG,CAACpK,OAAO,EAAE;QACnCwK,WAAW,CAACJ,GAAG,CAACpK,OAAO,GAAGyK,UAAU;MACtC;IACF,CAAC,CAAC;EACJ;AACF;AAACC,OAAA,CAAAxT,YAAA,GAAAA,YAAA;AAED,eAAe0L,qBAAqBA,CAAClJ,kBAAuC,EAAE5B,WAAkB,EAAE;EAChG,MAAM6S,eAAe,GAAGjR,kBAAkB,CAAClB,GAAG,CAAC,MAAOO,SAAS,IAAK;IAClE,IAAIA,SAAS,CAAC6R,kBAAkB,EAAE;MAChC;MACA,MAAMlO,cAAc,GAAG,MAAM5E,WAAW,CAAC+S,wBAAwB,CAAC9R,SAAS,CAACL,EAAE,CAAC;MAC/E,IAAI,CAACgE,cAAc,EAAE,MAAM,KAAIoO,oBAAQ,EAAC,aAAa/R,SAAS,CAACL,EAAE,6BAA6B,CAAC;MAC/F,IAAI,CAACgE,cAAc,CAACqO,YAAY,CAAC,CAAC,CAAC1R,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC;MACxD,MAAM2R,MAAM,GAAGtO,cAAc,CAACuO,kCAAkC,CAAC,CAAC;MAClE,IAAID,MAAM,KAAKjS,SAAS,CAACqE,OAAO,EAAE;QAChC,OAAO;UACLH,WAAW,EAAElE,SAAS,CAACL,EAAE,CAAC6N,sBAAsB,CAAC,CAAC;UAClD2E,cAAc,EAAEnS,SAAS,CAACqE,OAAQ;UAClC+N,aAAa,EAAEH;QACjB,CAAC;MACH;IACF;IACA,OAAO,IAAI;EACb,CAAC,CAAC;EACF,MAAMI,cAAc,GAAG,MAAMrF,OAAO,CAACC,GAAG,CAAC2E,eAAe,CAAC;EACzD,MAAMU,0BAA0B,GAAG,IAAAC,iBAAO,EAACF,cAAc,CAAC;EAC1D,IAAIC,0BAA0B,CAAChS,MAAM,EAAE;IACrC,MAAM,KAAIkS,4BAAiB,EAACF,0BAA0B,CAAC;EACzD;AACF;AAEA,SAAS/I,wCAAwCA,CAC/CL,qCAA4E,EAC5E3K,kBAAuC,EACvC;EACA,MAAMkU,kCAAkC,GAAGC,iCAAiC,CAACC,IAAI,CAC/E,IAAI,EACJzJ,qCACF,CAAC;EACD,KAAK,MAAMpD,iBAAiB,IAAIvH,kBAAkB,EAAE;IAClD,IAAIuH,iBAAiB,CAAC8M,iBAAiB,EAAE;MACvC9M,iBAAiB,CAAC8M,iBAAiB,GAAGH,kCAAkC,CAAC3M,iBAAiB,CAAC8M,iBAAiB,CAAC;IAC/G;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASF,iCAAiCA,CACxCxJ,qCAA4E,EAC5E0J,iBAAoC,EACjB;EACnB,MAAMC,gBAA0F,GAAG,EAAE;EACrG,KAAK,MAAM,CAACC,QAAQ,EAAE;IAAEC,SAAS;IAAEC;EAAsB,CAAC,CAAC,IAAI9J,qCAAqC,CAAC+J,OAAO,CAAC,CAAC,EAAE;IAC9G,IAAIF,SAAS,IAAI,IAAI,EAAE;IACvB,MAAMG,KAAK,GAAGJ,QAAQ,CAACK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,MAAMC,IAAI,GAAGN,QAAQ,CAACO,SAAS,CAAC,CAAC,EAAEH,KAAK,CAAC;IACzC,MAAM7O,OAAO,GAAGyO,QAAQ,CAACO,SAAS,CAACH,KAAK,GAAG,CAAC,CAAC;IAC7C,MAAMI,UAAU,GACdV,iBAAiB,CAACW,QAAQ,CAACzD,GAAG,CAAC,GAAGsD,IAAI,IAAIJ,qBAAqB,EAAE,CAAC,IAClEJ,iBAAiB,CAACW,QAAQ,CAACzD,GAAG,CAAC,GAAGsD,IAAI,IAAI/O,OAAO,EAAE,CAAC;IACtD,IAAIiP,UAAU,EAAE;MACdA,UAAU,CAACE,UAAU,GAAG;QAAET;MAAU,CAAC;MACrCF,gBAAgB,CAAC5M,IAAI,CAAC;QAAEmN,IAAI;QAAE/O,OAAO;QAAE2O;MAAsB,CAAC,CAAC;IACjE;EACF;EACA,OAAOS,sBAAsB,CAACb,iBAAiB,EAAEC,gBAAgB,CAAC;AACpE;AAEA,eAAe/N,iCAAiCA,CAC9C4O,KAA0B,EAC1BhV,SAAqB,EACiB;EACtC,IAAI,CAACA,SAAS,EAAE;IACd,OAAOS,SAAS;EAClB;EACA,MAAMwU,YAAY,GAAGD,KAAK,CAACxT,MAAM,CAAEuJ,IAAI,IAAKA,IAAI,CAACkF,SAAS,CAAC,CAAC,CAAC;EAC7D,IAAI,CAACgF,YAAY,CAACrT,MAAM,EAAE,OAAOnB,SAAS;EAC1C,MAAMyU,kBAAkB,GAAGrU,8BAAe,CAACC,SAAS,CAACmU,YAAY,CAAClU,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,CAAC,CAAC;EACnF,MAAM,IAAAkU,+BAAqB,EAACnV,SAAS,CAACI,QAAQ,EAAE8U,kBAAkB,CAAC;EACnE,MAAMlV,SAAS,CAACI,QAAQ,CAACgV,eAAe,CAACF,kBAAkB,CAAC;EAE5D,OAAOA,kBAAkB;AAC3B;AAEA,eAAe1O,+BAA+BA,CAC5C5D,aAA4B,EAC5BhD,UAA+B,EAC/BI,SAAqB,EACrB;EACA,IAAI,CAACA,SAAS,IAAI,CAAC4C,aAAa,CAAChB,MAAM,EAAE;IACvC;EACF;EACA,MAAMyT,eAAe,GAAGrV,SAAS,CAACsV,oBAAoB,CAAC,CAAC;EAExD1S,aAAa,CAACgF,OAAO,CAAE2N,MAAM,IAAK;IAChC,MAAMC,YAAY,GAAG5V,UAAU,CAAC2F,IAAI,CAAEvE,CAAC,IAAKA,CAAC,CAACC,EAAE,CAACwE,qBAAqB,CAAC8P,MAAM,CAAC,CAAC;IAC/E,IAAIC,YAAY,EAAE;MAChBH,eAAe,CAACI,cAAc,CAACF,MAAM,CAACzG,sBAAsB,CAAC,CAAC,CAAC;IACjE;EACF,CAAC,CAAC;EACF,MAAM4G,iBAAiB,GAAG1V,SAAS,GAAG,MAAMA,SAAS,CAAC6C,yBAAyB,CAAC,CAAC,GAAG,EAAE;EACtF,IAAIwS,eAAe,CAACM,WAAW,CAAC,CAAC,IAAID,iBAAiB,CAAC9T,MAAM,EAAE;IAC7D;IACA;IACA,MAAMyT,eAAe,CAACvP,KAAK,CAAC,CAAC;EAC/B,CAAC,MAAM;IACL,MAAMuP,eAAe,CAACO,MAAM,CAAC,CAAC;EAChC;AACF;AASA,SAASC,iBAAiBA,CAACtR,WAAmB,EAAEU,cAA8B,EAAEhE,EAAe,EAAE;EAC/F,IAAIsD,WAAW,CAACuR,SAAS,CAAC,CAAC,EAAE;IAC3B,OAAO,IAAI;EACb;EACA,IAAI,CAAC7U,EAAE,CAACmL,UAAU,CAAC,CAAC,EAAE;IACpB;IACA,OAAO,IAAI;EACb;EACA,OAAOnH,cAAc,CAAC8Q,OAAO,CAAC,CAAC;AACjC;AAEO,eAAe5Q,cAAcA,CAClCnF,SAAoB,EACpBgD,YAA0B,EAC1BuB,WAAmB,EACnBU,cAA8B,EAC9B+Q,oBAA6B;AAAE;AAC/BC,KAAK,GAAG,IAAI,EACZ;EACA,MAAM7V,QAAQ,GAAGJ,SAAS,CAACI,QAAQ;EACnC,MAAM8V,QAAqB,GAAGjR,cAAc,CAACkR,iCAAiC,CAAC,CAAC;EAChF,MAAMlV,EAAE,GAAG+U,oBAAoB,GAAGE,QAAQ,CAACxF,aAAa,CAACsF,oBAAoB,CAAC,GAAGE,QAAQ;EACzF,MAAME,UAAU,GAAGhW,QAAQ,CAACiW,MAAM,CAACC,mBAAmB,CAACrV,EAAE,EAAE;IAAEsV,aAAa,EAAE;EAAK,CAAC,CAAC;EACnF,IAAI,CAACH,UAAU,IAAI,CAACH,KAAK,EAAE;IACzB;IACA,MAAMO,UAAU,GAAGxT,YAAY,CAACyT,QAAQ,CAACxV,EAAE,CAAC;IAC5C,IAAIuV,UAAU,EAAEE,MAAM,IAAIF,UAAU,CAACE,MAAM,CAACC,sBAAY,CAAC1V,EAAE,CAAC,EAAE;MAC5Db,QAAQ,CAACiW,MAAM,CAACO,oBAAoB,CAACJ,UAAU,CAACvV,EAAE,EAAEuV,UAAU,CAACK,kBAAkB,CAAC;IACpF;EACF;EACAzW,QAAQ,CAACiW,MAAM,CAACS,iBAAiB,CAAC7V,EAAE,EAAER,SAAS,EAAEA,SAAS,EAAE,IAAI,CAAC;EACjE,MAAMsW,eAAe,GAAGlB,iBAAiB,CAACtR,WAAW,EAAEU,cAAc,EAAEhE,EAAE,CAAC;EAC1E,IAAI,CAAC8V,eAAe,EAAE;IACpB3W,QAAQ,CAACiW,MAAM,CAACW,cAAc,CAAC/V,EAAE,EAAE,IAAI,CAAC;EAC1C;EACA,MAAMqG,YAAY,GAAGlH,QAAQ,CAACiW,MAAM,CAACY,YAAY,CAAChW,EAAE,CAAC;EACrD,MAAMsU,MAAM,GAAG,MAAMvV,SAAS,CAACkX,kBAAkB,CAACjW,EAAE,CAAC;EACrD;EACA,IAAIgV,KAAK,EAAE;IACT,MAAMkB,UAAU,GAAG7P,YAAY,CAAC8P,aAAa,CAAC,CAAC;IAC/C,MAAMV,MAAM,GAAGpP,YAAY,CAACoP,MAAM;IAClC1T,YAAY,CAACqU,kBAAkB,CAAC9B,MAAM,EAAEmB,MAAM,EAAES,UAAU,CAAC;IAC3D/W,QAAQ,CAACiW,MAAM,CAACiB,YAAY,CAACrW,EAAE,CAAC;IAChC,MAAMsW,IAAI,GAAGtS,cAAc,CAACuS,MAAM,CAACvW,EAAE,CAAC0E,OAAiB,CAAC;IACxD,IAAI,CAAC4R,IAAI,EAAE,MAAM,IAAIpU,KAAK,CAAC,uDAAuDlC,EAAE,CAAC+K,QAAQ,CAAC,CAAC,EAAE,CAAC;IAClGhM,SAAS,CAACC,KAAK,CAACI,WAAW,CAACwF,WAAW,CAAC4R,OAAO,CAACF,IAAI,EAAEvL,QAAQ,CAAC,CAAC,CAAC;EACnE,CAAC,MAAM,IAAI,CAAC1E,YAAY,CAACoP,MAAM,EAAE;IAC/BpP,YAAY,CAACoP,MAAM,GAAG1T,YAAY,CAAC0U,cAAc,CAACnC,MAAM,CAAC;EAC3D;EACAjO,YAAY,CAACqQ,gBAAgB,CAAC,CAAC;AACjC;AAEA,SAAS5C,sBAAsBA,CAC7B6C,KAAwB,EACxBzD,gBAA0F,EACvE;EACnB,IAAI5G,CAAC,GAAGqK,KAAK,CAACjG,SAAS,CAAC,CAAC;EACzB,KAAK,MAAM;IAAE+C,IAAI;IAAE/O,OAAO;IAAE2O;EAAsB,CAAC,IAAIH,gBAAgB,EAAE;IACvE,IAAIG,qBAAqB,EAAE;MACzB/G,CAAC,GAAGA,CAAC,CAACsK,UAAU,CAAC,GAAGnD,IAAI,IAAIJ,qBAAqB,GAAG,EAAE,GAAGI,IAAI,IAAI/O,OAAO,EAAE,CAAC;IAC7E;EACF;EACA,MAAMmS,wBAAwB,GAAGC,4BAAiB,CAACC,WAAW,CAACzK,CAAC,CAAC;EACjE;EACA,IAAIuK,wBAAwB,IAAI,IAAI,EAAE;IACpC,MAAM,KAAIzE,oBAAQ,EAAC,sEAAsE,CAAC;EAC5F;EACA,OAAOyE,wBAAwB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe7M,gBAAgBA,CAAChL,KAAgB,EAAEH,GAAkB,EAAE;EACpE,MAAM6S,GAAG,GAAG,MAAM,IAAAL,6BAAW,EAAC,CAAC;EAC/BK,GAAG,CAACpK,OAAO,GAAG,kBAAkB;EAChC,MAAM,IAAA0P,0BAAQ,EACZnY,GAAG,EACH,MAAOmB,EAAE,IAAK;IACZ,MAAMiX,UAAU,GAAG,MAAMjY,KAAK,CAACkY,uBAAuB,CAAClX,EAAE,CAAC;IAC1D,IAAI,CAACiX,UAAU,EAAE;IACjBA,UAAU,CAACE,MAAM,GAAG,IAAI;IACxBF,UAAU,CAACG,cAAc,CAAC1F,GAAG,CAAC;IAC9B1S,KAAK,CAACI,WAAW,CAACiG,OAAO,CAACsC,GAAG,CAACsP,UAAU,CAAC;EAC3C,CAAC,EACD;IAAEI,WAAW,EAAE;EAAG,CACpB,CAAC;AACH","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/snapping",
3
- "version": "1.0.767",
3
+ "version": "1.0.769",
4
4
  "homepage": "https://bit.cloud/teambit/component/snapping",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "snapping",
9
- "version": "1.0.767"
9
+ "version": "1.0.769"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphlib": "2.1.8",
@@ -48,18 +48,18 @@
48
48
  "@teambit/harmony.modules.get-basic-log": "0.0.80",
49
49
  "@teambit/toolbox.crypto.sha1": "0.0.10",
50
50
  "@teambit/workspace.modules.node-modules-linker": "0.0.308",
51
- "@teambit/graph": "1.0.767",
52
- "@teambit/objects": "0.0.274",
53
- "@teambit/scope": "1.0.767",
54
- "@teambit/component": "1.0.767",
55
- "@teambit/dependencies": "1.0.767",
56
- "@teambit/dependency-resolver": "1.0.767",
57
- "@teambit/remove": "1.0.767",
58
- "@teambit/workspace": "1.0.767",
59
- "@teambit/application": "1.0.767",
60
- "@teambit/builder": "1.0.767",
61
- "@teambit/export": "1.0.767",
62
- "@teambit/importer": "1.0.767"
51
+ "@teambit/graph": "1.0.769",
52
+ "@teambit/objects": "0.0.276",
53
+ "@teambit/scope": "1.0.769",
54
+ "@teambit/component": "1.0.769",
55
+ "@teambit/dependencies": "1.0.769",
56
+ "@teambit/dependency-resolver": "1.0.769",
57
+ "@teambit/remove": "1.0.769",
58
+ "@teambit/workspace": "1.0.769",
59
+ "@teambit/application": "1.0.769",
60
+ "@teambit/builder": "1.0.769",
61
+ "@teambit/export": "1.0.769",
62
+ "@teambit/importer": "1.0.769"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@types/graphlib": "2.1.7",
@@ -68,12 +68,12 @@
68
68
  "@types/semver": "7.5.8",
69
69
  "@types/uuid": "8.3.4",
70
70
  "@types/mocha": "9.1.0",
71
- "@teambit/workspace.testing.mock-workspace": "0.0.130",
72
- "@teambit/harmony.envs.core-aspect-env": "0.0.79",
73
- "@teambit/compiler": "1.0.767",
74
71
  "@teambit/component.testing.mock-components": "0.0.345",
75
72
  "@teambit/harmony.testing.load-aspect": "0.0.340",
76
- "@teambit/issues": "1.0.767"
73
+ "@teambit/workspace.testing.mock-workspace": "0.0.130",
74
+ "@teambit/harmony.envs.core-aspect-env": "0.0.79",
75
+ "@teambit/compiler": "1.0.769",
76
+ "@teambit/issues": "1.0.769"
77
77
  },
78
78
  "peerDependencies": {
79
79
  "chai": "5.2.1",