@teambit/renaming 1.0.107 → 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,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_renaming@1.0.107/dist/renaming.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_renaming@1.0.107/dist/renaming.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_renaming@1.0.108/dist/renaming.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_renaming@1.0.108/dist/renaming.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 { RenamingMain } from '.';
3
- export declare type RenameOptions = {
3
+ export type RenameOptions = {
4
4
  scope?: string;
5
5
  path?: string;
6
6
  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 RenamingFragment implements ShowFragment {
10
10
  }>;
11
11
  json(component: Component): Promise<{
12
12
  title: string;
13
- json: import("./renaming.main.runtime").RenamingInfo | null;
13
+ json: import("./renaming.main.runtime").RenamingInfo;
14
14
  }>;
15
15
  weight: number;
16
16
  }
@@ -28,7 +28,7 @@ function renamingSchema(renaming) {
28
28
  renaming: component => {
29
29
  const renamingInfo = renaming.getRenamingInfo(component);
30
30
  return {
31
- renamedFrom: renamingInfo === null || renamingInfo === void 0 ? void 0 : renamingInfo.renamedFrom.toString()
31
+ renamedFrom: renamingInfo?.renamedFrom.toString()
32
32
  };
33
33
  }
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","renamingSchema","renaming","typeDefs","gql","resolvers","Component","component","renamingInfo","getRenamingInfo","renamedFrom","toString"],"sources":["renaming.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport gql from 'graphql-tag';\nimport { RenamingMain } from './renaming.main.runtime';\n\nexport function renamingSchema(renaming: RenamingMain): Schema {\n return {\n typeDefs: gql`\n extend type Component {\n renaming: RenamingInfo\n }\n\n type RenamingInfo {\n renamedFrom: String\n }\n `,\n resolvers: {\n Component: {\n renaming: (component: Component) => {\n const renamingInfo = renaming.getRenamingInfo(component);\n return {\n renamedFrom: renamingInfo?.renamedFrom.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,cAAcA,CAACC,QAAsB,EAAU;EAC7D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTJ,QAAQ,EAAGK,SAAoB,IAAK;UAClC,MAAMC,YAAY,GAAGN,QAAQ,CAACO,eAAe,CAACF,SAAS,CAAC;UACxD,OAAO;YACLG,WAAW,EAAEF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,WAAW,CAACC,QAAQ,CAAC;UAClD,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH"}
1
+ {"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","renamingSchema","renaming","typeDefs","gql","resolvers","Component","component","renamingInfo","getRenamingInfo","renamedFrom","toString"],"sources":["renaming.graphql.ts"],"sourcesContent":["import { Component } from '@teambit/component';\nimport { Schema } from '@teambit/graphql';\nimport gql from 'graphql-tag';\nimport { RenamingMain } from './renaming.main.runtime';\n\nexport function renamingSchema(renaming: RenamingMain): Schema {\n return {\n typeDefs: gql`\n extend type Component {\n renaming: RenamingInfo\n }\n\n type RenamingInfo {\n renamedFrom: String\n }\n `,\n resolvers: {\n Component: {\n renaming: (component: Component) => {\n const renamingInfo = renaming.getRenamingInfo(component);\n return {\n renamedFrom: renamingInfo?.renamedFrom.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,cAAcA,CAACC,QAAsB,EAAU;EAC7D,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTJ,QAAQ,EAAGK,SAAoB,IAAK;UAClC,MAAMC,YAAY,GAAGN,QAAQ,CAACO,eAAe,CAACF,SAAS,CAAC;UACxD,OAAO;YACLG,WAAW,EAAEF,YAAY,EAAEE,WAAW,CAACC,QAAQ,CAAC;UAClD,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH"}
@@ -53,7 +53,7 @@ export declare class RenamingMain {
53
53
  private compileGracefully;
54
54
  private renameOwnerInScopeName;
55
55
  private getConfig;
56
- static slots: never[];
56
+ static slots: any[];
57
57
  static dependencies: import("@teambit/harmony").Aspect[];
58
58
  static runtime: import("@teambit/harmony").RuntimeDefinition;
59
59
  static provider([cli, workspace, deprecation, newComponentHelper, componentMain, graphql, refactoring, install, config, componentWriter, compiler, loggerMain, envs,]: [
@@ -72,14 +72,14 @@ export declare class RenamingMain {
72
72
  EnvsMain
73
73
  ]): Promise<RenamingMain>;
74
74
  }
75
- export declare type RenameDependencyNameResult = {
75
+ export type RenameDependencyNameResult = {
76
76
  sourceId: ComponentID;
77
77
  targetId: ComponentID;
78
78
  };
79
- export declare type RenamingInfo = {
79
+ export type RenamingInfo = {
80
80
  renamedFrom: ComponentID;
81
81
  };
82
- export declare type RenameScopeResult = {
82
+ export type RenameScopeResult = {
83
83
  scopeRenamedComponentIds: ComponentID[];
84
84
  refactoredIds: ComponentID[];
85
85
  };
@@ -238,7 +238,7 @@ make sure this argument is the name only, without the scope-name. to change the
238
238
  const isTagged = sourceId.hasVersion();
239
239
  const sourceComp = await this.workspace.get(sourceId);
240
240
  const sourcePackageName = this.workspace.componentPackageName(sourceComp);
241
- const targetId = this.newComponentHelper.getNewComponentId(targetName, undefined, (options === null || options === void 0 ? void 0 : options.scope) || sourceId.scope);
241
+ const targetId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope || sourceId.scope);
242
242
  if (!options.preserve) {
243
243
  await this.refactoring.refactorVariableAndClasses(sourceComp, sourceId, targetId);
244
244
  this.refactoring.refactorFilenames(sourceComp, sourceId, targetId);
@@ -285,8 +285,7 @@ make sure this argument is the name only, without the scope-name. to change the
285
285
  };
286
286
  }
287
287
  getRenamingInfo(component) {
288
- var _component$state$aspe;
289
- const renameConfig = (_component$state$aspe = component.state.aspects.get(_renaming().RenamingAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.config;
288
+ const renameConfig = component.state.aspects.get(_renaming().RenamingAspect.id)?.config;
290
289
  if (!renameConfig) return null;
291
290
  return {
292
291
  renamedFrom: _component().ComponentID.fromObject(renameConfig.renamedFrom)
@@ -333,7 +332,7 @@ make sure this argument is the name only, without the scope-name. to change the
333
332
  await this.workspace.clearCache();
334
333
  await Promise.all(envs.map(async env => {
335
334
  const componentIds = compsUsingEnv[env.id.toString()];
336
- if (!(componentIds !== null && componentIds !== void 0 && componentIds.length)) return;
335
+ if (!componentIds?.length) return;
337
336
  const newEnvId = env.id.changeDefaultScope(newScope);
338
337
  const newComponentIds = componentIds.map(id => id.changeDefaultScope(newScope));
339
338
  await this.workspace.setEnvToComponents(newEnvId, newComponentIds);
@@ -493,13 +492,12 @@ make sure this argument is the name only, without the scope-name. to change the
493
492
  });
494
493
  }
495
494
  static async provider([cli, workspace, deprecation, newComponentHelper, componentMain, graphql, refactoring, install, config, componentWriter, compiler, loggerMain, envs]) {
496
- var _scopeCommand$command, _scopeCommand$command2;
497
495
  const logger = loggerMain.createLogger(_renaming().RenamingAspect.id);
498
496
  const renaming = new RenamingMain(workspace, install, newComponentHelper, deprecation, refactoring, config, componentWriter, compiler, logger, envs);
499
497
  cli.register(new (_rename().RenameCmd)(renaming));
500
498
  const scopeCommand = cli.getCommand('scope');
501
- scopeCommand === null || scopeCommand === void 0 || (_scopeCommand$command = scopeCommand.commands) === null || _scopeCommand$command === void 0 || _scopeCommand$command.push(new (_scopeRename().ScopeRenameCmd)(renaming));
502
- scopeCommand === null || scopeCommand === void 0 || (_scopeCommand$command2 = scopeCommand.commands) === null || _scopeCommand$command2 === void 0 || _scopeCommand$command2.push(new (_scopeRenameOwner().ScopeRenameOwnerCmd)(renaming));
499
+ scopeCommand?.commands?.push(new (_scopeRename().ScopeRenameCmd)(renaming));
500
+ scopeCommand?.commands?.push(new (_scopeRenameOwner().ScopeRenameOwnerCmd)(renaming));
503
501
  graphql.register((0, _renaming3().renamingSchema)(renaming));
504
502
  componentMain.registerShowFragments([new (_renaming2().RenamingFragment)(renaming)]);
505
503
  return renaming;
@@ -1 +1 @@
1
- {"version":3,"names":["_componentIdToPackageName","data","_interopRequireDefault","require","_fsExtra","_path","_config","_logger","_workspaceModules","_cli","_component","_interopRequireWildcard","_deprecation","_graphql","_compiler","_envs","_newComponentHelper","_refactoring","_componentWriter","_componentConfig","_workspace","_typescript","_install","_legacyBitId","_rename","_renaming","_renaming2","_renaming3","_scopeRename","_oldScopeNotFound","_oldScopeExported","_oldScopeTagged","_scopeRenameOwner","_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","RenamingMain","constructor","workspace","install","newComponentHelper","deprecation","refactoring","config","componentWriter","compiler","logger","envs","rename","sourceIdStr","targetName","options","isValidIdChunk","includes","Error","InvalidName","sourceId","resolveComponentId","isTagged","hasVersion","sourceComp","sourcePackageName","componentPackageName","targetId","getNewComponentId","undefined","scope","preserve","refactorVariableAndClasses","refactorFilenames","getConfig","writeAndAddNewComp","deprecate","bitMap","renameNewComponent","write","deleteLinkFromNodeModules","renameAspectIdInWorkspaceConfig","_reloadConsumer","targetComp","refactor","allComponents","list","targetPackageName","changedComponents","refactorDependencyName","Promise","all","map","comp","writeMany","components","state","_consumer","skipDependencyInstallation","writeToPath","getNewComponentPath","reasonForBitmapChange","renameAspectInConfig","linkToNodeModulesByComponents","compileGracefully","id","getRenamingInfo","component","_component$state$aspe","renameConfig","aspects","RenamingAspect","renamedFrom","ComponentID","fromObject","renameScope","oldScope","newScope","componentsUsingOldScope","defaultScope","OldScopeNotFound","c","isEnv","compsUsingEnv","env","getComponentsUsingEnv","toString","componentIds","exported","isExported","idsStr","OldScopeExported","tagged","OldScopeTagged","setDefaultScope","clearCache","newEnvId","changeDefaultScope","newComponentIds","setEnvToComponents","refactoredIds","legacyComps","packagesToReplace","oldStr","componentIdToPackageName","newStr","bindingPrefix","getBindingPrefixByDefaultScope","changeScope","replaceMultipleStrings","importTransformer","exportTransformer","renameScopeOfAspectIdsInWorkspaceConfig","newIds","_legacy","relinkAndCompile","scopeRenamedComponentIds","debug","pkgName","newComps","getMany","renameOwner","oldOwner","newOwner","isScopeUsesOldOwner","startsWith","oldWorkspaceDefaultScope","newWorkspaceDefaultScope","renameOwnerInScopeName","removeDefaultScope","newCompScope","ast","renameOwnerOfAspectIdsInWorkspaceConfig","workspaceConfig","hasChanged","renameExtensionInRaw","toStringWithoutVersion","ids","changed","packageName","fs","remove","path","join","compileOnWorkspace","err","consoleFailure","message","scopeName","replace","fromExisting","getConfigFromExistingToNewComponent","toObject","provider","cli","componentMain","graphql","loggerMain","_scopeCommand$command","_scopeCommand$command2","createLogger","renaming","register","RenameCmd","scopeCommand","getCommand","commands","ScopeRenameCmd","ScopeRenameOwnerCmd","renamingSchema","registerShowFragments","RenamingFragment","exports","CLIAspect","WorkspaceAspect","DeprecationAspect","NewComponentHelperAspect","ComponentAspect","GraphqlAspect","RefactoringAspect","InstallAspect","ConfigAspect","ComponentWriterAspect","CompilerAspect","LoggerAspect","EnvsAspect","MainRuntime","addRuntime"],"sources":["renaming.main.runtime.ts"],"sourcesContent":["import componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport { ConfigAspect, ConfigMain } from '@teambit/config';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { DeprecationAspect, DeprecationMain } from '@teambit/deprecation';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';\nimport ComponentWriterAspect, { ComponentWriterMain } from '@teambit/component-writer';\nimport { getBindingPrefixByDefaultScope } from '@teambit/legacy/dist/consumer/config/component-config';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { importTransformer, exportTransformer } from '@teambit/typescript';\nimport { InstallMain, InstallAspect } from '@teambit/install';\nimport { isValidIdChunk, InvalidName } from '@teambit/legacy-bit-id';\nimport { RenameCmd, RenameOptions } from './rename.cmd';\nimport { RenamingAspect } from './renaming.aspect';\nimport { RenamingFragment } from './renaming.fragment';\nimport { renamingSchema } from './renaming.graphql';\nimport { ScopeRenameCmd } from './scope-rename.cmd';\nimport { OldScopeNotFound } from './exceptions/old-scope-not-found';\nimport { OldScopeExported } from './exceptions/old-scope-exported';\nimport { OldScopeTagged } from './exceptions/old-scope-tagged';\nimport { ScopeRenameOwnerCmd } from './scope-rename-owner.cmd';\n\nexport class RenamingMain {\n constructor(\n private workspace: Workspace,\n private install: InstallMain,\n private newComponentHelper: NewComponentHelperMain,\n private deprecation: DeprecationMain,\n private refactoring: RefactoringMain,\n private config: ConfigMain,\n private componentWriter: ComponentWriterMain,\n private compiler: CompilerMain,\n private logger: Logger,\n private envs: EnvsMain\n ) {}\n\n async rename(sourceIdStr: string, targetName: string, options: RenameOptions): Promise<RenameDependencyNameResult> {\n if (!isValidIdChunk(targetName)) {\n if (targetName.includes('.'))\n throw new Error(`error: new-name argument \"${targetName}\" includes a dot.\nmake sure this argument is the name only, without the scope-name. to change the scope-name, use --scope flag`);\n throw new InvalidName(targetName);\n }\n const sourceId = await this.workspace.resolveComponentId(sourceIdStr);\n const isTagged = sourceId.hasVersion();\n const sourceComp = await this.workspace.get(sourceId);\n const sourcePackageName = this.workspace.componentPackageName(sourceComp);\n const targetId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope || sourceId.scope);\n if (!options.preserve) {\n await this.refactoring.refactorVariableAndClasses(sourceComp, sourceId, targetId);\n this.refactoring.refactorFilenames(sourceComp, sourceId, targetId);\n }\n if (isTagged) {\n const config = await this.getConfig(sourceComp);\n await this.newComponentHelper.writeAndAddNewComp(sourceComp, targetId, options, config);\n await this.deprecation.deprecate(sourceId, targetId);\n } else {\n this.workspace.bitMap.renameNewComponent(sourceId, targetId);\n await this.workspace.bitMap.write(`rename (${sourceIdStr} to ${targetName})`);\n await this.deleteLinkFromNodeModules(sourcePackageName);\n }\n await this.renameAspectIdInWorkspaceConfig(sourceId, targetId);\n await this.workspace._reloadConsumer(); // in order to reload .bitmap file and clear all caches.\n const targetComp = await this.workspace.get(targetId);\n if (options.refactor) {\n const allComponents = await this.workspace.list();\n const targetPackageName = this.workspace.componentPackageName(targetComp);\n const { changedComponents } = await this.refactoring.refactorDependencyName(\n allComponents,\n sourcePackageName,\n targetPackageName\n );\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n }\n\n // only write if it is not tagged, since we writeAndAddNewComp for tagged components\n if (!isTagged && !options.preserve) {\n await this.refactoring.refactorVariableAndClasses(targetComp, sourceId, targetId, options);\n this.refactoring.refactorFilenames(targetComp, sourceId, targetId);\n await this.componentWriter.writeMany({\n components: [targetComp.state._consumer],\n skipDependencyInstallation: true,\n writeToPath: this.newComponentHelper.getNewComponentPath(targetId),\n reasonForBitmapChange: 'rename',\n });\n }\n\n this.workspace.bitMap.renameAspectInConfig(sourceId, targetId);\n await this.workspace.bitMap.write(`rename (${sourceIdStr} to ${targetName})`);\n\n await linkToNodeModulesByComponents([targetComp], this.workspace); // link the new-name to node-modules\n await this.compileGracefully([targetComp.id]);\n\n return {\n sourceId,\n targetId,\n };\n }\n\n getRenamingInfo(component: Component): RenamingInfo | null {\n const renameConfig = component.state.aspects.get(RenamingAspect.id)?.config as RenamingInfo | undefined;\n if (!renameConfig) return null;\n return {\n renamedFrom: ComponentID.fromObject(renameConfig.renamedFrom),\n };\n }\n\n /**\n * change the default-scope for new components. optionally (if refactor is true), change the source code to match the\n * new scope-name.\n * keep in mind that this is working for new components only, for tagged/exported it's impossible. See the errors\n * thrown in such cases in this method.\n */\n async renameScope(oldScope: string, newScope: string, options: { refactor?: boolean }): Promise<RenameScopeResult> {\n const allComponents = await this.workspace.list();\n const componentsUsingOldScope = allComponents.filter((comp) => comp.id.scope === oldScope);\n if (!componentsUsingOldScope.length && this.workspace.defaultScope !== oldScope) {\n throw new OldScopeNotFound(oldScope);\n }\n const envs = componentsUsingOldScope.filter((c) => this.envs.isEnv(c));\n const compsUsingEnv: { [envIdStr: string]: ComponentID[] } = {};\n await Promise.all(\n envs.map(async (env) => {\n const components = await this.workspace.getComponentsUsingEnv(env.id.toString(), true);\n if (!components.length) return;\n const componentIds = components.map((comp) => comp.id);\n compsUsingEnv[env.id.toString()] = componentIds;\n })\n );\n\n // verify they're all new.\n const exported = componentsUsingOldScope.filter((comp) => this.workspace.isExported(comp.id));\n if (exported.length) {\n const idsStr = exported.map((comp) => comp.id.toString());\n throw new OldScopeExported(idsStr);\n }\n const tagged = componentsUsingOldScope.filter((comp) => comp.id.hasVersion());\n if (tagged.length) {\n const idsStr = tagged.map((comp) => comp.id.toString());\n throw new OldScopeTagged(idsStr);\n }\n if (this.workspace.defaultScope === oldScope) {\n await this.workspace.setDefaultScope(newScope);\n }\n componentsUsingOldScope.forEach((comp) => this.workspace.bitMap.setDefaultScope(comp.id, newScope));\n await this.workspace.bitMap.write(`rename-scope (${oldScope} to ${newScope})`);\n await this.workspace.clearCache();\n\n await Promise.all(\n envs.map(async (env) => {\n const componentIds = compsUsingEnv[env.id.toString()];\n if (!componentIds?.length) return;\n const newEnvId = env.id.changeDefaultScope(newScope);\n const newComponentIds = componentIds.map((id) => id.changeDefaultScope(newScope));\n await this.workspace.setEnvToComponents(newEnvId, newComponentIds);\n })\n );\n\n const refactoredIds: ComponentID[] = [];\n if (options.refactor) {\n const legacyComps = componentsUsingOldScope.map((c) => c.state._consumer);\n const packagesToReplace: MultipleStringsReplacement = legacyComps.map((comp) => {\n return {\n oldStr: componentIdToPackageName(comp),\n newStr: componentIdToPackageName({\n ...comp,\n bindingPrefix: getBindingPrefixByDefaultScope(newScope),\n id: comp.id.changeScope(newScope),\n }),\n };\n });\n\n const { changedComponents } = await this.refactoring.replaceMultipleStrings(allComponents, packagesToReplace, [\n importTransformer,\n exportTransformer,\n ]);\n await this.renameScopeOfAspectIdsInWorkspaceConfig(\n componentsUsingOldScope.map((c) => c.id),\n newScope\n );\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n refactoredIds.push(...changedComponents.map((c) => c.id));\n }\n\n const newIds = componentsUsingOldScope.map((comp) => new ComponentID(comp.id._legacy, newScope));\n await this.relinkAndCompile(componentsUsingOldScope, newIds);\n\n return { scopeRenamedComponentIds: componentsUsingOldScope.map((comp) => comp.id), refactoredIds };\n }\n\n private async relinkAndCompile(componentsUsingOldScope: Component[], newIds: ComponentID[]) {\n this.logger.debug(`the scope has been renamed, re-linking to node-modules`);\n await Promise.all(\n componentsUsingOldScope.map(async (comp) => {\n const pkgName = this.workspace.componentPackageName(comp);\n await this.deleteLinkFromNodeModules(pkgName);\n })\n );\n\n await this.workspace.clearCache();\n await this.workspace._reloadConsumer();\n\n const newComps = await this.workspace.getMany(newIds);\n await linkToNodeModulesByComponents(newComps, this.workspace); // link the new-name to node-modules\n await this.compileGracefully(newIds);\n }\n\n /**\n * change the default-scope for new components. optionally (if refactor is true), change the source code to match the\n * new scope-name.\n * keep in mind that this is working for new components only, for tagged/exported it's impossible. See the errors\n * thrown in such cases in this method.\n */\n async renameOwner(\n oldOwner: string,\n newOwner: string,\n options: { refactor?: boolean; ast?: boolean }\n ): Promise<RenameScopeResult> {\n const allComponents = await this.workspace.list();\n const isScopeUsesOldOwner = (scope: string) => scope.startsWith(`${oldOwner}.`);\n const componentsUsingOldScope = allComponents.filter((comp) => isScopeUsesOldOwner(comp.id.scope));\n if (!componentsUsingOldScope.length && !isScopeUsesOldOwner(this.workspace.defaultScope)) {\n throw new OldScopeNotFound(oldOwner);\n }\n // verify they're all new.\n const exported = componentsUsingOldScope.filter((comp) => this.workspace.isExported(comp.id));\n if (exported.length) {\n const idsStr = exported.map((comp) => comp.id.toString());\n throw new OldScopeExported(idsStr);\n }\n const tagged = componentsUsingOldScope.filter((comp) => comp.id.hasVersion());\n if (tagged.length) {\n const idsStr = tagged.map((comp) => comp.id.toString());\n throw new OldScopeTagged(idsStr);\n }\n const oldWorkspaceDefaultScope = this.workspace.defaultScope;\n const newWorkspaceDefaultScope = isScopeUsesOldOwner(oldWorkspaceDefaultScope)\n ? this.renameOwnerInScopeName(oldWorkspaceDefaultScope, oldOwner, newOwner)\n : undefined;\n if (newWorkspaceDefaultScope) {\n await this.workspace.setDefaultScope(newWorkspaceDefaultScope);\n }\n const newIds = componentsUsingOldScope.map((comp) => {\n if (newWorkspaceDefaultScope && comp.id.scope === oldWorkspaceDefaultScope) {\n this.workspace.bitMap.removeDefaultScope(comp.id);\n return new ComponentID(comp.id._legacy, newWorkspaceDefaultScope);\n }\n const newCompScope = this.renameOwnerInScopeName(comp.id.scope, oldOwner, newOwner);\n this.workspace.bitMap.setDefaultScope(comp.id, newCompScope);\n return new ComponentID(comp.id._legacy, newCompScope);\n });\n await this.workspace.bitMap.write(`rename-owner (${oldOwner} to ${newOwner})`);\n const refactoredIds: ComponentID[] = [];\n if (options.refactor) {\n const legacyComps = componentsUsingOldScope.map((c) => c.state._consumer);\n const packagesToReplace: MultipleStringsReplacement = legacyComps.map((comp) => {\n const newScope = this.renameOwnerInScopeName(comp.id.scope, oldOwner, newOwner);\n return {\n oldStr: componentIdToPackageName(comp),\n newStr: componentIdToPackageName({\n ...comp,\n bindingPrefix: getBindingPrefixByDefaultScope(newScope),\n id: comp.id,\n defaultScope: newScope,\n }),\n };\n });\n const { changedComponents } = await this.refactoring.replaceMultipleStrings(\n allComponents,\n packagesToReplace,\n options.ast ? [importTransformer, exportTransformer] : undefined\n );\n await this.renameOwnerOfAspectIdsInWorkspaceConfig(\n componentsUsingOldScope.map((c) => c.id),\n oldOwner,\n newOwner\n );\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n refactoredIds.push(...changedComponents.map((c) => c.id));\n }\n\n await this.relinkAndCompile(componentsUsingOldScope, newIds);\n\n return { scopeRenamedComponentIds: componentsUsingOldScope.map((comp) => comp.id), refactoredIds };\n }\n\n private async renameAspectIdInWorkspaceConfig(sourceId: ComponentID, targetId: ComponentID) {\n const config = this.config.workspaceConfig;\n if (!config) throw new Error('unable to get workspace config');\n const hasChanged = config.renameExtensionInRaw(\n sourceId.toStringWithoutVersion(),\n targetId.toStringWithoutVersion()\n );\n if (hasChanged) await config.write();\n }\n\n private async renameScopeOfAspectIdsInWorkspaceConfig(ids: ComponentID[], newScope: string) {\n const config = this.config.workspaceConfig;\n if (!config) throw new Error('unable to get workspace config');\n let hasChanged = false;\n ids.forEach((id) => {\n const changed = config.renameExtensionInRaw(\n id.toStringWithoutVersion(),\n id.changeScope(newScope).toStringWithoutVersion()\n );\n if (changed) hasChanged = true;\n });\n if (hasChanged) await config.write();\n }\n\n private async renameOwnerOfAspectIdsInWorkspaceConfig(ids: ComponentID[], oldOwner: string, newOwner: string) {\n const config = this.config.workspaceConfig;\n if (!config) throw new Error('unable to get workspace config');\n let hasChanged = false;\n ids.forEach((id) => {\n const newScope = this.renameOwnerInScopeName(id.scope, oldOwner, newOwner);\n const changed = config.renameExtensionInRaw(\n id.toStringWithoutVersion(),\n id.changeScope(newScope).toStringWithoutVersion()\n );\n if (changed) hasChanged = true;\n });\n if (hasChanged) await config.write();\n }\n\n private async deleteLinkFromNodeModules(packageName: string) {\n await fs.remove(path.join(this.workspace.path, 'node_modules', packageName));\n }\n private async compileGracefully(ids: ComponentID[]) {\n try {\n await this.compiler.compileOnWorkspace(ids);\n } catch (err: any) {\n const idsStr = ids.map((id) => id.toString()).join(', ');\n this.logger.consoleFailure(`failed compiling the component(s) ${idsStr}. error: ${err.message}`);\n }\n }\n\n private renameOwnerInScopeName(scopeName: string, oldOwner: string, newOwner: string): string {\n return scopeName.replace(`${oldOwner}.`, `${newOwner}.`);\n }\n\n private async getConfig(comp: Component) {\n const fromExisting = await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);\n return {\n ...fromExisting,\n [RenamingAspect.id]: {\n renamedFrom: comp.id.toObject(),\n },\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DeprecationAspect,\n NewComponentHelperAspect,\n ComponentAspect,\n GraphqlAspect,\n RefactoringAspect,\n InstallAspect,\n ConfigAspect,\n ComponentWriterAspect,\n CompilerAspect,\n LoggerAspect,\n EnvsAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n cli,\n workspace,\n deprecation,\n newComponentHelper,\n componentMain,\n graphql,\n refactoring,\n install,\n config,\n componentWriter,\n compiler,\n loggerMain,\n envs,\n ]: [\n CLIMain,\n Workspace,\n DeprecationMain,\n NewComponentHelperMain,\n ComponentMain,\n GraphqlMain,\n RefactoringMain,\n InstallMain,\n ConfigMain,\n ComponentWriterMain,\n CompilerMain,\n LoggerMain,\n EnvsMain\n ]) {\n const logger = loggerMain.createLogger(RenamingAspect.id);\n const renaming = new RenamingMain(\n workspace,\n install,\n newComponentHelper,\n deprecation,\n refactoring,\n config,\n componentWriter,\n compiler,\n logger,\n envs\n );\n cli.register(new RenameCmd(renaming));\n\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeRenameCmd(renaming));\n scopeCommand?.commands?.push(new ScopeRenameOwnerCmd(renaming));\n\n graphql.register(renamingSchema(renaming));\n componentMain.registerShowFragments([new RenamingFragment(renaming)]);\n return renaming;\n }\n}\n\nRenamingAspect.addRuntime(RenamingMain);\n\nexport type RenameDependencyNameResult = { sourceId: ComponentID; targetId: ComponentID };\n\nexport type RenamingInfo = {\n renamedFrom: ComponentID;\n};\n\nexport type RenameScopeResult = { scopeRenamedComponentIds: ComponentID[]; refactoredIds: ComponentID[] };\n"],"mappings":"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"}
1
+ {"version":3,"names":["_componentIdToPackageName","data","_interopRequireDefault","require","_fsExtra","_path","_config","_logger","_workspaceModules","_cli","_component","_interopRequireWildcard","_deprecation","_graphql","_compiler","_envs","_newComponentHelper","_refactoring","_componentWriter","_componentConfig","_workspace","_typescript","_install","_legacyBitId","_rename","_renaming","_renaming2","_renaming3","_scopeRename","_oldScopeNotFound","_oldScopeExported","_oldScopeTagged","_scopeRenameOwner","_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","RenamingMain","constructor","workspace","install","newComponentHelper","deprecation","refactoring","config","componentWriter","compiler","logger","envs","rename","sourceIdStr","targetName","options","isValidIdChunk","includes","Error","InvalidName","sourceId","resolveComponentId","isTagged","hasVersion","sourceComp","sourcePackageName","componentPackageName","targetId","getNewComponentId","undefined","scope","preserve","refactorVariableAndClasses","refactorFilenames","getConfig","writeAndAddNewComp","deprecate","bitMap","renameNewComponent","write","deleteLinkFromNodeModules","renameAspectIdInWorkspaceConfig","_reloadConsumer","targetComp","refactor","allComponents","list","targetPackageName","changedComponents","refactorDependencyName","Promise","all","map","comp","writeMany","components","state","_consumer","skipDependencyInstallation","writeToPath","getNewComponentPath","reasonForBitmapChange","renameAspectInConfig","linkToNodeModulesByComponents","compileGracefully","id","getRenamingInfo","component","renameConfig","aspects","RenamingAspect","renamedFrom","ComponentID","fromObject","renameScope","oldScope","newScope","componentsUsingOldScope","defaultScope","OldScopeNotFound","c","isEnv","compsUsingEnv","env","getComponentsUsingEnv","toString","componentIds","exported","isExported","idsStr","OldScopeExported","tagged","OldScopeTagged","setDefaultScope","clearCache","newEnvId","changeDefaultScope","newComponentIds","setEnvToComponents","refactoredIds","legacyComps","packagesToReplace","oldStr","componentIdToPackageName","newStr","bindingPrefix","getBindingPrefixByDefaultScope","changeScope","replaceMultipleStrings","importTransformer","exportTransformer","renameScopeOfAspectIdsInWorkspaceConfig","newIds","_legacy","relinkAndCompile","scopeRenamedComponentIds","debug","pkgName","newComps","getMany","renameOwner","oldOwner","newOwner","isScopeUsesOldOwner","startsWith","oldWorkspaceDefaultScope","newWorkspaceDefaultScope","renameOwnerInScopeName","removeDefaultScope","newCompScope","ast","renameOwnerOfAspectIdsInWorkspaceConfig","workspaceConfig","hasChanged","renameExtensionInRaw","toStringWithoutVersion","ids","changed","packageName","fs","remove","path","join","compileOnWorkspace","err","consoleFailure","message","scopeName","replace","fromExisting","getConfigFromExistingToNewComponent","toObject","provider","cli","componentMain","graphql","loggerMain","createLogger","renaming","register","RenameCmd","scopeCommand","getCommand","commands","ScopeRenameCmd","ScopeRenameOwnerCmd","renamingSchema","registerShowFragments","RenamingFragment","exports","CLIAspect","WorkspaceAspect","DeprecationAspect","NewComponentHelperAspect","ComponentAspect","GraphqlAspect","RefactoringAspect","InstallAspect","ConfigAspect","ComponentWriterAspect","CompilerAspect","LoggerAspect","EnvsAspect","MainRuntime","addRuntime"],"sources":["renaming.main.runtime.ts"],"sourcesContent":["import componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport { ConfigAspect, ConfigMain } from '@teambit/config';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentID, ComponentMain } from '@teambit/component';\nimport { DeprecationAspect, DeprecationMain } from '@teambit/deprecation';\nimport GraphqlAspect, { GraphqlMain } from '@teambit/graphql';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';\nimport ComponentWriterAspect, { ComponentWriterMain } from '@teambit/component-writer';\nimport { getBindingPrefixByDefaultScope } from '@teambit/legacy/dist/consumer/config/component-config';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { importTransformer, exportTransformer } from '@teambit/typescript';\nimport { InstallMain, InstallAspect } from '@teambit/install';\nimport { isValidIdChunk, InvalidName } from '@teambit/legacy-bit-id';\nimport { RenameCmd, RenameOptions } from './rename.cmd';\nimport { RenamingAspect } from './renaming.aspect';\nimport { RenamingFragment } from './renaming.fragment';\nimport { renamingSchema } from './renaming.graphql';\nimport { ScopeRenameCmd } from './scope-rename.cmd';\nimport { OldScopeNotFound } from './exceptions/old-scope-not-found';\nimport { OldScopeExported } from './exceptions/old-scope-exported';\nimport { OldScopeTagged } from './exceptions/old-scope-tagged';\nimport { ScopeRenameOwnerCmd } from './scope-rename-owner.cmd';\n\nexport class RenamingMain {\n constructor(\n private workspace: Workspace,\n private install: InstallMain,\n private newComponentHelper: NewComponentHelperMain,\n private deprecation: DeprecationMain,\n private refactoring: RefactoringMain,\n private config: ConfigMain,\n private componentWriter: ComponentWriterMain,\n private compiler: CompilerMain,\n private logger: Logger,\n private envs: EnvsMain\n ) {}\n\n async rename(sourceIdStr: string, targetName: string, options: RenameOptions): Promise<RenameDependencyNameResult> {\n if (!isValidIdChunk(targetName)) {\n if (targetName.includes('.'))\n throw new Error(`error: new-name argument \"${targetName}\" includes a dot.\nmake sure this argument is the name only, without the scope-name. to change the scope-name, use --scope flag`);\n throw new InvalidName(targetName);\n }\n const sourceId = await this.workspace.resolveComponentId(sourceIdStr);\n const isTagged = sourceId.hasVersion();\n const sourceComp = await this.workspace.get(sourceId);\n const sourcePackageName = this.workspace.componentPackageName(sourceComp);\n const targetId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope || sourceId.scope);\n if (!options.preserve) {\n await this.refactoring.refactorVariableAndClasses(sourceComp, sourceId, targetId);\n this.refactoring.refactorFilenames(sourceComp, sourceId, targetId);\n }\n if (isTagged) {\n const config = await this.getConfig(sourceComp);\n await this.newComponentHelper.writeAndAddNewComp(sourceComp, targetId, options, config);\n await this.deprecation.deprecate(sourceId, targetId);\n } else {\n this.workspace.bitMap.renameNewComponent(sourceId, targetId);\n await this.workspace.bitMap.write(`rename (${sourceIdStr} to ${targetName})`);\n await this.deleteLinkFromNodeModules(sourcePackageName);\n }\n await this.renameAspectIdInWorkspaceConfig(sourceId, targetId);\n await this.workspace._reloadConsumer(); // in order to reload .bitmap file and clear all caches.\n const targetComp = await this.workspace.get(targetId);\n if (options.refactor) {\n const allComponents = await this.workspace.list();\n const targetPackageName = this.workspace.componentPackageName(targetComp);\n const { changedComponents } = await this.refactoring.refactorDependencyName(\n allComponents,\n sourcePackageName,\n targetPackageName\n );\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n }\n\n // only write if it is not tagged, since we writeAndAddNewComp for tagged components\n if (!isTagged && !options.preserve) {\n await this.refactoring.refactorVariableAndClasses(targetComp, sourceId, targetId, options);\n this.refactoring.refactorFilenames(targetComp, sourceId, targetId);\n await this.componentWriter.writeMany({\n components: [targetComp.state._consumer],\n skipDependencyInstallation: true,\n writeToPath: this.newComponentHelper.getNewComponentPath(targetId),\n reasonForBitmapChange: 'rename',\n });\n }\n\n this.workspace.bitMap.renameAspectInConfig(sourceId, targetId);\n await this.workspace.bitMap.write(`rename (${sourceIdStr} to ${targetName})`);\n\n await linkToNodeModulesByComponents([targetComp], this.workspace); // link the new-name to node-modules\n await this.compileGracefully([targetComp.id]);\n\n return {\n sourceId,\n targetId,\n };\n }\n\n getRenamingInfo(component: Component): RenamingInfo | null {\n const renameConfig = component.state.aspects.get(RenamingAspect.id)?.config as RenamingInfo | undefined;\n if (!renameConfig) return null;\n return {\n renamedFrom: ComponentID.fromObject(renameConfig.renamedFrom),\n };\n }\n\n /**\n * change the default-scope for new components. optionally (if refactor is true), change the source code to match the\n * new scope-name.\n * keep in mind that this is working for new components only, for tagged/exported it's impossible. See the errors\n * thrown in such cases in this method.\n */\n async renameScope(oldScope: string, newScope: string, options: { refactor?: boolean }): Promise<RenameScopeResult> {\n const allComponents = await this.workspace.list();\n const componentsUsingOldScope = allComponents.filter((comp) => comp.id.scope === oldScope);\n if (!componentsUsingOldScope.length && this.workspace.defaultScope !== oldScope) {\n throw new OldScopeNotFound(oldScope);\n }\n const envs = componentsUsingOldScope.filter((c) => this.envs.isEnv(c));\n const compsUsingEnv: { [envIdStr: string]: ComponentID[] } = {};\n await Promise.all(\n envs.map(async (env) => {\n const components = await this.workspace.getComponentsUsingEnv(env.id.toString(), true);\n if (!components.length) return;\n const componentIds = components.map((comp) => comp.id);\n compsUsingEnv[env.id.toString()] = componentIds;\n })\n );\n\n // verify they're all new.\n const exported = componentsUsingOldScope.filter((comp) => this.workspace.isExported(comp.id));\n if (exported.length) {\n const idsStr = exported.map((comp) => comp.id.toString());\n throw new OldScopeExported(idsStr);\n }\n const tagged = componentsUsingOldScope.filter((comp) => comp.id.hasVersion());\n if (tagged.length) {\n const idsStr = tagged.map((comp) => comp.id.toString());\n throw new OldScopeTagged(idsStr);\n }\n if (this.workspace.defaultScope === oldScope) {\n await this.workspace.setDefaultScope(newScope);\n }\n componentsUsingOldScope.forEach((comp) => this.workspace.bitMap.setDefaultScope(comp.id, newScope));\n await this.workspace.bitMap.write(`rename-scope (${oldScope} to ${newScope})`);\n await this.workspace.clearCache();\n\n await Promise.all(\n envs.map(async (env) => {\n const componentIds = compsUsingEnv[env.id.toString()];\n if (!componentIds?.length) return;\n const newEnvId = env.id.changeDefaultScope(newScope);\n const newComponentIds = componentIds.map((id) => id.changeDefaultScope(newScope));\n await this.workspace.setEnvToComponents(newEnvId, newComponentIds);\n })\n );\n\n const refactoredIds: ComponentID[] = [];\n if (options.refactor) {\n const legacyComps = componentsUsingOldScope.map((c) => c.state._consumer);\n const packagesToReplace: MultipleStringsReplacement = legacyComps.map((comp) => {\n return {\n oldStr: componentIdToPackageName(comp),\n newStr: componentIdToPackageName({\n ...comp,\n bindingPrefix: getBindingPrefixByDefaultScope(newScope),\n id: comp.id.changeScope(newScope),\n }),\n };\n });\n\n const { changedComponents } = await this.refactoring.replaceMultipleStrings(allComponents, packagesToReplace, [\n importTransformer,\n exportTransformer,\n ]);\n await this.renameScopeOfAspectIdsInWorkspaceConfig(\n componentsUsingOldScope.map((c) => c.id),\n newScope\n );\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n refactoredIds.push(...changedComponents.map((c) => c.id));\n }\n\n const newIds = componentsUsingOldScope.map((comp) => new ComponentID(comp.id._legacy, newScope));\n await this.relinkAndCompile(componentsUsingOldScope, newIds);\n\n return { scopeRenamedComponentIds: componentsUsingOldScope.map((comp) => comp.id), refactoredIds };\n }\n\n private async relinkAndCompile(componentsUsingOldScope: Component[], newIds: ComponentID[]) {\n this.logger.debug(`the scope has been renamed, re-linking to node-modules`);\n await Promise.all(\n componentsUsingOldScope.map(async (comp) => {\n const pkgName = this.workspace.componentPackageName(comp);\n await this.deleteLinkFromNodeModules(pkgName);\n })\n );\n\n await this.workspace.clearCache();\n await this.workspace._reloadConsumer();\n\n const newComps = await this.workspace.getMany(newIds);\n await linkToNodeModulesByComponents(newComps, this.workspace); // link the new-name to node-modules\n await this.compileGracefully(newIds);\n }\n\n /**\n * change the default-scope for new components. optionally (if refactor is true), change the source code to match the\n * new scope-name.\n * keep in mind that this is working for new components only, for tagged/exported it's impossible. See the errors\n * thrown in such cases in this method.\n */\n async renameOwner(\n oldOwner: string,\n newOwner: string,\n options: { refactor?: boolean; ast?: boolean }\n ): Promise<RenameScopeResult> {\n const allComponents = await this.workspace.list();\n const isScopeUsesOldOwner = (scope: string) => scope.startsWith(`${oldOwner}.`);\n const componentsUsingOldScope = allComponents.filter((comp) => isScopeUsesOldOwner(comp.id.scope));\n if (!componentsUsingOldScope.length && !isScopeUsesOldOwner(this.workspace.defaultScope)) {\n throw new OldScopeNotFound(oldOwner);\n }\n // verify they're all new.\n const exported = componentsUsingOldScope.filter((comp) => this.workspace.isExported(comp.id));\n if (exported.length) {\n const idsStr = exported.map((comp) => comp.id.toString());\n throw new OldScopeExported(idsStr);\n }\n const tagged = componentsUsingOldScope.filter((comp) => comp.id.hasVersion());\n if (tagged.length) {\n const idsStr = tagged.map((comp) => comp.id.toString());\n throw new OldScopeTagged(idsStr);\n }\n const oldWorkspaceDefaultScope = this.workspace.defaultScope;\n const newWorkspaceDefaultScope = isScopeUsesOldOwner(oldWorkspaceDefaultScope)\n ? this.renameOwnerInScopeName(oldWorkspaceDefaultScope, oldOwner, newOwner)\n : undefined;\n if (newWorkspaceDefaultScope) {\n await this.workspace.setDefaultScope(newWorkspaceDefaultScope);\n }\n const newIds = componentsUsingOldScope.map((comp) => {\n if (newWorkspaceDefaultScope && comp.id.scope === oldWorkspaceDefaultScope) {\n this.workspace.bitMap.removeDefaultScope(comp.id);\n return new ComponentID(comp.id._legacy, newWorkspaceDefaultScope);\n }\n const newCompScope = this.renameOwnerInScopeName(comp.id.scope, oldOwner, newOwner);\n this.workspace.bitMap.setDefaultScope(comp.id, newCompScope);\n return new ComponentID(comp.id._legacy, newCompScope);\n });\n await this.workspace.bitMap.write(`rename-owner (${oldOwner} to ${newOwner})`);\n const refactoredIds: ComponentID[] = [];\n if (options.refactor) {\n const legacyComps = componentsUsingOldScope.map((c) => c.state._consumer);\n const packagesToReplace: MultipleStringsReplacement = legacyComps.map((comp) => {\n const newScope = this.renameOwnerInScopeName(comp.id.scope, oldOwner, newOwner);\n return {\n oldStr: componentIdToPackageName(comp),\n newStr: componentIdToPackageName({\n ...comp,\n bindingPrefix: getBindingPrefixByDefaultScope(newScope),\n id: comp.id,\n defaultScope: newScope,\n }),\n };\n });\n const { changedComponents } = await this.refactoring.replaceMultipleStrings(\n allComponents,\n packagesToReplace,\n options.ast ? [importTransformer, exportTransformer] : undefined\n );\n await this.renameOwnerOfAspectIdsInWorkspaceConfig(\n componentsUsingOldScope.map((c) => c.id),\n oldOwner,\n newOwner\n );\n await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));\n refactoredIds.push(...changedComponents.map((c) => c.id));\n }\n\n await this.relinkAndCompile(componentsUsingOldScope, newIds);\n\n return { scopeRenamedComponentIds: componentsUsingOldScope.map((comp) => comp.id), refactoredIds };\n }\n\n private async renameAspectIdInWorkspaceConfig(sourceId: ComponentID, targetId: ComponentID) {\n const config = this.config.workspaceConfig;\n if (!config) throw new Error('unable to get workspace config');\n const hasChanged = config.renameExtensionInRaw(\n sourceId.toStringWithoutVersion(),\n targetId.toStringWithoutVersion()\n );\n if (hasChanged) await config.write();\n }\n\n private async renameScopeOfAspectIdsInWorkspaceConfig(ids: ComponentID[], newScope: string) {\n const config = this.config.workspaceConfig;\n if (!config) throw new Error('unable to get workspace config');\n let hasChanged = false;\n ids.forEach((id) => {\n const changed = config.renameExtensionInRaw(\n id.toStringWithoutVersion(),\n id.changeScope(newScope).toStringWithoutVersion()\n );\n if (changed) hasChanged = true;\n });\n if (hasChanged) await config.write();\n }\n\n private async renameOwnerOfAspectIdsInWorkspaceConfig(ids: ComponentID[], oldOwner: string, newOwner: string) {\n const config = this.config.workspaceConfig;\n if (!config) throw new Error('unable to get workspace config');\n let hasChanged = false;\n ids.forEach((id) => {\n const newScope = this.renameOwnerInScopeName(id.scope, oldOwner, newOwner);\n const changed = config.renameExtensionInRaw(\n id.toStringWithoutVersion(),\n id.changeScope(newScope).toStringWithoutVersion()\n );\n if (changed) hasChanged = true;\n });\n if (hasChanged) await config.write();\n }\n\n private async deleteLinkFromNodeModules(packageName: string) {\n await fs.remove(path.join(this.workspace.path, 'node_modules', packageName));\n }\n private async compileGracefully(ids: ComponentID[]) {\n try {\n await this.compiler.compileOnWorkspace(ids);\n } catch (err: any) {\n const idsStr = ids.map((id) => id.toString()).join(', ');\n this.logger.consoleFailure(`failed compiling the component(s) ${idsStr}. error: ${err.message}`);\n }\n }\n\n private renameOwnerInScopeName(scopeName: string, oldOwner: string, newOwner: string): string {\n return scopeName.replace(`${oldOwner}.`, `${newOwner}.`);\n }\n\n private async getConfig(comp: Component) {\n const fromExisting = await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);\n return {\n ...fromExisting,\n [RenamingAspect.id]: {\n renamedFrom: comp.id.toObject(),\n },\n };\n }\n\n static slots = [];\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n DeprecationAspect,\n NewComponentHelperAspect,\n ComponentAspect,\n GraphqlAspect,\n RefactoringAspect,\n InstallAspect,\n ConfigAspect,\n ComponentWriterAspect,\n CompilerAspect,\n LoggerAspect,\n EnvsAspect,\n ];\n static runtime = MainRuntime;\n static async provider([\n cli,\n workspace,\n deprecation,\n newComponentHelper,\n componentMain,\n graphql,\n refactoring,\n install,\n config,\n componentWriter,\n compiler,\n loggerMain,\n envs,\n ]: [\n CLIMain,\n Workspace,\n DeprecationMain,\n NewComponentHelperMain,\n ComponentMain,\n GraphqlMain,\n RefactoringMain,\n InstallMain,\n ConfigMain,\n ComponentWriterMain,\n CompilerMain,\n LoggerMain,\n EnvsMain\n ]) {\n const logger = loggerMain.createLogger(RenamingAspect.id);\n const renaming = new RenamingMain(\n workspace,\n install,\n newComponentHelper,\n deprecation,\n refactoring,\n config,\n componentWriter,\n compiler,\n logger,\n envs\n );\n cli.register(new RenameCmd(renaming));\n\n const scopeCommand = cli.getCommand('scope');\n scopeCommand?.commands?.push(new ScopeRenameCmd(renaming));\n scopeCommand?.commands?.push(new ScopeRenameOwnerCmd(renaming));\n\n graphql.register(renamingSchema(renaming));\n componentMain.registerShowFragments([new RenamingFragment(renaming)]);\n return renaming;\n }\n}\n\nRenamingAspect.addRuntime(RenamingMain);\n\nexport type RenameDependencyNameResult = { sourceId: ComponentID; targetId: ComponentID };\n\nexport type RenamingInfo = {\n renamedFrom: ComponentID;\n};\n\nexport type RenameScopeResult = { scopeRenamedComponentIds: ComponentID[]; refactoredIds: ComponentID[] };\n"],"mappings":"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"}
package/index.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { RenamingAspect } from './renaming.aspect';
2
+
3
+ export type { RenamingMain } from './renaming.main.runtime';
4
+ export default RenamingAspect;
5
+ export { RenamingAspect };
package/package.json CHANGED
@@ -1,51 +1,47 @@
1
1
  {
2
2
  "name": "@teambit/renaming",
3
- "version": "1.0.107",
3
+ "version": "1.0.108",
4
4
  "homepage": "https://bit.cloud/teambit/component/renaming",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "renaming",
9
- "version": "1.0.107"
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
  "fs-extra": "10.0.0",
15
- "core-js": "^3.0.0",
16
- "@babel/runtime": "7.20.0",
17
15
  "@teambit/harmony": "0.4.6",
18
16
  "@teambit/legacy-bit-id": "1.1.0",
19
17
  "@teambit/bit-error": "0.0.404",
20
- "@teambit/cli": "0.0.839",
21
- "@teambit/component": "1.0.107",
22
- "@teambit/graphql": "1.0.107",
23
- "@teambit/compiler": "1.0.107",
24
- "@teambit/component-writer": "1.0.107",
25
- "@teambit/config": "0.0.858",
26
- "@teambit/deprecation": "1.0.107",
27
- "@teambit/envs": "1.0.107",
28
- "@teambit/install": "1.0.107",
29
- "@teambit/logger": "0.0.932",
30
- "@teambit/new-component-helper": "1.0.107",
31
- "@teambit/refactoring": "1.0.107",
32
- "@teambit/typescript": "1.0.107",
33
- "@teambit/workspace.modules.node-modules-linker": "0.0.157",
34
- "@teambit/workspace": "1.0.107"
18
+ "@teambit/cli": "0.0.840",
19
+ "@teambit/component": "1.0.108",
20
+ "@teambit/graphql": "1.0.108",
21
+ "@teambit/compiler": "1.0.108",
22
+ "@teambit/component-writer": "1.0.108",
23
+ "@teambit/config": "0.0.859",
24
+ "@teambit/deprecation": "1.0.108",
25
+ "@teambit/envs": "1.0.108",
26
+ "@teambit/install": "1.0.108",
27
+ "@teambit/logger": "0.0.933",
28
+ "@teambit/new-component-helper": "1.0.108",
29
+ "@teambit/refactoring": "1.0.108",
30
+ "@teambit/typescript": "1.0.108",
31
+ "@teambit/workspace.modules.node-modules-linker": "0.0.158",
32
+ "@teambit/workspace": "1.0.108"
35
33
  },
36
34
  "devDependencies": {
37
- "@types/react": "^17.0.8",
38
35
  "@types/fs-extra": "9.0.7",
39
36
  "@types/mocha": "9.1.0",
40
- "@types/node": "12.20.4",
41
- "@types/react-dom": "^17.0.5",
42
- "@types/jest": "^26.0.0",
43
- "@types/testing-library__jest-dom": "5.9.5"
37
+ "@types/jest": "^29.2.2",
38
+ "@types/testing-library__jest-dom": "^5.9.5",
39
+ "@teambit/harmony.envs.core-aspect-env": "0.0.13"
44
40
  },
45
41
  "peerDependencies": {
46
- "@teambit/legacy": "1.0.624",
47
- "react": "^16.8.0 || ^17.0.0",
48
- "react-dom": "^16.8.0 || ^17.0.0"
42
+ "react": "^17.0.0 || ^18.0.0",
43
+ "@types/react": "^18.2.12",
44
+ "@teambit/legacy": "1.0.624"
49
45
  },
50
46
  "license": "Apache-2.0",
51
47
  "optionalDependencies": {},
@@ -59,7 +55,7 @@
59
55
  },
60
56
  "private": false,
61
57
  "engines": {
62
- "node": ">=12.22.0"
58
+ "node": ">=16.0.0"
63
59
  },
64
60
  "repository": {
65
61
  "type": "git",
@@ -68,12 +64,9 @@
68
64
  "keywords": [
69
65
  "bit",
70
66
  "bit-aspect",
67
+ "bit-core-aspect",
71
68
  "components",
72
69
  "collaboration",
73
- "web",
74
- "react",
75
- "react-components",
76
- "angular",
77
- "angular-components"
70
+ "web"
78
71
  ]
79
72
  }
package/rename.cmd.ts ADDED
@@ -0,0 +1,54 @@
1
+ import chalk from 'chalk';
2
+ import { Command, CommandOptions } from '@teambit/cli';
3
+ import { RenamingMain } from '.';
4
+
5
+ export type RenameOptions = {
6
+ scope?: string;
7
+ path?: string;
8
+ refactor?: boolean;
9
+ preserve?: boolean;
10
+ ast?: boolean;
11
+ };
12
+
13
+ export class RenameCmd implements Command {
14
+ name = 'rename <current-name> <new-name>';
15
+ description =
16
+ 'rename component. if tagged/exported, create a new component and deprecate the original component. otherwise just renames current component';
17
+ helpUrl = 'reference/components/renaming-components';
18
+ arguments = [
19
+ {
20
+ name: 'current-name',
21
+ description: 'the current component name (without its scope name)',
22
+ },
23
+ {
24
+ name: 'new-name',
25
+ description: "the new component name (without its scope name. use --scope to define the new component's scope)",
26
+ },
27
+ ];
28
+ group = 'collaborate';
29
+ skipWorkspace = true;
30
+ alias = '';
31
+ options = [
32
+ ['s', 'scope <scope-name>', 'define the scope for the newly created component'],
33
+ [
34
+ 'p',
35
+ 'path <relative-path>',
36
+ 'relative path in the workspace to place new component in. by default, the directory of the new component is from your workspace\'s "defaultScope" value',
37
+ ],
38
+ ['r', 'refactor', 'update the import/require statements in all dependent components (in the same workspace)'],
39
+ ['', 'preserve', 'avoid renaming files and variables/classes according to the new component name'],
40
+ ['', 'ast', 'EXPERIMENTAL. use ast to transform files instead of regex'],
41
+ ] as CommandOptions;
42
+ loader = true;
43
+ migration = true;
44
+ remoteOp = true;
45
+
46
+ constructor(private renaming: RenamingMain) {}
47
+
48
+ async report([sourceId, targetId]: [string, string], options: RenameOptions): Promise<string> {
49
+ const results = await this.renaming.rename(sourceId, targetId, options);
50
+ return chalk.green(
51
+ `successfully renamed ${chalk.bold(results.sourceId.toString())} to ${chalk.bold(results.targetId.toString())}`
52
+ );
53
+ }
54
+ }
@@ -0,0 +1,5 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+
3
+ export const RenamingAspect = Aspect.create({
4
+ id: 'teambit.component/renaming',
5
+ });
@@ -0,0 +1,26 @@
1
+ import { Component, ShowFragment } from '@teambit/component';
2
+ import { RenamingMain } from './renaming.main.runtime';
3
+
4
+ export class RenamingFragment implements ShowFragment {
5
+ constructor(private renaming: RenamingMain) {}
6
+
7
+ title = 'renaming';
8
+
9
+ async renderRow(component: Component) {
10
+ const renamingInfo = this.renaming.getRenamingInfo(component);
11
+ const content = renamingInfo ? `origin: ${renamingInfo.renamedFrom.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.renaming.getRenamingInfo(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 { RenamingMain } from './renaming.main.runtime';
5
+
6
+ export function renamingSchema(renaming: RenamingMain): Schema {
7
+ return {
8
+ typeDefs: gql`
9
+ extend type Component {
10
+ renaming: RenamingInfo
11
+ }
12
+
13
+ type RenamingInfo {
14
+ renamedFrom: String
15
+ }
16
+ `,
17
+ resolvers: {
18
+ Component: {
19
+ renaming: (component: Component) => {
20
+ const renamingInfo = renaming.getRenamingInfo(component);
21
+ return {
22
+ renamedFrom: renamingInfo?.renamedFrom.toString(),
23
+ };
24
+ },
25
+ },
26
+ },
27
+ };
28
+ }
@@ -0,0 +1,439 @@
1
+ import componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';
2
+ import fs from 'fs-extra';
3
+ import path from 'path';
4
+ import { ConfigAspect, ConfigMain } from '@teambit/config';
5
+ import { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';
6
+ import { linkToNodeModulesByComponents } from '@teambit/workspace.modules.node-modules-linker';
7
+ import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';
8
+ import ComponentAspect, { Component, ComponentID, ComponentMain } from '@teambit/component';
9
+ import { DeprecationAspect, DeprecationMain } from '@teambit/deprecation';
10
+ import GraphqlAspect, { GraphqlMain } from '@teambit/graphql';
11
+ import { CompilerAspect, CompilerMain } from '@teambit/compiler';
12
+ import EnvsAspect, { EnvsMain } from '@teambit/envs';
13
+ import NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';
14
+ import RefactoringAspect, { MultipleStringsReplacement, RefactoringMain } from '@teambit/refactoring';
15
+ import ComponentWriterAspect, { ComponentWriterMain } from '@teambit/component-writer';
16
+ import { getBindingPrefixByDefaultScope } from '@teambit/legacy/dist/consumer/config/component-config';
17
+ import WorkspaceAspect, { Workspace } from '@teambit/workspace';
18
+ import { importTransformer, exportTransformer } from '@teambit/typescript';
19
+ import { InstallMain, InstallAspect } from '@teambit/install';
20
+ import { isValidIdChunk, InvalidName } from '@teambit/legacy-bit-id';
21
+ import { RenameCmd, RenameOptions } from './rename.cmd';
22
+ import { RenamingAspect } from './renaming.aspect';
23
+ import { RenamingFragment } from './renaming.fragment';
24
+ import { renamingSchema } from './renaming.graphql';
25
+ import { ScopeRenameCmd } from './scope-rename.cmd';
26
+ import { OldScopeNotFound } from './exceptions/old-scope-not-found';
27
+ import { OldScopeExported } from './exceptions/old-scope-exported';
28
+ import { OldScopeTagged } from './exceptions/old-scope-tagged';
29
+ import { ScopeRenameOwnerCmd } from './scope-rename-owner.cmd';
30
+
31
+ export class RenamingMain {
32
+ constructor(
33
+ private workspace: Workspace,
34
+ private install: InstallMain,
35
+ private newComponentHelper: NewComponentHelperMain,
36
+ private deprecation: DeprecationMain,
37
+ private refactoring: RefactoringMain,
38
+ private config: ConfigMain,
39
+ private componentWriter: ComponentWriterMain,
40
+ private compiler: CompilerMain,
41
+ private logger: Logger,
42
+ private envs: EnvsMain
43
+ ) {}
44
+
45
+ async rename(sourceIdStr: string, targetName: string, options: RenameOptions): Promise<RenameDependencyNameResult> {
46
+ if (!isValidIdChunk(targetName)) {
47
+ if (targetName.includes('.'))
48
+ throw new Error(`error: new-name argument "${targetName}" includes a dot.
49
+ make sure this argument is the name only, without the scope-name. to change the scope-name, use --scope flag`);
50
+ throw new InvalidName(targetName);
51
+ }
52
+ const sourceId = await this.workspace.resolveComponentId(sourceIdStr);
53
+ const isTagged = sourceId.hasVersion();
54
+ const sourceComp = await this.workspace.get(sourceId);
55
+ const sourcePackageName = this.workspace.componentPackageName(sourceComp);
56
+ const targetId = this.newComponentHelper.getNewComponentId(targetName, undefined, options?.scope || sourceId.scope);
57
+ if (!options.preserve) {
58
+ await this.refactoring.refactorVariableAndClasses(sourceComp, sourceId, targetId);
59
+ this.refactoring.refactorFilenames(sourceComp, sourceId, targetId);
60
+ }
61
+ if (isTagged) {
62
+ const config = await this.getConfig(sourceComp);
63
+ await this.newComponentHelper.writeAndAddNewComp(sourceComp, targetId, options, config);
64
+ await this.deprecation.deprecate(sourceId, targetId);
65
+ } else {
66
+ this.workspace.bitMap.renameNewComponent(sourceId, targetId);
67
+ await this.workspace.bitMap.write(`rename (${sourceIdStr} to ${targetName})`);
68
+ await this.deleteLinkFromNodeModules(sourcePackageName);
69
+ }
70
+ await this.renameAspectIdInWorkspaceConfig(sourceId, targetId);
71
+ await this.workspace._reloadConsumer(); // in order to reload .bitmap file and clear all caches.
72
+ const targetComp = await this.workspace.get(targetId);
73
+ if (options.refactor) {
74
+ const allComponents = await this.workspace.list();
75
+ const targetPackageName = this.workspace.componentPackageName(targetComp);
76
+ const { changedComponents } = await this.refactoring.refactorDependencyName(
77
+ allComponents,
78
+ sourcePackageName,
79
+ targetPackageName
80
+ );
81
+ await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));
82
+ }
83
+
84
+ // only write if it is not tagged, since we writeAndAddNewComp for tagged components
85
+ if (!isTagged && !options.preserve) {
86
+ await this.refactoring.refactorVariableAndClasses(targetComp, sourceId, targetId, options);
87
+ this.refactoring.refactorFilenames(targetComp, sourceId, targetId);
88
+ await this.componentWriter.writeMany({
89
+ components: [targetComp.state._consumer],
90
+ skipDependencyInstallation: true,
91
+ writeToPath: this.newComponentHelper.getNewComponentPath(targetId),
92
+ reasonForBitmapChange: 'rename',
93
+ });
94
+ }
95
+
96
+ this.workspace.bitMap.renameAspectInConfig(sourceId, targetId);
97
+ await this.workspace.bitMap.write(`rename (${sourceIdStr} to ${targetName})`);
98
+
99
+ await linkToNodeModulesByComponents([targetComp], this.workspace); // link the new-name to node-modules
100
+ await this.compileGracefully([targetComp.id]);
101
+
102
+ return {
103
+ sourceId,
104
+ targetId,
105
+ };
106
+ }
107
+
108
+ getRenamingInfo(component: Component): RenamingInfo | null {
109
+ const renameConfig = component.state.aspects.get(RenamingAspect.id)?.config as RenamingInfo | undefined;
110
+ if (!renameConfig) return null;
111
+ return {
112
+ renamedFrom: ComponentID.fromObject(renameConfig.renamedFrom),
113
+ };
114
+ }
115
+
116
+ /**
117
+ * change the default-scope for new components. optionally (if refactor is true), change the source code to match the
118
+ * new scope-name.
119
+ * keep in mind that this is working for new components only, for tagged/exported it's impossible. See the errors
120
+ * thrown in such cases in this method.
121
+ */
122
+ async renameScope(oldScope: string, newScope: string, options: { refactor?: boolean }): Promise<RenameScopeResult> {
123
+ const allComponents = await this.workspace.list();
124
+ const componentsUsingOldScope = allComponents.filter((comp) => comp.id.scope === oldScope);
125
+ if (!componentsUsingOldScope.length && this.workspace.defaultScope !== oldScope) {
126
+ throw new OldScopeNotFound(oldScope);
127
+ }
128
+ const envs = componentsUsingOldScope.filter((c) => this.envs.isEnv(c));
129
+ const compsUsingEnv: { [envIdStr: string]: ComponentID[] } = {};
130
+ await Promise.all(
131
+ envs.map(async (env) => {
132
+ const components = await this.workspace.getComponentsUsingEnv(env.id.toString(), true);
133
+ if (!components.length) return;
134
+ const componentIds = components.map((comp) => comp.id);
135
+ compsUsingEnv[env.id.toString()] = componentIds;
136
+ })
137
+ );
138
+
139
+ // verify they're all new.
140
+ const exported = componentsUsingOldScope.filter((comp) => this.workspace.isExported(comp.id));
141
+ if (exported.length) {
142
+ const idsStr = exported.map((comp) => comp.id.toString());
143
+ throw new OldScopeExported(idsStr);
144
+ }
145
+ const tagged = componentsUsingOldScope.filter((comp) => comp.id.hasVersion());
146
+ if (tagged.length) {
147
+ const idsStr = tagged.map((comp) => comp.id.toString());
148
+ throw new OldScopeTagged(idsStr);
149
+ }
150
+ if (this.workspace.defaultScope === oldScope) {
151
+ await this.workspace.setDefaultScope(newScope);
152
+ }
153
+ componentsUsingOldScope.forEach((comp) => this.workspace.bitMap.setDefaultScope(comp.id, newScope));
154
+ await this.workspace.bitMap.write(`rename-scope (${oldScope} to ${newScope})`);
155
+ await this.workspace.clearCache();
156
+
157
+ await Promise.all(
158
+ envs.map(async (env) => {
159
+ const componentIds = compsUsingEnv[env.id.toString()];
160
+ if (!componentIds?.length) return;
161
+ const newEnvId = env.id.changeDefaultScope(newScope);
162
+ const newComponentIds = componentIds.map((id) => id.changeDefaultScope(newScope));
163
+ await this.workspace.setEnvToComponents(newEnvId, newComponentIds);
164
+ })
165
+ );
166
+
167
+ const refactoredIds: ComponentID[] = [];
168
+ if (options.refactor) {
169
+ const legacyComps = componentsUsingOldScope.map((c) => c.state._consumer);
170
+ const packagesToReplace: MultipleStringsReplacement = legacyComps.map((comp) => {
171
+ return {
172
+ oldStr: componentIdToPackageName(comp),
173
+ newStr: componentIdToPackageName({
174
+ ...comp,
175
+ bindingPrefix: getBindingPrefixByDefaultScope(newScope),
176
+ id: comp.id.changeScope(newScope),
177
+ }),
178
+ };
179
+ });
180
+
181
+ const { changedComponents } = await this.refactoring.replaceMultipleStrings(allComponents, packagesToReplace, [
182
+ importTransformer,
183
+ exportTransformer,
184
+ ]);
185
+ await this.renameScopeOfAspectIdsInWorkspaceConfig(
186
+ componentsUsingOldScope.map((c) => c.id),
187
+ newScope
188
+ );
189
+ await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));
190
+ refactoredIds.push(...changedComponents.map((c) => c.id));
191
+ }
192
+
193
+ const newIds = componentsUsingOldScope.map((comp) => new ComponentID(comp.id._legacy, newScope));
194
+ await this.relinkAndCompile(componentsUsingOldScope, newIds);
195
+
196
+ return { scopeRenamedComponentIds: componentsUsingOldScope.map((comp) => comp.id), refactoredIds };
197
+ }
198
+
199
+ private async relinkAndCompile(componentsUsingOldScope: Component[], newIds: ComponentID[]) {
200
+ this.logger.debug(`the scope has been renamed, re-linking to node-modules`);
201
+ await Promise.all(
202
+ componentsUsingOldScope.map(async (comp) => {
203
+ const pkgName = this.workspace.componentPackageName(comp);
204
+ await this.deleteLinkFromNodeModules(pkgName);
205
+ })
206
+ );
207
+
208
+ await this.workspace.clearCache();
209
+ await this.workspace._reloadConsumer();
210
+
211
+ const newComps = await this.workspace.getMany(newIds);
212
+ await linkToNodeModulesByComponents(newComps, this.workspace); // link the new-name to node-modules
213
+ await this.compileGracefully(newIds);
214
+ }
215
+
216
+ /**
217
+ * change the default-scope for new components. optionally (if refactor is true), change the source code to match the
218
+ * new scope-name.
219
+ * keep in mind that this is working for new components only, for tagged/exported it's impossible. See the errors
220
+ * thrown in such cases in this method.
221
+ */
222
+ async renameOwner(
223
+ oldOwner: string,
224
+ newOwner: string,
225
+ options: { refactor?: boolean; ast?: boolean }
226
+ ): Promise<RenameScopeResult> {
227
+ const allComponents = await this.workspace.list();
228
+ const isScopeUsesOldOwner = (scope: string) => scope.startsWith(`${oldOwner}.`);
229
+ const componentsUsingOldScope = allComponents.filter((comp) => isScopeUsesOldOwner(comp.id.scope));
230
+ if (!componentsUsingOldScope.length && !isScopeUsesOldOwner(this.workspace.defaultScope)) {
231
+ throw new OldScopeNotFound(oldOwner);
232
+ }
233
+ // verify they're all new.
234
+ const exported = componentsUsingOldScope.filter((comp) => this.workspace.isExported(comp.id));
235
+ if (exported.length) {
236
+ const idsStr = exported.map((comp) => comp.id.toString());
237
+ throw new OldScopeExported(idsStr);
238
+ }
239
+ const tagged = componentsUsingOldScope.filter((comp) => comp.id.hasVersion());
240
+ if (tagged.length) {
241
+ const idsStr = tagged.map((comp) => comp.id.toString());
242
+ throw new OldScopeTagged(idsStr);
243
+ }
244
+ const oldWorkspaceDefaultScope = this.workspace.defaultScope;
245
+ const newWorkspaceDefaultScope = isScopeUsesOldOwner(oldWorkspaceDefaultScope)
246
+ ? this.renameOwnerInScopeName(oldWorkspaceDefaultScope, oldOwner, newOwner)
247
+ : undefined;
248
+ if (newWorkspaceDefaultScope) {
249
+ await this.workspace.setDefaultScope(newWorkspaceDefaultScope);
250
+ }
251
+ const newIds = componentsUsingOldScope.map((comp) => {
252
+ if (newWorkspaceDefaultScope && comp.id.scope === oldWorkspaceDefaultScope) {
253
+ this.workspace.bitMap.removeDefaultScope(comp.id);
254
+ return new ComponentID(comp.id._legacy, newWorkspaceDefaultScope);
255
+ }
256
+ const newCompScope = this.renameOwnerInScopeName(comp.id.scope, oldOwner, newOwner);
257
+ this.workspace.bitMap.setDefaultScope(comp.id, newCompScope);
258
+ return new ComponentID(comp.id._legacy, newCompScope);
259
+ });
260
+ await this.workspace.bitMap.write(`rename-owner (${oldOwner} to ${newOwner})`);
261
+ const refactoredIds: ComponentID[] = [];
262
+ if (options.refactor) {
263
+ const legacyComps = componentsUsingOldScope.map((c) => c.state._consumer);
264
+ const packagesToReplace: MultipleStringsReplacement = legacyComps.map((comp) => {
265
+ const newScope = this.renameOwnerInScopeName(comp.id.scope, oldOwner, newOwner);
266
+ return {
267
+ oldStr: componentIdToPackageName(comp),
268
+ newStr: componentIdToPackageName({
269
+ ...comp,
270
+ bindingPrefix: getBindingPrefixByDefaultScope(newScope),
271
+ id: comp.id,
272
+ defaultScope: newScope,
273
+ }),
274
+ };
275
+ });
276
+ const { changedComponents } = await this.refactoring.replaceMultipleStrings(
277
+ allComponents,
278
+ packagesToReplace,
279
+ options.ast ? [importTransformer, exportTransformer] : undefined
280
+ );
281
+ await this.renameOwnerOfAspectIdsInWorkspaceConfig(
282
+ componentsUsingOldScope.map((c) => c.id),
283
+ oldOwner,
284
+ newOwner
285
+ );
286
+ await Promise.all(changedComponents.map((comp) => this.workspace.write(comp)));
287
+ refactoredIds.push(...changedComponents.map((c) => c.id));
288
+ }
289
+
290
+ await this.relinkAndCompile(componentsUsingOldScope, newIds);
291
+
292
+ return { scopeRenamedComponentIds: componentsUsingOldScope.map((comp) => comp.id), refactoredIds };
293
+ }
294
+
295
+ private async renameAspectIdInWorkspaceConfig(sourceId: ComponentID, targetId: ComponentID) {
296
+ const config = this.config.workspaceConfig;
297
+ if (!config) throw new Error('unable to get workspace config');
298
+ const hasChanged = config.renameExtensionInRaw(
299
+ sourceId.toStringWithoutVersion(),
300
+ targetId.toStringWithoutVersion()
301
+ );
302
+ if (hasChanged) await config.write();
303
+ }
304
+
305
+ private async renameScopeOfAspectIdsInWorkspaceConfig(ids: ComponentID[], newScope: string) {
306
+ const config = this.config.workspaceConfig;
307
+ if (!config) throw new Error('unable to get workspace config');
308
+ let hasChanged = false;
309
+ ids.forEach((id) => {
310
+ const changed = config.renameExtensionInRaw(
311
+ id.toStringWithoutVersion(),
312
+ id.changeScope(newScope).toStringWithoutVersion()
313
+ );
314
+ if (changed) hasChanged = true;
315
+ });
316
+ if (hasChanged) await config.write();
317
+ }
318
+
319
+ private async renameOwnerOfAspectIdsInWorkspaceConfig(ids: ComponentID[], oldOwner: string, newOwner: string) {
320
+ const config = this.config.workspaceConfig;
321
+ if (!config) throw new Error('unable to get workspace config');
322
+ let hasChanged = false;
323
+ ids.forEach((id) => {
324
+ const newScope = this.renameOwnerInScopeName(id.scope, oldOwner, newOwner);
325
+ const changed = config.renameExtensionInRaw(
326
+ id.toStringWithoutVersion(),
327
+ id.changeScope(newScope).toStringWithoutVersion()
328
+ );
329
+ if (changed) hasChanged = true;
330
+ });
331
+ if (hasChanged) await config.write();
332
+ }
333
+
334
+ private async deleteLinkFromNodeModules(packageName: string) {
335
+ await fs.remove(path.join(this.workspace.path, 'node_modules', packageName));
336
+ }
337
+ private async compileGracefully(ids: ComponentID[]) {
338
+ try {
339
+ await this.compiler.compileOnWorkspace(ids);
340
+ } catch (err: any) {
341
+ const idsStr = ids.map((id) => id.toString()).join(', ');
342
+ this.logger.consoleFailure(`failed compiling the component(s) ${idsStr}. error: ${err.message}`);
343
+ }
344
+ }
345
+
346
+ private renameOwnerInScopeName(scopeName: string, oldOwner: string, newOwner: string): string {
347
+ return scopeName.replace(`${oldOwner}.`, `${newOwner}.`);
348
+ }
349
+
350
+ private async getConfig(comp: Component) {
351
+ const fromExisting = await this.newComponentHelper.getConfigFromExistingToNewComponent(comp);
352
+ return {
353
+ ...fromExisting,
354
+ [RenamingAspect.id]: {
355
+ renamedFrom: comp.id.toObject(),
356
+ },
357
+ };
358
+ }
359
+
360
+ static slots = [];
361
+ static dependencies = [
362
+ CLIAspect,
363
+ WorkspaceAspect,
364
+ DeprecationAspect,
365
+ NewComponentHelperAspect,
366
+ ComponentAspect,
367
+ GraphqlAspect,
368
+ RefactoringAspect,
369
+ InstallAspect,
370
+ ConfigAspect,
371
+ ComponentWriterAspect,
372
+ CompilerAspect,
373
+ LoggerAspect,
374
+ EnvsAspect,
375
+ ];
376
+ static runtime = MainRuntime;
377
+ static async provider([
378
+ cli,
379
+ workspace,
380
+ deprecation,
381
+ newComponentHelper,
382
+ componentMain,
383
+ graphql,
384
+ refactoring,
385
+ install,
386
+ config,
387
+ componentWriter,
388
+ compiler,
389
+ loggerMain,
390
+ envs,
391
+ ]: [
392
+ CLIMain,
393
+ Workspace,
394
+ DeprecationMain,
395
+ NewComponentHelperMain,
396
+ ComponentMain,
397
+ GraphqlMain,
398
+ RefactoringMain,
399
+ InstallMain,
400
+ ConfigMain,
401
+ ComponentWriterMain,
402
+ CompilerMain,
403
+ LoggerMain,
404
+ EnvsMain
405
+ ]) {
406
+ const logger = loggerMain.createLogger(RenamingAspect.id);
407
+ const renaming = new RenamingMain(
408
+ workspace,
409
+ install,
410
+ newComponentHelper,
411
+ deprecation,
412
+ refactoring,
413
+ config,
414
+ componentWriter,
415
+ compiler,
416
+ logger,
417
+ envs
418
+ );
419
+ cli.register(new RenameCmd(renaming));
420
+
421
+ const scopeCommand = cli.getCommand('scope');
422
+ scopeCommand?.commands?.push(new ScopeRenameCmd(renaming));
423
+ scopeCommand?.commands?.push(new ScopeRenameOwnerCmd(renaming));
424
+
425
+ graphql.register(renamingSchema(renaming));
426
+ componentMain.registerShowFragments([new RenamingFragment(renaming)]);
427
+ return renaming;
428
+ }
429
+ }
430
+
431
+ RenamingAspect.addRuntime(RenamingMain);
432
+
433
+ export type RenameDependencyNameResult = { sourceId: ComponentID; targetId: ComponentID };
434
+
435
+ export type RenamingInfo = {
436
+ renamedFrom: ComponentID;
437
+ };
438
+
439
+ export type RenameScopeResult = { scopeRenamedComponentIds: ComponentID[]; refactoredIds: ComponentID[] };
@@ -0,0 +1,37 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import chalk from 'chalk';
3
+ import { RenamingMain } from './renaming.main.runtime';
4
+
5
+ export class ScopeRenameOwnerCmd implements Command {
6
+ name = 'rename-owner <current-owner-name> <new-owner-name>';
7
+ description = "Renames the owner part of the scope-name for all components with the specified 'current owner name'";
8
+ arguments = [
9
+ { name: 'current-owner-name', description: 'the owner name to be replaced by another owner name' },
10
+ { name: 'new-owner-name', description: 'a new owner name to replace the current owner name' },
11
+ ];
12
+ options = [
13
+ [
14
+ 'r',
15
+ 'refactor',
16
+ 'update the import statements in all dependent components to the new package name (that contains the new owner name)',
17
+ ],
18
+ ['', 'ast', 'EXPERIMENTAL. use ast to transform files instead of regex'],
19
+ ] as CommandOptions;
20
+ group = 'development';
21
+
22
+ constructor(private renaming: RenamingMain) {}
23
+
24
+ async report([oldName, newName]: [string, string], { refactor }: { refactor?: boolean }) {
25
+ const { scopeRenamedComponentIds, refactoredIds } = await this.renaming.renameOwner(oldName, newName, { refactor });
26
+ const title = chalk.green(`successfully replaced "${oldName}" owner with "${newName}"`);
27
+ const renamedIdsStr = scopeRenamedComponentIds.length
28
+ ? `\n${chalk.bold(
29
+ 'the following components were affected by this scope-name change:'
30
+ )}\n${scopeRenamedComponentIds.map((c) => c.changeScope(newName)).join('\n')}`
31
+ : '';
32
+ const refactoredStr = refactoredIds.length
33
+ ? `\n\n${chalk.bold('the following components have been refactored:')}\n${refactoredIds.join('\n')}`
34
+ : '';
35
+ return `${title}\n${renamedIdsStr}${refactoredStr}`;
36
+ }
37
+ }
@@ -0,0 +1,40 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import chalk from 'chalk';
3
+ import { RenamingMain } from './renaming.main.runtime';
4
+
5
+ export class ScopeRenameCmd implements Command {
6
+ name = 'rename <current-scope-name> <new-scope-name>';
7
+ description =
8
+ "Renames the scope name for all components with the specified 'current scope name' - only available for new components that have not yet been snapped/tagged";
9
+ extendedDescription = `Note: if \`<current-scope-name>\` is also the defaultScope for the workspace, this command will set \`<new-scope-name>\`
10
+ as the defaultScope instead, and that will then be set for all components by default. You may see updates in your .bitmap file
11
+ as a result of this change`;
12
+ arguments = [
13
+ { name: 'current-scope-name', description: 'the scope name to be replaced by another scope name' },
14
+ { name: 'new-scope-name', description: 'a new scope name to replace the current scope name' },
15
+ ];
16
+ options = [
17
+ [
18
+ 'r',
19
+ 'refactor',
20
+ 'update the import statements in all dependent components to the new package name (i.e. with the new scope name)',
21
+ ],
22
+ ] as CommandOptions;
23
+ group = 'development';
24
+
25
+ constructor(private renaming: RenamingMain) {}
26
+
27
+ async report([oldName, newName]: [string, string], { refactor }: { refactor?: boolean }) {
28
+ const { scopeRenamedComponentIds, refactoredIds } = await this.renaming.renameScope(oldName, newName, { refactor });
29
+ const title = chalk.green(`successfully replaced "${oldName}" scope with "${newName}"`);
30
+ const renamedIdsStr = scopeRenamedComponentIds.length
31
+ ? `\n${chalk.bold(
32
+ 'the following components were affected by this scope-name change:'
33
+ )}\n${scopeRenamedComponentIds.map((c) => c.changeScope(newName)).join('\n')}`
34
+ : '';
35
+ const refactoredStr = refactoredIds.length
36
+ ? `\n\n${chalk.bold('the following components have been refactored:')}\n${refactoredIds.join('\n')}`
37
+ : '';
38
+ return `${title}\n${renamedIdsStr}${refactoredStr}`;
39
+ }
40
+ }
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
+ }