@teambit/forking 1.0.106 → 1.0.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { ComponentConfig } from '@teambit/generator';
3
3
  import { ForkingMain } from '.';
4
- export declare type ForkOptions = {
4
+ export type ForkOptions = {
5
5
  scope?: string;
6
6
  path?: string;
7
7
  refactor?: boolean;
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const Logo: () => JSX.Element;
@@ -10,7 +10,7 @@ export declare class ForkingFragment implements ShowFragment {
10
10
  }>;
11
11
  json(component: Component): Promise<{
12
12
  title: string;
13
- json: import("./forking.main.runtime").ForkInfo | null;
13
+ json: import("./forking.main.runtime").ForkInfo;
14
14
  }>;
15
15
  weight: number;
16
16
  }
@@ -28,7 +28,7 @@ function forkingSchema(forking) {
28
28
  forking: component => {
29
29
  const forkInfo = forking.getForkInfo(component);
30
30
  return {
31
- forkedFrom: forkInfo === null || forkInfo === void 0 ? void 0 : forkInfo.forkedFrom.toString()
31
+ forkedFrom: forkInfo?.forkedFrom.toString()
32
32
  };
33
33
  }
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","forkingSchema","forking","typeDefs","gql","resolvers","Component","component","forkInfo","getForkInfo","forkedFrom","toString"],"sources":["forking.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport gql from 'graphql-tag';\nimport { ForkingMain } from './forking.main.runtime';\n\nexport function forkingSchema(forking: ForkingMain): Schema {\n return {\n typeDefs: gql`\n extend type Component {\n forking: ForkingInfo\n }\n\n type ForkingInfo {\n forkedFrom: String\n }\n `,\n resolvers: {\n Component: {\n forking: (component: Component) => {\n const forkInfo = forking.getForkInfo(component);\n return {\n forkedFrom: forkInfo?.forkedFrom.toString(),\n };\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;AAEA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGvB,SAASG,aAAaA,CAACC,OAAoB,EAAU;EAC1D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTJ,OAAO,EAAGK,SAAoB,IAAK;UACjC,MAAMC,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAACF,SAAS,CAAC;UAC/C,OAAO;YACLG,UAAU,EAAEF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,UAAU,CAACC,QAAQ,CAAC;UAC5C,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH"}
1
+ {"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","forkingSchema","forking","typeDefs","gql","resolvers","Component","component","forkInfo","getForkInfo","forkedFrom","toString"],"sources":["forking.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport gql from 'graphql-tag';\nimport { ForkingMain } from './forking.main.runtime';\n\nexport function forkingSchema(forking: ForkingMain): Schema {\n return {\n typeDefs: gql`\n extend type Component {\n forking: ForkingInfo\n }\n\n type ForkingInfo {\n forkedFrom: String\n }\n `,\n resolvers: {\n Component: {\n forking: (component: Component) => {\n const forkInfo = forking.getForkInfo(component);\n return {\n forkedFrom: forkInfo?.forkedFrom.toString(),\n };\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;AAEA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGvB,SAASG,aAAaA,CAACC,OAAoB,EAAU;EAC1D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTJ,OAAO,EAAGK,SAAoB,IAAK;UACjC,MAAMC,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAACF,SAAS,CAAC;UAC/C,OAAO;YACLG,UAAU,EAAEF,QAAQ,EAAEE,UAAU,CAACC,QAAQ,CAAC;UAC5C,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH"}
@@ -11,17 +11,18 @@ import { RefactoringMain } from '@teambit/refactoring';
11
11
  import { Workspace } from '@teambit/workspace';
12
12
  import { ForkOptions } from './fork.cmd';
13
13
  import { ScopeForkOptions } from './scope-fork.cmd';
14
- export declare type ForkInfo = {
14
+ export type ForkInfo = {
15
15
  forkedFrom: ComponentID;
16
16
  };
17
- declare type MultipleComponentsToFork = Array<{
17
+ type MultipleComponentsToFork = Array<{
18
18
  sourceId: string;
19
19
  targetId?: string;
20
+ targetScope?: string;
20
21
  path?: string;
21
22
  env?: string;
22
23
  config?: ComponentConfig;
23
24
  }>;
24
- declare type MultipleForkOptions = {
25
+ type MultipleForkOptions = {
25
26
  refactor?: boolean;
26
27
  scope?: string;
27
28
  install?: boolean;
@@ -64,7 +65,7 @@ export declare class ForkingMain {
64
65
  private installDeps;
65
66
  private extractDeps;
66
67
  private getConfig;
67
- static slots: never[];
68
+ static slots: any[];
68
69
  static dependencies: import("@teambit/harmony").Aspect[];
69
70
  static runtime: import("@teambit/harmony").RuntimeDefinition;
70
71
  static provider([cli, workspace, dependencyResolver, componentMain, newComponentHelper, graphql, refactoring, pkg, install,]: [
@@ -79,7 +80,7 @@ export declare class ForkingMain {
79
80
  InstallMain
80
81
  ]): Promise<ForkingMain>;
81
82
  }
82
- export declare type ForkConfig = {
83
+ export type ForkConfig = {
83
84
  forkedFrom: ComponentIdObj;
84
85
  };
85
86
  export {};
@@ -174,7 +174,7 @@ class ForkingMain {
174
174
  component
175
175
  } = await this.forkRemoteComponent(sourceIdWithScope, targetId, options);
176
176
  await this.saveDeps(component);
177
- if (!(options !== null && options !== void 0 && options.skipDependencyInstallation)) await this.installDeps();
177
+ if (!options?.skipDependencyInstallation) await this.installDeps();
178
178
  return targetCompId;
179
179
  }
180
180
 
@@ -182,8 +182,7 @@ class ForkingMain {
182
182
  * get the forking data, such as the source where a component was forked from
183
183
  */
184
184
  getForkInfo(component) {
185
- var _component$state$aspe;
186
- const forkConfig = (_component$state$aspe = component.state.aspects.get(_forking().ForkingAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.config;
185
+ const forkConfig = component.state.aspects.get(_forking().ForkingAspect.id)?.config;
187
186
  if (!forkConfig) return null;
188
187
  return {
189
188
  forkedFrom: _componentId().ComponentID.fromObject(forkConfig.forkedFrom)
@@ -199,7 +198,8 @@ class ForkingMain {
199
198
  targetId,
200
199
  path,
201
200
  env,
202
- config
201
+ config,
202
+ targetScope
203
203
  }) => {
204
204
  const sourceCompId = await this.workspace.resolveComponentId(sourceId);
205
205
  const sourceIdWithScope = sourceCompId._legacy.scope ? sourceCompId : _componentId().ComponentID.fromString(sourceId);
@@ -207,7 +207,7 @@ class ForkingMain {
207
207
  targetCompId,
208
208
  component
209
209
  } = await this.forkRemoteComponent(sourceIdWithScope, targetId, {
210
- scope,
210
+ scope: targetScope || scope,
211
211
  path,
212
212
  env,
213
213
  config
@@ -315,17 +315,17 @@ class ForkingMain {
315
315
  });
316
316
  await this.refactorMultipleAndInstall(multipleForkInfo, {
317
317
  refactor: true,
318
- install: !(options !== null && options !== void 0 && options.skipDependencyInstallation),
319
- ast: options === null || options === void 0 ? void 0 : options.ast
318
+ install: !options?.skipDependencyInstallation,
319
+ ast: options?.ast
320
320
  });
321
321
  return multipleForkInfo.map(info => info.targetCompId);
322
322
  }
323
323
  async forkExistingInWorkspace(existing, targetId, options) {
324
324
  targetId = targetId || existing.id.fullName;
325
- const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options === null || options === void 0 ? void 0 : options.scope);
325
+ const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options?.scope);
326
326
  const config = await this.getConfig(existing, options);
327
327
  await this.newComponentHelper.writeAndAddNewComp(existing, targetCompId, options, config);
328
- if (options !== null && options !== void 0 && options.refactor) {
328
+ if (options?.refactor) {
329
329
  const allComponents = await this.workspace.list();
330
330
  const {
331
331
  changedComponents
@@ -335,18 +335,18 @@ class ForkingMain {
335
335
  return targetCompId;
336
336
  }
337
337
  async forkRemoteComponent(sourceId, targetId, options) {
338
- if (options !== null && options !== void 0 && options.refactor) {
338
+ if (options?.refactor) {
339
339
  throw new (_bitError().BitError)(`the component ${sourceId.toStringWithoutVersion()} is not in the workspace, you can't use the --refactor flag.
340
340
  the 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`);
341
341
  }
342
342
  const targetName = targetId || sourceId.fullName;
343
- const targetCompId = this.newComponentHelper.getNewComponentId(targetName, undefined, options === null || options === void 0 ? void 0 : options.scope);
343
+ const targetCompId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope);
344
344
  const component = await this.workspace.scope.getRemoteComponent(sourceId);
345
345
  await this.refactoring.replaceMultipleStrings([component], [{
346
346
  oldStr: sourceId.toStringWithoutVersion(),
347
347
  newStr: targetCompId.toStringWithoutVersion()
348
- }], options !== null && options !== void 0 && options.ast ? [_typescript().importTransformer, _typescript().exportTransformer] : undefined);
349
- if (!(options !== null && options !== void 0 && options.preserve)) {
348
+ }], options?.ast ? [_typescript().importTransformer, _typescript().exportTransformer] : undefined);
349
+ if (!options?.preserve) {
350
350
  await this.refactoring.refactorVariableAndClasses(component, sourceId, targetCompId);
351
351
  this.refactoring.refactorFilenames(component, sourceId, targetCompId);
352
352
  }
@@ -383,21 +383,18 @@ the reason is that the refactor changes the components using ${sourceId.toString
383
383
  return !excludeCompIds.includes(compIdStr);
384
384
  }
385
385
  return !excludePackages.includes(dep.id);
386
- }).map(dep => {
387
- var _dep$getPackageName;
388
- return {
389
- dependencyId: ((_dep$getPackageName = dep.getPackageName) === null || _dep$getPackageName === void 0 ? void 0 : _dep$getPackageName.call(dep)) || dep.id,
390
- lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,
391
- value: {
392
- version: dep.version
393
- }
394
- };
395
- });
386
+ }).map(dep => ({
387
+ dependencyId: dep.getPackageName?.() || dep.id,
388
+ lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,
389
+ value: {
390
+ version: dep.version
391
+ }
392
+ }));
396
393
  }
397
394
  async getConfig(comp, options) {
398
- const config = (options === null || options === void 0 ? void 0 : options.config) || {};
399
- const fromExisting = options !== null && options !== void 0 && options.skipConfig ? {} : await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);
400
- const linkToOriginal = options !== null && options !== void 0 && options.noLink ? {} : {
395
+ const config = options?.config || {};
396
+ const fromExisting = options?.skipConfig ? {} : await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);
397
+ const linkToOriginal = options?.noLink ? {} : {
401
398
  [_forking().ForkingAspect.id]: {
402
399
  forkedFrom: comp.id.toObject()
403
400
  }
@@ -405,13 +402,12 @@ the reason is that the refactor changes the components using ${sourceId.toString
405
402
  return _objectSpread(_objectSpread(_objectSpread({}, fromExisting), linkToOriginal), config);
406
403
  }
407
404
  static async provider([cli, workspace, dependencyResolver, componentMain, newComponentHelper, graphql, refactoring, pkg, install]) {
408
- var _scopeCommand$command;
409
405
  const forkingMain = new ForkingMain(workspace, install, dependencyResolver, newComponentHelper, refactoring, pkg);
410
406
  cli.register(new (_fork().ForkCmd)(forkingMain));
411
407
  graphql.register((0, _forking3().forkingSchema)(forkingMain));
412
408
  componentMain.registerShowFragments([new (_forking2().ForkingFragment)(forkingMain)]);
413
409
  const scopeCommand = cli.getCommand('scope');
414
- scopeCommand === null || scopeCommand === void 0 || (_scopeCommand$command = scopeCommand.commands) === null || _scopeCommand$command === void 0 || _scopeCommand$command.push(new (_scopeFork().ScopeForkCmd)(forkingMain));
410
+ scopeCommand?.commands?.push(new (_scopeFork().ScopeForkCmd)(forkingMain));
415
411
  return forkingMain;
416
412
  }
417
413
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_bitError","data","require","_cli","_typescript","_component","_interopRequireDefault","_dependencyResolver","_graphql","_install","_componentId","_newComponentHelper","_pkg","_refactoring","_workspace","_interopRequireWildcard","_lodash","_pMapSeries","_fork","_forking","_forking2","_forking3","_scopeFork","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","ForkingMain","constructor","workspace","install","dependencyResolver","newComponentHelper","refactoring","pkg","fork","sourceId","targetId","options","OutsideWorkspaceError","sourceCompId","resolveComponentId","exists","existingInWorkspace","forkExistingInWorkspace","sourceIdWithScope","_legacy","scope","ComponentID","fromString","targetCompId","component","forkRemoteComponent","saveDeps","skipDependencyInstallation","installDeps","getForkInfo","_component$state$aspe","forkConfig","state","aspects","ForkingAspect","id","config","forkedFrom","fromObject","forkMultipleFromRemote","componentsToFork","componentsToForkSorted","sortComponentsToFork","results","pMapSeries","path","env","refactorMultipleAndInstall","sort","b","oldPackages","stringsToReplace","map","oldPackageName","getPackageName","newName","fullName","replace","scopeToReplace","newPackageName","oldStr","newStr","toStringWithoutVersion","flat","allComponents","list","refactor","changedComponents","replaceMultipleStrings","ast","importTransformer","exportTransformer","undefined","Promise","all","comp","write","forkedComponents","result","policy","extractDeps","policyFlatAndUnique","uniqBy","policyWithoutWorkspaceComps","dep","includes","dependencyId","addToRootPolicy","updateExisting","persistConfig","forkScope","originalScope","newScope","pattern","allIdsFromOriginalScope","listRemoteScope","Error","getPatternWithScopeName","startsWith","patternWithScopeName","idsFromOriginalScope","filterIdsFromPoolIdsByPattern","workspaceIds","listIds","workspaceBitIds","ComponentIdList","fromArray","existInWorkspace","searchWithoutVersion","toString","multipleForkInfo","components","getManyRemoteComponents","getConfig","name","writeAndAddNewComp","info","existing","getNewComponentId","refactorDependencyName","BitError","targetName","getRemoteComponent","preserve","refactorVariableAndClasses","refactorFilenames","workspacePolicyEntries","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","deps","getDependencies","excludePackages","excludeCompIds","getCompIdsThatShouldNotBeInPolicy","source","ComponentDependency","compIdStr","componentId","_dep$getPackageName","lifecycleType","lifecycle","version","fromExisting","skipConfig","getConfigFromExistingToNewComponent","linkToOriginal","noLink","toObject","provider","cli","componentMain","graphql","_scopeCommand$command","forkingMain","register","ForkCmd","forkingSchema","registerShowFragments","ForkingFragment","scopeCommand","getCommand","commands","ScopeForkCmd","exports","CLIAspect","WorkspaceAspect","DependencyResolverAspect","ComponentAspect","NewComponentHelperAspect","GraphqlAspect","RefactoringAspect","PkgAspect","InstallAspect","MainRuntime","addRuntime"],"sources":["forking.main.runtime.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { importTransformer, exportTransformer } from '@teambit/typescript';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport { ComponentDependency, DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ComponentConfig } from '@teambit/generator';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { InstallAspect, InstallMain } from '@teambit/install';\nimport { ComponentID, ComponentIdObj, ComponentIdList } from '@teambit/component-id';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport PkgAspect, { PkgMain } from '@teambit/pkg';\nimport RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { uniqBy } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { ForkCmd, ForkOptions } from './fork.cmd';\nimport { ForkingAspect } from './forking.aspect';\nimport { ForkingFragment } from './forking.fragment';\nimport { forkingSchema } from './forking.graphql';\nimport { ScopeForkCmd, ScopeForkOptions } from './scope-fork.cmd';\n\nexport type ForkInfo = {\n forkedFrom: ComponentID;\n};\n\ntype MultipleForkInfo = {\n targetCompId: ComponentID;\n sourceId: string;\n component: Component;\n};\n\ntype MultipleComponentsToFork = Array<{\n sourceId: string;\n targetId?: string; // if not specified, it'll be the same as the source\n path?: string; // if not specified, use the default component path\n env?: string; // if not specified, use the default env\n config?: ComponentConfig; // if specified, adds to/overrides the existing config\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 ast?: boolean; // whether to use AST to transform files instead of regex\n};\n\nexport class ForkingMain {\n constructor(\n private workspace: Workspace,\n private install: InstallMain,\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 OutsideWorkspaceError();\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 ? sourceCompId : ComponentID.fromString(sourceId);\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, options);\n await this.saveDeps(component);\n if (!options?.skipDependencyInstallation) 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 componentsToForkSorted = this.sortComponentsToFork(componentsToFork);\n const { scope } = options;\n const results = await pMapSeries(componentsToForkSorted, async ({ sourceId, targetId, path, env, config }) => {\n const sourceCompId = await this.workspace.resolveComponentId(sourceId);\n const sourceIdWithScope = sourceCompId._legacy.scope ? sourceCompId : ComponentID.fromString(sourceId);\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, {\n scope,\n path,\n env,\n config,\n });\n return { targetCompId, sourceId, component };\n });\n await this.refactorMultipleAndInstall(results, options);\n }\n\n /**\n * sort the components to fork so that components without \"env\" prop will be forked first.\n * this way, if some components are envs, their \"env\" prop is empty and will be forked first, then components that\n * depends on them.\n * otherwise, forking the components first result in errors when loading them as their envs are missing at that point\n */\n private sortComponentsToFork(componentsToFork: MultipleComponentsToFork) {\n return componentsToFork.sort((a, b) => {\n if (a.env && b.env) return 0;\n if (a.env) return 1;\n return -1;\n });\n }\n\n private async refactorMultipleAndInstall(results: MultipleForkInfo[], options: MultipleForkOptions = {}) {\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(\n allComponents,\n stringsToReplace,\n options.ast ? [importTransformer, exportTransformer] : undefined\n );\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 /**\n * fork all components of the given scope\n */\n async forkScope(\n originalScope: string,\n newScope: string,\n pattern?: string,\n options?: ScopeForkOptions\n ): Promise<ComponentID[]> {\n const allIdsFromOriginalScope = await this.workspace.scope.listRemoteScope(originalScope);\n if (!allIdsFromOriginalScope.length) {\n throw new Error(`unable to find components to fork from ${originalScope}`);\n }\n const getPatternWithScopeName = () => {\n if (!pattern) return undefined;\n if (pattern.startsWith(`${originalScope}/`)) return pattern;\n return `${originalScope}/${pattern}`;\n };\n const patternWithScopeName = getPatternWithScopeName();\n const idsFromOriginalScope = patternWithScopeName\n ? await this.workspace.scope.filterIdsFromPoolIdsByPattern(patternWithScopeName, allIdsFromOriginalScope)\n : allIdsFromOriginalScope;\n const workspaceIds = await this.workspace.listIds();\n const workspaceBitIds = ComponentIdList.fromArray(workspaceIds.map((id) => id));\n idsFromOriginalScope.forEach((id) => {\n const existInWorkspace = workspaceBitIds.searchWithoutVersion(id);\n if (existInWorkspace) {\n throw new Error(\n `unable to fork \"${id.toString()}\". the workspace has a component \"${existInWorkspace.toString()}\" with the same name and same scope`\n );\n }\n });\n const multipleForkInfo: MultipleForkInfo[] = [];\n const components = await this.workspace.scope.getManyRemoteComponents(idsFromOriginalScope);\n await pMapSeries(components, async (component) => {\n const config = await this.getConfig(component);\n const targetCompId = ComponentID.fromObject({ name: component.id.fullName }, newScope);\n await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, { scope: newScope }, config);\n multipleForkInfo.push({ targetCompId, sourceId: component.id.toStringWithoutVersion(), component });\n });\n await this.refactorMultipleAndInstall(multipleForkInfo, {\n refactor: true,\n install: !options?.skipDependencyInstallation,\n ast: options?.ast,\n });\n return multipleForkInfo.map((info) => info.targetCompId);\n }\n\n private async forkExistingInWorkspace(existing: Component, targetId?: string, options?: ForkOptions) {\n targetId = targetId || existing.id.fullName;\n const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options?.scope);\n\n const config = await this.getConfig(existing, options);\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 options?.ast ? [importTransformer, exportTransformer] : undefined\n );\n if (!options?.preserve) {\n await this.refactoring.refactorVariableAndClasses(component, sourceId, targetCompId);\n this.refactoring.refactorFilenames(component, sourceId, targetCompId);\n }\n const config = await this.getConfig(component, options);\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.install.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 const excludePackages = ['@teambit/legacy'];\n const excludeCompIds = this.dependencyResolver.getCompIdsThatShouldNotBeInPolicy();\n return deps\n .filter((dep) => dep.source === 'auto')\n .filter((dep) => {\n if (dep instanceof ComponentDependency) {\n const compIdStr = dep.componentId.toStringWithoutVersion();\n return !excludeCompIds.includes(compIdStr);\n }\n return !excludePackages.includes(dep.id);\n })\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, options?: ForkOptions) {\n const config = options?.config || {};\n const fromExisting = options?.skipConfig\n ? {}\n : await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);\n const linkToOriginal = options?.noLink ? {} : { [ForkingAspect.id]: { forkedFrom: comp.id.toObject() } };\n return {\n ...fromExisting,\n ...linkToOriginal,\n ...config,\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 InstallAspect,\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 install,\n ]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n ComponentMain,\n NewComponentHelperMain,\n GraphqlMain,\n RefactoringMain,\n PkgMain,\n InstallMain\n ]) {\n const forkingMain = new ForkingMain(workspace, install, dependencyResolver, newComponentHelper, refactoring, pkg);\n cli.register(new ForkCmd(forkingMain));\n graphql.register(forkingSchema(forkingMain));\n componentMain.registerShowFragments([new ForkingFragment(forkingMain)]);\n\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeForkCmd(forkingMain));\n\n return forkingMain;\n }\n}\n\nForkingAspect.addRuntime(ForkingMain);\n\nexport type ForkConfig = {\n forkedFrom: ComponentIdObj;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_bitError","data","require","_cli","_typescript","_component","_interopRequireDefault","_dependencyResolver","_graphql","_install","_componentId","_newComponentHelper","_pkg","_refactoring","_workspace","_interopRequireWildcard","_lodash","_pMapSeries","_fork","_forking","_forking2","_forking3","_scopeFork","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","ForkingMain","constructor","workspace","install","dependencyResolver","newComponentHelper","refactoring","pkg","fork","sourceId","targetId","options","OutsideWorkspaceError","sourceCompId","resolveComponentId","exists","existingInWorkspace","forkExistingInWorkspace","sourceIdWithScope","_legacy","scope","ComponentID","fromString","targetCompId","component","forkRemoteComponent","saveDeps","skipDependencyInstallation","installDeps","getForkInfo","forkConfig","state","aspects","ForkingAspect","id","config","forkedFrom","fromObject","forkMultipleFromRemote","componentsToFork","componentsToForkSorted","sortComponentsToFork","results","pMapSeries","path","env","targetScope","refactorMultipleAndInstall","sort","b","oldPackages","stringsToReplace","map","oldPackageName","getPackageName","newName","fullName","replace","scopeToReplace","newPackageName","oldStr","newStr","toStringWithoutVersion","flat","allComponents","list","refactor","changedComponents","replaceMultipleStrings","ast","importTransformer","exportTransformer","undefined","Promise","all","comp","write","forkedComponents","result","policy","extractDeps","policyFlatAndUnique","uniqBy","policyWithoutWorkspaceComps","dep","includes","dependencyId","addToRootPolicy","updateExisting","persistConfig","forkScope","originalScope","newScope","pattern","allIdsFromOriginalScope","listRemoteScope","Error","getPatternWithScopeName","startsWith","patternWithScopeName","idsFromOriginalScope","filterIdsFromPoolIdsByPattern","workspaceIds","listIds","workspaceBitIds","ComponentIdList","fromArray","existInWorkspace","searchWithoutVersion","toString","multipleForkInfo","components","getManyRemoteComponents","getConfig","name","writeAndAddNewComp","info","existing","getNewComponentId","refactorDependencyName","BitError","targetName","getRemoteComponent","preserve","refactorVariableAndClasses","refactorFilenames","workspacePolicyEntries","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","deps","getDependencies","excludePackages","excludeCompIds","getCompIdsThatShouldNotBeInPolicy","source","ComponentDependency","compIdStr","componentId","lifecycleType","lifecycle","version","fromExisting","skipConfig","getConfigFromExistingToNewComponent","linkToOriginal","noLink","toObject","provider","cli","componentMain","graphql","forkingMain","register","ForkCmd","forkingSchema","registerShowFragments","ForkingFragment","scopeCommand","getCommand","commands","ScopeForkCmd","exports","CLIAspect","WorkspaceAspect","DependencyResolverAspect","ComponentAspect","NewComponentHelperAspect","GraphqlAspect","RefactoringAspect","PkgAspect","InstallAspect","MainRuntime","addRuntime"],"sources":["forking.main.runtime.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { importTransformer, exportTransformer } from '@teambit/typescript';\nimport ComponentAspect, { Component, ComponentMain } from '@teambit/component';\nimport { ComponentDependency, DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { ComponentConfig } from '@teambit/generator';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { InstallAspect, InstallMain } from '@teambit/install';\nimport { ComponentID, ComponentIdObj, ComponentIdList } from '@teambit/component-id';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport PkgAspect, { PkgMain } from '@teambit/pkg';\nimport RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { uniqBy } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { ForkCmd, ForkOptions } from './fork.cmd';\nimport { ForkingAspect } from './forking.aspect';\nimport { ForkingFragment } from './forking.fragment';\nimport { forkingSchema } from './forking.graphql';\nimport { ScopeForkCmd, ScopeForkOptions } from './scope-fork.cmd';\n\nexport type ForkInfo = {\n forkedFrom: ComponentID;\n};\n\ntype MultipleForkInfo = {\n targetCompId: ComponentID;\n sourceId: string;\n component: Component;\n};\n\ntype MultipleComponentsToFork = Array<{\n sourceId: string;\n targetId?: string; // if not specified, it'll be the same as the source\n targetScope?: string; // if not specified, it'll be taken from the options or from the default scope\n path?: string; // if not specified, use the default component path\n env?: string; // if not specified, use the default env\n config?: ComponentConfig; // if specified, adds to/overrides the existing config\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 ast?: boolean; // whether to use AST to transform files instead of regex\n};\n\nexport class ForkingMain {\n constructor(\n private workspace: Workspace,\n private install: InstallMain,\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 OutsideWorkspaceError();\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 ? sourceCompId : ComponentID.fromString(sourceId);\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, options);\n await this.saveDeps(component);\n if (!options?.skipDependencyInstallation) 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 componentsToForkSorted = this.sortComponentsToFork(componentsToFork);\n const { scope } = options;\n const results = await pMapSeries(\n componentsToForkSorted,\n async ({ sourceId, targetId, path, env, config, targetScope }) => {\n const sourceCompId = await this.workspace.resolveComponentId(sourceId);\n const sourceIdWithScope = sourceCompId._legacy.scope ? sourceCompId : ComponentID.fromString(sourceId);\n const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, {\n scope: targetScope || scope,\n path,\n env,\n config,\n });\n return { targetCompId, sourceId, component };\n }\n );\n await this.refactorMultipleAndInstall(results, options);\n }\n\n /**\n * sort the components to fork so that components without \"env\" prop will be forked first.\n * this way, if some components are envs, their \"env\" prop is empty and will be forked first, then components that\n * depends on them.\n * otherwise, forking the components first result in errors when loading them as their envs are missing at that point\n */\n private sortComponentsToFork(componentsToFork: MultipleComponentsToFork) {\n return componentsToFork.sort((a, b) => {\n if (a.env && b.env) return 0;\n if (a.env) return 1;\n return -1;\n });\n }\n\n private async refactorMultipleAndInstall(results: MultipleForkInfo[], options: MultipleForkOptions = {}) {\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(\n allComponents,\n stringsToReplace,\n options.ast ? [importTransformer, exportTransformer] : undefined\n );\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 /**\n * fork all components of the given scope\n */\n async forkScope(\n originalScope: string,\n newScope: string,\n pattern?: string,\n options?: ScopeForkOptions\n ): Promise<ComponentID[]> {\n const allIdsFromOriginalScope = await this.workspace.scope.listRemoteScope(originalScope);\n if (!allIdsFromOriginalScope.length) {\n throw new Error(`unable to find components to fork from ${originalScope}`);\n }\n const getPatternWithScopeName = () => {\n if (!pattern) return undefined;\n if (pattern.startsWith(`${originalScope}/`)) return pattern;\n return `${originalScope}/${pattern}`;\n };\n const patternWithScopeName = getPatternWithScopeName();\n const idsFromOriginalScope = patternWithScopeName\n ? await this.workspace.scope.filterIdsFromPoolIdsByPattern(patternWithScopeName, allIdsFromOriginalScope)\n : allIdsFromOriginalScope;\n const workspaceIds = await this.workspace.listIds();\n const workspaceBitIds = ComponentIdList.fromArray(workspaceIds.map((id) => id));\n idsFromOriginalScope.forEach((id) => {\n const existInWorkspace = workspaceBitIds.searchWithoutVersion(id);\n if (existInWorkspace) {\n throw new Error(\n `unable to fork \"${id.toString()}\". the workspace has a component \"${existInWorkspace.toString()}\" with the same name and same scope`\n );\n }\n });\n const multipleForkInfo: MultipleForkInfo[] = [];\n const components = await this.workspace.scope.getManyRemoteComponents(idsFromOriginalScope);\n await pMapSeries(components, async (component) => {\n const config = await this.getConfig(component);\n const targetCompId = ComponentID.fromObject({ name: component.id.fullName }, newScope);\n await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, { scope: newScope }, config);\n multipleForkInfo.push({ targetCompId, sourceId: component.id.toStringWithoutVersion(), component });\n });\n await this.refactorMultipleAndInstall(multipleForkInfo, {\n refactor: true,\n install: !options?.skipDependencyInstallation,\n ast: options?.ast,\n });\n return multipleForkInfo.map((info) => info.targetCompId);\n }\n\n private async forkExistingInWorkspace(existing: Component, targetId?: string, options?: ForkOptions) {\n targetId = targetId || existing.id.fullName;\n const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options?.scope);\n\n const config = await this.getConfig(existing, options);\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 options?.ast ? [importTransformer, exportTransformer] : undefined\n );\n if (!options?.preserve) {\n await this.refactoring.refactorVariableAndClasses(component, sourceId, targetCompId);\n this.refactoring.refactorFilenames(component, sourceId, targetCompId);\n }\n const config = await this.getConfig(component, options);\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.install.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 const excludePackages = ['@teambit/legacy'];\n const excludeCompIds = this.dependencyResolver.getCompIdsThatShouldNotBeInPolicy();\n return deps\n .filter((dep) => dep.source === 'auto')\n .filter((dep) => {\n if (dep instanceof ComponentDependency) {\n const compIdStr = dep.componentId.toStringWithoutVersion();\n return !excludeCompIds.includes(compIdStr);\n }\n return !excludePackages.includes(dep.id);\n })\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, options?: ForkOptions) {\n const config = options?.config || {};\n const fromExisting = options?.skipConfig\n ? {}\n : await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);\n const linkToOriginal = options?.noLink ? {} : { [ForkingAspect.id]: { forkedFrom: comp.id.toObject() } };\n return {\n ...fromExisting,\n ...linkToOriginal,\n ...config,\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 InstallAspect,\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 install,\n ]: [\n CLIMain,\n Workspace,\n DependencyResolverMain,\n ComponentMain,\n NewComponentHelperMain,\n GraphqlMain,\n RefactoringMain,\n PkgMain,\n InstallMain\n ]) {\n const forkingMain = new ForkingMain(workspace, install, dependencyResolver, newComponentHelper, refactoring, pkg);\n cli.register(new ForkCmd(forkingMain));\n graphql.register(forkingSchema(forkingMain));\n componentMain.registerShowFragments([new ForkingFragment(forkingMain)]);\n\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeForkCmd(forkingMain));\n\n return forkingMain;\n }\n}\n\nForkingAspect.addRuntime(ForkingMain);\n\nexport type ForkConfig = {\n forkedFrom: ComponentIdObj;\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@1.0.106/dist/forking.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@1.0.106/dist/forking.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@1.0.108/dist/forking.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_forking@1.0.108/dist/forking.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,6 +1,6 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { ForkingMain } from './forking.main.runtime';
3
- export declare type ScopeForkOptions = {
3
+ export type ScopeForkOptions = {
4
4
  ast?: boolean;
5
5
  skipDependencyInstallation?: boolean;
6
6
  };
package/fork.cmd.ts ADDED
@@ -0,0 +1,72 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { ComponentConfig } from '@teambit/generator';
3
+ import chalk from 'chalk';
4
+ import { ForkingMain } from '.';
5
+
6
+ export type ForkOptions = {
7
+ scope?: string;
8
+ path?: string;
9
+ refactor?: boolean;
10
+ skipDependencyInstallation?: boolean;
11
+ skipConfig?: boolean;
12
+ preserve?: boolean;
13
+ noLink?: boolean;
14
+ env?: string;
15
+ config?: ComponentConfig;
16
+ ast?: boolean;
17
+ };
18
+
19
+ export class ForkCmd implements Command {
20
+ name = 'fork <source-component-id> [target-component-name]';
21
+ description = 'create a new component forked from an existing one (copies source files and configs)';
22
+ helpUrl = 'docs/getting-started/collaborate/importing-components#fork-a-component';
23
+ arguments = [
24
+ { name: 'source-component-id', description: 'the component id of the source component' },
25
+ {
26
+ name: 'target-component-name',
27
+ description:
28
+ "the name for the new component (component name without scope, e.g. name/spaces/my-button). to set a different scope, use the '--scope' flag",
29
+ },
30
+ ];
31
+ group = 'collaborate';
32
+ skipWorkspace = true;
33
+ alias = '';
34
+
35
+ options = [
36
+ ['s', 'scope <string>', 'default scope for the new component'],
37
+ [
38
+ 'p',
39
+ 'path <string>',
40
+ 'relative path in the workspace for the new component. by default the path is `<scope>/<namespace>/<name>`',
41
+ ],
42
+ ['r', 'refactor', 'update the import/require statements in all dependent components (in the same workspace)'],
43
+ ['x', 'skip-dependency-installation', 'do not install packages of the imported components'],
44
+ ['e', 'env <string>', 'set the environment for the new component'],
45
+ [
46
+ '',
47
+ 'skip-config',
48
+ 'do not copy the config (aspects-config, env, etc) to the new component. helpful when it fails during aspect loading',
49
+ ],
50
+ ['', 'preserve', 'avoid refactoring file and variable/class names according to the new component name'],
51
+ ['', 'no-link', 'avoid saving a reference to the original component'],
52
+ ['', 'ast', 'EXPERIMENTAL. use ast to transform files instead of regex'],
53
+ ] as CommandOptions;
54
+
55
+ example: [
56
+ {
57
+ cmd: 'fork teambit.base-ui/input/button ui/button';
58
+ description: "create a component named 'ui/button', forked from the remote 'input/button' component";
59
+ }
60
+ ];
61
+ loader = true;
62
+ migration = true;
63
+ remoteOp = true;
64
+
65
+ constructor(private forking: ForkingMain) {}
66
+
67
+ async report([sourceId, targetId]: [string, string], options: ForkOptions): Promise<string> {
68
+ const results = await this.forking.fork(sourceId, targetId, options);
69
+ const targetIdStr = results.toString();
70
+ return chalk.green(`successfully forked ${chalk.bold(targetIdStr)} from ${chalk.bold(sourceId)}`);
71
+ }
72
+ }
@@ -0,0 +1,5 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+
3
+ export const ForkingAspect = Aspect.create({
4
+ id: 'teambit.component/forking',
5
+ });
@@ -0,0 +1,26 @@
1
+ import { Component, ShowFragment } from '@teambit/component';
2
+ import { ForkingMain } from './forking.main.runtime';
3
+
4
+ export class ForkingFragment implements ShowFragment {
5
+ constructor(private forking: ForkingMain) {}
6
+
7
+ title = 'forking';
8
+
9
+ async renderRow(component: Component) {
10
+ const forkingInfo = this.forking.getForkInfo(component);
11
+ const content = forkingInfo ? `origin: ${forkingInfo.forkedFrom.toString()}` : '';
12
+ return {
13
+ title: this.title,
14
+ content,
15
+ };
16
+ }
17
+
18
+ async json(component: Component) {
19
+ return {
20
+ title: this.title,
21
+ json: this.forking.getForkInfo(component),
22
+ };
23
+ }
24
+
25
+ weight = 3;
26
+ }
@@ -0,0 +1,28 @@
1
+ import { Component } from '@teambit/component';
2
+ import { Schema } from '@teambit/graphql';
3
+ import gql from 'graphql-tag';
4
+ import { ForkingMain } from './forking.main.runtime';
5
+
6
+ export function forkingSchema(forking: ForkingMain): Schema {
7
+ return {
8
+ typeDefs: gql`
9
+ extend type Component {
10
+ forking: ForkingInfo
11
+ }
12
+
13
+ type ForkingInfo {
14
+ forkedFrom: String
15
+ }
16
+ `,
17
+ resolvers: {
18
+ Component: {
19
+ forking: (component: Component) => {
20
+ const forkInfo = forking.getForkInfo(component);
21
+ return {
22
+ forkedFrom: forkInfo?.forkedFrom.toString(),
23
+ };
24
+ },
25
+ },
26
+ },
27
+ };
28
+ }
@@ -0,0 +1,356 @@
1
+ import { BitError } from '@teambit/bit-error';
2
+ import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';
3
+ import { importTransformer, exportTransformer } from '@teambit/typescript';
4
+ import ComponentAspect, { Component, ComponentMain } from '@teambit/component';
5
+ import { ComponentDependency, DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';
6
+ import { ComponentConfig } from '@teambit/generator';
7
+ import GraphqlAspect, { GraphqlMain } from '@teambit/graphql';
8
+ import { InstallAspect, InstallMain } from '@teambit/install';
9
+ import { ComponentID, ComponentIdObj, ComponentIdList } from '@teambit/component-id';
10
+ import NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';
11
+ import PkgAspect, { PkgMain } from '@teambit/pkg';
12
+ import RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';
13
+ import WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';
14
+ import { uniqBy } from 'lodash';
15
+ import pMapSeries from 'p-map-series';
16
+ import { ForkCmd, ForkOptions } from './fork.cmd';
17
+ import { ForkingAspect } from './forking.aspect';
18
+ import { ForkingFragment } from './forking.fragment';
19
+ import { forkingSchema } from './forking.graphql';
20
+ import { ScopeForkCmd, ScopeForkOptions } from './scope-fork.cmd';
21
+
22
+ export type ForkInfo = {
23
+ forkedFrom: ComponentID;
24
+ };
25
+
26
+ type MultipleForkInfo = {
27
+ targetCompId: ComponentID;
28
+ sourceId: string;
29
+ component: Component;
30
+ };
31
+
32
+ type MultipleComponentsToFork = Array<{
33
+ sourceId: string;
34
+ targetId?: string; // if not specified, it'll be the same as the source
35
+ targetScope?: string; // if not specified, it'll be taken from the options or from the default scope
36
+ path?: string; // if not specified, use the default component path
37
+ env?: string; // if not specified, use the default env
38
+ config?: ComponentConfig; // if specified, adds to/overrides the existing config
39
+ }>;
40
+
41
+ type MultipleForkOptions = {
42
+ refactor?: boolean;
43
+ scope?: string; // different scope-name than the original components
44
+ install?: boolean; // whether to run "bit install" once done.
45
+ ast?: boolean; // whether to use AST to transform files instead of regex
46
+ };
47
+
48
+ export class ForkingMain {
49
+ constructor(
50
+ private workspace: Workspace,
51
+ private install: InstallMain,
52
+ private dependencyResolver: DependencyResolverMain,
53
+ private newComponentHelper: NewComponentHelperMain,
54
+ private refactoring: RefactoringMain,
55
+ private pkg: PkgMain
56
+ ) {}
57
+
58
+ /**
59
+ * create a new copy of existing/remote component.
60
+ * the new component holds a reference to the old one for future reference.
61
+ * if refactor option is enable, change the source-code to update all dependencies with the new name.
62
+ */
63
+ async fork(sourceId: string, targetId?: string, options?: ForkOptions): Promise<ComponentID> {
64
+ if (!this.workspace) throw new OutsideWorkspaceError();
65
+ const sourceCompId = await this.workspace.resolveComponentId(sourceId);
66
+ const exists = this.workspace.exists(sourceCompId);
67
+ if (exists) {
68
+ const existingInWorkspace = await this.workspace.get(sourceCompId);
69
+ return this.forkExistingInWorkspace(existingInWorkspace, targetId, options);
70
+ }
71
+ const sourceIdWithScope = sourceCompId._legacy.scope ? sourceCompId : ComponentID.fromString(sourceId);
72
+ const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, options);
73
+ await this.saveDeps(component);
74
+ if (!options?.skipDependencyInstallation) await this.installDeps();
75
+ return targetCompId;
76
+ }
77
+
78
+ /**
79
+ * get the forking data, such as the source where a component was forked from
80
+ */
81
+ getForkInfo(component: Component): ForkInfo | null {
82
+ const forkConfig = component.state.aspects.get(ForkingAspect.id)?.config as ForkConfig | undefined;
83
+ if (!forkConfig) return null;
84
+ return {
85
+ forkedFrom: ComponentID.fromObject(forkConfig.forkedFrom),
86
+ };
87
+ }
88
+
89
+ async forkMultipleFromRemote(componentsToFork: MultipleComponentsToFork, options: MultipleForkOptions = {}) {
90
+ const componentsToForkSorted = this.sortComponentsToFork(componentsToFork);
91
+ const { scope } = options;
92
+ const results = await pMapSeries(
93
+ componentsToForkSorted,
94
+ async ({ sourceId, targetId, path, env, config, targetScope }) => {
95
+ const sourceCompId = await this.workspace.resolveComponentId(sourceId);
96
+ const sourceIdWithScope = sourceCompId._legacy.scope ? sourceCompId : ComponentID.fromString(sourceId);
97
+ const { targetCompId, component } = await this.forkRemoteComponent(sourceIdWithScope, targetId, {
98
+ scope: targetScope || scope,
99
+ path,
100
+ env,
101
+ config,
102
+ });
103
+ return { targetCompId, sourceId, component };
104
+ }
105
+ );
106
+ await this.refactorMultipleAndInstall(results, options);
107
+ }
108
+
109
+ /**
110
+ * sort the components to fork so that components without "env" prop will be forked first.
111
+ * this way, if some components are envs, their "env" prop is empty and will be forked first, then components that
112
+ * depends on them.
113
+ * otherwise, forking the components first result in errors when loading them as their envs are missing at that point
114
+ */
115
+ private sortComponentsToFork(componentsToFork: MultipleComponentsToFork) {
116
+ return componentsToFork.sort((a, b) => {
117
+ if (a.env && b.env) return 0;
118
+ if (a.env) return 1;
119
+ return -1;
120
+ });
121
+ }
122
+
123
+ private async refactorMultipleAndInstall(results: MultipleForkInfo[], options: MultipleForkOptions = {}) {
124
+ const oldPackages: string[] = [];
125
+ const stringsToReplace: MultipleStringsReplacement = results
126
+ .map(({ targetCompId, sourceId, component }) => {
127
+ const oldPackageName = this.pkg.getPackageName(component);
128
+ oldPackages.push(oldPackageName);
129
+ const newName = targetCompId.fullName.replace(/\//g, '.');
130
+ const scopeToReplace = targetCompId.scope.replace('.', '/');
131
+ const newPackageName = `@${scopeToReplace}.${newName}`;
132
+ return [
133
+ { oldStr: oldPackageName, newStr: newPackageName },
134
+ { oldStr: sourceId, newStr: targetCompId.toStringWithoutVersion() },
135
+ ];
136
+ })
137
+ .flat();
138
+ const allComponents = await this.workspace.list();
139
+ if (options.refactor) {
140
+ const { changedComponents } = await this.refactoring.replaceMultipleStrings(
141
+ allComponents,
142
+ stringsToReplace,
143
+ options.ast ? [importTransformer, exportTransformer] : undefined
144
+ );
145
+ await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));
146
+ }
147
+ const forkedComponents = results.map((result) => result.component);
148
+ const policy = await Promise.all(forkedComponents.map((comp) => this.extractDeps(comp)));
149
+ const policyFlatAndUnique = uniqBy(policy.flat(), 'dependencyId');
150
+ const policyWithoutWorkspaceComps = policyFlatAndUnique.filter((dep) => !oldPackages.includes(dep.dependencyId));
151
+ this.dependencyResolver.addToRootPolicy(policyWithoutWorkspaceComps, { updateExisting: true });
152
+ await this.dependencyResolver.persistConfig(this.workspace.path);
153
+ if (options.install) {
154
+ await this.installDeps();
155
+ }
156
+ }
157
+
158
+ /**
159
+ * fork all components of the given scope
160
+ */
161
+ async forkScope(
162
+ originalScope: string,
163
+ newScope: string,
164
+ pattern?: string,
165
+ options?: ScopeForkOptions
166
+ ): Promise<ComponentID[]> {
167
+ const allIdsFromOriginalScope = await this.workspace.scope.listRemoteScope(originalScope);
168
+ if (!allIdsFromOriginalScope.length) {
169
+ throw new Error(`unable to find components to fork from ${originalScope}`);
170
+ }
171
+ const getPatternWithScopeName = () => {
172
+ if (!pattern) return undefined;
173
+ if (pattern.startsWith(`${originalScope}/`)) return pattern;
174
+ return `${originalScope}/${pattern}`;
175
+ };
176
+ const patternWithScopeName = getPatternWithScopeName();
177
+ const idsFromOriginalScope = patternWithScopeName
178
+ ? await this.workspace.scope.filterIdsFromPoolIdsByPattern(patternWithScopeName, allIdsFromOriginalScope)
179
+ : allIdsFromOriginalScope;
180
+ const workspaceIds = await this.workspace.listIds();
181
+ const workspaceBitIds = ComponentIdList.fromArray(workspaceIds.map((id) => id));
182
+ idsFromOriginalScope.forEach((id) => {
183
+ const existInWorkspace = workspaceBitIds.searchWithoutVersion(id);
184
+ if (existInWorkspace) {
185
+ throw new Error(
186
+ `unable to fork "${id.toString()}". the workspace has a component "${existInWorkspace.toString()}" with the same name and same scope`
187
+ );
188
+ }
189
+ });
190
+ const multipleForkInfo: MultipleForkInfo[] = [];
191
+ const components = await this.workspace.scope.getManyRemoteComponents(idsFromOriginalScope);
192
+ await pMapSeries(components, async (component) => {
193
+ const config = await this.getConfig(component);
194
+ const targetCompId = ComponentID.fromObject({ name: component.id.fullName }, newScope);
195
+ await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, { scope: newScope }, config);
196
+ multipleForkInfo.push({ targetCompId, sourceId: component.id.toStringWithoutVersion(), component });
197
+ });
198
+ await this.refactorMultipleAndInstall(multipleForkInfo, {
199
+ refactor: true,
200
+ install: !options?.skipDependencyInstallation,
201
+ ast: options?.ast,
202
+ });
203
+ return multipleForkInfo.map((info) => info.targetCompId);
204
+ }
205
+
206
+ private async forkExistingInWorkspace(existing: Component, targetId?: string, options?: ForkOptions) {
207
+ targetId = targetId || existing.id.fullName;
208
+ const targetCompId = this.newComponentHelper.getNewComponentId(targetId, undefined, options?.scope);
209
+
210
+ const config = await this.getConfig(existing, options);
211
+ await this.newComponentHelper.writeAndAddNewComp(existing, targetCompId, options, config);
212
+ if (options?.refactor) {
213
+ const allComponents = await this.workspace.list();
214
+ const { changedComponents } = await this.refactoring.refactorDependencyName(allComponents, existing.id, targetId);
215
+ await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));
216
+ }
217
+ return targetCompId;
218
+ }
219
+
220
+ private async forkRemoteComponent(
221
+ sourceId: ComponentID,
222
+ targetId?: string,
223
+ options?: ForkOptions
224
+ ): Promise<{
225
+ targetCompId: ComponentID;
226
+ component: Component;
227
+ }> {
228
+ if (options?.refactor) {
229
+ throw new BitError(`the component ${sourceId.toStringWithoutVersion()} is not in the workspace, you can't use the --refactor flag.
230
+ the 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`);
231
+ }
232
+ const targetName = targetId || sourceId.fullName;
233
+ const targetCompId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope);
234
+ const component = await this.workspace.scope.getRemoteComponent(sourceId);
235
+ await this.refactoring.replaceMultipleStrings(
236
+ [component],
237
+ [
238
+ {
239
+ oldStr: sourceId.toStringWithoutVersion(),
240
+ newStr: targetCompId.toStringWithoutVersion(),
241
+ },
242
+ ],
243
+ options?.ast ? [importTransformer, exportTransformer] : undefined
244
+ );
245
+ if (!options?.preserve) {
246
+ await this.refactoring.refactorVariableAndClasses(component, sourceId, targetCompId);
247
+ this.refactoring.refactorFilenames(component, sourceId, targetCompId);
248
+ }
249
+ const config = await this.getConfig(component, options);
250
+ await this.newComponentHelper.writeAndAddNewComp(component, targetCompId, options, config);
251
+
252
+ return { targetCompId, component };
253
+ }
254
+
255
+ private async saveDeps(component: Component) {
256
+ const workspacePolicyEntries = await this.extractDeps(component);
257
+ this.dependencyResolver.addToRootPolicy(workspacePolicyEntries, { updateExisting: true });
258
+ await this.dependencyResolver.persistConfig(this.workspace.path);
259
+ }
260
+
261
+ private async installDeps() {
262
+ await this.install.install(undefined, {
263
+ dedupe: true,
264
+ import: false,
265
+ copyPeerToRuntimeOnRoot: true,
266
+ copyPeerToRuntimeOnComponents: false,
267
+ updateExisting: false,
268
+ });
269
+ }
270
+
271
+ private async extractDeps(component: Component) {
272
+ const deps = await this.dependencyResolver.getDependencies(component);
273
+ const excludePackages = ['@teambit/legacy'];
274
+ const excludeCompIds = this.dependencyResolver.getCompIdsThatShouldNotBeInPolicy();
275
+ return deps
276
+ .filter((dep) => dep.source === 'auto')
277
+ .filter((dep) => {
278
+ if (dep instanceof ComponentDependency) {
279
+ const compIdStr = dep.componentId.toStringWithoutVersion();
280
+ return !excludeCompIds.includes(compIdStr);
281
+ }
282
+ return !excludePackages.includes(dep.id);
283
+ })
284
+ .map((dep) => ({
285
+ dependencyId: dep.getPackageName?.() || dep.id,
286
+ lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,
287
+ value: {
288
+ version: dep.version,
289
+ },
290
+ }));
291
+ }
292
+
293
+ private async getConfig(comp: Component, options?: ForkOptions) {
294
+ const config = options?.config || {};
295
+ const fromExisting = options?.skipConfig
296
+ ? {}
297
+ : await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);
298
+ const linkToOriginal = options?.noLink ? {} : { [ForkingAspect.id]: { forkedFrom: comp.id.toObject() } };
299
+ return {
300
+ ...fromExisting,
301
+ ...linkToOriginal,
302
+ ...config,
303
+ };
304
+ }
305
+
306
+ static slots = [];
307
+ static dependencies = [
308
+ CLIAspect,
309
+ WorkspaceAspect,
310
+ DependencyResolverAspect,
311
+ ComponentAspect,
312
+ NewComponentHelperAspect,
313
+ GraphqlAspect,
314
+ RefactoringAspect,
315
+ PkgAspect,
316
+ InstallAspect,
317
+ ];
318
+ static runtime = MainRuntime;
319
+ static async provider([
320
+ cli,
321
+ workspace,
322
+ dependencyResolver,
323
+ componentMain,
324
+ newComponentHelper,
325
+ graphql,
326
+ refactoring,
327
+ pkg,
328
+ install,
329
+ ]: [
330
+ CLIMain,
331
+ Workspace,
332
+ DependencyResolverMain,
333
+ ComponentMain,
334
+ NewComponentHelperMain,
335
+ GraphqlMain,
336
+ RefactoringMain,
337
+ PkgMain,
338
+ InstallMain
339
+ ]) {
340
+ const forkingMain = new ForkingMain(workspace, install, dependencyResolver, newComponentHelper, refactoring, pkg);
341
+ cli.register(new ForkCmd(forkingMain));
342
+ graphql.register(forkingSchema(forkingMain));
343
+ componentMain.registerShowFragments([new ForkingFragment(forkingMain)]);
344
+
345
+ const scopeCommand = cli.getCommand('scope');
346
+ scopeCommand?.commands?.push(new ScopeForkCmd(forkingMain));
347
+
348
+ return forkingMain;
349
+ }
350
+ }
351
+
352
+ ForkingAspect.addRuntime(ForkingMain);
353
+
354
+ export type ForkConfig = {
355
+ forkedFrom: ComponentIdObj;
356
+ };
package/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { ForkingAspect } from './forking.aspect';
2
+
3
+ export type { ForkingMain } from './forking.main.runtime';
4
+ export default ForkingAspect;
5
+ export { ForkingAspect };
package/package.json CHANGED
@@ -1,48 +1,44 @@
1
1
  {
2
2
  "name": "@teambit/forking",
3
- "version": "1.0.106",
3
+ "version": "1.0.108",
4
4
  "homepage": "https://bit.cloud/teambit/component/forking",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "forking",
9
- "version": "1.0.106"
9
+ "version": "1.0.108"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
13
13
  "graphql-tag": "2.12.1",
14
14
  "lodash": "4.17.21",
15
15
  "p-map-series": "2.1.0",
16
- "core-js": "^3.0.0",
17
- "@babel/runtime": "7.20.0",
18
16
  "@teambit/harmony": "0.4.6",
19
17
  "@teambit/bit-error": "0.0.404",
20
18
  "@teambit/component-id": "1.2.0",
21
- "@teambit/cli": "0.0.839",
22
- "@teambit/generator": "1.0.107",
23
- "@teambit/component": "1.0.106",
24
- "@teambit/graphql": "1.0.106",
25
- "@teambit/dependency-resolver": "1.0.106",
26
- "@teambit/install": "1.0.106",
27
- "@teambit/new-component-helper": "1.0.106",
28
- "@teambit/pkg": "1.0.106",
29
- "@teambit/refactoring": "1.0.106",
30
- "@teambit/typescript": "1.0.106",
31
- "@teambit/workspace": "1.0.106"
19
+ "@teambit/cli": "0.0.840",
20
+ "@teambit/generator": "1.0.109",
21
+ "@teambit/component": "1.0.108",
22
+ "@teambit/graphql": "1.0.108",
23
+ "@teambit/dependency-resolver": "1.0.108",
24
+ "@teambit/install": "1.0.108",
25
+ "@teambit/new-component-helper": "1.0.108",
26
+ "@teambit/pkg": "1.0.108",
27
+ "@teambit/refactoring": "1.0.108",
28
+ "@teambit/typescript": "1.0.108",
29
+ "@teambit/workspace": "1.0.108"
32
30
  },
33
31
  "devDependencies": {
34
- "@types/react": "^17.0.8",
35
32
  "@types/lodash": "4.14.165",
36
33
  "@types/mocha": "9.1.0",
37
- "@types/node": "12.20.4",
38
- "@types/react-dom": "^17.0.5",
39
- "@types/jest": "^26.0.0",
40
- "@types/testing-library__jest-dom": "5.9.5"
34
+ "@types/jest": "^29.2.2",
35
+ "@types/testing-library__jest-dom": "^5.9.5",
36
+ "@teambit/harmony.envs.core-aspect-env": "0.0.13"
41
37
  },
42
38
  "peerDependencies": {
43
- "@teambit/legacy": "1.0.624",
44
- "react": "^16.8.0 || ^17.0.0",
45
- "react-dom": "^16.8.0 || ^17.0.0"
39
+ "react": "^17.0.0 || ^18.0.0",
40
+ "@types/react": "^18.2.12",
41
+ "@teambit/legacy": "1.0.624"
46
42
  },
47
43
  "license": "Apache-2.0",
48
44
  "optionalDependencies": {},
@@ -56,7 +52,7 @@
56
52
  },
57
53
  "private": false,
58
54
  "engines": {
59
- "node": ">=12.22.0"
55
+ "node": ">=16.0.0"
60
56
  },
61
57
  "repository": {
62
58
  "type": "git",
@@ -65,12 +61,9 @@
65
61
  "keywords": [
66
62
  "bit",
67
63
  "bit-aspect",
64
+ "bit-core-aspect",
68
65
  "components",
69
66
  "collaboration",
70
- "web",
71
- "react",
72
- "react-components",
73
- "angular",
74
- "angular-components"
67
+ "web"
75
68
  ]
76
69
  }
@@ -0,0 +1,45 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';
3
+ import chalk from 'chalk';
4
+ import { ForkingMain } from './forking.main.runtime';
5
+
6
+ export type ScopeForkOptions = {
7
+ ast?: boolean;
8
+ skipDependencyInstallation?: boolean;
9
+ };
10
+ export class ScopeForkCmd implements Command {
11
+ name = 'fork <original-scope> <new-scope> [pattern]';
12
+ arguments = [
13
+ {
14
+ name: 'original-scope',
15
+ description: 'the original scope to fork',
16
+ },
17
+ {
18
+ name: 'new-scope',
19
+ description: 'the new scope to fork to',
20
+ },
21
+ {
22
+ name: 'pattern',
23
+ description: COMPONENT_PATTERN_HELP,
24
+ },
25
+ ];
26
+ description = 'fork all components of the original-scope and refactor the source-code to use the new scope name';
27
+ extendedDescription = 'optionally, provide [pattern] to limit the fork to specific components';
28
+ options = [
29
+ ['', 'ast', 'EXPERIMENTAL. use ast to transform files instead of regex'],
30
+ ['x', 'skip-dependency-installation', 'do not install packages of the imported components'],
31
+ ] as CommandOptions;
32
+ group = 'development';
33
+
34
+ constructor(private forking: ForkingMain) {}
35
+
36
+ async report([originalScope, newScope, pattern]: [string, string, string], options: ScopeForkOptions) {
37
+ const forkedIds = await this.forking.forkScope(originalScope, newScope, pattern, options);
38
+ const title = chalk.green(
39
+ `successfully forked ${chalk.bold(originalScope)} into ${chalk.bold(
40
+ newScope
41
+ )}. the following components were created`
42
+ );
43
+ return `${title}\n${forkedIds.map((id) => id.toString()).join('\n')}`;
44
+ }
45
+ }
package/tsconfig.json CHANGED
@@ -1,38 +1,33 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "lib": [
4
- "es2019",
5
- "DOM",
6
- "ES6",
7
- "DOM.Iterable",
8
- "ScriptHost"
4
+ "esnext",
5
+ "dom",
6
+ "dom.Iterable"
9
7
  ],
10
- "target": "es2015",
11
- "module": "CommonJS",
12
- "jsx": "react",
13
- "allowJs": true,
14
- "composite": true,
8
+ "target": "es2020",
9
+ "module": "es2020",
10
+ "jsx": "react-jsx",
15
11
  "declaration": true,
16
12
  "sourceMap": true,
17
- "skipLibCheck": true,
18
13
  "experimentalDecorators": true,
19
- "outDir": "dist",
14
+ "skipLibCheck": true,
20
15
  "moduleResolution": "node",
21
16
  "esModuleInterop": true,
22
- "rootDir": ".",
23
17
  "resolveJsonModule": true,
24
- "emitDeclarationOnly": true,
25
- "emitDecoratorMetadata": true,
26
- "allowSyntheticDefaultImports": true,
27
- "strictPropertyInitialization": false,
28
- "strict": true,
29
- "noImplicitAny": false,
30
- "preserveConstEnums": true
18
+ "allowJs": true,
19
+ "outDir": "dist",
20
+ "emitDeclarationOnly": true
31
21
  },
32
22
  "exclude": [
23
+ "artifacts",
24
+ "public",
33
25
  "dist",
26
+ "node_modules",
27
+ "package.json",
34
28
  "esm.mjs",
35
- "package.json"
29
+ "**/*.cjs",
30
+ "./dist"
36
31
  ],
37
32
  "include": [
38
33
  "**/*",
package/types/asset.d.ts CHANGED
@@ -5,12 +5,12 @@ declare module '*.png' {
5
5
  declare module '*.svg' {
6
6
  import type { FunctionComponent, SVGProps } from 'react';
7
7
 
8
- export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
8
+ export const ReactComponent: FunctionComponent<
9
+ SVGProps<SVGSVGElement> & { title?: string }
10
+ >;
9
11
  const src: string;
10
12
  export default src;
11
13
  }
12
-
13
- // @TODO Gilad
14
14
  declare module '*.jpg' {
15
15
  const value: any;
16
16
  export = value;
@@ -27,3 +27,15 @@ declare module '*.bmp' {
27
27
  const value: any;
28
28
  export = value;
29
29
  }
30
+ declare module '*.otf' {
31
+ const value: any;
32
+ export = value;
33
+ }
34
+ declare module '*.woff' {
35
+ const value: any;
36
+ export = value;
37
+ }
38
+ declare module '*.woff2' {
39
+ const value: any;
40
+ export = value;
41
+ }