@teambit/forking 0.0.128 → 0.0.131
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.
@@ -69,6 +69,16 @@ function _workspace() {
|
|
69
69
|
return data;
|
70
70
|
}
|
71
71
|
|
72
|
+
function _exceptions() {
|
73
|
+
const data = require("@teambit/legacy/dist/consumer/exceptions");
|
74
|
+
|
75
|
+
_exceptions = function () {
|
76
|
+
return data;
|
77
|
+
};
|
78
|
+
|
79
|
+
return data;
|
80
|
+
}
|
81
|
+
|
72
82
|
function _lodash() {
|
73
83
|
const data = require("lodash");
|
74
84
|
|
@@ -213,6 +223,7 @@ class ForkingMain {
|
|
213
223
|
|
214
224
|
|
215
225
|
async fork(sourceId, targetId, options) {
|
226
|
+
if (!this.workspace) throw new (_exceptions().ConsumerNotFound)();
|
216
227
|
const sourceCompId = await this.workspace.resolveComponentId(sourceId);
|
217
228
|
const exists = this.workspace.exists(sourceCompId);
|
218
229
|
|
@@ -341,6 +352,10 @@ the reason is that the refactor changes the components using ${sourceId.toString
|
|
341
352
|
const targetName = targetId || sourceId.fullName;
|
342
353
|
const targetCompId = this.newComponentHelper.getNewComponentId(targetName, undefined, options === null || options === void 0 ? void 0 : options.scope);
|
343
354
|
const component = await this.workspace.scope.getRemoteComponent(sourceId);
|
355
|
+
await this.refactoring.replaceMultipleStrings([component], [{
|
356
|
+
oldStr: sourceId.toStringWithoutVersion(),
|
357
|
+
newStr: targetCompId.toStringWithoutVersion()
|
358
|
+
}]);
|
344
359
|
const config = await this.getConfig(component);
|
345
360
|
await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, options, config);
|
346
361
|
return {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["forking.main.runtime.ts"],"names":["ForkingMain","constructor","workspace","dependencyResolver","newComponentHelper","refactoring","pkg","fork","sourceId","targetId","options","sourceCompId","resolveComponentId","exists","existingInWorkspace","get","forkExistingInWorkspace","sourceIdWithScope","_legacy","scope","ComponentID","fromLegacy","BitId","parse","targetCompId","component","forkRemoteComponent","saveDeps","installDeps","getForkInfo","forkConfig","state","aspects","ForkingAspect","id","config","forkedFrom","fromObject","forkMultipleFromRemote","componentsToFork","results","path","oldPackages","stringsToReplace","map","oldPackageName","getPackageName","push","newName","fullName","replace","scopeToReplace","newPackageName","oldStr","newStr","toStringWithoutVersion","flat","allComponents","list","refactor","changedComponents","replaceMultipleStrings","Promise","all","comp","write","forkedComponents","result","policy","extractDeps","policyFlatAndUnique","policyWithoutWorkspaceComps","filter","dep","includes","dependencyId","addToRootPolicy","updateExisting","persistConfig","install","existing","Error","getNewComponentId","undefined","getConfig","writeAndAddNewComp","refactorDependencyName","BitError","targetName","getRemoteComponent","workspacePolicyEntries","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","deps","getDependencies","source","lifecycleType","lifecycle","value","version","fromExisting","getConfigFromExistingToNewComponent","toObject","provider","cli","componentMain","graphql","forkingMain","register","ForkCmd","registerShowFragments","ForkingFragment","CLIAspect","WorkspaceAspect","DependencyResolverAspect","ComponentAspect","NewComponentHelperAspect","GraphqlAspect","RefactoringAspect","PkgAspect","MainRuntime","addRuntime"],"mappings":"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","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { uniqBy } from 'lodash';\nimport ComponentAspect, { Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { ComponentIdObj } from '@teambit/component-id';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';\nimport pMapSeries from 'p-map-series';\nimport PkgAspect, { PkgMain } from '@teambit/pkg';\nimport { BitError } from '@teambit/bit-error';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ForkCmd, ForkOptions } from './fork.cmd';\nimport { ForkingAspect } from './forking.aspect';\nimport { ForkingFragment } from './forking.fragment';\nimport { forkingSchema } from './forking.graphql';\n\nexport type ForkInfo = {\n forkedFrom: ComponentID;\n};\n\ntype MultipleComponentsToFork = Array<{\n sourceId: string;\n targetId?: string; // if not specify, it'll be the same as the source\n path?: string; // if not specify, use the default component path\n}>;\n\ntype MultipleForkOptions = {\n refactor?: boolean;\n scope?: string; // different scope-name than the original components\n install?: boolean; // whether to run \"bit install\" once done.\n};\n\nexport class ForkingMain {\n constructor(\n private workspace: Workspace,\n private dependencyResolver: DependencyResolverMain,\n private newComponentHelper: NewComponentHelperMain,\n private refactoring: RefactoringMain,\n private pkg: PkgMain\n ) {}\n\n /**\n * create a new copy of existing/remote component.\n * the new component holds a reference to the old one for future reference.\n * if refactor option is enable, change the source-code to update all dependencies with the new name.\n */\n async fork(sourceId: string, targetId?: string, options?: ForkOptions): Promise<ComponentID> {\n const sourceCompId = await this.workspace.resolveComponentId(sourceId);\n const exists = this.workspace.exists(sourceCompId);\n if (exists) {\n const existingInWorkspace = await this.workspace.get(sourceCompId);\n return this.forkExistingInWorkspace(existingInWorkspace, targetId, options);\n }\n const sourceIdWithScope = sourceCompId._legacy.scope\n ? sourceCompId\n : ComponentID.fromLegacy(BitId.parse(sourceId, true));\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, options);\n await this.saveDeps(component);\n await this.installDeps();\n return targetCompId;\n }\n\n /**\n * get the forking data, such as the source where a component was forked from\n */\n getForkInfo(component: Component): ForkInfo | null {\n const forkConfig = component.state.aspects.get(ForkingAspect.id)?.config as ForkConfig | undefined;\n if (!forkConfig) return null;\n return {\n forkedFrom: ComponentID.fromObject(forkConfig.forkedFrom),\n };\n }\n\n async forkMultipleFromRemote(componentsToFork: MultipleComponentsToFork, options: MultipleForkOptions = {}) {\n const { scope } = options;\n const results = await pMapSeries(componentsToFork, async ({ sourceId, targetId, path }) => {\n const sourceCompId = await this.workspace.resolveComponentId(sourceId);\n const sourceIdWithScope = sourceCompId._legacy.scope\n ? sourceCompId\n : ComponentID.fromLegacy(BitId.parse(sourceId, true));\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, { scope, path });\n return { targetCompId, sourceId, component };\n });\n const oldPackages: string[] = [];\n const stringsToReplace: MultipleStringsReplacement = results\n .map(({ targetCompId, sourceId, component }) => {\n const oldPackageName = this.pkg.getPackageName(component);\n oldPackages.push(oldPackageName);\n const newName = targetCompId.fullName.replace(/\\//g, '.');\n const scopeToReplace = targetCompId.scope.replace('.', '/');\n const newPackageName = `@${scopeToReplace}.${newName}`;\n return [\n { oldStr: oldPackageName, newStr: newPackageName },\n { oldStr: sourceId, newStr: targetCompId.toStringWithoutVersion() },\n ];\n })\n .flat();\n const allComponents = await this.workspace.list();\n if (options.refactor) {\n const { changedComponents } = await this.refactoring.replaceMultipleStrings(allComponents, stringsToReplace);\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n }\n const forkedComponents = results.map((result) => result.component);\n const policy = await Promise.all(forkedComponents.map((comp) => this.extractDeps(comp)));\n const policyFlatAndUnique = uniqBy(policy.flat(), 'dependencyId');\n const policyWithoutWorkspaceComps = policyFlatAndUnique.filter((dep) => !oldPackages.includes(dep.dependencyId));\n this.dependencyResolver.addToRootPolicy(policyWithoutWorkspaceComps, { updateExisting: true });\n await this.dependencyResolver.persistConfig(this.workspace.path);\n if (options.install) {\n await this.installDeps();\n }\n }\n\n private async forkExistingInWorkspace(existing: Component, targetId?: string, options?: ForkOptions) {\n if (!targetId) {\n throw new Error(`error: unable to create \"${existing.id.toStringWithoutVersion()}\" component, a component with the same name already exists.\nplease specify the target-id arg`);\n }\n const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options?.scope);\n\n const config = await this.getConfig(existing);\n await this.newComponentHelper.writeAndAddNewComp(existing, targetCompId, options, config);\n if (options?.refactor) {\n const allComponents = await this.workspace.list();\n const { changedComponents } = await this.refactoring.refactorDependencyName(allComponents, existing.id, targetId);\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n }\n return targetCompId;\n }\n\n private async forkRemoteComponent(\n sourceId: ComponentID,\n targetId?: string,\n options?: ForkOptions\n ): Promise<{\n targetCompId: ComponentID;\n component: Component;\n }> {\n if (options?.refactor) {\n throw new BitError(`the component ${sourceId.toStringWithoutVersion()} is not in the workspace, you can't use the --refactor flag.\nthe reason is that the refactor changes the components using ${sourceId.toStringWithoutVersion()}, since it's not in the workspace, no components were using it, so nothing to refactor`);\n }\n const targetName = targetId || sourceId.fullName;\n const targetCompId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope);\n const component = await this.workspace.scope.getRemoteComponent(sourceId);\n const config = await this.getConfig(component);\n await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, options, config);\n\n return { targetCompId, component };\n }\n\n private async saveDeps(component: Component) {\n const workspacePolicyEntries = await this.extractDeps(component);\n this.dependencyResolver.addToRootPolicy(workspacePolicyEntries, { updateExisting: true });\n await this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async installDeps() {\n await this.workspace.install(undefined, {\n dedupe: true,\n import: false,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n updateExisting: false,\n });\n }\n\n private async extractDeps(component: Component) {\n const deps = await this.dependencyResolver.getDependencies(component);\n return deps\n .filter((dep) => dep.source === 'auto')\n .map((dep) => ({\n dependencyId: dep.getPackageName?.() || dep.id,\n lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,\n value: {\n version: dep.version,\n },\n }));\n }\n\n private async getConfig(comp: Component) {\n const fromExisting = await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);\n return {\n ...fromExisting,\n [ForkingAspect.id]: {\n forkedFrom: comp.id.toObject(),\n },\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n ComponentAspect,\n NewComponentHelperAspect,\n GraphqlAspect,\n RefactoringAspect,\n PkgAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n cli,\n workspace,\n dependencyResolver,\n componentMain,\n newComponentHelper,\n graphql,\n refactoring,\n pkg,\n ]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n ComponentMain,\n NewComponentHelperMain,\n GraphqlMain,\n RefactoringMain,\n PkgMain\n ]) {\n const forkingMain = new ForkingMain(workspace, dependencyResolver, newComponentHelper, refactoring, pkg);\n cli.register(new ForkCmd(forkingMain));\n graphql.register(forkingSchema(forkingMain));\n componentMain.registerShowFragments([new ForkingFragment(forkingMain)]);\n return forkingMain;\n }\n}\n\nForkingAspect.addRuntime(ForkingMain);\n\nexport type ForkConfig = {\n forkedFrom: ComponentIdObj;\n};\n"]}
|
1
|
+
{"version":3,"sources":["forking.main.runtime.ts"],"names":["ForkingMain","constructor","workspace","dependencyResolver","newComponentHelper","refactoring","pkg","fork","sourceId","targetId","options","ConsumerNotFound","sourceCompId","resolveComponentId","exists","existingInWorkspace","get","forkExistingInWorkspace","sourceIdWithScope","_legacy","scope","ComponentID","fromLegacy","BitId","parse","targetCompId","component","forkRemoteComponent","saveDeps","installDeps","getForkInfo","forkConfig","state","aspects","ForkingAspect","id","config","forkedFrom","fromObject","forkMultipleFromRemote","componentsToFork","results","path","oldPackages","stringsToReplace","map","oldPackageName","getPackageName","push","newName","fullName","replace","scopeToReplace","newPackageName","oldStr","newStr","toStringWithoutVersion","flat","allComponents","list","refactor","changedComponents","replaceMultipleStrings","Promise","all","comp","write","forkedComponents","result","policy","extractDeps","policyFlatAndUnique","policyWithoutWorkspaceComps","filter","dep","includes","dependencyId","addToRootPolicy","updateExisting","persistConfig","install","existing","Error","getNewComponentId","undefined","getConfig","writeAndAddNewComp","refactorDependencyName","BitError","targetName","getRemoteComponent","workspacePolicyEntries","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","deps","getDependencies","source","lifecycleType","lifecycle","value","version","fromExisting","getConfigFromExistingToNewComponent","toObject","provider","cli","componentMain","graphql","forkingMain","register","ForkCmd","registerShowFragments","ForkingFragment","CLIAspect","WorkspaceAspect","DependencyResolverAspect","ComponentAspect","NewComponentHelperAspect","GraphqlAspect","RefactoringAspect","PkgAspect","MainRuntime","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;;AAkBO,MAAMA,WAAN,CAAkB;AACvBC,EAAAA,WAAW,CACDC,SADC,EAEDC,kBAFC,EAGDC,kBAHC,EAIDC,WAJC,EAKDC,GALC,EAMT;AAAA,SALQJ,SAKR,GALQA,SAKR;AAAA,SAJQC,kBAIR,GAJQA,kBAIR;AAAA,SAHQC,kBAGR,GAHQA,kBAGR;AAAA,SAFQC,WAER,GAFQA,WAER;AAAA,SADQC,GACR,GADQA,GACR;AAAE;AAEJ;AACF;AACA;AACA;AACA;;;AACY,QAAJC,IAAI,CAACC,QAAD,EAAmBC,QAAnB,EAAsCC,OAAtC,EAAmF;AAC3F,QAAI,CAAC,KAAKR,SAAV,EAAqB,MAAM,KAAIS,8BAAJ,GAAN;AACrB,UAAMC,YAAY,GAAG,MAAM,KAAKV,SAAL,CAAeW,kBAAf,CAAkCL,QAAlC,CAA3B;AACA,UAAMM,MAAM,GAAG,KAAKZ,SAAL,CAAeY,MAAf,CAAsBF,YAAtB,CAAf;;AACA,QAAIE,MAAJ,EAAY;AACV,YAAMC,mBAAmB,GAAG,MAAM,KAAKb,SAAL,CAAec,GAAf,CAAmBJ,YAAnB,CAAlC;AACA,aAAO,KAAKK,uBAAL,CAA6BF,mBAA7B,EAAkDN,QAAlD,EAA4DC,OAA5D,CAAP;AACD;;AACD,UAAMQ,iBAAiB,GAAGN,YAAY,CAACO,OAAb,CAAqBC,KAArB,GACtBR,YADsB,GAEtBS,yBAAYC,UAAZ,CAAuBC,qBAAMC,KAAN,CAAYhB,QAAZ,EAAsB,IAAtB,CAAvB,CAFJ;AAGA,UAAM;AAAEiB,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,QAA8B,MAAM,KAAKC,mBAAL,CAAyBT,iBAAzB,EAA4CT,QAA5C,EAAsDC,OAAtD,CAA1C;AACA,UAAM,KAAKkB,QAAL,CAAcF,SAAd,CAAN;AACA,UAAM,KAAKG,WAAL,EAAN;AACA,WAAOJ,YAAP;AACD;AAED;AACF;AACA;;;AACEK,EAAAA,WAAW,CAACJ,SAAD,EAAwC;AAAA;;AACjD,UAAMK,UAAU,4BAAGL,SAAS,CAACM,KAAV,CAAgBC,OAAhB,CAAwBjB,GAAxB,CAA4BkB,yBAAcC,EAA1C,CAAH,0DAAG,sBAA+CC,MAAlE;AACA,QAAI,CAACL,UAAL,EAAiB,OAAO,IAAP;AACjB,WAAO;AACLM,MAAAA,UAAU,EAAEhB,yBAAYiB,UAAZ,CAAuBP,UAAU,CAACM,UAAlC;AADP,KAAP;AAGD;;AAE2B,QAAtBE,sBAAsB,CAACC,gBAAD,EAA6C9B,OAA4B,GAAG,EAA5E,EAAgF;AAC1G,UAAM;AAAEU,MAAAA;AAAF,QAAYV,OAAlB;AACA,UAAM+B,OAAO,GAAG,MAAM,2BAAWD,gBAAX,EAA6B,OAAO;AAAEhC,MAAAA,QAAF;AAAYC,MAAAA,QAAZ;AAAsBiC,MAAAA;AAAtB,KAAP,KAAwC;AACzF,YAAM9B,YAAY,GAAG,MAAM,KAAKV,SAAL,CAAeW,kBAAf,CAAkCL,QAAlC,CAA3B;AACA,YAAMU,iBAAiB,GAAGN,YAAY,CAACO,OAAb,CAAqBC,KAArB,GACtBR,YADsB,GAEtBS,yBAAYC,UAAZ,CAAuBC,qBAAMC,KAAN,CAAYhB,QAAZ,EAAsB,IAAtB,CAAvB,CAFJ;AAGA,YAAM;AAAEiB,QAAAA,YAAF;AAAgBC,QAAAA;AAAhB,UAA8B,MAAM,KAAKC,mBAAL,CAAyBT,iBAAzB,EAA4CT,QAA5C,EAAsD;AAAEW,QAAAA,KAAF;AAASsB,QAAAA;AAAT,OAAtD,CAA1C;AACA,aAAO;AAAEjB,QAAAA,YAAF;AAAgBjB,QAAAA,QAAhB;AAA0BkB,QAAAA;AAA1B,OAAP;AACD,KAPqB,CAAtB;AAQA,UAAMiB,WAAqB,GAAG,EAA9B;AACA,UAAMC,gBAA4C,GAAGH,OAAO,CACzDI,GADkD,CAC9C,CAAC;AAAEpB,MAAAA,YAAF;AAAgBjB,MAAAA,QAAhB;AAA0BkB,MAAAA;AAA1B,KAAD,KAA2C;AAC9C,YAAMoB,cAAc,GAAG,KAAKxC,GAAL,CAASyC,cAAT,CAAwBrB,SAAxB,CAAvB;AACAiB,MAAAA,WAAW,CAACK,IAAZ,CAAiBF,cAAjB;AACA,YAAMG,OAAO,GAAGxB,YAAY,CAACyB,QAAb,CAAsBC,OAAtB,CAA8B,KAA9B,EAAqC,GAArC,CAAhB;AACA,YAAMC,cAAc,GAAG3B,YAAY,CAACL,KAAb,CAAmB+B,OAAnB,CAA2B,GAA3B,EAAgC,GAAhC,CAAvB;AACA,YAAME,cAAc,GAAI,IAAGD,cAAe,IAAGH,OAAQ,EAArD;AACA,aAAO,CACL;AAAEK,QAAAA,MAAM,EAAER,cAAV;AAA0BS,QAAAA,MAAM,EAAEF;AAAlC,OADK,EAEL;AAAEC,QAAAA,MAAM,EAAE9C,QAAV;AAAoB+C,QAAAA,MAAM,EAAE9B,YAAY,CAAC+B,sBAAb;AAA5B,OAFK,CAAP;AAID,KAXkD,EAYlDC,IAZkD,EAArD;AAaA,UAAMC,aAAa,GAAG,MAAM,KAAKxD,SAAL,CAAeyD,IAAf,EAA5B;;AACA,QAAIjD,OAAO,CAACkD,QAAZ,EAAsB;AACpB,YAAM;AAAEC,QAAAA;AAAF,UAAwB,MAAM,KAAKxD,WAAL,CAAiByD,sBAAjB,CAAwCJ,aAAxC,EAAuDd,gBAAvD,CAApC;AACA,YAAMmB,OAAO,CAACC,GAAR,CAAYH,iBAAiB,CAAChB,GAAlB,CAAuBoB,IAAD,IAAU,KAAK/D,SAAL,CAAegE,KAAf,CAAqBD,IAArB,CAAhC,CAAZ,CAAN;AACD;;AACD,UAAME,gBAAgB,GAAG1B,OAAO,CAACI,GAAR,CAAauB,MAAD,IAAYA,MAAM,CAAC1C,SAA/B,CAAzB;AACA,UAAM2C,MAAM,GAAG,MAAMN,OAAO,CAACC,GAAR,CAAYG,gBAAgB,CAACtB,GAAjB,CAAsBoB,IAAD,IAAU,KAAKK,WAAL,CAAiBL,IAAjB,CAA/B,CAAZ,CAArB;AACA,UAAMM,mBAAmB,GAAG,sBAAOF,MAAM,CAACZ,IAAP,EAAP,EAAsB,cAAtB,CAA5B;AACA,UAAMe,2BAA2B,GAAGD,mBAAmB,CAACE,MAApB,CAA4BC,GAAD,IAAS,CAAC/B,WAAW,CAACgC,QAAZ,CAAqBD,GAAG,CAACE,YAAzB,CAArC,CAApC;AACA,SAAKzE,kBAAL,CAAwB0E,eAAxB,CAAwCL,2BAAxC,EAAqE;AAAEM,MAAAA,cAAc,EAAE;AAAlB,KAArE;AACA,UAAM,KAAK3E,kBAAL,CAAwB4E,aAAxB,CAAsC,KAAK7E,SAAL,CAAewC,IAArD,CAAN;;AACA,QAAIhC,OAAO,CAACsE,OAAZ,EAAqB;AACnB,YAAM,KAAKnD,WAAL,EAAN;AACD;AACF;;AAEoC,QAAvBZ,uBAAuB,CAACgE,QAAD,EAAsBxE,QAAtB,EAAyCC,OAAzC,EAAgE;AACnG,QAAI,CAACD,QAAL,EAAe;AACb,YAAM,IAAIyE,KAAJ,CAAW,4BAA2BD,QAAQ,CAAC9C,EAAT,CAAYqB,sBAAZ,EAAqC;AACvF,iCADY,CAAN;AAED;;AACD,UAAM/B,YAAY,GAAG,KAAKrB,kBAAL,CAAwB+E,iBAAxB,CAA0C1E,QAA1C,EAAoD2E,SAApD,EAA+D1E,OAA/D,aAA+DA,OAA/D,uBAA+DA,OAAO,CAAEU,KAAxE,CAArB;AAEA,UAAMgB,MAAM,GAAG,MAAM,KAAKiD,SAAL,CAAeJ,QAAf,CAArB;AACA,UAAM,KAAK7E,kBAAL,CAAwBkF,kBAAxB,CAA2CL,QAA3C,EAAqDxD,YAArD,EAAmEf,OAAnE,EAA4E0B,MAA5E,CAAN;;AACA,QAAI1B,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEkD,QAAb,EAAuB;AACrB,YAAMF,aAAa,GAAG,MAAM,KAAKxD,SAAL,CAAeyD,IAAf,EAA5B;AACA,YAAM;AAAEE,QAAAA;AAAF,UAAwB,MAAM,KAAKxD,WAAL,CAAiBkF,sBAAjB,CAAwC7B,aAAxC,EAAuDuB,QAAQ,CAAC9C,EAAhE,EAAoE1B,QAApE,CAApC;AACA,YAAMsD,OAAO,CAACC,GAAR,CAAYH,iBAAiB,CAAChB,GAAlB,CAAuBoB,IAAD,IAAU,KAAK/D,SAAL,CAAegE,KAAf,CAAqBD,IAArB,CAAhC,CAAZ,CAAN;AACD;;AACD,WAAOxC,YAAP;AACD;;AAEgC,QAAnBE,mBAAmB,CAC/BnB,QAD+B,EAE/BC,QAF+B,EAG/BC,OAH+B,EAO9B;AACD,QAAIA,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEkD,QAAb,EAAuB;AACrB,YAAM,KAAI4B,oBAAJ,EAAc,iBAAgBhF,QAAQ,CAACgD,sBAAT,EAAkC;AAC5E,+DAA+DhD,QAAQ,CAACgD,sBAAT,EAAkC,wFADrF,CAAN;AAED;;AACD,UAAMiC,UAAU,GAAGhF,QAAQ,IAAID,QAAQ,CAAC0C,QAAxC;AACA,UAAMzB,YAAY,GAAG,KAAKrB,kBAAL,CAAwB+E,iBAAxB,CAA0CM,UAA1C,EAAsDL,SAAtD,EAAiE1E,OAAjE,aAAiEA,OAAjE,uBAAiEA,OAAO,CAAEU,KAA1E,CAArB;AACA,UAAMM,SAAS,GAAG,MAAM,KAAKxB,SAAL,CAAekB,KAAf,CAAqBsE,kBAArB,CAAwClF,QAAxC,CAAxB;AACA,UAAM,KAAKH,WAAL,CAAiByD,sBAAjB,CACJ,CAACpC,SAAD,CADI,EAEJ,CACE;AACE4B,MAAAA,MAAM,EAAE9C,QAAQ,CAACgD,sBAAT,EADV;AAEED,MAAAA,MAAM,EAAE9B,YAAY,CAAC+B,sBAAb;AAFV,KADF,CAFI,CAAN;AASA,UAAMpB,MAAM,GAAG,MAAM,KAAKiD,SAAL,CAAe3D,SAAf,CAArB;AACA,UAAM,KAAKtB,kBAAL,CAAwBkF,kBAAxB,CAA2C5D,SAA3C,EAAsDD,YAAtD,EAAoEf,OAApE,EAA6E0B,MAA7E,CAAN;AAEA,WAAO;AAAEX,MAAAA,YAAF;AAAgBC,MAAAA;AAAhB,KAAP;AACD;;AAEqB,QAARE,QAAQ,CAACF,SAAD,EAAuB;AAC3C,UAAMiE,sBAAsB,GAAG,MAAM,KAAKrB,WAAL,CAAiB5C,SAAjB,CAArC;AACA,SAAKvB,kBAAL,CAAwB0E,eAAxB,CAAwCc,sBAAxC,EAAgE;AAAEb,MAAAA,cAAc,EAAE;AAAlB,KAAhE;AACA,UAAM,KAAK3E,kBAAL,CAAwB4E,aAAxB,CAAsC,KAAK7E,SAAL,CAAewC,IAArD,CAAN;AACD;;AAEwB,QAAXb,WAAW,GAAG;AAC1B,UAAM,KAAK3B,SAAL,CAAe8E,OAAf,CAAuBI,SAAvB,EAAkC;AACtCQ,MAAAA,MAAM,EAAE,IAD8B;AAEtCC,MAAAA,MAAM,EAAE,KAF8B;AAGtCC,MAAAA,uBAAuB,EAAE,IAHa;AAItCC,MAAAA,6BAA6B,EAAE,KAJO;AAKtCjB,MAAAA,cAAc,EAAE;AALsB,KAAlC,CAAN;AAOD;;AAEwB,QAAXR,WAAW,CAAC5C,SAAD,EAAuB;AAC9C,UAAMsE,IAAI,GAAG,MAAM,KAAK7F,kBAAL,CAAwB8F,eAAxB,CAAwCvE,SAAxC,CAAnB;AACA,WAAOsE,IAAI,CACRvB,MADI,CACIC,GAAD,IAASA,GAAG,CAACwB,MAAJ,KAAe,MAD3B,EAEJrD,GAFI,CAEC6B,GAAD;AAAA;;AAAA,aAAU;AACbE,QAAAA,YAAY,EAAE,wBAAAF,GAAG,CAAC3B,cAAJ,iFAAA2B,GAAG,MAAuBA,GAAG,CAACvC,EAD/B;AAEbgE,QAAAA,aAAa,EAAEzB,GAAG,CAAC0B,SAAJ,KAAkB,KAAlB,GAA0B,SAA1B,GAAsC1B,GAAG,CAAC0B,SAF5C;AAGbC,QAAAA,KAAK,EAAE;AACLC,UAAAA,OAAO,EAAE5B,GAAG,CAAC4B;AADR;AAHM,OAAV;AAAA,KAFA,CAAP;AASD;;AAEsB,QAATjB,SAAS,CAACpB,IAAD,EAAkB;AACvC,UAAMsC,YAAY,GAAG,MAAM,KAAKnG,kBAAL,CAAwBoG,mCAAxB,CAA4DvC,IAA5D,CAA3B;AACA,2CACKsC,YADL;AAEE,OAACrE,yBAAcC,EAAf,GAAoB;AAClBE,QAAAA,UAAU,EAAE4B,IAAI,CAAC9B,EAAL,CAAQsE,QAAR;AADM;AAFtB;AAMD;;AAcoB,eAARC,QAAQ,CAAC,CACpBC,GADoB,EAEpBzG,SAFoB,EAGpBC,kBAHoB,EAIpByG,aAJoB,EAKpBxG,kBALoB,EAMpByG,OANoB,EAOpBxG,WAPoB,EAQpBC,GARoB,CAAD,EAkBlB;AACD,UAAMwG,WAAW,GAAG,IAAI9G,WAAJ,CAAgBE,SAAhB,EAA2BC,kBAA3B,EAA+CC,kBAA/C,EAAmEC,WAAnE,EAAgFC,GAAhF,CAApB;AACAqG,IAAAA,GAAG,CAACI,QAAJ,CAAa,KAAIC,eAAJ,EAAYF,WAAZ,CAAb;AACAD,IAAAA,OAAO,CAACE,QAAR,CAAiB,+BAAcD,WAAd,CAAjB;AACAF,IAAAA,aAAa,CAACK,qBAAd,CAAoC,CAAC,KAAIC,2BAAJ,EAAoBJ,WAApB,CAAD,CAApC;AACA,WAAOA,WAAP;AACD;;AA5MsB;;;gCAAZ9G,W,WAwKI,E;gCAxKJA,W,kBAyKW,CACpBmH,gBADoB,EAEpBC,oBAFoB,EAGpBC,8CAHoB,EAIpBC,oBAJoB,EAKpBC,6BALoB,EAMpBC,kBANoB,EAOpBC,sBAPoB,EAQpBC,cARoB,C;gCAzKX1H,W,aAmLM2H,kB;;AA4BnBzF,yBAAc0F,UAAd,CAAyB5H,WAAzB","sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport { uniqBy } from 'lodash';\nimport ComponentAspect, { Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { ComponentIdObj } from '@teambit/component-id';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';\nimport pMapSeries from 'p-map-series';\nimport PkgAspect, { PkgMain } from '@teambit/pkg';\nimport { BitError } from '@teambit/bit-error';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ForkCmd, ForkOptions } from './fork.cmd';\nimport { ForkingAspect } from './forking.aspect';\nimport { ForkingFragment } from './forking.fragment';\nimport { forkingSchema } from './forking.graphql';\n\nexport type ForkInfo = {\n forkedFrom: ComponentID;\n};\n\ntype MultipleComponentsToFork = Array<{\n sourceId: string;\n targetId?: string; // if not specify, it'll be the same as the source\n path?: string; // if not specify, use the default component path\n}>;\n\ntype MultipleForkOptions = {\n refactor?: boolean;\n scope?: string; // different scope-name than the original components\n install?: boolean; // whether to run \"bit install\" once done.\n};\n\nexport class ForkingMain {\n constructor(\n private workspace: Workspace,\n private dependencyResolver: DependencyResolverMain,\n private newComponentHelper: NewComponentHelperMain,\n private refactoring: RefactoringMain,\n private pkg: PkgMain\n ) {}\n\n /**\n * create a new copy of existing/remote component.\n * the new component holds a reference to the old one for future reference.\n * if refactor option is enable, change the source-code to update all dependencies with the new name.\n */\n async fork(sourceId: string, targetId?: string, options?: ForkOptions): Promise<ComponentID> {\n if (!this.workspace) throw new ConsumerNotFound();\n const sourceCompId = await this.workspace.resolveComponentId(sourceId);\n const exists = this.workspace.exists(sourceCompId);\n if (exists) {\n const existingInWorkspace = await this.workspace.get(sourceCompId);\n return this.forkExistingInWorkspace(existingInWorkspace, targetId, options);\n }\n const sourceIdWithScope = sourceCompId._legacy.scope\n ? sourceCompId\n : ComponentID.fromLegacy(BitId.parse(sourceId, true));\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, options);\n await this.saveDeps(component);\n await this.installDeps();\n return targetCompId;\n }\n\n /**\n * get the forking data, such as the source where a component was forked from\n */\n getForkInfo(component: Component): ForkInfo | null {\n const forkConfig = component.state.aspects.get(ForkingAspect.id)?.config as ForkConfig | undefined;\n if (!forkConfig) return null;\n return {\n forkedFrom: ComponentID.fromObject(forkConfig.forkedFrom),\n };\n }\n\n async forkMultipleFromRemote(componentsToFork: MultipleComponentsToFork, options: MultipleForkOptions = {}) {\n const { scope } = options;\n const results = await pMapSeries(componentsToFork, async ({ sourceId, targetId, path }) => {\n const sourceCompId = await this.workspace.resolveComponentId(sourceId);\n const sourceIdWithScope = sourceCompId._legacy.scope\n ? sourceCompId\n : ComponentID.fromLegacy(BitId.parse(sourceId, true));\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, { scope, path });\n return { targetCompId, sourceId, component };\n });\n const oldPackages: string[] = [];\n const stringsToReplace: MultipleStringsReplacement = results\n .map(({ targetCompId, sourceId, component }) => {\n const oldPackageName = this.pkg.getPackageName(component);\n oldPackages.push(oldPackageName);\n const newName = targetCompId.fullName.replace(/\\//g, '.');\n const scopeToReplace = targetCompId.scope.replace('.', '/');\n const newPackageName = `@${scopeToReplace}.${newName}`;\n return [\n { oldStr: oldPackageName, newStr: newPackageName },\n { oldStr: sourceId, newStr: targetCompId.toStringWithoutVersion() },\n ];\n })\n .flat();\n const allComponents = await this.workspace.list();\n if (options.refactor) {\n const { changedComponents } = await this.refactoring.replaceMultipleStrings(allComponents, stringsToReplace);\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n }\n const forkedComponents = results.map((result) => result.component);\n const policy = await Promise.all(forkedComponents.map((comp) => this.extractDeps(comp)));\n const policyFlatAndUnique = uniqBy(policy.flat(), 'dependencyId');\n const policyWithoutWorkspaceComps = policyFlatAndUnique.filter((dep) => !oldPackages.includes(dep.dependencyId));\n this.dependencyResolver.addToRootPolicy(policyWithoutWorkspaceComps, { updateExisting: true });\n await this.dependencyResolver.persistConfig(this.workspace.path);\n if (options.install) {\n await this.installDeps();\n }\n }\n\n private async forkExistingInWorkspace(existing: Component, targetId?: string, options?: ForkOptions) {\n if (!targetId) {\n throw new Error(`error: unable to create \"${existing.id.toStringWithoutVersion()}\" component, a component with the same name already exists.\nplease specify the target-id arg`);\n }\n const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options?.scope);\n\n const config = await this.getConfig(existing);\n await this.newComponentHelper.writeAndAddNewComp(existing, targetCompId, options, config);\n if (options?.refactor) {\n const allComponents = await this.workspace.list();\n const { changedComponents } = await this.refactoring.refactorDependencyName(allComponents, existing.id, targetId);\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n }\n return targetCompId;\n }\n\n private async forkRemoteComponent(\n sourceId: ComponentID,\n targetId?: string,\n options?: ForkOptions\n ): Promise<{\n targetCompId: ComponentID;\n component: Component;\n }> {\n if (options?.refactor) {\n throw new BitError(`the component ${sourceId.toStringWithoutVersion()} is not in the workspace, you can't use the --refactor flag.\nthe reason is that the refactor changes the components using ${sourceId.toStringWithoutVersion()}, since it's not in the workspace, no components were using it, so nothing to refactor`);\n }\n const targetName = targetId || sourceId.fullName;\n const targetCompId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope);\n const component = await this.workspace.scope.getRemoteComponent(sourceId);\n await this.refactoring.replaceMultipleStrings(\n [component],\n [\n {\n oldStr: sourceId.toStringWithoutVersion(),\n newStr: targetCompId.toStringWithoutVersion(),\n },\n ]\n );\n const config = await this.getConfig(component);\n await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, options, config);\n\n return { targetCompId, component };\n }\n\n private async saveDeps(component: Component) {\n const workspacePolicyEntries = await this.extractDeps(component);\n this.dependencyResolver.addToRootPolicy(workspacePolicyEntries, { updateExisting: true });\n await this.dependencyResolver.persistConfig(this.workspace.path);\n }\n\n private async installDeps() {\n await this.workspace.install(undefined, {\n dedupe: true,\n import: false,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n updateExisting: false,\n });\n }\n\n private async extractDeps(component: Component) {\n const deps = await this.dependencyResolver.getDependencies(component);\n return deps\n .filter((dep) => dep.source === 'auto')\n .map((dep) => ({\n dependencyId: dep.getPackageName?.() || dep.id,\n lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,\n value: {\n version: dep.version,\n },\n }));\n }\n\n private async getConfig(comp: Component) {\n const fromExisting = await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);\n return {\n ...fromExisting,\n [ForkingAspect.id]: {\n forkedFrom: comp.id.toObject(),\n },\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DependencyResolverAspect,\n ComponentAspect,\n NewComponentHelperAspect,\n GraphqlAspect,\n RefactoringAspect,\n PkgAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n cli,\n workspace,\n dependencyResolver,\n componentMain,\n newComponentHelper,\n graphql,\n refactoring,\n pkg,\n ]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n ComponentMain,\n NewComponentHelperMain,\n GraphqlMain,\n RefactoringMain,\n PkgMain\n ]) {\n const forkingMain = new ForkingMain(workspace, dependencyResolver, newComponentHelper, refactoring, pkg);\n cli.register(new ForkCmd(forkingMain));\n graphql.register(forkingSchema(forkingMain));\n componentMain.registerShowFragments([new ForkingFragment(forkingMain)]);\n return forkingMain;\n }\n}\n\nForkingAspect.addRuntime(ForkingMain);\n\nexport type ForkConfig = {\n forkedFrom: ComponentIdObj;\n};\n"]}
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/forking",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.131",
|
4
4
|
"homepage": "https://bit.dev/teambit/component/forking",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.component",
|
8
8
|
"name": "forking",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.131"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"chalk": "4.1.2",
|
@@ -16,17 +16,17 @@
|
|
16
16
|
"@babel/runtime": "7.12.18",
|
17
17
|
"core-js": "^3.0.0",
|
18
18
|
"@teambit/harmony": "0.3.3",
|
19
|
-
"@teambit/cli": "0.0.
|
20
|
-
"@teambit/component": "0.0.
|
21
|
-
"@teambit/graphql": "0.0.
|
19
|
+
"@teambit/cli": "0.0.486",
|
20
|
+
"@teambit/component": "0.0.727",
|
21
|
+
"@teambit/graphql": "0.0.727",
|
22
22
|
"@teambit/bit-error": "0.0.394",
|
23
23
|
"@teambit/component-id": "0.0.402",
|
24
|
-
"@teambit/dependency-resolver": "0.0.
|
24
|
+
"@teambit/dependency-resolver": "0.0.727",
|
25
25
|
"@teambit/legacy-bit-id": "0.0.399",
|
26
|
-
"@teambit/new-component-helper": "0.0.
|
27
|
-
"@teambit/pkg": "0.0.
|
28
|
-
"@teambit/refactoring": "0.0.
|
29
|
-
"@teambit/workspace": "0.0.
|
26
|
+
"@teambit/new-component-helper": "0.0.131",
|
27
|
+
"@teambit/pkg": "0.0.727",
|
28
|
+
"@teambit/refactoring": "0.0.24",
|
29
|
+
"@teambit/workspace": "0.0.727"
|
30
30
|
},
|
31
31
|
"devDependencies": {
|
32
32
|
"@types/react": "^17.0.8",
|
@@ -38,7 +38,7 @@
|
|
38
38
|
"@types/node": "12.20.4"
|
39
39
|
},
|
40
40
|
"peerDependencies": {
|
41
|
-
"@teambit/legacy": "1.0.
|
41
|
+
"@teambit/legacy": "1.0.265",
|
42
42
|
"react-dom": "^16.8.0 || ^17.0.0",
|
43
43
|
"react": "^16.8.0 || ^17.0.0"
|
44
44
|
},
|
@@ -66,7 +66,7 @@
|
|
66
66
|
"react": "-"
|
67
67
|
},
|
68
68
|
"peerDependencies": {
|
69
|
-
"@teambit/legacy": "1.0.
|
69
|
+
"@teambit/legacy": "1.0.265",
|
70
70
|
"react-dom": "^16.8.0 || ^17.0.0",
|
71
71
|
"react": "^16.8.0 || ^17.0.0"
|
72
72
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@0.0.
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@0.0.
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@0.0.131/dist/forking.composition.js')]
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@0.0.131/dist/forking.docs.mdx')]
|
Binary file
|