@teambit/workspace 1.0.186 → 1.0.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bit-map.js CHANGED
@@ -101,6 +101,7 @@ class BitMap {
101
101
  // only new components (not snapped/tagged) can be changed
102
102
  if (componentMap.defaultScope === oldScope && !componentMap.id.hasVersion()) {
103
103
  componentMap.defaultScope = newScope;
104
+ componentMap.id = componentMap.id.changeDefaultScope(newScope);
104
105
  changedId.push(componentMap.id);
105
106
  }
106
107
  });
@@ -223,9 +224,9 @@ class BitMap {
223
224
  if (sourceId.fullName !== targetId.fullName) {
224
225
  this.legacyBitMap.removeComponent(bitMapEntry.id);
225
226
  bitMapEntry.id = targetId;
227
+ if (sourceId.scope !== targetId.scope) bitMapEntry.defaultScope = targetId.scope;
226
228
  this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);
227
- }
228
- if (sourceId.scope !== targetId.scope) {
229
+ } else if (sourceId.scope !== targetId.scope) {
229
230
  this.setDefaultScope(sourceId, targetId.scope);
230
231
  }
231
232
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_bitMap","_interopRequireDefault","_config","_bitError","_envs","_lastModified","obj","__esModule","default","BitMap","constructor","legacyBitMap","consumer","mergeBitmaps","bitmapContent","otherBitmapContent","opts","LegacyBitMap","mergeContent","getPath","mapPath","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","updateDefaultScope","oldScope","newScope","changedId","components","forEach","componentMap","defaultScope","hasVersion","push","length","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","setDefaultScope","changeDefaultScope","write","reasonForChange","writeBitMap","getComponent","getBitmapEntryIfExist","getComponentIfExist","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","Object","keys","filter","startsWith","toStringWithoutVersion","BitError","join","renameNewComponent","sourceId","targetId","fullName","removeComponent","setComponent","scope","renameAspectInConfig","EnvsAspect","envConfig","env","getExportedLaneId","isLaneExported","laneId","makeComponentsAvailableOnMain","ids","isAvailableOnCurrentLane","onLanesOnly","hasChanged","takeSnapshot","map","comp","clone","restoreFromSnapshot","componentMaps","_invalidateCache","getLastModifiedBitmapThroughBit","bitmapHistoryDir","getBitmapHistoryDir","stat","getPathStatIfExist","mtimeMs","exports"],"sources":["bit-map.ts"],"sourcesContent":["import { isEqual, merge } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport LegacyBitMap from '@teambit/legacy/dist/consumer/bit-map';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { GetBitMapComponentOptions } from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport EnvsAspect from '@teambit/envs';\nimport { getPathStatIfExist } from '@teambit/legacy/dist/utils/fs/last-modified';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\n\nexport type MergeOptions = {\n mergeStrategy?: 'theirs' | 'ours' | 'manual';\n};\n/**\n * consider extracting to a new component.\n * (pro: making Workspace aspect smaller. con: it's an implementation details of the workspace)\n */\nexport class BitMap {\n constructor(private legacyBitMap: LegacyBitMap, private consumer: Consumer) {}\n\n mergeBitmaps(bitmapContent: string, otherBitmapContent: string, opts: MergeOptions = {}): string {\n return LegacyBitMap.mergeContent(bitmapContent, otherBitmapContent, opts);\n }\n\n getPath(): PathOsBasedAbsolute {\n return this.legacyBitMap.mapPath;\n }\n\n /**\n * adds component config to the .bitmap file.\n * later, upon `bit tag`, the data is saved in the scope.\n * returns a boolean indicating whether a change has been made.\n */\n addComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeConfig = false\n ): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (isEqual(currentConfig, config)) {\n return false; // no changes\n }\n const getNewConfig = () => {\n if (!config) return null;\n if (!shouldMergeConfig) return config;\n // should merge\n if (!currentConfig) return config;\n if (currentConfig === '-') return config;\n // lodash merge performs a deep merge. (the native concatenation don't)\n return merge(currentConfig, config);\n };\n const newConfig = getNewConfig();\n if (newConfig) {\n bitMapEntry.config[aspectId] = newConfig;\n } else {\n delete bitMapEntry.config[aspectId];\n }\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n updateDefaultScope(oldScope: string, newScope: string) {\n const changedId: ComponentID[] = [];\n this.legacyBitMap.components.forEach((componentMap) => {\n // only new components (not snapped/tagged) can be changed\n if (componentMap.defaultScope === oldScope && !componentMap.id.hasVersion()) {\n componentMap.defaultScope = newScope;\n changedId.push(componentMap.id);\n }\n });\n if (changedId.length) {\n this.legacyBitMap.markAsChanged();\n }\n return changedId;\n }\n\n markAsChanged() {\n this.legacyBitMap.markAsChanged();\n }\n\n removeComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (currentConfig) {\n delete bitMapEntry.config[aspectId];\n } else {\n if (!markWithMinusIfNotExist) {\n return false; // no changes\n }\n bitMapEntry.config[aspectId] = REMOVE_EXTENSION_SPECIAL_SIGN;\n }\n\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeEntireConfig(id: ComponentID): boolean {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (!bitMapEntry.config) return false;\n delete bitMapEntry.config;\n this.legacyBitMap.markAsChanged();\n return true;\n }\n\n setEntireConfig(id: ComponentID, config: Record<string, any>) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (bitMapEntry.defaultScope) {\n delete bitMapEntry.defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n }\n\n setDefaultScope(id: ComponentID, defaultScope: string) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n bitMapEntry.id = bitMapEntry.id.changeDefaultScope(defaultScope);\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n * optionally pass a reason for the change to be saved in the local scope `bitmap-history-metadata.txt` file.\n */\n async write(reasonForChange?: string) {\n await this.consumer.writeBitMap(reasonForChange);\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n * throws if not found\n * @see this.getBitmapEntryIfExist\n */\n getBitmapEntry(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap {\n return this.legacyBitMap.getComponent(id, { ignoreVersion });\n }\n\n getBitmapEntryIfExist(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap | undefined {\n return this.legacyBitMap.getComponentIfExist(id, { ignoreVersion });\n }\n\n getAspectIdFromConfig(\n componentId: ComponentID,\n aspectId: ComponentID,\n ignoreAspectVersion = false\n ): string | undefined {\n const bitMapEntry = this.getBitmapEntry(componentId);\n const config = bitMapEntry.config;\n if (!config) {\n return undefined;\n }\n if (config[aspectId.toString()]) {\n return aspectId.toString();\n }\n if (!ignoreAspectVersion) {\n return undefined;\n }\n const allVersions = Object.keys(config).filter((id) => id.startsWith(`${aspectId.toStringWithoutVersion()}@`));\n if (allVersions.length > 1) {\n throw new BitError(\n `error: the same aspect ${\n aspectId.toStringWithoutVersion\n } configured multiple times for \"${componentId.toString()}\"\\n${allVersions.join('\\n')}`\n );\n }\n return allVersions.length === 1 ? allVersions[0] : undefined;\n }\n\n /**\n * components that were not tagged yet are safe to rename them from the .bitmap file.\n */\n renameNewComponent(sourceId: ComponentID, targetId: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(sourceId);\n if (bitMapEntry.id.hasVersion()) {\n throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);\n }\n if (sourceId.isEqual(targetId)) {\n throw new Error(`source-id and target-id are equal: \"${sourceId.toString()}\"`);\n }\n if (sourceId.fullName !== targetId.fullName) {\n this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n }\n if (sourceId.scope !== targetId.scope) {\n this.setDefaultScope(sourceId, targetId.scope);\n }\n }\n\n /**\n * helpful when reaming an aspect and this aspect is used in the config of other components.\n */\n renameAspectInConfig(sourceId: ComponentID, targetId: ComponentID) {\n this.legacyBitMap.components.forEach((componentMap) => {\n const config = componentMap.config;\n if (!config) return;\n Object.keys(config).forEach((aspectId) => {\n if (aspectId === sourceId.toString()) {\n config[targetId.toString()] = config[aspectId];\n delete config[aspectId];\n this.markAsChanged();\n }\n if (aspectId === EnvsAspect.id) {\n const envConfig = config[aspectId];\n if (envConfig !== REMOVE_EXTENSION_SPECIAL_SIGN && envConfig.env === sourceId.toString()) {\n envConfig.env = targetId.toString();\n this.markAsChanged();\n }\n }\n });\n componentMap.config = config;\n });\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id);\n }\n\n /**\n * this is the lane-id of the recently exported lane. in case of a new lane, which was not exported yet, this will be\n * empty.\n */\n getExportedLaneId(): LaneId | undefined {\n return this.legacyBitMap.isLaneExported ? this.legacyBitMap.laneId : undefined;\n }\n\n makeComponentsAvailableOnMain(ids: ComponentID[]) {\n ids.forEach((id) => {\n const componentMap = this.getBitmapEntry(id);\n componentMap.isAvailableOnCurrentLane = true;\n delete componentMap.onLanesOnly;\n });\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n\n takeSnapshot(): ComponentMap[] {\n return this.legacyBitMap.components.map((comp) => comp.clone());\n }\n\n restoreFromSnapshot(componentMaps: ComponentMap[]) {\n this.legacyBitMap.components = componentMaps;\n this.legacyBitMap._invalidateCache();\n }\n\n /**\n * .bitmap file could be changed by other sources (e.g. manually or by \"git pull\") not only by bit.\n * this method returns the timestamp when the .bitmap has changed through bit. (e.g. as part of snap/tag/export/merge\n * process)\n */\n async getLastModifiedBitmapThroughBit(): Promise<number | undefined> {\n const bitmapHistoryDir = this.consumer.getBitmapHistoryDir();\n const stat = await getPathStatIfExist(bitmapHistoryDir);\n if (!stat) return undefined;\n return stat.mtimeMs;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","data","require","_bitMap","_interopRequireDefault","_config","_bitError","_envs","_lastModified","obj","__esModule","default","BitMap","constructor","legacyBitMap","consumer","mergeBitmaps","bitmapContent","otherBitmapContent","opts","LegacyBitMap","mergeContent","getPath","mapPath","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","updateDefaultScope","oldScope","newScope","changedId","components","forEach","componentMap","defaultScope","hasVersion","changeDefaultScope","push","length","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","setDefaultScope","write","reasonForChange","writeBitMap","getComponent","getBitmapEntryIfExist","getComponentIfExist","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","Object","keys","filter","startsWith","toStringWithoutVersion","BitError","join","renameNewComponent","sourceId","targetId","fullName","removeComponent","scope","setComponent","renameAspectInConfig","EnvsAspect","envConfig","env","getExportedLaneId","isLaneExported","laneId","makeComponentsAvailableOnMain","ids","isAvailableOnCurrentLane","onLanesOnly","hasChanged","takeSnapshot","map","comp","clone","restoreFromSnapshot","componentMaps","_invalidateCache","getLastModifiedBitmapThroughBit","bitmapHistoryDir","getBitmapHistoryDir","stat","getPathStatIfExist","mtimeMs","exports"],"sources":["bit-map.ts"],"sourcesContent":["import { isEqual, merge } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport LegacyBitMap from '@teambit/legacy/dist/consumer/bit-map';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { GetBitMapComponentOptions } from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\nimport EnvsAspect from '@teambit/envs';\nimport { getPathStatIfExist } from '@teambit/legacy/dist/utils/fs/last-modified';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\n\nexport type MergeOptions = {\n mergeStrategy?: 'theirs' | 'ours' | 'manual';\n};\n/**\n * consider extracting to a new component.\n * (pro: making Workspace aspect smaller. con: it's an implementation details of the workspace)\n */\nexport class BitMap {\n constructor(private legacyBitMap: LegacyBitMap, private consumer: Consumer) {}\n\n mergeBitmaps(bitmapContent: string, otherBitmapContent: string, opts: MergeOptions = {}): string {\n return LegacyBitMap.mergeContent(bitmapContent, otherBitmapContent, opts);\n }\n\n getPath(): PathOsBasedAbsolute {\n return this.legacyBitMap.mapPath;\n }\n\n /**\n * adds component config to the .bitmap file.\n * later, upon `bit tag`, the data is saved in the scope.\n * returns a boolean indicating whether a change has been made.\n */\n addComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeConfig = false\n ): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (isEqual(currentConfig, config)) {\n return false; // no changes\n }\n const getNewConfig = () => {\n if (!config) return null;\n if (!shouldMergeConfig) return config;\n // should merge\n if (!currentConfig) return config;\n if (currentConfig === '-') return config;\n // lodash merge performs a deep merge. (the native concatenation don't)\n return merge(currentConfig, config);\n };\n const newConfig = getNewConfig();\n if (newConfig) {\n bitMapEntry.config[aspectId] = newConfig;\n } else {\n delete bitMapEntry.config[aspectId];\n }\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n updateDefaultScope(oldScope: string, newScope: string) {\n const changedId: ComponentID[] = [];\n this.legacyBitMap.components.forEach((componentMap) => {\n // only new components (not snapped/tagged) can be changed\n if (componentMap.defaultScope === oldScope && !componentMap.id.hasVersion()) {\n componentMap.defaultScope = newScope;\n componentMap.id = componentMap.id.changeDefaultScope(newScope);\n changedId.push(componentMap.id);\n }\n });\n if (changedId.length) {\n this.legacyBitMap.markAsChanged();\n }\n return changedId;\n }\n\n markAsChanged() {\n this.legacyBitMap.markAsChanged();\n }\n\n removeComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (currentConfig) {\n delete bitMapEntry.config[aspectId];\n } else {\n if (!markWithMinusIfNotExist) {\n return false; // no changes\n }\n bitMapEntry.config[aspectId] = REMOVE_EXTENSION_SPECIAL_SIGN;\n }\n\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeEntireConfig(id: ComponentID): boolean {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (!bitMapEntry.config) return false;\n delete bitMapEntry.config;\n this.legacyBitMap.markAsChanged();\n return true;\n }\n\n setEntireConfig(id: ComponentID, config: Record<string, any>) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n if (bitMapEntry.defaultScope) {\n delete bitMapEntry.defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n }\n\n setDefaultScope(id: ComponentID, defaultScope: string) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n bitMapEntry.id = bitMapEntry.id.changeDefaultScope(defaultScope);\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n * optionally pass a reason for the change to be saved in the local scope `bitmap-history-metadata.txt` file.\n */\n async write(reasonForChange?: string) {\n await this.consumer.writeBitMap(reasonForChange);\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n * throws if not found\n * @see this.getBitmapEntryIfExist\n */\n getBitmapEntry(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap {\n return this.legacyBitMap.getComponent(id, { ignoreVersion });\n }\n\n getBitmapEntryIfExist(id: ComponentID, { ignoreVersion }: GetBitMapComponentOptions = {}): ComponentMap | undefined {\n return this.legacyBitMap.getComponentIfExist(id, { ignoreVersion });\n }\n\n getAspectIdFromConfig(\n componentId: ComponentID,\n aspectId: ComponentID,\n ignoreAspectVersion = false\n ): string | undefined {\n const bitMapEntry = this.getBitmapEntry(componentId);\n const config = bitMapEntry.config;\n if (!config) {\n return undefined;\n }\n if (config[aspectId.toString()]) {\n return aspectId.toString();\n }\n if (!ignoreAspectVersion) {\n return undefined;\n }\n const allVersions = Object.keys(config).filter((id) => id.startsWith(`${aspectId.toStringWithoutVersion()}@`));\n if (allVersions.length > 1) {\n throw new BitError(\n `error: the same aspect ${\n aspectId.toStringWithoutVersion\n } configured multiple times for \"${componentId.toString()}\"\\n${allVersions.join('\\n')}`\n );\n }\n return allVersions.length === 1 ? allVersions[0] : undefined;\n }\n\n /**\n * components that were not tagged yet are safe to rename them from the .bitmap file.\n */\n renameNewComponent(sourceId: ComponentID, targetId: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(sourceId);\n if (bitMapEntry.id.hasVersion()) {\n throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);\n }\n if (sourceId.isEqual(targetId)) {\n throw new Error(`source-id and target-id are equal: \"${sourceId.toString()}\"`);\n }\n if (sourceId.fullName !== targetId.fullName) {\n this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId;\n if (sourceId.scope !== targetId.scope) bitMapEntry.defaultScope = targetId.scope;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n } else if (sourceId.scope !== targetId.scope) {\n this.setDefaultScope(sourceId, targetId.scope);\n }\n }\n\n /**\n * helpful when reaming an aspect and this aspect is used in the config of other components.\n */\n renameAspectInConfig(sourceId: ComponentID, targetId: ComponentID) {\n this.legacyBitMap.components.forEach((componentMap) => {\n const config = componentMap.config;\n if (!config) return;\n Object.keys(config).forEach((aspectId) => {\n if (aspectId === sourceId.toString()) {\n config[targetId.toString()] = config[aspectId];\n delete config[aspectId];\n this.markAsChanged();\n }\n if (aspectId === EnvsAspect.id) {\n const envConfig = config[aspectId];\n if (envConfig !== REMOVE_EXTENSION_SPECIAL_SIGN && envConfig.env === sourceId.toString()) {\n envConfig.env = targetId.toString();\n this.markAsChanged();\n }\n }\n });\n componentMap.config = config;\n });\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id);\n }\n\n /**\n * this is the lane-id of the recently exported lane. in case of a new lane, which was not exported yet, this will be\n * empty.\n */\n getExportedLaneId(): LaneId | undefined {\n return this.legacyBitMap.isLaneExported ? this.legacyBitMap.laneId : undefined;\n }\n\n makeComponentsAvailableOnMain(ids: ComponentID[]) {\n ids.forEach((id) => {\n const componentMap = this.getBitmapEntry(id);\n componentMap.isAvailableOnCurrentLane = true;\n delete componentMap.onLanesOnly;\n });\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n\n takeSnapshot(): ComponentMap[] {\n return this.legacyBitMap.components.map((comp) => comp.clone());\n }\n\n restoreFromSnapshot(componentMaps: ComponentMap[]) {\n this.legacyBitMap.components = componentMaps;\n this.legacyBitMap._invalidateCache();\n }\n\n /**\n * .bitmap file could be changed by other sources (e.g. manually or by \"git pull\") not only by bit.\n * this method returns the timestamp when the .bitmap has changed through bit. (e.g. as part of snap/tag/export/merge\n * process)\n */\n async getLastModifiedBitmapThroughBit(): Promise<number | undefined> {\n const bitmapHistoryDir = this.consumer.getBitmapHistoryDir();\n const stat = await getPathStatIfExist(bitmapHistoryDir);\n if (!stat) return undefined;\n return stat.mtimeMs;\n }\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.workspace_workspace@1.0.186/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.186/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.187/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.187/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -430,7 +430,12 @@ export declare class Workspace implements ComponentFactory {
430
430
  * returns the affected components.
431
431
  */
432
432
  setDefaultScopeToComponents(componentIds: ComponentID[], scopeName: string): Promise<ComponentID[]>;
433
- setDefaultScope(scopeName: string): Promise<void>;
433
+ /**
434
+ * @param scopeName
435
+ * @param includeComponents whether to update new components in the workspace to use the new default-scope
436
+ * this is relevant only for new components that were using the previous default-scope
437
+ */
438
+ setDefaultScope(scopeName: string, includeComponents?: boolean): Promise<void>;
434
439
  addSpecificComponentConfig(id: ComponentID, aspectId: string, config?: Record<string, any>, { shouldMergeWithExisting, shouldMergeWithPrevious, }?: {
435
440
  shouldMergeWithExisting?: boolean;
436
441
  /**
package/dist/workspace.js CHANGED
@@ -1457,7 +1457,13 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1457
1457
  await this.bitMap.write('scope-set');
1458
1458
  return newComponentIds;
1459
1459
  }
1460
- async setDefaultScope(scopeName) {
1460
+
1461
+ /**
1462
+ * @param scopeName
1463
+ * @param includeComponents whether to update new components in the workspace to use the new default-scope
1464
+ * this is relevant only for new components that were using the previous default-scope
1465
+ */
1466
+ async setDefaultScope(scopeName, includeComponents = true) {
1461
1467
  if (this.defaultScope === scopeName) {
1462
1468
  throw new Error(`the default-scope is already set as "${scopeName}", nothing to change`);
1463
1469
  }
@@ -1471,8 +1477,10 @@ the following envs are used in this workspace: ${availableEnvs.join(', ')}`);
1471
1477
  mergeIntoExisting: true,
1472
1478
  ignoreVersion: true
1473
1479
  });
1474
- // fix also comps using the old default-scope
1475
- this.bitMap.updateDefaultScope(this.config.defaultScope, scopeName);
1480
+ if (includeComponents) {
1481
+ // fix also comps using the old default-scope
1482
+ this.bitMap.updateDefaultScope(this.config.defaultScope, scopeName);
1483
+ }
1476
1484
  this.config.defaultScope = scopeName;
1477
1485
  await config.workspaceConfig?.write({
1478
1486
  reasonForChange: `default-scope (${scopeName})`