@teambit/scope 1.0.27 → 1.0.28
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/preview-1697836073970.js +7 -0
- package/dist/scope-component-loader.js +20 -12
- package/dist/scope-component-loader.js.map +1 -1
- package/dist/scope.graphql.d.ts +1 -1
- package/dist/scope.main.runtime.d.ts +11 -9
- package/dist/scope.main.runtime.js +43 -45
- package/dist/scope.main.runtime.js.map +1 -1
- package/package.json +30 -29
- package/dist/preview-1697628054879.js +0 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as compositions_0 from '/Users/davidfirst/Library/Caches/Bit/capsules/4ff44c81b43ba7bd510274165d0509db76ae43db/teambit.scope_scope@1.0.28/dist/scope.composition.js';
|
|
2
|
+
import * as overview_0 from '/Users/davidfirst/Library/Caches/Bit/capsules/4ff44c81b43ba7bd510274165d0509db76ae43db/teambit.scope_scope@1.0.28/dist/scope.docs.mdx';
|
|
3
|
+
|
|
4
|
+
export const compositions = [compositions_0];
|
|
5
|
+
export const overview = [overview_0];
|
|
6
|
+
|
|
7
|
+
export const compositions_metadata = {"compositions":[{"displayName":"Logo","identifier":"Logo"}]};
|
|
@@ -32,6 +32,13 @@ function _objects() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
+
function _modelComponent() {
|
|
36
|
+
const data = require("@teambit/legacy/dist/scope/models/model-component");
|
|
37
|
+
_modelComponent = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
35
42
|
function _inMemoryCache() {
|
|
36
43
|
const data = require("@teambit/legacy/dist/cache/in-memory-cache");
|
|
37
44
|
_inMemoryCache = function () {
|
|
@@ -72,23 +79,24 @@ class ScopeComponentLoader {
|
|
|
72
79
|
}
|
|
73
80
|
const idStr = id.toString();
|
|
74
81
|
this.logger.debug(`ScopeComponentLoader.get, loading ${idStr}`);
|
|
75
|
-
const legacyId = id
|
|
76
|
-
let modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id
|
|
82
|
+
const legacyId = id;
|
|
83
|
+
let modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);
|
|
77
84
|
// import if missing
|
|
78
|
-
if (!modelComponent && importIfMissing &&
|
|
85
|
+
if (!modelComponent && importIfMissing && this.scope.isExported(id) && !this.importedComponentsCache.get(id.toString())) {
|
|
79
86
|
await this.scope.import([id], {
|
|
80
87
|
reason: `${id.toString()} because it's missing from the local scope`
|
|
81
88
|
});
|
|
82
89
|
this.importedComponentsCache.set(id.toString(), true);
|
|
83
|
-
modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id
|
|
90
|
+
modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);
|
|
84
91
|
}
|
|
85
92
|
// Search with scope name for bare scopes
|
|
86
93
|
if (!modelComponent && !legacyId.scope) {
|
|
87
94
|
id = id.changeScope(this.scope.name);
|
|
88
|
-
modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id
|
|
95
|
+
modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);
|
|
89
96
|
}
|
|
90
97
|
if (!modelComponent) return undefined;
|
|
91
|
-
const versionStr = id.
|
|
98
|
+
const versionStr = id.hasVersion() ? id.version : modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);
|
|
99
|
+
if (versionStr === _modelComponent().VERSION_ZERO) return undefined;
|
|
92
100
|
const newId = id.changeVersion(versionStr);
|
|
93
101
|
const version = await modelComponent.loadVersion(versionStr, this.scope.legacyScope.objects);
|
|
94
102
|
const snap = await this.getHeadSnap(modelComponent);
|
|
@@ -115,11 +123,11 @@ class ScopeComponentLoader {
|
|
|
115
123
|
*/
|
|
116
124
|
async getRemoteComponent(id) {
|
|
117
125
|
const compImport = this.scope.legacyScope.scopeImporter;
|
|
118
|
-
const objectList = await compImport.getRemoteComponent(id
|
|
126
|
+
const objectList = await compImport.getRemoteComponent(id);
|
|
119
127
|
// it's crucial to add all objects to the Repository cache. otherwise, later, when it asks
|
|
120
128
|
// for the consumerComponent from the legacyScope, it won't work.
|
|
121
129
|
objectList === null || objectList === void 0 || objectList.getAll().forEach(obj => this.scope.legacyScope.objects.setCache(obj));
|
|
122
|
-
const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id
|
|
130
|
+
const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);
|
|
123
131
|
return this.getFromConsumerComponent(consumerComponent);
|
|
124
132
|
}
|
|
125
133
|
|
|
@@ -128,7 +136,7 @@ class ScopeComponentLoader {
|
|
|
128
136
|
*/
|
|
129
137
|
async getManyRemoteComponents(ids) {
|
|
130
138
|
const compImport = this.scope.legacyScope.scopeImporter;
|
|
131
|
-
const legacyIds = ids.map(id => id
|
|
139
|
+
const legacyIds = ids.map(id => id);
|
|
132
140
|
const objectList = await compImport.getManyRemoteComponents(legacyIds);
|
|
133
141
|
// it's crucial to add all objects to the Repository cache. otherwise, later, when it asks
|
|
134
142
|
// for the consumerComponent from the legacyScope, it won't work.
|
|
@@ -174,7 +182,7 @@ class ScopeComponentLoader {
|
|
|
174
182
|
getFromCache(id) {
|
|
175
183
|
const idStr = id.toString();
|
|
176
184
|
const fromCache = this.componentsCache.get(idStr);
|
|
177
|
-
if (fromCache && fromCache.id.
|
|
185
|
+
if (fromCache && fromCache.id.isEqual(id)) {
|
|
178
186
|
return fromCache;
|
|
179
187
|
}
|
|
180
188
|
return undefined;
|
|
@@ -208,14 +216,14 @@ class ScopeComponentLoader {
|
|
|
208
216
|
}, version.log.message);
|
|
209
217
|
}
|
|
210
218
|
async createStateFromVersion(id, version) {
|
|
211
|
-
const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id
|
|
219
|
+
const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);
|
|
212
220
|
const state = new (_component().State)(
|
|
213
221
|
// We use here the consumerComponent.extensions instead of version.extensions
|
|
214
222
|
// because as part of the conversion to consumer component the artifacts are initialized as Artifact instances
|
|
215
223
|
new (_component().Config)(version.mainFile, consumerComponent.extensions),
|
|
216
224
|
// todo: see the comment of this "createAspectListFromLegacy" method. the aspect ids may be incorrect.
|
|
217
225
|
// find a better way to get the ids correctly.
|
|
218
|
-
this.scope.componentExtension.createAspectListFromLegacy(consumerComponent.extensions
|
|
226
|
+
this.scope.componentExtension.createAspectListFromLegacy(consumerComponent.extensions), _component().ComponentFS.fromVinyls(consumerComponent.files), version.dependencies, consumerComponent);
|
|
219
227
|
return state;
|
|
220
228
|
}
|
|
221
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_semver","_objects","_inMemoryCache","_cacheFactory","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ScopeComponentLoader","constructor","scope","logger","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","importedComponentsCache","maxAge","get","id","importIfMissing","useCache","fromCache","getFromCache","idStr","toString","debug","legacyId","_legacy","modelComponent","legacyScope","getModelComponentIfExist","hasScope","import","reason","set","changeScope","name","versionStr","version","getHeadRegardlessOfLaneAsTagOrHash","newId","changeVersion","loadVersion","objects","snap","getHeadSnap","state","createStateFromVersion","tagMap","getTagMap","component","Component","getFromConsumerComponent","consumerComponent","getModelComponent","resolveComponentId","pendingVersion","getRemoteComponent","compImport","scopeImporter","objectList","getAll","forEach","setCache","getConsumerComponent","getManyRemoteComponents","ids","legacyIds","map","pMapSeries","getState","hash","load","Ref","getSnap","getVersionObject","err","code","errMsg","error","Error","createSnapFromVersion","clearCache","deleteAll","isEqual","TagMap","allVersions","versionsIncludeOrphaned","keys","tag","Tag","SemVer","head","getHeadRegardlessOfLane","Snap","Date","parseInt","log","date","parents","p","displayName","username","email","message","State","Config","mainFile","extensions","componentExtension","createAspectListFromLegacy","ComponentFS","fromVinyls","files","dependencies","exports"],"sources":["scope-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, Snap, State, Tag, TagMap } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Logger } from '@teambit/logger';\nimport { SemVer } from 'semver';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ModelComponent, Version } from '@teambit/legacy/dist/scope/models';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport type { ScopeMain } from './scope.main.runtime';\n\nexport class ScopeComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private importedComponentsCache: InMemoryCache<boolean>;\n constructor(private scope: ScopeMain, private logger: Logger) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.importedComponentsCache = createInMemoryCache({ maxAge: 1000 * 60 * 30 }); // 30 min\n }\n\n async get(id: ComponentID, importIfMissing = true, useCache = true): Promise<Component | undefined> {\n const fromCache = this.getFromCache(id);\n if (fromCache && useCache) {\n return fromCache;\n }\n const idStr = id.toString();\n this.logger.debug(`ScopeComponentLoader.get, loading ${idStr}`);\n const legacyId = id._legacy;\n let modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id._legacy);\n // import if missing\n if (\n !modelComponent &&\n importIfMissing &&\n id._legacy.hasScope() &&\n !this.importedComponentsCache.get(id.toString())\n ) {\n await this.scope.import([id], { reason: `${id.toString()} because it's missing from the local scope` });\n this.importedComponentsCache.set(id.toString(), true);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id._legacy);\n }\n // Search with scope name for bare scopes\n if (!modelComponent && !legacyId.scope) {\n id = id.changeScope(this.scope.name);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id._legacy);\n }\n if (!modelComponent) return undefined;\n\n const versionStr =\n id.version && id.version !== 'latest' ? id.version : modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);\n const newId = id.changeVersion(versionStr);\n const version = await modelComponent.loadVersion(versionStr, this.scope.legacyScope.objects);\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version);\n const tagMap = this.getTagMap(modelComponent);\n\n const component = new Component(newId, snap, state, tagMap, this.scope);\n this.componentsCache.set(idStr, component);\n return component;\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n const legacyId = consumerComponent.id;\n const modelComponent = await this.scope.legacyScope.getModelComponent(legacyId);\n // :TODO move to head snap once we have it merged, for now using `latest`.\n const id = await this.scope.resolveComponentId(legacyId);\n const version =\n consumerComponent.pendingVersion ||\n (await modelComponent.loadVersion(legacyId.version as string, this.scope.legacyScope.objects));\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version);\n const tagMap = this.getTagMap(modelComponent);\n\n return new Component(id, snap, state, tagMap, this.scope);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const objectList = await compImport.getRemoteComponent(id._legacy);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id._legacy);\n return this.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get components from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const legacyIds = ids.map((id) => id._legacy);\n const objectList = await compImport.getManyRemoteComponents(legacyIds);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n return pMapSeries(legacyIds, async (legacyId) => {\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(legacyId);\n return this.getFromConsumerComponent(consumerComponent);\n });\n }\n\n async getState(id: ComponentID, hash: string): Promise<State> {\n const version = (await this.scope.legacyScope.objects.load(new Ref(hash))) as Version;\n return this.createStateFromVersion(id, version);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const getVersionObject = async (): Promise<Version> => {\n try {\n const snap = await this.scope.legacyScope.objects.load(new Ref(hash), true);\n return snap as Version;\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n const errMsg = `fatal: snap \"${hash}\" file for component \"${id.toString()}\" was not found in the filesystem`;\n this.logger.error(errMsg, err);\n throw new Error(errMsg);\n } else {\n throw err;\n }\n }\n };\n const version = await getVersionObject();\n return this.createSnapFromVersion(version);\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID): Component | undefined {\n const idStr = id.toString();\n const fromCache = this.componentsCache.get(idStr);\n if (fromCache && fromCache.id._legacy.isEqual(id._legacy)) {\n return fromCache;\n }\n return undefined;\n }\n\n private getTagMap(modelComponent: ModelComponent): TagMap {\n const tagMap = new TagMap();\n const allVersions = modelComponent.versionsIncludeOrphaned;\n Object.keys(allVersions).forEach((versionStr: string) => {\n const tag = new Tag(allVersions[versionStr].toString(), new SemVer(versionStr));\n tagMap.set(tag.version, tag);\n });\n return tagMap;\n }\n\n private async getHeadSnap(modelComponent: ModelComponent): Promise<Snap | null> {\n const head = modelComponent.getHeadRegardlessOfLane();\n if (!head) {\n // happens for example when on main and merging a lane.\n return null;\n }\n const version = await modelComponent.loadVersion(head.toString(), this.scope.legacyScope.objects, false);\n if (!version) {\n // might happen when the component is just a dependency and a previous version was needed.\n return null;\n }\n return this.createSnapFromVersion(version);\n }\n\n private createSnapFromVersion(version: Version): Snap {\n return new Snap(\n version.hash().toString(),\n new Date(parseInt(version.log.date)),\n version.parents.map((p) => p.toString()),\n {\n displayName: version.log.username || 'unknown',\n email: version.log.email || 'unknown@anywhere',\n },\n version.log.message\n );\n }\n\n private async createStateFromVersion(id: ComponentID, version: Version): Promise<State> {\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id._legacy);\n const state = new State(\n // We use here the consumerComponent.extensions instead of version.extensions\n // because as part of the conversion to consumer component the artifacts are initialized as Artifact instances\n new Config(version.mainFile, consumerComponent.extensions),\n // todo: see the comment of this \"createAspectListFromLegacy\" method. the aspect ids may be incorrect.\n // find a better way to get the ids correctly.\n this.scope.componentExtension.createAspectListFromLegacy(consumerComponent.extensions, this.scope.name),\n ComponentFS.fromVinyls(consumerComponent.files),\n version.dependencies,\n consumerComponent\n );\n return state;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_semver","_objects","_modelComponent","_inMemoryCache","_cacheFactory","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ScopeComponentLoader","constructor","scope","logger","componentsCache","createInMemoryCache","maxSize","getMaxSizeForComponents","importedComponentsCache","maxAge","get","id","importIfMissing","useCache","fromCache","getFromCache","idStr","toString","debug","legacyId","modelComponent","legacyScope","getModelComponentIfExist","isExported","import","reason","set","changeScope","name","versionStr","hasVersion","version","getHeadRegardlessOfLaneAsTagOrHash","VERSION_ZERO","newId","changeVersion","loadVersion","objects","snap","getHeadSnap","state","createStateFromVersion","tagMap","getTagMap","component","Component","getFromConsumerComponent","consumerComponent","getModelComponent","resolveComponentId","pendingVersion","getRemoteComponent","compImport","scopeImporter","objectList","getAll","forEach","setCache","getConsumerComponent","getManyRemoteComponents","ids","legacyIds","map","pMapSeries","getState","hash","load","Ref","getSnap","getVersionObject","err","code","errMsg","error","Error","createSnapFromVersion","clearCache","deleteAll","isEqual","TagMap","allVersions","versionsIncludeOrphaned","keys","tag","Tag","SemVer","head","getHeadRegardlessOfLane","Snap","Date","parseInt","log","date","parents","p","displayName","username","email","message","State","Config","mainFile","extensions","componentExtension","createAspectListFromLegacy","ComponentFS","fromVinyls","files","dependencies","exports"],"sources":["scope-component-loader.ts"],"sourcesContent":["import { Component, ComponentFS, ComponentID, Config, Snap, State, Tag, TagMap } from '@teambit/component';\nimport pMapSeries from 'p-map-series';\nimport { Logger } from '@teambit/logger';\nimport { SemVer } from 'semver';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { ModelComponent, Version } from '@teambit/legacy/dist/scope/models';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { VERSION_ZERO } from '@teambit/legacy/dist/scope/models/model-component';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport type { ScopeMain } from './scope.main.runtime';\n\nexport class ScopeComponentLoader {\n private componentsCache: InMemoryCache<Component>; // cache loaded components\n private importedComponentsCache: InMemoryCache<boolean>;\n constructor(private scope: ScopeMain, private logger: Logger) {\n this.componentsCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n this.importedComponentsCache = createInMemoryCache({ maxAge: 1000 * 60 * 30 }); // 30 min\n }\n\n async get(id: ComponentID, importIfMissing = true, useCache = true): Promise<Component | undefined> {\n const fromCache = this.getFromCache(id);\n if (fromCache && useCache) {\n return fromCache;\n }\n const idStr = id.toString();\n this.logger.debug(`ScopeComponentLoader.get, loading ${idStr}`);\n const legacyId = id;\n let modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n // import if missing\n if (\n !modelComponent &&\n importIfMissing &&\n this.scope.isExported(id) &&\n !this.importedComponentsCache.get(id.toString())\n ) {\n await this.scope.import([id], { reason: `${id.toString()} because it's missing from the local scope` });\n this.importedComponentsCache.set(id.toString(), true);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n }\n // Search with scope name for bare scopes\n if (!modelComponent && !legacyId.scope) {\n id = id.changeScope(this.scope.name);\n modelComponent = await this.scope.legacyScope.getModelComponentIfExist(id);\n }\n if (!modelComponent) return undefined;\n\n const versionStr = id.hasVersion()\n ? (id.version as string)\n : modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);\n\n if (versionStr === VERSION_ZERO) return undefined;\n const newId = id.changeVersion(versionStr);\n const version = await modelComponent.loadVersion(versionStr, this.scope.legacyScope.objects);\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version);\n const tagMap = this.getTagMap(modelComponent);\n\n const component = new Component(newId, snap, state, tagMap, this.scope);\n this.componentsCache.set(idStr, component);\n return component;\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n const legacyId = consumerComponent.id;\n const modelComponent = await this.scope.legacyScope.getModelComponent(legacyId);\n // :TODO move to head snap once we have it merged, for now using `latest`.\n const id = await this.scope.resolveComponentId(legacyId);\n const version =\n consumerComponent.pendingVersion ||\n (await modelComponent.loadVersion(legacyId.version as string, this.scope.legacyScope.objects));\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version);\n const tagMap = this.getTagMap(modelComponent);\n\n return new Component(id, snap, state, tagMap, this.scope);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const objectList = await compImport.getRemoteComponent(id);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);\n return this.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get components from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n const compImport = this.scope.legacyScope.scopeImporter;\n const legacyIds = ids.map((id) => id);\n const objectList = await compImport.getManyRemoteComponents(legacyIds);\n // it's crucial to add all objects to the Repository cache. otherwise, later, when it asks\n // for the consumerComponent from the legacyScope, it won't work.\n objectList?.getAll().forEach((obj) => this.scope.legacyScope.objects.setCache(obj));\n return pMapSeries(legacyIds, async (legacyId) => {\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(legacyId);\n return this.getFromConsumerComponent(consumerComponent);\n });\n }\n\n async getState(id: ComponentID, hash: string): Promise<State> {\n const version = (await this.scope.legacyScope.objects.load(new Ref(hash))) as Version;\n return this.createStateFromVersion(id, version);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const getVersionObject = async (): Promise<Version> => {\n try {\n const snap = await this.scope.legacyScope.objects.load(new Ref(hash), true);\n return snap as Version;\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n const errMsg = `fatal: snap \"${hash}\" file for component \"${id.toString()}\" was not found in the filesystem`;\n this.logger.error(errMsg, err);\n throw new Error(errMsg);\n } else {\n throw err;\n }\n }\n };\n const version = await getVersionObject();\n return this.createSnapFromVersion(version);\n }\n\n clearCache() {\n this.componentsCache.deleteAll();\n }\n\n /**\n * make sure that not only the id-str match, but also the legacy-id.\n * this is needed because the ComponentID.toString() is the same whether or not the legacy-id has\n * scope-name, as it includes the defaultScope if the scope is empty.\n * as a result, when out-of-sync is happening and the id is changed to include scope-name in the\n * legacy-id, the component is the cache has the old id.\n */\n private getFromCache(id: ComponentID): Component | undefined {\n const idStr = id.toString();\n const fromCache = this.componentsCache.get(idStr);\n if (fromCache && fromCache.id.isEqual(id)) {\n return fromCache;\n }\n return undefined;\n }\n\n private getTagMap(modelComponent: ModelComponent): TagMap {\n const tagMap = new TagMap();\n const allVersions = modelComponent.versionsIncludeOrphaned;\n Object.keys(allVersions).forEach((versionStr: string) => {\n const tag = new Tag(allVersions[versionStr].toString(), new SemVer(versionStr));\n tagMap.set(tag.version, tag);\n });\n return tagMap;\n }\n\n private async getHeadSnap(modelComponent: ModelComponent): Promise<Snap | null> {\n const head = modelComponent.getHeadRegardlessOfLane();\n if (!head) {\n // happens for example when on main and merging a lane.\n return null;\n }\n const version = await modelComponent.loadVersion(head.toString(), this.scope.legacyScope.objects, false);\n if (!version) {\n // might happen when the component is just a dependency and a previous version was needed.\n return null;\n }\n return this.createSnapFromVersion(version);\n }\n\n private createSnapFromVersion(version: Version): Snap {\n return new Snap(\n version.hash().toString(),\n new Date(parseInt(version.log.date)),\n version.parents.map((p) => p.toString()),\n {\n displayName: version.log.username || 'unknown',\n email: version.log.email || 'unknown@anywhere',\n },\n version.log.message\n );\n }\n\n private async createStateFromVersion(id: ComponentID, version: Version): Promise<State> {\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(id);\n const state = new State(\n // We use here the consumerComponent.extensions instead of version.extensions\n // because as part of the conversion to consumer component the artifacts are initialized as Artifact instances\n new Config(version.mainFile, consumerComponent.extensions),\n // todo: see the comment of this \"createAspectListFromLegacy\" method. the aspect ids may be incorrect.\n // find a better way to get the ids correctly.\n this.scope.componentExtension.createAspectListFromLegacy(consumerComponent.extensions),\n ComponentFS.fromVinyls(consumerComponent.files),\n version.dependencies,\n consumerComponent\n );\n return state;\n }\n}\n"],"mappings":"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"}
|
package/dist/scope.graphql.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare function scopeSchema(scopeMain: ScopeMain): {
|
|
|
24
24
|
}) => Promise<string[]>;
|
|
25
25
|
getLogs: (scope: ScopeMain, { id }: {
|
|
26
26
|
id: string;
|
|
27
|
-
}) => Promise<import("@teambit/legacy
|
|
27
|
+
}) => Promise<import("@teambit/legacy-component-log").LegacyComponentLog[]>;
|
|
28
28
|
getMany: (scope: ScopeMain, { ids }: {
|
|
29
29
|
ids: string[];
|
|
30
30
|
}) => Promise<import("@teambit/component").Component[]>;
|
|
@@ -5,18 +5,17 @@ import { RawBuilderData } from '@teambit/builder';
|
|
|
5
5
|
import { AspectDefinition } from '@teambit/aspect-loader';
|
|
6
6
|
import { CLIMain } from '@teambit/cli';
|
|
7
7
|
import type { ComponentMain, ComponentMap, ResolveAspectsOptions } from '@teambit/component';
|
|
8
|
-
import { Component, ComponentFactory,
|
|
8
|
+
import { Component, ComponentFactory, Snap, State } from '@teambit/component';
|
|
9
9
|
import type { GraphqlMain } from '@teambit/graphql';
|
|
10
10
|
import { Harmony, SlotRegistry } from '@teambit/harmony';
|
|
11
11
|
import { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';
|
|
12
12
|
import { LoggerMain, Logger } from '@teambit/logger';
|
|
13
13
|
import { ExpressMain } from '@teambit/express';
|
|
14
14
|
import type { UiMain } from '@teambit/ui';
|
|
15
|
-
import {
|
|
16
|
-
import { BitIds as ComponentsIds } from '@teambit/legacy/dist/bit-id';
|
|
15
|
+
import { ComponentIdList, ComponentID } from '@teambit/component-id';
|
|
17
16
|
import { ModelComponent, Lane, Version } from '@teambit/legacy/dist/scope/models';
|
|
18
17
|
import LegacyScope, { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';
|
|
19
|
-
import { ComponentLog } from '@teambit/legacy
|
|
18
|
+
import { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';
|
|
20
19
|
import { PersistOptions } from '@teambit/legacy/dist/scope/types';
|
|
21
20
|
import { DependencyResolverMain, NodeLinker } from '@teambit/dependency-resolver';
|
|
22
21
|
import { Remotes } from '@teambit/legacy/dist/remotes';
|
|
@@ -28,6 +27,7 @@ import { RequireableComponent } from '@teambit/harmony.modules.requireable-compo
|
|
|
28
27
|
import { SnapsDistance } from '@teambit/legacy/dist/scope/component-ops/snaps-distance';
|
|
29
28
|
import { AuthData } from '@teambit/legacy/dist/scope/network/http/http';
|
|
30
29
|
import ConsumerComponent from '@teambit/legacy/dist/consumer/component';
|
|
30
|
+
import { BitId } from '@teambit/legacy-bit-id';
|
|
31
31
|
import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';
|
|
32
32
|
import { EnvsMain } from '@teambit/envs';
|
|
33
33
|
import { ScopeComponentLoader } from './scope-component-loader';
|
|
@@ -179,10 +179,8 @@ export declare class ScopeMain implements ComponentFactory {
|
|
|
179
179
|
/**
|
|
180
180
|
* Will fetch a list of components into the current scope.
|
|
181
181
|
* This will only fetch the object and won't write the files to the actual FS
|
|
182
|
-
*
|
|
183
|
-
* @param {ComponentsIds} ids list of ids to fetch
|
|
184
182
|
*/
|
|
185
|
-
fetch(ids:
|
|
183
|
+
fetch(ids: ComponentIdList): void;
|
|
186
184
|
/**
|
|
187
185
|
* This function will get a component and sealed it's current state into the scope
|
|
188
186
|
*
|
|
@@ -195,6 +193,7 @@ export declare class ScopeMain implements ComponentFactory {
|
|
|
195
193
|
force: boolean;
|
|
196
194
|
lanes: boolean;
|
|
197
195
|
}, headers?: Record<string, any>): Promise<import("@teambit/legacy/dist/scope/removed-components").RemovedObjectSerialized>;
|
|
196
|
+
isExported(id: ComponentID): boolean;
|
|
198
197
|
/**
|
|
199
198
|
* for long-running processes, such as `bit start` or `bit watch`, it's important to keep the following data up to date:
|
|
200
199
|
* 1. scope-index (.bit/index.json file).
|
|
@@ -307,9 +306,9 @@ export declare class ScopeMain implements ComponentFactory {
|
|
|
307
306
|
* resolve a component ID.
|
|
308
307
|
* @param id component ID.
|
|
309
308
|
*/
|
|
310
|
-
resolveComponentId(id: string |
|
|
309
|
+
resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID>;
|
|
311
310
|
private resolveComponentIdFromBitId;
|
|
312
|
-
resolveMultipleComponentIds(ids: Array<string | ComponentID |
|
|
311
|
+
resolveMultipleComponentIds(ids: Array<string | ComponentID | ComponentID>): Promise<ComponentID[]>;
|
|
313
312
|
/**
|
|
314
313
|
* @deprecated use `this.idsByPattern` instead for consistency, which supports also negation and list of patterns.
|
|
315
314
|
*/
|
|
@@ -324,6 +323,9 @@ export declare class ScopeMain implements ComponentFactory {
|
|
|
324
323
|
getSnapDistance(id: ComponentID, throws?: boolean): Promise<SnapsDistance>;
|
|
325
324
|
getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined>;
|
|
326
325
|
resumeExport(exportId: string, remotes: string[]): Promise<string[]>;
|
|
326
|
+
/**
|
|
327
|
+
* @deprecated use `this.resolveComponentId` instead.
|
|
328
|
+
*/
|
|
327
329
|
resolveId(id: string): Promise<ComponentID>;
|
|
328
330
|
_legacyRemotes(): Promise<Remotes>;
|
|
329
331
|
/**
|
|
@@ -116,16 +116,9 @@ function _ui() {
|
|
|
116
116
|
};
|
|
117
117
|
return data;
|
|
118
118
|
}
|
|
119
|
-
function
|
|
120
|
-
const data = require("@teambit/
|
|
121
|
-
|
|
122
|
-
return data;
|
|
123
|
-
};
|
|
124
|
-
return data;
|
|
125
|
-
}
|
|
126
|
-
function _bitId() {
|
|
127
|
-
const data = require("@teambit/legacy/dist/bit-id");
|
|
128
|
-
_bitId = function () {
|
|
119
|
+
function _componentId() {
|
|
120
|
+
const data = require("@teambit/component-id");
|
|
121
|
+
_componentId = function () {
|
|
129
122
|
return data;
|
|
130
123
|
};
|
|
131
124
|
return data;
|
|
@@ -228,6 +221,13 @@ function _constants() {
|
|
|
228
221
|
};
|
|
229
222
|
return data;
|
|
230
223
|
}
|
|
224
|
+
function _legacyBitId() {
|
|
225
|
+
const data = require("@teambit/legacy-bit-id");
|
|
226
|
+
_legacyBitId = function () {
|
|
227
|
+
return data;
|
|
228
|
+
};
|
|
229
|
+
return data;
|
|
230
|
+
}
|
|
231
231
|
function _config() {
|
|
232
232
|
const data = require("@teambit/legacy/dist/consumer/config");
|
|
233
233
|
_config = function () {
|
|
@@ -477,7 +477,7 @@ class ScopeMain {
|
|
|
477
477
|
return builderExtension;
|
|
478
478
|
};
|
|
479
479
|
return builderDataComponentMap.toArray().map(([component, builderData]) => ({
|
|
480
|
-
id: component.id
|
|
480
|
+
id: component.id,
|
|
481
481
|
builderData: builderDataToLegacyExtension(component, builderData)
|
|
482
482
|
}));
|
|
483
483
|
}
|
|
@@ -517,8 +517,6 @@ class ScopeMain {
|
|
|
517
517
|
/**
|
|
518
518
|
* Will fetch a list of components into the current scope.
|
|
519
519
|
* This will only fetch the object and won't write the files to the actual FS
|
|
520
|
-
*
|
|
521
|
-
* @param {ComponentsIds} ids list of ids to fetch
|
|
522
520
|
*/
|
|
523
521
|
fetch(ids) {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
524
522
|
|
|
@@ -547,7 +545,7 @@ class ScopeMain {
|
|
|
547
545
|
auth: authData,
|
|
548
546
|
headers
|
|
549
547
|
};
|
|
550
|
-
const componentIds = lanes ? [] : ids.map(id =>
|
|
548
|
+
const componentIds = lanes ? [] : ids.map(id => _componentId().ComponentID.fromString(id));
|
|
551
549
|
await (0, _pMapSeries().default)(fns, async fn => {
|
|
552
550
|
try {
|
|
553
551
|
await fn({
|
|
@@ -559,6 +557,9 @@ class ScopeMain {
|
|
|
559
557
|
});
|
|
560
558
|
return result;
|
|
561
559
|
}
|
|
560
|
+
isExported(id) {
|
|
561
|
+
return this.legacyScope.isExported(id);
|
|
562
|
+
}
|
|
562
563
|
|
|
563
564
|
/**
|
|
564
565
|
* for long-running processes, such as `bit start` or `bit watch`, it's important to keep the following data up to date:
|
|
@@ -601,7 +602,7 @@ class ScopeMain {
|
|
|
601
602
|
if (!ids || !ids.length) ids = (await this.list()).map(comp => comp.id) || [];
|
|
602
603
|
const components = await this.getMany(ids);
|
|
603
604
|
const allFlattened = components.map(component => component.state._consumer.getAllFlattenedDependencies()).flat();
|
|
604
|
-
const allFlattenedUniq =
|
|
605
|
+
const allFlattenedUniq = _componentId().ComponentIdList.uniqFromArray(allFlattened);
|
|
605
606
|
await this.legacyScope.scopeImporter.importWithoutDeps(allFlattenedUniq, {
|
|
606
607
|
cache: true,
|
|
607
608
|
reason: `which are unique flattened dependencies to get the graph of ${ids.length} ids`
|
|
@@ -652,10 +653,10 @@ class ScopeMain {
|
|
|
652
653
|
reason: `to build graph-ids from the scope`
|
|
653
654
|
});
|
|
654
655
|
const allFlattened = componentsWithoutSavedGraph.map(component => component.state._consumer.getAllFlattenedDependencies()).flat();
|
|
655
|
-
const allFlattenedUniq =
|
|
656
|
+
const allFlattenedUniq = _componentId().ComponentIdList.uniqFromArray(allFlattened);
|
|
656
657
|
const addEdges = (compId, dependencies, label) => {
|
|
657
658
|
dependencies.get().forEach(dep => {
|
|
658
|
-
const depId =
|
|
659
|
+
const depId = dep.id;
|
|
659
660
|
graph.setNode(new (_graph().Node)(depId.toString(), depId));
|
|
660
661
|
graph.setEdge(new (_graph().Edge)(compId.toString(), depId.toString(), label));
|
|
661
662
|
});
|
|
@@ -666,8 +667,7 @@ class ScopeMain {
|
|
|
666
667
|
version,
|
|
667
668
|
versionStr
|
|
668
669
|
}) => {
|
|
669
|
-
const
|
|
670
|
-
const compId = this.resolveComponentIdFromBitId(compBitId);
|
|
670
|
+
const compId = component.toComponentId().changeVersion(versionStr);
|
|
671
671
|
graph.setNode(new (_graph().Node)(compId.toString(), compId));
|
|
672
672
|
addEdges(compId, version.dependencies, 'prod');
|
|
673
673
|
addEdges(compId, version.devDependencies, 'dev');
|
|
@@ -684,10 +684,10 @@ class ScopeMain {
|
|
|
684
684
|
return null;
|
|
685
685
|
}
|
|
686
686
|
const edges = flattenedEdges.map(edge => _objectSpread(_objectSpread({}, edge), {}, {
|
|
687
|
-
source:
|
|
688
|
-
target:
|
|
687
|
+
source: edge.source,
|
|
688
|
+
target: edge.target
|
|
689
689
|
}));
|
|
690
|
-
const nodes = consumerComponent.flattenedDependencies
|
|
690
|
+
const nodes = consumerComponent.flattenedDependencies;
|
|
691
691
|
const graph = new (_graph().Graph)();
|
|
692
692
|
nodes.forEach(node => graph.setNode(new (_graph().Node)(node.toString(), node)));
|
|
693
693
|
edges.forEach(edge => graph.setEdge(new (_graph().Edge)(edge.source.toString(), edge.target.toString(), edge.type)));
|
|
@@ -704,16 +704,11 @@ class ScopeMain {
|
|
|
704
704
|
lane,
|
|
705
705
|
reason
|
|
706
706
|
} = {}) {
|
|
707
|
-
const
|
|
708
|
-
|
|
709
|
-
if (legacyId.scope === this.name) return legacyId.changeScope(null);
|
|
710
|
-
return legacyId;
|
|
711
|
-
});
|
|
712
|
-
const withoutOwnScopeAndLocals = legacyIds.filter(id => {
|
|
713
|
-
return id.scope !== this.name && id.hasScope();
|
|
707
|
+
const withoutOwnScopeAndLocals = ids.filter(id => {
|
|
708
|
+
return id.scope !== this.name && id._legacy.hasScope();
|
|
714
709
|
});
|
|
715
710
|
await this.legacyScope.scopeImporter.importMany({
|
|
716
|
-
ids:
|
|
711
|
+
ids: _componentId().ComponentIdList.fromArray(withoutOwnScopeAndLocals),
|
|
717
712
|
cache: useCache,
|
|
718
713
|
throwForDependencyNotFound: false,
|
|
719
714
|
reFetchUnBuiltVersion,
|
|
@@ -774,7 +769,7 @@ class ScopeMain {
|
|
|
774
769
|
return cacheFilter && lanesFilter;
|
|
775
770
|
};
|
|
776
771
|
const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);
|
|
777
|
-
let ids = modelComponentsToList.map(component =>
|
|
772
|
+
let ids = modelComponentsToList.map(component => _componentId().ComponentID.fromLegacy(component.toBitIdWithLatestVersion(), component.scope || this.name));
|
|
778
773
|
if (patterns && patterns.length > 0) {
|
|
779
774
|
ids = ids.filter(id => patterns === null || patterns === void 0 ? void 0 : patterns.some(pattern => (0, _workspaceModules().isMatchNamespacePatternItem)(id.toStringWithoutVersion(), pattern).match));
|
|
780
775
|
}
|
|
@@ -791,7 +786,7 @@ class ScopeMain {
|
|
|
791
786
|
const opts = {
|
|
792
787
|
includeVersion: true
|
|
793
788
|
};
|
|
794
|
-
return this.legacyScope.hasId(componentId
|
|
789
|
+
return this.legacyScope.hasId(componentId, opts);
|
|
795
790
|
}
|
|
796
791
|
async hasIdNested(componentId, includeCache = false) {
|
|
797
792
|
return this.hasId(componentId, includeCache);
|
|
@@ -847,7 +842,7 @@ class ScopeMain {
|
|
|
847
842
|
return this.componentLoader.getState(id, hash);
|
|
848
843
|
}
|
|
849
844
|
async getSnap(id, hash) {
|
|
850
|
-
const modelComponent = await this.legacyScope.getModelComponent(id
|
|
845
|
+
const modelComponent = await this.legacyScope.getModelComponent(id);
|
|
851
846
|
const ref = modelComponent.getRef(hash);
|
|
852
847
|
if (!ref) throw new Error(`ref was not found: ${id.toString()} with tag ${hash}`);
|
|
853
848
|
return this.componentLoader.getSnap(id, ref.toString());
|
|
@@ -857,7 +852,7 @@ class ScopeMain {
|
|
|
857
852
|
* get component log sorted by the timestamp in ascending order (from the earliest to the latest)
|
|
858
853
|
*/
|
|
859
854
|
async getLogs(id, shortHash = false, startsFrom) {
|
|
860
|
-
return this.legacyScope.loadComponentLogs(id
|
|
855
|
+
return this.legacyScope.loadComponentLogs(id, shortHash, startsFrom);
|
|
861
856
|
}
|
|
862
857
|
async getStagedConfig() {
|
|
863
858
|
const currentLaneId = this.legacyScope.getCurrentLaneId();
|
|
@@ -871,7 +866,7 @@ class ScopeMain {
|
|
|
871
866
|
async isComponentRemoved(id) {
|
|
872
867
|
const version = id.version;
|
|
873
868
|
if (!version) throw new Error(`isComponentRemoved expect to get version, got ${id.toString()}`);
|
|
874
|
-
const modelComponent = await this.legacyScope.getModelComponent(id
|
|
869
|
+
const modelComponent = await this.legacyScope.getModelComponent(id);
|
|
875
870
|
const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);
|
|
876
871
|
return versionObj.isRemoved();
|
|
877
872
|
}
|
|
@@ -894,10 +889,10 @@ class ScopeMain {
|
|
|
894
889
|
};
|
|
895
890
|
const IdToCheck = getIdToCheck();
|
|
896
891
|
const legacyId = await this.legacyScope.getParsedId(IdToCheck);
|
|
897
|
-
return
|
|
892
|
+
return legacyId;
|
|
898
893
|
}
|
|
899
894
|
resolveComponentIdFromBitId(id) {
|
|
900
|
-
return id.hasScope() ?
|
|
895
|
+
return id.hasScope() ? _componentId().ComponentID.fromLegacy(id) : _componentId().ComponentID.fromLegacy(id, this.name);
|
|
901
896
|
}
|
|
902
897
|
async resolveMultipleComponentIds(ids) {
|
|
903
898
|
return Promise.all(ids.map(async id => this.resolveComponentId(id)));
|
|
@@ -939,7 +934,7 @@ class ScopeMain {
|
|
|
939
934
|
patterns.unshift('**');
|
|
940
935
|
}
|
|
941
936
|
// check also as legacyId.toString, as it doesn't have the defaultScope
|
|
942
|
-
const idsToCheck = id => [id.toStringWithoutVersion(), id.
|
|
937
|
+
const idsToCheck = id => [id._legacy.toStringWithoutVersion(), id.toStringWithoutVersion()];
|
|
943
938
|
const idsFiltered = ids.filter(id => (0, _multimatch().default)(idsToCheck(id), patterns).length);
|
|
944
939
|
if (throwForNoMatch && !idsFiltered.length) {
|
|
945
940
|
throw new (_noIdMatchPattern().NoIdMatchPattern)(pattern);
|
|
@@ -947,13 +942,13 @@ class ScopeMain {
|
|
|
947
942
|
return idsFiltered;
|
|
948
943
|
}
|
|
949
944
|
async getSnapDistance(id, throws = true) {
|
|
950
|
-
const modelComp = await this.legacyScope.getModelComponent(id
|
|
945
|
+
const modelComp = await this.legacyScope.getModelComponent(id);
|
|
951
946
|
await modelComp.setDivergeData(this.legacyScope.objects, throws);
|
|
952
947
|
return modelComp.getDivergeData();
|
|
953
948
|
}
|
|
954
949
|
async getExactVersionBySemverRange(id, range) {
|
|
955
950
|
var _semver$maxSatisfying;
|
|
956
|
-
const modelComponent = await this.legacyScope.getModelComponent(id
|
|
951
|
+
const modelComponent = await this.legacyScope.getModelComponent(id);
|
|
957
952
|
const versions = modelComponent.listVersions();
|
|
958
953
|
return (_semver$maxSatisfying = _semver().default.maxSatisfying(versions, range, {
|
|
959
954
|
includePrerelease: true
|
|
@@ -962,9 +957,12 @@ class ScopeMain {
|
|
|
962
957
|
async resumeExport(exportId, remotes) {
|
|
963
958
|
return (0, _exportScopeComponents().resumeExport)(this.legacyScope, exportId, remotes);
|
|
964
959
|
}
|
|
960
|
+
|
|
961
|
+
/**
|
|
962
|
+
* @deprecated use `this.resolveComponentId` instead.
|
|
963
|
+
*/
|
|
965
964
|
async resolveId(id) {
|
|
966
|
-
|
|
967
|
-
return _component().ComponentID.fromLegacy(legacyId);
|
|
965
|
+
return this.resolveComponentId(id);
|
|
968
966
|
}
|
|
969
967
|
|
|
970
968
|
// TODO: add new API for this
|
|
@@ -981,11 +979,11 @@ class ScopeMain {
|
|
|
981
979
|
const results = await remote.list();
|
|
982
980
|
return results.map(({
|
|
983
981
|
id
|
|
984
|
-
}) =>
|
|
982
|
+
}) => id);
|
|
985
983
|
}
|
|
986
984
|
async getLegacyMinimal(id) {
|
|
987
985
|
try {
|
|
988
|
-
return await this.legacyScope.getConsumerComponent(id
|
|
986
|
+
return await this.legacyScope.getConsumerComponent(id);
|
|
989
987
|
} catch (err) {
|
|
990
988
|
var _await$this$get;
|
|
991
989
|
// in case the component is missing locally, this.get imports it.
|
|
@@ -998,7 +996,7 @@ class ScopeMain {
|
|
|
998
996
|
* It has data about the tags and the component head. It doesn't have any data about the source-files/artifacts etc.
|
|
999
997
|
*/
|
|
1000
998
|
async getBitObjectModelComponent(id, throwIfNotExist = false) {
|
|
1001
|
-
return throwIfNotExist ? this.legacyScope.getModelComponent(id
|
|
999
|
+
return throwIfNotExist ? this.legacyScope.getModelComponent(id) : this.legacyScope.getModelComponentIfExist(id);
|
|
1002
1000
|
}
|
|
1003
1001
|
|
|
1004
1002
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_globalConfig","data","_interopRequireDefault","require","_pMapSeries","_path","_graph","_semver","_multimatch","_builder","_aspectLoader","_cli","_component","_graphql","_harmony","_isolator","_logger","_express","_ui","_legacyBitId","_bitId","_objects","_scopeLoader","_actions","_dependencyResolver","_scopeRemotes","_workspaceModules","_scope","_chokidar","_objectList","_http","_scope2","_bitError","_exportScopeComponents","_constants","_config","_envs","_lodash","_exceptions","_scope3","_scope4","_scope5","_routes","_scopeComponentLoader","_scopeCmd","_stagedConfig","_noIdMatchPattern","_scopeAspectsLoader","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ScopeMain","constructor","harmony","legacyScope","componentExtension","config","postPutSlot","postDeleteSlot","postExportSlot","postObjectsPersist","preFetchObjects","isolator","aspectLoader","logger","envs","dependencyResolver","globalConfig","componentLoader","ScopeComponentLoader","name","icon","backgroundIconColor","description","path","isLegacy","isGlobalScope","GLOBAL_SCOPE","aspectsPackageManager","aspectsNodeLinker","reloadAspectsWithNewVersion","components","host","getHost","getUserAspectsIdsWithoutRootIds","allUserAspectIds","getUserAspects","rootIds","toObject","diffIds","difference","getAspectsByPreviouslyUsedVersion","harmonyIds","aspectsIds","aspectsP","map","component","newId","resolveComponentId","id","previouslyUsedVersion","version","newIdWithPreviouslyUsedVersion","changeVersion","includes","toString","Promise","all","idsToLoad","loadAspects","ids","throwOnError","neededFor","lane","opts","scopeAspectsLoader","getScopeAspectsLoader","resolveAspects","runtimeName","componentIds","getResolvedAspects","getIsolateAspectsOpts","getIsolateOpts","getAspectCapsulePath","shouldUseHashForCapsules","getManyByLegacy","mapSeries","getFromConsumerComponent","ScopeAspectsLoader","clearCache","debug","objects","builderDataMapToLegacyOnTagResults","builderDataComponentMap","builderDataToLegacyExtension","builderData","_component$state$aspe","existingBuilder","state","aspects","get","BuilderAspect","legacy","builderExtension","ExtensionDataEntry","toArray","_legacy","onPostPut","postPutFn","register","onPostDelete","postDeleteFn","registerOnPostExport","postExportFn","registerOnPreFetchObjects","preFetchObjectsFn","registerOnPostObjectsPersist","postObjectsPersistFn","fetch","persist","options","delete","force","lanes","headers","authData","getAuthDataFromHeader","authorization","result","remove","fns","values","metadata","auth","ComponentID","fromString","fn","err","error","watchScopeInternalFiles","scopeIndexFile","scopeIndex","getPath","remoteLanesDir","remoteLanes","basePath","pathsToWatch","watcher","chokidar","watch","on","join","filePath","reLoadScopeIndex","startsWith","removeFromCacheByFilePath","toObjectList","types","list","ObjectList","fromBitObjects","toJs","str","endsWith","replace","getGraph","comp","getMany","allFlattened","_consumer","getAllFlattenedDependencies","flat","allFlattenedUniq","BitIds","uniqFromArray","scopeImporter","importWithoutDeps","cache","reason","allFlattenedCompIds","resolveMultipleComponentIds","dependencies","allComponents","graph","Graph","setNode","Node","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","Error","setEdge","Edge","lifecycle","getGraphIds","componentsWithoutSavedGraph","compGraph","getSavedGraphOfComponentIfExist","merge","getCurrentLaneObject","import","c","reFetchUnBuiltVersion","addEdges","compId","label","depId","resolveComponentIdFromBitId","componentsAndVersions","getComponentsAndVersions","versionStr","compBitId","toBitId","devDependencies","extensionDependencies","consumerComponent","flattenedEdges","flattenedDependencies","edges","edge","source","target","nodes","node","type","useCache","preferDependencyGraph","legacyIds","legacyId","scope","changeScope","withoutOwnScopeAndLocals","hasScope","importMany","ComponentsIds","fromArray","throwForDependencyNotFound","getRemoteComponent","getManyRemoteComponents","includeCache","includeFromLanes","includeDeleted","patternsWithScope","namespaces","pattern","componentsIds","listIds","comps","limit","slice","offset","isDeleted","listInvalid","patterns","allModelComponents","filterByCacheAndLanes","modelComponent","cacheFilter","exists","lanesFilter","hasHead","modelComponentsToList","fromLegacy","toBitIdWithLatestVersion","some","isMatchNamespacePatternItem","toStringWithoutVersion","match","hasId","includeVersion","hasIdNested","throwIfNotExist","idsWithoutEmpty","compact","componentsP","getOrThrow","loadMany","loadApps","loadEnvs","load","loadManyCompsAspects","Components","loadCompAspects","ComponentNotFound","getState","hash","getSnap","getModelComponent","ref","getRef","getLogs","shortHash","startsFrom","loadComponentLogs","getStagedConfig","currentLaneId","getCurrentLaneId","StagedConfig","isComponentRemoved","versionObj","loadVersion","isRemoved","BitId","idStr","loadModelComponentByIdStr","getIdToCheck","IdToCheck","getParsedId","byPattern","idsByPattern","throwForNoMatch","BitError","filterIdsFromPoolIdsByPattern","split","p","trim","every","unshift","idsToCheck","idsFiltered","multimatch","NoIdMatchPattern","getSnapDistance","throws","modelComp","setDivergeData","getDivergeData","getExactVersionBySemverRange","range","_semver$maxSatisfying","versions","listVersions","semver","maxSatisfying","includePrerelease","resumeExport","exportId","remotes","resolveId","_legacyRemotes","getScopeRemotes","listRemoteScope","scopeName","remote","resolve","results","getLegacyMinimal","getConsumerComponent","_await$this$get","getBitObjectModelComponent","getModelComponentIfExist","getBitObjectVersion","_appData$data","_envsData$data","_envsData$data2","aspectIds","appData","appName","envsData","EnvsAspect","services","self","loadComponentsAspect","addAspectsFromConfigObject","configObject","extensionsFromConfigObject","ExtensionDataList","fromConfigObject","extensionDataList","mergeConfigs","extensions","filterRemovedExtensions","createAspectListFromExtensionDataList","entries","entry","extensionDataEntryToAspectEntry","createAspectListFromEntries","dataEntry","AspectEntry","getLastMergedPath","isModified","write","provider","componentExt","ui","graphql","cli","express","loggerMain","depsResolver","postObjectsPersistSlot","preFetchObjectsSlot","bitConfig","loadScopeIfExist","cwd","createLogger","ScopeAspect","registerOnStart","hasWorkspace","getNotLoadedConfiguredExtensions","ScopeCmd","onPutHook","getAuthData","token","Http","getToken","DEFAULT_AUTH_TYPE","credentials","onPostExportHook","onPostObjectsPersistHook","ExportPersist","PostSign","Scope","onPostExport","Repository","onPostObjectsPersist","PutRoute","FetchRoute","ActionRoute","DeleteRoute","registerUiRoot","ScopeUIRoot","scopeSchema","registerHost","exports","Slot","withType","MainRuntime","ComponentAspect","UIAspect","GraphqlAspect","CLIAspect","IsolatorAspect","AspectLoaderAspect","ExpressAspect","LoggerAspect","DependencyResolverAspect","GlobalConfigAspect","httpTimeOut","addRuntime"],"sources":["scope.main.runtime.ts"],"sourcesContent":["import GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport path from 'path';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport semver from 'semver';\nimport multimatch from 'multimatch';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { RawBuilderData, BuilderAspect } from '@teambit/builder';\nimport { AspectLoaderAspect, AspectDefinition } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport type { ComponentMain, ComponentMap, ResolveAspectsOptions } from '@teambit/component';\nimport {\n Component,\n ComponentAspect,\n ComponentFactory,\n ComponentID,\n Snap,\n State,\n AspectEntry,\n} from '@teambit/component';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { BitIds, BitIds as ComponentsIds } from '@teambit/legacy/dist/bit-id';\nimport { ModelComponent, Lane, Version } from '@teambit/legacy/dist/scope/models';\nimport { Repository } from '@teambit/legacy/dist/scope/objects';\nimport LegacyScope, { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { ComponentLog } from '@teambit/legacy/dist/scope/models/model-component';\nimport { loadScopeIfExist } from '@teambit/legacy/dist/scope/scope-loader';\nimport { PersistOptions } from '@teambit/legacy/dist/scope/types';\nimport { ExportPersist, PostSign } from '@teambit/legacy/dist/scope/actions';\nimport { DependencyResolverAspect, DependencyResolverMain, NodeLinker } from '@teambit/dependency-resolver';\nimport { getScopeRemotes } from '@teambit/legacy/dist/scope/scope-remotes';\nimport { Remotes } from '@teambit/legacy/dist/remotes';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport chokidar from '@teambit/chokidar';\nimport { Types } from '@teambit/legacy/dist/scope/object-registrar';\nimport { FETCH_OPTIONS } from '@teambit/legacy/dist/api/scope/lib/fetch';\nimport { ObjectList } from '@teambit/legacy/dist/scope/objects/object-list';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { SnapsDistance } from '@teambit/legacy/dist/scope/component-ops/snaps-distance';\nimport { Http, DEFAULT_AUTH_TYPE, AuthData, getAuthDataFromHeader } from '@teambit/legacy/dist/scope/network/http/http';\nimport { remove } from '@teambit/legacy/dist/api/scope';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { resumeExport } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport { GLOBAL_SCOPE } from '@teambit/legacy/dist/constants';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { compact, slice, difference } from 'lodash';\nimport { ComponentNotFound } from './exceptions';\nimport { ScopeAspect } from './scope.aspect';\nimport { scopeSchema } from './scope.graphql';\nimport { ScopeUIRoot } from './scope.ui-root';\nimport { PutRoute, FetchRoute, ActionRoute, DeleteRoute } from './routes';\nimport { ScopeComponentLoader } from './scope-component-loader';\nimport { ScopeCmd } from './scope-cmd';\nimport { StagedConfig } from './staged-config';\nimport { NoIdMatchPattern } from './exceptions/no-id-match-pattern';\nimport { ScopeAspectsLoader, ScopeLoadAspectsOptions } from './scope-aspects-loader';\n\ntype RemoteEventMetadata = { auth?: AuthData; headers?: {} };\ntype RemoteEvent<Data> = (data: Data, metadata: RemoteEventMetadata, errors?: Array<string | Error>) => Promise<void>;\ntype OnPostPutData = { ids: ComponentID[]; lanes: Lane[] };\ntype OnPostDeleteData = { ids: ComponentID[] };\ntype OnPreFetchObjectData = { ids: string[]; fetchOptions: FETCH_OPTIONS };\n\ntype OnPostPut = RemoteEvent<OnPostPutData>;\ntype OnPostExport = RemoteEvent<OnPostPutData>;\ntype OnPostDelete = RemoteEvent<OnPostDeleteData>;\ntype OnPostObjectsPersist = RemoteEvent<undefined>;\ntype OnPreFetchObjects = RemoteEvent<OnPreFetchObjectData>;\n\nexport type OnPostPutSlot = SlotRegistry<OnPostPut>;\nexport type OnPostDeleteSlot = SlotRegistry<OnPostDelete>;\nexport type OnPostExportSlot = SlotRegistry<OnPostExport>;\nexport type OnPostObjectsPersistSlot = SlotRegistry<OnPostObjectsPersist>;\nexport type OnPreFetchObjectsSlot = SlotRegistry<OnPreFetchObjects>;\nexport type LoadOptions = {\n /**\n * In case the component we are loading is app, whether to load it as app (in a scope aspects capsule)\n */\n loadApps?: boolean;\n /**\n * In case the component we are loading is env, whether to load it as env (in a scope aspects capsule)\n */\n loadEnvs?: boolean;\n};\n\nexport type ScopeConfig = {\n httpTimeOut: number;\n description?: string;\n icon?: string;\n backgroundIconColor?: string;\n /**\n * Set a different package manager for the aspects capsules\n */\n aspectsPackageManager?: string;\n /**\n * Set a different node linker for the aspects capsules\n */\n aspectsNodeLinker?: NodeLinker;\n};\n\nexport class ScopeMain implements ComponentFactory {\n componentLoader: ScopeComponentLoader;\n constructor(\n /**\n * private reference to the instance of Harmony.\n */\n private harmony: Harmony,\n /**\n * legacy scope\n */\n readonly legacyScope: LegacyScope,\n\n /**\n * component extension.\n */\n readonly componentExtension: ComponentMain,\n\n /**\n * slot registry for subscribing to build\n */\n\n readonly config: ScopeConfig,\n\n private postPutSlot: OnPostPutSlot,\n\n private postDeleteSlot: OnPostDeleteSlot,\n\n private postExportSlot: OnPostExportSlot,\n\n private postObjectsPersist: OnPostObjectsPersistSlot,\n\n public preFetchObjects: OnPreFetchObjectsSlot,\n\n private isolator: IsolatorMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private envs: EnvsMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n private globalConfig: GlobalConfigMain\n ) {\n this.componentLoader = new ScopeComponentLoader(this, this.logger);\n }\n\n priority?: boolean | undefined;\n\n localAspects: string[] = [];\n\n /**\n * name of the scope\n */\n get name(): string {\n return this.legacyScope.name;\n }\n\n get icon(): string | undefined {\n return this.config.icon;\n }\n\n get backgroundIconColor(): string | undefined {\n return this.config.backgroundIconColor;\n }\n\n get description(): string | undefined {\n return this.config.description;\n }\n\n get path(): string {\n return this.legacyScope.path;\n }\n\n get isLegacy(): boolean {\n return this.legacyScope.isLegacy;\n }\n\n get isGlobalScope(): boolean {\n return this.path === GLOBAL_SCOPE;\n }\n\n get aspectsPackageManager(): string | undefined {\n return this.config.aspectsPackageManager;\n }\n\n get aspectsNodeLinker(): NodeLinker | undefined {\n return this.config.aspectsNodeLinker;\n }\n\n // We need to reload the aspects with their new version since:\n // during get many by legacy, we go load component which in turn go to getEnv\n // get env validates that the env written on the component is really exist by checking the envs slot registry\n // when we load here, it's env version in the aspect list already has the new version in case the env itself is being tagged\n // so we are search for the env in the registry with the new version number\n // but since the env only registered during the on load of the bit process (before the tag) it's version in the registry is only the old one\n // once we reload them we will have it registered with the new version as well\n async reloadAspectsWithNewVersion(components: ConsumerComponent[]): Promise<void> {\n const host = this.componentExtension.getHost();\n\n // Return only aspects that defined on components but not in the root config file (workspace.jsonc/scope.jsonc)\n const getUserAspectsIdsWithoutRootIds = (): string[] => {\n const allUserAspectIds = this.aspectLoader.getUserAspects();\n const rootIds = Object.keys(this.harmony.config.toObject());\n const diffIds = difference(allUserAspectIds, rootIds);\n return diffIds;\n };\n\n // Based on the list of components to be tagged return those who are loaded to harmony with their used version\n const getAspectsByPreviouslyUsedVersion = async (): Promise<string[]> => {\n const harmonyIds = getUserAspectsIdsWithoutRootIds();\n const aspectsIds: string[] = [];\n const aspectsP = components.map(async (component) => {\n const newId = await host.resolveComponentId(component.id);\n if (\n component.previouslyUsedVersion &&\n component.version &&\n component.previouslyUsedVersion !== component.version\n ) {\n const newIdWithPreviouslyUsedVersion = newId.changeVersion(component.previouslyUsedVersion);\n if (harmonyIds.includes(newIdWithPreviouslyUsedVersion.toString())) {\n aspectsIds.push(newId.toString());\n }\n }\n });\n await Promise.all(aspectsP);\n return aspectsIds;\n };\n\n const idsToLoad = await getAspectsByPreviouslyUsedVersion();\n await host.loadAspects(idsToLoad, false, 'scope.reloadAspectsWithNewVersion');\n }\n\n loadAspects(\n ids: string[],\n throwOnError?: boolean | undefined,\n neededFor?: string | undefined,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.loadAspects(ids, throwOnError, neededFor, lane, opts);\n }\n resolveAspects(\n runtimeName?: string | undefined,\n componentIds?: ComponentID[] | undefined,\n opts?: ResolveAspectsOptions | undefined\n ): Promise<AspectDefinition[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.resolveAspects(runtimeName, componentIds, opts);\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getResolvedAspects(components, opts);\n }\n\n getIsolateAspectsOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getIsolateOpts(opts);\n }\n\n getAspectCapsulePath() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getAspectCapsulePath();\n }\n\n shouldUseHashForCapsules() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.shouldUseHashForCapsules();\n }\n\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]> {\n return mapSeries(components, async (component) => this.getFromConsumerComponent(component));\n }\n\n getScopeAspectsLoader(): ScopeAspectsLoader {\n const scopeAspectsLoader = new ScopeAspectsLoader(\n this,\n this.aspectLoader,\n this.envs,\n this.isolator,\n this.logger,\n this.globalConfig\n );\n return scopeAspectsLoader;\n }\n\n async clearCache() {\n this.logger.debug('clearing the components and the legacy cache');\n this.componentLoader.clearCache();\n await this.legacyScope.objects.clearCache();\n }\n\n builderDataMapToLegacyOnTagResults(builderDataComponentMap: ComponentMap<RawBuilderData>): LegacyOnTagResult[] {\n const builderDataToLegacyExtension = (component: Component, builderData: RawBuilderData) => {\n const existingBuilder = component.state.aspects.get(BuilderAspect.id)?.legacy;\n const builderExtension = existingBuilder || new ExtensionDataEntry(undefined, undefined, BuilderAspect.id);\n builderExtension.data = builderData;\n return builderExtension;\n };\n return builderDataComponentMap.toArray().map(([component, builderData]) => ({\n id: component.id._legacy,\n builderData: builderDataToLegacyExtension(component, builderData),\n }));\n }\n\n /**\n * register to the post-export slot.\n */\n onPostPut(postPutFn: OnPostPut) {\n this.postPutSlot.register(postPutFn);\n return this;\n }\n\n /**\n * register to the post-delete slot.\n */\n onPostDelete(postDeleteFn: OnPostDelete) {\n this.postDeleteSlot.register(postDeleteFn);\n return this;\n }\n\n /**\n * register to the post-export slot.\n */\n registerOnPostExport(postExportFn: OnPostExport) {\n this.postExportSlot.register(postExportFn);\n return this;\n }\n\n registerOnPreFetchObjects(preFetchObjectsFn: OnPreFetchObjects) {\n this.preFetchObjects.register(preFetchObjectsFn);\n return this;\n }\n\n registerOnPostObjectsPersist(postObjectsPersistFn: OnPostObjectsPersist) {\n this.postObjectsPersist.register(postObjectsPersistFn);\n return this;\n }\n\n /**\n * Will fetch a list of components into the current scope.\n * This will only fetch the object and won't write the files to the actual FS\n *\n * @param {ComponentsIds} ids list of ids to fetch\n */\n fetch(ids: ComponentsIds) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * This function will get a component and sealed it's current state into the scope\n *\n * @param {Component[]} components A list of components to seal with specific persist options (such as message and version number)\n * @param {PersistOptions} persistGeneralOptions General persistence options such as verbose\n */\n persist(components: Component[], options: PersistOptions) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n async delete(\n { ids, force, lanes }: { ids: string[]; force: boolean; lanes: boolean },\n headers?: Record<string, any>\n ) {\n const authData = getAuthDataFromHeader(headers?.authorization);\n const result = await remove({\n path: this.path,\n ids,\n force,\n lanes,\n });\n\n const fns = this.postDeleteSlot.values();\n const metadata = { auth: authData, headers };\n const componentIds = lanes ? [] : ids.map((id) => ComponentID.fromString(id));\n await mapSeries(fns, async (fn) => {\n try {\n await fn({ ids: componentIds }, metadata);\n } catch (err: any) {\n this.logger.error('failed to run delete slot', err);\n }\n });\n return result;\n }\n\n /**\n * for long-running processes, such as `bit start` or `bit watch`, it's important to keep the following data up to date:\n * 1. scope-index (.bit/index.json file).\n * 2. remote-refs (.bit/refs/*).\n * it's possible that other commands (e.g. `bit import`) modified these files, while these processes are running.\n * Because these data are kept in memory, they're not up to date anymore.\n */\n async watchScopeInternalFiles() {\n const scopeIndexFile = this.legacyScope.objects.scopeIndex.getPath();\n const remoteLanesDir = this.legacyScope.objects.remoteLanes.basePath;\n const pathsToWatch = [scopeIndexFile, remoteLanesDir];\n const watcher = chokidar.watch(pathsToWatch);\n watcher.on('ready', () => {\n this.logger.debug(`watchSystemFiles has started, watching ${pathsToWatch.join(', ')}`);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n if (filePath === scopeIndexFile) {\n this.logger.debug('scope index file has been changed, reloading it');\n await this.legacyScope.objects.reLoadScopeIndex();\n } else if (filePath.startsWith(remoteLanesDir)) {\n this.legacyScope.objects.remoteLanes.removeFromCacheByFilePath(filePath);\n } else {\n this.logger.error(\n 'unknown file has been changed, please check why it is watched by scope.watchSystemFiles',\n filePath\n );\n }\n });\n }\n\n async toObjectList(types: Types): Promise<ObjectList> {\n const objects = await this.legacyScope.objects.list(types);\n return ObjectList.fromBitObjects(objects);\n }\n\n // TODO: temporary compiler workaround - discuss this with david.\n private toJs(str: string) {\n if (str.endsWith('.ts')) return str.replace('.ts', '.js');\n return str;\n }\n\n async getGraph(ids?: ComponentID[]): Promise<Graph<Component, string>> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const allFlattened = components.map((component) => component.state._consumer.getAllFlattenedDependencies()).flat();\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened);\n await this.legacyScope.scopeImporter.importWithoutDeps(allFlattenedUniq, {\n cache: true,\n reason: `which are unique flattened dependencies to get the graph of ${ids.length} ids`,\n });\n const allFlattenedCompIds = await this.resolveMultipleComponentIds(allFlattenedUniq);\n const dependencies = await this.getMany(allFlattenedCompIds);\n const allComponents: Component[] = [...components, ...dependencies];\n\n // build the graph\n const graph = new Graph<Component, string>();\n allComponents.forEach((comp) => graph.setNode(new Node(comp.id.toString(), comp)));\n await Promise.all(\n allComponents.map(async (comp) => {\n const deps = await this.dependencyResolver.getComponentDependencies(comp);\n deps.forEach((dep) => {\n const depCompId = dep.componentId;\n if (!graph.hasNode(depCompId.toString())) {\n throw new Error(`scope.getGraph: missing node of ${depCompId.toString()}`);\n }\n graph.setEdge(new Edge(comp.id.toString(), depCompId.toString(), dep.lifecycle));\n });\n })\n );\n return graph;\n }\n\n async getGraphIds(ids?: ComponentID[]): Promise<CompIdGraph> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const graph = new Graph<ComponentID, DepEdgeType>();\n const componentsWithoutSavedGraph: Component[] = [];\n\n // try to add from saved graph\n components.forEach((component) => {\n const compGraph = this.getSavedGraphOfComponentIfExist(component);\n if (!compGraph) {\n componentsWithoutSavedGraph.push(component);\n return;\n }\n graph.merge([graph]);\n });\n if (!componentsWithoutSavedGraph.length) {\n return graph;\n }\n\n // there are components that don't have the graph saved, create the graph by using Version objects of all flattened\n const lane = (await this.legacyScope.getCurrentLaneObject()) || undefined;\n await this.import(\n componentsWithoutSavedGraph.map((c) => c.id),\n { reFetchUnBuiltVersion: false, lane, reason: `to build graph-ids from the scope` }\n );\n\n const allFlattened = componentsWithoutSavedGraph\n .map((component) => component.state._consumer.getAllFlattenedDependencies())\n .flat();\n const allFlattenedUniq = BitIds.uniqFromArray(allFlattened);\n\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n const depId = this.resolveComponentIdFromBitId(dep.id);\n graph.setNode(new Node(depId.toString(), depId));\n graph.setEdge(new Edge(compId.toString(), depId.toString(), label));\n });\n };\n const componentsAndVersions = await this.legacyScope.getComponentsAndVersions(allFlattenedUniq);\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compBitId = component.toBitId().changeVersion(versionStr);\n const compId = this.resolveComponentIdFromBitId(compBitId);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n\n return graph;\n }\n\n private getSavedGraphOfComponentIfExist(component: Component): Graph<ComponentID, DepEdgeType> | null {\n const consumerComponent = component.state._consumer as ConsumerComponent;\n const flattenedEdges = consumerComponent.flattenedEdges;\n if (!flattenedEdges.length && consumerComponent.flattenedDependencies.length) {\n // there are flattenedDependencies, so must be edges, if they're empty, it's because the component was tagged\n // with a version < ~0.0.901, so this flattenedEdges wasn't exist.\n return null;\n }\n const edges = flattenedEdges.map((edge) => ({\n ...edge,\n source: this.resolveComponentIdFromBitId(edge.source),\n target: this.resolveComponentIdFromBitId(edge.target),\n }));\n const nodes = consumerComponent.flattenedDependencies.map((depId) => this.resolveComponentIdFromBitId(depId));\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n nodes.forEach((node) => graph.setNode(new Node(node.toString(), node)));\n edges.forEach((edge) => graph.setEdge(new Edge(edge.source.toString(), edge.target.toString(), edge.type)));\n return graph;\n }\n\n /**\n * import components into the scope.\n */\n async import(\n ids: ComponentID[],\n {\n useCache = true,\n reFetchUnBuiltVersion = true,\n preferDependencyGraph = true,\n lane,\n reason,\n }: {\n /**\n * if the component exists locally, don't go to the server to search for updates.\n */\n useCache?: boolean;\n /**\n * if the Version objects exists locally, but its `buildStatus` is Pending or Failed, reach the remote to find\n * whether the version was already built there.\n */\n reFetchUnBuiltVersion?: boolean;\n /**\n * if the component is on a lane, provide the lane object. the component will be fetched from the lane-scope and\n * not from the component-scope.\n */\n lane?: Lane;\n /**\n * if an external is missing and the remote has it with the dependency graph, don't fetch all its dependencies\n */\n preferDependencyGraph?: boolean;\n /**\n * reason why this import is needed (to show in the terminal)\n */\n reason?: string;\n } = {}\n ): Promise<void> {\n const legacyIds = ids.map((id) => {\n const legacyId = id._legacy;\n if (legacyId.scope === this.name) return legacyId.changeScope(null);\n return legacyId;\n });\n\n const withoutOwnScopeAndLocals = legacyIds.filter((id) => {\n return id.scope !== this.name && id.hasScope();\n });\n await this.legacyScope.scopeImporter.importMany({\n ids: ComponentsIds.fromArray(withoutOwnScopeAndLocals),\n cache: useCache,\n throwForDependencyNotFound: false,\n reFetchUnBuiltVersion,\n lane,\n preferDependencyGraph,\n reason,\n });\n }\n\n async get(id: ComponentID, useCache = true): Promise<Component | undefined> {\n return this.componentLoader.get(id, undefined, useCache);\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n return this.componentLoader.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n return this.componentLoader.getRemoteComponent(id);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n return this.componentLoader.getManyRemoteComponents(ids);\n }\n\n /**\n * list all components in the scope.\n */\n async list(\n filter?: { offset: number; limit: number; namespaces?: string[] },\n includeCache = false,\n includeFromLanes = false,\n includeDeleted = false\n ): Promise<Component[]> {\n const patternsWithScope =\n (filter?.namespaces && filter?.namespaces.map((pattern) => `**/${pattern || '**'}`)) || undefined;\n const componentsIds = await this.listIds(includeCache, includeFromLanes, patternsWithScope);\n\n const comps = await this.getMany(\n filter && filter.limit ? slice(componentsIds, filter.offset, filter.offset + filter.limit) : componentsIds\n );\n\n return includeDeleted ? comps : comps.filter((comp) => !comp.isDeleted());\n }\n\n /**\n * for now, list of invalid components are mostly useful for the workspace.\n * in the future, this can return components that failed to load in the scope due to objects file\n * corruption or similar issues.\n */\n async listInvalid() {\n return [];\n }\n\n /**\n * get ids of all scope components.\n * @param includeCache whether or not include components that their scope-name is different than the current scope-name\n */\n async listIds(includeCache = false, includeFromLanes = false, patterns?: string[]): Promise<ComponentID[]> {\n const allModelComponents = await this.legacyScope.list();\n const filterByCacheAndLanes = (modelComponent: ModelComponent) => {\n const cacheFilter = includeCache ? true : this.exists(modelComponent);\n const lanesFilter = includeFromLanes ? true : modelComponent.hasHead();\n\n return cacheFilter && lanesFilter;\n };\n const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);\n let ids = modelComponentsToList.map((component) =>\n ComponentID.fromLegacy(component.toBitIdWithLatestVersion(), component.scope || this.name)\n );\n if (patterns && patterns.length > 0) {\n ids = ids.filter((id) =>\n patterns?.some((pattern) => isMatchNamespacePatternItem(id.toStringWithoutVersion(), pattern).match)\n );\n }\n this.logger.debug(`scope listIds: total ${ids.length} components after filter scope`);\n return ids;\n }\n\n /**\n * Check if a specific id exist in the scope\n * @param componentId\n */\n async hasId(componentId: ComponentID, includeCache = false): Promise<boolean> {\n if (!includeCache && componentId.scope !== this.name) return false;\n const opts = {\n includeVersion: true,\n };\n\n return this.legacyScope.hasId(componentId._legacy, opts);\n }\n\n async hasIdNested(componentId: ComponentID, includeCache = false): Promise<boolean> {\n return this.hasId(componentId, includeCache);\n }\n\n /**\n * determine whether a component exists in the scope.\n */\n exists(modelComponent: ModelComponent) {\n return modelComponent.scope === this.name;\n }\n\n async getMany(ids: ComponentID[], throwIfNotExist = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n return throwIfNotExist ? this.getOrThrow(id) : this.get(id);\n });\n const components = await componentsP;\n return compact(components);\n }\n\n /**\n * important! you probably want to use `getMany`, which returns the components from the scope.\n * this method loads all aspects of the loaded components. (which hurts performance)\n */\n async loadMany(\n ids: ComponentID[],\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true }\n ): Promise<Component[]> {\n const components = await mapSeries(ids, (id) => this.load(id, lane, opts));\n return compact(components);\n }\n\n async loadManyCompsAspects(Components: Component[], lane?: Lane): Promise<Component[]> {\n const components = await mapSeries(Components, (id) => this.loadCompAspects(id, lane));\n return compact(components);\n }\n\n /**\n * get a component and throw an exception if not found.\n * @param id component id\n */\n async getOrThrow(id: ComponentID): Promise<Component> {\n const component = await this.get(id);\n if (!component) throw new ComponentNotFound(id);\n return component;\n }\n\n /**\n * returns a specific state of a component.\n * @param id component ID.\n * @param hash state hash.\n */\n async getState(id: ComponentID, hash: string): Promise<State> {\n return this.componentLoader.getState(id, hash);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const ref = modelComponent.getRef(hash);\n if (!ref) throw new Error(`ref was not found: ${id.toString()} with tag ${hash}`);\n return this.componentLoader.getSnap(id, ref.toString());\n }\n\n /**\n * get component log sorted by the timestamp in ascending order (from the earliest to the latest)\n */\n async getLogs(id: ComponentID, shortHash = false, startsFrom?: string): Promise<ComponentLog[]> {\n return this.legacyScope.loadComponentLogs(id._legacy, shortHash, startsFrom);\n }\n\n async getStagedConfig() {\n const currentLaneId = this.legacyScope.getCurrentLaneId();\n return StagedConfig.load(this.path, this.logger, currentLaneId);\n }\n\n /**\n * wether a component is soft-removed.\n * the version is required as it can be removed on a lane. in which case, the version is the head in the lane.\n */\n async isComponentRemoved(id: ComponentID): Promise<Boolean> {\n const version = id.version;\n if (!version) throw new Error(`isComponentRemoved expect to get version, got ${id.toString()}`);\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);\n return versionObj.isRemoved();\n }\n\n /**\n * resolve a component ID.\n * @param id component ID.\n */\n async resolveComponentId(id: string | ComponentID | BitId): Promise<ComponentID> {\n if (id instanceof BitId) return this.resolveComponentIdFromBitId(id);\n const idStr = id.toString();\n const component = await this.legacyScope.loadModelComponentByIdStr(idStr);\n const getIdToCheck = () => {\n if (component) return idStr; // component exists in the scope with the scope-name.\n if (idStr.startsWith(`${this.name}/`)) {\n // component with the full name doesn't exist in the scope, it might be locally tagged\n return idStr.replace(`${this.name}/`, '');\n }\n return idStr;\n };\n const IdToCheck = getIdToCheck();\n const legacyId = await this.legacyScope.getParsedId(IdToCheck);\n return this.resolveComponentIdFromBitId(legacyId);\n }\n\n private resolveComponentIdFromBitId(id: BitId) {\n return id.hasScope() ? ComponentID.fromLegacy(id) : ComponentID.fromLegacy(id, this.name);\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | BitId>) {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * @deprecated use `this.idsByPattern` instead for consistency, which supports also negation and list of patterns.\n */\n async byPattern(patterns: string[], scope = '**'): Promise<Component[]> {\n const patternsWithScope = patterns.map((pattern) => `${scope}/${pattern || '**'}`);\n\n const ids = await this.listIds(true, false, patternsWithScope);\n\n const components = await this.getMany(ids);\n return components;\n }\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n async idsByPattern(pattern: string, throwForNoMatch = true): Promise<ComponentID[]> {\n if (!pattern.includes('*') && !pattern.includes(',')) {\n // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name\n const id = await this.resolveComponentId(pattern);\n const exists = await this.hasId(id, true);\n if (exists) return [id];\n if (throwForNoMatch) throw new BitError(`unable to find \"${pattern}\" in the scope`);\n return [];\n }\n const ids = await this.listIds(true);\n return this.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n // todo: move this to somewhere else (where?)\n filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch = true) {\n const patterns = pattern\n .split(',')\n .map((p) => p.trim())\n .map((p) => p.split('@')[0]); // no need for the version\n if (patterns.every((p) => p.startsWith('!'))) {\n // otherwise it'll never match anything. don't use \".push()\". it must be the first item in the array.\n patterns.unshift('**');\n }\n // check also as legacyId.toString, as it doesn't have the defaultScope\n const idsToCheck = (id: ComponentID) => [id.toStringWithoutVersion(), id._legacy.toStringWithoutVersion()];\n const idsFiltered = ids.filter((id) => multimatch(idsToCheck(id), patterns).length);\n if (throwForNoMatch && !idsFiltered.length) {\n throw new NoIdMatchPattern(pattern);\n }\n return idsFiltered;\n }\n\n async getSnapDistance(id: ComponentID, throws = true): Promise<SnapsDistance> {\n const modelComp = await this.legacyScope.getModelComponent(id._legacy);\n await modelComp.setDivergeData(this.legacyScope.objects, throws);\n return modelComp.getDivergeData();\n }\n\n async getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined> {\n const modelComponent = await this.legacyScope.getModelComponent(id._legacy);\n const versions = modelComponent.listVersions();\n return semver.maxSatisfying<string>(versions, range, { includePrerelease: true })?.toString();\n }\n\n async resumeExport(exportId: string, remotes: string[]): Promise<string[]> {\n return resumeExport(this.legacyScope, exportId, remotes);\n }\n\n async resolveId(id: string): Promise<ComponentID> {\n const legacyId = await this.legacyScope.getParsedId(id);\n return ComponentID.fromLegacy(legacyId);\n }\n\n // TODO: add new API for this\n async _legacyRemotes(): Promise<Remotes> {\n return getScopeRemotes(this.legacyScope);\n }\n\n /**\n * list all component ids from a remote-scope\n */\n async listRemoteScope(scopeName: string): Promise<ComponentID[]> {\n const remotes = await this._legacyRemotes();\n const remote = await remotes.resolve(scopeName, this.legacyScope);\n const results = await remote.list();\n return results.map(({ id }) => ComponentID.fromLegacy(id));\n }\n\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.legacyScope.getConsumerComponent(id._legacy);\n } catch (err) {\n // in case the component is missing locally, this.get imports it.\n return (await this.get(id))?.state._consumer;\n }\n }\n\n /**\n * ModelComponent is of type `BitObject` which gets saved into the local scope as an object file.\n * It has data about the tags and the component head. It doesn't have any data about the source-files/artifacts etc.\n */\n async getBitObjectModelComponent(id: ComponentID, throwIfNotExist = false): Promise<ModelComponent | undefined> {\n return throwIfNotExist\n ? this.legacyScope.getModelComponent(id._legacy)\n : this.legacyScope.getModelComponentIfExist(id._legacy);\n }\n\n /**\n * Version BitObject holds the data of the source files and build artifacts of a specific snap/tag.\n */\n async getBitObjectVersion(\n modelComponent: ModelComponent,\n version: string,\n throwIfNotExist = false\n ): Promise<Version | undefined> {\n return modelComponent.loadVersion(version, this.legacyScope.objects, throwIfNotExist);\n }\n\n /**\n * get a component and load its aspect\n */\n async load(\n id: ComponentID,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true }\n ): Promise<Component | undefined> {\n const component = await this.get(id);\n if (!component) return undefined;\n return this.loadCompAspects(component, lane, opts);\n }\n\n async loadCompAspects(\n component: Component,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true }\n ): Promise<Component> {\n const aspectIds = component.state.aspects.ids;\n // load components from type aspects as aspects.\n // important! previously, this was running for any aspect, not only apps. (the if statement was `this.aspectLoader.isAspectComponent(component)`)\n // Ran suggests changing it and if it breaks something, we'll document is and fix it.\n const appData = component.state.aspects.get('teambit.harmony/application');\n if (opts.loadApps && appData?.data?.appName) {\n aspectIds.push(component.id.toString());\n }\n const envsData = component.state.aspects.get(EnvsAspect.id);\n if ((opts.loadEnvs && envsData?.data?.services) || envsData?.data?.self) {\n aspectIds.push(component.id.toString());\n }\n await this.loadAspects(aspectIds, true, component.id.toString(), lane);\n\n return component;\n }\n\n async loadComponentsAspect(component: Component) {\n const aspectIds = component.state.aspects.ids;\n await this.loadAspects(aspectIds, true, component.id.toString());\n }\n\n async addAspectsFromConfigObject(component: Component, configObject: Record<string, any>) {\n const extensionsFromConfigObject = ExtensionDataList.fromConfigObject(configObject);\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConfigObject,\n component.state._consumer.extensions,\n ]).filterRemovedExtensions();\n component.state._consumer.extensions = extensionDataList;\n }\n\n public async createAspectListFromExtensionDataList(extensionDataList: ExtensionDataList) {\n const entries = await Promise.all(extensionDataList.map((entry) => this.extensionDataEntryToAspectEntry(entry)));\n return this.componentExtension.createAspectListFromEntries(entries);\n }\n\n private async extensionDataEntryToAspectEntry(dataEntry: ExtensionDataEntry): Promise<AspectEntry> {\n return new AspectEntry(await this.resolveComponentId(dataEntry.id), dataEntry);\n }\n\n getLastMergedPath() {\n return path.join(this.path, 'last-merged');\n }\n\n async isModified(): Promise<boolean> {\n return false;\n }\n\n async write() {\n // no-op (it's relevant for the workspace only)\n }\n\n /**\n * declare the slots of scope extension.\n */\n static slots = [\n Slot.withType<OnPostPut>(),\n Slot.withType<OnPostDelete>(),\n Slot.withType<OnPostExport>(),\n Slot.withType<OnPostObjectsPersist>(),\n Slot.withType<OnPreFetchObjects>(),\n ];\n static runtime = MainRuntime;\n\n static dependencies = [\n ComponentAspect,\n UIAspect,\n GraphqlAspect,\n CLIAspect,\n IsolatorAspect,\n AspectLoaderAspect,\n ExpressAspect,\n LoggerAspect,\n EnvsAspect,\n DependencyResolverAspect,\n GlobalConfigAspect,\n ];\n\n static defaultConfig: ScopeConfig = {\n httpTimeOut: 600000,\n };\n\n static async provider(\n [componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver, globalConfig]: [\n ComponentMain,\n UiMain,\n GraphqlMain,\n CLIMain,\n IsolatorMain,\n AspectLoaderMain,\n ExpressMain,\n LoggerMain,\n EnvsMain,\n DependencyResolverMain,\n GlobalConfigMain\n ],\n config: ScopeConfig,\n [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot]: [\n OnPostPutSlot,\n OnPostDeleteSlot,\n OnPostExportSlot,\n OnPostObjectsPersistSlot,\n OnPreFetchObjectsSlot\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const legacyScope = await loadScopeIfExist(bitConfig?.cwd);\n if (!legacyScope) {\n return undefined;\n }\n\n const logger = loggerMain.createLogger(ScopeAspect.id);\n const scope = new ScopeMain(\n harmony,\n legacyScope,\n componentExt,\n config,\n postPutSlot,\n postDeleteSlot,\n postExportSlot,\n postObjectsPersistSlot,\n preFetchObjectsSlot,\n isolator,\n aspectLoader,\n logger,\n envs,\n depsResolver,\n globalConfig\n );\n cli.registerOnStart(async (hasWorkspace: boolean) => {\n if (hasWorkspace) return;\n await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');\n });\n cli.register(new ScopeCmd());\n\n const onPutHook = async (ids: string[], lanes: Lane[], authData?: AuthData): Promise<void> => {\n logger.debug(`onPutHook, started. (${ids.length} components)`);\n scope.componentLoader.clearCache();\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postPutSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: authData };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPutHook, completed. (${ids.length} components)`);\n };\n\n const getAuthData = (): AuthData | undefined => {\n const token = Http.getToken();\n return token ? { type: DEFAULT_AUTH_TYPE, credentials: token } : undefined;\n };\n\n const onPostExportHook = async (ids: BitId[], lanes: Lane[]): Promise<void> => {\n logger.debug(`onPostExportHook, started. (${ids.length} components)`);\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postExportSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPostExportHook, completed. (${ids.length} components)`);\n };\n\n const onPostObjectsPersistHook = async (): Promise<void> => {\n logger.debug(`onPostObjectsPersistHook, started`);\n const fns = postObjectsPersistSlot.values();\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(undefined, metadata)));\n logger.debug(`onPostObjectsPersistHook, completed`);\n };\n\n ExportPersist.onPutHook = onPutHook;\n PostSign.onPutHook = onPutHook;\n Scope.onPostExport = onPostExportHook;\n Repository.onPostObjectsPersist = onPostObjectsPersistHook;\n\n express.register([\n new PutRoute(scope, postPutSlot),\n new FetchRoute(scope, logger),\n new ActionRoute(scope),\n new DeleteRoute(scope),\n ]);\n // @ts-ignore - @ran to implement the missing functions and remove it\n ui.registerUiRoot(new ScopeUIRoot(scope));\n graphql.register(scopeSchema(scope));\n componentExt.registerHost(scope);\n\n return scope;\n }\n}\n\nScopeAspect.addRuntime(ScopeMain);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_globalConfig","data","_interopRequireDefault","require","_pMapSeries","_path","_graph","_semver","_multimatch","_builder","_aspectLoader","_cli","_component","_graphql","_harmony","_isolator","_logger","_express","_ui","_componentId","_objects","_scopeLoader","_actions","_dependencyResolver","_scopeRemotes","_workspaceModules","_scope","_chokidar","_objectList","_http","_scope2","_bitError","_exportScopeComponents","_constants","_legacyBitId","_config","_envs","_lodash","_exceptions","_scope3","_scope4","_scope5","_routes","_scopeComponentLoader","_scopeCmd","_stagedConfig","_noIdMatchPattern","_scopeAspectsLoader","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ScopeMain","constructor","harmony","legacyScope","componentExtension","config","postPutSlot","postDeleteSlot","postExportSlot","postObjectsPersist","preFetchObjects","isolator","aspectLoader","logger","envs","dependencyResolver","globalConfig","componentLoader","ScopeComponentLoader","name","icon","backgroundIconColor","description","path","isLegacy","isGlobalScope","GLOBAL_SCOPE","aspectsPackageManager","aspectsNodeLinker","reloadAspectsWithNewVersion","components","host","getHost","getUserAspectsIdsWithoutRootIds","allUserAspectIds","getUserAspects","rootIds","toObject","diffIds","difference","getAspectsByPreviouslyUsedVersion","harmonyIds","aspectsIds","aspectsP","map","component","newId","resolveComponentId","id","previouslyUsedVersion","version","newIdWithPreviouslyUsedVersion","changeVersion","includes","toString","Promise","all","idsToLoad","loadAspects","ids","throwOnError","neededFor","lane","opts","scopeAspectsLoader","getScopeAspectsLoader","resolveAspects","runtimeName","componentIds","getResolvedAspects","getIsolateAspectsOpts","getIsolateOpts","getAspectCapsulePath","shouldUseHashForCapsules","getManyByLegacy","mapSeries","getFromConsumerComponent","ScopeAspectsLoader","clearCache","debug","objects","builderDataMapToLegacyOnTagResults","builderDataComponentMap","builderDataToLegacyExtension","builderData","_component$state$aspe","existingBuilder","state","aspects","get","BuilderAspect","legacy","builderExtension","ExtensionDataEntry","toArray","onPostPut","postPutFn","register","onPostDelete","postDeleteFn","registerOnPostExport","postExportFn","registerOnPreFetchObjects","preFetchObjectsFn","registerOnPostObjectsPersist","postObjectsPersistFn","fetch","persist","options","delete","force","lanes","headers","authData","getAuthDataFromHeader","authorization","result","remove","fns","values","metadata","auth","ComponentID","fromString","fn","err","error","isExported","watchScopeInternalFiles","scopeIndexFile","scopeIndex","getPath","remoteLanesDir","remoteLanes","basePath","pathsToWatch","watcher","chokidar","watch","on","join","filePath","reLoadScopeIndex","startsWith","removeFromCacheByFilePath","toObjectList","types","list","ObjectList","fromBitObjects","toJs","str","endsWith","replace","getGraph","comp","getMany","allFlattened","_consumer","getAllFlattenedDependencies","flat","allFlattenedUniq","ComponentIdList","uniqFromArray","scopeImporter","importWithoutDeps","cache","reason","allFlattenedCompIds","resolveMultipleComponentIds","dependencies","allComponents","graph","Graph","setNode","Node","deps","getComponentDependencies","dep","depCompId","componentId","hasNode","Error","setEdge","Edge","lifecycle","getGraphIds","componentsWithoutSavedGraph","compGraph","getSavedGraphOfComponentIfExist","merge","getCurrentLaneObject","import","c","reFetchUnBuiltVersion","addEdges","compId","label","depId","componentsAndVersions","getComponentsAndVersions","versionStr","toComponentId","devDependencies","extensionDependencies","consumerComponent","flattenedEdges","flattenedDependencies","edges","edge","source","target","nodes","node","type","useCache","preferDependencyGraph","withoutOwnScopeAndLocals","scope","_legacy","hasScope","importMany","fromArray","throwForDependencyNotFound","getRemoteComponent","getManyRemoteComponents","includeCache","includeFromLanes","includeDeleted","patternsWithScope","namespaces","pattern","componentsIds","listIds","comps","limit","slice","offset","isDeleted","listInvalid","patterns","allModelComponents","filterByCacheAndLanes","modelComponent","cacheFilter","exists","lanesFilter","hasHead","modelComponentsToList","fromLegacy","toBitIdWithLatestVersion","some","isMatchNamespacePatternItem","toStringWithoutVersion","match","hasId","includeVersion","hasIdNested","throwIfNotExist","idsWithoutEmpty","compact","componentsP","getOrThrow","loadMany","loadApps","loadEnvs","load","loadManyCompsAspects","Components","loadCompAspects","ComponentNotFound","getState","hash","getSnap","getModelComponent","ref","getRef","getLogs","shortHash","startsFrom","loadComponentLogs","getStagedConfig","currentLaneId","getCurrentLaneId","StagedConfig","isComponentRemoved","versionObj","loadVersion","isRemoved","BitId","resolveComponentIdFromBitId","idStr","loadModelComponentByIdStr","getIdToCheck","IdToCheck","legacyId","getParsedId","byPattern","idsByPattern","throwForNoMatch","BitError","filterIdsFromPoolIdsByPattern","split","p","trim","every","unshift","idsToCheck","idsFiltered","multimatch","NoIdMatchPattern","getSnapDistance","throws","modelComp","setDivergeData","getDivergeData","getExactVersionBySemverRange","range","_semver$maxSatisfying","versions","listVersions","semver","maxSatisfying","includePrerelease","resumeExport","exportId","remotes","resolveId","_legacyRemotes","getScopeRemotes","listRemoteScope","scopeName","remote","resolve","results","getLegacyMinimal","getConsumerComponent","_await$this$get","getBitObjectModelComponent","getModelComponentIfExist","getBitObjectVersion","_appData$data","_envsData$data","_envsData$data2","aspectIds","appData","appName","envsData","EnvsAspect","services","self","loadComponentsAspect","addAspectsFromConfigObject","configObject","extensionsFromConfigObject","ExtensionDataList","fromConfigObject","extensionDataList","mergeConfigs","extensions","filterRemovedExtensions","createAspectListFromExtensionDataList","entries","entry","extensionDataEntryToAspectEntry","createAspectListFromEntries","dataEntry","AspectEntry","getLastMergedPath","isModified","write","provider","componentExt","ui","graphql","cli","express","loggerMain","depsResolver","postObjectsPersistSlot","preFetchObjectsSlot","bitConfig","loadScopeIfExist","cwd","createLogger","ScopeAspect","registerOnStart","hasWorkspace","getNotLoadedConfiguredExtensions","ScopeCmd","onPutHook","getAuthData","token","Http","getToken","DEFAULT_AUTH_TYPE","credentials","onPostExportHook","onPostObjectsPersistHook","ExportPersist","PostSign","Scope","onPostExport","Repository","onPostObjectsPersist","PutRoute","FetchRoute","ActionRoute","DeleteRoute","registerUiRoot","ScopeUIRoot","scopeSchema","registerHost","exports","Slot","withType","MainRuntime","ComponentAspect","UIAspect","GraphqlAspect","CLIAspect","IsolatorAspect","AspectLoaderAspect","ExpressAspect","LoggerAspect","DependencyResolverAspect","GlobalConfigAspect","httpTimeOut","addRuntime"],"sources":["scope.main.runtime.ts"],"sourcesContent":["import GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport path from 'path';\nimport { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport semver from 'semver';\nimport multimatch from 'multimatch';\nimport type { AspectLoaderMain } from '@teambit/aspect-loader';\nimport { RawBuilderData, BuilderAspect } from '@teambit/builder';\nimport { AspectLoaderAspect, AspectDefinition } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport type { ComponentMain, ComponentMap, ResolveAspectsOptions } from '@teambit/component';\nimport { Component, ComponentAspect, ComponentFactory, Snap, State, AspectEntry } from '@teambit/component';\nimport type { GraphqlMain } from '@teambit/graphql';\nimport { GraphqlAspect } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport type { UiMain } from '@teambit/ui';\nimport { UIAspect } from '@teambit/ui';\nimport { ComponentIdList, ComponentID } from '@teambit/component-id';\nimport { ModelComponent, Lane, Version } from '@teambit/legacy/dist/scope/models';\nimport { Repository } from '@teambit/legacy/dist/scope/objects';\nimport LegacyScope, { LegacyOnTagResult } from '@teambit/legacy/dist/scope/scope';\nimport { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';\nimport { loadScopeIfExist } from '@teambit/legacy/dist/scope/scope-loader';\nimport { PersistOptions } from '@teambit/legacy/dist/scope/types';\nimport { ExportPersist, PostSign } from '@teambit/legacy/dist/scope/actions';\nimport { DependencyResolverAspect, DependencyResolverMain, NodeLinker } from '@teambit/dependency-resolver';\nimport { getScopeRemotes } from '@teambit/legacy/dist/scope/scope-remotes';\nimport { Remotes } from '@teambit/legacy/dist/remotes';\nimport { isMatchNamespacePatternItem } from '@teambit/workspace.modules.match-pattern';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport { CompIdGraph, DepEdgeType } from '@teambit/graph';\nimport chokidar from '@teambit/chokidar';\nimport { Types } from '@teambit/legacy/dist/scope/object-registrar';\nimport { FETCH_OPTIONS } from '@teambit/legacy/dist/api/scope/lib/fetch';\nimport { ObjectList } from '@teambit/legacy/dist/scope/objects/object-list';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { SnapsDistance } from '@teambit/legacy/dist/scope/component-ops/snaps-distance';\nimport { Http, DEFAULT_AUTH_TYPE, AuthData, getAuthDataFromHeader } from '@teambit/legacy/dist/scope/network/http/http';\nimport { remove } from '@teambit/legacy/dist/api/scope';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { resumeExport } from '@teambit/legacy/dist/scope/component-ops/export-scope-components';\nimport { GLOBAL_SCOPE } from '@teambit/legacy/dist/constants';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { compact, slice, difference } from 'lodash';\nimport { ComponentNotFound } from './exceptions';\nimport { ScopeAspect } from './scope.aspect';\nimport { scopeSchema } from './scope.graphql';\nimport { ScopeUIRoot } from './scope.ui-root';\nimport { PutRoute, FetchRoute, ActionRoute, DeleteRoute } from './routes';\nimport { ScopeComponentLoader } from './scope-component-loader';\nimport { ScopeCmd } from './scope-cmd';\nimport { StagedConfig } from './staged-config';\nimport { NoIdMatchPattern } from './exceptions/no-id-match-pattern';\nimport { ScopeAspectsLoader, ScopeLoadAspectsOptions } from './scope-aspects-loader';\n\ntype RemoteEventMetadata = { auth?: AuthData; headers?: {} };\ntype RemoteEvent<Data> = (data: Data, metadata: RemoteEventMetadata, errors?: Array<string | Error>) => Promise<void>;\ntype OnPostPutData = { ids: ComponentID[]; lanes: Lane[] };\ntype OnPostDeleteData = { ids: ComponentID[] };\ntype OnPreFetchObjectData = { ids: string[]; fetchOptions: FETCH_OPTIONS };\n\ntype OnPostPut = RemoteEvent<OnPostPutData>;\ntype OnPostExport = RemoteEvent<OnPostPutData>;\ntype OnPostDelete = RemoteEvent<OnPostDeleteData>;\ntype OnPostObjectsPersist = RemoteEvent<undefined>;\ntype OnPreFetchObjects = RemoteEvent<OnPreFetchObjectData>;\n\nexport type OnPostPutSlot = SlotRegistry<OnPostPut>;\nexport type OnPostDeleteSlot = SlotRegistry<OnPostDelete>;\nexport type OnPostExportSlot = SlotRegistry<OnPostExport>;\nexport type OnPostObjectsPersistSlot = SlotRegistry<OnPostObjectsPersist>;\nexport type OnPreFetchObjectsSlot = SlotRegistry<OnPreFetchObjects>;\nexport type LoadOptions = {\n /**\n * In case the component we are loading is app, whether to load it as app (in a scope aspects capsule)\n */\n loadApps?: boolean;\n /**\n * In case the component we are loading is env, whether to load it as env (in a scope aspects capsule)\n */\n loadEnvs?: boolean;\n};\n\nexport type ScopeConfig = {\n httpTimeOut: number;\n description?: string;\n icon?: string;\n backgroundIconColor?: string;\n /**\n * Set a different package manager for the aspects capsules\n */\n aspectsPackageManager?: string;\n /**\n * Set a different node linker for the aspects capsules\n */\n aspectsNodeLinker?: NodeLinker;\n};\n\nexport class ScopeMain implements ComponentFactory {\n componentLoader: ScopeComponentLoader;\n constructor(\n /**\n * private reference to the instance of Harmony.\n */\n private harmony: Harmony,\n /**\n * legacy scope\n */\n readonly legacyScope: LegacyScope,\n\n /**\n * component extension.\n */\n readonly componentExtension: ComponentMain,\n\n /**\n * slot registry for subscribing to build\n */\n\n readonly config: ScopeConfig,\n\n private postPutSlot: OnPostPutSlot,\n\n private postDeleteSlot: OnPostDeleteSlot,\n\n private postExportSlot: OnPostExportSlot,\n\n private postObjectsPersist: OnPostObjectsPersistSlot,\n\n public preFetchObjects: OnPreFetchObjectsSlot,\n\n private isolator: IsolatorMain,\n\n private aspectLoader: AspectLoaderMain,\n\n private logger: Logger,\n\n private envs: EnvsMain,\n\n private dependencyResolver: DependencyResolverMain,\n\n private globalConfig: GlobalConfigMain\n ) {\n this.componentLoader = new ScopeComponentLoader(this, this.logger);\n }\n\n priority?: boolean | undefined;\n\n localAspects: string[] = [];\n\n /**\n * name of the scope\n */\n get name(): string {\n return this.legacyScope.name;\n }\n\n get icon(): string | undefined {\n return this.config.icon;\n }\n\n get backgroundIconColor(): string | undefined {\n return this.config.backgroundIconColor;\n }\n\n get description(): string | undefined {\n return this.config.description;\n }\n\n get path(): string {\n return this.legacyScope.path;\n }\n\n get isLegacy(): boolean {\n return this.legacyScope.isLegacy;\n }\n\n get isGlobalScope(): boolean {\n return this.path === GLOBAL_SCOPE;\n }\n\n get aspectsPackageManager(): string | undefined {\n return this.config.aspectsPackageManager;\n }\n\n get aspectsNodeLinker(): NodeLinker | undefined {\n return this.config.aspectsNodeLinker;\n }\n\n // We need to reload the aspects with their new version since:\n // during get many by legacy, we go load component which in turn go to getEnv\n // get env validates that the env written on the component is really exist by checking the envs slot registry\n // when we load here, it's env version in the aspect list already has the new version in case the env itself is being tagged\n // so we are search for the env in the registry with the new version number\n // but since the env only registered during the on load of the bit process (before the tag) it's version in the registry is only the old one\n // once we reload them we will have it registered with the new version as well\n async reloadAspectsWithNewVersion(components: ConsumerComponent[]): Promise<void> {\n const host = this.componentExtension.getHost();\n\n // Return only aspects that defined on components but not in the root config file (workspace.jsonc/scope.jsonc)\n const getUserAspectsIdsWithoutRootIds = (): string[] => {\n const allUserAspectIds = this.aspectLoader.getUserAspects();\n const rootIds = Object.keys(this.harmony.config.toObject());\n const diffIds = difference(allUserAspectIds, rootIds);\n return diffIds;\n };\n\n // Based on the list of components to be tagged return those who are loaded to harmony with their used version\n const getAspectsByPreviouslyUsedVersion = async (): Promise<string[]> => {\n const harmonyIds = getUserAspectsIdsWithoutRootIds();\n const aspectsIds: string[] = [];\n const aspectsP = components.map(async (component) => {\n const newId = await host.resolveComponentId(component.id);\n if (\n component.previouslyUsedVersion &&\n component.version &&\n component.previouslyUsedVersion !== component.version\n ) {\n const newIdWithPreviouslyUsedVersion = newId.changeVersion(component.previouslyUsedVersion);\n if (harmonyIds.includes(newIdWithPreviouslyUsedVersion.toString())) {\n aspectsIds.push(newId.toString());\n }\n }\n });\n await Promise.all(aspectsP);\n return aspectsIds;\n };\n\n const idsToLoad = await getAspectsByPreviouslyUsedVersion();\n await host.loadAspects(idsToLoad, false, 'scope.reloadAspectsWithNewVersion');\n }\n\n loadAspects(\n ids: string[],\n throwOnError?: boolean | undefined,\n neededFor?: string | undefined,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.loadAspects(ids, throwOnError, neededFor, lane, opts);\n }\n resolveAspects(\n runtimeName?: string | undefined,\n componentIds?: ComponentID[] | undefined,\n opts?: ResolveAspectsOptions | undefined\n ): Promise<AspectDefinition[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.resolveAspects(runtimeName, componentIds, opts);\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getResolvedAspects(components, opts);\n }\n\n getIsolateAspectsOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getIsolateOpts(opts);\n }\n\n getAspectCapsulePath() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.getAspectCapsulePath();\n }\n\n shouldUseHashForCapsules() {\n const scopeAspectsLoader = this.getScopeAspectsLoader();\n return scopeAspectsLoader.shouldUseHashForCapsules();\n }\n\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]> {\n return mapSeries(components, async (component) => this.getFromConsumerComponent(component));\n }\n\n getScopeAspectsLoader(): ScopeAspectsLoader {\n const scopeAspectsLoader = new ScopeAspectsLoader(\n this,\n this.aspectLoader,\n this.envs,\n this.isolator,\n this.logger,\n this.globalConfig\n );\n return scopeAspectsLoader;\n }\n\n async clearCache() {\n this.logger.debug('clearing the components and the legacy cache');\n this.componentLoader.clearCache();\n await this.legacyScope.objects.clearCache();\n }\n\n builderDataMapToLegacyOnTagResults(builderDataComponentMap: ComponentMap<RawBuilderData>): LegacyOnTagResult[] {\n const builderDataToLegacyExtension = (component: Component, builderData: RawBuilderData) => {\n const existingBuilder = component.state.aspects.get(BuilderAspect.id)?.legacy;\n const builderExtension = existingBuilder || new ExtensionDataEntry(undefined, undefined, BuilderAspect.id);\n builderExtension.data = builderData;\n return builderExtension;\n };\n return builderDataComponentMap.toArray().map(([component, builderData]) => ({\n id: component.id,\n builderData: builderDataToLegacyExtension(component, builderData),\n }));\n }\n\n /**\n * register to the post-export slot.\n */\n onPostPut(postPutFn: OnPostPut) {\n this.postPutSlot.register(postPutFn);\n return this;\n }\n\n /**\n * register to the post-delete slot.\n */\n onPostDelete(postDeleteFn: OnPostDelete) {\n this.postDeleteSlot.register(postDeleteFn);\n return this;\n }\n\n /**\n * register to the post-export slot.\n */\n registerOnPostExport(postExportFn: OnPostExport) {\n this.postExportSlot.register(postExportFn);\n return this;\n }\n\n registerOnPreFetchObjects(preFetchObjectsFn: OnPreFetchObjects) {\n this.preFetchObjects.register(preFetchObjectsFn);\n return this;\n }\n\n registerOnPostObjectsPersist(postObjectsPersistFn: OnPostObjectsPersist) {\n this.postObjectsPersist.register(postObjectsPersistFn);\n return this;\n }\n\n /**\n * Will fetch a list of components into the current scope.\n * This will only fetch the object and won't write the files to the actual FS\n */\n fetch(ids: ComponentIdList) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n /**\n * This function will get a component and sealed it's current state into the scope\n *\n * @param {Component[]} components A list of components to seal with specific persist options (such as message and version number)\n * @param {PersistOptions} persistGeneralOptions General persistence options such as verbose\n */\n persist(components: Component[], options: PersistOptions) {} // eslint-disable-line @typescript-eslint/no-unused-vars\n\n async delete(\n { ids, force, lanes }: { ids: string[]; force: boolean; lanes: boolean },\n headers?: Record<string, any>\n ) {\n const authData = getAuthDataFromHeader(headers?.authorization);\n const result = await remove({\n path: this.path,\n ids,\n force,\n lanes,\n });\n\n const fns = this.postDeleteSlot.values();\n const metadata = { auth: authData, headers };\n const componentIds = lanes ? [] : ids.map((id) => ComponentID.fromString(id));\n await mapSeries(fns, async (fn) => {\n try {\n await fn({ ids: componentIds }, metadata);\n } catch (err: any) {\n this.logger.error('failed to run delete slot', err);\n }\n });\n return result;\n }\n\n isExported(id: ComponentID): boolean {\n return this.legacyScope.isExported(id);\n }\n\n /**\n * for long-running processes, such as `bit start` or `bit watch`, it's important to keep the following data up to date:\n * 1. scope-index (.bit/index.json file).\n * 2. remote-refs (.bit/refs/*).\n * it's possible that other commands (e.g. `bit import`) modified these files, while these processes are running.\n * Because these data are kept in memory, they're not up to date anymore.\n */\n async watchScopeInternalFiles() {\n const scopeIndexFile = this.legacyScope.objects.scopeIndex.getPath();\n const remoteLanesDir = this.legacyScope.objects.remoteLanes.basePath;\n const pathsToWatch = [scopeIndexFile, remoteLanesDir];\n const watcher = chokidar.watch(pathsToWatch);\n watcher.on('ready', () => {\n this.logger.debug(`watchSystemFiles has started, watching ${pathsToWatch.join(', ')}`);\n });\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.on('change', async (filePath) => {\n if (filePath === scopeIndexFile) {\n this.logger.debug('scope index file has been changed, reloading it');\n await this.legacyScope.objects.reLoadScopeIndex();\n } else if (filePath.startsWith(remoteLanesDir)) {\n this.legacyScope.objects.remoteLanes.removeFromCacheByFilePath(filePath);\n } else {\n this.logger.error(\n 'unknown file has been changed, please check why it is watched by scope.watchSystemFiles',\n filePath\n );\n }\n });\n }\n\n async toObjectList(types: Types): Promise<ObjectList> {\n const objects = await this.legacyScope.objects.list(types);\n return ObjectList.fromBitObjects(objects);\n }\n\n // TODO: temporary compiler workaround - discuss this with david.\n private toJs(str: string) {\n if (str.endsWith('.ts')) return str.replace('.ts', '.js');\n return str;\n }\n\n async getGraph(ids?: ComponentID[]): Promise<Graph<Component, string>> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const allFlattened = components.map((component) => component.state._consumer.getAllFlattenedDependencies()).flat();\n const allFlattenedUniq = ComponentIdList.uniqFromArray(allFlattened);\n await this.legacyScope.scopeImporter.importWithoutDeps(allFlattenedUniq, {\n cache: true,\n reason: `which are unique flattened dependencies to get the graph of ${ids.length} ids`,\n });\n const allFlattenedCompIds = await this.resolveMultipleComponentIds(allFlattenedUniq);\n const dependencies = await this.getMany(allFlattenedCompIds);\n const allComponents: Component[] = [...components, ...dependencies];\n\n // build the graph\n const graph = new Graph<Component, string>();\n allComponents.forEach((comp) => graph.setNode(new Node(comp.id.toString(), comp)));\n await Promise.all(\n allComponents.map(async (comp) => {\n const deps = await this.dependencyResolver.getComponentDependencies(comp);\n deps.forEach((dep) => {\n const depCompId = dep.componentId;\n if (!graph.hasNode(depCompId.toString())) {\n throw new Error(`scope.getGraph: missing node of ${depCompId.toString()}`);\n }\n graph.setEdge(new Edge(comp.id.toString(), depCompId.toString(), dep.lifecycle));\n });\n })\n );\n return graph;\n }\n\n async getGraphIds(ids?: ComponentID[]): Promise<CompIdGraph> {\n if (!ids || !ids.length) ids = (await this.list()).map((comp) => comp.id) || [];\n const components = await this.getMany(ids);\n const graph = new Graph<ComponentID, DepEdgeType>();\n const componentsWithoutSavedGraph: Component[] = [];\n\n // try to add from saved graph\n components.forEach((component) => {\n const compGraph = this.getSavedGraphOfComponentIfExist(component);\n if (!compGraph) {\n componentsWithoutSavedGraph.push(component);\n return;\n }\n graph.merge([graph]);\n });\n if (!componentsWithoutSavedGraph.length) {\n return graph;\n }\n\n // there are components that don't have the graph saved, create the graph by using Version objects of all flattened\n const lane = (await this.legacyScope.getCurrentLaneObject()) || undefined;\n await this.import(\n componentsWithoutSavedGraph.map((c) => c.id),\n { reFetchUnBuiltVersion: false, lane, reason: `to build graph-ids from the scope` }\n );\n\n const allFlattened = componentsWithoutSavedGraph\n .map((component) => component.state._consumer.getAllFlattenedDependencies())\n .flat();\n const allFlattenedUniq = ComponentIdList.uniqFromArray(allFlattened);\n\n const addEdges = (compId: ComponentID, dependencies: ConsumerComponent['dependencies'], label: DepEdgeType) => {\n dependencies.get().forEach((dep) => {\n const depId = dep.id;\n graph.setNode(new Node(depId.toString(), depId));\n graph.setEdge(new Edge(compId.toString(), depId.toString(), label));\n });\n };\n const componentsAndVersions = await this.legacyScope.getComponentsAndVersions(allFlattenedUniq);\n componentsAndVersions.forEach(({ component, version, versionStr }) => {\n const compId = component.toComponentId().changeVersion(versionStr);\n graph.setNode(new Node(compId.toString(), compId));\n addEdges(compId, version.dependencies, 'prod');\n addEdges(compId, version.devDependencies, 'dev');\n addEdges(compId, version.extensionDependencies, 'ext');\n });\n\n return graph;\n }\n\n private getSavedGraphOfComponentIfExist(component: Component): Graph<ComponentID, DepEdgeType> | null {\n const consumerComponent = component.state._consumer as ConsumerComponent;\n const flattenedEdges = consumerComponent.flattenedEdges;\n if (!flattenedEdges.length && consumerComponent.flattenedDependencies.length) {\n // there are flattenedDependencies, so must be edges, if they're empty, it's because the component was tagged\n // with a version < ~0.0.901, so this flattenedEdges wasn't exist.\n return null;\n }\n const edges = flattenedEdges.map((edge) => ({\n ...edge,\n source: edge.source,\n target: edge.target,\n }));\n const nodes = consumerComponent.flattenedDependencies;\n\n const graph = new Graph<ComponentID, DepEdgeType>();\n nodes.forEach((node) => graph.setNode(new Node(node.toString(), node)));\n edges.forEach((edge) => graph.setEdge(new Edge(edge.source.toString(), edge.target.toString(), edge.type)));\n return graph;\n }\n\n /**\n * import components into the scope.\n */\n async import(\n ids: ComponentID[],\n {\n useCache = true,\n reFetchUnBuiltVersion = true,\n preferDependencyGraph = true,\n lane,\n reason,\n }: {\n /**\n * if the component exists locally, don't go to the server to search for updates.\n */\n useCache?: boolean;\n /**\n * if the Version objects exists locally, but its `buildStatus` is Pending or Failed, reach the remote to find\n * whether the version was already built there.\n */\n reFetchUnBuiltVersion?: boolean;\n /**\n * if the component is on a lane, provide the lane object. the component will be fetched from the lane-scope and\n * not from the component-scope.\n */\n lane?: Lane;\n /**\n * if an external is missing and the remote has it with the dependency graph, don't fetch all its dependencies\n */\n preferDependencyGraph?: boolean;\n /**\n * reason why this import is needed (to show in the terminal)\n */\n reason?: string;\n } = {}\n ): Promise<void> {\n const withoutOwnScopeAndLocals = ids.filter((id) => {\n return id.scope !== this.name && id._legacy.hasScope();\n });\n await this.legacyScope.scopeImporter.importMany({\n ids: ComponentIdList.fromArray(withoutOwnScopeAndLocals),\n cache: useCache,\n throwForDependencyNotFound: false,\n reFetchUnBuiltVersion,\n lane,\n preferDependencyGraph,\n reason,\n });\n }\n\n async get(id: ComponentID, useCache = true): Promise<Component | undefined> {\n return this.componentLoader.get(id, undefined, useCache);\n }\n\n async getFromConsumerComponent(consumerComponent: ConsumerComponent): Promise<Component> {\n return this.componentLoader.getFromConsumerComponent(consumerComponent);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getRemoteComponent(id: ComponentID): Promise<Component> {\n return this.componentLoader.getRemoteComponent(id);\n }\n\n /**\n * get a component from a remote without importing it\n */\n async getManyRemoteComponents(ids: ComponentID[]): Promise<Component[]> {\n return this.componentLoader.getManyRemoteComponents(ids);\n }\n\n /**\n * list all components in the scope.\n */\n async list(\n filter?: { offset: number; limit: number; namespaces?: string[] },\n includeCache = false,\n includeFromLanes = false,\n includeDeleted = false\n ): Promise<Component[]> {\n const patternsWithScope =\n (filter?.namespaces && filter?.namespaces.map((pattern) => `**/${pattern || '**'}`)) || undefined;\n const componentsIds = await this.listIds(includeCache, includeFromLanes, patternsWithScope);\n\n const comps = await this.getMany(\n filter && filter.limit ? slice(componentsIds, filter.offset, filter.offset + filter.limit) : componentsIds\n );\n\n return includeDeleted ? comps : comps.filter((comp) => !comp.isDeleted());\n }\n\n /**\n * for now, list of invalid components are mostly useful for the workspace.\n * in the future, this can return components that failed to load in the scope due to objects file\n * corruption or similar issues.\n */\n async listInvalid() {\n return [];\n }\n\n /**\n * get ids of all scope components.\n * @param includeCache whether or not include components that their scope-name is different than the current scope-name\n */\n async listIds(includeCache = false, includeFromLanes = false, patterns?: string[]): Promise<ComponentID[]> {\n const allModelComponents = await this.legacyScope.list();\n const filterByCacheAndLanes = (modelComponent: ModelComponent) => {\n const cacheFilter = includeCache ? true : this.exists(modelComponent);\n const lanesFilter = includeFromLanes ? true : modelComponent.hasHead();\n\n return cacheFilter && lanesFilter;\n };\n const modelComponentsToList = allModelComponents.filter(filterByCacheAndLanes);\n let ids = modelComponentsToList.map((component) =>\n ComponentID.fromLegacy(component.toBitIdWithLatestVersion(), component.scope || this.name)\n );\n if (patterns && patterns.length > 0) {\n ids = ids.filter((id) =>\n patterns?.some((pattern) => isMatchNamespacePatternItem(id.toStringWithoutVersion(), pattern).match)\n );\n }\n this.logger.debug(`scope listIds: total ${ids.length} components after filter scope`);\n return ids;\n }\n\n /**\n * Check if a specific id exist in the scope\n * @param componentId\n */\n async hasId(componentId: ComponentID, includeCache = false): Promise<boolean> {\n if (!includeCache && componentId.scope !== this.name) return false;\n const opts = {\n includeVersion: true,\n };\n\n return this.legacyScope.hasId(componentId, opts);\n }\n\n async hasIdNested(componentId: ComponentID, includeCache = false): Promise<boolean> {\n return this.hasId(componentId, includeCache);\n }\n\n /**\n * determine whether a component exists in the scope.\n */\n exists(modelComponent: ModelComponent) {\n return modelComponent.scope === this.name;\n }\n\n async getMany(ids: ComponentID[], throwIfNotExist = false): Promise<Component[]> {\n const idsWithoutEmpty = compact(ids);\n const componentsP = mapSeries(idsWithoutEmpty, async (id: ComponentID) => {\n return throwIfNotExist ? this.getOrThrow(id) : this.get(id);\n });\n const components = await componentsP;\n return compact(components);\n }\n\n /**\n * important! you probably want to use `getMany`, which returns the components from the scope.\n * this method loads all aspects of the loaded components. (which hurts performance)\n */\n async loadMany(\n ids: ComponentID[],\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true }\n ): Promise<Component[]> {\n const components = await mapSeries(ids, (id) => this.load(id, lane, opts));\n return compact(components);\n }\n\n async loadManyCompsAspects(Components: Component[], lane?: Lane): Promise<Component[]> {\n const components = await mapSeries(Components, (id) => this.loadCompAspects(id, lane));\n return compact(components);\n }\n\n /**\n * get a component and throw an exception if not found.\n * @param id component id\n */\n async getOrThrow(id: ComponentID): Promise<Component> {\n const component = await this.get(id);\n if (!component) throw new ComponentNotFound(id);\n return component;\n }\n\n /**\n * returns a specific state of a component.\n * @param id component ID.\n * @param hash state hash.\n */\n async getState(id: ComponentID, hash: string): Promise<State> {\n return this.componentLoader.getState(id, hash);\n }\n\n async getSnap(id: ComponentID, hash: string): Promise<Snap> {\n const modelComponent = await this.legacyScope.getModelComponent(id);\n const ref = modelComponent.getRef(hash);\n if (!ref) throw new Error(`ref was not found: ${id.toString()} with tag ${hash}`);\n return this.componentLoader.getSnap(id, ref.toString());\n }\n\n /**\n * get component log sorted by the timestamp in ascending order (from the earliest to the latest)\n */\n async getLogs(id: ComponentID, shortHash = false, startsFrom?: string): Promise<ComponentLog[]> {\n return this.legacyScope.loadComponentLogs(id, shortHash, startsFrom);\n }\n\n async getStagedConfig() {\n const currentLaneId = this.legacyScope.getCurrentLaneId();\n return StagedConfig.load(this.path, this.logger, currentLaneId);\n }\n\n /**\n * wether a component is soft-removed.\n * the version is required as it can be removed on a lane. in which case, the version is the head in the lane.\n */\n async isComponentRemoved(id: ComponentID): Promise<Boolean> {\n const version = id.version;\n if (!version) throw new Error(`isComponentRemoved expect to get version, got ${id.toString()}`);\n const modelComponent = await this.legacyScope.getModelComponent(id);\n const versionObj = await modelComponent.loadVersion(version, this.legacyScope.objects);\n return versionObj.isRemoved();\n }\n\n /**\n * resolve a component ID.\n * @param id component ID.\n */\n async resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID> {\n if (id instanceof BitId) return this.resolveComponentIdFromBitId(id);\n const idStr = id.toString();\n const component = await this.legacyScope.loadModelComponentByIdStr(idStr);\n const getIdToCheck = () => {\n if (component) return idStr; // component exists in the scope with the scope-name.\n if (idStr.startsWith(`${this.name}/`)) {\n // component with the full name doesn't exist in the scope, it might be locally tagged\n return idStr.replace(`${this.name}/`, '');\n }\n return idStr;\n };\n const IdToCheck = getIdToCheck();\n const legacyId = await this.legacyScope.getParsedId(IdToCheck);\n return legacyId;\n }\n\n private resolveComponentIdFromBitId(id: BitId) {\n return id.hasScope() ? ComponentID.fromLegacy(id) : ComponentID.fromLegacy(id, this.name);\n }\n\n async resolveMultipleComponentIds(ids: Array<string | ComponentID | ComponentID>) {\n return Promise.all(ids.map(async (id) => this.resolveComponentId(id)));\n }\n\n /**\n * @deprecated use `this.idsByPattern` instead for consistency, which supports also negation and list of patterns.\n */\n async byPattern(patterns: string[], scope = '**'): Promise<Component[]> {\n const patternsWithScope = patterns.map((pattern) => `${scope}/${pattern || '**'}`);\n\n const ids = await this.listIds(true, false, patternsWithScope);\n\n const components = await this.getMany(ids);\n return components;\n }\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n async idsByPattern(pattern: string, throwForNoMatch = true): Promise<ComponentID[]> {\n if (!pattern.includes('*') && !pattern.includes(',')) {\n // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name\n const id = await this.resolveComponentId(pattern);\n const exists = await this.hasId(id, true);\n if (exists) return [id];\n if (throwForNoMatch) throw new BitError(`unable to find \"${pattern}\" in the scope`);\n return [];\n }\n const ids = await this.listIds(true);\n return this.filterIdsFromPoolIdsByPattern(pattern, ids, throwForNoMatch);\n }\n\n // todo: move this to somewhere else (where?)\n filterIdsFromPoolIdsByPattern(pattern: string, ids: ComponentID[], throwForNoMatch = true) {\n const patterns = pattern\n .split(',')\n .map((p) => p.trim())\n .map((p) => p.split('@')[0]); // no need for the version\n if (patterns.every((p) => p.startsWith('!'))) {\n // otherwise it'll never match anything. don't use \".push()\". it must be the first item in the array.\n patterns.unshift('**');\n }\n // check also as legacyId.toString, as it doesn't have the defaultScope\n const idsToCheck = (id: ComponentID) => [id._legacy.toStringWithoutVersion(), id.toStringWithoutVersion()];\n const idsFiltered = ids.filter((id) => multimatch(idsToCheck(id), patterns).length);\n if (throwForNoMatch && !idsFiltered.length) {\n throw new NoIdMatchPattern(pattern);\n }\n return idsFiltered;\n }\n\n async getSnapDistance(id: ComponentID, throws = true): Promise<SnapsDistance> {\n const modelComp = await this.legacyScope.getModelComponent(id);\n await modelComp.setDivergeData(this.legacyScope.objects, throws);\n return modelComp.getDivergeData();\n }\n\n async getExactVersionBySemverRange(id: ComponentID, range: string): Promise<string | undefined> {\n const modelComponent = await this.legacyScope.getModelComponent(id);\n const versions = modelComponent.listVersions();\n return semver.maxSatisfying<string>(versions, range, { includePrerelease: true })?.toString();\n }\n\n async resumeExport(exportId: string, remotes: string[]): Promise<string[]> {\n return resumeExport(this.legacyScope, exportId, remotes);\n }\n\n /**\n * @deprecated use `this.resolveComponentId` instead.\n */\n async resolveId(id: string): Promise<ComponentID> {\n return this.resolveComponentId(id);\n }\n\n // TODO: add new API for this\n async _legacyRemotes(): Promise<Remotes> {\n return getScopeRemotes(this.legacyScope);\n }\n\n /**\n * list all component ids from a remote-scope\n */\n async listRemoteScope(scopeName: string): Promise<ComponentID[]> {\n const remotes = await this._legacyRemotes();\n const remote = await remotes.resolve(scopeName, this.legacyScope);\n const results = await remote.list();\n return results.map(({ id }) => id);\n }\n\n async getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined> {\n try {\n return await this.legacyScope.getConsumerComponent(id);\n } catch (err) {\n // in case the component is missing locally, this.get imports it.\n return (await this.get(id))?.state._consumer;\n }\n }\n\n /**\n * ModelComponent is of type `BitObject` which gets saved into the local scope as an object file.\n * It has data about the tags and the component head. It doesn't have any data about the source-files/artifacts etc.\n */\n async getBitObjectModelComponent(id: ComponentID, throwIfNotExist = false): Promise<ModelComponent | undefined> {\n return throwIfNotExist ? this.legacyScope.getModelComponent(id) : this.legacyScope.getModelComponentIfExist(id);\n }\n\n /**\n * Version BitObject holds the data of the source files and build artifacts of a specific snap/tag.\n */\n async getBitObjectVersion(\n modelComponent: ModelComponent,\n version: string,\n throwIfNotExist = false\n ): Promise<Version | undefined> {\n return modelComponent.loadVersion(version, this.legacyScope.objects, throwIfNotExist);\n }\n\n /**\n * get a component and load its aspect\n */\n async load(\n id: ComponentID,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true }\n ): Promise<Component | undefined> {\n const component = await this.get(id);\n if (!component) return undefined;\n return this.loadCompAspects(component, lane, opts);\n }\n\n async loadCompAspects(\n component: Component,\n lane?: Lane,\n opts: LoadOptions = { loadApps: true, loadEnvs: true }\n ): Promise<Component> {\n const aspectIds = component.state.aspects.ids;\n // load components from type aspects as aspects.\n // important! previously, this was running for any aspect, not only apps. (the if statement was `this.aspectLoader.isAspectComponent(component)`)\n // Ran suggests changing it and if it breaks something, we'll document is and fix it.\n const appData = component.state.aspects.get('teambit.harmony/application');\n if (opts.loadApps && appData?.data?.appName) {\n aspectIds.push(component.id.toString());\n }\n const envsData = component.state.aspects.get(EnvsAspect.id);\n if ((opts.loadEnvs && envsData?.data?.services) || envsData?.data?.self) {\n aspectIds.push(component.id.toString());\n }\n await this.loadAspects(aspectIds, true, component.id.toString(), lane);\n\n return component;\n }\n\n async loadComponentsAspect(component: Component) {\n const aspectIds = component.state.aspects.ids;\n await this.loadAspects(aspectIds, true, component.id.toString());\n }\n\n async addAspectsFromConfigObject(component: Component, configObject: Record<string, any>) {\n const extensionsFromConfigObject = ExtensionDataList.fromConfigObject(configObject);\n const extensionDataList = ExtensionDataList.mergeConfigs([\n extensionsFromConfigObject,\n component.state._consumer.extensions,\n ]).filterRemovedExtensions();\n component.state._consumer.extensions = extensionDataList;\n }\n\n public async createAspectListFromExtensionDataList(extensionDataList: ExtensionDataList) {\n const entries = await Promise.all(extensionDataList.map((entry) => this.extensionDataEntryToAspectEntry(entry)));\n return this.componentExtension.createAspectListFromEntries(entries);\n }\n\n private async extensionDataEntryToAspectEntry(dataEntry: ExtensionDataEntry): Promise<AspectEntry> {\n return new AspectEntry(await this.resolveComponentId(dataEntry.id), dataEntry);\n }\n\n getLastMergedPath() {\n return path.join(this.path, 'last-merged');\n }\n\n async isModified(): Promise<boolean> {\n return false;\n }\n\n async write() {\n // no-op (it's relevant for the workspace only)\n }\n\n /**\n * declare the slots of scope extension.\n */\n static slots = [\n Slot.withType<OnPostPut>(),\n Slot.withType<OnPostDelete>(),\n Slot.withType<OnPostExport>(),\n Slot.withType<OnPostObjectsPersist>(),\n Slot.withType<OnPreFetchObjects>(),\n ];\n static runtime = MainRuntime;\n\n static dependencies = [\n ComponentAspect,\n UIAspect,\n GraphqlAspect,\n CLIAspect,\n IsolatorAspect,\n AspectLoaderAspect,\n ExpressAspect,\n LoggerAspect,\n EnvsAspect,\n DependencyResolverAspect,\n GlobalConfigAspect,\n ];\n\n static defaultConfig: ScopeConfig = {\n httpTimeOut: 600000,\n };\n\n static async provider(\n [componentExt, ui, graphql, cli, isolator, aspectLoader, express, loggerMain, envs, depsResolver, globalConfig]: [\n ComponentMain,\n UiMain,\n GraphqlMain,\n CLIMain,\n IsolatorMain,\n AspectLoaderMain,\n ExpressMain,\n LoggerMain,\n EnvsMain,\n DependencyResolverMain,\n GlobalConfigMain\n ],\n config: ScopeConfig,\n [postPutSlot, postDeleteSlot, postExportSlot, postObjectsPersistSlot, preFetchObjectsSlot]: [\n OnPostPutSlot,\n OnPostDeleteSlot,\n OnPostExportSlot,\n OnPostObjectsPersistSlot,\n OnPreFetchObjectsSlot\n ],\n harmony: Harmony\n ) {\n const bitConfig: any = harmony.config.get('teambit.harmony/bit');\n const legacyScope = await loadScopeIfExist(bitConfig?.cwd);\n if (!legacyScope) {\n return undefined;\n }\n\n const logger = loggerMain.createLogger(ScopeAspect.id);\n const scope = new ScopeMain(\n harmony,\n legacyScope,\n componentExt,\n config,\n postPutSlot,\n postDeleteSlot,\n postExportSlot,\n postObjectsPersistSlot,\n preFetchObjectsSlot,\n isolator,\n aspectLoader,\n logger,\n envs,\n depsResolver,\n globalConfig\n );\n cli.registerOnStart(async (hasWorkspace: boolean) => {\n if (hasWorkspace) return;\n await scope.loadAspects(aspectLoader.getNotLoadedConfiguredExtensions(), undefined, 'scope.cli.registerOnStart');\n });\n cli.register(new ScopeCmd());\n\n const onPutHook = async (ids: string[], lanes: Lane[], authData?: AuthData): Promise<void> => {\n logger.debug(`onPutHook, started. (${ids.length} components)`);\n scope.componentLoader.clearCache();\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postPutSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: authData };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPutHook, completed. (${ids.length} components)`);\n };\n\n const getAuthData = (): AuthData | undefined => {\n const token = Http.getToken();\n return token ? { type: DEFAULT_AUTH_TYPE, credentials: token } : undefined;\n };\n\n const onPostExportHook = async (ids: ComponentID[], lanes: Lane[]): Promise<void> => {\n logger.debug(`onPostExportHook, started. (${ids.length} components)`);\n const componentIds = await scope.resolveMultipleComponentIds(ids);\n const fns = postExportSlot.values();\n const data = {\n ids: componentIds,\n lanes,\n };\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(data, metadata)));\n logger.debug(`onPostExportHook, completed. (${ids.length} components)`);\n };\n\n const onPostObjectsPersistHook = async (): Promise<void> => {\n logger.debug(`onPostObjectsPersistHook, started`);\n const fns = postObjectsPersistSlot.values();\n const metadata = { auth: getAuthData() };\n await Promise.all(fns.map(async (fn) => fn(undefined, metadata)));\n logger.debug(`onPostObjectsPersistHook, completed`);\n };\n\n ExportPersist.onPutHook = onPutHook;\n PostSign.onPutHook = onPutHook;\n Scope.onPostExport = onPostExportHook;\n Repository.onPostObjectsPersist = onPostObjectsPersistHook;\n\n express.register([\n new PutRoute(scope, postPutSlot),\n new FetchRoute(scope, logger),\n new ActionRoute(scope),\n new DeleteRoute(scope),\n ]);\n // @ts-ignore - @ran to implement the missing functions and remove it\n ui.registerUiRoot(new ScopeUIRoot(scope));\n graphql.register(scopeSchema(scope));\n componentExt.registerHost(scope);\n\n return scope;\n }\n}\n\nScopeAspect.addRuntime(ScopeMain);\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/scope",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.28",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/scope/scope",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.scope",
|
|
8
8
|
"name": "scope",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.28"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fs-extra": "10.0.0",
|
|
@@ -22,9 +22,12 @@
|
|
|
22
22
|
"core-js": "^3.0.0",
|
|
23
23
|
"@babel/runtime": "7.20.0",
|
|
24
24
|
"@teambit/ui-foundation.ui.tree.drawer": "0.0.517",
|
|
25
|
-
"@teambit/scope.ui.hooks.scope-context": "0.0.448",
|
|
26
25
|
"@teambit/harmony": "0.4.6",
|
|
26
|
+
"@teambit/bit-error": "0.0.404",
|
|
27
|
+
"@teambit/component-id": "1.1.0",
|
|
27
28
|
"@teambit/graph.cleargraph": "0.0.1",
|
|
29
|
+
"@teambit/legacy-bit-id": "1.0.3",
|
|
30
|
+
"@teambit/legacy-component-log": "0.0.402",
|
|
28
31
|
"@teambit/component.ui.component-drawer": "0.0.351",
|
|
29
32
|
"@teambit/design.ui.tree": "0.0.15",
|
|
30
33
|
"@teambit/lanes.hooks.use-lane-components": "0.0.253",
|
|
@@ -39,6 +42,7 @@
|
|
|
39
42
|
"@teambit/ui-foundation.ui.main-dropdown": "0.0.502",
|
|
40
43
|
"@teambit/ui-foundation.ui.menu": "0.0.502",
|
|
41
44
|
"@teambit/ui-foundation.ui.react-router.slot-router": "0.0.506",
|
|
45
|
+
"@teambit/lane-id": "0.0.311",
|
|
42
46
|
"@teambit/ui-foundation.ui.constants.z-indexes": "0.0.504",
|
|
43
47
|
"@teambit/base-ui.surfaces.split-pane.hover-splitter": "1.0.0",
|
|
44
48
|
"@teambit/base-ui.surfaces.split-pane.split-pane": "1.0.0",
|
|
@@ -49,37 +53,34 @@
|
|
|
49
53
|
"@teambit/ui-foundation.ui.full-loader": "0.0.500",
|
|
50
54
|
"@teambit/ui-foundation.ui.hooks.use-is-mobile": "0.0.197",
|
|
51
55
|
"@teambit/ui-foundation.ui.top-bar": "0.0.514",
|
|
56
|
+
"@teambit/ui-foundation.ui.use-box.dropdown": "0.0.141",
|
|
57
|
+
"@teambit/ui-foundation.ui.use-box.scope-menu": "0.0.143",
|
|
52
58
|
"@teambit/explorer.ui.gallery.component-card": "0.0.513",
|
|
53
59
|
"@teambit/explorer.ui.gallery.component-grid": "0.0.496",
|
|
54
60
|
"@teambit/scope.ui.empty-scope": "0.0.509",
|
|
55
61
|
"@teambit/scope.ui.scope-details": "0.0.526",
|
|
56
|
-
"@teambit/
|
|
57
|
-
"@teambit/
|
|
58
|
-
"@teambit/
|
|
59
|
-
"@teambit/
|
|
60
|
-
"@teambit/
|
|
61
|
-
"@teambit/
|
|
62
|
-
"@teambit/
|
|
63
|
-
"@teambit/
|
|
64
|
-
"@teambit/
|
|
65
|
-
"@teambit/
|
|
66
|
-
"@teambit/global-config": "0.0.801",
|
|
62
|
+
"@teambit/component.modules.component-url": "0.0.156",
|
|
63
|
+
"@teambit/scope.models.scope-model": "0.0.455",
|
|
64
|
+
"@teambit/scope.ui.hooks.scope-context": "0.0.449",
|
|
65
|
+
"@teambit/aspect-loader": "1.0.28",
|
|
66
|
+
"@teambit/cli": "0.0.800",
|
|
67
|
+
"@teambit/compiler": "1.0.28",
|
|
68
|
+
"@teambit/component": "1.0.28",
|
|
69
|
+
"@teambit/dependency-resolver": "1.0.28",
|
|
70
|
+
"@teambit/envs": "1.0.28",
|
|
71
|
+
"@teambit/global-config": "0.0.802",
|
|
67
72
|
"@teambit/harmony.modules.requireable-component": "0.0.493",
|
|
68
|
-
"@teambit/isolator": "1.0.
|
|
69
|
-
"@teambit/logger": "0.0.
|
|
70
|
-
"@teambit/
|
|
71
|
-
"@teambit/
|
|
72
|
-
"@teambit/
|
|
73
|
-
"@teambit/
|
|
74
|
-
"@teambit/
|
|
75
|
-
"@teambit/legacy-bit-id": "1.0.3",
|
|
76
|
-
"@teambit/ui": "1.0.27",
|
|
73
|
+
"@teambit/isolator": "1.0.28",
|
|
74
|
+
"@teambit/logger": "0.0.893",
|
|
75
|
+
"@teambit/builder": "1.0.28",
|
|
76
|
+
"@teambit/express": "0.0.899",
|
|
77
|
+
"@teambit/graph": "1.0.28",
|
|
78
|
+
"@teambit/graphql": "1.0.28",
|
|
79
|
+
"@teambit/ui": "1.0.28",
|
|
77
80
|
"@teambit/workspace.modules.match-pattern": "0.0.500",
|
|
78
|
-
"@teambit/
|
|
79
|
-
"@teambit/
|
|
80
|
-
"@teambit/
|
|
81
|
-
"@teambit/sidebar": "1.0.27",
|
|
82
|
-
"@teambit/lane-id": "0.0.311",
|
|
81
|
+
"@teambit/command-bar": "1.0.28",
|
|
82
|
+
"@teambit/component-tree": "1.0.28",
|
|
83
|
+
"@teambit/sidebar": "1.0.28",
|
|
83
84
|
"@teambit/preview.ui.preview-placeholder": "0.0.501"
|
|
84
85
|
},
|
|
85
86
|
"devDependencies": {
|
|
@@ -97,7 +98,7 @@
|
|
|
97
98
|
},
|
|
98
99
|
"peerDependencies": {
|
|
99
100
|
"react-router-dom": "^6.0.0",
|
|
100
|
-
"@teambit/legacy": "1.0.
|
|
101
|
+
"@teambit/legacy": "1.0.580",
|
|
101
102
|
"react": "^16.8.0 || ^17.0.0",
|
|
102
103
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
103
104
|
},
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.27/dist/scope.composition.js';
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.scope_scope@1.0.27/dist/scope.docs.mdx';
|
|
3
|
-
|
|
4
|
-
export const compositions = [compositions_0];
|
|
5
|
-
export const overview = [overview_0];
|
|
6
|
-
|
|
7
|
-
export const compositions_metadata = {"compositions":[{"displayName":"Logo","identifier":"Logo"}]};
|