@teambit/scope 1.0.511 → 1.0.513

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { LATEST_BIT_VERSION, VERSION_DELIMITER } from '@teambit/legacy.constants';
2
2
  import { loadScope, Scope } from '@teambit/legacy.scope';
3
- import { Version } from '@teambit/scope.objects';
3
+ import { Version } from '@teambit/objects';
4
4
 
5
5
  export async function catComponent(id: string): Promise<Record<string, any>> {
6
6
  // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
@@ -1,5 +1,5 @@
1
1
  import { loadScope, Scope } from '@teambit/legacy.scope';
2
- import { BitObject, Lane, ModelComponent, ScopeMeta, Symlink, Version } from '@teambit/scope.objects';
2
+ import { BitObject, Lane, ModelComponent, ScopeMeta, Symlink, Version } from '@teambit/objects';
3
3
 
4
4
  export async function catScope(path: string, full?: boolean): Promise<BitObject[]> {
5
5
  const scope: Scope = await loadScope(path);
@@ -1 +1 @@
1
- {"version":3,"names":["_legacy","data","require","_legacy2","catComponent","id","scope","loadScope","bitId","getParsedId","component","getModelComponent","hasVersion","version","loadVersion","objects","toObject","LATEST_BIT_VERSION","includes","VERSION_DELIMITER","getHeadRegardlessOfLaneAsTagOrHash"],"sources":["cat-component.ts"],"sourcesContent":["import { LATEST_BIT_VERSION, VERSION_DELIMITER } from '@teambit/legacy.constants';\nimport { loadScope, Scope } from '@teambit/legacy.scope';\nimport { Version } from '@teambit/scope.objects';\n\nexport async function catComponent(id: string): Promise<Record<string, any>> {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const scope: Scope = await loadScope();\n const bitId = await scope.getParsedId(id);\n // $FlowFixMe unclear what's the issue here\n const component = await scope.getModelComponent(bitId);\n if (bitId.hasVersion()) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const version: Version = await component.loadVersion(bitId.version, scope.objects);\n return version.toObject();\n }\n if (bitId.version === LATEST_BIT_VERSION && id.includes(VERSION_DELIMITER)) {\n const version = await component.loadVersion(component.getHeadRegardlessOfLaneAsTagOrHash(), scope.objects);\n return version.toObject();\n }\n return component.toObject();\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,eAAeG,YAAYA,CAACC,EAAU,EAAgC;EAC3E;EACA,MAAMC,KAAY,GAAG,MAAM,IAAAC,oBAAS,EAAC,CAAC;EACtC,MAAMC,KAAK,GAAG,MAAMF,KAAK,CAACG,WAAW,CAACJ,EAAE,CAAC;EACzC;EACA,MAAMK,SAAS,GAAG,MAAMJ,KAAK,CAACK,iBAAiB,CAACH,KAAK,CAAC;EACtD,IAAIA,KAAK,CAACI,UAAU,CAAC,CAAC,EAAE;IACtB;IACA,MAAMC,OAAgB,GAAG,MAAMH,SAAS,CAACI,WAAW,CAACN,KAAK,CAACK,OAAO,EAAEP,KAAK,CAACS,OAAO,CAAC;IAClF,OAAOF,OAAO,CAACG,QAAQ,CAAC,CAAC;EAC3B;EACA,IAAIR,KAAK,CAACK,OAAO,KAAKI,4BAAkB,IAAIZ,EAAE,CAACa,QAAQ,CAACC,2BAAiB,CAAC,EAAE;IAC1E,MAAMN,OAAO,GAAG,MAAMH,SAAS,CAACI,WAAW,CAACJ,SAAS,CAACU,kCAAkC,CAAC,CAAC,EAAEd,KAAK,CAACS,OAAO,CAAC;IAC1G,OAAOF,OAAO,CAACG,QAAQ,CAAC,CAAC;EAC3B;EACA,OAAON,SAAS,CAACM,QAAQ,CAAC,CAAC;AAC7B","ignoreList":[]}
1
+ {"version":3,"names":["_legacy","data","require","_legacy2","catComponent","id","scope","loadScope","bitId","getParsedId","component","getModelComponent","hasVersion","version","loadVersion","objects","toObject","LATEST_BIT_VERSION","includes","VERSION_DELIMITER","getHeadRegardlessOfLaneAsTagOrHash"],"sources":["cat-component.ts"],"sourcesContent":["import { LATEST_BIT_VERSION, VERSION_DELIMITER } from '@teambit/legacy.constants';\nimport { loadScope, Scope } from '@teambit/legacy.scope';\nimport { Version } from '@teambit/objects';\n\nexport async function catComponent(id: string): Promise<Record<string, any>> {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const scope: Scope = await loadScope();\n const bitId = await scope.getParsedId(id);\n // $FlowFixMe unclear what's the issue here\n const component = await scope.getModelComponent(bitId);\n if (bitId.hasVersion()) {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n const version: Version = await component.loadVersion(bitId.version, scope.objects);\n return version.toObject();\n }\n if (bitId.version === LATEST_BIT_VERSION && id.includes(VERSION_DELIMITER)) {\n const version = await component.loadVersion(component.getHeadRegardlessOfLaneAsTagOrHash(), scope.objects);\n return version.toObject();\n }\n return component.toObject();\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,eAAeG,YAAYA,CAACC,EAAU,EAAgC;EAC3E;EACA,MAAMC,KAAY,GAAG,MAAM,IAAAC,oBAAS,EAAC,CAAC;EACtC,MAAMC,KAAK,GAAG,MAAMF,KAAK,CAACG,WAAW,CAACJ,EAAE,CAAC;EACzC;EACA,MAAMK,SAAS,GAAG,MAAMJ,KAAK,CAACK,iBAAiB,CAACH,KAAK,CAAC;EACtD,IAAIA,KAAK,CAACI,UAAU,CAAC,CAAC,EAAE;IACtB;IACA,MAAMC,OAAgB,GAAG,MAAMH,SAAS,CAACI,WAAW,CAACN,KAAK,CAACK,OAAO,EAAEP,KAAK,CAACS,OAAO,CAAC;IAClF,OAAOF,OAAO,CAACG,QAAQ,CAAC,CAAC;EAC3B;EACA,IAAIR,KAAK,CAACK,OAAO,KAAKI,4BAAkB,IAAIZ,EAAE,CAACa,QAAQ,CAACC,2BAAiB,CAAC,EAAE;IAC1E,MAAMN,OAAO,GAAG,MAAMH,SAAS,CAACI,WAAW,CAACJ,SAAS,CAACU,kCAAkC,CAAC,CAAC,EAAEd,KAAK,CAACS,OAAO,CAAC;IAC1G,OAAOF,OAAO,CAACG,QAAQ,CAAC,CAAC;EAC3B;EACA,OAAON,SAAS,CAACM,QAAQ,CAAC,CAAC;AAC7B","ignoreList":[]}
@@ -13,6 +13,6 @@ export declare class CatScopeCmd implements Command {
13
13
  options: CommandOptions;
14
14
  loadAspects: boolean;
15
15
  report([scopePath]: [string], { full }: Flags): Promise<string>;
16
- json([scopePath]: [string], { full, jsonExtra }: Flags): Promise<import("@teambit/scope.objects").BitObject[]>;
16
+ json([scopePath]: [string], { full, jsonExtra }: Flags): Promise<import("@teambit/objects").BitObject[]>;
17
17
  }
18
18
  export {};
@@ -1,2 +1,2 @@
1
- import { BitObject } from '@teambit/scope.objects';
1
+ import { BitObject } from '@teambit/objects';
2
2
  export declare function catScope(path: string, full?: boolean): Promise<BitObject[]>;
@@ -11,16 +11,16 @@ function _legacy() {
11
11
  };
12
12
  return data;
13
13
  }
14
- function _scope() {
15
- const data = require("@teambit/scope.objects");
16
- _scope = function () {
14
+ function _objects() {
15
+ const data = require("@teambit/objects");
16
+ _objects = function () {
17
17
  return data;
18
18
  };
19
19
  return data;
20
20
  }
21
21
  async function catScope(path, full) {
22
22
  const scope = await (0, _legacy().loadScope)(path);
23
- return full ? scope.objects.list([_scope().ModelComponent, _scope().Symlink, _scope().Lane, _scope().Version, _scope().ScopeMeta]) : scope.objects.list([_scope().ModelComponent, _scope().Symlink, _scope().Lane]);
23
+ return full ? scope.objects.list([_objects().ModelComponent, _objects().Symlink, _objects().Lane, _objects().Version, _objects().ScopeMeta]) : scope.objects.list([_objects().ModelComponent, _objects().Symlink, _objects().Lane]);
24
24
  }
25
25
 
26
26
  //# sourceMappingURL=cat-scope.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_legacy","data","require","_scope","catScope","path","full","scope","loadScope","objects","list","ModelComponent","Symlink","Lane","Version","ScopeMeta"],"sources":["cat-scope.ts"],"sourcesContent":["import { loadScope, Scope } from '@teambit/legacy.scope';\nimport { BitObject, Lane, ModelComponent, ScopeMeta, Symlink, Version } from '@teambit/scope.objects';\n\nexport async function catScope(path: string, full?: boolean): Promise<BitObject[]> {\n const scope: Scope = await loadScope(path);\n return full\n ? scope.objects.list([ModelComponent, Symlink, Lane, Version, ScopeMeta])\n : scope.objects.list([ModelComponent, Symlink, Lane]);\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,eAAeG,QAAQA,CAACC,IAAY,EAAEC,IAAc,EAAwB;EACjF,MAAMC,KAAY,GAAG,MAAM,IAAAC,mBAAS,EAACH,IAAI,CAAC;EAC1C,OAAOC,IAAI,GACPC,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,CAACC,uBAAc,EAAEC,gBAAO,EAAEC,aAAI,EAAEC,gBAAO,EAAEC,kBAAS,CAAC,CAAC,GACvER,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,CAACC,uBAAc,EAAEC,gBAAO,EAAEC,aAAI,CAAC,CAAC;AACzD","ignoreList":[]}
1
+ {"version":3,"names":["_legacy","data","require","_objects","catScope","path","full","scope","loadScope","objects","list","ModelComponent","Symlink","Lane","Version","ScopeMeta"],"sources":["cat-scope.ts"],"sourcesContent":["import { loadScope, Scope } from '@teambit/legacy.scope';\nimport { BitObject, Lane, ModelComponent, ScopeMeta, Symlink, Version } from '@teambit/objects';\n\nexport async function catScope(path: string, full?: boolean): Promise<BitObject[]> {\n const scope: Scope = await loadScope(path);\n return full\n ? scope.objects.list([ModelComponent, Symlink, Lane, Version, ScopeMeta])\n : scope.objects.list([ModelComponent, Symlink, Lane]);\n}\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,eAAeG,QAAQA,CAACC,IAAY,EAAEC,IAAc,EAAwB;EACjF,MAAMC,KAAY,GAAG,MAAM,IAAAC,mBAAS,EAACH,IAAI,CAAC;EAC1C,OAAOC,IAAI,GACPC,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,CAACC,yBAAc,EAAEC,kBAAO,EAAEC,eAAI,EAAEC,kBAAO,EAAEC,oBAAS,CAAC,CAAC,GACvER,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,CAACC,yBAAc,EAAEC,kBAAO,EAAEC,eAAI,CAAC,CAAC;AACzD","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.511/dist/scope.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.511/dist/scope.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.513/dist/scope.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.scope_scope@1.0.513/dist/scope.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -18,9 +18,9 @@ function _legacy() {
18
18
  };
19
19
  return data;
20
20
  }
21
- function _scope() {
22
- const data = require("@teambit/scope.objects");
23
- _scope = function () {
21
+ function _objects() {
22
+ const data = require("@teambit/objects");
23
+ _objects = function () {
24
24
  return data;
25
25
  };
26
26
  return data;
@@ -54,7 +54,7 @@ class FetchRoute {
54
54
  this.logger.error('fatal: onPreFetchObjects encountered an error (this error does not stop the process)', err);
55
55
  });
56
56
  const readable = await (0, _legacy().fetch)(this.scope.path, req.body.ids, req.body.fetchOptions, req.headers);
57
- const pack = _scope().ObjectList.fromObjectStreamToTar(readable, this.scope.name);
57
+ const pack = _objects().ObjectList.fromObjectStreamToTar(readable, this.scope.name);
58
58
  try {
59
59
  await (0, _promises().pipeline)(pack, res);
60
60
  this.logger.info('fetch.router, the response has been sent successfully to the client', req.headers);
@@ -1 +1 @@
1
- {"version":3,"names":["_express","data","require","_legacy","_scope","_promises","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FetchRoute","constructor","scope","logger","Verb","READ","req","res","setTimeout","config","httpTimeOut","preFetchHookP","preFetchObjects","values","map","fn","ids","body","fetchOptions","headers","Promise","all","catch","err","error","readable","fetch","path","pack","ObjectList","fromObjectStreamToTar","name","pipeline","info","aborted","warn","message","exports"],"sources":["fetch.route.ts"],"sourcesContent":["import { Route, Verb, Request, Response } from '@teambit/express';\nimport { fetch } from '@teambit/legacy.scope-api';\nimport { ObjectList } from '@teambit/scope.objects';\nimport { Logger } from '@teambit/logger';\n// @ts-ignore\nimport { pipeline } from 'stream/promises';\nimport { ScopeMain } from '../scope.main.runtime';\n\nexport class FetchRoute implements Route {\n constructor(\n private scope: ScopeMain,\n private logger: Logger\n ) {}\n\n route = '/scope/fetch';\n method = 'post';\n verb = Verb.READ;\n middlewares = [\n async (req: Request, res: Response) => {\n req.setTimeout(this.scope.config.httpTimeOut);\n const preFetchHookP = this.scope.preFetchObjects\n .values()\n .map((fn) => fn({ ids: req.body.ids, fetchOptions: req.body.fetchOptions }, { headers: req.headers }));\n\n Promise.all(preFetchHookP).catch((err) => {\n this.logger.error('fatal: onPreFetchObjects encountered an error (this error does not stop the process)', err);\n });\n\n const readable = await fetch(this.scope.path, req.body.ids, req.body.fetchOptions, req.headers);\n const pack = ObjectList.fromObjectStreamToTar(readable, this.scope.name);\n try {\n await pipeline(pack, res);\n this.logger.info('fetch.router, the response has been sent successfully to the client', req.headers);\n } catch (err: any) {\n if (req.aborted) {\n this.logger.warn('FetchRoute, the client aborted the request', err);\n } else {\n this.logger.error(\n `FetchRoute encountered an error during the pipeline streaming, this should never happen.\nmake sure the error is caught in fromObjectStreamToTar and it streamed using the name \"ERROR\".\nerror: ${err.message}`,\n err\n );\n }\n }\n },\n ];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_express","data","require","_legacy","_objects","_promises","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FetchRoute","constructor","scope","logger","Verb","READ","req","res","setTimeout","config","httpTimeOut","preFetchHookP","preFetchObjects","values","map","fn","ids","body","fetchOptions","headers","Promise","all","catch","err","error","readable","fetch","path","pack","ObjectList","fromObjectStreamToTar","name","pipeline","info","aborted","warn","message","exports"],"sources":["fetch.route.ts"],"sourcesContent":["import { Route, Verb, Request, Response } from '@teambit/express';\nimport { fetch } from '@teambit/legacy.scope-api';\nimport { ObjectList } from '@teambit/objects';\nimport { Logger } from '@teambit/logger';\n// @ts-ignore\nimport { pipeline } from 'stream/promises';\nimport { ScopeMain } from '../scope.main.runtime';\n\nexport class FetchRoute implements Route {\n constructor(\n private scope: ScopeMain,\n private logger: Logger\n ) {}\n\n route = '/scope/fetch';\n method = 'post';\n verb = Verb.READ;\n middlewares = [\n async (req: Request, res: Response) => {\n req.setTimeout(this.scope.config.httpTimeOut);\n const preFetchHookP = this.scope.preFetchObjects\n .values()\n .map((fn) => fn({ ids: req.body.ids, fetchOptions: req.body.fetchOptions }, { headers: req.headers }));\n\n Promise.all(preFetchHookP).catch((err) => {\n this.logger.error('fatal: onPreFetchObjects encountered an error (this error does not stop the process)', err);\n });\n\n const readable = await fetch(this.scope.path, req.body.ids, req.body.fetchOptions, req.headers);\n const pack = ObjectList.fromObjectStreamToTar(readable, this.scope.name);\n try {\n await pipeline(pack, res);\n this.logger.info('fetch.router, the response has been sent successfully to the client', req.headers);\n } catch (err: any) {\n if (req.aborted) {\n this.logger.warn('FetchRoute, the client aborted the request', err);\n } else {\n this.logger.error(\n `FetchRoute encountered an error during the pipeline streaming, this should never happen.\nmake sure the error is caught in fromObjectStreamToTar and it streamed using the name \"ERROR\".\nerror: ${err.message}`,\n err\n );\n }\n }\n },\n ];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,9 +11,9 @@ function _express() {
11
11
  };
12
12
  return data;
13
13
  }
14
- function _scope() {
15
- const data = require("@teambit/scope.objects");
16
- _scope = function () {
14
+ function _objects() {
15
+ const data = require("@teambit/objects");
16
+ _objects = function () {
17
17
  return data;
18
18
  };
19
19
  return data;
@@ -40,7 +40,7 @@ class PutRoute {
40
40
  const pushOptionsStr = req.headers['push-options'];
41
41
  if (!pushOptionsStr) throw new Error('http is missing the push-options header');
42
42
  const pushOptions = JSON.parse(pushOptionsStr);
43
- const objectList = await _scope().ObjectList.fromTar(req);
43
+ const objectList = await _objects().ObjectList.fromTar(req);
44
44
  const ids = await (0, _legacy().put)({
45
45
  path: this.scope.path,
46
46
  objectList
@@ -1 +1 @@
1
- {"version":3,"names":["_express","data","require","_scope","_legacy","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PutRoute","constructor","scope","postPutSlot","Verb","WRITE","req","res","setTimeout","config","httpTimeOut","pushOptionsStr","headers","Error","pushOptions","JSON","parse","objectList","ObjectList","fromTar","ids","put","path","Promise","all","map","id","resolveComponentId","json","exports"],"sources":["put.route.ts"],"sourcesContent":["import { Route, Verb, Request, Response } from '@teambit/express';\nimport { ObjectList } from '@teambit/scope.objects';\nimport { put } from '@teambit/legacy.scope-api';\nimport { OnPostPutSlot, ScopeMain } from '../scope.main.runtime';\n\nexport class PutRoute implements Route {\n constructor(\n private scope: ScopeMain,\n private postPutSlot: OnPostPutSlot\n ) {}\n\n method = 'post';\n route = '/scope/put';\n verb = Verb.WRITE;\n\n middlewares = [\n async (req: Request, res: Response) => {\n req.setTimeout(this.scope.config.httpTimeOut);\n const pushOptionsStr = req.headers['push-options'];\n if (!pushOptionsStr) throw new Error('http is missing the push-options header');\n const pushOptions = JSON.parse(pushOptionsStr as string);\n const objectList = await ObjectList.fromTar(req);\n const ids = await put(\n {\n path: this.scope.path,\n objectList,\n },\n pushOptions\n );\n\n await Promise.all(\n ids.map((id) => {\n return this.scope.resolveComponentId(id);\n })\n );\n\n res.json(ids);\n },\n ];\n}\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,OAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgD,SAAAI,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAGzC,MAAMgB,QAAQ,CAAkB;EACrCC,WAAWA,CACDC,KAAgB,EAChBC,WAA0B,EAClC;IAAA,KAFQD,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,WAA0B,GAA1BA,WAA0B;IAAAtB,eAAA,iBAG3B,MAAM;IAAAA,eAAA,gBACP,YAAY;IAAAA,eAAA,eACbuB,eAAI,CAACC,KAAK;IAAAxB,eAAA,sBAEH,CACZ,OAAOyB,GAAY,EAAEC,GAAa,KAAK;MACrCD,GAAG,CAACE,UAAU,CAAC,IAAI,CAACN,KAAK,CAACO,MAAM,CAACC,WAAW,CAAC;MAC7C,MAAMC,cAAc,GAAGL,GAAG,CAACM,OAAO,CAAC,cAAc,CAAC;MAClD,IAAI,CAACD,cAAc,EAAE,MAAM,IAAIE,KAAK,CAAC,yCAAyC,CAAC;MAC/E,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACL,cAAwB,CAAC;MACxD,MAAMM,UAAU,GAAG,MAAMC,mBAAU,CAACC,OAAO,CAACb,GAAG,CAAC;MAChD,MAAMc,GAAG,GAAG,MAAM,IAAAC,aAAG,EACnB;QACEC,IAAI,EAAE,IAAI,CAACpB,KAAK,CAACoB,IAAI;QACrBL;MACF,CAAC,EACDH,WACF,CAAC;MAED,MAAMS,OAAO,CAACC,GAAG,CACfJ,GAAG,CAACK,GAAG,CAAEC,EAAE,IAAK;QACd,OAAO,IAAI,CAACxB,KAAK,CAACyB,kBAAkB,CAACD,EAAE,CAAC;MAC1C,CAAC,CACH,CAAC;MAEDnB,GAAG,CAACqB,IAAI,CAACR,GAAG,CAAC;IACf,CAAC,CACF;EA7BE;AA8BL;AAACS,OAAA,CAAA7B,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["_express","data","require","_objects","_legacy","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","PutRoute","constructor","scope","postPutSlot","Verb","WRITE","req","res","setTimeout","config","httpTimeOut","pushOptionsStr","headers","Error","pushOptions","JSON","parse","objectList","ObjectList","fromTar","ids","put","path","Promise","all","map","id","resolveComponentId","json","exports"],"sources":["put.route.ts"],"sourcesContent":["import { Route, Verb, Request, Response } from '@teambit/express';\nimport { ObjectList } from '@teambit/objects';\nimport { put } from '@teambit/legacy.scope-api';\nimport { OnPostPutSlot, ScopeMain } from '../scope.main.runtime';\n\nexport class PutRoute implements Route {\n constructor(\n private scope: ScopeMain,\n private postPutSlot: OnPostPutSlot\n ) {}\n\n method = 'post';\n route = '/scope/put';\n verb = Verb.WRITE;\n\n middlewares = [\n async (req: Request, res: Response) => {\n req.setTimeout(this.scope.config.httpTimeOut);\n const pushOptionsStr = req.headers['push-options'];\n if (!pushOptionsStr) throw new Error('http is missing the push-options header');\n const pushOptions = JSON.parse(pushOptionsStr as string);\n const objectList = await ObjectList.fromTar(req);\n const ids = await put(\n {\n path: this.scope.path,\n objectList,\n },\n pushOptions\n );\n\n await Promise.all(\n ids.map((id) => {\n return this.scope.resolveComponentId(id);\n })\n );\n\n res.json(ids);\n },\n ];\n}\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgD,SAAAI,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAGzC,MAAMgB,QAAQ,CAAkB;EACrCC,WAAWA,CACDC,KAAgB,EAChBC,WAA0B,EAClC;IAAA,KAFQD,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,WAA0B,GAA1BA,WAA0B;IAAAtB,eAAA,iBAG3B,MAAM;IAAAA,eAAA,gBACP,YAAY;IAAAA,eAAA,eACbuB,eAAI,CAACC,KAAK;IAAAxB,eAAA,sBAEH,CACZ,OAAOyB,GAAY,EAAEC,GAAa,KAAK;MACrCD,GAAG,CAACE,UAAU,CAAC,IAAI,CAACN,KAAK,CAACO,MAAM,CAACC,WAAW,CAAC;MAC7C,MAAMC,cAAc,GAAGL,GAAG,CAACM,OAAO,CAAC,cAAc,CAAC;MAClD,IAAI,CAACD,cAAc,EAAE,MAAM,IAAIE,KAAK,CAAC,yCAAyC,CAAC;MAC/E,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACL,cAAwB,CAAC;MACxD,MAAMM,UAAU,GAAG,MAAMC,qBAAU,CAACC,OAAO,CAACb,GAAG,CAAC;MAChD,MAAMc,GAAG,GAAG,MAAM,IAAAC,aAAG,EACnB;QACEC,IAAI,EAAE,IAAI,CAACpB,KAAK,CAACoB,IAAI;QACrBL;MACF,CAAC,EACDH,WACF,CAAC;MAED,MAAMS,OAAO,CAACC,GAAG,CACfJ,GAAG,CAACK,GAAG,CAAEC,EAAE,IAAK;QACd,OAAO,IAAI,CAACxB,KAAK,CAACyB,kBAAkB,CAACD,EAAE,CAAC;MAC1C,CAAC,CACH,CAAC;MAEDnB,GAAG,CAACqB,IAAI,CAACR,GAAG,CAAC;IACf,CAAC,CACF;EA7BE;AA8BL;AAACS,OAAA,CAAA7B,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { GlobalConfigMain } from '@teambit/global-config';
2
- import { Lane } from '@teambit/scope.objects';
2
+ import { Lane } from '@teambit/objects';
3
3
  import { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';
4
4
  import { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';
5
5
  import { RequireableComponent } from '@teambit/harmony.modules.requireable-component';
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_fsExtra","_path","_legacy","_lodash","_cli","_harmonyModules","_bitError","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","globalConfig","loadAspects","ids","throwOnError","neededFor","lane","opts","callId","Math","floor","random","loggerPrefix","info","join","grouped","groupAspectIdsByEnvOfTheList","envsManifestsIds","getManifestsAndLoadAspects","other","otherManifestsIds","debug","concat","components","getNonLoadedAspects","envsIds","uniq","map","component","getEnvId","envId","isCoreEnv","groupBy","id","includes","manifests","scopeManifests","potentialPluginsIds","getManifestsGraphRecursively","loadExtensionsByManifests","scopePluginsManifests","allManifests","compact","manifest","visited","optsWithDefaults","loadCustomEnvs","nonVisitedId","customEnvsIds","undefined","requireAspects","index","isValidAspect","toString","depsToLoad","mapSeries","dependencies","_runtimes","runtime","depIds","d","loaded","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","aspectIds","startsWith","localAspects","loadAspectFromPath","componentIds","resolveMultipleComponentIds","import","reFetchUnBuiltVersion","reason","getMany","getResolvedAspects","isolateOpts","getIsolateOpts","network","isolateComponents","c","legacyScope","capsules","seedersCapsules","capsule","RequireableComponent","plugins","getPlugins","path","has","compileIfNoDist","load","MainRuntime","name","aspect","scopeRuntime","getRuntimePath","mainRuntime","runtimePath","compiler","env","getEnv","getCompiler","err","message","distDir","DEFAULT_DIST_DIRNAME","distExists","existsSync","BitError","compiledCode","Promise","all","filesystem","files","flatMap","file","isFileSupported","outputText","contents","outputPath","transpileFile","filePath","componentDir","flat","compiledFile","getDistPathBySrcPath","outputFile","tryCompile","requirableAspect","requireableExtensions","error","erroredId","requireWithCatch","requireableAspects","requireableExtension","doRequire","code","newErr","warn","resolvedAspectsAgain","skipIfExists","manifestAgain","handleExtensionLoadingError","shouldUseDatedCapsules","getSync","CFG_USE_DATED_CAPSULES","shouldCacheLockFileOnly","CFG_CACHE_LOCK_ONLY_CAPSULES","getAspectCapsulePath","defaultPath","isGlobalScope","CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR","CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR","shouldUseHashForCapsules","getAspectsPackageManager","aspectsPackageManager","getAspectsNodeLinker","aspectsNodeLinker","resolveUserAspects","runtimeName","userAspectsIds","aspectDefs","resolveAspects","getCapsule","Error","localPath","aspectFilePath","getAspectFilePath","aspectPath","originalStringIds","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","coreAspectsIds","groupedByIsCore","false","getUserAspects","localResolved","resolveLocalAspects","withoutLocalAspects","aspectId","find","localAspect","toStringWithoutVersion","userAspectsDefs","coreAspectsDefs","getCoreAspectDefs","allDefs","filteredDefs","filterAspectDefs","overrideOpts","installOptions","packageManagerConfigRootDir","context","workspaceName","defaultsDeep","getDefaultIsolateOpts","useHash","useDatedDirs","cacheLockFileOnly","nodeLinker","datedDirId","baseDir","packageManager","seedersOnly","includeFromNestedHosts","host","copyPeerToRuntimeOnRoot","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","aspects","exports"],"sources":["scope-aspects-loader.ts"],"sourcesContent":["import { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport { Lane } from '@teambit/scope.objects';\nimport { existsSync } from 'fs-extra';\nimport { join } from 'path';\nimport {\n DEFAULT_DIST_DIRNAME,\n CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR,\n CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR,\n CFG_USE_DATED_CAPSULES,\n CFG_CACHE_LOCK_ONLY_CAPSULES,\n} from '@teambit/legacy.constants';\nimport { Compiler, TranspileFileOutputOneFile } from '@teambit/compiler';\nimport { Capsule, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { compact, uniq, difference, groupBy, defaultsDeep } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { Logger } from '@teambit/logger';\nimport { EnvsMain } from '@teambit/envs';\nimport { NodeLinker } from '@teambit/dependency-resolver';\nimport { BitError } from '@teambit/bit-error';\nimport { ScopeMain } from './scope.main.runtime';\n\ntype ManifestOrAspect = ExtensionManifest | Aspect;\n\nexport type ScopeLoadAspectsOptions = LoadAspectsOptions & {\n useScopeAspectsCapsule?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n};\n\nexport class ScopeAspectsLoader {\n constructor(\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private isolator: IsolatorMain,\n private logger: Logger,\n private globalConfig: GlobalConfigMain\n ) {}\n\n async loadAspects(\n ids: string[],\n throwOnError = false,\n neededFor?: string,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n if (!ids.length) return [];\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}`);\n const grouped = await this.groupAspectIdsByEnvOfTheList(ids, lane);\n this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.envs, total ${grouped.envs?.length || 0}`);\n const envsManifestsIds = await this.getManifestsAndLoadAspects(grouped.envs, throwOnError, lane, opts);\n this.logger.info(\n `${loggerPrefix} getManifestsAndLoadAspects for grouped.other, total ${grouped.other?.length || 0}`\n );\n const otherManifestsIds = await this.getManifestsAndLoadAspects(grouped.other, throwOnError, lane, opts);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n return envsManifestsIds.concat(otherManifestsIds);\n }\n\n /**\n * This function get's a list of aspect ids and return them grouped by whether any of them is the env of other from the list\n * @param ids\n */\n async groupAspectIdsByEnvOfTheList(ids: string[], lane?: Lane): Promise<{ envs?: string[]; other?: string[] }> {\n const components = await this.getNonLoadedAspects(ids, lane);\n const envsIds = uniq(\n components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId))\n );\n const grouped = groupBy(ids, (id) => {\n if (envsIds.includes(id)) return 'envs';\n return 'other';\n });\n return grouped as { envs: string[]; other: string[] };\n }\n\n private async getManifestsAndLoadAspects(\n ids: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const { manifests: scopeManifests, potentialPluginsIds } = await this.getManifestsGraphRecursively(\n ids,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopeManifests);\n const { manifests: scopePluginsManifests } = await this.getManifestsGraphRecursively(\n potentialPluginsIds,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopePluginsManifests);\n const allManifests = scopeManifests.concat(scopePluginsManifests);\n return compact(allManifests.map((manifest) => manifest.id));\n }\n\n async getManifestsGraphRecursively(\n ids: string[],\n visited: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts: {\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n loadCustomEnvs?: string;\n } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n const optsWithDefaults = { loadCustomEnvs: false, ...opts };\n this.logger.debug(`getManifestsGraphRecursively, ids:\\n${ids.join('\\n')}`);\n const nonVisitedId = ids.filter((id) => !visited.includes(id));\n if (!nonVisitedId.length) {\n return { manifests: [], potentialPluginsIds: [] };\n }\n const components = await this.getNonLoadedAspects(nonVisitedId, lane);\n // This is usually not required, right now it required when signing aspects with custom envs.\n // if you see another case where it's required, please consult @Gilad before passing it as true\n // as it might have performance implications (like creating unnecessary capsules for aspects that are not needed\n // during bit create for example, like loading the env of the env (aka bitdev.general/envs/bit-env) when\n // loading the component's env.)\n if (optsWithDefaults.loadCustomEnvs) {\n // Adding all the envs ids to the array to support case when one (or more) of the aspects has custom aspect env\n const customEnvsIds = components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId));\n\n // In case there is custom env we need to load it right away, otherwise we will fail during the require aspects\n await this.getManifestsAndLoadAspects(customEnvsIds, undefined, lane);\n }\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, optsWithDefaults);\n const potentialPluginsIds = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n // return index;\n return components[index].id.toString();\n })\n );\n\n const depsToLoad: Array<ExtensionManifest | Aspect> = [];\n await mapSeries(manifests, async (manifest) => {\n depsToLoad.push(...(manifest.dependencies || []));\n // @ts-ignore\n (manifest._runtimes || []).forEach((runtime) => {\n depsToLoad.push(...(runtime.dependencies || []));\n });\n const depIds = depsToLoad.map((d) => d.id).filter((id) => id) as string[];\n this.logger.debug(\n `getManifestsGraphRecursively, id: ${manifest.id || '<unknown>'}, found ${depIds.length}: ${depIds.join(', ')}`\n );\n const { manifests: loaded } = await this.getManifestsGraphRecursively(depIds, visited, throwOnError, lane, opts);\n manifests.push(...loaded);\n });\n\n return { manifests, potentialPluginsIds };\n }\n\n private async getNonLoadedAspects(ids: string[], lane?: Lane): Promise<Component[]> {\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(ids, coreAspectsStringIds);\n const aspectIds = idsWithoutCore.filter((id) => !id.startsWith('file://'));\n // TODO: use diff instead of filter twice\n const localAspects = ids.filter((id) => id.startsWith('file://'));\n this.scope.localAspects = uniq(this.scope.localAspects.concat(localAspects));\n // load local aspects for debugging purposes.\n await this.aspectLoader.loadAspectFromPath(localAspects);\n const componentIds = await this.scope.resolveMultipleComponentIds(aspectIds);\n if (!componentIds || !componentIds.length) return [];\n await this.scope.import(componentIds, {\n reFetchUnBuiltVersion: false,\n lane,\n reason: 'for loading aspects from the scope',\n });\n const components = await this.scope.getMany(componentIds);\n\n return components;\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n if (!components || !components.length) return [];\n const isolateOpts = this.getIsolateOpts(opts);\n const network = await this.isolator.isolateComponents(\n components.map((c) => c.id),\n // includeFromNestedHosts - to support case when you are in a workspace, trying to load aspect defined in the workspace.jsonc but not part of the workspace\n isolateOpts,\n this.scope.legacyScope\n );\n\n const capsules = network.seedersCapsules;\n\n return capsules.map((capsule) => {\n return new RequireableComponent(\n capsule.component,\n async () => {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);\n if (plugins.has()) {\n await this.compileIfNoDist(capsule, capsule.component);\n return plugins.load(MainRuntime.name);\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(capsule.path);\n const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');\n const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, MainRuntime.name);\n const runtimePath = scopeRuntime || mainRuntime;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n let compiler: Compiler | undefined;\n try {\n const env = this.envs.getEnv(component);\n compiler = env.env.getCompiler();\n } catch (err: any) {\n this.logger.info(\n `compileIfNoDist: failed loading compiler for ${component.id.toString()} in capsule ${capsule.path}, error: ${\n err.message\n }`\n );\n }\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n if (!compiler) {\n throw new BitError(`unable to compile aspect/env ${component.id.toString()}, no compiler found`);\n }\n\n const compiledCode = (\n await Promise.all(\n component.filesystem.files.flatMap(async (file) => {\n // @ts-ignore - we know it's not null, we have throw error above if yes\n if (!compiler.isFileSupported(file.path)) {\n return [\n {\n outputText: file.contents.toString('utf8'),\n outputPath: file.path,\n },\n ] as TranspileFileOutputOneFile[];\n }\n // @ts-ignore - we know it's not null, we have throw error above if yes\n if (compiler.transpileFile) {\n // @ts-ignore - we know it's not null, we have throw error above if yes\n return compiler.transpileFile(file.contents.toString('utf8'), {\n filePath: file.path,\n componentDir: capsule.path,\n });\n }\n\n return [];\n })\n )\n ).flat();\n\n await Promise.all(\n compact(compiledCode).map((compiledFile) => {\n // @ts-ignore - we know it's not null, we have throw error above if yes\n const path = compiler.getDistPathBySrcPath(compiledFile.outputPath);\n return capsule?.outputFile(path, compiledFile.outputText);\n })\n );\n }\n\n private async tryCompile(requirableAspect: RequireableComponent) {\n if (requirableAspect.capsule) return this.compileIfNoDist(requirableAspect.capsule, requirableAspect.component);\n return undefined;\n }\n\n async requireAspects(\n components: Component[],\n throwOnError = false,\n opts: { packageManagerConfigRootDir?: string; workspaceName?: string } = {}\n ): Promise<Array<ExtensionManifest | Aspect>> {\n const requireableExtensions = await this.getResolvedAspects(components, opts);\n if (!requireableExtensions) {\n return [];\n }\n let error: any;\n let erroredId = '';\n const requireWithCatch = async (requireableAspects: RequireableComponent[]) => {\n error = undefined;\n try {\n const manifests = await mapSeries(requireableAspects, async (requireableExtension) => {\n try {\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (err: any) {\n erroredId = requireableExtension.component.id.toString();\n if (err.code === 'MODULE_NOT_FOUND') {\n try {\n await this.tryCompile(requireableExtension);\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (newErr: any) {\n error = newErr;\n throw newErr;\n }\n }\n error = err;\n throw err;\n }\n });\n return manifests;\n } catch {\n return null;\n }\n };\n const manifests = await requireWithCatch(requireableExtensions);\n if (!error) {\n return compact(manifests);\n }\n if (error.code === 'MODULE_NOT_FOUND') {\n this.logger.warn(\n `failed loading aspects from capsules due to MODULE_NOT_FOUND error, re-creating the capsules and trying again`\n );\n const resolvedAspectsAgain = await this.getResolvedAspects(components, {\n ...opts,\n skipIfExists: false,\n });\n const manifestAgain = await requireWithCatch(resolvedAspectsAgain);\n if (!error) {\n return compact(manifestAgain);\n }\n }\n\n this.aspectLoader.handleExtensionLoadingError(error, erroredId, throwOnError);\n return [];\n }\n\n shouldUseDatedCapsules(): boolean {\n const globalConfig = this.globalConfig.getSync(CFG_USE_DATED_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n shouldCacheLockFileOnly(): boolean {\n const globalConfig = this.globalConfig.getSync(CFG_CACHE_LOCK_ONLY_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n getAspectCapsulePath() {\n const defaultPath = `${this.scope.path}-aspects`;\n if (this.scope.isGlobalScope) {\n return this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n getAspectsPackageManager(): string | undefined {\n return this.scope.aspectsPackageManager;\n }\n\n getAspectsNodeLinker(): NodeLinker | undefined {\n return this.scope.aspectsNodeLinker;\n }\n\n private async resolveUserAspects(\n runtimeName?: string,\n userAspectsIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n if (!userAspectsIds || !userAspectsIds.length) return [];\n const components = await this.scope.getMany(userAspectsIds);\n const isolateOpts = this.getIsolateOpts(opts);\n const network = await this.isolator.isolateComponents(userAspectsIds, isolateOpts, this.scope.legacyScope);\n\n const capsules = network.seedersCapsules;\n const aspectDefs = await this.aspectLoader.resolveAspects(components, async (component) => {\n const capsule = capsules.getCapsule(component.id);\n if (!capsule) throw new Error(`failed loading aspect: ${component.id.toString()}`);\n const localPath = capsule.path;\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `scope resolveUserAspects, resolving id: ${component.id.toString()}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n\n return {\n id: capsule.component.id,\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n });\n return aspectDefs;\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const originalStringIds = componentIds?.map((id) => id.toString());\n this.logger.debug(`scope resolveAspects, runtimeName: ${runtimeName}, componentIds: ${originalStringIds}`);\n\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n let userAspectsIds: ComponentID[];\n // let requestedCoreStringIds;\n if (componentIds && componentIds.length) {\n const groupedByIsCore = groupBy(componentIds, (id) => coreAspectsIds.includes(id.toString()));\n userAspectsIds = groupedByIsCore.false || [];\n // requestedCoreStringIds = groupedByIsCore.true?.map((id) => id.toStringWithoutVersion()) || [];\n } else {\n userAspectsIds = await this.scope.resolveMultipleComponentIds(this.aspectLoader.getUserAspects());\n }\n const localResolved = await this.aspectLoader.resolveLocalAspects(this.scope.localAspects, runtimeName);\n\n const withoutLocalAspects = userAspectsIds.filter((aspectId) => {\n return !localResolved.find((localAspect) => {\n return localAspect.id === aspectId.toStringWithoutVersion();\n });\n });\n const userAspectsDefs = await this.resolveUserAspects(runtimeName, withoutLocalAspects, opts);\n const coreAspectsDefs = await this.aspectLoader.getCoreAspectDefs(runtimeName);\n\n const allDefs = userAspectsDefs.concat(coreAspectsDefs).concat(localResolved);\n // const userAspectsIdsWithoutVersion = userAspectsIds.map((aspectId) => aspectId.toStringWithoutVersion());\n // const userAspectsIdsWithoutVersionAndCoreRequested = userAspectsIdsWithoutVersion.concat(requestedCoreStringIds);\n const filteredDefs = this.aspectLoader.filterAspectDefs(\n allDefs,\n componentIds || userAspectsIds,\n runtimeName,\n mergedOpts\n );\n return filteredDefs;\n }\n\n getIsolateOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const overrideOpts = {\n skipIfExists: opts?.skipIfExists ?? true,\n installOptions: {\n packageManagerConfigRootDir: opts?.packageManagerConfigRootDir,\n },\n context: {\n workspaceName: opts?.workspaceName,\n },\n };\n const isolateOpts = defaultsDeep(overrideOpts, this.getDefaultIsolateOpts());\n return isolateOpts;\n }\n\n getDefaultIsolateOpts() {\n const useHash = this.shouldUseHashForCapsules();\n const useDatedDirs = this.shouldUseDatedCapsules();\n const cacheLockFileOnly = this.shouldCacheLockFileOnly();\n const nodeLinker = this.getAspectsNodeLinker();\n\n const opts = {\n datedDirId: this.scope.name,\n baseDir: this.getAspectCapsulePath(),\n useHash,\n packageManager: this.getAspectsPackageManager(),\n nodeLinker,\n useDatedDirs,\n cacheLockFileOnly,\n skipIfExists: true,\n seedersOnly: true,\n includeFromNestedHosts: true,\n host: this.scope,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n context: {\n aspects: true,\n },\n };\n return opts;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_fsExtra","_path","_legacy","_lodash","_cli","_harmonyModules","_bitError","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ScopeAspectsLoader","constructor","scope","aspectLoader","envs","isolator","logger","globalConfig","loadAspects","ids","throwOnError","neededFor","lane","opts","callId","Math","floor","random","loggerPrefix","info","join","grouped","groupAspectIdsByEnvOfTheList","envsManifestsIds","getManifestsAndLoadAspects","other","otherManifestsIds","debug","concat","components","getNonLoadedAspects","envsIds","uniq","map","component","getEnvId","envId","isCoreEnv","groupBy","id","includes","manifests","scopeManifests","potentialPluginsIds","getManifestsGraphRecursively","loadExtensionsByManifests","scopePluginsManifests","allManifests","compact","manifest","visited","optsWithDefaults","loadCustomEnvs","nonVisitedId","customEnvsIds","undefined","requireAspects","index","isValidAspect","toString","depsToLoad","mapSeries","dependencies","_runtimes","runtime","depIds","d","loaded","notLoadedIds","isAspectLoaded","coreAspectsStringIds","getCoreAspectIds","idsWithoutCore","difference","aspectIds","startsWith","localAspects","loadAspectFromPath","componentIds","resolveMultipleComponentIds","import","reFetchUnBuiltVersion","reason","getMany","getResolvedAspects","isolateOpts","getIsolateOpts","network","isolateComponents","c","legacyScope","capsules","seedersCapsules","capsule","RequireableComponent","plugins","getPlugins","path","has","compileIfNoDist","load","MainRuntime","name","aspect","scopeRuntime","getRuntimePath","mainRuntime","runtimePath","compiler","env","getEnv","getCompiler","err","message","distDir","DEFAULT_DIST_DIRNAME","distExists","existsSync","BitError","compiledCode","Promise","all","filesystem","files","flatMap","file","isFileSupported","outputText","contents","outputPath","transpileFile","filePath","componentDir","flat","compiledFile","getDistPathBySrcPath","outputFile","tryCompile","requirableAspect","requireableExtensions","error","erroredId","requireWithCatch","requireableAspects","requireableExtension","doRequire","code","newErr","warn","resolvedAspectsAgain","skipIfExists","manifestAgain","handleExtensionLoadingError","shouldUseDatedCapsules","getSync","CFG_USE_DATED_CAPSULES","shouldCacheLockFileOnly","CFG_CACHE_LOCK_ONLY_CAPSULES","getAspectCapsulePath","defaultPath","isGlobalScope","CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR","CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR","shouldUseHashForCapsules","getAspectsPackageManager","aspectsPackageManager","getAspectsNodeLinker","aspectsNodeLinker","resolveUserAspects","runtimeName","userAspectsIds","aspectDefs","resolveAspects","getCapsule","Error","localPath","aspectFilePath","getAspectFilePath","aspectPath","originalStringIds","defaultOpts","excludeCore","requestedOnly","filterByRuntime","mergedOpts","coreAspectsIds","groupedByIsCore","false","getUserAspects","localResolved","resolveLocalAspects","withoutLocalAspects","aspectId","find","localAspect","toStringWithoutVersion","userAspectsDefs","coreAspectsDefs","getCoreAspectDefs","allDefs","filteredDefs","filterAspectDefs","overrideOpts","installOptions","packageManagerConfigRootDir","context","workspaceName","defaultsDeep","getDefaultIsolateOpts","useHash","useDatedDirs","cacheLockFileOnly","nodeLinker","datedDirId","baseDir","packageManager","seedersOnly","includeFromNestedHosts","host","copyPeerToRuntimeOnRoot","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","aspects","exports"],"sources":["scope-aspects-loader.ts"],"sourcesContent":["import { GlobalConfigMain } from '@teambit/global-config';\nimport mapSeries from 'p-map-series';\nimport { Lane } from '@teambit/objects';\nimport { existsSync } from 'fs-extra';\nimport { join } from 'path';\nimport {\n DEFAULT_DIST_DIRNAME,\n CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR,\n CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR,\n CFG_USE_DATED_CAPSULES,\n CFG_CACHE_LOCK_ONLY_CAPSULES,\n} from '@teambit/legacy.constants';\nimport { Compiler, TranspileFileOutputOneFile } from '@teambit/compiler';\nimport { Capsule, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport { AspectLoaderMain, AspectDefinition } from '@teambit/aspect-loader';\nimport { compact, uniq, difference, groupBy, defaultsDeep } from 'lodash';\nimport { MainRuntime } from '@teambit/cli';\nimport { RequireableComponent } from '@teambit/harmony.modules.requireable-component';\nimport { ExtensionManifest, Aspect } from '@teambit/harmony';\nimport { Component, ComponentID, LoadAspectsOptions, ResolveAspectsOptions } from '@teambit/component';\nimport { Logger } from '@teambit/logger';\nimport { EnvsMain } from '@teambit/envs';\nimport { NodeLinker } from '@teambit/dependency-resolver';\nimport { BitError } from '@teambit/bit-error';\nimport { ScopeMain } from './scope.main.runtime';\n\ntype ManifestOrAspect = ExtensionManifest | Aspect;\n\nexport type ScopeLoadAspectsOptions = LoadAspectsOptions & {\n useScopeAspectsCapsule?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n};\n\nexport class ScopeAspectsLoader {\n constructor(\n private scope: ScopeMain,\n private aspectLoader: AspectLoaderMain,\n private envs: EnvsMain,\n private isolator: IsolatorMain,\n private logger: Logger,\n private globalConfig: GlobalConfigMain\n ) {}\n\n async loadAspects(\n ids: string[],\n throwOnError = false,\n neededFor?: string,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n if (!ids.length) return [];\n // generate a random callId to be able to identify the call from the logs\n const callId = Math.floor(Math.random() * 1000);\n const loggerPrefix = `[${callId}] loadAspects,`;\n this.logger.info(`${loggerPrefix} loading ${ids.length} aspects.\nids: ${ids.join(', ')}\nneeded-for: ${neededFor || '<unknown>'}`);\n const grouped = await this.groupAspectIdsByEnvOfTheList(ids, lane);\n this.logger.info(`${loggerPrefix} getManifestsAndLoadAspects for grouped.envs, total ${grouped.envs?.length || 0}`);\n const envsManifestsIds = await this.getManifestsAndLoadAspects(grouped.envs, throwOnError, lane, opts);\n this.logger.info(\n `${loggerPrefix} getManifestsAndLoadAspects for grouped.other, total ${grouped.other?.length || 0}`\n );\n const otherManifestsIds = await this.getManifestsAndLoadAspects(grouped.other, throwOnError, lane, opts);\n this.logger.debug(`${loggerPrefix} finish loading aspects`);\n return envsManifestsIds.concat(otherManifestsIds);\n }\n\n /**\n * This function get's a list of aspect ids and return them grouped by whether any of them is the env of other from the list\n * @param ids\n */\n async groupAspectIdsByEnvOfTheList(ids: string[], lane?: Lane): Promise<{ envs?: string[]; other?: string[] }> {\n const components = await this.getNonLoadedAspects(ids, lane);\n const envsIds = uniq(\n components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId))\n );\n const grouped = groupBy(ids, (id) => {\n if (envsIds.includes(id)) return 'envs';\n return 'other';\n });\n return grouped as { envs: string[]; other: string[] };\n }\n\n private async getManifestsAndLoadAspects(\n ids: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts?: ScopeLoadAspectsOptions\n ): Promise<string[]> {\n const { manifests: scopeManifests, potentialPluginsIds } = await this.getManifestsGraphRecursively(\n ids,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopeManifests);\n const { manifests: scopePluginsManifests } = await this.getManifestsGraphRecursively(\n potentialPluginsIds,\n [],\n throwOnError,\n lane,\n opts\n );\n await this.aspectLoader.loadExtensionsByManifests(scopePluginsManifests);\n const allManifests = scopeManifests.concat(scopePluginsManifests);\n return compact(allManifests.map((manifest) => manifest.id));\n }\n\n async getManifestsGraphRecursively(\n ids: string[],\n visited: string[] = [],\n throwOnError = false,\n lane?: Lane,\n opts: {\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n loadCustomEnvs?: string;\n } = {}\n ): Promise<{ manifests: ManifestOrAspect[]; potentialPluginsIds: string[] }> {\n ids = uniq(ids);\n const optsWithDefaults = { loadCustomEnvs: false, ...opts };\n this.logger.debug(`getManifestsGraphRecursively, ids:\\n${ids.join('\\n')}`);\n const nonVisitedId = ids.filter((id) => !visited.includes(id));\n if (!nonVisitedId.length) {\n return { manifests: [], potentialPluginsIds: [] };\n }\n const components = await this.getNonLoadedAspects(nonVisitedId, lane);\n // This is usually not required, right now it required when signing aspects with custom envs.\n // if you see another case where it's required, please consult @Gilad before passing it as true\n // as it might have performance implications (like creating unnecessary capsules for aspects that are not needed\n // during bit create for example, like loading the env of the env (aka bitdev.general/envs/bit-env) when\n // loading the component's env.)\n if (optsWithDefaults.loadCustomEnvs) {\n // Adding all the envs ids to the array to support case when one (or more) of the aspects has custom aspect env\n const customEnvsIds = components\n .map((component) => this.envs.getEnvId(component))\n .filter((envId) => !this.aspectLoader.isCoreEnv(envId));\n\n // In case there is custom env we need to load it right away, otherwise we will fail during the require aspects\n await this.getManifestsAndLoadAspects(customEnvsIds, undefined, lane);\n }\n visited.push(...nonVisitedId);\n const manifests = await this.requireAspects(components, throwOnError, optsWithDefaults);\n const potentialPluginsIds = compact(\n manifests.map((manifest, index) => {\n if (this.aspectLoader.isValidAspect(manifest)) return undefined;\n // return index;\n return components[index].id.toString();\n })\n );\n\n const depsToLoad: Array<ExtensionManifest | Aspect> = [];\n await mapSeries(manifests, async (manifest) => {\n depsToLoad.push(...(manifest.dependencies || []));\n // @ts-ignore\n (manifest._runtimes || []).forEach((runtime) => {\n depsToLoad.push(...(runtime.dependencies || []));\n });\n const depIds = depsToLoad.map((d) => d.id).filter((id) => id) as string[];\n this.logger.debug(\n `getManifestsGraphRecursively, id: ${manifest.id || '<unknown>'}, found ${depIds.length}: ${depIds.join(', ')}`\n );\n const { manifests: loaded } = await this.getManifestsGraphRecursively(depIds, visited, throwOnError, lane, opts);\n manifests.push(...loaded);\n });\n\n return { manifests, potentialPluginsIds };\n }\n\n private async getNonLoadedAspects(ids: string[], lane?: Lane): Promise<Component[]> {\n const notLoadedIds = ids.filter((id) => !this.aspectLoader.isAspectLoaded(id));\n if (!notLoadedIds.length) return [];\n const coreAspectsStringIds = this.aspectLoader.getCoreAspectIds();\n const idsWithoutCore: string[] = difference(ids, coreAspectsStringIds);\n const aspectIds = idsWithoutCore.filter((id) => !id.startsWith('file://'));\n // TODO: use diff instead of filter twice\n const localAspects = ids.filter((id) => id.startsWith('file://'));\n this.scope.localAspects = uniq(this.scope.localAspects.concat(localAspects));\n // load local aspects for debugging purposes.\n await this.aspectLoader.loadAspectFromPath(localAspects);\n const componentIds = await this.scope.resolveMultipleComponentIds(aspectIds);\n if (!componentIds || !componentIds.length) return [];\n await this.scope.import(componentIds, {\n reFetchUnBuiltVersion: false,\n lane,\n reason: 'for loading aspects from the scope',\n });\n const components = await this.scope.getMany(componentIds);\n\n return components;\n }\n\n async getResolvedAspects(\n components: Component[],\n opts?: { skipIfExists?: boolean; packageManagerConfigRootDir?: string; workspaceName?: string }\n ): Promise<RequireableComponent[]> {\n if (!components || !components.length) return [];\n const isolateOpts = this.getIsolateOpts(opts);\n const network = await this.isolator.isolateComponents(\n components.map((c) => c.id),\n // includeFromNestedHosts - to support case when you are in a workspace, trying to load aspect defined in the workspace.jsonc but not part of the workspace\n isolateOpts,\n this.scope.legacyScope\n );\n\n const capsules = network.seedersCapsules;\n\n return capsules.map((capsule) => {\n return new RequireableComponent(\n capsule.component,\n async () => {\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const plugins = this.aspectLoader.getPlugins(capsule.component, capsule.path);\n if (plugins.has()) {\n await this.compileIfNoDist(capsule, capsule.component);\n return plugins.load(MainRuntime.name);\n }\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const aspect = require(capsule.path);\n const scopeRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, 'scope');\n const mainRuntime = await this.aspectLoader.getRuntimePath(capsule.component, capsule.path, MainRuntime.name);\n const runtimePath = scopeRuntime || mainRuntime;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n if (runtimePath) require(runtimePath);\n // eslint-disable-next-line global-require, import/no-dynamic-require\n return aspect;\n },\n capsule\n );\n });\n }\n\n private async compileIfNoDist(capsule: Capsule, component: Component) {\n let compiler: Compiler | undefined;\n try {\n const env = this.envs.getEnv(component);\n compiler = env.env.getCompiler();\n } catch (err: any) {\n this.logger.info(\n `compileIfNoDist: failed loading compiler for ${component.id.toString()} in capsule ${capsule.path}, error: ${\n err.message\n }`\n );\n }\n const distDir = compiler?.distDir || DEFAULT_DIST_DIRNAME;\n const distExists = existsSync(join(capsule.path, distDir));\n if (distExists) return;\n if (!compiler) {\n throw new BitError(`unable to compile aspect/env ${component.id.toString()}, no compiler found`);\n }\n\n const compiledCode = (\n await Promise.all(\n component.filesystem.files.flatMap(async (file) => {\n // @ts-ignore - we know it's not null, we have throw error above if yes\n if (!compiler.isFileSupported(file.path)) {\n return [\n {\n outputText: file.contents.toString('utf8'),\n outputPath: file.path,\n },\n ] as TranspileFileOutputOneFile[];\n }\n // @ts-ignore - we know it's not null, we have throw error above if yes\n if (compiler.transpileFile) {\n // @ts-ignore - we know it's not null, we have throw error above if yes\n return compiler.transpileFile(file.contents.toString('utf8'), {\n filePath: file.path,\n componentDir: capsule.path,\n });\n }\n\n return [];\n })\n )\n ).flat();\n\n await Promise.all(\n compact(compiledCode).map((compiledFile) => {\n // @ts-ignore - we know it's not null, we have throw error above if yes\n const path = compiler.getDistPathBySrcPath(compiledFile.outputPath);\n return capsule?.outputFile(path, compiledFile.outputText);\n })\n );\n }\n\n private async tryCompile(requirableAspect: RequireableComponent) {\n if (requirableAspect.capsule) return this.compileIfNoDist(requirableAspect.capsule, requirableAspect.component);\n return undefined;\n }\n\n async requireAspects(\n components: Component[],\n throwOnError = false,\n opts: { packageManagerConfigRootDir?: string; workspaceName?: string } = {}\n ): Promise<Array<ExtensionManifest | Aspect>> {\n const requireableExtensions = await this.getResolvedAspects(components, opts);\n if (!requireableExtensions) {\n return [];\n }\n let error: any;\n let erroredId = '';\n const requireWithCatch = async (requireableAspects: RequireableComponent[]) => {\n error = undefined;\n try {\n const manifests = await mapSeries(requireableAspects, async (requireableExtension) => {\n try {\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (err: any) {\n erroredId = requireableExtension.component.id.toString();\n if (err.code === 'MODULE_NOT_FOUND') {\n try {\n await this.tryCompile(requireableExtension);\n return await this.aspectLoader.doRequire(requireableExtension);\n } catch (newErr: any) {\n error = newErr;\n throw newErr;\n }\n }\n error = err;\n throw err;\n }\n });\n return manifests;\n } catch {\n return null;\n }\n };\n const manifests = await requireWithCatch(requireableExtensions);\n if (!error) {\n return compact(manifests);\n }\n if (error.code === 'MODULE_NOT_FOUND') {\n this.logger.warn(\n `failed loading aspects from capsules due to MODULE_NOT_FOUND error, re-creating the capsules and trying again`\n );\n const resolvedAspectsAgain = await this.getResolvedAspects(components, {\n ...opts,\n skipIfExists: false,\n });\n const manifestAgain = await requireWithCatch(resolvedAspectsAgain);\n if (!error) {\n return compact(manifestAgain);\n }\n }\n\n this.aspectLoader.handleExtensionLoadingError(error, erroredId, throwOnError);\n return [];\n }\n\n shouldUseDatedCapsules(): boolean {\n const globalConfig = this.globalConfig.getSync(CFG_USE_DATED_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n shouldCacheLockFileOnly(): boolean {\n const globalConfig = this.globalConfig.getSync(CFG_CACHE_LOCK_ONLY_CAPSULES);\n // @ts-ignore\n return globalConfig === true || globalConfig === 'true';\n }\n\n getAspectCapsulePath() {\n const defaultPath = `${this.scope.path}-aspects`;\n if (this.scope.isGlobalScope) {\n return this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR) || defaultPath;\n }\n return this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR) || defaultPath;\n }\n\n shouldUseHashForCapsules(): boolean {\n if (this.scope.isGlobalScope) {\n return !this.globalConfig.getSync(CFG_CAPSULES_GLOBAL_SCOPE_ASPECTS_BASE_DIR);\n }\n return !this.globalConfig.getSync(CFG_CAPSULES_SCOPES_ASPECTS_BASE_DIR);\n }\n\n getAspectsPackageManager(): string | undefined {\n return this.scope.aspectsPackageManager;\n }\n\n getAspectsNodeLinker(): NodeLinker | undefined {\n return this.scope.aspectsNodeLinker;\n }\n\n private async resolveUserAspects(\n runtimeName?: string,\n userAspectsIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n if (!userAspectsIds || !userAspectsIds.length) return [];\n const components = await this.scope.getMany(userAspectsIds);\n const isolateOpts = this.getIsolateOpts(opts);\n const network = await this.isolator.isolateComponents(userAspectsIds, isolateOpts, this.scope.legacyScope);\n\n const capsules = network.seedersCapsules;\n const aspectDefs = await this.aspectLoader.resolveAspects(components, async (component) => {\n const capsule = capsules.getCapsule(component.id);\n if (!capsule) throw new Error(`failed loading aspect: ${component.id.toString()}`);\n const localPath = capsule.path;\n const runtimePath = runtimeName\n ? await this.aspectLoader.getRuntimePath(component, localPath, runtimeName)\n : null;\n const aspectFilePath = await this.aspectLoader.getAspectFilePath(component, localPath);\n\n this.logger.debug(\n `scope resolveUserAspects, resolving id: ${component.id.toString()}, localPath: ${localPath}, runtimePath: ${runtimePath}`\n );\n\n return {\n id: capsule.component.id,\n aspectPath: localPath,\n aspectFilePath,\n runtimePath,\n };\n });\n return aspectDefs;\n }\n\n async resolveAspects(\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ): Promise<AspectDefinition[]> {\n const originalStringIds = componentIds?.map((id) => id.toString());\n this.logger.debug(`scope resolveAspects, runtimeName: ${runtimeName}, componentIds: ${originalStringIds}`);\n\n const defaultOpts: ResolveAspectsOptions = {\n excludeCore: false,\n requestedOnly: false,\n filterByRuntime: true,\n };\n const mergedOpts = { ...defaultOpts, ...opts };\n const coreAspectsIds = this.aspectLoader.getCoreAspectIds();\n let userAspectsIds: ComponentID[];\n // let requestedCoreStringIds;\n if (componentIds && componentIds.length) {\n const groupedByIsCore = groupBy(componentIds, (id) => coreAspectsIds.includes(id.toString()));\n userAspectsIds = groupedByIsCore.false || [];\n // requestedCoreStringIds = groupedByIsCore.true?.map((id) => id.toStringWithoutVersion()) || [];\n } else {\n userAspectsIds = await this.scope.resolveMultipleComponentIds(this.aspectLoader.getUserAspects());\n }\n const localResolved = await this.aspectLoader.resolveLocalAspects(this.scope.localAspects, runtimeName);\n\n const withoutLocalAspects = userAspectsIds.filter((aspectId) => {\n return !localResolved.find((localAspect) => {\n return localAspect.id === aspectId.toStringWithoutVersion();\n });\n });\n const userAspectsDefs = await this.resolveUserAspects(runtimeName, withoutLocalAspects, opts);\n const coreAspectsDefs = await this.aspectLoader.getCoreAspectDefs(runtimeName);\n\n const allDefs = userAspectsDefs.concat(coreAspectsDefs).concat(localResolved);\n // const userAspectsIdsWithoutVersion = userAspectsIds.map((aspectId) => aspectId.toStringWithoutVersion());\n // const userAspectsIdsWithoutVersionAndCoreRequested = userAspectsIdsWithoutVersion.concat(requestedCoreStringIds);\n const filteredDefs = this.aspectLoader.filterAspectDefs(\n allDefs,\n componentIds || userAspectsIds,\n runtimeName,\n mergedOpts\n );\n return filteredDefs;\n }\n\n getIsolateOpts(opts?: {\n skipIfExists?: boolean;\n packageManagerConfigRootDir?: string;\n workspaceName?: string;\n }): IsolateComponentsOptions {\n const overrideOpts = {\n skipIfExists: opts?.skipIfExists ?? true,\n installOptions: {\n packageManagerConfigRootDir: opts?.packageManagerConfigRootDir,\n },\n context: {\n workspaceName: opts?.workspaceName,\n },\n };\n const isolateOpts = defaultsDeep(overrideOpts, this.getDefaultIsolateOpts());\n return isolateOpts;\n }\n\n getDefaultIsolateOpts() {\n const useHash = this.shouldUseHashForCapsules();\n const useDatedDirs = this.shouldUseDatedCapsules();\n const cacheLockFileOnly = this.shouldCacheLockFileOnly();\n const nodeLinker = this.getAspectsNodeLinker();\n\n const opts = {\n datedDirId: this.scope.name,\n baseDir: this.getAspectCapsulePath(),\n useHash,\n packageManager: this.getAspectsPackageManager(),\n nodeLinker,\n useDatedDirs,\n cacheLockFileOnly,\n skipIfExists: true,\n seedersOnly: true,\n includeFromNestedHosts: true,\n host: this.scope,\n installOptions: {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n },\n context: {\n aspects: true,\n },\n };\n return opts;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,9 +25,9 @@ function _semver() {
25
25
  };
26
26
  return data;
27
27
  }
28
- function _scope() {
29
- const data = require("@teambit/scope.objects");
30
- _scope = function () {
28
+ function _objects() {
29
+ const data = require("@teambit/objects");
30
+ _objects = function () {
31
31
  return data;
32
32
  };
33
33
  return data;
@@ -88,7 +88,7 @@ class ScopeComponentLoader {
88
88
  }
89
89
  if (!modelComponent) return undefined;
90
90
  const versionStr = id.hasVersion() ? id.version : modelComponent.getHeadRegardlessOfLaneAsTagOrHash(true);
91
- if (versionStr === _scope().VERSION_ZERO) return undefined;
91
+ if (versionStr === _objects().VERSION_ZERO) return undefined;
92
92
  const newId = id.changeVersion(versionStr);
93
93
  const version = await modelComponent.loadVersion(versionStr, this.scope.legacyScope.objects);
94
94
  const versionOriginId = version.originId;
@@ -145,13 +145,13 @@ class ScopeComponentLoader {
145
145
  });
146
146
  }
147
147
  async getState(id, hash) {
148
- const version = await this.scope.legacyScope.objects.load(new (_scope().Ref)(hash));
148
+ const version = await this.scope.legacyScope.objects.load(new (_objects().Ref)(hash));
149
149
  return this.createStateFromVersion(id, version);
150
150
  }
151
151
  async getSnap(id, hash) {
152
152
  const getVersionObject = async () => {
153
153
  try {
154
- const snap = await this.scope.legacyScope.objects.load(new (_scope().Ref)(hash), true);
154
+ const snap = await this.scope.legacyScope.objects.load(new (_objects().Ref)(hash), true);
155
155
  return snap;
156
156
  } catch (err) {
157
157
  if (err.code === 'ENOENT') {
@@ -1 +1 @@
1
- {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_semver","_scope","_bitError","_harmonyModules","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","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","undefined","versionStr","hasVersion","version","getHeadRegardlessOfLaneAsTagOrHash","VERSION_ZERO","newId","changeVersion","loadVersion","objects","versionOriginId","originId","isEqualWithoutVersion","BitError","toStringWithoutVersion","snap","getHeadSnap","state","createStateFromVersion","tagMap","getTagMap","component","Component","getFromConsumerComponent","consumerComponent","getModelComponent","pendingVersion","getRemoteComponent","fromMain","compImport","scopeImporter","objectList","getAll","forEach","obj","setCache","headAsTag","getHeadAsTagIfExist","idToLoad","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","consumerComponentOptional","State","Config","componentExtension","createAspectListFromLegacy","extensions","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.consumer-component';\nimport { VERSION_ZERO, Ref, ModelComponent, Version } from '@teambit/scope.objects';\nimport { BitError } from '@teambit/bit-error';\nimport { getMaxSizeForComponents, InMemoryCache, createInMemoryCache } from '@teambit/harmony.modules.in-memory-cache';\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(\n private scope: ScopeMain,\n private logger: Logger\n ) {\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 versionOriginId = version.originId;\n if (versionOriginId && !versionOriginId.isEqualWithoutVersion(id)) {\n throw new BitError(\n `version \"${versionStr}\" seem to be originated from \"${versionOriginId.toString()}\", not from \"${id.toStringWithoutVersion()}\"`\n );\n }\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 id = consumerComponent.id;\n const modelComponent = await this.scope.legacyScope.getModelComponent(id);\n // :TODO move to head snap once we have it merged, for now using `latest`.\n const version =\n consumerComponent.pendingVersion ||\n (await modelComponent.loadVersion(id.version as string, this.scope.legacyScope.objects));\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version, consumerComponent);\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, fromMain = false): 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 modelComponent = await this.scope.legacyScope.getModelComponent(id);\n const headAsTag = modelComponent.getHeadAsTagIfExist();\n const idToLoad = fromMain && headAsTag ? id.changeVersion(headAsTag) : id;\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(idToLoad);\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(\n id: ComponentID,\n version: Version,\n consumerComponentOptional?: ConsumerComponent\n ): Promise<State> {\n const consumerComponent = consumerComponentOptional || (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(consumerComponent),\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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","ignoreList":[]}
1
+ {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_semver","_objects","_bitError","_harmonyModules","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","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","undefined","versionStr","hasVersion","version","getHeadRegardlessOfLaneAsTagOrHash","VERSION_ZERO","newId","changeVersion","loadVersion","objects","versionOriginId","originId","isEqualWithoutVersion","BitError","toStringWithoutVersion","snap","getHeadSnap","state","createStateFromVersion","tagMap","getTagMap","component","Component","getFromConsumerComponent","consumerComponent","getModelComponent","pendingVersion","getRemoteComponent","fromMain","compImport","scopeImporter","objectList","getAll","forEach","obj","setCache","headAsTag","getHeadAsTagIfExist","idToLoad","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","consumerComponentOptional","State","Config","componentExtension","createAspectListFromLegacy","extensions","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.consumer-component';\nimport { VERSION_ZERO, Ref, ModelComponent, Version } from '@teambit/objects';\nimport { BitError } from '@teambit/bit-error';\nimport { getMaxSizeForComponents, InMemoryCache, createInMemoryCache } from '@teambit/harmony.modules.in-memory-cache';\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(\n private scope: ScopeMain,\n private logger: Logger\n ) {\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 versionOriginId = version.originId;\n if (versionOriginId && !versionOriginId.isEqualWithoutVersion(id)) {\n throw new BitError(\n `version \"${versionStr}\" seem to be originated from \"${versionOriginId.toString()}\", not from \"${id.toStringWithoutVersion()}\"`\n );\n }\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 id = consumerComponent.id;\n const modelComponent = await this.scope.legacyScope.getModelComponent(id);\n // :TODO move to head snap once we have it merged, for now using `latest`.\n const version =\n consumerComponent.pendingVersion ||\n (await modelComponent.loadVersion(id.version as string, this.scope.legacyScope.objects));\n const snap = await this.getHeadSnap(modelComponent);\n const state = await this.createStateFromVersion(id, version, consumerComponent);\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, fromMain = false): 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 modelComponent = await this.scope.legacyScope.getModelComponent(id);\n const headAsTag = modelComponent.getHeadAsTagIfExist();\n const idToLoad = fromMain && headAsTag ? id.changeVersion(headAsTag) : id;\n const consumerComponent = await this.scope.legacyScope.getConsumerComponent(idToLoad);\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(\n id: ComponentID,\n version: Version,\n consumerComponentOptional?: ConsumerComponent\n ): Promise<State> {\n const consumerComponent = consumerComponentOptional || (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(consumerComponent),\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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","ignoreList":[]}
@@ -13,7 +13,7 @@ import { LoggerMain, Logger } from '@teambit/logger';
13
13
  import { ExpressMain } from '@teambit/express';
14
14
  import type { UiMain } from '@teambit/ui';
15
15
  import { ComponentIdList, ComponentID } from '@teambit/component-id';
16
- import { DependenciesGraph, DepEdge, ObjectList, ModelComponent, Lane, Version } from '@teambit/scope.objects';
16
+ import { DependenciesGraph, DepEdge, ObjectList, ModelComponent, Lane, Version } from '@teambit/objects';
17
17
  import { Scope as LegacyScope, LegacyOnTagResult, Types } from '@teambit/legacy.scope';
18
18
  import { LegacyComponentLog as ComponentLog } from '@teambit/legacy-component-log';
19
19
  import { DependencyResolverMain, NodeLinker } from '@teambit/dependency-resolver';