@teambit/importer 1.0.194 → 1.0.196
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/__bit_junit.xml +1 -1
- package/artifacts/preview/teambit_scope_importer-preview.js +1 -1
- package/artifacts/schema.json +267 -227
- package/dist/dependents-getter.js +4 -3
- package/dist/dependents-getter.js.map +1 -1
- package/dist/import-components.d.ts +1 -0
- package/dist/import-components.js +1 -1
- package/dist/import-components.js.map +1 -1
- package/dist/import.cmd.d.ts +1 -0
- package/dist/import.cmd.js +3 -1
- package/dist/import.cmd.js.map +1 -1
- package/dist/importer.composition.d.ts +1 -1
- package/dist/{preview-1710386299630.js → preview-1710559018008.js} +2 -2
- package/package.json +12 -12
|
@@ -61,7 +61,8 @@ class DependentsGetter {
|
|
|
61
61
|
async getDependents(targetCompIds) {
|
|
62
62
|
this.logger.setStatusLine('finding dependents');
|
|
63
63
|
const {
|
|
64
|
-
silent
|
|
64
|
+
silent,
|
|
65
|
+
dependentsAll
|
|
65
66
|
} = this.options;
|
|
66
67
|
const graph = await this.graph.getGraphIds();
|
|
67
68
|
const sourceIds = this.workspace.listIds();
|
|
@@ -70,7 +71,7 @@ class DependentsGetter {
|
|
|
70
71
|
return this.options.dependentsVia.split(',').map(idStr => idStr.trim()).map(id => _componentId().ComponentID.fromString(id));
|
|
71
72
|
};
|
|
72
73
|
const allPaths = graph.findAllPathsFromSourcesToTargets(sourceIds, targetCompIds, getIdsForThrough());
|
|
73
|
-
const selectedPaths = silent ? allPaths : await this.promptDependents(allPaths);
|
|
74
|
+
const selectedPaths = silent || dependentsAll ? allPaths : await this.promptDependents(allPaths);
|
|
74
75
|
const uniqAsStrings = (0, _lodash().uniq)(selectedPaths.flat());
|
|
75
76
|
const ids = [];
|
|
76
77
|
const idsToFilterOut = _componentId().ComponentIdList.fromArray([...sourceIds, ...targetCompIds]);
|
|
@@ -100,7 +101,7 @@ class DependentsGetter {
|
|
|
100
101
|
if (!allPaths.length) return [];
|
|
101
102
|
this.logger.clearStatusLine();
|
|
102
103
|
const totalToShow = SHOW_ALL_PATHS_LIMIT;
|
|
103
|
-
if (allPaths.length
|
|
104
|
+
if (allPaths.length > totalToShow) {
|
|
104
105
|
return this.promptLevelByLevel(allPaths);
|
|
105
106
|
}
|
|
106
107
|
const firstItems = allPaths.slice(0, totalToShow);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_yesno","data","_interopRequireDefault","require","_enquirer","_lodash","_chalk","_componentId","_bitError","obj","__esModule","default","SHOW_ALL_PATHS_LIMIT","SCROLL_LIMIT","DependentsGetter","constructor","logger","workspace","graph","options","getDependents","targetCompIds","setStatusLine","silent","getGraphIds","sourceIds","listIds","getIdsForThrough","dependentsVia","undefined","split","map","idStr","trim","id","ComponentID","fromString","allPaths","findAllPathsFromSourcesToTargets","selectedPaths","promptDependents","uniqAsStrings","uniq","flat","ids","idsToFilterOut","ComponentIdList","fromArray","forEach","hasWithoutVersion","sameIds","filter","idString","startsWith","toStringWithoutVersion","idToImport","length","changeVersion","push","idsStr","toString","debug","clearStatusLine","question","join","ok","yesno","BitError","totalToShow","promptLevelByLevel","firstItems","slice","choices","path","name","value","tooManyPathsMsg","chalk","yellow","result","prompt","footer","indicator","state","choice","enabled","message","cyan","pointer","styles","dark","white","em","bgBlack","whiteBright","success","type","validate","j","down","k","up","names","cancel","Object","values","selectDependents","Error","finalPath","console","getPrompt","level","totalPaths","AutoComplete","limit","dim","header","getLevel","withinPaths","compact","sort","processLevel","paths","previousLevel","pathsWithinThisLevel","nextLevel","consoleSuccess","promptNextLevel","resultNextLevel","run","exports"],"sources":["dependents-getter.ts"],"sourcesContent":["import yesno from 'yesno';\n// @ts-ignore AutoComplete is actually there, the d.ts is probably outdated\nimport { prompt, AutoComplete } from 'enquirer';\nimport { compact, uniq } from 'lodash';\nimport chalk from 'chalk';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { GraphMain } from '@teambit/graph';\nimport { Logger } from '@teambit/logger';\nimport { Workspace } from '@teambit/workspace';\nimport { BitError } from '@teambit/bit-error';\nimport { ImportOptions } from './import-components';\n\nconst SHOW_ALL_PATHS_LIMIT = 10;\nconst SCROLL_LIMIT = 20;\n\nexport class DependentsGetter {\n constructor(\n private logger: Logger,\n private workspace: Workspace,\n private graph: GraphMain,\n private options: ImportOptions\n ) {}\n\n async getDependents(targetCompIds: ComponentID[]): Promise<ComponentID[]> {\n this.logger.setStatusLine('finding dependents');\n const { silent } = this.options;\n const graph = await this.graph.getGraphIds();\n const sourceIds = this.workspace.listIds();\n const getIdsForThrough = () => {\n if (!this.options.dependentsVia) return undefined;\n return this.options.dependentsVia\n .split(',')\n .map((idStr) => idStr.trim())\n .map((id) => ComponentID.fromString(id));\n };\n const allPaths = graph.findAllPathsFromSourcesToTargets(sourceIds, targetCompIds, getIdsForThrough());\n const selectedPaths = silent ? allPaths : await this.promptDependents(allPaths);\n const uniqAsStrings = uniq(selectedPaths.flat());\n\n const ids: ComponentID[] = [];\n const idsToFilterOut = ComponentIdList.fromArray([...sourceIds, ...targetCompIds]);\n uniqAsStrings.forEach((idStr) => {\n const id = ComponentID.fromString(idStr);\n if (idsToFilterOut.hasWithoutVersion(id)) return;\n const sameIds = uniqAsStrings.filter((idString) => idString.startsWith(`${id.toStringWithoutVersion()}@`));\n const idToImport = sameIds.length === 1 ? id : id.changeVersion(undefined);\n ids.push(idToImport);\n idsToFilterOut.push(idToImport);\n });\n\n const idsStr = ids.map((id) => id.toString());\n\n this.logger.debug(`found ${ids.length} component for --dependents flag`, idsStr);\n if (!this.options.silent) {\n this.logger.clearStatusLine();\n const question = idsStr.length\n ? `found the following ${ids.length} components for --dependents flag:\\n${idsStr.join('\\n')}`\n : 'unable to find dependents for the given component (probably the workspace components using it directly)';\n const ok = await yesno({\n question: `${question}\\nWould you like to continue with the import? [yes(y)/no(n)]`,\n });\n if (!ok) {\n throw new BitError('import was aborted');\n }\n }\n\n return ids;\n }\n\n private async promptDependents(allPaths: string[][]): Promise<string[][]> {\n if (!allPaths.length) return [];\n this.logger.clearStatusLine();\n\n const totalToShow = SHOW_ALL_PATHS_LIMIT;\n if (allPaths.length >= totalToShow) {\n return this.promptLevelByLevel(allPaths);\n }\n const firstItems = allPaths.slice(0, totalToShow);\n const choices = firstItems.map((path) => {\n const name = path.join(' -> ');\n return { name, value: path };\n });\n const tooManyPathsMsg =\n allPaths.length > totalToShow\n ? `${chalk.yellow(\n `\\nfound ${allPaths.length} paths, showing the shortest ${totalToShow}. if the desired path is not shown, use the --dependents-via flag`\n )}`\n : '';\n const result = await prompt<{ selectDependents: Record<string, string[]> }>({\n choices,\n footer: '\\nEnter to start importing. Ctrl+C to cancel.',\n indicator: (state: any, choice: any) => ` ${choice.enabled ? '●' : '○'}`,\n message:\n 'Choose which path to include ' +\n `(Press ${chalk.cyan('<space>')} to select, ` +\n `${chalk.cyan('<a>')} to toggle all, ` +\n `${chalk.cyan('<i>')} to invert selection)${tooManyPathsMsg}`,\n name: 'selectDependents',\n pointer: '❯',\n styles: {\n dark: chalk.white,\n em: chalk.bgBlack.whiteBright,\n success: chalk.white,\n },\n type: 'multiselect',\n validate(value: string[]) {\n if (value.length === 0) {\n return 'You must choose at least one path.';\n }\n return true;\n },\n j() {\n return this.down();\n },\n k() {\n return this.up();\n },\n result(names: string[]) {\n // This is needed in order to have the values of the choices in the answer object.\n // Otherwise, only the names of the selected choices would've been included.\n return this.map(names);\n },\n cancel() {\n // By default, canceling the prompt via Ctrl+c throws an empty string.\n // The custom cancel function prevents that behavior.\n // Otherwise, Bit CLI would print an error and confuse users.\n // See related issue: https://github.com/enquirer/enquirer/issues/225\n },\n } as any);\n\n return Object.values(result.selectDependents);\n }\n\n private async promptLevelByLevel(allPaths: string[][]): Promise<string[][]> {\n if (allPaths.length < SHOW_ALL_PATHS_LIMIT) {\n throw new Error(`expected to have at least ${SHOW_ALL_PATHS_LIMIT} paths`);\n }\n const finalPath: string[] = [];\n this.logger\n .console(`found ${allPaths.length} available paths from the workspace components to the target components.\nthe following prompts will guide you to choose the desired path to import.`);\n\n const getPrompt = (choices: string[], level: number, totalPaths: number) => {\n return new AutoComplete({\n name: 'comp',\n message: `Choose which component to include`,\n limit: SCROLL_LIMIT,\n footer() {\n return choices.length >= SCROLL_LIMIT ? chalk.dim('(Scroll up and down to reveal more choices)') : '';\n },\n header() {\n if (level === 1) return '';\n return `total ${totalPaths} paths left (out of ${allPaths.length})`;\n },\n cancel() {\n // By default, canceling the prompt via Ctrl+c throws an empty string.\n // The custom cancel function prevents that behavior.\n // Otherwise, Bit CLI would print an error and confuse users.\n // See related issue: https://github.com/enquirer/enquirer/issues/225\n },\n choices,\n });\n };\n\n const getLevel = (level: number, withinPaths: string[][]): string[] => {\n return compact(uniq(withinPaths.map((path) => path[level]))).sort();\n };\n\n const processLevel = async (level: number, paths: string[][], previousLevel?: string): Promise<string[]> => {\n const pathsWithinThisLevel = previousLevel ? paths.filter((path) => path[level] === previousLevel) : paths;\n const nextLevel = getLevel(level + 1, pathsWithinThisLevel);\n if (!nextLevel.length) {\n return finalPath;\n }\n if (nextLevel.length === 1) {\n finalPath.push(nextLevel[0]);\n this.logger.consoleSuccess(`${nextLevel[0]} (auto-selected)`);\n return processLevel(level + 1, pathsWithinThisLevel, nextLevel[0]);\n }\n const promptNextLevel = getPrompt(nextLevel, level + 1, pathsWithinThisLevel.length);\n const resultNextLevel = await promptNextLevel.run();\n finalPath.push(resultNextLevel);\n return processLevel(level + 1, pathsWithinThisLevel, resultNextLevel);\n };\n\n const result = await processLevel(0, allPaths);\n\n return [result];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_yesno","data","_interopRequireDefault","require","_enquirer","_lodash","_chalk","_componentId","_bitError","obj","__esModule","default","SHOW_ALL_PATHS_LIMIT","SCROLL_LIMIT","DependentsGetter","constructor","logger","workspace","graph","options","getDependents","targetCompIds","setStatusLine","silent","dependentsAll","getGraphIds","sourceIds","listIds","getIdsForThrough","dependentsVia","undefined","split","map","idStr","trim","id","ComponentID","fromString","allPaths","findAllPathsFromSourcesToTargets","selectedPaths","promptDependents","uniqAsStrings","uniq","flat","ids","idsToFilterOut","ComponentIdList","fromArray","forEach","hasWithoutVersion","sameIds","filter","idString","startsWith","toStringWithoutVersion","idToImport","length","changeVersion","push","idsStr","toString","debug","clearStatusLine","question","join","ok","yesno","BitError","totalToShow","promptLevelByLevel","firstItems","slice","choices","path","name","value","tooManyPathsMsg","chalk","yellow","result","prompt","footer","indicator","state","choice","enabled","message","cyan","pointer","styles","dark","white","em","bgBlack","whiteBright","success","type","validate","j","down","k","up","names","cancel","Object","values","selectDependents","Error","finalPath","console","getPrompt","level","totalPaths","AutoComplete","limit","dim","header","getLevel","withinPaths","compact","sort","processLevel","paths","previousLevel","pathsWithinThisLevel","nextLevel","consoleSuccess","promptNextLevel","resultNextLevel","run","exports"],"sources":["dependents-getter.ts"],"sourcesContent":["import yesno from 'yesno';\n// @ts-ignore AutoComplete is actually there, the d.ts is probably outdated\nimport { prompt, AutoComplete } from 'enquirer';\nimport { compact, uniq } from 'lodash';\nimport chalk from 'chalk';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { GraphMain } from '@teambit/graph';\nimport { Logger } from '@teambit/logger';\nimport { Workspace } from '@teambit/workspace';\nimport { BitError } from '@teambit/bit-error';\nimport { ImportOptions } from './import-components';\n\nconst SHOW_ALL_PATHS_LIMIT = 10;\nconst SCROLL_LIMIT = 20;\n\nexport class DependentsGetter {\n constructor(\n private logger: Logger,\n private workspace: Workspace,\n private graph: GraphMain,\n private options: ImportOptions\n ) {}\n\n async getDependents(targetCompIds: ComponentID[]): Promise<ComponentID[]> {\n this.logger.setStatusLine('finding dependents');\n const { silent, dependentsAll } = this.options;\n const graph = await this.graph.getGraphIds();\n const sourceIds = this.workspace.listIds();\n const getIdsForThrough = () => {\n if (!this.options.dependentsVia) return undefined;\n return this.options.dependentsVia\n .split(',')\n .map((idStr) => idStr.trim())\n .map((id) => ComponentID.fromString(id));\n };\n const allPaths = graph.findAllPathsFromSourcesToTargets(sourceIds, targetCompIds, getIdsForThrough());\n const selectedPaths = silent || dependentsAll ? allPaths : await this.promptDependents(allPaths);\n const uniqAsStrings = uniq(selectedPaths.flat());\n\n const ids: ComponentID[] = [];\n const idsToFilterOut = ComponentIdList.fromArray([...sourceIds, ...targetCompIds]);\n uniqAsStrings.forEach((idStr) => {\n const id = ComponentID.fromString(idStr);\n if (idsToFilterOut.hasWithoutVersion(id)) return;\n const sameIds = uniqAsStrings.filter((idString) => idString.startsWith(`${id.toStringWithoutVersion()}@`));\n const idToImport = sameIds.length === 1 ? id : id.changeVersion(undefined);\n ids.push(idToImport);\n idsToFilterOut.push(idToImport);\n });\n\n const idsStr = ids.map((id) => id.toString());\n\n this.logger.debug(`found ${ids.length} component for --dependents flag`, idsStr);\n if (!this.options.silent) {\n this.logger.clearStatusLine();\n const question = idsStr.length\n ? `found the following ${ids.length} components for --dependents flag:\\n${idsStr.join('\\n')}`\n : 'unable to find dependents for the given component (probably the workspace components using it directly)';\n const ok = await yesno({\n question: `${question}\\nWould you like to continue with the import? [yes(y)/no(n)]`,\n });\n if (!ok) {\n throw new BitError('import was aborted');\n }\n }\n\n return ids;\n }\n\n private async promptDependents(allPaths: string[][]): Promise<string[][]> {\n if (!allPaths.length) return [];\n this.logger.clearStatusLine();\n\n const totalToShow = SHOW_ALL_PATHS_LIMIT;\n if (allPaths.length > totalToShow) {\n return this.promptLevelByLevel(allPaths);\n }\n const firstItems = allPaths.slice(0, totalToShow);\n const choices = firstItems.map((path) => {\n const name = path.join(' -> ');\n return { name, value: path };\n });\n const tooManyPathsMsg =\n allPaths.length > totalToShow\n ? `${chalk.yellow(\n `\\nfound ${allPaths.length} paths, showing the shortest ${totalToShow}. if the desired path is not shown, use the --dependents-via flag`\n )}`\n : '';\n const result = await prompt<{ selectDependents: Record<string, string[]> }>({\n choices,\n footer: '\\nEnter to start importing. Ctrl+C to cancel.',\n indicator: (state: any, choice: any) => ` ${choice.enabled ? '●' : '○'}`,\n message:\n 'Choose which path to include ' +\n `(Press ${chalk.cyan('<space>')} to select, ` +\n `${chalk.cyan('<a>')} to toggle all, ` +\n `${chalk.cyan('<i>')} to invert selection)${tooManyPathsMsg}`,\n name: 'selectDependents',\n pointer: '❯',\n styles: {\n dark: chalk.white,\n em: chalk.bgBlack.whiteBright,\n success: chalk.white,\n },\n type: 'multiselect',\n validate(value: string[]) {\n if (value.length === 0) {\n return 'You must choose at least one path.';\n }\n return true;\n },\n j() {\n return this.down();\n },\n k() {\n return this.up();\n },\n result(names: string[]) {\n // This is needed in order to have the values of the choices in the answer object.\n // Otherwise, only the names of the selected choices would've been included.\n return this.map(names);\n },\n cancel() {\n // By default, canceling the prompt via Ctrl+c throws an empty string.\n // The custom cancel function prevents that behavior.\n // Otherwise, Bit CLI would print an error and confuse users.\n // See related issue: https://github.com/enquirer/enquirer/issues/225\n },\n } as any);\n\n return Object.values(result.selectDependents);\n }\n\n private async promptLevelByLevel(allPaths: string[][]): Promise<string[][]> {\n if (allPaths.length < SHOW_ALL_PATHS_LIMIT) {\n throw new Error(`expected to have at least ${SHOW_ALL_PATHS_LIMIT} paths`);\n }\n const finalPath: string[] = [];\n this.logger\n .console(`found ${allPaths.length} available paths from the workspace components to the target components.\nthe following prompts will guide you to choose the desired path to import.`);\n\n const getPrompt = (choices: string[], level: number, totalPaths: number) => {\n return new AutoComplete({\n name: 'comp',\n message: `Choose which component to include`,\n limit: SCROLL_LIMIT,\n footer() {\n return choices.length >= SCROLL_LIMIT ? chalk.dim('(Scroll up and down to reveal more choices)') : '';\n },\n header() {\n if (level === 1) return '';\n return `total ${totalPaths} paths left (out of ${allPaths.length})`;\n },\n cancel() {\n // By default, canceling the prompt via Ctrl+c throws an empty string.\n // The custom cancel function prevents that behavior.\n // Otherwise, Bit CLI would print an error and confuse users.\n // See related issue: https://github.com/enquirer/enquirer/issues/225\n },\n choices,\n });\n };\n\n const getLevel = (level: number, withinPaths: string[][]): string[] => {\n return compact(uniq(withinPaths.map((path) => path[level]))).sort();\n };\n\n const processLevel = async (level: number, paths: string[][], previousLevel?: string): Promise<string[]> => {\n const pathsWithinThisLevel = previousLevel ? paths.filter((path) => path[level] === previousLevel) : paths;\n const nextLevel = getLevel(level + 1, pathsWithinThisLevel);\n if (!nextLevel.length) {\n return finalPath;\n }\n if (nextLevel.length === 1) {\n finalPath.push(nextLevel[0]);\n this.logger.consoleSuccess(`${nextLevel[0]} (auto-selected)`);\n return processLevel(level + 1, pathsWithinThisLevel, nextLevel[0]);\n }\n const promptNextLevel = getPrompt(nextLevel, level + 1, pathsWithinThisLevel.length);\n const resultNextLevel = await promptNextLevel.run();\n finalPath.push(resultNextLevel);\n return processLevel(level + 1, pathsWithinThisLevel, resultNextLevel);\n };\n\n const result = await processLevel(0, allPaths);\n\n return [result];\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -393,7 +393,7 @@ bit import ${idsFromRemote.map(id => id.toStringWithoutVersion()).join(' ')}`);
|
|
|
393
393
|
}
|
|
394
394
|
async getBitIds() {
|
|
395
395
|
const bitIds = this.options.lanes ? await this.getBitIdsForLanes() : await this.getBitIdsForNonLanes();
|
|
396
|
-
const shouldImportDependents = this.options.importDependents || this.options.dependentsVia;
|
|
396
|
+
const shouldImportDependents = this.options.importDependents || this.options.dependentsVia || this.options.dependentsAll;
|
|
397
397
|
if (this.options.importDependenciesDirectly || shouldImportDependents) {
|
|
398
398
|
if (this.options.importDependenciesDirectly) {
|
|
399
399
|
const dependenciesIds = await this.getFlattenedDepsUnique(bitIds);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bitError","data","require","_pMapSeries","_interopRequireDefault","_listScope","_componentId","_loaderMessages","_utils","_hasWildcard","_checkout","_mergeVersion","_componentsPendingMerge","_scopeComponentsImporter","_versionDependencies","_featureToggle","_componentVersion","_lodash","_dependentsGetter","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ImportComponents","constructor","workspace","graph","componentWriter","envs","logger","options","consumer","scope","remoteLane","lanes","importComponents","result","setStatusLine","BEFORE_IMPORT_ACTION","startTime","process","hrtime","ids","length","importObjectsOnLane","consoleSuccess","importSpecificComponents","importAccordingToBitMap","objectsOnly","Error","lane","bitIds","getBitIds","debug","id","toString","beforeImportVersions","_getCurrentVersions","versionDependenciesArr","_importComponentsObjects","mergeAndSaveLaneObject","returnCompleteResults","writtenComponents","componentWriterResults","importDetails","_getImportDetails","missingIds","keys","importedComps","map","c","component","toStringWithoutVersion","forEach","compIdStr","found","includes","push","importedIds","v","flat","importedDeps","allDependenciesIds","installationError","compilationError","workspaceConfigUpdateResult","join","_throwForPotentialIssues","components","multipleVersionDependenciesToConsumer","objects","_fetchDivergeData","_throwForDivergedHistory","throwForComponentsFromAnotherLane","filteredComponents","_filterComponentsByFilters","_writeToFileSystem","_saveLaneDataIfNeeded","mergeLaneResults","sources","mergeLane","mergedLane","isRemoteLaneEqualsToMergedLane","isEqual","saveLane","saveLaneHistory","laneHistoryMsg","filterEnvs","filteredP","currentEnv","calculateEnvIdFromExtensions","extensions","currentEnvWithoutVersion","split","undefined","filtered","compact","Promise","all","modelComponent","getModelComponent","setDivergeData","divergeData","merge","divergedComponents","filter","getDivergeData","isDiverged","snapsLocal","snapsOnSourceOnly","snapsRemote","snapsOnTargetOnly","ComponentsPendingMerge","currentLaneId","getCurrentLaneId","currentRemoteLane","toLaneId","currentLane","getCurrentLaneObject","idsFromAnotherLane","bitId","isOnCurrentLane","isPartOfLaneHistory","isPartOfMainHistory","isIdOnMain","BitError","fromOriginalScope","ignoreMissingHead","scopeComponentsImporter","ScopeComponentsImporter","getInstance","importWithoutDeps","toVersionLatest","cache","includeVersionHistory","fetchHeadIfLocalIsBehind","allHistory","collectParents","includeUnexported","isLaneFromRemote","reason","results","importManyFromOriginalScopes","importMany","preferDependencyGraph","fetchDeps","reFetchUnBuiltVersion","throwForSeederNotFound","getBitIdsForLanes","bitIdsFromLane","toComponentIds","ComponentIdList","bitMapIds","bitMap","getAllBitIds","bitMapIdsToImport","hasScope","has","idsWithWildcard","hasWildcard","idsWithoutWildcard","idsWithoutWildcardPreferFromLane","idStr","getIdFromStr","fromLane","searchWithoutVersion","hasVersion","pMapSeries","idsFromRemote","getRemoteBitIdsByWildcards","includeDeprecated","existingOnLanes","hasWithoutVersion","startsWith","resolveComponentIdFromPackageName","ComponentID","fromString","getBitIdsForNonLanes","shouldImportDependents","importDependents","dependentsVia","importDependenciesDirectly","dependenciesIds","getFlattenedDepsUnique","dependentsGetter","DependentsGetter","dependents","getDependents","uniqFromArray","remoteComps","scopeImporter","getManyRemoteComponents","versions","getVersions","getFlattened","flattenedDependencies","flattenedDeps","flattened","withLatest","removeMultipleVersionsKeepLatest","grouped","toGroupByIdWithoutVersion","latestVersions","latest","getLatestVersionNumber","changeVersion","LATEST_VERSION","override","componentsIdsToImport","getIdsToImportFromBitmap","emptyResult","_throwForModifiedOrNewComponents","flagUsed","allIds","getAllBitIdsFromAllLanes","fromArray","versionsP","getModelComponentIfExist","listVersions","fromPairs","currentVersions","detailsP","afterImportVersions","versionDifference","difference","getStatus","filesStatus","mergeStatus","deprecated","Boolean","isDeprecated","version","removed","isRemoved","latestVersion","getHeadRegardlessOfLaneAsTagOrHash","status","missingDeps","getMissingDependencies","_throwForDifferentComponentWithSameName","trackOnly","componentsStatuses","getManyComponentsStatuses","modifiedComponents","modified","newlyCreated","existingId","getParsedIdIfExist","_getMergeStatus","componentStatus","getComponentStatusById","mergeResults","componentModel","existingBitMapBitId","getComponentId","ignoreVersion","fsComponent","loadComponent","currentlyUsedVersion","baseComponent","loadVersion","otherComponent","threeWayMerge","otherLabel","currentComponent","currentLabel","_updateComponentFilesPerMergeStrategy","componentMergeStatus","files","hasConflicts","mergeStrategy","MergeOptions","ours","file","pathNormalizeToLinux","relative","FileStatus","unchanged","updateComponentId","hasChanged","theirs","updated","modifiedFiles","applyModifiedVersion","updateAllComponentsAccordingToMergeStrategy","componentsStatusP","componentsStatus","componentWithConflict","find","getMergeStrategyInteractive","componentsToWrite","unchangedFiles","_shouldSaveLaneData","isOnLane","idsFromRemoteLanes","comp","existOnRemoteLane","saveInLane","setOnLanesOnly","ref","getRef","addComponent","head","manyComponentsWriterOpts","writeToPath","writeConfig","skipDependencyInstallation","installNpmPackages","skipWriteConfigFiles","writeConfigFiles","verbose","throwForExistingDir","skipWritingToFs","shouldUpdateWorkspaceConfig","isFeatureEnabled","UPDATE_DEPS_ON_IMPORT","reasonForBitmapChange","writeMany","exports"],"sources":["import-components.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport pMapSeries from 'p-map-series';\nimport { getRemoteBitIdsByWildcards } from '@teambit/legacy/dist/api/consumer/lib/list-scope';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { BEFORE_IMPORT_ACTION } from '@teambit/legacy/dist/cli/loader/loader-messages';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { Lane, ModelComponent, Version } from '@teambit/legacy/dist/scope/models';\nimport { getLatestVersionNumber, pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport Component from '@teambit/legacy/dist/consumer/component';\nimport { applyModifiedVersion } from '@teambit/checkout';\nimport {\n FileStatus,\n getMergeStrategyInteractive,\n MergeOptions,\n threeWayMerge,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/merge-version';\nimport { MergeResultsThreeWay } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport ComponentsPendingMerge from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-merge';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport VersionDependencies, {\n multipleVersionDependenciesToConsumer,\n} from '@teambit/legacy/dist/scope/version-dependencies';\nimport { GraphMain } from '@teambit/graph';\nimport { UPDATE_DEPS_ON_IMPORT, isFeatureEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { Workspace } from '@teambit/workspace';\nimport { ComponentWriterMain, ComponentWriterResults, ManyComponentsWriterParams } from '@teambit/component-writer';\nimport { LATEST_VERSION } from '@teambit/component-version';\nimport { EnvsMain } from '@teambit/envs';\nimport { compact, difference, fromPairs } from 'lodash';\nimport { FilesStatus } from '@teambit/merging';\nimport { WorkspaceConfigUpdateResult } from '@teambit/config-merger';\nimport { Logger } from '@teambit/logger';\nimport { DependentsGetter } from './dependents-getter';\n\nexport type ImportOptions = {\n ids: string[]; // array might be empty\n verbose?: boolean;\n merge?: boolean;\n mergeStrategy?: MergeStrategy;\n filterEnvs?: string[];\n writeToPath?: string;\n writeConfig?: boolean;\n override?: boolean;\n installNpmPackages: boolean; // default: true\n writeConfigFiles: boolean; // default: true\n objectsOnly?: boolean;\n importDependenciesDirectly?: boolean; // default: false, normally it imports them as packages, not as imported\n importDependents?: boolean;\n dependentsVia?: string;\n silent?: boolean; // don't show prompt for --dependents flag\n fromOriginalScope?: boolean; // default: false, otherwise, it fetches flattened dependencies from their dependents\n saveInLane?: boolean; // save the imported component on the current lane (won't be available on main)\n lanes?: {\n laneId: LaneId;\n remoteLane?: Lane; // it can be an empty array when a lane is a local lane and doesn't exist on the remote\n };\n allHistory?: boolean;\n fetchDeps?: boolean; // by default, if a component was tagged with > 0.0.900, it has the flattened-deps-graph in the object\n trackOnly?: boolean;\n includeDeprecated?: boolean;\n isLaneFromRemote?: boolean; // whether the `lanes.lane` object is coming directly from the remote.\n};\ntype ComponentMergeStatus = {\n component: Component;\n mergeResults: MergeResultsThreeWay | null | undefined;\n};\ntype ImportedVersions = { [id: string]: string[] };\nexport type ImportStatus = 'added' | 'updated' | 'up to date';\nexport type ImportDetails = {\n id: string;\n versions: string[];\n latestVersion: string | null;\n status: ImportStatus;\n filesStatus: FilesStatus | null | undefined;\n missingDeps: ComponentID[];\n deprecated: boolean;\n removed?: boolean;\n};\nexport type ImportResult = {\n importedIds: ComponentID[];\n importedDeps: ComponentID[];\n writtenComponents?: Component[];\n importDetails: ImportDetails[];\n cancellationMessage?: string;\n installationError?: Error;\n compilationError?: Error;\n workspaceConfigUpdateResult?: WorkspaceConfigUpdateResult;\n missingIds?: string[]; // in case the import is configured to not throw when missing\n lane?: Lane;\n};\n\nexport default class ImportComponents {\n consumer: Consumer;\n scope: Scope;\n mergeStatus: { [id: string]: FilesStatus };\n private remoteLane: Lane | undefined;\n private divergeData: Array<ModelComponent> = [];\n constructor(\n private workspace: Workspace,\n private graph: GraphMain,\n private componentWriter: ComponentWriterMain,\n private envs: EnvsMain,\n private logger: Logger,\n public options: ImportOptions\n ) {\n this.consumer = this.workspace.consumer;\n this.scope = this.consumer.scope;\n this.remoteLane = this.options.lanes?.remoteLane;\n }\n\n async importComponents(): Promise<ImportResult> {\n let result;\n this.logger.setStatusLine(BEFORE_IMPORT_ACTION);\n const startTime = process.hrtime();\n if (this.options.lanes && !this.options.ids.length) {\n result = await this.importObjectsOnLane();\n this.logger.consoleSuccess(BEFORE_IMPORT_ACTION, startTime);\n return result;\n }\n if (this.options.ids.length) {\n result = await this.importSpecificComponents();\n this.logger.consoleSuccess(BEFORE_IMPORT_ACTION, startTime);\n return result;\n }\n result = await this.importAccordingToBitMap();\n this.logger.consoleSuccess(BEFORE_IMPORT_ACTION, startTime);\n return result;\n }\n\n async importObjectsOnLane(): Promise<ImportResult> {\n if (!this.options.objectsOnly) {\n throw new Error(`importObjectsOnLane should have objectsOnly=true`);\n }\n const lane = this.remoteLane;\n const bitIds: ComponentIdList = await this.getBitIds();\n lane\n ? this.logger.debug(`importObjectsOnLane, Lane: ${lane.id()}, Ids: ${bitIds.toString()}`)\n : this.logger.debug(\n `importObjectsOnLane, the lane does not exist on the remote. importing only the main components`\n );\n const beforeImportVersions = await this._getCurrentVersions(bitIds);\n const versionDependenciesArr = await this._importComponentsObjects(bitIds, {\n lane,\n });\n\n if (lane) {\n await this.mergeAndSaveLaneObject(lane);\n }\n\n return this.returnCompleteResults(beforeImportVersions, versionDependenciesArr);\n }\n\n private async returnCompleteResults(\n beforeImportVersions: ImportedVersions,\n versionDependenciesArr: VersionDependencies[],\n writtenComponents?: Component[],\n componentWriterResults?: ComponentWriterResults\n ): Promise<ImportResult> {\n const importDetails = await this._getImportDetails(beforeImportVersions, versionDependenciesArr);\n const missingIds: string[] = [];\n if (Object.keys(beforeImportVersions).length > versionDependenciesArr.length) {\n const importedComps = versionDependenciesArr.map((c) => c.component.id.toStringWithoutVersion());\n Object.keys(beforeImportVersions).forEach((compIdStr) => {\n const found = importedComps.includes(compIdStr);\n if (!found) missingIds.push(compIdStr);\n });\n }\n\n return {\n importedIds: versionDependenciesArr.map((v) => v.component.id).flat(),\n importedDeps: versionDependenciesArr.map((v) => v.allDependenciesIds).flat(),\n writtenComponents,\n importDetails,\n installationError: componentWriterResults?.installationError,\n compilationError: componentWriterResults?.compilationError,\n workspaceConfigUpdateResult: componentWriterResults?.workspaceConfigUpdateResult,\n missingIds,\n lane: this.remoteLane,\n };\n }\n\n async importSpecificComponents(): Promise<ImportResult> {\n this.logger.debug(`importSpecificComponents, Ids: ${this.options.ids.join(', ')}`);\n const bitIds: ComponentIdList = await this.getBitIds();\n const beforeImportVersions = await this._getCurrentVersions(bitIds);\n await this._throwForPotentialIssues(bitIds);\n const versionDependenciesArr = await this._importComponentsObjects(bitIds, {\n lane: this.remoteLane,\n });\n if (this.remoteLane && this.options.objectsOnly) {\n await this.mergeAndSaveLaneObject(this.remoteLane);\n }\n let writtenComponents: Component[] = [];\n let componentWriterResults: ComponentWriterResults | undefined;\n if (!this.options.objectsOnly) {\n const components = await multipleVersionDependenciesToConsumer(versionDependenciesArr, this.scope.objects);\n await this._fetchDivergeData(components);\n this._throwForDivergedHistory();\n await this.throwForComponentsFromAnotherLane(components.map((c) => c.id));\n const filteredComponents = await this._filterComponentsByFilters(components);\n componentWriterResults = await this._writeToFileSystem(filteredComponents);\n await this._saveLaneDataIfNeeded(filteredComponents);\n writtenComponents = filteredComponents;\n }\n\n return this.returnCompleteResults(\n beforeImportVersions,\n versionDependenciesArr,\n writtenComponents,\n componentWriterResults\n );\n }\n\n private async mergeAndSaveLaneObject(lane: Lane) {\n const mergeLaneResults = await this.scope.sources.mergeLane(lane, true);\n const mergedLane = mergeLaneResults.mergeLane;\n const isRemoteLaneEqualsToMergedLane = lane.isEqual(mergedLane);\n await this.scope.lanes.saveLane(mergedLane, {\n saveLaneHistory: !isRemoteLaneEqualsToMergedLane,\n laneHistoryMsg: 'import (merge from remote)',\n });\n }\n\n private async _filterComponentsByFilters(components: Component[]): Promise<Component[]> {\n if (!this.options.filterEnvs) return components;\n const filteredP = components.map(async (component) => {\n // If the id was requested explicitly, we don't want to filter it out\n if (this.options.ids) {\n if (\n this.options.ids.includes(component.id.toStringWithoutVersion()) ||\n this.options.ids.includes(component.id.toString())\n ) {\n return component;\n }\n }\n const currentEnv = await this.envs.calculateEnvIdFromExtensions(component.extensions);\n const currentEnvWithoutVersion = currentEnv.split('@')[0];\n if (\n this.options.filterEnvs?.includes(currentEnv) ||\n this.options.filterEnvs?.includes(currentEnvWithoutVersion)\n ) {\n return component;\n }\n return undefined;\n });\n const filtered = compact(await Promise.all(filteredP));\n return filtered;\n }\n\n async _fetchDivergeData(components: Component[]) {\n if (this.options.objectsOnly) {\n // no need for it when importing objects only. if it's enabled, in case when on a lane and a non-lane\n // component is in bitmap using an older version, it throws \"getDivergeData: unable to find Version X of Y\"\n return;\n }\n await Promise.all(\n components.map(async (component) => {\n const modelComponent = await this.scope.getModelComponent(component.id);\n await modelComponent.setDivergeData(this.scope.objects, undefined, false);\n this.divergeData.push(modelComponent);\n })\n );\n }\n\n _throwForDivergedHistory() {\n if (this.options.merge || this.options.objectsOnly) return;\n const divergedComponents = this.divergeData.filter((modelComponent) =>\n modelComponent.getDivergeData().isDiverged()\n );\n if (divergedComponents.length) {\n const divergeData = divergedComponents.map((modelComponent) => ({\n id: modelComponent.id(),\n snapsLocal: modelComponent.getDivergeData().snapsOnSourceOnly.length,\n snapsRemote: modelComponent.getDivergeData().snapsOnTargetOnly.length,\n }));\n throw new ComponentsPendingMerge(divergeData);\n }\n }\n\n private async throwForComponentsFromAnotherLane(bitIds: ComponentID[]) {\n if (this.options.objectsOnly) return;\n const currentLaneId = this.workspace.getCurrentLaneId();\n const currentRemoteLane = this.remoteLane?.toLaneId().isEqual(currentLaneId) ? this.remoteLane : undefined;\n const currentLane = await this.workspace.getCurrentLaneObject();\n const idsFromAnotherLane: ComponentID[] = [];\n if (currentRemoteLane) {\n await Promise.all(\n bitIds.map(async (bitId) => {\n const isOnCurrentLane =\n (await this.scope.isPartOfLaneHistory(bitId, currentRemoteLane)) ||\n (currentLane && (await this.scope.isPartOfLaneHistory(bitId, currentLane))) ||\n (await this.scope.isPartOfMainHistory(bitId));\n if (!isOnCurrentLane) idsFromAnotherLane.push(bitId);\n })\n );\n } else {\n await Promise.all(\n bitIds.map(async (bitId) => {\n const isIdOnMain = await this.scope.isPartOfMainHistory(bitId);\n if (!isIdOnMain) idsFromAnotherLane.push(bitId);\n })\n );\n }\n if (idsFromAnotherLane.length) {\n throw new BitError(`unable to import the following component(s) as they belong to other lane(s):\n${idsFromAnotherLane.map((id) => id.toString()).join(', ')}\nif you need this specific snap, find the lane this snap is belong to, then run \"bit lane merge <lane-id> [component-id]\" to merge this component from the lane.\nif you just want to get a quick look into this snap, create a new workspace and import it by running \"bit lane import <lane-id> --pattern <component-id>\"`);\n }\n }\n\n private async _importComponentsObjects(\n ids: ComponentIdList,\n {\n fromOriginalScope = false,\n lane,\n ignoreMissingHead = false,\n }: {\n fromOriginalScope?: boolean;\n lane?: Lane;\n ignoreMissingHead?: boolean;\n }\n ): Promise<VersionDependencies[]> {\n const scopeComponentsImporter = ScopeComponentsImporter.getInstance(this.scope);\n await scopeComponentsImporter.importWithoutDeps(ids.toVersionLatest(), {\n cache: false,\n lane,\n includeVersionHistory: true,\n fetchHeadIfLocalIsBehind: !this.options.allHistory,\n collectParents: this.options.allHistory,\n // in case a user is merging a lane into a new workspace, then, locally main has head, but remotely the head is\n // empty, until it's exported. going to the remote and asking this component will throw an error if ignoreMissingHead is false\n ignoreMissingHead: true,\n includeUnexported: this.options.isLaneFromRemote,\n reason: `of their latest on ${lane ? `lane ${lane.id()}` : 'main'}`,\n });\n\n this.logger.setStatusLine(`import ${ids.length} components with their dependencies (if missing)`);\n const results = fromOriginalScope\n ? await scopeComponentsImporter.importManyFromOriginalScopes(ids)\n : await scopeComponentsImporter.importMany({\n ids,\n ignoreMissingHead,\n lane,\n preferDependencyGraph: !this.options.fetchDeps,\n // when user is running \"bit import\", we want to re-fetch if it wasn't built. todo: check if this can be disabled when not needed\n reFetchUnBuiltVersion: true,\n // it's possible that .bitmap is not in sync and has local tags that don't exist on the remote. later, we\n // add them to \"missingIds\" of \"importResult\" and show them to the user\n throwForSeederNotFound: false,\n reason: this.options.fetchDeps\n ? 'for getting all dependencies'\n : `for getting dependencies of components that don't have dependency-graph`,\n });\n\n return results;\n }\n\n /**\n * consider the following use cases:\n * 1) no ids were provided. it should import all the lanes components objects AND main components objects\n * (otherwise, if main components are not imported and are missing, then bit-status complains about it)\n * 2) ids are provided with wildcards. we assume the user wants only the ids that are available on the lane.\n * because a user may entered \"bit import scope/*\" and this scope has many component on the lane and many not on the lane.\n * we want to bring only the components on the lane.\n * 3) ids are provided without wildcards. here, the user knows exactly what's needed and it's ok to get the ids from\n * main if not found on the lane.\n */\n private async getBitIdsForLanes(): Promise<ComponentID[]> {\n if (!this.options.lanes) {\n throw new Error(`getBitIdsForLanes: this.options.lanes must be set`);\n }\n const bitIdsFromLane = this.remoteLane?.toComponentIds() || new ComponentIdList();\n\n if (!this.options.ids.length) {\n const bitMapIds = this.consumer.bitMap.getAllBitIds();\n const bitMapIdsToImport = bitMapIds.filter((id) => id.hasScope() && !bitIdsFromLane.has(id));\n bitIdsFromLane.push(...bitMapIdsToImport);\n\n return bitIdsFromLane;\n }\n\n const idsWithWildcard = this.options.ids.filter((id) => hasWildcard(id));\n const idsWithoutWildcard = this.options.ids.filter((id) => !hasWildcard(id));\n const idsWithoutWildcardPreferFromLane = await Promise.all(\n idsWithoutWildcard.map(async (idStr) => {\n const id = await this.getIdFromStr(idStr);\n const fromLane = bitIdsFromLane.searchWithoutVersion(id);\n return fromLane && !id.hasVersion() ? fromLane : id;\n })\n );\n\n const bitIds: ComponentID[] = [...idsWithoutWildcardPreferFromLane];\n\n if (!idsWithWildcard) {\n return bitIds;\n }\n\n await pMapSeries(idsWithWildcard, async (idStr: string) => {\n const idsFromRemote = await getRemoteBitIdsByWildcards(idStr, this.options.includeDeprecated);\n const existingOnLanes = idsFromRemote.filter((id) => bitIdsFromLane.hasWithoutVersion(id));\n if (!existingOnLanes.length) {\n throw new BitError(`the id with the the wildcard \"${idStr}\" has been parsed to multiple component ids.\nhowever, none of them existing on the lane \"${this.remoteLane?.id()}\".\nin case you intend to import these components from main, please run the following:\nbit import ${idsFromRemote.map((id) => id.toStringWithoutVersion()).join(' ')}`);\n }\n bitIds.push(...existingOnLanes);\n });\n\n return bitIds;\n }\n\n private async getIdFromStr(id: string): Promise<ComponentID> {\n if (id.startsWith('@')) return this.workspace.resolveComponentIdFromPackageName(id);\n return ComponentID.fromString(id); // we don't support importing without a scope name\n }\n\n private async getBitIdsForNonLanes() {\n const bitIds: ComponentID[] = [];\n await Promise.all(\n this.options.ids.map(async (idStr: string) => {\n if (hasWildcard(idStr)) {\n const ids = await getRemoteBitIdsByWildcards(idStr, this.options.includeDeprecated);\n this.logger.setStatusLine(BEFORE_IMPORT_ACTION); // it stops the previous loader of BEFORE_REMOTE_LIST\n bitIds.push(...ids);\n } else {\n const id = await this.getIdFromStr(idStr);\n bitIds.push(id);\n }\n })\n );\n\n return bitIds;\n }\n\n private async getBitIds(): Promise<ComponentIdList> {\n const bitIds: ComponentID[] = this.options.lanes\n ? await this.getBitIdsForLanes()\n : await this.getBitIdsForNonLanes();\n const shouldImportDependents = this.options.importDependents || this.options.dependentsVia;\n if (this.options.importDependenciesDirectly || shouldImportDependents) {\n if (this.options.importDependenciesDirectly) {\n const dependenciesIds = await this.getFlattenedDepsUnique(bitIds);\n bitIds.push(...dependenciesIds);\n }\n if (shouldImportDependents) {\n const dependentsGetter = new DependentsGetter(this.logger, this.workspace, this.graph, this.options);\n const dependents = await dependentsGetter.getDependents(bitIds);\n bitIds.push(...dependents);\n }\n }\n return ComponentIdList.uniqFromArray(bitIds);\n }\n\n private async getFlattenedDepsUnique(bitIds: ComponentID[]): Promise<ComponentID[]> {\n const remoteComps = await this.scope.scopeImporter.getManyRemoteComponents(bitIds);\n const versions = remoteComps.getVersions();\n const getFlattened = (): ComponentIdList => {\n if (versions.length === 1) return versions[0].flattenedDependencies;\n const flattenedDeps = versions.map((v) => v.flattenedDependencies).flat();\n return ComponentIdList.uniqFromArray(flattenedDeps);\n };\n const flattened = getFlattened();\n const withLatest = this.removeMultipleVersionsKeepLatest(flattened);\n return withLatest;\n }\n\n private removeMultipleVersionsKeepLatest(flattened: ComponentIdList): ComponentID[] {\n const grouped = flattened.toGroupByIdWithoutVersion();\n const latestVersions = Object.keys(grouped).map((key) => {\n const ids = grouped[key];\n if (ids.length === 1) return ids[0];\n const latest = getLatestVersionNumber(ids, ids[0].changeVersion(LATEST_VERSION));\n return latest;\n });\n\n return latestVersions;\n }\n\n async importAccordingToBitMap(): Promise<ImportResult> {\n this.options.objectsOnly = !this.options.merge && !this.options.override;\n const componentsIdsToImport = this.getIdsToImportFromBitmap();\n const emptyResult = {\n importedIds: [],\n importedDeps: [],\n importDetails: [],\n };\n if (!componentsIdsToImport.length) {\n return emptyResult;\n }\n await this._throwForModifiedOrNewComponents(componentsIdsToImport);\n const beforeImportVersions = await this._getCurrentVersions(componentsIdsToImport);\n if (!componentsIdsToImport.length) {\n return emptyResult;\n }\n if (!this.options.objectsOnly) {\n const flagUsed = this.options.merge ? '--merge' : '--override';\n throw new Error(`bit import with no ids and ${flagUsed} flag is not supported.\nto write the components from .bitmap file according to the their remote, please use \"bit checkout reset --all\"`);\n }\n const versionDependenciesArr = await this._importComponentsObjects(componentsIdsToImport, {\n fromOriginalScope: this.options.fromOriginalScope,\n });\n let writtenComponents: Component[] = [];\n let componentWriterResults: ComponentWriterResults | undefined;\n if (!this.options.objectsOnly) {\n const components = await multipleVersionDependenciesToConsumer(versionDependenciesArr, this.scope.objects);\n componentWriterResults = await this._writeToFileSystem(components);\n writtenComponents = components;\n }\n\n return this.returnCompleteResults(\n beforeImportVersions,\n versionDependenciesArr,\n writtenComponents,\n componentWriterResults\n );\n }\n\n private getIdsToImportFromBitmap() {\n const allIds = this.consumer.bitMap.getAllBitIdsFromAllLanes();\n return ComponentIdList.fromArray(allIds.filter((id) => id.hasScope()));\n }\n\n async _getCurrentVersions(ids: ComponentIdList): Promise<ImportedVersions> {\n const versionsP = ids.map(async (id) => {\n const modelComponent = await this.consumer.scope.getModelComponentIfExist(id.changeVersion(undefined));\n const idStr = id.toStringWithoutVersion();\n if (!modelComponent) return [idStr, []];\n return [idStr, modelComponent.listVersions()];\n });\n const versions = await Promise.all(versionsP);\n return fromPairs(versions);\n }\n\n /**\n * get import details, includes the diff between the versions array before import and after import\n */\n async _getImportDetails(\n currentVersions: ImportedVersions,\n components: VersionDependencies[]\n ): Promise<ImportDetails[]> {\n const detailsP = components.map(async (component) => {\n const id = component.component.id;\n const idStr = id.toStringWithoutVersion();\n const beforeImportVersions = currentVersions[idStr];\n if (!beforeImportVersions) {\n throw new Error(\n `_getImportDetails failed finding ${idStr} in currentVersions, which has ${Object.keys(currentVersions).join(\n ', '\n )}`\n );\n }\n const modelComponent = await this.consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) throw new BitError(`imported component ${idStr} was not found in the model`);\n const afterImportVersions = modelComponent.listVersions();\n const versionDifference: string[] = difference(afterImportVersions, beforeImportVersions);\n const getStatus = (): ImportStatus => {\n if (!versionDifference.length) return 'up to date';\n if (!beforeImportVersions.length) return 'added';\n return 'updated';\n };\n const filesStatus = this.mergeStatus && this.mergeStatus[idStr] ? this.mergeStatus[idStr] : null;\n const deprecated = Boolean(await modelComponent.isDeprecated(this.scope.objects, id.version));\n const removed = await component.component.component.isRemoved(this.scope.objects);\n const latestVersion = modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);\n return {\n id: idStr,\n versions: versionDifference,\n latestVersion: versionDifference.includes(latestVersion) ? latestVersion : null,\n status: getStatus(),\n filesStatus,\n missingDeps: this.options.fetchDeps ? component.getMissingDependencies() : [],\n deprecated,\n removed,\n };\n });\n const importDetails: ImportDetails[] = await Promise.all(detailsP);\n\n return importDetails;\n }\n\n async _throwForPotentialIssues(ids: ComponentIdList): Promise<void> {\n await this._throwForModifiedOrNewComponents(ids);\n this._throwForDifferentComponentWithSameName(ids);\n }\n\n async _throwForModifiedOrNewComponents(ids: ComponentIdList): Promise<void> {\n // the typical objectsOnly option is when a user cloned a project with components tagged to the source code, but\n // doesn't have the model objects. in that case, calling getComponentStatusById() may return an error as it relies\n // on the model objects when there are dependencies\n if (this.options.override || this.options.objectsOnly || this.options.merge || this.options.trackOnly) return;\n const componentsStatuses = await this.workspace.getManyComponentsStatuses(ids);\n const modifiedComponents = componentsStatuses\n .filter(({ status }) => status.modified || status.newlyCreated)\n .map((c) => c.id);\n if (modifiedComponents.length) {\n throw new BitError(\n `unable to import the following components due to local changes, use --merge flag to merge your local changes or --override to override them\\n${modifiedComponents.join(\n '\\n'\n )} `\n );\n }\n }\n\n /**\n * Model Component id() calculation uses id.toString() for the hash.\n * If an imported component has scopereadonly name equals to a local name, both will have the exact same\n * hash and they'll override each other.\n */\n _throwForDifferentComponentWithSameName(ids: ComponentIdList): void {\n ids.forEach((id: ComponentID) => {\n const existingId = this.consumer.getParsedIdIfExist(id.toStringWithoutVersion());\n if (existingId && !existingId.hasScope()) {\n throw new BitError(`unable to import ${id.toString()}. the component name conflicted with your local component with the same name.\n it's fine to have components with the same name as long as their scope names are different.\n Make sure to export your component first to get a scope and then try importing again`);\n }\n });\n }\n\n async _getMergeStatus(component: Component): Promise<ComponentMergeStatus> {\n const componentStatus = await this.workspace.getComponentStatusById(component.id);\n const mergeStatus: ComponentMergeStatus = { component, mergeResults: null };\n if (!componentStatus.modified) return mergeStatus;\n const componentModel = await this.consumer.scope.getModelComponent(component.id);\n const existingBitMapBitId = this.consumer.bitMap.getComponentId(component.id, { ignoreVersion: true });\n const fsComponent = await this.consumer.loadComponent(existingBitMapBitId);\n const currentlyUsedVersion = existingBitMapBitId.version;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await componentModel.loadVersion(currentlyUsedVersion, this.consumer.scope.objects);\n const otherComponent: Version = await componentModel.loadVersion(\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n component.id.version,\n this.consumer.scope.objects\n );\n const mergeResults = await threeWayMerge({\n scope: this.consumer.scope,\n otherComponent,\n otherLabel: component.id.version as string,\n currentComponent: fsComponent,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n mergeStatus.mergeResults = mergeResults;\n return mergeStatus;\n }\n\n /**\n * 1) when there are conflicts and the strategy is \"ours\", don't write the imported component to\n * the filesystem, only update bitmap.\n *\n * 2) when there are conflicts and the strategy is \"theirs\", override the local changes by the\n * imported component. (similar to --override)\n *\n * 3) when there is no conflict or there are conflicts and the strategy is manual, write the files\n * according to the merge result. (done by applyModifiedVersion())\n */\n _updateComponentFilesPerMergeStrategy(componentMergeStatus: ComponentMergeStatus): FilesStatus | null | undefined {\n const mergeResults = componentMergeStatus.mergeResults;\n if (!mergeResults) return null;\n const component = componentMergeStatus.component;\n const files = component.files;\n\n if (mergeResults.hasConflicts && this.options.mergeStrategy === MergeOptions.ours) {\n const filesStatus = {};\n // don't write the files to the filesystem, only bump the bitmap version.\n files.forEach((file) => {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n filesStatus[pathNormalizeToLinux(file.relative)] = FileStatus.unchanged;\n });\n this.consumer.bitMap.updateComponentId(component.id);\n this.consumer.bitMap.hasChanged = true;\n return filesStatus;\n }\n if (mergeResults.hasConflicts && this.options.mergeStrategy === MergeOptions.theirs) {\n const filesStatus = {};\n // the local changes will be overridden (as if the user entered --override flag for this component)\n files.forEach((file) => {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n filesStatus[pathNormalizeToLinux(file.relative)] = FileStatus.updated;\n });\n return filesStatus;\n }\n const { filesStatus, modifiedFiles } = applyModifiedVersion(\n component.files,\n mergeResults,\n this.options.mergeStrategy\n );\n component.files = modifiedFiles;\n\n return filesStatus;\n }\n\n /**\n * update the component files if they are modified and there is a merge strategy.\n * returns only the components that need to be written to the filesystem\n */\n async updateAllComponentsAccordingToMergeStrategy(components: Component[]): Promise<Component[]> {\n if (!this.options.merge) return components;\n const componentsStatusP = components.map((component: Component) => {\n return this._getMergeStatus(component);\n });\n const componentsStatus = await Promise.all(componentsStatusP);\n const componentWithConflict = componentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict && !this.options.mergeStrategy) {\n this.options.mergeStrategy = await getMergeStrategyInteractive();\n }\n this.mergeStatus = {};\n\n const componentsToWrite = componentsStatus.map((componentStatus) => {\n const filesStatus: FilesStatus | null | undefined = this._updateComponentFilesPerMergeStrategy(componentStatus);\n const component = componentStatus.component;\n if (!filesStatus) return component;\n this.mergeStatus[component.id.toStringWithoutVersion()] = filesStatus;\n const unchangedFiles = Object.keys(filesStatus).filter((file) => filesStatus[file] === FileStatus.unchanged);\n if (unchangedFiles.length === Object.keys(filesStatus).length) {\n // all files are unchanged\n return null;\n }\n return component;\n });\n return compact(componentsToWrite);\n }\n\n _shouldSaveLaneData(): boolean {\n if (this.options.objectsOnly) {\n return false;\n }\n return this.consumer.isOnLane();\n }\n\n async _saveLaneDataIfNeeded(components: Component[]): Promise<void> {\n if (!this._shouldSaveLaneData()) {\n return;\n }\n const currentLane = await this.consumer.getCurrentLaneObject();\n if (!currentLane) {\n return; // user on main\n }\n const idsFromRemoteLanes = this.remoteLane?.toComponentIds() || new ComponentIdList();\n await Promise.all(\n components.map(async (comp) => {\n const existOnRemoteLane = idsFromRemoteLanes.has(comp.id);\n if (!existOnRemoteLane && !this.options.saveInLane) {\n this.consumer.bitMap.setOnLanesOnly(comp.id, false);\n return;\n }\n const modelComponent = await this.scope.getModelComponent(comp.id);\n const ref = modelComponent.getRef(comp.id.version as string);\n if (!ref) throw new Error(`_saveLaneDataIfNeeded unable to get ref for ${comp.id.toString()}`);\n currentLane.addComponent({ id: comp.id, head: ref });\n })\n );\n await this.scope.lanes.saveLane(currentLane, { laneHistoryMsg: 'import components' });\n }\n\n async _writeToFileSystem(components: Component[]): Promise<ComponentWriterResults> {\n const componentsToWrite = await this.updateAllComponentsAccordingToMergeStrategy(components);\n const manyComponentsWriterOpts: ManyComponentsWriterParams = {\n components: componentsToWrite,\n writeToPath: this.options.writeToPath,\n writeConfig: this.options.writeConfig,\n skipDependencyInstallation: !this.options.installNpmPackages,\n skipWriteConfigFiles: !this.options.writeConfigFiles,\n verbose: this.options.verbose,\n throwForExistingDir: !this.options.override,\n skipWritingToFs: this.options.trackOnly,\n shouldUpdateWorkspaceConfig: isFeatureEnabled(UPDATE_DEPS_ON_IMPORT),\n reasonForBitmapChange: 'import',\n };\n return this.componentWriter.writeMany(manyComponentsWriterOpts);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bitError","data","require","_pMapSeries","_interopRequireDefault","_listScope","_componentId","_loaderMessages","_utils","_hasWildcard","_checkout","_mergeVersion","_componentsPendingMerge","_scopeComponentsImporter","_versionDependencies","_featureToggle","_componentVersion","_lodash","_dependentsGetter","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","ImportComponents","constructor","workspace","graph","componentWriter","envs","logger","options","consumer","scope","remoteLane","lanes","importComponents","result","setStatusLine","BEFORE_IMPORT_ACTION","startTime","process","hrtime","ids","length","importObjectsOnLane","consoleSuccess","importSpecificComponents","importAccordingToBitMap","objectsOnly","Error","lane","bitIds","getBitIds","debug","id","toString","beforeImportVersions","_getCurrentVersions","versionDependenciesArr","_importComponentsObjects","mergeAndSaveLaneObject","returnCompleteResults","writtenComponents","componentWriterResults","importDetails","_getImportDetails","missingIds","keys","importedComps","map","c","component","toStringWithoutVersion","forEach","compIdStr","found","includes","push","importedIds","v","flat","importedDeps","allDependenciesIds","installationError","compilationError","workspaceConfigUpdateResult","join","_throwForPotentialIssues","components","multipleVersionDependenciesToConsumer","objects","_fetchDivergeData","_throwForDivergedHistory","throwForComponentsFromAnotherLane","filteredComponents","_filterComponentsByFilters","_writeToFileSystem","_saveLaneDataIfNeeded","mergeLaneResults","sources","mergeLane","mergedLane","isRemoteLaneEqualsToMergedLane","isEqual","saveLane","saveLaneHistory","laneHistoryMsg","filterEnvs","filteredP","currentEnv","calculateEnvIdFromExtensions","extensions","currentEnvWithoutVersion","split","undefined","filtered","compact","Promise","all","modelComponent","getModelComponent","setDivergeData","divergeData","merge","divergedComponents","filter","getDivergeData","isDiverged","snapsLocal","snapsOnSourceOnly","snapsRemote","snapsOnTargetOnly","ComponentsPendingMerge","currentLaneId","getCurrentLaneId","currentRemoteLane","toLaneId","currentLane","getCurrentLaneObject","idsFromAnotherLane","bitId","isOnCurrentLane","isPartOfLaneHistory","isPartOfMainHistory","isIdOnMain","BitError","fromOriginalScope","ignoreMissingHead","scopeComponentsImporter","ScopeComponentsImporter","getInstance","importWithoutDeps","toVersionLatest","cache","includeVersionHistory","fetchHeadIfLocalIsBehind","allHistory","collectParents","includeUnexported","isLaneFromRemote","reason","results","importManyFromOriginalScopes","importMany","preferDependencyGraph","fetchDeps","reFetchUnBuiltVersion","throwForSeederNotFound","getBitIdsForLanes","bitIdsFromLane","toComponentIds","ComponentIdList","bitMapIds","bitMap","getAllBitIds","bitMapIdsToImport","hasScope","has","idsWithWildcard","hasWildcard","idsWithoutWildcard","idsWithoutWildcardPreferFromLane","idStr","getIdFromStr","fromLane","searchWithoutVersion","hasVersion","pMapSeries","idsFromRemote","getRemoteBitIdsByWildcards","includeDeprecated","existingOnLanes","hasWithoutVersion","startsWith","resolveComponentIdFromPackageName","ComponentID","fromString","getBitIdsForNonLanes","shouldImportDependents","importDependents","dependentsVia","dependentsAll","importDependenciesDirectly","dependenciesIds","getFlattenedDepsUnique","dependentsGetter","DependentsGetter","dependents","getDependents","uniqFromArray","remoteComps","scopeImporter","getManyRemoteComponents","versions","getVersions","getFlattened","flattenedDependencies","flattenedDeps","flattened","withLatest","removeMultipleVersionsKeepLatest","grouped","toGroupByIdWithoutVersion","latestVersions","latest","getLatestVersionNumber","changeVersion","LATEST_VERSION","override","componentsIdsToImport","getIdsToImportFromBitmap","emptyResult","_throwForModifiedOrNewComponents","flagUsed","allIds","getAllBitIdsFromAllLanes","fromArray","versionsP","getModelComponentIfExist","listVersions","fromPairs","currentVersions","detailsP","afterImportVersions","versionDifference","difference","getStatus","filesStatus","mergeStatus","deprecated","Boolean","isDeprecated","version","removed","isRemoved","latestVersion","getHeadRegardlessOfLaneAsTagOrHash","status","missingDeps","getMissingDependencies","_throwForDifferentComponentWithSameName","trackOnly","componentsStatuses","getManyComponentsStatuses","modifiedComponents","modified","newlyCreated","existingId","getParsedIdIfExist","_getMergeStatus","componentStatus","getComponentStatusById","mergeResults","componentModel","existingBitMapBitId","getComponentId","ignoreVersion","fsComponent","loadComponent","currentlyUsedVersion","baseComponent","loadVersion","otherComponent","threeWayMerge","otherLabel","currentComponent","currentLabel","_updateComponentFilesPerMergeStrategy","componentMergeStatus","files","hasConflicts","mergeStrategy","MergeOptions","ours","file","pathNormalizeToLinux","relative","FileStatus","unchanged","updateComponentId","hasChanged","theirs","updated","modifiedFiles","applyModifiedVersion","updateAllComponentsAccordingToMergeStrategy","componentsStatusP","componentsStatus","componentWithConflict","find","getMergeStrategyInteractive","componentsToWrite","unchangedFiles","_shouldSaveLaneData","isOnLane","idsFromRemoteLanes","comp","existOnRemoteLane","saveInLane","setOnLanesOnly","ref","getRef","addComponent","head","manyComponentsWriterOpts","writeToPath","writeConfig","skipDependencyInstallation","installNpmPackages","skipWriteConfigFiles","writeConfigFiles","verbose","throwForExistingDir","skipWritingToFs","shouldUpdateWorkspaceConfig","isFeatureEnabled","UPDATE_DEPS_ON_IMPORT","reasonForBitmapChange","writeMany","exports"],"sources":["import-components.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport pMapSeries from 'p-map-series';\nimport { getRemoteBitIdsByWildcards } from '@teambit/legacy/dist/api/consumer/lib/list-scope';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { BEFORE_IMPORT_ACTION } from '@teambit/legacy/dist/cli/loader/loader-messages';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { Lane, ModelComponent, Version } from '@teambit/legacy/dist/scope/models';\nimport { getLatestVersionNumber, pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport hasWildcard from '@teambit/legacy/dist/utils/string/has-wildcard';\nimport Component from '@teambit/legacy/dist/consumer/component';\nimport { applyModifiedVersion } from '@teambit/checkout';\nimport {\n FileStatus,\n getMergeStrategyInteractive,\n MergeOptions,\n threeWayMerge,\n} from '@teambit/legacy/dist/consumer/versions-ops/merge-version';\nimport { MergeStrategy } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/merge-version';\nimport { MergeResultsThreeWay } from '@teambit/legacy/dist/consumer/versions-ops/merge-version/three-way-merge';\nimport ComponentsPendingMerge from '@teambit/legacy/dist/consumer/component-ops/exceptions/components-pending-merge';\nimport ScopeComponentsImporter from '@teambit/legacy/dist/scope/component-ops/scope-components-importer';\nimport VersionDependencies, {\n multipleVersionDependenciesToConsumer,\n} from '@teambit/legacy/dist/scope/version-dependencies';\nimport { GraphMain } from '@teambit/graph';\nimport { UPDATE_DEPS_ON_IMPORT, isFeatureEnabled } from '@teambit/legacy/dist/api/consumer/lib/feature-toggle';\nimport { Workspace } from '@teambit/workspace';\nimport { ComponentWriterMain, ComponentWriterResults, ManyComponentsWriterParams } from '@teambit/component-writer';\nimport { LATEST_VERSION } from '@teambit/component-version';\nimport { EnvsMain } from '@teambit/envs';\nimport { compact, difference, fromPairs } from 'lodash';\nimport { FilesStatus } from '@teambit/merging';\nimport { WorkspaceConfigUpdateResult } from '@teambit/config-merger';\nimport { Logger } from '@teambit/logger';\nimport { DependentsGetter } from './dependents-getter';\n\nexport type ImportOptions = {\n ids: string[]; // array might be empty\n verbose?: boolean;\n merge?: boolean;\n mergeStrategy?: MergeStrategy;\n filterEnvs?: string[];\n writeToPath?: string;\n writeConfig?: boolean;\n override?: boolean;\n installNpmPackages: boolean; // default: true\n writeConfigFiles: boolean; // default: true\n objectsOnly?: boolean;\n importDependenciesDirectly?: boolean; // default: false, normally it imports them as packages, not as imported\n importDependents?: boolean;\n dependentsVia?: string;\n dependentsAll?: boolean;\n silent?: boolean; // don't show prompt for --dependents flag\n fromOriginalScope?: boolean; // default: false, otherwise, it fetches flattened dependencies from their dependents\n saveInLane?: boolean; // save the imported component on the current lane (won't be available on main)\n lanes?: {\n laneId: LaneId;\n remoteLane?: Lane; // it can be an empty array when a lane is a local lane and doesn't exist on the remote\n };\n allHistory?: boolean;\n fetchDeps?: boolean; // by default, if a component was tagged with > 0.0.900, it has the flattened-deps-graph in the object\n trackOnly?: boolean;\n includeDeprecated?: boolean;\n isLaneFromRemote?: boolean; // whether the `lanes.lane` object is coming directly from the remote.\n};\ntype ComponentMergeStatus = {\n component: Component;\n mergeResults: MergeResultsThreeWay | null | undefined;\n};\ntype ImportedVersions = { [id: string]: string[] };\nexport type ImportStatus = 'added' | 'updated' | 'up to date';\nexport type ImportDetails = {\n id: string;\n versions: string[];\n latestVersion: string | null;\n status: ImportStatus;\n filesStatus: FilesStatus | null | undefined;\n missingDeps: ComponentID[];\n deprecated: boolean;\n removed?: boolean;\n};\nexport type ImportResult = {\n importedIds: ComponentID[];\n importedDeps: ComponentID[];\n writtenComponents?: Component[];\n importDetails: ImportDetails[];\n cancellationMessage?: string;\n installationError?: Error;\n compilationError?: Error;\n workspaceConfigUpdateResult?: WorkspaceConfigUpdateResult;\n missingIds?: string[]; // in case the import is configured to not throw when missing\n lane?: Lane;\n};\n\nexport default class ImportComponents {\n consumer: Consumer;\n scope: Scope;\n mergeStatus: { [id: string]: FilesStatus };\n private remoteLane: Lane | undefined;\n private divergeData: Array<ModelComponent> = [];\n constructor(\n private workspace: Workspace,\n private graph: GraphMain,\n private componentWriter: ComponentWriterMain,\n private envs: EnvsMain,\n private logger: Logger,\n public options: ImportOptions\n ) {\n this.consumer = this.workspace.consumer;\n this.scope = this.consumer.scope;\n this.remoteLane = this.options.lanes?.remoteLane;\n }\n\n async importComponents(): Promise<ImportResult> {\n let result;\n this.logger.setStatusLine(BEFORE_IMPORT_ACTION);\n const startTime = process.hrtime();\n if (this.options.lanes && !this.options.ids.length) {\n result = await this.importObjectsOnLane();\n this.logger.consoleSuccess(BEFORE_IMPORT_ACTION, startTime);\n return result;\n }\n if (this.options.ids.length) {\n result = await this.importSpecificComponents();\n this.logger.consoleSuccess(BEFORE_IMPORT_ACTION, startTime);\n return result;\n }\n result = await this.importAccordingToBitMap();\n this.logger.consoleSuccess(BEFORE_IMPORT_ACTION, startTime);\n return result;\n }\n\n async importObjectsOnLane(): Promise<ImportResult> {\n if (!this.options.objectsOnly) {\n throw new Error(`importObjectsOnLane should have objectsOnly=true`);\n }\n const lane = this.remoteLane;\n const bitIds: ComponentIdList = await this.getBitIds();\n lane\n ? this.logger.debug(`importObjectsOnLane, Lane: ${lane.id()}, Ids: ${bitIds.toString()}`)\n : this.logger.debug(\n `importObjectsOnLane, the lane does not exist on the remote. importing only the main components`\n );\n const beforeImportVersions = await this._getCurrentVersions(bitIds);\n const versionDependenciesArr = await this._importComponentsObjects(bitIds, {\n lane,\n });\n\n if (lane) {\n await this.mergeAndSaveLaneObject(lane);\n }\n\n return this.returnCompleteResults(beforeImportVersions, versionDependenciesArr);\n }\n\n private async returnCompleteResults(\n beforeImportVersions: ImportedVersions,\n versionDependenciesArr: VersionDependencies[],\n writtenComponents?: Component[],\n componentWriterResults?: ComponentWriterResults\n ): Promise<ImportResult> {\n const importDetails = await this._getImportDetails(beforeImportVersions, versionDependenciesArr);\n const missingIds: string[] = [];\n if (Object.keys(beforeImportVersions).length > versionDependenciesArr.length) {\n const importedComps = versionDependenciesArr.map((c) => c.component.id.toStringWithoutVersion());\n Object.keys(beforeImportVersions).forEach((compIdStr) => {\n const found = importedComps.includes(compIdStr);\n if (!found) missingIds.push(compIdStr);\n });\n }\n\n return {\n importedIds: versionDependenciesArr.map((v) => v.component.id).flat(),\n importedDeps: versionDependenciesArr.map((v) => v.allDependenciesIds).flat(),\n writtenComponents,\n importDetails,\n installationError: componentWriterResults?.installationError,\n compilationError: componentWriterResults?.compilationError,\n workspaceConfigUpdateResult: componentWriterResults?.workspaceConfigUpdateResult,\n missingIds,\n lane: this.remoteLane,\n };\n }\n\n async importSpecificComponents(): Promise<ImportResult> {\n this.logger.debug(`importSpecificComponents, Ids: ${this.options.ids.join(', ')}`);\n const bitIds: ComponentIdList = await this.getBitIds();\n const beforeImportVersions = await this._getCurrentVersions(bitIds);\n await this._throwForPotentialIssues(bitIds);\n const versionDependenciesArr = await this._importComponentsObjects(bitIds, {\n lane: this.remoteLane,\n });\n if (this.remoteLane && this.options.objectsOnly) {\n await this.mergeAndSaveLaneObject(this.remoteLane);\n }\n let writtenComponents: Component[] = [];\n let componentWriterResults: ComponentWriterResults | undefined;\n if (!this.options.objectsOnly) {\n const components = await multipleVersionDependenciesToConsumer(versionDependenciesArr, this.scope.objects);\n await this._fetchDivergeData(components);\n this._throwForDivergedHistory();\n await this.throwForComponentsFromAnotherLane(components.map((c) => c.id));\n const filteredComponents = await this._filterComponentsByFilters(components);\n componentWriterResults = await this._writeToFileSystem(filteredComponents);\n await this._saveLaneDataIfNeeded(filteredComponents);\n writtenComponents = filteredComponents;\n }\n\n return this.returnCompleteResults(\n beforeImportVersions,\n versionDependenciesArr,\n writtenComponents,\n componentWriterResults\n );\n }\n\n private async mergeAndSaveLaneObject(lane: Lane) {\n const mergeLaneResults = await this.scope.sources.mergeLane(lane, true);\n const mergedLane = mergeLaneResults.mergeLane;\n const isRemoteLaneEqualsToMergedLane = lane.isEqual(mergedLane);\n await this.scope.lanes.saveLane(mergedLane, {\n saveLaneHistory: !isRemoteLaneEqualsToMergedLane,\n laneHistoryMsg: 'import (merge from remote)',\n });\n }\n\n private async _filterComponentsByFilters(components: Component[]): Promise<Component[]> {\n if (!this.options.filterEnvs) return components;\n const filteredP = components.map(async (component) => {\n // If the id was requested explicitly, we don't want to filter it out\n if (this.options.ids) {\n if (\n this.options.ids.includes(component.id.toStringWithoutVersion()) ||\n this.options.ids.includes(component.id.toString())\n ) {\n return component;\n }\n }\n const currentEnv = await this.envs.calculateEnvIdFromExtensions(component.extensions);\n const currentEnvWithoutVersion = currentEnv.split('@')[0];\n if (\n this.options.filterEnvs?.includes(currentEnv) ||\n this.options.filterEnvs?.includes(currentEnvWithoutVersion)\n ) {\n return component;\n }\n return undefined;\n });\n const filtered = compact(await Promise.all(filteredP));\n return filtered;\n }\n\n async _fetchDivergeData(components: Component[]) {\n if (this.options.objectsOnly) {\n // no need for it when importing objects only. if it's enabled, in case when on a lane and a non-lane\n // component is in bitmap using an older version, it throws \"getDivergeData: unable to find Version X of Y\"\n return;\n }\n await Promise.all(\n components.map(async (component) => {\n const modelComponent = await this.scope.getModelComponent(component.id);\n await modelComponent.setDivergeData(this.scope.objects, undefined, false);\n this.divergeData.push(modelComponent);\n })\n );\n }\n\n _throwForDivergedHistory() {\n if (this.options.merge || this.options.objectsOnly) return;\n const divergedComponents = this.divergeData.filter((modelComponent) =>\n modelComponent.getDivergeData().isDiverged()\n );\n if (divergedComponents.length) {\n const divergeData = divergedComponents.map((modelComponent) => ({\n id: modelComponent.id(),\n snapsLocal: modelComponent.getDivergeData().snapsOnSourceOnly.length,\n snapsRemote: modelComponent.getDivergeData().snapsOnTargetOnly.length,\n }));\n throw new ComponentsPendingMerge(divergeData);\n }\n }\n\n private async throwForComponentsFromAnotherLane(bitIds: ComponentID[]) {\n if (this.options.objectsOnly) return;\n const currentLaneId = this.workspace.getCurrentLaneId();\n const currentRemoteLane = this.remoteLane?.toLaneId().isEqual(currentLaneId) ? this.remoteLane : undefined;\n const currentLane = await this.workspace.getCurrentLaneObject();\n const idsFromAnotherLane: ComponentID[] = [];\n if (currentRemoteLane) {\n await Promise.all(\n bitIds.map(async (bitId) => {\n const isOnCurrentLane =\n (await this.scope.isPartOfLaneHistory(bitId, currentRemoteLane)) ||\n (currentLane && (await this.scope.isPartOfLaneHistory(bitId, currentLane))) ||\n (await this.scope.isPartOfMainHistory(bitId));\n if (!isOnCurrentLane) idsFromAnotherLane.push(bitId);\n })\n );\n } else {\n await Promise.all(\n bitIds.map(async (bitId) => {\n const isIdOnMain = await this.scope.isPartOfMainHistory(bitId);\n if (!isIdOnMain) idsFromAnotherLane.push(bitId);\n })\n );\n }\n if (idsFromAnotherLane.length) {\n throw new BitError(`unable to import the following component(s) as they belong to other lane(s):\n${idsFromAnotherLane.map((id) => id.toString()).join(', ')}\nif you need this specific snap, find the lane this snap is belong to, then run \"bit lane merge <lane-id> [component-id]\" to merge this component from the lane.\nif you just want to get a quick look into this snap, create a new workspace and import it by running \"bit lane import <lane-id> --pattern <component-id>\"`);\n }\n }\n\n private async _importComponentsObjects(\n ids: ComponentIdList,\n {\n fromOriginalScope = false,\n lane,\n ignoreMissingHead = false,\n }: {\n fromOriginalScope?: boolean;\n lane?: Lane;\n ignoreMissingHead?: boolean;\n }\n ): Promise<VersionDependencies[]> {\n const scopeComponentsImporter = ScopeComponentsImporter.getInstance(this.scope);\n await scopeComponentsImporter.importWithoutDeps(ids.toVersionLatest(), {\n cache: false,\n lane,\n includeVersionHistory: true,\n fetchHeadIfLocalIsBehind: !this.options.allHistory,\n collectParents: this.options.allHistory,\n // in case a user is merging a lane into a new workspace, then, locally main has head, but remotely the head is\n // empty, until it's exported. going to the remote and asking this component will throw an error if ignoreMissingHead is false\n ignoreMissingHead: true,\n includeUnexported: this.options.isLaneFromRemote,\n reason: `of their latest on ${lane ? `lane ${lane.id()}` : 'main'}`,\n });\n\n this.logger.setStatusLine(`import ${ids.length} components with their dependencies (if missing)`);\n const results = fromOriginalScope\n ? await scopeComponentsImporter.importManyFromOriginalScopes(ids)\n : await scopeComponentsImporter.importMany({\n ids,\n ignoreMissingHead,\n lane,\n preferDependencyGraph: !this.options.fetchDeps,\n // when user is running \"bit import\", we want to re-fetch if it wasn't built. todo: check if this can be disabled when not needed\n reFetchUnBuiltVersion: true,\n // it's possible that .bitmap is not in sync and has local tags that don't exist on the remote. later, we\n // add them to \"missingIds\" of \"importResult\" and show them to the user\n throwForSeederNotFound: false,\n reason: this.options.fetchDeps\n ? 'for getting all dependencies'\n : `for getting dependencies of components that don't have dependency-graph`,\n });\n\n return results;\n }\n\n /**\n * consider the following use cases:\n * 1) no ids were provided. it should import all the lanes components objects AND main components objects\n * (otherwise, if main components are not imported and are missing, then bit-status complains about it)\n * 2) ids are provided with wildcards. we assume the user wants only the ids that are available on the lane.\n * because a user may entered \"bit import scope/*\" and this scope has many component on the lane and many not on the lane.\n * we want to bring only the components on the lane.\n * 3) ids are provided without wildcards. here, the user knows exactly what's needed and it's ok to get the ids from\n * main if not found on the lane.\n */\n private async getBitIdsForLanes(): Promise<ComponentID[]> {\n if (!this.options.lanes) {\n throw new Error(`getBitIdsForLanes: this.options.lanes must be set`);\n }\n const bitIdsFromLane = this.remoteLane?.toComponentIds() || new ComponentIdList();\n\n if (!this.options.ids.length) {\n const bitMapIds = this.consumer.bitMap.getAllBitIds();\n const bitMapIdsToImport = bitMapIds.filter((id) => id.hasScope() && !bitIdsFromLane.has(id));\n bitIdsFromLane.push(...bitMapIdsToImport);\n\n return bitIdsFromLane;\n }\n\n const idsWithWildcard = this.options.ids.filter((id) => hasWildcard(id));\n const idsWithoutWildcard = this.options.ids.filter((id) => !hasWildcard(id));\n const idsWithoutWildcardPreferFromLane = await Promise.all(\n idsWithoutWildcard.map(async (idStr) => {\n const id = await this.getIdFromStr(idStr);\n const fromLane = bitIdsFromLane.searchWithoutVersion(id);\n return fromLane && !id.hasVersion() ? fromLane : id;\n })\n );\n\n const bitIds: ComponentID[] = [...idsWithoutWildcardPreferFromLane];\n\n if (!idsWithWildcard) {\n return bitIds;\n }\n\n await pMapSeries(idsWithWildcard, async (idStr: string) => {\n const idsFromRemote = await getRemoteBitIdsByWildcards(idStr, this.options.includeDeprecated);\n const existingOnLanes = idsFromRemote.filter((id) => bitIdsFromLane.hasWithoutVersion(id));\n if (!existingOnLanes.length) {\n throw new BitError(`the id with the the wildcard \"${idStr}\" has been parsed to multiple component ids.\nhowever, none of them existing on the lane \"${this.remoteLane?.id()}\".\nin case you intend to import these components from main, please run the following:\nbit import ${idsFromRemote.map((id) => id.toStringWithoutVersion()).join(' ')}`);\n }\n bitIds.push(...existingOnLanes);\n });\n\n return bitIds;\n }\n\n private async getIdFromStr(id: string): Promise<ComponentID> {\n if (id.startsWith('@')) return this.workspace.resolveComponentIdFromPackageName(id);\n return ComponentID.fromString(id); // we don't support importing without a scope name\n }\n\n private async getBitIdsForNonLanes() {\n const bitIds: ComponentID[] = [];\n await Promise.all(\n this.options.ids.map(async (idStr: string) => {\n if (hasWildcard(idStr)) {\n const ids = await getRemoteBitIdsByWildcards(idStr, this.options.includeDeprecated);\n this.logger.setStatusLine(BEFORE_IMPORT_ACTION); // it stops the previous loader of BEFORE_REMOTE_LIST\n bitIds.push(...ids);\n } else {\n const id = await this.getIdFromStr(idStr);\n bitIds.push(id);\n }\n })\n );\n\n return bitIds;\n }\n\n private async getBitIds(): Promise<ComponentIdList> {\n const bitIds: ComponentID[] = this.options.lanes\n ? await this.getBitIdsForLanes()\n : await this.getBitIdsForNonLanes();\n const shouldImportDependents =\n this.options.importDependents || this.options.dependentsVia || this.options.dependentsAll;\n if (this.options.importDependenciesDirectly || shouldImportDependents) {\n if (this.options.importDependenciesDirectly) {\n const dependenciesIds = await this.getFlattenedDepsUnique(bitIds);\n bitIds.push(...dependenciesIds);\n }\n if (shouldImportDependents) {\n const dependentsGetter = new DependentsGetter(this.logger, this.workspace, this.graph, this.options);\n const dependents = await dependentsGetter.getDependents(bitIds);\n bitIds.push(...dependents);\n }\n }\n return ComponentIdList.uniqFromArray(bitIds);\n }\n\n private async getFlattenedDepsUnique(bitIds: ComponentID[]): Promise<ComponentID[]> {\n const remoteComps = await this.scope.scopeImporter.getManyRemoteComponents(bitIds);\n const versions = remoteComps.getVersions();\n const getFlattened = (): ComponentIdList => {\n if (versions.length === 1) return versions[0].flattenedDependencies;\n const flattenedDeps = versions.map((v) => v.flattenedDependencies).flat();\n return ComponentIdList.uniqFromArray(flattenedDeps);\n };\n const flattened = getFlattened();\n const withLatest = this.removeMultipleVersionsKeepLatest(flattened);\n return withLatest;\n }\n\n private removeMultipleVersionsKeepLatest(flattened: ComponentIdList): ComponentID[] {\n const grouped = flattened.toGroupByIdWithoutVersion();\n const latestVersions = Object.keys(grouped).map((key) => {\n const ids = grouped[key];\n if (ids.length === 1) return ids[0];\n const latest = getLatestVersionNumber(ids, ids[0].changeVersion(LATEST_VERSION));\n return latest;\n });\n\n return latestVersions;\n }\n\n async importAccordingToBitMap(): Promise<ImportResult> {\n this.options.objectsOnly = !this.options.merge && !this.options.override;\n const componentsIdsToImport = this.getIdsToImportFromBitmap();\n const emptyResult = {\n importedIds: [],\n importedDeps: [],\n importDetails: [],\n };\n if (!componentsIdsToImport.length) {\n return emptyResult;\n }\n await this._throwForModifiedOrNewComponents(componentsIdsToImport);\n const beforeImportVersions = await this._getCurrentVersions(componentsIdsToImport);\n if (!componentsIdsToImport.length) {\n return emptyResult;\n }\n if (!this.options.objectsOnly) {\n const flagUsed = this.options.merge ? '--merge' : '--override';\n throw new Error(`bit import with no ids and ${flagUsed} flag is not supported.\nto write the components from .bitmap file according to the their remote, please use \"bit checkout reset --all\"`);\n }\n const versionDependenciesArr = await this._importComponentsObjects(componentsIdsToImport, {\n fromOriginalScope: this.options.fromOriginalScope,\n });\n let writtenComponents: Component[] = [];\n let componentWriterResults: ComponentWriterResults | undefined;\n if (!this.options.objectsOnly) {\n const components = await multipleVersionDependenciesToConsumer(versionDependenciesArr, this.scope.objects);\n componentWriterResults = await this._writeToFileSystem(components);\n writtenComponents = components;\n }\n\n return this.returnCompleteResults(\n beforeImportVersions,\n versionDependenciesArr,\n writtenComponents,\n componentWriterResults\n );\n }\n\n private getIdsToImportFromBitmap() {\n const allIds = this.consumer.bitMap.getAllBitIdsFromAllLanes();\n return ComponentIdList.fromArray(allIds.filter((id) => id.hasScope()));\n }\n\n async _getCurrentVersions(ids: ComponentIdList): Promise<ImportedVersions> {\n const versionsP = ids.map(async (id) => {\n const modelComponent = await this.consumer.scope.getModelComponentIfExist(id.changeVersion(undefined));\n const idStr = id.toStringWithoutVersion();\n if (!modelComponent) return [idStr, []];\n return [idStr, modelComponent.listVersions()];\n });\n const versions = await Promise.all(versionsP);\n return fromPairs(versions);\n }\n\n /**\n * get import details, includes the diff between the versions array before import and after import\n */\n async _getImportDetails(\n currentVersions: ImportedVersions,\n components: VersionDependencies[]\n ): Promise<ImportDetails[]> {\n const detailsP = components.map(async (component) => {\n const id = component.component.id;\n const idStr = id.toStringWithoutVersion();\n const beforeImportVersions = currentVersions[idStr];\n if (!beforeImportVersions) {\n throw new Error(\n `_getImportDetails failed finding ${idStr} in currentVersions, which has ${Object.keys(currentVersions).join(\n ', '\n )}`\n );\n }\n const modelComponent = await this.consumer.scope.getModelComponentIfExist(id);\n if (!modelComponent) throw new BitError(`imported component ${idStr} was not found in the model`);\n const afterImportVersions = modelComponent.listVersions();\n const versionDifference: string[] = difference(afterImportVersions, beforeImportVersions);\n const getStatus = (): ImportStatus => {\n if (!versionDifference.length) return 'up to date';\n if (!beforeImportVersions.length) return 'added';\n return 'updated';\n };\n const filesStatus = this.mergeStatus && this.mergeStatus[idStr] ? this.mergeStatus[idStr] : null;\n const deprecated = Boolean(await modelComponent.isDeprecated(this.scope.objects, id.version));\n const removed = await component.component.component.isRemoved(this.scope.objects);\n const latestVersion = modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);\n return {\n id: idStr,\n versions: versionDifference,\n latestVersion: versionDifference.includes(latestVersion) ? latestVersion : null,\n status: getStatus(),\n filesStatus,\n missingDeps: this.options.fetchDeps ? component.getMissingDependencies() : [],\n deprecated,\n removed,\n };\n });\n const importDetails: ImportDetails[] = await Promise.all(detailsP);\n\n return importDetails;\n }\n\n async _throwForPotentialIssues(ids: ComponentIdList): Promise<void> {\n await this._throwForModifiedOrNewComponents(ids);\n this._throwForDifferentComponentWithSameName(ids);\n }\n\n async _throwForModifiedOrNewComponents(ids: ComponentIdList): Promise<void> {\n // the typical objectsOnly option is when a user cloned a project with components tagged to the source code, but\n // doesn't have the model objects. in that case, calling getComponentStatusById() may return an error as it relies\n // on the model objects when there are dependencies\n if (this.options.override || this.options.objectsOnly || this.options.merge || this.options.trackOnly) return;\n const componentsStatuses = await this.workspace.getManyComponentsStatuses(ids);\n const modifiedComponents = componentsStatuses\n .filter(({ status }) => status.modified || status.newlyCreated)\n .map((c) => c.id);\n if (modifiedComponents.length) {\n throw new BitError(\n `unable to import the following components due to local changes, use --merge flag to merge your local changes or --override to override them\\n${modifiedComponents.join(\n '\\n'\n )} `\n );\n }\n }\n\n /**\n * Model Component id() calculation uses id.toString() for the hash.\n * If an imported component has scopereadonly name equals to a local name, both will have the exact same\n * hash and they'll override each other.\n */\n _throwForDifferentComponentWithSameName(ids: ComponentIdList): void {\n ids.forEach((id: ComponentID) => {\n const existingId = this.consumer.getParsedIdIfExist(id.toStringWithoutVersion());\n if (existingId && !existingId.hasScope()) {\n throw new BitError(`unable to import ${id.toString()}. the component name conflicted with your local component with the same name.\n it's fine to have components with the same name as long as their scope names are different.\n Make sure to export your component first to get a scope and then try importing again`);\n }\n });\n }\n\n async _getMergeStatus(component: Component): Promise<ComponentMergeStatus> {\n const componentStatus = await this.workspace.getComponentStatusById(component.id);\n const mergeStatus: ComponentMergeStatus = { component, mergeResults: null };\n if (!componentStatus.modified) return mergeStatus;\n const componentModel = await this.consumer.scope.getModelComponent(component.id);\n const existingBitMapBitId = this.consumer.bitMap.getComponentId(component.id, { ignoreVersion: true });\n const fsComponent = await this.consumer.loadComponent(existingBitMapBitId);\n const currentlyUsedVersion = existingBitMapBitId.version;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const baseComponent: Version = await componentModel.loadVersion(currentlyUsedVersion, this.consumer.scope.objects);\n const otherComponent: Version = await componentModel.loadVersion(\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n component.id.version,\n this.consumer.scope.objects\n );\n const mergeResults = await threeWayMerge({\n scope: this.consumer.scope,\n otherComponent,\n otherLabel: component.id.version as string,\n currentComponent: fsComponent,\n currentLabel: `${currentlyUsedVersion} modified`,\n baseComponent,\n });\n mergeStatus.mergeResults = mergeResults;\n return mergeStatus;\n }\n\n /**\n * 1) when there are conflicts and the strategy is \"ours\", don't write the imported component to\n * the filesystem, only update bitmap.\n *\n * 2) when there are conflicts and the strategy is \"theirs\", override the local changes by the\n * imported component. (similar to --override)\n *\n * 3) when there is no conflict or there are conflicts and the strategy is manual, write the files\n * according to the merge result. (done by applyModifiedVersion())\n */\n _updateComponentFilesPerMergeStrategy(componentMergeStatus: ComponentMergeStatus): FilesStatus | null | undefined {\n const mergeResults = componentMergeStatus.mergeResults;\n if (!mergeResults) return null;\n const component = componentMergeStatus.component;\n const files = component.files;\n\n if (mergeResults.hasConflicts && this.options.mergeStrategy === MergeOptions.ours) {\n const filesStatus = {};\n // don't write the files to the filesystem, only bump the bitmap version.\n files.forEach((file) => {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n filesStatus[pathNormalizeToLinux(file.relative)] = FileStatus.unchanged;\n });\n this.consumer.bitMap.updateComponentId(component.id);\n this.consumer.bitMap.hasChanged = true;\n return filesStatus;\n }\n if (mergeResults.hasConflicts && this.options.mergeStrategy === MergeOptions.theirs) {\n const filesStatus = {};\n // the local changes will be overridden (as if the user entered --override flag for this component)\n files.forEach((file) => {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n filesStatus[pathNormalizeToLinux(file.relative)] = FileStatus.updated;\n });\n return filesStatus;\n }\n const { filesStatus, modifiedFiles } = applyModifiedVersion(\n component.files,\n mergeResults,\n this.options.mergeStrategy\n );\n component.files = modifiedFiles;\n\n return filesStatus;\n }\n\n /**\n * update the component files if they are modified and there is a merge strategy.\n * returns only the components that need to be written to the filesystem\n */\n async updateAllComponentsAccordingToMergeStrategy(components: Component[]): Promise<Component[]> {\n if (!this.options.merge) return components;\n const componentsStatusP = components.map((component: Component) => {\n return this._getMergeStatus(component);\n });\n const componentsStatus = await Promise.all(componentsStatusP);\n const componentWithConflict = componentsStatus.find(\n (component) => component.mergeResults && component.mergeResults.hasConflicts\n );\n if (componentWithConflict && !this.options.mergeStrategy) {\n this.options.mergeStrategy = await getMergeStrategyInteractive();\n }\n this.mergeStatus = {};\n\n const componentsToWrite = componentsStatus.map((componentStatus) => {\n const filesStatus: FilesStatus | null | undefined = this._updateComponentFilesPerMergeStrategy(componentStatus);\n const component = componentStatus.component;\n if (!filesStatus) return component;\n this.mergeStatus[component.id.toStringWithoutVersion()] = filesStatus;\n const unchangedFiles = Object.keys(filesStatus).filter((file) => filesStatus[file] === FileStatus.unchanged);\n if (unchangedFiles.length === Object.keys(filesStatus).length) {\n // all files are unchanged\n return null;\n }\n return component;\n });\n return compact(componentsToWrite);\n }\n\n _shouldSaveLaneData(): boolean {\n if (this.options.objectsOnly) {\n return false;\n }\n return this.consumer.isOnLane();\n }\n\n async _saveLaneDataIfNeeded(components: Component[]): Promise<void> {\n if (!this._shouldSaveLaneData()) {\n return;\n }\n const currentLane = await this.consumer.getCurrentLaneObject();\n if (!currentLane) {\n return; // user on main\n }\n const idsFromRemoteLanes = this.remoteLane?.toComponentIds() || new ComponentIdList();\n await Promise.all(\n components.map(async (comp) => {\n const existOnRemoteLane = idsFromRemoteLanes.has(comp.id);\n if (!existOnRemoteLane && !this.options.saveInLane) {\n this.consumer.bitMap.setOnLanesOnly(comp.id, false);\n return;\n }\n const modelComponent = await this.scope.getModelComponent(comp.id);\n const ref = modelComponent.getRef(comp.id.version as string);\n if (!ref) throw new Error(`_saveLaneDataIfNeeded unable to get ref for ${comp.id.toString()}`);\n currentLane.addComponent({ id: comp.id, head: ref });\n })\n );\n await this.scope.lanes.saveLane(currentLane, { laneHistoryMsg: 'import components' });\n }\n\n async _writeToFileSystem(components: Component[]): Promise<ComponentWriterResults> {\n const componentsToWrite = await this.updateAllComponentsAccordingToMergeStrategy(components);\n const manyComponentsWriterOpts: ManyComponentsWriterParams = {\n components: componentsToWrite,\n writeToPath: this.options.writeToPath,\n writeConfig: this.options.writeConfig,\n skipDependencyInstallation: !this.options.installNpmPackages,\n skipWriteConfigFiles: !this.options.writeConfigFiles,\n verbose: this.options.verbose,\n throwForExistingDir: !this.options.override,\n skipWritingToFs: this.options.trackOnly,\n shouldUpdateWorkspaceConfig: isFeatureEnabled(UPDATE_DEPS_ON_IMPORT),\n reasonForBitmapChange: 'import',\n };\n return this.componentWriter.writeMany(manyComponentsWriterOpts);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/import.cmd.d.ts
CHANGED
package/dist/import.cmd.js
CHANGED
|
@@ -81,7 +81,7 @@ class ImportCmd {
|
|
|
81
81
|
_defineProperty(this, "alias", '');
|
|
82
82
|
_defineProperty(this, "options", [['p', 'path <path>', 'import components into a specific directory (a relative path in the workspace)'], ['o', 'objects', 'import components objects to the local scope without checkout (without writing them to the file system). This is the default behavior for import with no id argument'], ['O', 'override', 'override local changes'], ['v', 'verbose', 'show verbose output for inspection'], ['j', 'json', 'return the output as JSON'],
|
|
83
83
|
// ['', 'conf', 'write the configuration file (component.json) of the component'], // not working. need to fix once ComponentWriter is moved to Harmony
|
|
84
|
-
['x', 'skip-dependency-installation', 'do not auto-install dependencies of the imported components'], ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'], ['m', 'merge [strategy]', 'merge local changes with the imported version. strategy should be "theirs", "ours" or "manual"'], ['', 'dependencies', 'import all dependencies (bit components only) of imported components and write them to the workspace'], ['', 'dependents', 'import components found while traversing from the imported components upwards to the workspace components'], ['', 'dependents-via <string>', 'same as --dependents except the traversal must go through the specified component. to specify multiple components, wrap with quotes and separate by a comma'], ['', 'dependents-dry-run', 'DEPRECATED. (this is the default now). same as --dependents, except it prints the found dependents and wait for confirmation before importing them'], ['', 'silent', 'no prompt for --dependents/--dependents-via flags'], ['', 'filter-envs <envs>', 'only import components that have the specified environment (e.g., "teambit.react/react-env")'], ['', 'save-in-lane', 'when checked out to a lane and the component is not on the remote-lane, save it in the lane (defaults to save on main)'], ['', 'all-history', 'relevant for fetching all components objects. avoid optimizations, fetch all history versions, always'], ['', 'fetch-deps', 'fetch dependencies (bit components) objects to the local scope, but dont add to the workspace. Useful to resolve errors about missing dependency data'], ['', 'track-only', 'do not write any component files, just create .bitmap entries of the imported components. Useful when the files already exist and just want to re-add the component to the bitmap'], ['', 'include-deprecated', 'when importing with patterns, include deprecated components (default to exclude them)']]);
|
|
84
|
+
['x', 'skip-dependency-installation', 'do not auto-install dependencies of the imported components'], ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'], ['m', 'merge [strategy]', 'merge local changes with the imported version. strategy should be "theirs", "ours" or "manual"'], ['', 'dependencies', 'import all dependencies (bit components only) of imported components and write them to the workspace'], ['', 'dependents', 'import components found while traversing from the imported components upwards to the workspace components'], ['', 'dependents-via <string>', 'same as --dependents except the traversal must go through the specified component. to specify multiple components, wrap with quotes and separate by a comma'], ['', 'dependents-all', 'same as --dependents except not prompting for selecting paths but rather selecting all paths and showing final confirmation before importing'], ['', 'dependents-dry-run', 'DEPRECATED. (this is the default now). same as --dependents, except it prints the found dependents and wait for confirmation before importing them'], ['', 'silent', 'no prompt for --dependents/--dependents-via flags'], ['', 'filter-envs <envs>', 'only import components that have the specified environment (e.g., "teambit.react/react-env")'], ['', 'save-in-lane', 'when checked out to a lane and the component is not on the remote-lane, save it in the lane (defaults to save on main)'], ['', 'all-history', 'relevant for fetching all components objects. avoid optimizations, fetch all history versions, always'], ['', 'fetch-deps', 'fetch dependencies (bit components) objects to the local scope, but dont add to the workspace. Useful to resolve errors about missing dependency data'], ['', 'track-only', 'do not write any component files, just create .bitmap entries of the imported components. Useful when the files already exist and just want to re-add the component to the bitmap'], ['', 'include-deprecated', 'when importing with patterns, include deprecated components (default to exclude them)']]);
|
|
85
85
|
_defineProperty(this, "loader", true);
|
|
86
86
|
_defineProperty(this, "remoteOp", true);
|
|
87
87
|
_defineProperty(this, "_packageManagerArgs", void 0);
|
|
@@ -156,6 +156,7 @@ class ImportCmd {
|
|
|
156
156
|
dependentsDryRun = false,
|
|
157
157
|
silent,
|
|
158
158
|
dependentsVia,
|
|
159
|
+
dependentsAll,
|
|
159
160
|
allHistory = false,
|
|
160
161
|
fetchDeps = false,
|
|
161
162
|
trackOnly = false,
|
|
@@ -207,6 +208,7 @@ class ImportCmd {
|
|
|
207
208
|
importDependenciesDirectly: dependencies,
|
|
208
209
|
importDependents: dependents,
|
|
209
210
|
dependentsVia,
|
|
211
|
+
dependentsAll,
|
|
210
212
|
silent,
|
|
211
213
|
allHistory,
|
|
212
214
|
fetchDeps,
|