@teambit/objects 0.0.0-d4a7e44aa93980c597df6147719cb80b7a4fab1b → 0.0.0-dba64528286167c6e3ad315978703875d416e05c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/models/dependencies-graph.d.ts +1 -1
- package/dist/models/dependencies-graph.js.map +1 -1
- package/dist/models/lane-history.d.ts +1 -1
- package/dist/models/lane-history.js.map +1 -1
- package/dist/models/lane.d.ts +6 -5
- package/dist/models/lane.js.map +1 -1
- package/dist/models/model-component.d.ts +10 -8
- package/dist/models/model-component.js.map +1 -1
- package/dist/models/scopeMeta.d.ts +1 -1
- package/dist/models/scopeMeta.js.map +1 -1
- package/dist/models/source.d.ts +2 -2
- package/dist/models/symlink.d.ts +1 -1
- package/dist/models/version-history.d.ts +1 -1
- package/dist/models/version-history.js.map +1 -1
- package/dist/models/version.d.ts +11 -9
- package/dist/models/version.js.map +1 -1
- package/dist/objects/bit-object-list.d.ts +1 -1
- package/dist/objects/bit-object-list.js.map +1 -1
- package/dist/objects/object-list-to-graph.d.ts +2 -2
- package/dist/objects/object-list-to-graph.js.map +1 -1
- package/dist/objects/object.d.ts +2 -2
- package/dist/objects/object.js.map +1 -1
- package/dist/objects/objects-readable-generator.d.ts +4 -4
- package/dist/objects/objects-readable-generator.js.map +1 -1
- package/dist/objects/raw-object.d.ts +2 -2
- package/dist/objects/raw-object.js.map +1 -1
- package/dist/objects/ref.d.ts +2 -2
- package/dist/objects/ref.js.map +1 -1
- package/dist/objects/repository-hooks.d.ts +1 -1
- package/dist/objects/repository-hooks.js.map +1 -1
- package/dist/objects/repository.d.ts +10 -7
- package/dist/objects/repository.js.map +1 -1
- package/dist/objects/scope-index.d.ts +2 -2
- package/dist/objects/scope-index.js.map +1 -1
- package/models/dependencies-graph.ts +1 -1
- package/models/lane-history.ts +1 -1
- package/models/lane.ts +4 -3
- package/models/model-component.ts +13 -10
- package/models/scopeMeta.ts +1 -1
- package/models/version-history.ts +1 -1
- package/models/version.ts +9 -6
- package/objects/bit-object-list.ts +1 -1
- package/objects/object-list-to-graph.ts +2 -2
- package/objects/object.ts +2 -2
- package/objects/objects-readable-generator.ts +6 -6
- package/objects/raw-object.ts +1 -1
- package/objects/ref.ts +2 -2
- package/objects/repository-hooks.ts +1 -1
- package/objects/repository.ts +13 -14
- package/objects/scope-index.ts +2 -2
- package/package.json +35 -35
- /package/dist/{preview-1752762490382.js → preview-1754995361790.js} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_zlib","data","require","_legacy","_legacy2","_toolboxCrypto","_legacy3","_ref","_interopRequireDefault","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","parse","buffer","type","hash","contents","extractHeaderAndContent","types","UnknownObjectType","firstNullByteLocation","indexOf","NULL_BYTE","headers","slice","toString","split","SPACE_DELIMITER","length","BitObject","constructor","id","Error","toBuffer","pretty","refs","getType","name","getHeader","collectRefs","repo","refsCollection","objectType","objectId","addRefs","object","objs","Promise","all","map","ref","load","err","code","path","push","obj","collectRaw","loadManyRaw","asRaw","loadRaw","collect","objects","loadSync","forEach","Ref","makeHash","compress","deflate","serialize","Buffer","concat","from","parseObject","fileContents","filePath","inflate","parseObjectOnlyIfType","typeNames","includes","parseSync","inflateSync","str","sha1","exports"],"sources":["object.ts"],"sourcesContent":["import { inflateSync } from 'zlib';\n\nimport { NULL_BYTE, SPACE_DELIMITER } from '@teambit/legacy.constants';\nimport { deflate, inflate } from '@teambit/legacy.utils';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { UnknownObjectType, typesObj as types } from '@teambit/legacy.scope';\nimport { ObjectItem } from './object-list';\nimport Ref from './ref';\nimport Repository from './repository';\n\nfunction parse(buffer: Buffer): BitObject {\n const { type, hash, contents } = extractHeaderAndContent(buffer);\n if (!types[type]) throw new UnknownObjectType(type);\n return types[type].parse(contents, hash);\n}\n\nfunction extractHeaderAndContent(buffer: Buffer): { type: string; hash: string; contents: Buffer } {\n const firstNullByteLocation = buffer.indexOf(NULL_BYTE);\n const headers = buffer.slice(0, firstNullByteLocation).toString();\n const [type, hash] = headers.split(SPACE_DELIMITER);\n const contents = buffer.slice(firstNullByteLocation + 1, buffer.length);\n return { type, hash, contents };\n}\n\nexport default class BitObject {\n validateBeforePersist = true; // validate the object before persisting\n id(): string | Buffer {\n throw new Error('id() was not implemented...');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n toBuffer(pretty?: boolean): Buffer {\n throw new Error('toBuffer() was not implemented...');\n }\n\n refs(): Ref[] {\n return [];\n }\n\n getType(): string {\n return this.constructor.name;\n }\n\n getHeader(buffer: Buffer): string {\n return `${this.getType()} ${this.hash().toString()} ${buffer.toString().length}${NULL_BYTE}`;\n }\n\n async collectRefs(repo: Repository): Promise<Ref[]> {\n const refsCollection = [];\n const objectType = this.getType();\n const objectId = objectType === 'Component' ? `Component ${this.id()}` : objectType;\n\n async function addRefs(object: BitObject) {\n const refs = object.refs();\n let objs;\n try {\n objs = await Promise.all(refs.map((ref) => ref.load(repo, true)));\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(`failed finding an object file required by ${object.constructor.name} object, originated from ${objectId}\npath: ${err.path}`);\n }\n throw err;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n refsCollection.push(...refs);\n await Promise.all(objs.map((obj) => addRefs(obj)));\n }\n\n await addRefs(this);\n return refsCollection;\n }\n\n async collectRaw(repo: Repository): Promise<ObjectItem[]> {\n const refs = await this.collectRefs(repo);\n return repo.loadManyRaw(refs);\n }\n\n asRaw(repo: Repository): Promise<Buffer> {\n return repo.loadRaw(this.hash());\n }\n\n collect(repo: Repository): BitObject[] {\n const objects: BitObject[] = [];\n\n function addRefs(object: BitObject) {\n const objs = object.refs().map((ref) => {\n return ref.loadSync(repo);\n });\n\n objects.push(...objs);\n objs.forEach((obj) => addRefs(obj));\n }\n\n addRefs(this);\n return objects;\n }\n\n /**\n * indexing method\n */\n hash(): Ref {\n // console.log(`sha ${sha1(this.id())}, id ${this.id()}`); // uncomment when debugging hash issues\n return new Ref(BitObject.makeHash(this.id()));\n }\n\n compress(): Promise<Buffer> {\n return deflate(this.serialize());\n }\n\n serialize(): Buffer {\n const buffer = this.toBuffer();\n return Buffer.concat([Buffer.from(this.getHeader(buffer)), buffer] as unknown as Uint8Array[]);\n }\n\n /**\n * see `this.parseSync` for the sync version\n */\n static async parseObject(fileContents: Buffer, filePath?: string): Promise<BitObject> {\n const buffer = await inflate(fileContents, filePath);\n return parse(buffer);\n }\n\n /**\n * same as `parseObject`, however, if the type is not one of the given \"typeNames\", it returns null.\n * the performance improvement is huge compare to \"parseObject\", as it doesn't parse the object if not needed.\n */\n static async parseObjectOnlyIfType(\n fileContents: Buffer,\n typeNames: string[],\n filePath?: string\n ): Promise<BitObject | null> {\n const buffer = await inflate(fileContents, filePath);\n const { type } = extractHeaderAndContent(buffer);\n if (typeNames.includes(type)) return parse(buffer);\n return null;\n }\n\n /**\n * prefer using `this.parseObject()`, unless it must be sync.\n */\n static parseSync(fileContents: Buffer): BitObject {\n // @ts-ignore todo: fix after merging #9359\n const buffer = inflateSync(fileContents);\n return parse(buffer);\n }\n\n static makeHash(str: string | Buffer): string {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return sha1(str);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_zlib","data","require","_legacy","_legacy2","_toolboxCrypto","_legacy3","_ref","_interopRequireDefault","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","parse","buffer","type","hash","contents","extractHeaderAndContent","types","UnknownObjectType","firstNullByteLocation","indexOf","NULL_BYTE","headers","slice","toString","split","SPACE_DELIMITER","length","BitObject","constructor","id","Error","toBuffer","pretty","refs","getType","name","getHeader","collectRefs","repo","refsCollection","objectType","objectId","addRefs","object","objs","Promise","all","map","ref","load","err","code","path","push","obj","collectRaw","loadManyRaw","asRaw","loadRaw","collect","objects","loadSync","forEach","Ref","makeHash","compress","deflate","serialize","Buffer","concat","from","parseObject","fileContents","filePath","inflate","parseObjectOnlyIfType","typeNames","includes","parseSync","inflateSync","str","sha1","exports"],"sources":["object.ts"],"sourcesContent":["import { inflateSync } from 'zlib';\n\nimport { NULL_BYTE, SPACE_DELIMITER } from '@teambit/legacy.constants';\nimport { deflate, inflate } from '@teambit/legacy.utils';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { UnknownObjectType, typesObj as types } from '@teambit/legacy.scope';\nimport type { ObjectItem } from './object-list';\nimport Ref from './ref';\nimport type Repository from './repository';\n\nfunction parse(buffer: Buffer): BitObject {\n const { type, hash, contents } = extractHeaderAndContent(buffer);\n if (!types[type]) throw new UnknownObjectType(type);\n return types[type].parse(contents, hash);\n}\n\nfunction extractHeaderAndContent(buffer: Buffer): { type: string; hash: string; contents: Buffer } {\n const firstNullByteLocation = buffer.indexOf(NULL_BYTE);\n const headers = buffer.slice(0, firstNullByteLocation).toString();\n const [type, hash] = headers.split(SPACE_DELIMITER);\n const contents = buffer.slice(firstNullByteLocation + 1, buffer.length);\n return { type, hash, contents };\n}\n\nexport default class BitObject {\n validateBeforePersist = true; // validate the object before persisting\n id(): string | Buffer {\n throw new Error('id() was not implemented...');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n toBuffer(pretty?: boolean): Buffer {\n throw new Error('toBuffer() was not implemented...');\n }\n\n refs(): Ref[] {\n return [];\n }\n\n getType(): string {\n return this.constructor.name;\n }\n\n getHeader(buffer: Buffer): string {\n return `${this.getType()} ${this.hash().toString()} ${buffer.toString().length}${NULL_BYTE}`;\n }\n\n async collectRefs(repo: Repository): Promise<Ref[]> {\n const refsCollection = [];\n const objectType = this.getType();\n const objectId = objectType === 'Component' ? `Component ${this.id()}` : objectType;\n\n async function addRefs(object: BitObject) {\n const refs = object.refs();\n let objs;\n try {\n objs = await Promise.all(refs.map((ref) => ref.load(repo, true)));\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(`failed finding an object file required by ${object.constructor.name} object, originated from ${objectId}\npath: ${err.path}`);\n }\n throw err;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n refsCollection.push(...refs);\n await Promise.all(objs.map((obj) => addRefs(obj)));\n }\n\n await addRefs(this);\n return refsCollection;\n }\n\n async collectRaw(repo: Repository): Promise<ObjectItem[]> {\n const refs = await this.collectRefs(repo);\n return repo.loadManyRaw(refs);\n }\n\n asRaw(repo: Repository): Promise<Buffer> {\n return repo.loadRaw(this.hash());\n }\n\n collect(repo: Repository): BitObject[] {\n const objects: BitObject[] = [];\n\n function addRefs(object: BitObject) {\n const objs = object.refs().map((ref) => {\n return ref.loadSync(repo);\n });\n\n objects.push(...objs);\n objs.forEach((obj) => addRefs(obj));\n }\n\n addRefs(this);\n return objects;\n }\n\n /**\n * indexing method\n */\n hash(): Ref {\n // console.log(`sha ${sha1(this.id())}, id ${this.id()}`); // uncomment when debugging hash issues\n return new Ref(BitObject.makeHash(this.id()));\n }\n\n compress(): Promise<Buffer> {\n return deflate(this.serialize());\n }\n\n serialize(): Buffer {\n const buffer = this.toBuffer();\n return Buffer.concat([Buffer.from(this.getHeader(buffer)), buffer] as unknown as Uint8Array[]);\n }\n\n /**\n * see `this.parseSync` for the sync version\n */\n static async parseObject(fileContents: Buffer, filePath?: string): Promise<BitObject> {\n const buffer = await inflate(fileContents, filePath);\n return parse(buffer);\n }\n\n /**\n * same as `parseObject`, however, if the type is not one of the given \"typeNames\", it returns null.\n * the performance improvement is huge compare to \"parseObject\", as it doesn't parse the object if not needed.\n */\n static async parseObjectOnlyIfType(\n fileContents: Buffer,\n typeNames: string[],\n filePath?: string\n ): Promise<BitObject | null> {\n const buffer = await inflate(fileContents, filePath);\n const { type } = extractHeaderAndContent(buffer);\n if (typeNames.includes(type)) return parse(buffer);\n return null;\n }\n\n /**\n * prefer using `this.parseObject()`, unless it must be sync.\n */\n static parseSync(fileContents: Buffer): BitObject {\n // @ts-ignore todo: fix after merging #9359\n const buffer = inflateSync(fileContents);\n return parse(buffer);\n }\n\n static makeHash(str: string | Buffer): string {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return sha1(str);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { Readable } from 'stream';
|
2
|
-
import Repository from './repository';
|
3
|
-
import Ref from './ref';
|
4
|
-
import { Scope } from '@teambit/legacy.scope';
|
5
|
-
import { Lane, LaneHistory, ModelComponent } from '../models';
|
2
|
+
import type Repository from './repository';
|
3
|
+
import type Ref from './ref';
|
4
|
+
import type { Scope } from '@teambit/legacy.scope';
|
5
|
+
import type { Lane, LaneHistory, ModelComponent } from '../models';
|
6
6
|
export type ComponentWithCollectOptions = {
|
7
7
|
component: ModelComponent;
|
8
8
|
version: string;
|
@@ -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 BitObject from './object';\nimport Repository from './repository';\nimport Ref from './ref';\nimport { Scope } from '@teambit/legacy.scope';\nimport { logger } from '@teambit/legacy.logger';\nimport { getAllVersionHashesMemoized } from '@teambit/component.snap-distance';\nimport { Lane, LaneHistory, ModelComponent, Version } from '../models';\nimport { 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","_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,4 +1,4 @@
|
|
1
|
-
import BitObject from './object';
|
1
|
+
import type BitObject from './object';
|
2
2
|
export default class BitRawObject {
|
3
3
|
headers: string[];
|
4
4
|
type: string;
|
@@ -7,7 +7,7 @@ export default class BitRawObject {
|
|
7
7
|
_ref: string;
|
8
8
|
constructor(buffer: Buffer, ref: string | null | undefined, type: string | null | undefined, content: Buffer | null | undefined, parsedContent: any | null | undefined);
|
9
9
|
getParsedContent(): any;
|
10
|
-
getString(pretty: boolean): string | Buffer
|
10
|
+
getString(pretty: boolean): string | Buffer<ArrayBufferLike>;
|
11
11
|
set ref(ref: string);
|
12
12
|
get ref(): string;
|
13
13
|
get id(): string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_legacy","data","require","_legacy2","_legacy3","_lodash","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BitRawObject","constructor","buffer","ref","type","content","parsedContent","headers","contentFromBuffer","firstNullByteLocation","indexOf","NULL_BYTE","slice","toString","length","split","SPACE_DELIMITER","undefined","typeFromHeader","_ref","getParsedContent","JSON","parse","getString","pretty","args","getStringifyArgs","stringify","id","scope","name","join","refs","values","versions","files","map","file","dists","dist","filter","fromDeflatedBuffer","fileContents","inflate","then","toRealObject","types","from","clone","exports","default"],"sources":["raw-object.ts"],"sourcesContent":["import { NULL_BYTE, SPACE_DELIMITER } from '@teambit/legacy.constants';\nimport { getStringifyArgs, inflate } from '@teambit/legacy.utils';\nimport { typesObj as types } from '@teambit/legacy.scope';\nimport BitObject from './object';\nimport { clone } from 'lodash';\n\nexport default class BitRawObject {\n headers: string[];\n type: string;\n content: Buffer;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n parsedContent: any;\n _ref: string;\n\n constructor(\n buffer: Buffer,\n ref: string | null | undefined,\n type: string | null | undefined,\n content: Buffer | null | undefined,\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n parsedContent: any | null | undefined\n ) {\n let headers;\n let contentFromBuffer;\n if (buffer) {\n const firstNullByteLocation = buffer.indexOf(NULL_BYTE);\n headers = buffer.slice(0, firstNullByteLocation).toString();\n contentFromBuffer = buffer.slice(firstNullByteLocation + 1, buffer.length);\n }\n this.content = content || contentFromBuffer;\n this.headers = headers ? headers.split(SPACE_DELIMITER) : undefined;\n const typeFromHeader = this.headers ? this.headers[0] : undefined;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.type = type || typeFromHeader;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this._ref = ref;\n this.parsedContent = parsedContent || this.getParsedContent();\n }\n\n getParsedContent() {\n if (this.parsedContent) return this.parsedContent;\n let parsedContent;\n switch (this.type) {\n case 'Version':\n case 'Component':\n case 'Symlink':\n case 'ScopeMeta':\n case 'VersionHistory':\n parsedContent = JSON.parse(this.content.toString());\n break;\n\n default:\n parsedContent = this.content;\n }\n return parsedContent;\n }\n\n getString(pretty: boolean) {\n const args = getStringifyArgs(pretty);\n switch (this.type) {\n case 'Version':\n case 'Component':\n case 'Symlink':\n case 'ScopeMeta':\n case 'VersionHistory':\n return JSON.stringify(this.parsedContent, ...args);\n case 'Source':\n return pretty ? JSON.stringify(JSON.parse(this.content.toString()), ...args) : this.content;\n\n default:\n return this.content;\n }\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n set ref(ref: string) {\n this._ref = ref;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n get ref(): string {\n return this._ref;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n get id(): string {\n switch (this.type) {\n case 'Version':\n return 'component version';\n case 'Component':\n return this.parsedContent.scope\n ? [this.parsedContent.scope, this.parsedContent.name].join('/')\n : this.parsedContent.name;\n case 'Symlink':\n return this.parsedContent.name;\n case 'ScopeMeta':\n return this.parsedContent.name;\n\n default:\n return 'component source file';\n }\n }\n\n refs(): string[] {\n if (this.type === 'Component') {\n return Object.values(this.parsedContent.versions);\n }\n if (this.type === 'Version') {\n const files = this.parsedContent.files ? this.parsedContent.files.map((file) => file.file) : [];\n const dists = this.parsedContent.dists ? this.parsedContent.dists.map((dist) => dist.file) : [];\n return [...dists, ...files].filter((ref) => ref);\n }\n\n return [];\n }\n\n static async fromDeflatedBuffer(\n fileContents: Buffer,\n ref: string | null | undefined\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n ): Promise<BitObject> {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return inflate(fileContents).then((buffer) => new BitRawObject(buffer, ref));\n }\n\n /**\n * Build a real object (model) from a parsed content (can be the original parsed conents or a provided one)\n * We use the provided version during the migration process when we change the parsed content outside\n * @param {Any} parsedContent\n */\n toRealObject() {\n // @ts-ignore\n return types[this.type].from(this.parsedContent || this.getParsedContent(), this.headers[1]);\n }\n\n clone() {\n const parsedContent = this.parsedContent ? clone(this.parsedContent) : undefined;\n // TODO: Should also clone the buffers (content)\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return new BitRawObject(undefined, this._ref, this.type, this.content, parsedContent);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_legacy","data","require","_legacy2","_legacy3","_lodash","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","BitRawObject","constructor","buffer","ref","type","content","parsedContent","headers","contentFromBuffer","firstNullByteLocation","indexOf","NULL_BYTE","slice","toString","length","split","SPACE_DELIMITER","undefined","typeFromHeader","_ref","getParsedContent","JSON","parse","getString","pretty","args","getStringifyArgs","stringify","id","scope","name","join","refs","values","versions","files","map","file","dists","dist","filter","fromDeflatedBuffer","fileContents","inflate","then","toRealObject","types","from","clone","exports","default"],"sources":["raw-object.ts"],"sourcesContent":["import { NULL_BYTE, SPACE_DELIMITER } from '@teambit/legacy.constants';\nimport { getStringifyArgs, inflate } from '@teambit/legacy.utils';\nimport { typesObj as types } from '@teambit/legacy.scope';\nimport type BitObject from './object';\nimport { clone } from 'lodash';\n\nexport default class BitRawObject {\n headers: string[];\n type: string;\n content: Buffer;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n parsedContent: any;\n _ref: string;\n\n constructor(\n buffer: Buffer,\n ref: string | null | undefined,\n type: string | null | undefined,\n content: Buffer | null | undefined,\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n parsedContent: any | null | undefined\n ) {\n let headers;\n let contentFromBuffer;\n if (buffer) {\n const firstNullByteLocation = buffer.indexOf(NULL_BYTE);\n headers = buffer.slice(0, firstNullByteLocation).toString();\n contentFromBuffer = buffer.slice(firstNullByteLocation + 1, buffer.length);\n }\n this.content = content || contentFromBuffer;\n this.headers = headers ? headers.split(SPACE_DELIMITER) : undefined;\n const typeFromHeader = this.headers ? this.headers[0] : undefined;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.type = type || typeFromHeader;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this._ref = ref;\n this.parsedContent = parsedContent || this.getParsedContent();\n }\n\n getParsedContent() {\n if (this.parsedContent) return this.parsedContent;\n let parsedContent;\n switch (this.type) {\n case 'Version':\n case 'Component':\n case 'Symlink':\n case 'ScopeMeta':\n case 'VersionHistory':\n parsedContent = JSON.parse(this.content.toString());\n break;\n\n default:\n parsedContent = this.content;\n }\n return parsedContent;\n }\n\n getString(pretty: boolean) {\n const args = getStringifyArgs(pretty);\n switch (this.type) {\n case 'Version':\n case 'Component':\n case 'Symlink':\n case 'ScopeMeta':\n case 'VersionHistory':\n return JSON.stringify(this.parsedContent, ...args);\n case 'Source':\n return pretty ? JSON.stringify(JSON.parse(this.content.toString()), ...args) : this.content;\n\n default:\n return this.content;\n }\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n set ref(ref: string) {\n this._ref = ref;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n get ref(): string {\n return this._ref;\n }\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n get id(): string {\n switch (this.type) {\n case 'Version':\n return 'component version';\n case 'Component':\n return this.parsedContent.scope\n ? [this.parsedContent.scope, this.parsedContent.name].join('/')\n : this.parsedContent.name;\n case 'Symlink':\n return this.parsedContent.name;\n case 'ScopeMeta':\n return this.parsedContent.name;\n\n default:\n return 'component source file';\n }\n }\n\n refs(): string[] {\n if (this.type === 'Component') {\n return Object.values(this.parsedContent.versions);\n }\n if (this.type === 'Version') {\n const files = this.parsedContent.files ? this.parsedContent.files.map((file) => file.file) : [];\n const dists = this.parsedContent.dists ? this.parsedContent.dists.map((dist) => dist.file) : [];\n return [...dists, ...files].filter((ref) => ref);\n }\n\n return [];\n }\n\n static async fromDeflatedBuffer(\n fileContents: Buffer,\n ref: string | null | undefined\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n ): Promise<BitObject> {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return inflate(fileContents).then((buffer) => new BitRawObject(buffer, ref));\n }\n\n /**\n * Build a real object (model) from a parsed content (can be the original parsed conents or a provided one)\n * We use the provided version during the migration process when we change the parsed content outside\n * @param {Any} parsedContent\n */\n toRealObject() {\n // @ts-ignore\n return types[this.type].from(this.parsedContent || this.getParsedContent(), this.headers[1]);\n }\n\n clone() {\n const parsedContent = this.parsedContent ? clone(this.parsedContent) : undefined;\n // TODO: Should also clone the buffers (content)\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return new BitRawObject(undefined, this._ref, this.type, this.content, parsedContent);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/objects/ref.d.ts
CHANGED
package/dist/objects/ref.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Ref","constructor","hash","_defineProperty","Error","toString","toShortString","numOfChars","substring","load","repository","throws","loadSync","repo","loadRaw","isEqual","ref","clone","from","exports","default"],"sources":["ref.ts"],"sourcesContent":["import BitObject from './object';\nimport Repository from './repository';\n\nexport default class Ref {\n hash: string;\n\n constructor(hash: string) {\n if (!hash) throw new Error('failed creating a Ref object, the hash argument is empty');\n this.hash = hash;\n }\n\n toString() {\n // reason for hash.toString() is when working with short hash, it's possible that all characters are numbers\n // so it's needed to convert it to string\n return this.hash.toString();\n }\n\n toShortString(numOfChars = 9) {\n return this.hash.substring(0, numOfChars).toString();\n }\n\n load(repository: Repository, throws = false): Promise<BitObject> {\n return repository.load(this, throws);\n }\n\n loadSync(repo: Repository, throws = true): BitObject {\n return repo.loadSync(this, throws);\n }\n\n loadRaw(repo: Repository): Promise<Buffer> {\n return repo.loadRaw(this);\n }\n\n isEqual(ref: Ref): boolean {\n return this.toString() === ref.toString();\n }\n\n clone() {\n return new Ref(this.hash);\n }\n\n static from(hash: string): Ref {\n return new Ref(hash);\n }\n}\n"],"mappings":";;;;;;;;;AAGe,MAAMA,GAAG,CAAC;EAGvBC,WAAWA,CAACC,IAAY,EAAE;IAAAC,eAAA;IACxB,IAAI,CAACD,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,0DAA0D,CAAC;IACtF,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;EAEAG,QAAQA,CAAA,EAAG;IACT;IACA;IACA,OAAO,IAAI,CAACH,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC7B;EAEAC,aAAaA,CAACC,UAAU,GAAG,CAAC,EAAE;IAC5B,OAAO,IAAI,CAACL,IAAI,CAACM,SAAS,CAAC,CAAC,EAAED,UAAU,CAAC,CAACF,QAAQ,CAAC,CAAC;EACtD;EAEAI,IAAIA,CAACC,UAAsB,EAAEC,MAAM,GAAG,KAAK,EAAsB;IAC/D,OAAOD,UAAU,CAACD,IAAI,CAAC,IAAI,EAAEE,MAAM,CAAC;EACtC;EAEAC,QAAQA,CAACC,IAAgB,EAAEF,MAAM,GAAG,IAAI,EAAa;IACnD,OAAOE,IAAI,CAACD,QAAQ,CAAC,IAAI,EAAED,MAAM,CAAC;EACpC;EAEAG,OAAOA,CAACD,IAAgB,EAAmB;IACzC,OAAOA,IAAI,CAACC,OAAO,CAAC,IAAI,CAAC;EAC3B;EAEAC,OAAOA,CAACC,GAAQ,EAAW;IACzB,OAAO,IAAI,CAACX,QAAQ,CAAC,CAAC,KAAKW,GAAG,CAACX,QAAQ,CAAC,CAAC;EAC3C;EAEAY,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIjB,GAAG,CAAC,IAAI,CAACE,IAAI,CAAC;EAC3B;EAEA,OAAOgB,IAAIA,CAAChB,IAAY,EAAO;IAC7B,OAAO,IAAIF,GAAG,CAACE,IAAI,CAAC;EACtB;AACF;AAACiB,OAAA,CAAAC,OAAA,GAAApB,GAAA","ignoreList":[]}
|
1
|
+
{"version":3,"names":["Ref","constructor","hash","_defineProperty","Error","toString","toShortString","numOfChars","substring","load","repository","throws","loadSync","repo","loadRaw","isEqual","ref","clone","from","exports","default"],"sources":["ref.ts"],"sourcesContent":["import type BitObject from './object';\nimport type Repository from './repository';\n\nexport default class Ref {\n hash: string;\n\n constructor(hash: string) {\n if (!hash) throw new Error('failed creating a Ref object, the hash argument is empty');\n this.hash = hash;\n }\n\n toString() {\n // reason for hash.toString() is when working with short hash, it's possible that all characters are numbers\n // so it's needed to convert it to string\n return this.hash.toString();\n }\n\n toShortString(numOfChars = 9) {\n return this.hash.substring(0, numOfChars).toString();\n }\n\n load(repository: Repository, throws = false): Promise<BitObject> {\n return repository.load(this, throws);\n }\n\n loadSync(repo: Repository, throws = true): BitObject {\n return repo.loadSync(this, throws);\n }\n\n loadRaw(repo: Repository): Promise<Buffer> {\n return repo.loadRaw(this);\n }\n\n isEqual(ref: Ref): boolean {\n return this.toString() === ref.toString();\n }\n\n clone() {\n return new Ref(this.hash);\n }\n\n static from(hash: string): Ref {\n return new Ref(hash);\n }\n}\n"],"mappings":";;;;;;;;;AAGe,MAAMA,GAAG,CAAC;EAGvBC,WAAWA,CAACC,IAAY,EAAE;IAAAC,eAAA;IACxB,IAAI,CAACD,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,0DAA0D,CAAC;IACtF,IAAI,CAACF,IAAI,GAAGA,IAAI;EAClB;EAEAG,QAAQA,CAAA,EAAG;IACT;IACA;IACA,OAAO,IAAI,CAACH,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC7B;EAEAC,aAAaA,CAACC,UAAU,GAAG,CAAC,EAAE;IAC5B,OAAO,IAAI,CAACL,IAAI,CAACM,SAAS,CAAC,CAAC,EAAED,UAAU,CAAC,CAACF,QAAQ,CAAC,CAAC;EACtD;EAEAI,IAAIA,CAACC,UAAsB,EAAEC,MAAM,GAAG,KAAK,EAAsB;IAC/D,OAAOD,UAAU,CAACD,IAAI,CAAC,IAAI,EAAEE,MAAM,CAAC;EACtC;EAEAC,QAAQA,CAACC,IAAgB,EAAEF,MAAM,GAAG,IAAI,EAAa;IACnD,OAAOE,IAAI,CAACD,QAAQ,CAAC,IAAI,EAAED,MAAM,CAAC;EACpC;EAEAG,OAAOA,CAACD,IAAgB,EAAmB;IACzC,OAAOA,IAAI,CAACC,OAAO,CAAC,IAAI,CAAC;EAC3B;EAEAC,OAAOA,CAACC,GAAQ,EAAW;IACzB,OAAO,IAAI,CAACX,QAAQ,CAAC,CAAC,KAAKW,GAAG,CAACX,QAAQ,CAAC,CAAC;EAC3C;EAEAY,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIjB,GAAG,CAAC,IAAI,CAACE,IAAI,CAAC;EAC3B;EAEA,OAAOgB,IAAIA,CAAChB,IAAY,EAAO;IAC7B,OAAO,IAAIF,GAAG,CAACE,IAAI,CAAC;EACtB;AACF;AAACiB,OAAA,CAAAC,OAAA,GAAApB,GAAA","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ScopeJson } from '@teambit/legacy.scope';
|
1
|
+
import type { ScopeJson } from '@teambit/legacy.scope';
|
2
2
|
export type ContentTransformer = (content: Buffer) => Buffer;
|
3
3
|
export declare function onPersist(scopePath: string, scopeJson: ScopeJson): ContentTransformer;
|
4
4
|
export declare function onRead(scopePath: string, scopeJson: ScopeJson): ContentTransformer;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_isRelativePath","data","_interopRequireDefault","require","_path","e","__esModule","default","loadHooks","scopePath","scopeJson","hooksPath","hooksFinalPath","isRelative","path","join","hooks","undefined","onPersist","defaultFunc","content","onReadFunction","onRead"],"sources":["repository-hooks.ts"],"sourcesContent":["import isRelative from 'is-relative-path';\nimport path from 'path';\n\nimport { ScopeJson } from '@teambit/legacy.scope';\n\nexport type ContentTransformer = (content: Buffer) => Buffer;\n\nfunction loadHooks(scopePath: string, scopeJson: ScopeJson): any | undefined {\n const hooksPath = scopeJson.hooksPath;\n if (hooksPath) {\n const hooksFinalPath = isRelative(hooksPath) ? path.join(scopePath, hooksPath) : hooksPath;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const hooks = require(hooksFinalPath);\n return hooks;\n }\n return undefined;\n}\n\nexport function onPersist(scopePath: string, scopeJson: ScopeJson): ContentTransformer {\n const defaultFunc = (content) => content;\n const hooks = loadHooks(scopePath, scopeJson);\n if (hooks) {\n const onReadFunction = hooks.onPersist;\n if (onReadFunction) {\n return onReadFunction;\n }\n }\n return defaultFunc;\n}\n\nexport function onRead(scopePath: string, scopeJson: ScopeJson): ContentTransformer {\n const defaultFunc = (content) => content;\n\n const hooks = loadHooks(scopePath, scopeJson);\n if (hooks) {\n const onReadFunction = hooks.onRead;\n if (onReadFunction) {\n return onReadFunction;\n }\n }\n return defaultFunc;\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwB,SAAAC,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMxB,SAASG,SAASA,CAACC,SAAiB,EAAEC,SAAoB,EAAmB;EAC3E,MAAMC,SAAS,GAAGD,SAAS,CAACC,SAAS;EACrC,IAAIA,SAAS,EAAE;IACb,MAAMC,cAAc,GAAG,IAAAC,yBAAU,EAACF,SAAS,CAAC,GAAGG,eAAI,CAACC,IAAI,CAACN,SAAS,EAAEE,SAAS,CAAC,GAAGA,SAAS;IAC1F;IACA,MAAMK,KAAK,GAAGb,OAAO,CAACS,cAAc,CAAC;IACrC,OAAOI,KAAK;EACd;EACA,OAAOC,SAAS;AAClB;AAEO,SAASC,SAASA,CAACT,SAAiB,EAAEC,SAAoB,EAAsB;EACrF,MAAMS,WAAW,GAAIC,OAAO,IAAKA,OAAO;EACxC,MAAMJ,KAAK,GAAGR,SAAS,CAACC,SAAS,EAAEC,SAAS,CAAC;EAC7C,IAAIM,KAAK,EAAE;IACT,MAAMK,cAAc,GAAGL,KAAK,CAACE,SAAS;IACtC,IAAIG,cAAc,EAAE;MAClB,OAAOA,cAAc;IACvB;EACF;EACA,OAAOF,WAAW;AACpB;AAEO,SAASG,MAAMA,CAACb,SAAiB,EAAEC,SAAoB,EAAsB;EAClF,MAAMS,WAAW,GAAIC,OAAO,IAAKA,OAAO;EAExC,MAAMJ,KAAK,GAAGR,SAAS,CAACC,SAAS,EAAEC,SAAS,CAAC;EAC7C,IAAIM,KAAK,EAAE;IACT,MAAMK,cAAc,GAAGL,KAAK,CAACM,MAAM;IACnC,IAAID,cAAc,EAAE;MAClB,OAAOA,cAAc;IACvB;EACF;EACA,OAAOF,WAAW;AACpB","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_isRelativePath","data","_interopRequireDefault","require","_path","e","__esModule","default","loadHooks","scopePath","scopeJson","hooksPath","hooksFinalPath","isRelative","path","join","hooks","undefined","onPersist","defaultFunc","content","onReadFunction","onRead"],"sources":["repository-hooks.ts"],"sourcesContent":["import isRelative from 'is-relative-path';\nimport path from 'path';\n\nimport type { ScopeJson } from '@teambit/legacy.scope';\n\nexport type ContentTransformer = (content: Buffer) => Buffer;\n\nfunction loadHooks(scopePath: string, scopeJson: ScopeJson): any | undefined {\n const hooksPath = scopeJson.hooksPath;\n if (hooksPath) {\n const hooksFinalPath = isRelative(hooksPath) ? path.join(scopePath, hooksPath) : hooksPath;\n // eslint-disable-next-line global-require, import/no-dynamic-require\n const hooks = require(hooksFinalPath);\n return hooks;\n }\n return undefined;\n}\n\nexport function onPersist(scopePath: string, scopeJson: ScopeJson): ContentTransformer {\n const defaultFunc = (content) => content;\n const hooks = loadHooks(scopePath, scopeJson);\n if (hooks) {\n const onReadFunction = hooks.onPersist;\n if (onReadFunction) {\n return onReadFunction;\n }\n }\n return defaultFunc;\n}\n\nexport function onRead(scopePath: string, scopeJson: ScopeJson): ContentTransformer {\n const defaultFunc = (content) => content;\n\n const hooks = loadHooks(scopePath, scopeJson);\n if (hooks) {\n const onReadFunction = hooks.onRead;\n if (onReadFunction) {\n return onReadFunction;\n }\n }\n return defaultFunc;\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwB,SAAAC,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMxB,SAASG,SAASA,CAACC,SAAiB,EAAEC,SAAoB,EAAmB;EAC3E,MAAMC,SAAS,GAAGD,SAAS,CAACC,SAAS;EACrC,IAAIA,SAAS,EAAE;IACb,MAAMC,cAAc,GAAG,IAAAC,yBAAU,EAACF,SAAS,CAAC,GAAGG,eAAI,CAACC,IAAI,CAACN,SAAS,EAAEE,SAAS,CAAC,GAAGA,SAAS;IAC1F;IACA,MAAMK,KAAK,GAAGb,OAAO,CAACS,cAAc,CAAC;IACrC,OAAOI,KAAK;EACd;EACA,OAAOC,SAAS;AAClB;AAEO,SAASC,SAASA,CAACT,SAAiB,EAAEC,SAAoB,EAAsB;EACrF,MAAMS,WAAW,GAAIC,OAAO,IAAKA,OAAO;EACxC,MAAMJ,KAAK,GAAGR,SAAS,CAACC,SAAS,EAAEC,SAAS,CAAC;EAC7C,IAAIM,KAAK,EAAE;IACT,MAAMK,cAAc,GAAGL,KAAK,CAACE,SAAS;IACtC,IAAIG,cAAc,EAAE;MAClB,OAAOA,cAAc;IACvB;EACF;EACA,OAAOF,WAAW;AACpB;AAEO,SAASG,MAAMA,CAACb,SAAiB,EAAEC,SAAoB,EAAsB;EAClF,MAAMS,WAAW,GAAIC,OAAO,IAAKA,OAAO;EAExC,MAAMJ,KAAK,GAAGR,SAAS,CAACC,SAAS,EAAEC,SAAS,CAAC;EAC7C,IAAIM,KAAK,EAAE;IACT,MAAMK,cAAc,GAAGL,KAAK,CAACM,MAAM;IACnC,IAAID,cAAc,EAAE;MAClB,OAAOA,cAAc;IACvB;EACF;EACA,OAAOF,WAAW;AACpB","ignoreList":[]}
|
@@ -1,14 +1,17 @@
|
|
1
1
|
import { Mutex } from 'async-mutex';
|
2
|
-
import { ComponentID } from '@teambit/component-id';
|
3
|
-
import { PathOsBasedAbsolute } from '@teambit/legacy.utils';
|
4
|
-
import { Types, ScopeJson
|
5
|
-
import {
|
2
|
+
import type { ComponentID } from '@teambit/component-id';
|
3
|
+
import type { PathOsBasedAbsolute } from '@teambit/legacy.utils';
|
4
|
+
import type { Types, ScopeJson } from '@teambit/legacy.scope';
|
5
|
+
import { UnmergedComponents, RemoteLanes } from '@teambit/legacy.scope';
|
6
|
+
import type { IndexType } from './scope-index';
|
7
|
+
import { ScopeIndex } from './scope-index';
|
6
8
|
import BitObject from './object';
|
7
|
-
import { ObjectItem
|
9
|
+
import type { ObjectItem } from './object-list';
|
10
|
+
import { ObjectList } from './object-list';
|
8
11
|
import BitRawObject from './raw-object';
|
9
12
|
import Ref from './ref';
|
10
|
-
import { ContentTransformer } from './repository-hooks';
|
11
|
-
import { InMemoryCache } from '@teambit/harmony.modules.in-memory-cache';
|
13
|
+
import type { ContentTransformer } from './repository-hooks';
|
14
|
+
import type { InMemoryCache } from '@teambit/harmony.modules.in-memory-cache';
|
12
15
|
export default class Repository {
|
13
16
|
objects: {
|
14
17
|
[key: string]: BitObject;
|