@teambit/objects 0.0.449 → 0.0.451

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.
@@ -25,6 +25,13 @@ function _stream() {
25
25
  };
26
26
  return data;
27
27
  }
28
+ function _lodash() {
29
+ const data = require("lodash");
30
+ _lodash = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
28
35
  function _legacy() {
29
36
  const data = require("@teambit/legacy.logger");
30
37
  _legacy = function () {
@@ -177,7 +184,11 @@ class ObjectsReadableGenerator {
177
184
  });
178
185
  const missingParentsHashes = allParentsHashes.filter(h => !h.isEqual(version.hash()));
179
186
  const parentVersions = await (0, _pMapSeries().default)(missingParentsHashes, parentHash => parentHash.load(this.repo));
180
- allVersions.push(...parentVersions);
187
+ const nullParentHashes = missingParentsHashes.filter((_, i) => !parentVersions[i]);
188
+ if (nullParentHashes.length) {
189
+ _legacy().logger.warn(`ObjectsReadableGenerator.pushComponentObjects: failed loading ${nullParentHashes.length} parent version(s) for ${component.id()} (version: ${componentWithOptions.version}), missing: ${nullParentHashes.join(', ')}`);
190
+ }
191
+ allVersions.push(...(0, _lodash().compact)(parentVersions));
181
192
  // note: don't bring the head. otherwise, component-delta of the head won't bring all history of this comp.
182
193
  }
183
194
  allVersions.push(version);
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_bitError","_stream","_legacy","_component","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ObjectsReadableGenerator","constructor","repo","callbackOnceDone","readable","Readable","objectMode","read","pushObjectsToReadable","componentsWithOptions","pushScopeMeta","pMapSeries","componentWithOptions","pushComponentObjects","closeReadableSuccessfully","err","closeReadableFailure","pushLanes","lanesToFetch","lanesHistory","lanesItems","Promise","all","map","laneToFetch","bitObjectToItem","laneHistoryItems","laneHistory","pushManyObjects","pushObjects","refs","scope","ref","objectItem","getObjectGracefully","push","logger","debug","pushed","length","error","destroy","obj","hash","buffer","compress","type","getType","getObjectItem","warn","toString","message","scopeMeta","getScopeMetaObject","hashStr","includes","trace","objects","component","collectParents","collectArtifacts","collectParentsUntil","includeVersionHistory","version","loadVersion","BitError","id","isEqual","collectVersionObjects","ver","versionRefs","refsWithOptions","missingVersionRefs","filter","versionObjects","collectManyObjects","versionData","asRaw","componentData","allVersions","versionHistory","getAndPopulateVersionHistory","versionHistoryData","allParentsHashes","getAllVersionHashesMemoized","modelComponent","startFrom","stopAt","undefined","missingParentsHashes","h","parentVersions","parentHash","load","exports"],"sources":["objects-readable-generator.ts"],"sourcesContent":["import pMapSeries from 'p-map-series';\nimport { BitError } from '@teambit/bit-error';\nimport { Readable } from 'stream';\nimport type BitObject from './object';\nimport type Repository from './repository';\nimport type Ref from './ref';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { logger } from '@teambit/legacy.logger';\nimport { getAllVersionHashesMemoized } from '@teambit/component.snap-distance';\nimport type { Lane, LaneHistory, ModelComponent, Version } from '../models';\nimport type { ObjectItem } from './object-list';\n\nexport type ComponentWithCollectOptions = {\n component: ModelComponent;\n version: string;\n collectParents: boolean;\n collectParentsUntil?: Ref | null; // stop traversing when this hash found. helps to import only the delta.\n collectArtifacts: boolean;\n includeVersionHistory?: boolean; // send VersionHistory object if exists rather than collecting parents\n};\n\nexport class ObjectsReadableGenerator {\n public readable: Readable;\n private pushed: string[] = [];\n constructor(\n private repo: Repository,\n private callbackOnceDone: Function\n ) {\n this.readable = new Readable({ objectMode: true, read() {} });\n }\n async pushObjectsToReadable(componentsWithOptions: ComponentWithCollectOptions[]) {\n try {\n await this.pushScopeMeta();\n await pMapSeries(componentsWithOptions, async (componentWithOptions) =>\n this.pushComponentObjects(componentWithOptions)\n );\n this.closeReadableSuccessfully();\n } catch (err: any) {\n this.closeReadableFailure(err);\n }\n }\n\n async pushLanes(lanesToFetch: Lane[], lanesHistory: LaneHistory[] = []) {\n try {\n const lanesItems = await Promise.all(lanesToFetch.map((laneToFetch) => this.bitObjectToItem(laneToFetch)));\n const laneHistoryItems = await Promise.all(lanesHistory.map((laneHistory) => this.bitObjectToItem(laneHistory)));\n this.pushManyObjects([...lanesItems, ...laneHistoryItems]);\n this.closeReadableSuccessfully();\n } catch (err: any) {\n this.closeReadableFailure(err);\n }\n }\n\n async pushObjects(refs: Ref[], scope: Scope) {\n try {\n await pMapSeries(refs, async (ref) => {\n const objectItem = await this.getObjectGracefully(ref, scope);\n if (objectItem) this.push(objectItem);\n });\n this.closeReadableSuccessfully();\n } catch (err: any) {\n this.closeReadableFailure(err);\n }\n }\n\n private closeReadableSuccessfully() {\n logger.debug(`ObjectsReadableGenerator, pushed ${this.pushed.length} objects`);\n this.callbackOnceDone();\n this.readable.push(null);\n }\n\n private closeReadableFailure(err: Error) {\n logger.debug(`ObjectsReadableGenerator, pushed ${this.pushed.length} objects`);\n logger.error(`ObjectsReadableGenerator, got an error`, err);\n this.callbackOnceDone(err);\n this.readable.destroy(err);\n }\n\n private async bitObjectToItem(obj: BitObject): Promise<ObjectItem> {\n return {\n ref: obj.hash(),\n buffer: await obj.compress(),\n type: obj.getType(),\n };\n }\n\n private async getObjectGracefully(ref: Ref, scope: Scope) {\n try {\n return await scope.getObjectItem(ref);\n } catch (err: any) {\n logger.warn(\n `getObjectGracefully: failed retrieving an object ${ref.toString()} from the filesystem.\\n${err.message}`\n );\n return null;\n }\n }\n\n private async pushScopeMeta() {\n const scopeMeta = await this.repo.getScopeMetaObject();\n this.push(scopeMeta);\n }\n\n private push(obj: ObjectItem) {\n const hashStr = obj.ref.toString();\n if (this.pushed.includes(hashStr)) {\n return;\n }\n logger.trace('ObjectsReadableGenerator.push', hashStr);\n this.readable.push(obj);\n this.pushed.push(hashStr);\n }\n private pushManyObjects(objects: ObjectItem[]) {\n objects.map((obj) => this.push(obj));\n }\n\n private async pushComponentObjects(componentWithOptions: ComponentWithCollectOptions): Promise<void> {\n const { component, collectParents, collectArtifacts, collectParentsUntil, includeVersionHistory } =\n componentWithOptions;\n const version = await component.loadVersion(componentWithOptions.version, this.repo, false);\n if (!version) throw new BitError(`failed loading version ${componentWithOptions.version} of ${component.id()}`);\n if (collectParentsUntil && version.hash().isEqual(collectParentsUntil)) {\n return;\n }\n const collectVersionObjects = async (ver: Version): Promise<ObjectItem[]> => {\n const versionRefs = ver.refsWithOptions(false, collectArtifacts);\n const missingVersionRefs = versionRefs.filter((ref) => !this.pushed.includes(ref.toString()));\n const versionObjects = await ver.collectManyObjects(this.repo, missingVersionRefs);\n const versionData = { ref: ver.hash(), buffer: await ver.asRaw(this.repo), type: ver.getType() };\n return [...versionObjects, versionData];\n };\n if (!this.pushed.includes(component.hash().toString())) {\n const componentData = {\n ref: component.hash(),\n buffer: await component.asRaw(this.repo),\n type: component.getType(),\n };\n this.push(componentData);\n }\n const allVersions: Version[] = [];\n if (includeVersionHistory) {\n const versionHistory = await component.getAndPopulateVersionHistory(this.repo, version.hash());\n const versionHistoryData = {\n ref: versionHistory.hash(),\n buffer: await versionHistory.asRaw(this.repo),\n type: versionHistory.getType(),\n };\n this.push(versionHistoryData);\n }\n if (collectParents) {\n const allParentsHashes = await getAllVersionHashesMemoized({\n modelComponent: component,\n repo: this.repo,\n startFrom: version.hash(),\n stopAt: collectParentsUntil ? [collectParentsUntil] : undefined,\n });\n const missingParentsHashes = allParentsHashes.filter((h) => !h.isEqual(version.hash()));\n const parentVersions = await pMapSeries(missingParentsHashes, (parentHash) => parentHash.load(this.repo));\n allVersions.push(...(parentVersions as unknown as Version[]));\n // note: don't bring the head. otherwise, component-delta of the head won't bring all history of this comp.\n }\n allVersions.push(version);\n await pMapSeries(allVersions, async (ver) => {\n const versionObjects = await collectVersionObjects(ver);\n this.pushManyObjects(versionObjects);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_bitError","_stream","_lodash","_legacy","_component","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ObjectsReadableGenerator","constructor","repo","callbackOnceDone","readable","Readable","objectMode","read","pushObjectsToReadable","componentsWithOptions","pushScopeMeta","pMapSeries","componentWithOptions","pushComponentObjects","closeReadableSuccessfully","err","closeReadableFailure","pushLanes","lanesToFetch","lanesHistory","lanesItems","Promise","all","map","laneToFetch","bitObjectToItem","laneHistoryItems","laneHistory","pushManyObjects","pushObjects","refs","scope","ref","objectItem","getObjectGracefully","push","logger","debug","pushed","length","error","destroy","obj","hash","buffer","compress","type","getType","getObjectItem","warn","toString","message","scopeMeta","getScopeMetaObject","hashStr","includes","trace","objects","component","collectParents","collectArtifacts","collectParentsUntil","includeVersionHistory","version","loadVersion","BitError","id","isEqual","collectVersionObjects","ver","versionRefs","refsWithOptions","missingVersionRefs","filter","versionObjects","collectManyObjects","versionData","asRaw","componentData","allVersions","versionHistory","getAndPopulateVersionHistory","versionHistoryData","allParentsHashes","getAllVersionHashesMemoized","modelComponent","startFrom","stopAt","undefined","missingParentsHashes","h","parentVersions","parentHash","load","nullParentHashes","_","join","compact","exports"],"sources":["objects-readable-generator.ts"],"sourcesContent":["import pMapSeries from 'p-map-series';\nimport { BitError } from '@teambit/bit-error';\nimport { Readable } from 'stream';\nimport { compact } from 'lodash';\nimport type BitObject from './object';\nimport type Repository from './repository';\nimport type Ref from './ref';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { logger } from '@teambit/legacy.logger';\nimport { getAllVersionHashesMemoized } from '@teambit/component.snap-distance';\nimport type { Lane, LaneHistory, ModelComponent, Version } from '../models';\nimport type { ObjectItem } from './object-list';\n\nexport type ComponentWithCollectOptions = {\n component: ModelComponent;\n version: string;\n collectParents: boolean;\n collectParentsUntil?: Ref | null; // stop traversing when this hash found. helps to import only the delta.\n collectArtifacts: boolean;\n includeVersionHistory?: boolean; // send VersionHistory object if exists rather than collecting parents\n};\n\nexport class ObjectsReadableGenerator {\n public readable: Readable;\n private pushed: string[] = [];\n constructor(\n private repo: Repository,\n private callbackOnceDone: Function\n ) {\n this.readable = new Readable({ objectMode: true, read() {} });\n }\n async pushObjectsToReadable(componentsWithOptions: ComponentWithCollectOptions[]) {\n try {\n await this.pushScopeMeta();\n await pMapSeries(componentsWithOptions, async (componentWithOptions) =>\n this.pushComponentObjects(componentWithOptions)\n );\n this.closeReadableSuccessfully();\n } catch (err: any) {\n this.closeReadableFailure(err);\n }\n }\n\n async pushLanes(lanesToFetch: Lane[], lanesHistory: LaneHistory[] = []) {\n try {\n const lanesItems = await Promise.all(lanesToFetch.map((laneToFetch) => this.bitObjectToItem(laneToFetch)));\n const laneHistoryItems = await Promise.all(lanesHistory.map((laneHistory) => this.bitObjectToItem(laneHistory)));\n this.pushManyObjects([...lanesItems, ...laneHistoryItems]);\n this.closeReadableSuccessfully();\n } catch (err: any) {\n this.closeReadableFailure(err);\n }\n }\n\n async pushObjects(refs: Ref[], scope: Scope) {\n try {\n await pMapSeries(refs, async (ref) => {\n const objectItem = await this.getObjectGracefully(ref, scope);\n if (objectItem) this.push(objectItem);\n });\n this.closeReadableSuccessfully();\n } catch (err: any) {\n this.closeReadableFailure(err);\n }\n }\n\n private closeReadableSuccessfully() {\n logger.debug(`ObjectsReadableGenerator, pushed ${this.pushed.length} objects`);\n this.callbackOnceDone();\n this.readable.push(null);\n }\n\n private closeReadableFailure(err: Error) {\n logger.debug(`ObjectsReadableGenerator, pushed ${this.pushed.length} objects`);\n logger.error(`ObjectsReadableGenerator, got an error`, err);\n this.callbackOnceDone(err);\n this.readable.destroy(err);\n }\n\n private async bitObjectToItem(obj: BitObject): Promise<ObjectItem> {\n return {\n ref: obj.hash(),\n buffer: await obj.compress(),\n type: obj.getType(),\n };\n }\n\n private async getObjectGracefully(ref: Ref, scope: Scope) {\n try {\n return await scope.getObjectItem(ref);\n } catch (err: any) {\n logger.warn(\n `getObjectGracefully: failed retrieving an object ${ref.toString()} from the filesystem.\\n${err.message}`\n );\n return null;\n }\n }\n\n private async pushScopeMeta() {\n const scopeMeta = await this.repo.getScopeMetaObject();\n this.push(scopeMeta);\n }\n\n private push(obj: ObjectItem) {\n const hashStr = obj.ref.toString();\n if (this.pushed.includes(hashStr)) {\n return;\n }\n logger.trace('ObjectsReadableGenerator.push', hashStr);\n this.readable.push(obj);\n this.pushed.push(hashStr);\n }\n private pushManyObjects(objects: ObjectItem[]) {\n objects.map((obj) => this.push(obj));\n }\n\n private async pushComponentObjects(componentWithOptions: ComponentWithCollectOptions): Promise<void> {\n const { component, collectParents, collectArtifacts, collectParentsUntil, includeVersionHistory } =\n componentWithOptions;\n const version = await component.loadVersion(componentWithOptions.version, this.repo, false);\n if (!version) throw new BitError(`failed loading version ${componentWithOptions.version} of ${component.id()}`);\n if (collectParentsUntil && version.hash().isEqual(collectParentsUntil)) {\n return;\n }\n const collectVersionObjects = async (ver: Version): Promise<ObjectItem[]> => {\n const versionRefs = ver.refsWithOptions(false, collectArtifacts);\n const missingVersionRefs = versionRefs.filter((ref) => !this.pushed.includes(ref.toString()));\n const versionObjects = await ver.collectManyObjects(this.repo, missingVersionRefs);\n const versionData = { ref: ver.hash(), buffer: await ver.asRaw(this.repo), type: ver.getType() };\n return [...versionObjects, versionData];\n };\n if (!this.pushed.includes(component.hash().toString())) {\n const componentData = {\n ref: component.hash(),\n buffer: await component.asRaw(this.repo),\n type: component.getType(),\n };\n this.push(componentData);\n }\n const allVersions: Version[] = [];\n if (includeVersionHistory) {\n const versionHistory = await component.getAndPopulateVersionHistory(this.repo, version.hash());\n const versionHistoryData = {\n ref: versionHistory.hash(),\n buffer: await versionHistory.asRaw(this.repo),\n type: versionHistory.getType(),\n };\n this.push(versionHistoryData);\n }\n if (collectParents) {\n const allParentsHashes = await getAllVersionHashesMemoized({\n modelComponent: component,\n repo: this.repo,\n startFrom: version.hash(),\n stopAt: collectParentsUntil ? [collectParentsUntil] : undefined,\n });\n const missingParentsHashes = allParentsHashes.filter((h) => !h.isEqual(version.hash()));\n const parentVersions = await pMapSeries(missingParentsHashes, (parentHash) => parentHash.load(this.repo));\n const nullParentHashes = missingParentsHashes.filter((_, i) => !parentVersions[i]);\n if (nullParentHashes.length) {\n logger.warn(\n `ObjectsReadableGenerator.pushComponentObjects: failed loading ${nullParentHashes.length} parent version(s) for ${component.id()} (version: ${componentWithOptions.version}), missing: ${nullParentHashes.join(', ')}`\n );\n }\n allVersions.push(...(compact(parentVersions) as Version[]));\n // note: don't bring the head. otherwise, component-delta of the head won't bring all history of this comp.\n }\n allVersions.push(version);\n await pMapSeries(allVersions, async (ver) => {\n const versionObjects = await collectVersionObjects(ver);\n this.pushManyObjects(versionObjects);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import pMapSeries from 'p-map-series';
2
2
  import { BitError } from '@teambit/bit-error';
3
3
  import { Readable } from 'stream';
4
+ import { compact } from 'lodash';
4
5
  import type BitObject from './object';
5
6
  import type Repository from './repository';
6
7
  import type Ref from './ref';
@@ -155,7 +156,13 @@ export class ObjectsReadableGenerator {
155
156
  });
156
157
  const missingParentsHashes = allParentsHashes.filter((h) => !h.isEqual(version.hash()));
157
158
  const parentVersions = await pMapSeries(missingParentsHashes, (parentHash) => parentHash.load(this.repo));
158
- allVersions.push(...(parentVersions as unknown as Version[]));
159
+ const nullParentHashes = missingParentsHashes.filter((_, i) => !parentVersions[i]);
160
+ if (nullParentHashes.length) {
161
+ logger.warn(
162
+ `ObjectsReadableGenerator.pushComponentObjects: failed loading ${nullParentHashes.length} parent version(s) for ${component.id()} (version: ${componentWithOptions.version}), missing: ${nullParentHashes.join(', ')}`
163
+ );
164
+ }
165
+ allVersions.push(...(compact(parentVersions) as Version[]));
159
166
  // note: don't bring the head. otherwise, component-delta of the head won't bring all history of this comp.
160
167
  }
161
168
  allVersions.push(version);
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/objects",
3
- "version": "0.0.449",
3
+ "version": "0.0.451",
4
4
  "homepage": "https://bit.cloud/teambit/scope/objects",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.scope",
8
8
  "name": "objects",
9
- "version": "0.0.449"
9
+ "version": "0.0.451"
10
10
  },
11
11
  "dependencies": {
12
12
  "@pnpm/dependency-path": "1001.1.10",
@@ -50,7 +50,7 @@
50
50
  "@teambit/toolbox.promise.map-pool": "0.0.14",
51
51
  "@teambit/harmony.modules.in-memory-cache": "0.0.30",
52
52
  "@teambit/toolbox.fs.remove-empty-dir": "0.0.13",
53
- "@teambit/graph": "1.0.942"
53
+ "@teambit/graph": "1.0.944"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/semver": "7.5.8",