@teambit/workspace 0.0.837 → 0.0.845

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
@@ -202,9 +202,19 @@ class BitMap {
202
202
  throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);
203
203
  }
204
204
 
205
- this.legacyBitMap.removeComponent(bitMapEntry.id);
206
- bitMapEntry.id = targetId._legacy;
207
- this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);
205
+ if (sourceId.isEqual(targetId)) {
206
+ throw new Error(`source-id and target-id are equal: "${sourceId.toString()}"`);
207
+ }
208
+
209
+ if (sourceId.fullName !== targetId.fullName) {
210
+ this.legacyBitMap.removeComponent(bitMapEntry.id);
211
+ bitMapEntry.id = targetId._legacy;
212
+ this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);
213
+ }
214
+
215
+ if (sourceId.scope !== targetId.scope) {
216
+ this.setDefaultScope(targetId, targetId.scope);
217
+ }
208
218
  }
209
219
 
210
220
  removeComponent(id) {
@@ -1 +1 @@
1
- {"version":3,"names":["BitMap","constructor","legacyBitMap","consumer","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreScopeAndVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","defaultScope","setDefaultScope","write","writeBitMap","ignoreVersion","getComponent","_legacy","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","Object","keys","filter","startsWith","toStringWithoutVersion","length","BitError","join","renameNewComponent","sourceId","targetId","hasVersion","removeComponent","setComponent","getExportedLaneId","isLaneExported","laneId","hasChanged"],"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';\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 /**\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, { ignoreScopeAndVersion: 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 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, { ignoreScopeAndVersion: 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, { ignoreScopeAndVersion: 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, { ignoreScopeAndVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: 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, { ignoreScopeAndVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n */\n async write() {\n await this.consumer.writeBitMap();\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n */\n getBitmapEntry(\n id: ComponentID,\n { ignoreVersion, ignoreScopeAndVersion }: GetBitMapComponentOptions = {}\n ): ComponentMap {\n return this.legacyBitMap.getComponent(id._legacy, { ignoreVersion, ignoreScopeAndVersion });\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 this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId._legacy;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id._legacy);\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 /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BitMap","constructor","legacyBitMap","consumer","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreScopeAndVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","defaultScope","setDefaultScope","write","writeBitMap","ignoreVersion","getComponent","_legacy","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","Object","keys","filter","startsWith","toStringWithoutVersion","length","BitError","join","renameNewComponent","sourceId","targetId","hasVersion","fullName","removeComponent","setComponent","scope","getExportedLaneId","isLaneExported","laneId","hasChanged"],"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';\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 /**\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, { ignoreScopeAndVersion: 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 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, { ignoreScopeAndVersion: 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, { ignoreScopeAndVersion: 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, { ignoreScopeAndVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: 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, { ignoreScopeAndVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n */\n async write() {\n await this.consumer.writeBitMap();\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n */\n getBitmapEntry(\n id: ComponentID,\n { ignoreVersion, ignoreScopeAndVersion }: GetBitMapComponentOptions = {}\n ): ComponentMap {\n return this.legacyBitMap.getComponent(id._legacy, { ignoreVersion, ignoreScopeAndVersion });\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._legacy;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n }\n if (sourceId.scope !== targetId.scope) {\n this.setDefaultScope(targetId, targetId.scope);\n }\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id._legacy);\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 /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n}\n"],"mappings":"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"}
@@ -126,6 +126,9 @@ const wcComponentFields = (0, _client().gql)`
126
126
  }
127
127
  isDeleted
128
128
  }
129
+ preview {
130
+ isScaling
131
+ }
129
132
  deprecation {
130
133
  isDeprecate
131
134
  newId
@@ -1 +1 @@
1
- {"version":3,"names":["wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","useWorkspace","options","useDataQuery","data","subscribeToMore","rest","optionsRef","useLatest","useEffect","unSubCompAddition","document","updateQuery","prev","subscriptionData","update","addedComponent","componentAdded","component","componentExists","workspace","components","find","ComponentID","isEqualObj","id","ignoreVersion","setTimeout","current","onComponentAdded","ComponentModel","from","unSubCompChange","updatedComponent","componentChanged","onComponentUpdated","map","name","unSubCompRemoved","idsToRemove","componentRemoved","componentIds","length","onComponentRemoved","fromObject","filter","every","useMemo","Workspace","undefined"],"sources":["use-workspace.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ComponentModel } from '@teambit/component';\nimport useLatest from '@react-hook/latest';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { gql } from '@apollo/client';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceOptions = {\n onComponentAdded?: (component: ComponentModel[]) => void;\n onComponentUpdated?: (component: ComponentModel[]) => void;\n onComponentRemoved?: (compId: ComponentID[]) => void;\n};\ntype RawComponent = { id: ComponentIdObj };\n\nconst wcComponentFields = gql`\n fragment wcComponentFields on Component {\n id {\n name\n version\n scope\n }\n compositions {\n identifier\n }\n description\n issuesCount\n status {\n isOutdated\n isNew\n isInScope\n isStaged\n modifyInfo {\n hasModifiedFiles\n hasModifiedDependencies\n }\n isDeleted\n }\n deprecation {\n isDeprecate\n newId\n }\n server {\n env\n url\n }\n env {\n id\n icon\n }\n }\n`;\n\nconst WORKSPACE = gql`\n query workspace {\n workspace {\n name\n path\n icon\n components {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n name\n version\n scope\n }\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}) {\n const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);\n const optionsRef = useLatest(options);\n\n useEffect(() => {\n const unSubCompAddition = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n const addedComponent = update?.componentAdded?.component;\n if (!addedComponent) return prev;\n\n const componentExists = prev.workspace.components.find((component: any) =>\n ComponentID.isEqualObj(component.id, addedComponent.id, { ignoreVersion: true })\n );\n if (componentExists) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentAdded?.([ComponentModel.from(addedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: [...prev.workspace.components, addedComponent],\n },\n };\n },\n });\n\n const unSubCompChange = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const updatedComponent = update.componentChanged.component;\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentUpdated?.([ComponentModel.from(updatedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.map((component) =>\n component.id.name === updatedComponent.id.name ? updatedComponent : component\n ),\n },\n };\n },\n });\n\n const unSubCompRemoved = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n const idsToRemove: ComponentIdObj[] | undefined = subscriptionData.data?.componentRemoved?.componentIds;\n if (!idsToRemove || idsToRemove.length === 0) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map((id) => ComponentID.fromObject(id))));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.filter((component: RawComponent) =>\n idsToRemove.every((id) => !ComponentID.isEqualObj(id, component.id))\n ),\n },\n };\n },\n });\n\n // TODO - sub to component removal\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n };\n }, [optionsRef]);\n\n const workspace = useMemo(() => {\n return data?.workspace ? Workspace.from(data?.workspace) : undefined;\n }, [data?.workspace]);\n\n return {\n workspace,\n subscribeToMore,\n ...rest,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","useWorkspace","options","useDataQuery","data","subscribeToMore","rest","optionsRef","useLatest","useEffect","unSubCompAddition","document","updateQuery","prev","subscriptionData","update","addedComponent","componentAdded","component","componentExists","workspace","components","find","ComponentID","isEqualObj","id","ignoreVersion","setTimeout","current","onComponentAdded","ComponentModel","from","unSubCompChange","updatedComponent","componentChanged","onComponentUpdated","map","name","unSubCompRemoved","idsToRemove","componentRemoved","componentIds","length","onComponentRemoved","fromObject","filter","every","useMemo","Workspace","undefined"],"sources":["use-workspace.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ComponentModel } from '@teambit/component';\nimport useLatest from '@react-hook/latest';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { gql } from '@apollo/client';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceOptions = {\n onComponentAdded?: (component: ComponentModel[]) => void;\n onComponentUpdated?: (component: ComponentModel[]) => void;\n onComponentRemoved?: (compId: ComponentID[]) => void;\n};\ntype RawComponent = { id: ComponentIdObj };\n\nconst wcComponentFields = gql`\n fragment wcComponentFields on Component {\n id {\n name\n version\n scope\n }\n compositions {\n identifier\n }\n description\n issuesCount\n status {\n isOutdated\n isNew\n isInScope\n isStaged\n modifyInfo {\n hasModifiedFiles\n hasModifiedDependencies\n }\n isDeleted\n }\n preview {\n isScaling\n }\n deprecation {\n isDeprecate\n newId\n }\n server {\n env\n url\n }\n env {\n id\n icon\n }\n }\n`;\n\nconst WORKSPACE = gql`\n query workspace {\n workspace {\n name\n path\n icon\n components {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n name\n version\n scope\n }\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}) {\n const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);\n const optionsRef = useLatest(options);\n\n useEffect(() => {\n const unSubCompAddition = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n const addedComponent = update?.componentAdded?.component;\n if (!addedComponent) return prev;\n\n const componentExists = prev.workspace.components.find((component: any) =>\n ComponentID.isEqualObj(component.id, addedComponent.id, { ignoreVersion: true })\n );\n if (componentExists) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentAdded?.([ComponentModel.from(addedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: [...prev.workspace.components, addedComponent],\n },\n };\n },\n });\n\n const unSubCompChange = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const updatedComponent = update.componentChanged.component;\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentUpdated?.([ComponentModel.from(updatedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.map((component) =>\n component.id.name === updatedComponent.id.name ? updatedComponent : component\n ),\n },\n };\n },\n });\n\n const unSubCompRemoved = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n const idsToRemove: ComponentIdObj[] | undefined = subscriptionData.data?.componentRemoved?.componentIds;\n if (!idsToRemove || idsToRemove.length === 0) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map((id) => ComponentID.fromObject(id))));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.filter((component: RawComponent) =>\n idsToRemove.every((id) => !ComponentID.isEqualObj(id, component.id))\n ),\n },\n };\n },\n });\n\n // TODO - sub to component removal\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n };\n }, [optionsRef]);\n\n const workspace = useMemo(() => {\n return data?.workspace ? Workspace.from(data?.workspace) : undefined;\n }, [data?.workspace]);\n\n return {\n workspace,\n subscribeToMore,\n ...rest,\n };\n}\n"],"mappings":"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"}
package/dist/workspace.js CHANGED
@@ -359,6 +359,16 @@ function _scopeComponentsImporter() {
359
359
  return data;
360
360
  }
361
361
 
362
+ function _exceptions3() {
363
+ const data = require("@teambit/legacy/dist/consumer/bit-map/exceptions");
364
+
365
+ _exceptions3 = function () {
366
+ return data;
367
+ };
368
+
369
+ return data;
370
+ }
371
+
362
372
  function _loader() {
363
373
  const data = _interopRequireDefault(require("@teambit/legacy/dist/cli/loader"));
364
374
 
@@ -399,10 +409,10 @@ function _componentConfigFile() {
399
409
  return data;
400
410
  }
401
411
 
402
- function _exceptions3() {
412
+ function _exceptions4() {
403
413
  const data = require("./exceptions");
404
414
 
405
- _exceptions3 = function () {
415
+ _exceptions4 = function () {
406
416
  return data;
407
417
  };
408
418
 
@@ -1100,7 +1110,7 @@ class Workspace {
1100
1110
  // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name
1101
1111
  const id = await this.resolveComponentId(pattern);
1102
1112
  if (this.exists(id)) return [id];
1103
- if (throwForNoMatch) throw new (_bitError().BitError)(`unable to find "${pattern}" in the workspace`);
1113
+ if (throwForNoMatch) throw new (_exceptions3().MissingBitMapComponent)(pattern);
1104
1114
  return [];
1105
1115
  }
1106
1116
 
@@ -1939,9 +1949,13 @@ needed-for: ${neededFor || '<unknown>'}`);
1939
1949
 
1940
1950
  const scopeIdsGrouped = await this.scope.groupAspectIdsByEnvOfTheList(scopeIds);
1941
1951
  const scopeEnvsManifestsIds = scopeIdsGrouped.envs && scopeIdsGrouped.envs.length ? await this.scope.loadAspects(scopeIdsGrouped.envs, throwOnError, 'workspace.loadAspects loading scope aspects') : [];
1942
- const scopeOtherManifests = scopeIdsGrouped.other && scopeIdsGrouped.other.length ? await this.scope.getManifestsGraphRecursively(scopeIdsGrouped.other, (0, _lodash().compact)(workspaceManifestsIds), throwOnError, {
1952
+ const {
1953
+ manifests: scopeOtherManifests
1954
+ } = scopeIdsGrouped.other && scopeIdsGrouped.other.length ? await this.scope.getManifestsGraphRecursively(scopeIdsGrouped.other, (0, _lodash().compact)(workspaceManifestsIds), throwOnError, {
1943
1955
  packageManagerConfigRootDir: this.path
1944
- }) : [];
1956
+ }) : {
1957
+ manifests: []
1958
+ };
1945
1959
  const scopeOtherManifestsIds = (0, _lodash().compact)(scopeOtherManifests.map(m => m.id));
1946
1960
  await this.aspectLoader.loadExtensionsByManifests([...scopeOtherManifests, ...workspaceManifests], throwOnError); // Try require components for potential plugins
1947
1961
 
@@ -2221,7 +2235,7 @@ needed-for: ${neededFor || '<unknown>'}`);
2221
2235
 
2222
2236
  async _addPackages(packages, options) {
2223
2237
  if (!(options !== null && options !== void 0 && options.variants) && (options === null || options === void 0 ? void 0 : options.lifecycleType) === 'dev') {
2224
- throw new (_exceptions3().DependencyTypeNotSupportedInPolicy)(options === null || options === void 0 ? void 0 : options.lifecycleType);
2238
+ throw new (_exceptions4().DependencyTypeNotSupportedInPolicy)(options === null || options === void 0 ? void 0 : options.lifecycleType);
2225
2239
  }
2226
2240
 
2227
2241
  this.logger.debug(`installing the following packages: ${packages.join()}`);