@teambit/remove 1.0.1032 → 1.0.1034

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.
@@ -55,19 +55,23 @@ export declare class RemoveMain {
55
55
  private markRemoveComps;
56
56
  deleteComps(componentsPattern: string, opts?: DeleteOpts): Promise<Component[]>;
57
57
  /**
58
- * out of the given deleted ids, return the package names of those that still have at least one dependent
59
- * in the workspace (excluding other components being deleted in the same operation).
58
+ * out of the given deleted ids, build workspace-policy entries pinning to the latest tagged version on main,
59
+ * for those that still have at least one dependent in the workspace (excluding other components being deleted
60
+ * in the same operation). the version is resolved locally from the scope (no network), so "bit delete" stays
61
+ * a fast, offline-capable, local operation.
62
+ * only a tagged (published) main version is used. a component with no tag on main (only snaps, or it only ever
63
+ * existed on the lane) is skipped - pinning a snap version would re-introduce the "No matching version" failure
64
+ * this feature is meant to prevent, since snaps aren't fetchable as a regular registry package.
60
65
  * envs are excluded on purpose: a deleted env surfaces as a "RemovedEnv" issue so the user can replace it
61
66
  * explicitly (bit env replace), and we don't want to silently pin it to its main version and suppress that
62
67
  * signal. only regular dependencies (e.g. a dependency of an env) need pinning so they install from main.
63
68
  */
64
- private getDeletedPackagesWithWorkspaceDependents;
69
+ private getDeletedDepsToPinToMain;
65
70
  /**
66
- * pin the given (deleted-on-lane) packages to their main/published version in the workspace policy, so their
67
- * dependents install them from the registry instead of the non-published lane snap version. packages that were
68
- * never published to the registry (e.g. they only ever existed on the lane) are skipped.
71
+ * add the given (deleted-on-lane) policy entries to the workspace policy, so their dependents install them
72
+ * from the registry (their main version) instead of the non-published lane snap version.
69
73
  */
70
- private pinDeletedDepsToMainInWorkspacePolicy;
74
+ private pinDepsToMainInWorkspacePolicy;
71
75
  /**
72
76
  * recover soft-removed component(s) matching a pattern.
73
77
  * supports component patterns (e.g., "comp1", "org.scope/*", etc.)
@@ -306,27 +306,32 @@ to delete them eventually from main, use "--update-main" flag and make sure to r
306
306
  const isLaneSoftDelete = Boolean(currentLane) && !updateMain && !opts.range && !opts.snaps;
307
307
  // best-effort: never let this convenience break the actual deletion. on failure the user can still
308
308
  // recover via the manual "bit install <pkg>" workaround.
309
- const packagesToPinToMain = isLaneSoftDelete ? await this.getDeletedPackagesWithWorkspaceDependents(componentIds).catch(err => {
310
- this.logger.warn(`getDeletedPackagesWithWorkspaceDependents failed: ${err.message}`);
309
+ const depsToPinToMain = isLaneSoftDelete ? await this.getDeletedDepsToPinToMain(componentIds).catch(err => {
310
+ this.logger.warn(`getDeletedDepsToPinToMain failed: ${err.message}`);
311
311
  return [];
312
312
  }) : [];
313
313
  const removedComps = await this.markRemoveComps(componentIds, opts);
314
- if (packagesToPinToMain.length) {
315
- await this.pinDeletedDepsToMainInWorkspacePolicy(packagesToPinToMain).catch(err => {
316
- this.logger.warn(`pinDeletedDepsToMainInWorkspacePolicy failed: ${err.message}`);
314
+ if (depsToPinToMain.length) {
315
+ await this.pinDepsToMainInWorkspacePolicy(depsToPinToMain).catch(err => {
316
+ this.logger.warn(`pinDepsToMainInWorkspacePolicy failed: ${err.message}`);
317
317
  });
318
318
  }
319
319
  return removedComps;
320
320
  }
321
321
 
322
322
  /**
323
- * out of the given deleted ids, return the package names of those that still have at least one dependent
324
- * in the workspace (excluding other components being deleted in the same operation).
323
+ * out of the given deleted ids, build workspace-policy entries pinning to the latest tagged version on main,
324
+ * for those that still have at least one dependent in the workspace (excluding other components being deleted
325
+ * in the same operation). the version is resolved locally from the scope (no network), so "bit delete" stays
326
+ * a fast, offline-capable, local operation.
327
+ * only a tagged (published) main version is used. a component with no tag on main (only snaps, or it only ever
328
+ * existed on the lane) is skipped - pinning a snap version would re-introduce the "No matching version" failure
329
+ * this feature is meant to prevent, since snaps aren't fetchable as a regular registry package.
325
330
  * envs are excluded on purpose: a deleted env surfaces as a "RemovedEnv" issue so the user can replace it
326
331
  * explicitly (bit env replace), and we don't want to silently pin it to its main version and suppress that
327
332
  * signal. only regular dependencies (e.g. a dependency of an env) need pinning so they install from main.
328
333
  */
329
- async getDeletedPackagesWithWorkspaceDependents(deletedIds) {
334
+ async getDeletedDepsToPinToMain(deletedIds) {
330
335
  const graph = await this.workspace.getGraphIds(undefined, false);
331
336
  const deletedIdList = _componentId().ComponentIdList.fromArray(deletedIds);
332
337
  const idsWithDependents = deletedIds.filter(id => {
@@ -340,38 +345,30 @@ to delete them eventually from main, use "--update-main" flag and make sure to r
340
345
  const nonEnvIds = idsWithDependents.filter((_id, index) => !isEnvFlags[index]);
341
346
  if (!nonEnvIds.length) return [];
342
347
  const comps = await this.workspace.getMany(nonEnvIds);
343
- return comps.map(comp => this.depResolver.getPackageName(comp));
344
- }
345
-
346
- /**
347
- * pin the given (deleted-on-lane) packages to their main/published version in the workspace policy, so their
348
- * dependents install them from the registry instead of the non-published lane snap version. packages that were
349
- * never published to the registry (e.g. they only ever existed on the lane) are skipped.
350
- */
351
- async pinDeletedDepsToMainInWorkspacePolicy(packageNames) {
352
- const resolver = await this.depResolver.getVersionResolver();
353
- const entries = [];
354
- await Promise.all(packageNames.map(async packageName => {
355
- const resolved = await resolver.resolveRemoteVersion(packageName, {
356
- rootDir: this.workspace.path
357
- }).catch(() => undefined);
358
- if (!resolved?.version) {
359
- this.logger.warn(`pinDeletedDepsToMainInWorkspacePolicy: unable to resolve a published version for ${packageName}, skipping`);
360
- return;
361
- }
348
+ const entries = await Promise.all(comps.map(async comp => {
349
+ const modelComponent = await this.workspace.scope.getBitObjectModelComponent(comp.id.changeVersion(undefined));
350
+ // the latest tagged version on main. undefined means there's no published release on main to pin to.
351
+ const mainVersion = modelComponent?.latestVersionIfExist();
352
+ if (!mainVersion) return undefined;
362
353
  const versionWithPrefix = this.depResolver.getVersionWithSavePrefix({
363
- version: resolved.version,
364
- wantedRange: resolved.wantedRange
354
+ version: mainVersion
365
355
  });
366
- entries.push({
367
- dependencyId: packageName,
356
+ return {
357
+ dependencyId: this.depResolver.getPackageName(comp),
368
358
  value: {
369
359
  version: versionWithPrefix
370
360
  },
371
361
  lifecycleType: 'runtime'
372
- });
362
+ };
373
363
  }));
374
- if (!entries.length) return;
364
+ return (0, _lodash().compact)(entries);
365
+ }
366
+
367
+ /**
368
+ * add the given (deleted-on-lane) policy entries to the workspace policy, so their dependents install them
369
+ * from the registry (their main version) instead of the non-published lane snap version.
370
+ */
371
+ async pinDepsToMainInWorkspacePolicy(entries) {
375
372
  // skipIfExisting so we never override a version the user already set explicitly in the workspace policy.
376
373
  this.depResolver.addToRootPolicy(entries, {
377
374
  skipIfExisting: true
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_semver","_interopRequireDefault","_logger","_workspace","_componentId","_legacy","_importer","_lodash","_legacy2","_bitError","_dependencyResolver","_componentIssues","_issues","_pMapSeries","_legacy3","_component","_deleteComponentFiles","_removeCmd","_removeComponents","_remove","_remove2","_recoverCmd","_deleteCmd","_scope","_lister","_chalk","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","BEFORE_REMOVE","RemoveMain","constructor","workspace","scope","logger","importer","depResolver","lister","remove","componentsPattern","force","remote","track","deleteFiles","setStatusLine","bitIds","getRemoteBitIdsToRemove","getLocalBitIdsToRemove","consumer","removeResults","removeComponents","ids","ComponentIdList","fromArray","onDestroy","removeLocallyByIds","reasonForRemoval","OutsideWorkspaceError","results","bitMap","write","markRemoveComps","componentIds","updateMain","range","snaps","allComponentsToMarkDeleted","getMany","componentsToDeleteFromFs","componentsIdsToDeleteFromFs","map","c","id","removeComponentsFromNodeModules","state","_consumer","config","removed","removeOnMain","compId","addComponentConfig","RemoveAspect","deleteComponentsFiles","deleteComps","opts","ConsumerNotFound","idsByPattern","newComps","hasVersion","BitError","toString","join","currentLane","getCurrentLaneObject","isNew","Error","laneComp","toComponentIds","compIdsNotOnLane","hasWithoutVersion","chalk","bold","isLaneSoftDelete","Boolean","packagesToPinToMain","getDeletedPackagesWithWorkspaceDependents","catch","err","warn","message","removedComps","pinDeletedDepsToMainInWorkspacePolicy","deletedIds","graph","getGraphIds","undefined","deletedIdList","idsWithDependents","dependents","predecessors","nodeFilter","node","hasId","attr","isEnvFlags","Promise","all","isEnvByIdWithoutLoadingComponent","nonEnvIds","_id","index","comps","comp","getPackageName","packageNames","resolver","getVersionResolver","entries","packageName","resolved","resolveRemoteVersion","rootDir","path","version","versionWithPrefix","getVersionWithSavePrefix","wantedRange","dependencyId","lifecycleType","addToRootPolicy","skipIfExisting","persistConfig","items","entry","formatItem","console","formatSection","recover","pattern","options","componentsToRecover","getComponentsToRecover","componentsToProcess","classifyComponentForRecovery","idsToImport","item","action","idToImport","import","installNpmPackages","skipDependencyInstallation","writeConfigFiles","skipWriteConfigFiles","override","shouldRecover","compFromScope","get","bitMapEntry","removeComponentConfig","addSpecificComponentConfig","_","idx","getBitmapEntryIfExist","ignoreVersion","removeInfo","getRemoveInfo","idOnLane","getComponent","compIdWithPossibleVer","changeVersion","head","isDeleted","getRemoteComponent","NoHeadNoVersion","hasWildcard","locallySoftRemoved","getRemoved","componentsList","componentList","remotelySoftRemoved","listRemotelySoftRemoved","remotelySoftRemovedIds","componentId","removedStaged","getRemovedStaged","allSoftRemoved","matches","filterIdsFromPoolIdsByPattern","uniqFromArray","components","find","compMap","fullName","toStringWithoutVersion","resolveComponentId","throwForMainComponentWhenOnLane","laneComps","toBitIds","mainComps","component","headComponent","getHeadComponent","extensions","findExtension","isDeletedByRange","currentTag","getTag","semver","satisfies","isDeletedBySnaps","includes","hash","headTag","headComp","isRemoved","isRemovedByIdWithoutLoadingComponent","bitmapEntry","isRecovered","modelComp","getBitObjectModelComponent","legacyScope","objects","versionObj","getBitObjectVersionById","envData","findCoreExtension","type","isOnMain","getRemovedStagedFromMain","getRemovedStagedFromLane","addRemovedDependenciesIssues","workspacePolicyManifest","getWorkspacePolicyManifest","workspaceDependencies","dependencies","peerDependencies","installedDeps","pMapSeries","addRemovedDepIssue","getComponentDependencies","removedDependencies","removedEnv","dep","isAvailableAsInstalledPackage","isEnv","issues","getOrCreate","IssuesClasses","RemovedDependencies","RemovedEnv","stagedConfig","getStagedConfig","getAll","compConfig","laneIds","workspaceIds","listIds","laneCompIdsNotInWorkspace","wId","isEqualWithoutVersion","staged","snapDistance","getSnapDistance","name","isSourceAhead","compact","getRemoteCompIdsByWildcards","ComponentID","fromString","provider","cli","loggerMain","componentAspect","importerMain","createLogger","removeMain","registerAddComponentsIssues","bind","registerShowFragments","RemoveFragment","register","RemoveCmd","DeleteCmd","RecoverCmd","exports","WorkspaceAspect","ScopeAspect","CLIAspect","LoggerAspect","ComponentAspect","ImporterAspect","DependencyResolverAspect","IssuesAspect","ListerAspect","MainRuntime","addRuntime","_default"],"sources":["remove.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime, formatSection, formatItem } from '@teambit/cli';\nimport semver from 'semver';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { ConsumerNotFound } from '@teambit/legacy.consumer';\nimport type { ImporterMain } from '@teambit/importer';\nimport { ImporterAspect } from '@teambit/importer';\nimport { compact } from 'lodash';\nimport { hasWildcard } from '@teambit/legacy.utils';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain, WorkspacePolicyEntry } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport type { IssuesMain } from '@teambit/issues';\nimport { IssuesAspect } from '@teambit/issues';\nimport pMapSeries from 'p-map-series';\nimport { NoHeadNoVersion } from '@teambit/legacy.scope';\nimport type { Component, ComponentMain } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport { deleteComponentsFiles } from './delete-component-files';\nimport { RemoveCmd } from './remove-cmd';\nimport type { RemoveComponentsResult } from './remove-components';\nimport { removeComponents, removeComponentsFromNodeModules } from './remove-components';\nimport { RemoveAspect } from './remove.aspect';\nimport { RemoveFragment } from './remove.fragment';\nimport type { RecoverOptions } from './recover-cmd';\nimport { RecoverCmd } from './recover-cmd';\nimport { DeleteCmd } from './delete-cmd';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport type { ListerMain } from '@teambit/lister';\nimport { ListerAspect } from '@teambit/lister';\nimport chalk from 'chalk';\n\nconst BEFORE_REMOVE = 'removing components';\n\nexport type RemoveInfo = {\n removed: boolean;\n /**\n * whether to remove the component from default lane once merged\n */\n removeOnMain?: boolean;\n /**\n * Semver range to mark specific versions as deleted\n */\n range?: string;\n /**\n * Array of snap hashes to mark as deleted\n */\n snaps?: string[];\n};\n\nexport type DeleteOpts = { updateMain?: boolean; range?: string; snaps?: string[] };\n\nexport class RemoveMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n public logger: Logger,\n private importer: ImporterMain,\n private depResolver: DependencyResolverMain,\n private lister: ListerMain\n ) {}\n\n async remove({\n componentsPattern,\n force = false,\n remote = false,\n track = false,\n deleteFiles = true,\n }: {\n componentsPattern: string;\n force?: boolean;\n remote?: boolean;\n track?: boolean;\n deleteFiles?: boolean;\n }): Promise<RemoveComponentsResult> {\n this.logger.setStatusLine(BEFORE_REMOVE);\n const bitIds = remote\n ? await this.getRemoteBitIdsToRemove(componentsPattern)\n : await this.getLocalBitIdsToRemove(componentsPattern);\n this.logger.setStatusLine(BEFORE_REMOVE); // again because the loader might changed when talking to the remote\n const consumer = this.workspace?.consumer;\n const removeResults = await removeComponents({\n workspace: this.workspace,\n ids: ComponentIdList.fromArray(bitIds),\n force,\n remote,\n track,\n deleteFiles,\n });\n if (consumer) await consumer.onDestroy('remove');\n return removeResults;\n }\n\n /**\n * remove components from the workspace.\n */\n async removeLocallyByIds(\n ids: ComponentID[],\n { force = false, reasonForRemoval }: { force?: boolean; reasonForRemoval?: string } = {}\n ) {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const results = await removeComponents({\n workspace: this.workspace,\n ids: ComponentIdList.fromArray(ids),\n force,\n remote: false,\n track: false,\n deleteFiles: true,\n });\n await this.workspace.bitMap.write(`remove (by ${reasonForRemoval || 'N/A'})`);\n\n return results;\n }\n\n private async markRemoveComps(\n componentIds: ComponentID[],\n { updateMain, range, snaps }: DeleteOpts\n ): Promise<Component[]> {\n const allComponentsToMarkDeleted = await this.workspace.getMany(componentIds);\n\n const componentsToDeleteFromFs = range || snaps ? [] : allComponentsToMarkDeleted;\n const componentsIdsToDeleteFromFs = ComponentIdList.fromArray(componentsToDeleteFromFs.map((c) => c.id));\n await removeComponentsFromNodeModules(\n this.workspace.consumer,\n componentsToDeleteFromFs.map((c) => c.state._consumer)\n );\n // don't use `this.workspace.addSpecificComponentConfig`, if the component has component.json it will be deleted\n // during this removal along with the entire component dir.\n // in case this is range, the \"removed\" property is set to false. even when the range overlap the current version.\n // the reason is that if we set it to true, then, the component is considered as \"deleted\" for *all* versions.\n // remember that this config is always passed to the next version and if we set removed: true, it'll be copied\n // to the next version even when that version is not in the range.\n const config: RemoveInfo = { removed: !(range || snaps) };\n if (updateMain) config.removeOnMain = true;\n if (range) config.range = range;\n if (snaps && snaps.length) config.snaps = snaps;\n componentIds.forEach((compId) => this.workspace.bitMap.addComponentConfig(compId, RemoveAspect.id, config));\n await this.workspace.bitMap.write('delete');\n await deleteComponentsFiles(this.workspace.consumer, componentsIdsToDeleteFromFs);\n\n return componentsToDeleteFromFs;\n }\n\n async deleteComps(componentsPattern: string, opts: DeleteOpts = {}): Promise<Component[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n const componentIds = await this.workspace.idsByPattern(componentsPattern);\n const newComps = componentIds.filter((id) => !id.hasVersion());\n if (newComps.length) {\n throw new BitError(\n `no need to delete the following new component(s), please remove them by \"bit remove\"\\n${newComps\n .map((id) => id.toString())\n .join('\\n')}`\n );\n }\n const currentLane = await this.workspace.getCurrentLaneObject();\n const { updateMain } = opts;\n if (!updateMain && currentLane?.isNew) {\n throw new Error(\n 'no need to delete components from an un-exported lane, you can remove them by running \"bit remove\"'\n );\n }\n if (currentLane && !updateMain && opts.range) {\n throw new BitError(`--range is not needed when deleting components from a lane, unless --update-main is used`);\n }\n if (currentLane && !updateMain) {\n const laneComp = currentLane.toComponentIds();\n const compIdsNotOnLane = componentIds.filter((id) => !laneComp.hasWithoutVersion(id));\n if (compIdsNotOnLane.length) {\n throw new BitError(\n `unable to delete the following component(s) because they are not part of the current lane.\n${chalk.bold(compIdsNotOnLane.map((id) => id.toString()).join('\\n'))}\nto simply remove them from the workspace, use \"bit remove\".\nto delete them eventually from main, use \"--update-main\" flag and make sure to remove all occurrences from the code.`\n );\n }\n }\n\n // when soft-deleting from a lane, components that still have dependents in the workspace will keep\n // referencing the now-deleted lane snap version (0.0.0-<hash>), which was never published to the registry.\n // to avoid a \"No matching version found\" error on the next \"bit install\", pin those components to their\n // main (published) version in the workspace policy - mirroring what running \"bit install <pkg>\" does manually.\n // this must be computed before the removal so the dependency graph is still intact.\n const isLaneSoftDelete = Boolean(currentLane) && !updateMain && !opts.range && !opts.snaps;\n // best-effort: never let this convenience break the actual deletion. on failure the user can still\n // recover via the manual \"bit install <pkg>\" workaround.\n const packagesToPinToMain = isLaneSoftDelete\n ? await this.getDeletedPackagesWithWorkspaceDependents(componentIds).catch((err) => {\n this.logger.warn(`getDeletedPackagesWithWorkspaceDependents failed: ${err.message}`);\n return [];\n })\n : [];\n\n const removedComps = await this.markRemoveComps(componentIds, opts);\n\n if (packagesToPinToMain.length) {\n await this.pinDeletedDepsToMainInWorkspacePolicy(packagesToPinToMain).catch((err) => {\n this.logger.warn(`pinDeletedDepsToMainInWorkspacePolicy failed: ${err.message}`);\n });\n }\n\n return removedComps;\n }\n\n /**\n * out of the given deleted ids, return the package names of those that still have at least one dependent\n * in the workspace (excluding other components being deleted in the same operation).\n * envs are excluded on purpose: a deleted env surfaces as a \"RemovedEnv\" issue so the user can replace it\n * explicitly (bit env replace), and we don't want to silently pin it to its main version and suppress that\n * signal. only regular dependencies (e.g. a dependency of an env) need pinning so they install from main.\n */\n private async getDeletedPackagesWithWorkspaceDependents(deletedIds: ComponentID[]): Promise<string[]> {\n const graph = await this.workspace.getGraphIds(undefined, false);\n const deletedIdList = ComponentIdList.fromArray(deletedIds);\n const idsWithDependents = deletedIds.filter((id) => {\n const dependents = graph.predecessors(id.toString(), {\n nodeFilter: (node) => this.workspace.hasId(node.attr) && !deletedIdList.hasWithoutVersion(node.attr),\n });\n return dependents.length > 0;\n });\n if (!idsWithDependents.length) return [];\n const isEnvFlags = await Promise.all(idsWithDependents.map((id) => this.isEnvByIdWithoutLoadingComponent(id)));\n const nonEnvIds = idsWithDependents.filter((_id, index) => !isEnvFlags[index]);\n if (!nonEnvIds.length) return [];\n const comps = await this.workspace.getMany(nonEnvIds);\n return comps.map((comp) => this.depResolver.getPackageName(comp));\n }\n\n /**\n * pin the given (deleted-on-lane) packages to their main/published version in the workspace policy, so their\n * dependents install them from the registry instead of the non-published lane snap version. packages that were\n * never published to the registry (e.g. they only ever existed on the lane) are skipped.\n */\n private async pinDeletedDepsToMainInWorkspacePolicy(packageNames: string[]): Promise<void> {\n const resolver = await this.depResolver.getVersionResolver();\n const entries: WorkspacePolicyEntry[] = [];\n await Promise.all(\n packageNames.map(async (packageName) => {\n const resolved = await resolver\n .resolveRemoteVersion(packageName, { rootDir: this.workspace.path })\n .catch(() => undefined);\n if (!resolved?.version) {\n this.logger.warn(\n `pinDeletedDepsToMainInWorkspacePolicy: unable to resolve a published version for ${packageName}, skipping`\n );\n return;\n }\n const versionWithPrefix = this.depResolver.getVersionWithSavePrefix({\n version: resolved.version,\n wantedRange: resolved.wantedRange,\n });\n entries.push({\n dependencyId: packageName,\n value: { version: versionWithPrefix },\n lifecycleType: 'runtime',\n });\n })\n );\n if (!entries.length) return;\n // skipIfExisting so we never override a version the user already set explicitly in the workspace policy.\n this.depResolver.addToRootPolicy(entries, { skipIfExisting: true });\n await this.depResolver.persistConfig('delete (pin deleted-on-lane deps to main)');\n const items = entries.map((entry) => formatItem(`${entry.dependencyId}@${entry.value.version}`));\n this.logger.console(\n formatSection(\n 'pinned deleted components to their main version',\n 'these components were deleted from the lane but still have dependents in the workspace, so they were added to the workspace policy to be installed from main',\n items\n )\n );\n }\n\n /**\n * recover soft-removed component(s) matching a pattern.\n * supports component patterns (e.g., \"comp1\", \"org.scope/*\", etc.)\n * returns array of recovered component IDs\n */\n async recover(pattern: string, options: RecoverOptions): Promise<ComponentID[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n\n const componentsToRecover = await this.getComponentsToRecover(pattern);\n if (componentsToRecover.length === 0) {\n return [];\n }\n\n // Classify components by recovery scenario\n const componentsToProcess = await Promise.all(\n componentsToRecover.map((compId) => this.classifyComponentForRecovery(compId))\n );\n\n // Collect all components that need importing\n const idsToImport = componentsToProcess\n .filter((item) => item.action === 'import' || item.action === 'deleteConfigAndImport')\n .map((item) => item.idToImport!);\n\n // Import all at once for better performance\n if (idsToImport.length > 0) {\n await this.importer.import({\n ids: idsToImport,\n installNpmPackages: !options.skipDependencyInstallation,\n writeConfigFiles: !options.skipWriteConfigFiles,\n override: true,\n });\n }\n\n // Process each component according to its classification\n for (const item of componentsToProcess) {\n if (!item.shouldRecover) continue;\n\n if (item.action === 'writeFromScope') {\n // Case #1a: write from local scope and remove the \"removed\" config\n const compFromScope = await this.workspace.scope.get(item.bitMapEntry!.id);\n if (compFromScope) {\n await this.workspace.write(compFromScope, item.bitMapEntry!.rootDir);\n this.workspace.bitMap.removeComponentConfig(item.bitMapEntry!.id, RemoveAspect.id, false);\n }\n } else if (item.action === 'deleteConfigAndImport') {\n // Case #1b: delete config entry before import\n delete item.bitMapEntry!.config?.[RemoveAspect.id];\n } else {\n // Cases #2, #3, #4, #5: set removed: false\n await this.workspace.addSpecificComponentConfig(item.compId, RemoveAspect.id, { removed: false });\n }\n }\n\n // Write bitmap once at the end\n await this.workspace.bitMap.write('recover');\n\n return componentsToRecover.filter((_, idx) => componentsToProcess[idx].shouldRecover);\n }\n\n /**\n * Classify a component to determine how it should be recovered.\n * This implements the 5 different recovery scenarios.\n */\n private async classifyComponentForRecovery(compId: ComponentID): Promise<{\n compId: ComponentID;\n shouldRecover: boolean;\n action: 'writeFromScope' | 'deleteConfigAndImport' | 'updateConfig' | 'import' | 'none';\n bitMapEntry?: any;\n idToImport?: string;\n }> {\n if (!this.workspace) throw new ConsumerNotFound();\n\n const bitMapEntry = this.workspace.bitMap.getBitmapEntryIfExist(compId, { ignoreVersion: true });\n\n // Case #1: Component in .bitmap with \"removed\" aspect entry\n if (bitMapEntry?.config?.[RemoveAspect.id]) {\n const compFromScope = await this.workspace.scope.get(bitMapEntry.id);\n if (compFromScope) {\n // Case #1a: exists in local scope - write from there\n return {\n compId: bitMapEntry.id,\n shouldRecover: true,\n action: 'writeFromScope',\n bitMapEntry,\n };\n }\n // Case #1b: not in local scope - import it\n return {\n compId: bitMapEntry.id,\n shouldRecover: true,\n action: 'deleteConfigAndImport',\n bitMapEntry,\n idToImport: bitMapEntry.id.toString(),\n };\n }\n\n // Case #4: Component in .bitmap without \"removed\" aspect entry\n if (bitMapEntry) {\n const comp = await this.workspace.get(compId);\n const removeInfo = await this.getRemoveInfo(comp);\n if (!removeInfo.removed && !removeInfo.range && !removeInfo.snaps) {\n return { compId, shouldRecover: false, action: 'none' };\n }\n return {\n compId,\n shouldRecover: true,\n action: 'updateConfig',\n };\n }\n\n // Cases #2, #3, #5: Component not in .bitmap\n const currentLane = await this.workspace.getCurrentLaneObject();\n const idOnLane = currentLane?.getComponent(compId);\n const compIdWithPossibleVer = idOnLane ? compId.changeVersion(idOnLane.head.toString()) : compId;\n const compFromScope = await this.workspace.scope.get(compIdWithPossibleVer);\n\n if (compFromScope && (await this.isDeleted(compFromScope))) {\n // Cases #2 and #3: soft-removed and snapped/exported\n return {\n compId: compIdWithPossibleVer,\n shouldRecover: true,\n action: 'import',\n idToImport: compIdWithPossibleVer._legacy.toString(),\n };\n }\n\n // Case #5: workspace is empty, component on remote\n let comp: Component | undefined;\n try {\n comp = await this.workspace.scope.getRemoteComponent(compId);\n } catch (err: any) {\n if (err instanceof NoHeadNoVersion) {\n throw new BitError(\n `unable to find the component ${compIdWithPossibleVer.toString()} in the current lane or main`\n );\n }\n throw err;\n }\n if (!(await this.isDeleted(comp))) {\n return { compId, shouldRecover: false, action: 'none' };\n }\n return {\n compId,\n shouldRecover: true,\n action: 'import',\n idToImport: compId._legacy.toString(),\n };\n }\n\n /**\n * get all components matching the pattern that are soft-removed and can be recovered\n */\n private async getComponentsToRecover(pattern: string): Promise<ComponentID[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n\n // Check if pattern contains wildcards\n if (hasWildcard(pattern)) {\n // Get all soft-removed components from different sources\n const locallySoftRemoved = this.workspace.consumer.bitMap.getRemoved();\n const componentsList = this.workspace.componentList;\n const remotelySoftRemoved = await componentsList.listRemotelySoftRemoved();\n const remotelySoftRemovedIds = remotelySoftRemoved.map((c) => c.componentId);\n\n // Also check components on the current lane that might be soft-removed\n const removedStaged = await this.getRemovedStaged();\n\n // Combine all soft-removed components\n const allSoftRemoved = [...locallySoftRemoved, ...remotelySoftRemovedIds, ...removedStaged];\n\n // Use the same pattern matching logic as filterIdsFromPoolIdsByPattern\n const matches = await this.workspace.scope.filterIdsFromPoolIdsByPattern(pattern, allSoftRemoved, false);\n\n return ComponentIdList.uniqFromArray(matches);\n }\n\n // Single component - try to resolve it\n const bitMapEntry = this.workspace.consumer.bitMap.components.find((compMap) => {\n return compMap.id.fullName === pattern || compMap.id.toStringWithoutVersion() === pattern;\n });\n if (bitMapEntry) {\n return [bitMapEntry.id];\n }\n const compId = await this.workspace.scope.resolveComponentId(pattern);\n return [compId];\n }\n\n private async throwForMainComponentWhenOnLane(components: Component[]) {\n const currentLane = await this.workspace.getCurrentLaneObject();\n if (!currentLane) return; // user on main\n const laneComps = currentLane.toBitIds();\n const mainComps = components.filter((comp) => !laneComps.hasWithoutVersion(comp.id));\n if (mainComps.length) {\n throw new BitError(`the following components belong to main, they cannot be soft-removed when on a lane. consider removing them without --soft.\n${mainComps.map((c) => c.id.toString()).join('\\n')}`);\n }\n }\n\n async getRemoveInfo(component: Component): Promise<RemoveInfo> {\n const headComponent = await this.getHeadComponent(component);\n const data = headComponent.config.extensions.findExtension(RemoveAspect.id)?.config as RemoveInfo | undefined;\n\n const isDeletedByRange = () => {\n if (!data?.range) return false;\n const currentTag = component.getTag();\n return Boolean(currentTag && semver.satisfies(currentTag.version, data.range));\n };\n const isDeletedBySnaps = () => {\n if (!data?.snaps || !component.id.version) return false;\n return data.snaps.includes(component.id.version);\n };\n\n return {\n removed: data?.removed || isDeletedByRange() || isDeletedBySnaps() || false,\n range: data?.range,\n snaps: data?.snaps,\n };\n }\n\n private async getHeadComponent(component: Component): Promise<Component> {\n if (\n component.id.version &&\n component.head &&\n component.id.version !== component.head?.hash &&\n component.id.version !== component.headTag?.version.version\n ) {\n const headComp = this.workspace // if workspace exits, prefer using the workspace as it may be modified\n ? await this.workspace.get(component.id.changeVersion(undefined))\n : await this.scope.get(component.id.changeVersion(component.head.hash));\n if (!headComp) throw new Error(`unable to get the head of ${component.id.toString()}`);\n return headComp;\n }\n return component;\n }\n\n /**\n * @deprecated use `isDeleted` instead.\n */\n async isRemoved(component: Component): Promise<boolean> {\n return this.isDeleted(component);\n }\n\n /**\n * whether a component is marked as deleted.\n */\n async isDeleted(component: Component): Promise<boolean> {\n const removeInfo = await this.getRemoveInfo(component);\n return removeInfo.removed;\n }\n\n /**\n * performant version of isRemoved() in case the component object is not available and loading it is expensive.\n */\n async isRemovedByIdWithoutLoadingComponent(componentId: ComponentID): Promise<boolean> {\n if (!componentId.hasVersion()) return false;\n const bitmapEntry = this.workspace.bitMap.getBitmapEntryIfExist(componentId);\n if (bitmapEntry && bitmapEntry.isRemoved()) return true;\n if (bitmapEntry && bitmapEntry.isRecovered()) return false;\n const modelComp = await this.workspace.scope.getBitObjectModelComponent(componentId.changeVersion(undefined));\n if (!modelComp) return false;\n const isRemoved = await modelComp.isRemoved(\n this.workspace.scope.legacyScope.objects,\n componentId.version as string\n );\n return Boolean(isRemoved);\n }\n\n async isEnvByIdWithoutLoadingComponent(componentId: ComponentID): Promise<boolean> {\n const versionObj = await this.workspace.scope.getBitObjectVersionById(componentId);\n const envData = versionObj?.extensions.findCoreExtension('teambit.envs/envs');\n return envData?.data.type === 'env';\n }\n\n /**\n * get components that were soft-removed and tagged/snapped/merged but not exported yet.\n */\n async getRemovedStaged(): Promise<ComponentID[]> {\n return this.workspace.isOnMain() ? this.getRemovedStagedFromMain() : this.getRemovedStagedFromLane();\n }\n\n async addRemovedDependenciesIssues(components: Component[]) {\n const workspacePolicyManifest = this.depResolver.getWorkspacePolicyManifest();\n const workspaceDependencies = {\n ...workspacePolicyManifest.dependencies,\n ...workspacePolicyManifest.peerDependencies,\n };\n const installedDeps = Object.keys(workspaceDependencies);\n await pMapSeries(components, async (component) => {\n await this.addRemovedDepIssue(component, installedDeps);\n });\n }\n\n private async addRemovedDepIssue(component: Component, installedDeps: string[]) {\n const dependencies = this.depResolver.getComponentDependencies(component);\n const removedDependencies: ComponentID[] = [];\n let removedEnv: ComponentID | undefined;\n\n await Promise.all(\n dependencies.map(async (dep) => {\n const isRemoved = await this.isRemovedByIdWithoutLoadingComponent(dep.componentId);\n if (!isRemoved) return;\n\n // a component can be deleted from the workspace and installed as a package in different version.\n // normally, this is happening when checked out to a lane and a component is deleted from the lane.\n // the user still wants to use it but not as part of the lane.\n const packageName = dep.getPackageName();\n const isAvailableAsInstalledPackage = installedDeps.includes(packageName);\n const bitmapEntry = this.workspace.bitMap.getBitmapEntryIfExist(dep.componentId);\n if (bitmapEntry && isAvailableAsInstalledPackage && bitmapEntry.version !== dep.version) {\n return;\n }\n\n const isEnv = await this.isEnvByIdWithoutLoadingComponent(dep.componentId);\n if (isEnv) {\n removedEnv = dep.componentId;\n } else {\n removedDependencies.push(dep.componentId);\n }\n })\n );\n if (removedDependencies.length) {\n component.state.issues.getOrCreate(IssuesClasses.RemovedDependencies).data = removedDependencies.map((r) =>\n r.toString()\n );\n }\n if (removedEnv) {\n component.state.issues.getOrCreate(IssuesClasses.RemovedEnv).data = removedEnv.toString();\n }\n }\n\n private async getRemovedStagedFromMain(): Promise<ComponentID[]> {\n const stagedConfig = await this.workspace.scope.getStagedConfig();\n return stagedConfig\n .getAll()\n .filter((compConfig) => compConfig.config?.[RemoveAspect.id]?.removed)\n .map((compConfig) => compConfig.id);\n }\n\n private async getRemovedStagedFromLane(): Promise<ComponentID[]> {\n const currentLane = await this.workspace.getCurrentLaneObject();\n if (!currentLane) return [];\n const laneIds = currentLane.toComponentIds();\n const workspaceIds = this.workspace.listIds();\n const laneCompIdsNotInWorkspace = laneIds.filter(\n (id) => !workspaceIds.find((wId) => wId.isEqualWithoutVersion(id))\n );\n if (!laneCompIdsNotInWorkspace.length) return [];\n const comps = await this.workspace.scope.getMany(laneCompIdsNotInWorkspace);\n const removed = comps.filter((c) => this.isDeleted(c));\n const staged = await Promise.all(\n removed.map(async (c) => {\n const snapDistance = await this.workspace.scope.getSnapDistance(c.id, false);\n if (snapDistance.err) {\n this.logger.warn(\n `getRemovedStagedFromLane unable to get snapDistance for ${c.id.toString()} due to ${snapDistance.err.name}`\n );\n // todo: not clear what should be done here. should we consider it as removed-staged or not.\n }\n if (snapDistance.isSourceAhead()) return c.id;\n return undefined;\n })\n );\n return compact(staged);\n }\n\n private async getLocalBitIdsToRemove(componentsPattern: string): Promise<ComponentID[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n const componentIds = await this.workspace.idsByPattern(componentsPattern);\n return componentIds.map((id) => id);\n }\n\n private async getRemoteBitIdsToRemove(componentsPattern: string): Promise<ComponentID[]> {\n if (hasWildcard(componentsPattern)) {\n return this.lister.getRemoteCompIdsByWildcards(componentsPattern);\n }\n return [ComponentID.fromString(componentsPattern)];\n }\n\n static slots = [];\n static dependencies = [\n WorkspaceAspect,\n ScopeAspect,\n CLIAspect,\n LoggerAspect,\n ComponentAspect,\n ImporterAspect,\n DependencyResolverAspect,\n IssuesAspect,\n ListerAspect,\n ];\n static runtime = MainRuntime;\n\n static async provider([\n workspace,\n scope,\n cli,\n loggerMain,\n componentAspect,\n importerMain,\n depResolver,\n issues,\n lister,\n ]: [\n Workspace,\n ScopeMain,\n CLIMain,\n LoggerMain,\n ComponentMain,\n ImporterMain,\n DependencyResolverMain,\n IssuesMain,\n ListerMain,\n ]) {\n const logger = loggerMain.createLogger(RemoveAspect.id);\n const removeMain = new RemoveMain(workspace, scope, logger, importerMain, depResolver, lister);\n issues.registerAddComponentsIssues(removeMain.addRemovedDependenciesIssues.bind(removeMain));\n componentAspect.registerShowFragments([new RemoveFragment(removeMain)]);\n cli.register(\n new RemoveCmd(removeMain, workspace),\n new DeleteCmd(removeMain, workspace),\n new RecoverCmd(removeMain)\n );\n return removeMain;\n }\n}\n\nRemoveAspect.addRuntime(RemoveMain);\n\nexport default RemoveMain;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_semver","_interopRequireDefault","_logger","_workspace","_componentId","_legacy","_importer","_lodash","_legacy2","_bitError","_dependencyResolver","_componentIssues","_issues","_pMapSeries","_legacy3","_component","_deleteComponentFiles","_removeCmd","_removeComponents","_remove","_remove2","_recoverCmd","_deleteCmd","_scope","_lister","_chalk","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","BEFORE_REMOVE","RemoveMain","constructor","workspace","scope","logger","importer","depResolver","lister","remove","componentsPattern","force","remote","track","deleteFiles","setStatusLine","bitIds","getRemoteBitIdsToRemove","getLocalBitIdsToRemove","consumer","removeResults","removeComponents","ids","ComponentIdList","fromArray","onDestroy","removeLocallyByIds","reasonForRemoval","OutsideWorkspaceError","results","bitMap","write","markRemoveComps","componentIds","updateMain","range","snaps","allComponentsToMarkDeleted","getMany","componentsToDeleteFromFs","componentsIdsToDeleteFromFs","map","c","id","removeComponentsFromNodeModules","state","_consumer","config","removed","removeOnMain","compId","addComponentConfig","RemoveAspect","deleteComponentsFiles","deleteComps","opts","ConsumerNotFound","idsByPattern","newComps","hasVersion","BitError","toString","join","currentLane","getCurrentLaneObject","isNew","Error","laneComp","toComponentIds","compIdsNotOnLane","hasWithoutVersion","chalk","bold","isLaneSoftDelete","Boolean","depsToPinToMain","getDeletedDepsToPinToMain","catch","err","warn","message","removedComps","pinDepsToMainInWorkspacePolicy","deletedIds","graph","getGraphIds","undefined","deletedIdList","idsWithDependents","dependents","predecessors","nodeFilter","node","hasId","attr","isEnvFlags","Promise","all","isEnvByIdWithoutLoadingComponent","nonEnvIds","_id","index","comps","entries","comp","modelComponent","getBitObjectModelComponent","changeVersion","mainVersion","latestVersionIfExist","versionWithPrefix","getVersionWithSavePrefix","version","dependencyId","getPackageName","lifecycleType","compact","addToRootPolicy","skipIfExisting","persistConfig","items","entry","formatItem","console","formatSection","recover","pattern","options","componentsToRecover","getComponentsToRecover","componentsToProcess","classifyComponentForRecovery","idsToImport","item","action","idToImport","import","installNpmPackages","skipDependencyInstallation","writeConfigFiles","skipWriteConfigFiles","override","shouldRecover","compFromScope","get","bitMapEntry","rootDir","removeComponentConfig","addSpecificComponentConfig","_","idx","getBitmapEntryIfExist","ignoreVersion","removeInfo","getRemoveInfo","idOnLane","getComponent","compIdWithPossibleVer","head","isDeleted","getRemoteComponent","NoHeadNoVersion","hasWildcard","locallySoftRemoved","getRemoved","componentsList","componentList","remotelySoftRemoved","listRemotelySoftRemoved","remotelySoftRemovedIds","componentId","removedStaged","getRemovedStaged","allSoftRemoved","matches","filterIdsFromPoolIdsByPattern","uniqFromArray","components","find","compMap","fullName","toStringWithoutVersion","resolveComponentId","throwForMainComponentWhenOnLane","laneComps","toBitIds","mainComps","component","headComponent","getHeadComponent","extensions","findExtension","isDeletedByRange","currentTag","getTag","semver","satisfies","isDeletedBySnaps","includes","hash","headTag","headComp","isRemoved","isRemovedByIdWithoutLoadingComponent","bitmapEntry","isRecovered","modelComp","legacyScope","objects","versionObj","getBitObjectVersionById","envData","findCoreExtension","type","isOnMain","getRemovedStagedFromMain","getRemovedStagedFromLane","addRemovedDependenciesIssues","workspacePolicyManifest","getWorkspacePolicyManifest","workspaceDependencies","dependencies","peerDependencies","installedDeps","pMapSeries","addRemovedDepIssue","getComponentDependencies","removedDependencies","removedEnv","dep","packageName","isAvailableAsInstalledPackage","isEnv","issues","getOrCreate","IssuesClasses","RemovedDependencies","RemovedEnv","stagedConfig","getStagedConfig","getAll","compConfig","laneIds","workspaceIds","listIds","laneCompIdsNotInWorkspace","wId","isEqualWithoutVersion","staged","snapDistance","getSnapDistance","name","isSourceAhead","getRemoteCompIdsByWildcards","ComponentID","fromString","provider","cli","loggerMain","componentAspect","importerMain","createLogger","removeMain","registerAddComponentsIssues","bind","registerShowFragments","RemoveFragment","register","RemoveCmd","DeleteCmd","RecoverCmd","exports","WorkspaceAspect","ScopeAspect","CLIAspect","LoggerAspect","ComponentAspect","ImporterAspect","DependencyResolverAspect","IssuesAspect","ListerAspect","MainRuntime","addRuntime","_default"],"sources":["remove.main.runtime.ts"],"sourcesContent":["import type { CLIMain } from '@teambit/cli';\nimport { CLIAspect, MainRuntime, formatSection, formatItem } from '@teambit/cli';\nimport semver from 'semver';\nimport type { Logger, LoggerMain } from '@teambit/logger';\nimport { LoggerAspect } from '@teambit/logger';\nimport type { Workspace } from '@teambit/workspace';\nimport { WorkspaceAspect, OutsideWorkspaceError } from '@teambit/workspace';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { ConsumerNotFound } from '@teambit/legacy.consumer';\nimport type { ImporterMain } from '@teambit/importer';\nimport { ImporterAspect } from '@teambit/importer';\nimport { compact } from 'lodash';\nimport { hasWildcard } from '@teambit/legacy.utils';\nimport { BitError } from '@teambit/bit-error';\nimport type { DependencyResolverMain, WorkspacePolicyEntry } from '@teambit/dependency-resolver';\nimport { DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport type { IssuesMain } from '@teambit/issues';\nimport { IssuesAspect } from '@teambit/issues';\nimport pMapSeries from 'p-map-series';\nimport { NoHeadNoVersion } from '@teambit/legacy.scope';\nimport type { Component, ComponentMain } from '@teambit/component';\nimport { ComponentAspect } from '@teambit/component';\nimport { deleteComponentsFiles } from './delete-component-files';\nimport { RemoveCmd } from './remove-cmd';\nimport type { RemoveComponentsResult } from './remove-components';\nimport { removeComponents, removeComponentsFromNodeModules } from './remove-components';\nimport { RemoveAspect } from './remove.aspect';\nimport { RemoveFragment } from './remove.fragment';\nimport type { RecoverOptions } from './recover-cmd';\nimport { RecoverCmd } from './recover-cmd';\nimport { DeleteCmd } from './delete-cmd';\nimport type { ScopeMain } from '@teambit/scope';\nimport { ScopeAspect } from '@teambit/scope';\nimport type { ListerMain } from '@teambit/lister';\nimport { ListerAspect } from '@teambit/lister';\nimport chalk from 'chalk';\n\nconst BEFORE_REMOVE = 'removing components';\n\nexport type RemoveInfo = {\n removed: boolean;\n /**\n * whether to remove the component from default lane once merged\n */\n removeOnMain?: boolean;\n /**\n * Semver range to mark specific versions as deleted\n */\n range?: string;\n /**\n * Array of snap hashes to mark as deleted\n */\n snaps?: string[];\n};\n\nexport type DeleteOpts = { updateMain?: boolean; range?: string; snaps?: string[] };\n\nexport class RemoveMain {\n constructor(\n private workspace: Workspace,\n private scope: ScopeMain,\n public logger: Logger,\n private importer: ImporterMain,\n private depResolver: DependencyResolverMain,\n private lister: ListerMain\n ) {}\n\n async remove({\n componentsPattern,\n force = false,\n remote = false,\n track = false,\n deleteFiles = true,\n }: {\n componentsPattern: string;\n force?: boolean;\n remote?: boolean;\n track?: boolean;\n deleteFiles?: boolean;\n }): Promise<RemoveComponentsResult> {\n this.logger.setStatusLine(BEFORE_REMOVE);\n const bitIds = remote\n ? await this.getRemoteBitIdsToRemove(componentsPattern)\n : await this.getLocalBitIdsToRemove(componentsPattern);\n this.logger.setStatusLine(BEFORE_REMOVE); // again because the loader might changed when talking to the remote\n const consumer = this.workspace?.consumer;\n const removeResults = await removeComponents({\n workspace: this.workspace,\n ids: ComponentIdList.fromArray(bitIds),\n force,\n remote,\n track,\n deleteFiles,\n });\n if (consumer) await consumer.onDestroy('remove');\n return removeResults;\n }\n\n /**\n * remove components from the workspace.\n */\n async removeLocallyByIds(\n ids: ComponentID[],\n { force = false, reasonForRemoval }: { force?: boolean; reasonForRemoval?: string } = {}\n ) {\n if (!this.workspace) throw new OutsideWorkspaceError();\n const results = await removeComponents({\n workspace: this.workspace,\n ids: ComponentIdList.fromArray(ids),\n force,\n remote: false,\n track: false,\n deleteFiles: true,\n });\n await this.workspace.bitMap.write(`remove (by ${reasonForRemoval || 'N/A'})`);\n\n return results;\n }\n\n private async markRemoveComps(\n componentIds: ComponentID[],\n { updateMain, range, snaps }: DeleteOpts\n ): Promise<Component[]> {\n const allComponentsToMarkDeleted = await this.workspace.getMany(componentIds);\n\n const componentsToDeleteFromFs = range || snaps ? [] : allComponentsToMarkDeleted;\n const componentsIdsToDeleteFromFs = ComponentIdList.fromArray(componentsToDeleteFromFs.map((c) => c.id));\n await removeComponentsFromNodeModules(\n this.workspace.consumer,\n componentsToDeleteFromFs.map((c) => c.state._consumer)\n );\n // don't use `this.workspace.addSpecificComponentConfig`, if the component has component.json it will be deleted\n // during this removal along with the entire component dir.\n // in case this is range, the \"removed\" property is set to false. even when the range overlap the current version.\n // the reason is that if we set it to true, then, the component is considered as \"deleted\" for *all* versions.\n // remember that this config is always passed to the next version and if we set removed: true, it'll be copied\n // to the next version even when that version is not in the range.\n const config: RemoveInfo = { removed: !(range || snaps) };\n if (updateMain) config.removeOnMain = true;\n if (range) config.range = range;\n if (snaps && snaps.length) config.snaps = snaps;\n componentIds.forEach((compId) => this.workspace.bitMap.addComponentConfig(compId, RemoveAspect.id, config));\n await this.workspace.bitMap.write('delete');\n await deleteComponentsFiles(this.workspace.consumer, componentsIdsToDeleteFromFs);\n\n return componentsToDeleteFromFs;\n }\n\n async deleteComps(componentsPattern: string, opts: DeleteOpts = {}): Promise<Component[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n const componentIds = await this.workspace.idsByPattern(componentsPattern);\n const newComps = componentIds.filter((id) => !id.hasVersion());\n if (newComps.length) {\n throw new BitError(\n `no need to delete the following new component(s), please remove them by \"bit remove\"\\n${newComps\n .map((id) => id.toString())\n .join('\\n')}`\n );\n }\n const currentLane = await this.workspace.getCurrentLaneObject();\n const { updateMain } = opts;\n if (!updateMain && currentLane?.isNew) {\n throw new Error(\n 'no need to delete components from an un-exported lane, you can remove them by running \"bit remove\"'\n );\n }\n if (currentLane && !updateMain && opts.range) {\n throw new BitError(`--range is not needed when deleting components from a lane, unless --update-main is used`);\n }\n if (currentLane && !updateMain) {\n const laneComp = currentLane.toComponentIds();\n const compIdsNotOnLane = componentIds.filter((id) => !laneComp.hasWithoutVersion(id));\n if (compIdsNotOnLane.length) {\n throw new BitError(\n `unable to delete the following component(s) because they are not part of the current lane.\n${chalk.bold(compIdsNotOnLane.map((id) => id.toString()).join('\\n'))}\nto simply remove them from the workspace, use \"bit remove\".\nto delete them eventually from main, use \"--update-main\" flag and make sure to remove all occurrences from the code.`\n );\n }\n }\n\n // when soft-deleting from a lane, components that still have dependents in the workspace will keep\n // referencing the now-deleted lane snap version (0.0.0-<hash>), which was never published to the registry.\n // to avoid a \"No matching version found\" error on the next \"bit install\", pin those components to their\n // main (published) version in the workspace policy - mirroring what running \"bit install <pkg>\" does manually.\n // this must be computed before the removal so the dependency graph is still intact.\n const isLaneSoftDelete = Boolean(currentLane) && !updateMain && !opts.range && !opts.snaps;\n // best-effort: never let this convenience break the actual deletion. on failure the user can still\n // recover via the manual \"bit install <pkg>\" workaround.\n const depsToPinToMain = isLaneSoftDelete\n ? await this.getDeletedDepsToPinToMain(componentIds).catch((err) => {\n this.logger.warn(`getDeletedDepsToPinToMain failed: ${err.message}`);\n return [];\n })\n : [];\n\n const removedComps = await this.markRemoveComps(componentIds, opts);\n\n if (depsToPinToMain.length) {\n await this.pinDepsToMainInWorkspacePolicy(depsToPinToMain).catch((err) => {\n this.logger.warn(`pinDepsToMainInWorkspacePolicy failed: ${err.message}`);\n });\n }\n\n return removedComps;\n }\n\n /**\n * out of the given deleted ids, build workspace-policy entries pinning to the latest tagged version on main,\n * for those that still have at least one dependent in the workspace (excluding other components being deleted\n * in the same operation). the version is resolved locally from the scope (no network), so \"bit delete\" stays\n * a fast, offline-capable, local operation.\n * only a tagged (published) main version is used. a component with no tag on main (only snaps, or it only ever\n * existed on the lane) is skipped - pinning a snap version would re-introduce the \"No matching version\" failure\n * this feature is meant to prevent, since snaps aren't fetchable as a regular registry package.\n * envs are excluded on purpose: a deleted env surfaces as a \"RemovedEnv\" issue so the user can replace it\n * explicitly (bit env replace), and we don't want to silently pin it to its main version and suppress that\n * signal. only regular dependencies (e.g. a dependency of an env) need pinning so they install from main.\n */\n private async getDeletedDepsToPinToMain(deletedIds: ComponentID[]): Promise<WorkspacePolicyEntry[]> {\n const graph = await this.workspace.getGraphIds(undefined, false);\n const deletedIdList = ComponentIdList.fromArray(deletedIds);\n const idsWithDependents = deletedIds.filter((id) => {\n const dependents = graph.predecessors(id.toString(), {\n nodeFilter: (node) => this.workspace.hasId(node.attr) && !deletedIdList.hasWithoutVersion(node.attr),\n });\n return dependents.length > 0;\n });\n if (!idsWithDependents.length) return [];\n const isEnvFlags = await Promise.all(idsWithDependents.map((id) => this.isEnvByIdWithoutLoadingComponent(id)));\n const nonEnvIds = idsWithDependents.filter((_id, index) => !isEnvFlags[index]);\n if (!nonEnvIds.length) return [];\n const comps = await this.workspace.getMany(nonEnvIds);\n const entries = await Promise.all(\n comps.map(async (comp): Promise<WorkspacePolicyEntry | undefined> => {\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(comp.id.changeVersion(undefined));\n // the latest tagged version on main. undefined means there's no published release on main to pin to.\n const mainVersion = modelComponent?.latestVersionIfExist();\n if (!mainVersion) return undefined;\n const versionWithPrefix = this.depResolver.getVersionWithSavePrefix({ version: mainVersion });\n return {\n dependencyId: this.depResolver.getPackageName(comp),\n value: { version: versionWithPrefix },\n lifecycleType: 'runtime',\n };\n })\n );\n return compact(entries);\n }\n\n /**\n * add the given (deleted-on-lane) policy entries to the workspace policy, so their dependents install them\n * from the registry (their main version) instead of the non-published lane snap version.\n */\n private async pinDepsToMainInWorkspacePolicy(entries: WorkspacePolicyEntry[]): Promise<void> {\n // skipIfExisting so we never override a version the user already set explicitly in the workspace policy.\n this.depResolver.addToRootPolicy(entries, { skipIfExisting: true });\n await this.depResolver.persistConfig('delete (pin deleted-on-lane deps to main)');\n const items = entries.map((entry) => formatItem(`${entry.dependencyId}@${entry.value.version}`));\n this.logger.console(\n formatSection(\n 'pinned deleted components to their main version',\n 'these components were deleted from the lane but still have dependents in the workspace, so they were added to the workspace policy to be installed from main',\n items\n )\n );\n }\n\n /**\n * recover soft-removed component(s) matching a pattern.\n * supports component patterns (e.g., \"comp1\", \"org.scope/*\", etc.)\n * returns array of recovered component IDs\n */\n async recover(pattern: string, options: RecoverOptions): Promise<ComponentID[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n\n const componentsToRecover = await this.getComponentsToRecover(pattern);\n if (componentsToRecover.length === 0) {\n return [];\n }\n\n // Classify components by recovery scenario\n const componentsToProcess = await Promise.all(\n componentsToRecover.map((compId) => this.classifyComponentForRecovery(compId))\n );\n\n // Collect all components that need importing\n const idsToImport = componentsToProcess\n .filter((item) => item.action === 'import' || item.action === 'deleteConfigAndImport')\n .map((item) => item.idToImport!);\n\n // Import all at once for better performance\n if (idsToImport.length > 0) {\n await this.importer.import({\n ids: idsToImport,\n installNpmPackages: !options.skipDependencyInstallation,\n writeConfigFiles: !options.skipWriteConfigFiles,\n override: true,\n });\n }\n\n // Process each component according to its classification\n for (const item of componentsToProcess) {\n if (!item.shouldRecover) continue;\n\n if (item.action === 'writeFromScope') {\n // Case #1a: write from local scope and remove the \"removed\" config\n const compFromScope = await this.workspace.scope.get(item.bitMapEntry!.id);\n if (compFromScope) {\n await this.workspace.write(compFromScope, item.bitMapEntry!.rootDir);\n this.workspace.bitMap.removeComponentConfig(item.bitMapEntry!.id, RemoveAspect.id, false);\n }\n } else if (item.action === 'deleteConfigAndImport') {\n // Case #1b: delete config entry before import\n delete item.bitMapEntry!.config?.[RemoveAspect.id];\n } else {\n // Cases #2, #3, #4, #5: set removed: false\n await this.workspace.addSpecificComponentConfig(item.compId, RemoveAspect.id, { removed: false });\n }\n }\n\n // Write bitmap once at the end\n await this.workspace.bitMap.write('recover');\n\n return componentsToRecover.filter((_, idx) => componentsToProcess[idx].shouldRecover);\n }\n\n /**\n * Classify a component to determine how it should be recovered.\n * This implements the 5 different recovery scenarios.\n */\n private async classifyComponentForRecovery(compId: ComponentID): Promise<{\n compId: ComponentID;\n shouldRecover: boolean;\n action: 'writeFromScope' | 'deleteConfigAndImport' | 'updateConfig' | 'import' | 'none';\n bitMapEntry?: any;\n idToImport?: string;\n }> {\n if (!this.workspace) throw new ConsumerNotFound();\n\n const bitMapEntry = this.workspace.bitMap.getBitmapEntryIfExist(compId, { ignoreVersion: true });\n\n // Case #1: Component in .bitmap with \"removed\" aspect entry\n if (bitMapEntry?.config?.[RemoveAspect.id]) {\n const compFromScope = await this.workspace.scope.get(bitMapEntry.id);\n if (compFromScope) {\n // Case #1a: exists in local scope - write from there\n return {\n compId: bitMapEntry.id,\n shouldRecover: true,\n action: 'writeFromScope',\n bitMapEntry,\n };\n }\n // Case #1b: not in local scope - import it\n return {\n compId: bitMapEntry.id,\n shouldRecover: true,\n action: 'deleteConfigAndImport',\n bitMapEntry,\n idToImport: bitMapEntry.id.toString(),\n };\n }\n\n // Case #4: Component in .bitmap without \"removed\" aspect entry\n if (bitMapEntry) {\n const comp = await this.workspace.get(compId);\n const removeInfo = await this.getRemoveInfo(comp);\n if (!removeInfo.removed && !removeInfo.range && !removeInfo.snaps) {\n return { compId, shouldRecover: false, action: 'none' };\n }\n return {\n compId,\n shouldRecover: true,\n action: 'updateConfig',\n };\n }\n\n // Cases #2, #3, #5: Component not in .bitmap\n const currentLane = await this.workspace.getCurrentLaneObject();\n const idOnLane = currentLane?.getComponent(compId);\n const compIdWithPossibleVer = idOnLane ? compId.changeVersion(idOnLane.head.toString()) : compId;\n const compFromScope = await this.workspace.scope.get(compIdWithPossibleVer);\n\n if (compFromScope && (await this.isDeleted(compFromScope))) {\n // Cases #2 and #3: soft-removed and snapped/exported\n return {\n compId: compIdWithPossibleVer,\n shouldRecover: true,\n action: 'import',\n idToImport: compIdWithPossibleVer._legacy.toString(),\n };\n }\n\n // Case #5: workspace is empty, component on remote\n let comp: Component | undefined;\n try {\n comp = await this.workspace.scope.getRemoteComponent(compId);\n } catch (err: any) {\n if (err instanceof NoHeadNoVersion) {\n throw new BitError(\n `unable to find the component ${compIdWithPossibleVer.toString()} in the current lane or main`\n );\n }\n throw err;\n }\n if (!(await this.isDeleted(comp))) {\n return { compId, shouldRecover: false, action: 'none' };\n }\n return {\n compId,\n shouldRecover: true,\n action: 'import',\n idToImport: compId._legacy.toString(),\n };\n }\n\n /**\n * get all components matching the pattern that are soft-removed and can be recovered\n */\n private async getComponentsToRecover(pattern: string): Promise<ComponentID[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n\n // Check if pattern contains wildcards\n if (hasWildcard(pattern)) {\n // Get all soft-removed components from different sources\n const locallySoftRemoved = this.workspace.consumer.bitMap.getRemoved();\n const componentsList = this.workspace.componentList;\n const remotelySoftRemoved = await componentsList.listRemotelySoftRemoved();\n const remotelySoftRemovedIds = remotelySoftRemoved.map((c) => c.componentId);\n\n // Also check components on the current lane that might be soft-removed\n const removedStaged = await this.getRemovedStaged();\n\n // Combine all soft-removed components\n const allSoftRemoved = [...locallySoftRemoved, ...remotelySoftRemovedIds, ...removedStaged];\n\n // Use the same pattern matching logic as filterIdsFromPoolIdsByPattern\n const matches = await this.workspace.scope.filterIdsFromPoolIdsByPattern(pattern, allSoftRemoved, false);\n\n return ComponentIdList.uniqFromArray(matches);\n }\n\n // Single component - try to resolve it\n const bitMapEntry = this.workspace.consumer.bitMap.components.find((compMap) => {\n return compMap.id.fullName === pattern || compMap.id.toStringWithoutVersion() === pattern;\n });\n if (bitMapEntry) {\n return [bitMapEntry.id];\n }\n const compId = await this.workspace.scope.resolveComponentId(pattern);\n return [compId];\n }\n\n private async throwForMainComponentWhenOnLane(components: Component[]) {\n const currentLane = await this.workspace.getCurrentLaneObject();\n if (!currentLane) return; // user on main\n const laneComps = currentLane.toBitIds();\n const mainComps = components.filter((comp) => !laneComps.hasWithoutVersion(comp.id));\n if (mainComps.length) {\n throw new BitError(`the following components belong to main, they cannot be soft-removed when on a lane. consider removing them without --soft.\n${mainComps.map((c) => c.id.toString()).join('\\n')}`);\n }\n }\n\n async getRemoveInfo(component: Component): Promise<RemoveInfo> {\n const headComponent = await this.getHeadComponent(component);\n const data = headComponent.config.extensions.findExtension(RemoveAspect.id)?.config as RemoveInfo | undefined;\n\n const isDeletedByRange = () => {\n if (!data?.range) return false;\n const currentTag = component.getTag();\n return Boolean(currentTag && semver.satisfies(currentTag.version, data.range));\n };\n const isDeletedBySnaps = () => {\n if (!data?.snaps || !component.id.version) return false;\n return data.snaps.includes(component.id.version);\n };\n\n return {\n removed: data?.removed || isDeletedByRange() || isDeletedBySnaps() || false,\n range: data?.range,\n snaps: data?.snaps,\n };\n }\n\n private async getHeadComponent(component: Component): Promise<Component> {\n if (\n component.id.version &&\n component.head &&\n component.id.version !== component.head?.hash &&\n component.id.version !== component.headTag?.version.version\n ) {\n const headComp = this.workspace // if workspace exits, prefer using the workspace as it may be modified\n ? await this.workspace.get(component.id.changeVersion(undefined))\n : await this.scope.get(component.id.changeVersion(component.head.hash));\n if (!headComp) throw new Error(`unable to get the head of ${component.id.toString()}`);\n return headComp;\n }\n return component;\n }\n\n /**\n * @deprecated use `isDeleted` instead.\n */\n async isRemoved(component: Component): Promise<boolean> {\n return this.isDeleted(component);\n }\n\n /**\n * whether a component is marked as deleted.\n */\n async isDeleted(component: Component): Promise<boolean> {\n const removeInfo = await this.getRemoveInfo(component);\n return removeInfo.removed;\n }\n\n /**\n * performant version of isRemoved() in case the component object is not available and loading it is expensive.\n */\n async isRemovedByIdWithoutLoadingComponent(componentId: ComponentID): Promise<boolean> {\n if (!componentId.hasVersion()) return false;\n const bitmapEntry = this.workspace.bitMap.getBitmapEntryIfExist(componentId);\n if (bitmapEntry && bitmapEntry.isRemoved()) return true;\n if (bitmapEntry && bitmapEntry.isRecovered()) return false;\n const modelComp = await this.workspace.scope.getBitObjectModelComponent(componentId.changeVersion(undefined));\n if (!modelComp) return false;\n const isRemoved = await modelComp.isRemoved(\n this.workspace.scope.legacyScope.objects,\n componentId.version as string\n );\n return Boolean(isRemoved);\n }\n\n async isEnvByIdWithoutLoadingComponent(componentId: ComponentID): Promise<boolean> {\n const versionObj = await this.workspace.scope.getBitObjectVersionById(componentId);\n const envData = versionObj?.extensions.findCoreExtension('teambit.envs/envs');\n return envData?.data.type === 'env';\n }\n\n /**\n * get components that were soft-removed and tagged/snapped/merged but not exported yet.\n */\n async getRemovedStaged(): Promise<ComponentID[]> {\n return this.workspace.isOnMain() ? this.getRemovedStagedFromMain() : this.getRemovedStagedFromLane();\n }\n\n async addRemovedDependenciesIssues(components: Component[]) {\n const workspacePolicyManifest = this.depResolver.getWorkspacePolicyManifest();\n const workspaceDependencies = {\n ...workspacePolicyManifest.dependencies,\n ...workspacePolicyManifest.peerDependencies,\n };\n const installedDeps = Object.keys(workspaceDependencies);\n await pMapSeries(components, async (component) => {\n await this.addRemovedDepIssue(component, installedDeps);\n });\n }\n\n private async addRemovedDepIssue(component: Component, installedDeps: string[]) {\n const dependencies = this.depResolver.getComponentDependencies(component);\n const removedDependencies: ComponentID[] = [];\n let removedEnv: ComponentID | undefined;\n\n await Promise.all(\n dependencies.map(async (dep) => {\n const isRemoved = await this.isRemovedByIdWithoutLoadingComponent(dep.componentId);\n if (!isRemoved) return;\n\n // a component can be deleted from the workspace and installed as a package in different version.\n // normally, this is happening when checked out to a lane and a component is deleted from the lane.\n // the user still wants to use it but not as part of the lane.\n const packageName = dep.getPackageName();\n const isAvailableAsInstalledPackage = installedDeps.includes(packageName);\n const bitmapEntry = this.workspace.bitMap.getBitmapEntryIfExist(dep.componentId);\n if (bitmapEntry && isAvailableAsInstalledPackage && bitmapEntry.version !== dep.version) {\n return;\n }\n\n const isEnv = await this.isEnvByIdWithoutLoadingComponent(dep.componentId);\n if (isEnv) {\n removedEnv = dep.componentId;\n } else {\n removedDependencies.push(dep.componentId);\n }\n })\n );\n if (removedDependencies.length) {\n component.state.issues.getOrCreate(IssuesClasses.RemovedDependencies).data = removedDependencies.map((r) =>\n r.toString()\n );\n }\n if (removedEnv) {\n component.state.issues.getOrCreate(IssuesClasses.RemovedEnv).data = removedEnv.toString();\n }\n }\n\n private async getRemovedStagedFromMain(): Promise<ComponentID[]> {\n const stagedConfig = await this.workspace.scope.getStagedConfig();\n return stagedConfig\n .getAll()\n .filter((compConfig) => compConfig.config?.[RemoveAspect.id]?.removed)\n .map((compConfig) => compConfig.id);\n }\n\n private async getRemovedStagedFromLane(): Promise<ComponentID[]> {\n const currentLane = await this.workspace.getCurrentLaneObject();\n if (!currentLane) return [];\n const laneIds = currentLane.toComponentIds();\n const workspaceIds = this.workspace.listIds();\n const laneCompIdsNotInWorkspace = laneIds.filter(\n (id) => !workspaceIds.find((wId) => wId.isEqualWithoutVersion(id))\n );\n if (!laneCompIdsNotInWorkspace.length) return [];\n const comps = await this.workspace.scope.getMany(laneCompIdsNotInWorkspace);\n const removed = comps.filter((c) => this.isDeleted(c));\n const staged = await Promise.all(\n removed.map(async (c) => {\n const snapDistance = await this.workspace.scope.getSnapDistance(c.id, false);\n if (snapDistance.err) {\n this.logger.warn(\n `getRemovedStagedFromLane unable to get snapDistance for ${c.id.toString()} due to ${snapDistance.err.name}`\n );\n // todo: not clear what should be done here. should we consider it as removed-staged or not.\n }\n if (snapDistance.isSourceAhead()) return c.id;\n return undefined;\n })\n );\n return compact(staged);\n }\n\n private async getLocalBitIdsToRemove(componentsPattern: string): Promise<ComponentID[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n const componentIds = await this.workspace.idsByPattern(componentsPattern);\n return componentIds.map((id) => id);\n }\n\n private async getRemoteBitIdsToRemove(componentsPattern: string): Promise<ComponentID[]> {\n if (hasWildcard(componentsPattern)) {\n return this.lister.getRemoteCompIdsByWildcards(componentsPattern);\n }\n return [ComponentID.fromString(componentsPattern)];\n }\n\n static slots = [];\n static dependencies = [\n WorkspaceAspect,\n ScopeAspect,\n CLIAspect,\n LoggerAspect,\n ComponentAspect,\n ImporterAspect,\n DependencyResolverAspect,\n IssuesAspect,\n ListerAspect,\n ];\n static runtime = MainRuntime;\n\n static async provider([\n workspace,\n scope,\n cli,\n loggerMain,\n componentAspect,\n importerMain,\n depResolver,\n issues,\n lister,\n ]: [\n Workspace,\n ScopeMain,\n CLIMain,\n LoggerMain,\n ComponentMain,\n ImporterMain,\n DependencyResolverMain,\n IssuesMain,\n ListerMain,\n ]) {\n const logger = loggerMain.createLogger(RemoveAspect.id);\n const removeMain = new RemoveMain(workspace, scope, logger, importerMain, depResolver, lister);\n issues.registerAddComponentsIssues(removeMain.addRemovedDependenciesIssues.bind(removeMain));\n componentAspect.registerShowFragments([new RemoveFragment(removeMain)]);\n cli.register(\n new RemoveCmd(removeMain, workspace),\n new DeleteCmd(removeMain, workspace),\n new RecoverCmd(removeMain)\n );\n return removeMain;\n }\n}\n\nRemoveAspect.addRuntime(RemoveMain);\n\nexport default RemoveMain;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/remove",
3
- "version": "1.0.1032",
3
+ "version": "1.0.1034",
4
4
  "homepage": "https://bit.cloud/teambit/component/remove",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "remove",
9
- "version": "1.0.1032"
9
+ "version": "1.0.1034"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -34,13 +34,13 @@
34
34
  "@teambit/component-issues": "0.0.174",
35
35
  "@teambit/legacy.utils": "0.0.39",
36
36
  "@teambit/logger": "0.0.1435",
37
- "@teambit/workspace": "1.0.1032",
38
- "@teambit/component": "1.0.1032",
39
- "@teambit/dependency-resolver": "1.0.1032",
40
- "@teambit/importer": "1.0.1032",
41
- "@teambit/issues": "1.0.1032",
42
- "@teambit/lister": "1.0.1032",
43
- "@teambit/scope": "1.0.1032"
37
+ "@teambit/workspace": "1.0.1034",
38
+ "@teambit/component": "1.0.1034",
39
+ "@teambit/dependency-resolver": "1.0.1034",
40
+ "@teambit/importer": "1.0.1034",
41
+ "@teambit/issues": "1.0.1034",
42
+ "@teambit/lister": "1.0.1034",
43
+ "@teambit/scope": "1.0.1034"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/fs-extra": "9.0.7",