@teambit/objects 0.0.726 → 0.0.728
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/model-component.d.ts +7 -9
- package/dist/models/model-component.js +2 -11
- package/dist/models/model-component.js.map +1 -1
- package/dist/models/scopeMeta.d.ts +1 -1
- package/dist/models/scopeMeta.js +1 -3
- package/dist/models/scopeMeta.js.map +1 -1
- package/dist/models/version.d.ts +0 -1
- package/dist/models/version.js +35 -18
- package/dist/models/version.js.map +1 -1
- package/dist/models/version.spec.js +36 -0
- package/dist/models/version.spec.js.map +1 -1
- package/dist/objects/object.js +0 -2
- package/dist/objects/object.js.map +1 -1
- package/dist/objects/raw-object.d.ts +2 -3
- package/dist/objects/raw-object.js +0 -4
- package/dist/objects/raw-object.js.map +1 -1
- package/dist/objects/repository.d.ts +1 -1
- package/dist/objects/repository.js +8 -5
- package/dist/objects/repository.js.map +1 -1
- package/dist/objects/scope-index.spec.js +1 -12
- package/dist/objects/scope-index.spec.js.map +1 -1
- package/models/model-component.ts +23 -20
- package/models/scopeMeta.ts +2 -4
- package/models/version.spec.ts +21 -0
- package/models/version.ts +33 -22
- package/objects/object.ts +1 -2
- package/objects/raw-object.ts +8 -13
- package/objects/repository.ts +11 -12
- package/objects/scope-index.spec.ts +1 -9
- package/package.json +12 -12
- /package/dist/{preview-1793031377870.js → preview-1793057865860.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chai","data","require","_versionModelExtended","_interopRequireDefault","_versionModelObject","_legacy","_version","_lodash","_componentId","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","getVersionWithDepsFixture","Version","parse","JSON","stringify","clone","versionWithDepsFixture","describe","version","idRaw","idParsed","before","versionFixture","id","it","expect","to","haveOwnProperty","not","dependencies","be","an","and","have","lengthOf","hash","versionFixtureHash","calculateHash","toString","equal","versionFromContent","parseWithFlattened","flattened","flattenedDependencies","flattenedDevDependencies","scope","name","getLoadedFlattenedDependencies","map","deep","first","second","ComponentIdList","ComponentID","fromString","toObject","source","flattenedStr","loaderOf","objects","load","ref","find","obj","isEqual","original","moveFlattenedDependenciesToSource","toBuffer","contents","versionObj","property","flattenedDependenciesRef","refs","refsWithOptions","include","throw","parsed","loaded","loadFlattenedDependencies","fromDisk","diskRepo","getFromMemory","undefined","loadSync","loadFlattenedDependenciesSync","fromCache","cacheRepo","error","err","message","oldFormat","moved","validate","isEmpty","false","validateFunc","beforeEach","errMsg","mainFile","files","file","relativePath","packageDependencies","lodash","userLib","devPackageDependencies","peerPackageDependencies","devDependencies","changeVersion","log","bindingPrefix","packageJsonChangedProps","main","bin","overrides","exclude","scripts","schema","SchemaName","Harmony","compiler","dists","Legacy","relativePaths","customResolvedPaths"],"sources":["version.spec.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport versionWithDepsFixture from '../fixtures/version-model-extended.json';\nimport versionFixture from '../fixtures/version-model-object.json';\nimport { SchemaName } from '@teambit/legacy.consumer-component';\nimport Version from './version';\nimport type { ObjectsLoader } from './version';\nimport type Source from './source';\nimport type { Ref } from '../objects';\nimport { clone } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\n\nconst getVersionWithDepsFixture = () => {\n return Version.parse(JSON.stringify(clone(versionWithDepsFixture)), '12c830ed25854dc731b58e014c6b4960ccb59092');\n};\n\ndescribe('Version', () => {\n describe('id()', () => {\n describe('simple version', () => {\n let version;\n let idRaw;\n let idParsed;\n before(() => {\n // @ts-ignore\n version = new Version(versionFixture);\n idRaw = version.id();\n idParsed = JSON.parse(idRaw);\n });\n it('should have mainFile property', () => {\n expect(idParsed).to.haveOwnProperty('mainFile');\n });\n it('should have files property', () => {\n expect(idParsed).to.haveOwnProperty('files');\n });\n it('should have log property', () => {\n expect(idParsed).to.haveOwnProperty('log');\n });\n it('should have dependencies property', () => {\n expect(idParsed).to.haveOwnProperty('dependencies');\n });\n it('should have packageDependencies property', () => {\n expect(idParsed).to.haveOwnProperty('packageDependencies');\n });\n it('should have bindingPrefix property', () => {\n expect(idParsed).to.haveOwnProperty('bindingPrefix');\n });\n it('should not have docs property', () => {\n expect(idParsed).to.not.haveOwnProperty('docs');\n });\n it('should not have devDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('devDependencies');\n });\n it('should not have flattenedDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('flattenedDependencies');\n });\n it('should not have devPackageDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('devPackageDependencies');\n });\n it('should not have peerPackageDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('peerPackageDependencies');\n });\n });\n describe('version with dependencies', () => {\n let dependencies;\n before(() => {\n const version = getVersionWithDepsFixture();\n const idRaw = version.id();\n const idParsed = JSON.parse(idRaw);\n dependencies = idParsed.dependencies;\n });\n it('dependencies should be an array', () => {\n expect(dependencies).to.be.an('array').and.have.lengthOf(1);\n });\n it('dependencies should have id property only (relativePaths removed)', () => {\n expect(dependencies[0]).to.haveOwnProperty('id');\n expect(dependencies[0]).to.not.haveOwnProperty('relativePaths');\n expect(dependencies[0]).to.not.haveOwnProperty('nonExistProperty');\n expect(Object.keys(dependencies[0])).to.have.lengthOf(1);\n });\n // relativePaths tests removed - no longer included in Version.id() hash for Harmony components\n });\n });\n describe('hash()', () => {\n let version: Version;\n let hash;\n const versionFixtureHash = '4f67925a80b5e1f52dd1177196bf4c003d2f8798';\n before(() => {\n // @ts-ignore\n version = new Version(versionFixture);\n hash = version.calculateHash();\n });\n it('should have a correct hash string', () => {\n expect(hash.toString()).to.equal(versionFixtureHash);\n });\n it('should have a the same hash string also when loading the version from contents', () => {\n const versionFromContent = Version.parse(JSON.stringify(versionFixture), hash.toString());\n expect(versionFromContent.hash().toString()).to.equal(versionFixtureHash);\n });\n });\n describe('flattenedDependencies', () => {\n const parseWithFlattened = (flattened: Record<string, any>) =>\n Version.parse(\n JSON.stringify({ ...versionWithDepsFixture, ...flattened }),\n '12c830ed25854dc731b58e014c6b4960ccb59092'\n );\n it('should parse id objects, id strings and the old flattenedDevDependencies', () => {\n const version = parseWithFlattened({\n flattenedDependencies: ['my-scope/is-type@0.0.1'],\n flattenedDevDependencies: [{ scope: 'my-scope', name: 'utils/is-string', version: '0.0.2' }],\n });\n expect(version.getLoadedFlattenedDependencies().map((id) => id.toString())).to.deep.equal([\n 'my-scope/is-type@0.0.1',\n 'my-scope/utils/is-string@0.0.2',\n ]);\n });\n it('should share the same id instance between versions', () => {\n const first = getVersionWithDepsFixture();\n const second = getVersionWithDepsFixture();\n expect(first.getLoadedFlattenedDependencies()).to.not.equal(second.getLoadedFlattenedDependencies());\n expect(first.getLoadedFlattenedDependencies()[0]).to.equal(second.getLoadedFlattenedDependencies()[0]);\n });\n it('should keep a list that was set, and serialize it', () => {\n const version = getVersionWithDepsFixture();\n version.flattenedDependencies = new ComponentIdList(ComponentID.fromString('my-scope/is-type@0.0.3'));\n expect(version.toObject().flattenedDependencies).to.deep.equal([\n { scope: 'my-scope', name: 'is-type', version: '0.0.3' },\n ]);\n });\n describe('stored in a separate object', () => {\n const hash = '12c830ed25854dc731b58e014c6b4960ccb59092';\n let source: Source;\n let version: Version;\n let flattenedStr: string[];\n const loaderOf = (objects: Source[]): ObjectsLoader => ({\n load: async (ref: Ref) => objects.find((obj) => obj.hash().isEqual(ref)),\n });\n before(() => {\n const original = getVersionWithDepsFixture();\n flattenedStr = original.getLoadedFlattenedDependencies().map((id) => id.toString());\n source = original.moveFlattenedDependenciesToSource() as Source;\n version = Version.parse(original.toBuffer(false).toString(), hash);\n });\n it('should save the ids as strings in the Source, and only the ref in the Version', () => {\n expect(JSON.parse(source.contents.toString())).to.deep.equal(flattenedStr);\n const versionObj = version.toObject();\n expect(versionObj).to.not.have.property('flattenedDependencies');\n expect(versionObj.flattenedDependenciesRef).to.equal(source.hash().toString());\n });\n it('should return the Source ref as one of the version refs, so it is fetched, exported and kept by GC', () => {\n const refs = version.refsWithOptions(false, false).map((ref) => ref.toString());\n expect(refs).to.include(source.hash().toString());\n });\n it('should throw when the list is read before it was loaded', () => {\n expect(() => version.getLoadedFlattenedDependencies()).to.throw('load them with loadFlattenedDependencies()');\n expect(() => version.flattenedDependencies).to.throw('load them with loadFlattenedDependencies()');\n });\n it('should load the list from the Source, and keep only the ref when saved again', async () => {\n const parsed = Version.parse(version.toBuffer(false).toString(), hash);\n const loaded = await parsed.loadFlattenedDependencies(loaderOf([source]));\n expect(loaded.map((id) => id.toString())).to.deep.equal(flattenedStr);\n expect(parsed.getLoadedFlattenedDependencies()).to.equal(loaded);\n expect(parsed.toObject()).to.not.have.property('flattenedDependencies');\n });\n it('should load the list synchronously, from the cache or from the disk', () => {\n const fromDisk = Version.parse(version.toBuffer(false).toString(), hash);\n const diskRepo = { getFromMemory: () => undefined, loadSync: () => source } as any;\n expect(fromDisk.loadFlattenedDependenciesSync(diskRepo).map((id) => id.toString())).to.deep.equal(flattenedStr);\n const fromCache = Version.parse(version.toBuffer(false).toString(), hash);\n const cacheRepo = { getFromMemory: () => source, loadSync: () => undefined } as any;\n expect(fromCache.loadFlattenedDependenciesSync(cacheRepo).map((id) => id.toString())).to.deep.equal(\n flattenedStr\n );\n expect(fromCache.flattenedDependenciesRef?.toString()).to.equal(source.hash().toString());\n });\n it('should save a newly set list in the Version, instead of the ref', () => {\n const parsed = Version.parse(version.toBuffer(false).toString(), hash);\n parsed.flattenedDependencies = new ComponentIdList(ComponentID.fromString('my-scope/is-type@0.0.3'));\n const versionObj = parsed.toObject();\n expect(versionObj).to.not.have.property('flattenedDependenciesRef');\n expect(versionObj.flattenedDependencies).to.deep.equal([\n { scope: 'my-scope', name: 'is-type', version: '0.0.3' },\n ]);\n });\n it('should throw, not return an empty list, when the Source is missing', async () => {\n const parsed = Version.parse(version.toBuffer(false).toString(), hash);\n let error: Error | undefined;\n try {\n await parsed.loadFlattenedDependencies(loaderOf([]));\n } catch (err: any) {\n error = err;\n }\n expect(error?.message).to.include(`unable to find the object ${source.hash().toString()}`);\n });\n it('should load the list of the old format without the loader', async () => {\n const oldFormat = getVersionWithDepsFixture();\n const loaded = await oldFormat.loadFlattenedDependencies(loaderOf([]));\n expect(loaded.map((id) => id.toString())).to.deep.equal(flattenedStr);\n });\n it('should validate the list when it was moved but is still loaded', () => {\n const moved = getVersionWithDepsFixture();\n moved.flattenedDependencies = new ComponentIdList(ComponentID.fromString('my-scope/is-type'));\n moved.moveFlattenedDependenciesToSource();\n expect(() => moved.validate()).to.throw('does not have a version');\n });\n it('should pass the validation although the list is not in the Version', () => {\n expect(version.dependencies.isEmpty()).to.be.false;\n expect(() => version.validate()).to.not.throw();\n });\n });\n });\n describe('validate()', () => {\n let version;\n let validateFunc;\n beforeEach(() => {\n version = getVersionWithDepsFixture();\n validateFunc = () => version.validate();\n });\n it('should not throw when it has a valid version', () => {\n expect(validateFunc).to.not.throw();\n });\n it('should throw when mainFile is empty', () => {\n const errMsg = 'mainFile is missing';\n version.mainFile = null;\n expect(validateFunc).to.throw(errMsg);\n version.mainFile = '';\n expect(validateFunc).to.throw(errMsg);\n version.mainFile = undefined;\n expect(validateFunc).to.throw(errMsg);\n });\n it('should throw when mainFile path is absolute', () => {\n version.mainFile = '/tmp/main.js';\n expect(validateFunc).to.throw(`mainFile ${version.mainFile} is invalid`);\n });\n it('should throw when mainFile path is Windows format', () => {\n version.mainFile = 'a\\\\tmp.js';\n expect(validateFunc).to.throw(`mainFile ${version.mainFile} is invalid`);\n });\n it('should throw when the files are missing', () => {\n version.files = undefined;\n expect(validateFunc).to.throw('files are missing');\n version.files = null;\n expect(validateFunc).to.throw('files are missing');\n version.files = [];\n expect(validateFunc).to.throw('files are missing');\n });\n it('should throw when the file has no hash', () => {\n version.files[0].file = '';\n expect(validateFunc).to.throw('missing the hash');\n });\n it('should throw when the file has no name', () => {\n version.files[0].name = '';\n expect(validateFunc).to.throw('missing the name');\n });\n it('should throw when the file.name is not a string', () => {\n version.files[0].name = true;\n expect(validateFunc).to.throw('to be string, got boolean');\n });\n it('should throw when the file hash is not a string', () => {\n version.files[0].file.hash = [];\n expect(validateFunc).to.throw('to be string, got object');\n });\n it('should throw when the main file is not in the file lists', () => {\n version.files[0].relativePath = 'anotherFile.js';\n expect(validateFunc).to.throw('unable to find the mainFile');\n });\n it('should throw when the two files have the same name but different letter cases', () => {\n version.files[1] = clone(version.files[0]);\n version.files[1].relativePath = 'bar/Foo.ts';\n expect(validateFunc).to.throw('files are duplicated bar/foo.ts, bar/Foo.ts');\n });\n it('should throw for an invalid package version', () => {\n version.packageDependencies = { lodash: 34 };\n expect(validateFunc).to.throw('expected version of \"lodash\" to be string, got number');\n });\n it('should not throw for a package version which is a git url', () => {\n version.packageDependencies = { userLib: 'gitreadonly ssh://git@git.bit.io' };\n expect(validateFunc).to.not.throw();\n });\n it('should throw for invalid packageDependencies type', () => {\n version.packageDependencies = 'invalid packages';\n expect(validateFunc).to.throw('to be object, got string');\n });\n it('should throw for invalid devPackageDependencies type', () => {\n version.devPackageDependencies = [1, 2, 3];\n expect(validateFunc).to.throw('to be object, got array');\n });\n it('should throw for invalid peerPackageDependencies type', () => {\n version.peerPackageDependencies = true;\n expect(validateFunc).to.throw('to be object, got boolean');\n });\n it('should throw when dependencies are invalid', () => {\n version.dependencies = {};\n expect(validateFunc).to.throw('dependencies must be an instance of Dependencies, got object');\n });\n it('should throw when devDependencies are invalid', () => {\n version.devDependencies = {};\n expect(validateFunc).to.throw('devDependencies must be an instance of Dependencies, got object');\n });\n it('should throw when there are dependencies and the flattenDependencies are empty', () => {\n version.flattenedDependencies = [];\n expect(validateFunc).to.throw('it has dependencies but its flattenedDependencies is empty');\n });\n it('should throw when a flattenDependency is invalid', () => {\n version.flattenedDependencies = [1234];\n expect(validateFunc).to.throw('expected to be ComponentID, got number');\n });\n it('should throw when a flattenDependency does not have a version', () => {\n version.flattenedDependencies[0] = version.flattenedDependencies[0].changeVersion(null);\n expect(validateFunc).to.throw('does not have a version');\n });\n it('should throw when the log is empty', () => {\n version.log = undefined;\n expect(validateFunc).to.throw('log object is missing');\n });\n it('should throw when the log has an invalid type', () => {\n version.log = [];\n expect(validateFunc).to.throw('to be object, got array');\n });\n it('should throw when the bindingPrefix has an invalid type', () => {\n version.bindingPrefix = {};\n expect(validateFunc).to.throw('to be string, got object');\n });\n it('should throw when packageJsonChangedProps tries to override built-in package.json prop', () => {\n version.packageJsonChangedProps = { main: 'my-new-main.js' };\n expect(validateFunc).to.throw('the packageJsonChangedProps should not override the prop main');\n });\n it('should throw when packageJsonChangedProps is not an object', () => {\n version.packageJsonChangedProps = [1, 2, 3, 4];\n expect(validateFunc).to.throw('expected packageJsonChangedProps to be object, got array');\n });\n it('should throw when packageJsonChangedProps has a non-compliant npm value', () => {\n version.packageJsonChangedProps = { bin: 1234 };\n expect(validateFunc).to.throw('the generated package.json field \"bin\" is not compliant with npm requirements');\n });\n it('should not throw when packageJsonChangedProps has a compliant npm value', () => {\n version.packageJsonChangedProps = { bin: 'my-file.js' };\n expect(validateFunc).to.not.throw();\n });\n it('should throw when overrides has a \"system\" field (field that Bit uses internally for consumer overrides)', () => {\n version.overrides = { exclude: ['*'] };\n expect(validateFunc).to.throw('the \"overrides\" has a forbidden key \"exclude\"');\n });\n it('should throw when overrides has a package.json field that is non-compliant npm value', () => {\n version.overrides = { bin: 1234 };\n expect(validateFunc).to.throw(\n '\"overrides.bin\" is a package.json field but is not compliant with npm requirements'\n );\n });\n it('should not throw when overrides has a package.json field that is compliant npm value', () => {\n version.overrides = { bin: 'my-file.js' };\n expect(validateFunc).to.not.throw();\n });\n it('should show the original error from package-json-validator when overrides has a package.json field that is non-compliant npm value', () => {\n version.overrides = { scripts: false };\n expect(validateFunc).to.throw('Type for field scripts, was expected to be object, not boolean');\n });\n describe('Harmony schema', () => {\n beforeEach(() => {\n version.schema = SchemaName.Harmony;\n });\n it('should throw for having relativePaths on Harmony', () => {\n delete version.compiler;\n delete version.dists;\n expect(validateFunc).to.throw('the dependencies should not have relativePaths');\n });\n it('should throw for having relativePaths on any other version other than legacy', () => {\n version.schema = '2.0.0';\n delete version.compiler;\n delete version.dists;\n expect(validateFunc).to.throw('the dependencies should not have relativePaths');\n });\n it('should not throw for having relativePaths on legacy', () => {\n version.schema = SchemaName.Legacy;\n delete version.compiler;\n delete version.dists;\n expect(validateFunc).to.not.throw();\n });\n it('should throw for having customResolvedPaths on Harmony', () => {\n delete version.compiler;\n delete version.dists;\n version.dependencies.dependencies[0].relativePaths = [];\n version.customResolvedPaths = ['something'];\n expect(validateFunc).to.throw(\n 'the customResolvedPaths field is cannot have values according to schema \"1.0.0\"'\n );\n });\n it('should not throw when all is good', () => {\n delete version.compiler;\n delete version.dists;\n version.dependencies.dependencies[0].relativePaths = [];\n expect(validateFunc).to.not.throw();\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_chai","data","require","_versionModelExtended","_interopRequireDefault","_versionModelObject","_legacy","_version","_lodash","_componentId","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","getVersionWithDepsFixture","Version","parse","JSON","stringify","clone","versionWithDepsFixture","describe","version","idRaw","idParsed","before","versionFixture","id","it","expect","to","haveOwnProperty","not","dependencies","be","an","and","have","lengthOf","hash","versionFixtureHash","calculateHash","toString","equal","versionFromContent","parseWithFlattened","flattened","flattenedDependencies","flattenedDevDependencies","scope","name","getLoadedFlattenedDependencies","map","deep","first","second","edgeFromObj1","depEdgeFromObject","source","target","type","edgeFromObj2","edgeFromArr1","depEdgeFromArray","edgeFromArr2","ComponentIdList","ComponentID","fromString","toObject","flattenedStr","loaderOf","objects","load","ref","find","obj","isEqual","original","moveFlattenedDependenciesToSource","toBuffer","contents","versionObj","property","flattenedDependenciesRef","refs","refsWithOptions","include","throw","parsed","loaded","loadFlattenedDependencies","fromDisk","diskRepo","getFromMemory","undefined","loadSync","loadFlattenedDependenciesSync","fromCache","cacheRepo","error","err","message","oldFormat","moved","validate","isEmpty","false","validateFunc","beforeEach","errMsg","mainFile","files","file","relativePath","packageDependencies","lodash","userLib","devPackageDependencies","peerPackageDependencies","devDependencies","changeVersion","log","bindingPrefix","packageJsonChangedProps","main","bin","overrides","exclude","scripts","schema","SchemaName","Harmony","compiler","dists","Legacy","relativePaths","customResolvedPaths"],"sources":["version.spec.ts"],"sourcesContent":["import { expect } from 'chai';\n\nimport versionWithDepsFixture from '../fixtures/version-model-extended.json';\nimport versionFixture from '../fixtures/version-model-object.json';\nimport { SchemaName } from '@teambit/legacy.consumer-component';\nimport Version from './version';\nimport type { ObjectsLoader } from './version';\nimport type Source from './source';\nimport type { Ref } from '../objects';\nimport { clone } from 'lodash';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\n\nconst getVersionWithDepsFixture = () => {\n return Version.parse(JSON.stringify(clone(versionWithDepsFixture)), '12c830ed25854dc731b58e014c6b4960ccb59092');\n};\n\ndescribe('Version', () => {\n describe('id()', () => {\n describe('simple version', () => {\n let version;\n let idRaw;\n let idParsed;\n before(() => {\n // @ts-ignore\n version = new Version(versionFixture);\n idRaw = version.id();\n idParsed = JSON.parse(idRaw);\n });\n it('should have mainFile property', () => {\n expect(idParsed).to.haveOwnProperty('mainFile');\n });\n it('should have files property', () => {\n expect(idParsed).to.haveOwnProperty('files');\n });\n it('should have log property', () => {\n expect(idParsed).to.haveOwnProperty('log');\n });\n it('should have dependencies property', () => {\n expect(idParsed).to.haveOwnProperty('dependencies');\n });\n it('should have packageDependencies property', () => {\n expect(idParsed).to.haveOwnProperty('packageDependencies');\n });\n it('should have bindingPrefix property', () => {\n expect(idParsed).to.haveOwnProperty('bindingPrefix');\n });\n it('should not have docs property', () => {\n expect(idParsed).to.not.haveOwnProperty('docs');\n });\n it('should not have devDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('devDependencies');\n });\n it('should not have flattenedDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('flattenedDependencies');\n });\n it('should not have devPackageDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('devPackageDependencies');\n });\n it('should not have peerPackageDependencies property', () => {\n expect(idParsed).to.not.haveOwnProperty('peerPackageDependencies');\n });\n });\n describe('version with dependencies', () => {\n let dependencies;\n before(() => {\n const version = getVersionWithDepsFixture();\n const idRaw = version.id();\n const idParsed = JSON.parse(idRaw);\n dependencies = idParsed.dependencies;\n });\n it('dependencies should be an array', () => {\n expect(dependencies).to.be.an('array').and.have.lengthOf(1);\n });\n it('dependencies should have id property only (relativePaths removed)', () => {\n expect(dependencies[0]).to.haveOwnProperty('id');\n expect(dependencies[0]).to.not.haveOwnProperty('relativePaths');\n expect(dependencies[0]).to.not.haveOwnProperty('nonExistProperty');\n expect(Object.keys(dependencies[0])).to.have.lengthOf(1);\n });\n // relativePaths tests removed - no longer included in Version.id() hash for Harmony components\n });\n });\n describe('hash()', () => {\n let version: Version;\n let hash;\n const versionFixtureHash = '4f67925a80b5e1f52dd1177196bf4c003d2f8798';\n before(() => {\n // @ts-ignore\n version = new Version(versionFixture);\n hash = version.calculateHash();\n });\n it('should have a correct hash string', () => {\n expect(hash.toString()).to.equal(versionFixtureHash);\n });\n it('should have a the same hash string also when loading the version from contents', () => {\n const versionFromContent = Version.parse(JSON.stringify(versionFixture), hash.toString());\n expect(versionFromContent.hash().toString()).to.equal(versionFixtureHash);\n });\n });\n describe('flattenedDependencies', () => {\n const parseWithFlattened = (flattened: Record<string, any>) =>\n Version.parse(\n JSON.stringify({ ...versionWithDepsFixture, ...flattened }),\n '12c830ed25854dc731b58e014c6b4960ccb59092'\n );\n it('should parse id objects, id strings and the old flattenedDevDependencies', () => {\n const version = parseWithFlattened({\n flattenedDependencies: ['my-scope/is-type@0.0.1'],\n flattenedDevDependencies: [{ scope: 'my-scope', name: 'utils/is-string', version: '0.0.2' }],\n });\n expect(version.getLoadedFlattenedDependencies().map((id) => id.toString())).to.deep.equal([\n 'my-scope/is-type@0.0.1',\n 'my-scope/utils/is-string@0.0.2',\n ]);\n });\n it('should share the same id instance between versions', () => {\n const first = getVersionWithDepsFixture();\n const second = getVersionWithDepsFixture();\n expect(first.getLoadedFlattenedDependencies()).to.not.equal(second.getLoadedFlattenedDependencies());\n expect(first.getLoadedFlattenedDependencies()[0]).to.equal(second.getLoadedFlattenedDependencies()[0]);\n });\n it('should share the same id and edge instances for flattenedEdges', () => {\n const edgeFromObj1 = Version.depEdgeFromObject({\n source: { scope: 'my-scope', name: 'comp-a', version: '0.0.1' },\n target: { scope: 'my-scope', name: 'is-type', version: '0.0.1' },\n type: 'prod',\n });\n const edgeFromObj2 = Version.depEdgeFromObject({\n source: { scope: 'my-scope', name: 'comp-a', version: '0.0.1' },\n target: { scope: 'my-scope', name: 'is-type', version: '0.0.1' },\n type: 'prod',\n });\n expect(edgeFromObj1).to.equal(edgeFromObj2);\n expect(edgeFromObj1.source).to.equal(edgeFromObj2.source);\n expect(edgeFromObj1.target).to.equal(edgeFromObj2.target);\n\n const edgeFromArr1 = Version.depEdgeFromArray(['my-scope/comp-a@0.0.1', 'my-scope/is-type@0.0.1', 'prod']);\n const edgeFromArr2 = Version.depEdgeFromArray(['my-scope/comp-a@0.0.1', 'my-scope/is-type@0.0.1', 'prod']);\n expect(edgeFromArr1).to.equal(edgeFromArr2);\n expect(edgeFromArr1.source).to.equal(edgeFromArr2.source);\n expect(edgeFromArr1.target).to.equal(edgeFromArr2.target);\n });\n it('should keep a list that was set, and serialize it', () => {\n const version = getVersionWithDepsFixture();\n version.flattenedDependencies = new ComponentIdList(ComponentID.fromString('my-scope/is-type@0.0.3'));\n expect(version.toObject().flattenedDependencies).to.deep.equal([\n { scope: 'my-scope', name: 'is-type', version: '0.0.3' },\n ]);\n });\n describe('stored in a separate object', () => {\n const hash = '12c830ed25854dc731b58e014c6b4960ccb59092';\n let source: Source;\n let version: Version;\n let flattenedStr: string[];\n const loaderOf = (objects: Source[]): ObjectsLoader => ({\n load: async (ref: Ref) => objects.find((obj) => obj.hash().isEqual(ref)),\n });\n before(() => {\n const original = getVersionWithDepsFixture();\n flattenedStr = original.getLoadedFlattenedDependencies().map((id) => id.toString());\n source = original.moveFlattenedDependenciesToSource() as Source;\n version = Version.parse(original.toBuffer(false).toString(), hash);\n });\n it('should save the ids as strings in the Source, and only the ref in the Version', () => {\n expect(JSON.parse(source.contents.toString())).to.deep.equal(flattenedStr);\n const versionObj = version.toObject();\n expect(versionObj).to.not.have.property('flattenedDependencies');\n expect(versionObj.flattenedDependenciesRef).to.equal(source.hash().toString());\n });\n it('should return the Source ref as one of the version refs, so it is fetched, exported and kept by GC', () => {\n const refs = version.refsWithOptions(false, false).map((ref) => ref.toString());\n expect(refs).to.include(source.hash().toString());\n });\n it('should throw when the list is read before it was loaded', () => {\n expect(() => version.getLoadedFlattenedDependencies()).to.throw('load them with loadFlattenedDependencies()');\n expect(() => version.flattenedDependencies).to.throw('load them with loadFlattenedDependencies()');\n });\n it('should load the list from the Source, and keep only the ref when saved again', async () => {\n const parsed = Version.parse(version.toBuffer(false).toString(), hash);\n const loaded = await parsed.loadFlattenedDependencies(loaderOf([source]));\n expect(loaded.map((id) => id.toString())).to.deep.equal(flattenedStr);\n expect(parsed.getLoadedFlattenedDependencies()).to.equal(loaded);\n expect(parsed.toObject()).to.not.have.property('flattenedDependencies');\n });\n it('should load the list synchronously, from the cache or from the disk', () => {\n const fromDisk = Version.parse(version.toBuffer(false).toString(), hash);\n const diskRepo = { getFromMemory: () => undefined, loadSync: () => source } as any;\n expect(fromDisk.loadFlattenedDependenciesSync(diskRepo).map((id) => id.toString())).to.deep.equal(flattenedStr);\n const fromCache = Version.parse(version.toBuffer(false).toString(), hash);\n const cacheRepo = { getFromMemory: () => source, loadSync: () => undefined } as any;\n expect(fromCache.loadFlattenedDependenciesSync(cacheRepo).map((id) => id.toString())).to.deep.equal(\n flattenedStr\n );\n expect(fromCache.flattenedDependenciesRef?.toString()).to.equal(source.hash().toString());\n });\n it('should save a newly set list in the Version, instead of the ref', () => {\n const parsed = Version.parse(version.toBuffer(false).toString(), hash);\n parsed.flattenedDependencies = new ComponentIdList(ComponentID.fromString('my-scope/is-type@0.0.3'));\n const versionObj = parsed.toObject();\n expect(versionObj).to.not.have.property('flattenedDependenciesRef');\n expect(versionObj.flattenedDependencies).to.deep.equal([\n { scope: 'my-scope', name: 'is-type', version: '0.0.3' },\n ]);\n });\n it('should throw, not return an empty list, when the Source is missing', async () => {\n const parsed = Version.parse(version.toBuffer(false).toString(), hash);\n let error: Error | undefined;\n try {\n await parsed.loadFlattenedDependencies(loaderOf([]));\n } catch (err: any) {\n error = err;\n }\n expect(error?.message).to.include(`unable to find the object ${source.hash().toString()}`);\n });\n it('should load the list of the old format without the loader', async () => {\n const oldFormat = getVersionWithDepsFixture();\n const loaded = await oldFormat.loadFlattenedDependencies(loaderOf([]));\n expect(loaded.map((id) => id.toString())).to.deep.equal(flattenedStr);\n });\n it('should validate the list when it was moved but is still loaded', () => {\n const moved = getVersionWithDepsFixture();\n moved.flattenedDependencies = new ComponentIdList(ComponentID.fromString('my-scope/is-type'));\n moved.moveFlattenedDependenciesToSource();\n expect(() => moved.validate()).to.throw('does not have a version');\n });\n it('should pass the validation although the list is not in the Version', () => {\n expect(version.dependencies.isEmpty()).to.be.false;\n expect(() => version.validate()).to.not.throw();\n });\n });\n });\n describe('validate()', () => {\n let version;\n let validateFunc;\n beforeEach(() => {\n version = getVersionWithDepsFixture();\n validateFunc = () => version.validate();\n });\n it('should not throw when it has a valid version', () => {\n expect(validateFunc).to.not.throw();\n });\n it('should throw when mainFile is empty', () => {\n const errMsg = 'mainFile is missing';\n version.mainFile = null;\n expect(validateFunc).to.throw(errMsg);\n version.mainFile = '';\n expect(validateFunc).to.throw(errMsg);\n version.mainFile = undefined;\n expect(validateFunc).to.throw(errMsg);\n });\n it('should throw when mainFile path is absolute', () => {\n version.mainFile = '/tmp/main.js';\n expect(validateFunc).to.throw(`mainFile ${version.mainFile} is invalid`);\n });\n it('should throw when mainFile path is Windows format', () => {\n version.mainFile = 'a\\\\tmp.js';\n expect(validateFunc).to.throw(`mainFile ${version.mainFile} is invalid`);\n });\n it('should throw when the files are missing', () => {\n version.files = undefined;\n expect(validateFunc).to.throw('files are missing');\n version.files = null;\n expect(validateFunc).to.throw('files are missing');\n version.files = [];\n expect(validateFunc).to.throw('files are missing');\n });\n it('should throw when the file has no hash', () => {\n version.files[0].file = '';\n expect(validateFunc).to.throw('missing the hash');\n });\n it('should throw when the file has no name', () => {\n version.files[0].name = '';\n expect(validateFunc).to.throw('missing the name');\n });\n it('should throw when the file.name is not a string', () => {\n version.files[0].name = true;\n expect(validateFunc).to.throw('to be string, got boolean');\n });\n it('should throw when the file hash is not a string', () => {\n version.files[0].file.hash = [];\n expect(validateFunc).to.throw('to be string, got object');\n });\n it('should throw when the main file is not in the file lists', () => {\n version.files[0].relativePath = 'anotherFile.js';\n expect(validateFunc).to.throw('unable to find the mainFile');\n });\n it('should throw when the two files have the same name but different letter cases', () => {\n version.files[1] = clone(version.files[0]);\n version.files[1].relativePath = 'bar/Foo.ts';\n expect(validateFunc).to.throw('files are duplicated bar/foo.ts, bar/Foo.ts');\n });\n it('should throw for an invalid package version', () => {\n version.packageDependencies = { lodash: 34 };\n expect(validateFunc).to.throw('expected version of \"lodash\" to be string, got number');\n });\n it('should not throw for a package version which is a git url', () => {\n version.packageDependencies = { userLib: 'gitreadonly ssh://git@git.bit.io' };\n expect(validateFunc).to.not.throw();\n });\n it('should throw for invalid packageDependencies type', () => {\n version.packageDependencies = 'invalid packages';\n expect(validateFunc).to.throw('to be object, got string');\n });\n it('should throw for invalid devPackageDependencies type', () => {\n version.devPackageDependencies = [1, 2, 3];\n expect(validateFunc).to.throw('to be object, got array');\n });\n it('should throw for invalid peerPackageDependencies type', () => {\n version.peerPackageDependencies = true;\n expect(validateFunc).to.throw('to be object, got boolean');\n });\n it('should throw when dependencies are invalid', () => {\n version.dependencies = {};\n expect(validateFunc).to.throw('dependencies must be an instance of Dependencies, got object');\n });\n it('should throw when devDependencies are invalid', () => {\n version.devDependencies = {};\n expect(validateFunc).to.throw('devDependencies must be an instance of Dependencies, got object');\n });\n it('should throw when there are dependencies and the flattenDependencies are empty', () => {\n version.flattenedDependencies = [];\n expect(validateFunc).to.throw('it has dependencies but its flattenedDependencies is empty');\n });\n it('should throw when a flattenDependency is invalid', () => {\n version.flattenedDependencies = [1234];\n expect(validateFunc).to.throw('expected to be ComponentID, got number');\n });\n it('should throw when a flattenDependency does not have a version', () => {\n version.flattenedDependencies[0] = version.flattenedDependencies[0].changeVersion(null);\n expect(validateFunc).to.throw('does not have a version');\n });\n it('should throw when the log is empty', () => {\n version.log = undefined;\n expect(validateFunc).to.throw('log object is missing');\n });\n it('should throw when the log has an invalid type', () => {\n version.log = [];\n expect(validateFunc).to.throw('to be object, got array');\n });\n it('should throw when the bindingPrefix has an invalid type', () => {\n version.bindingPrefix = {};\n expect(validateFunc).to.throw('to be string, got object');\n });\n it('should throw when packageJsonChangedProps tries to override built-in package.json prop', () => {\n version.packageJsonChangedProps = { main: 'my-new-main.js' };\n expect(validateFunc).to.throw('the packageJsonChangedProps should not override the prop main');\n });\n it('should throw when packageJsonChangedProps is not an object', () => {\n version.packageJsonChangedProps = [1, 2, 3, 4];\n expect(validateFunc).to.throw('expected packageJsonChangedProps to be object, got array');\n });\n it('should throw when packageJsonChangedProps has a non-compliant npm value', () => {\n version.packageJsonChangedProps = { bin: 1234 };\n expect(validateFunc).to.throw('the generated package.json field \"bin\" is not compliant with npm requirements');\n });\n it('should not throw when packageJsonChangedProps has a compliant npm value', () => {\n version.packageJsonChangedProps = { bin: 'my-file.js' };\n expect(validateFunc).to.not.throw();\n });\n it('should throw when overrides has a \"system\" field (field that Bit uses internally for consumer overrides)', () => {\n version.overrides = { exclude: ['*'] };\n expect(validateFunc).to.throw('the \"overrides\" has a forbidden key \"exclude\"');\n });\n it('should throw when overrides has a package.json field that is non-compliant npm value', () => {\n version.overrides = { bin: 1234 };\n expect(validateFunc).to.throw(\n '\"overrides.bin\" is a package.json field but is not compliant with npm requirements'\n );\n });\n it('should not throw when overrides has a package.json field that is compliant npm value', () => {\n version.overrides = { bin: 'my-file.js' };\n expect(validateFunc).to.not.throw();\n });\n it('should show the original error from package-json-validator when overrides has a package.json field that is non-compliant npm value', () => {\n version.overrides = { scripts: false };\n expect(validateFunc).to.throw('Type for field scripts, was expected to be object, not boolean');\n });\n describe('Harmony schema', () => {\n beforeEach(() => {\n version.schema = SchemaName.Harmony;\n });\n it('should throw for having relativePaths on Harmony', () => {\n delete version.compiler;\n delete version.dists;\n expect(validateFunc).to.throw('the dependencies should not have relativePaths');\n });\n it('should throw for having relativePaths on any other version other than legacy', () => {\n version.schema = '2.0.0';\n delete version.compiler;\n delete version.dists;\n expect(validateFunc).to.throw('the dependencies should not have relativePaths');\n });\n it('should not throw for having relativePaths on legacy', () => {\n version.schema = SchemaName.Legacy;\n delete version.compiler;\n delete version.dists;\n expect(validateFunc).to.not.throw();\n });\n it('should throw for having customResolvedPaths on Harmony', () => {\n delete version.compiler;\n delete version.dists;\n version.dependencies.dependencies[0].relativePaths = [];\n version.customResolvedPaths = ['something'];\n expect(validateFunc).to.throw(\n 'the customResolvedPaths field is cannot have values according to schema \"1.0.0\"'\n );\n });\n it('should not throw when all is good', () => {\n delete version.compiler;\n delete version.dists;\n version.dependencies.dependencies[0].relativePaths = [];\n expect(validateFunc).to.not.throw();\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
package/dist/objects/object.js
CHANGED
|
@@ -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","compressWithSize","serialized","serialize","deflate","inflatedSize","byteLength","Buffer","concat","from","parseObject","fileContents","filePath","parseObjectWithSize","inflate","parseObjectOnlyIfType","typeNames","includes","parseObjectTypeFromChunk","chunk","inflateSync","finishFlush","constants","Z_SYNC_FLUSH","parseObjectType","parseSync","str","sha1","exports"],"sources":["object.ts"],"sourcesContent":["import { constants, 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 async compress(): Promise<Buffer> {\n return (await this.compressWithSize()).buffer;\n }\n\n /**\n * same as `compress`, but also returns the size of the uncompressed content.\n */\n async compressWithSize(): Promise<{ buffer: Buffer; inflatedSize: number }> {\n const serialized = this.serialize();\n return { buffer: await deflate(serialized), inflatedSize: serialized.byteLength };\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 return (await BitObject.parseObjectWithSize(fileContents, filePath)).object;\n }\n\n /**\n * same as `parseObject`, but also returns the size of the inflated content.\n */\n static async parseObjectWithSize(\n fileContents: Buffer,\n filePath?: string\n ): Promise<{ object: BitObject; inflatedSize: number }> {\n const buffer = await inflate(fileContents, filePath);\n return { object: parse(buffer), inflatedSize: buffer.byteLength };\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 * extract only the object type out of the first chunk of a compressed object file.\n *\n * the type is the first token of the header, which sits at the very beginning of the inflated\n * buffer, so there's no need to inflate the entire object. `Z_SYNC_FLUSH` tells zlib to return\n * whatever it managed to inflate instead of throwing on the truncated input.\n * returns null when the header is not fully contained in the given chunk, in which case the\n * caller should fall back to inflating the whole file. a header that is there but names a type\n * nothing is registered under throws instead: reading it as a type of its own would let a\n * damaged object pass for classified, and the caller acts on the inventory being complete.\n *\n * the chunk is a `Uint8Array` rather than a `Buffer` because newer `@types/node` make `Buffer`\n * generic, which no longer matches zlib's `InputType` under the typescript version our envs ship.\n */\n static parseObjectTypeFromChunk(chunk: Uint8Array): string | null {\n let buffer: Buffer;\n try {\n buffer = inflateSync(chunk, { finishFlush: constants.Z_SYNC_FLUSH });\n } catch {\n return null;\n }\n const firstNullByteLocation = buffer.indexOf(NULL_BYTE);\n if (firstNullByteLocation === -1) return null;\n const [type] = buffer.slice(0, firstNullByteLocation).toString().split(SPACE_DELIMITER);\n if (!type) return null;\n if (!types[type]) throw new UnknownObjectType(type);\n return type;\n }\n\n /**\n * same as `parseObjectTypeFromChunk`, only it gets the entire (inflated) object.\n */\n static async parseObjectType(fileContents: Buffer, filePath?: string): Promise<string> {\n const buffer = await inflate(fileContents, filePath);\n const { type } = extractHeaderAndContent(buffer);\n if (!types[type]) throw new UnknownObjectType(type);\n return type;\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 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","compressWithSize","serialized","serialize","deflate","inflatedSize","byteLength","Buffer","concat","from","parseObject","fileContents","filePath","parseObjectWithSize","inflate","parseObjectOnlyIfType","typeNames","includes","parseObjectTypeFromChunk","chunk","inflateSync","finishFlush","constants","Z_SYNC_FLUSH","parseObjectType","parseSync","str","sha1","exports"],"sources":["object.ts"],"sourcesContent":["import { constants, 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: Ref[] = [];\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 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 async compress(): Promise<Buffer> {\n return (await this.compressWithSize()).buffer;\n }\n\n /**\n * same as `compress`, but also returns the size of the uncompressed content.\n */\n async compressWithSize(): Promise<{ buffer: Buffer; inflatedSize: number }> {\n const serialized = this.serialize();\n return { buffer: await deflate(serialized), inflatedSize: serialized.byteLength };\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 return (await BitObject.parseObjectWithSize(fileContents, filePath)).object;\n }\n\n /**\n * same as `parseObject`, but also returns the size of the inflated content.\n */\n static async parseObjectWithSize(\n fileContents: Buffer,\n filePath?: string\n ): Promise<{ object: BitObject; inflatedSize: number }> {\n const buffer = await inflate(fileContents, filePath);\n return { object: parse(buffer), inflatedSize: buffer.byteLength };\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 * extract only the object type out of the first chunk of a compressed object file.\n *\n * the type is the first token of the header, which sits at the very beginning of the inflated\n * buffer, so there's no need to inflate the entire object. `Z_SYNC_FLUSH` tells zlib to return\n * whatever it managed to inflate instead of throwing on the truncated input.\n * returns null when the header is not fully contained in the given chunk, in which case the\n * caller should fall back to inflating the whole file. a header that is there but names a type\n * nothing is registered under throws instead: reading it as a type of its own would let a\n * damaged object pass for classified, and the caller acts on the inventory being complete.\n *\n * the chunk is a `Uint8Array` rather than a `Buffer` because newer `@types/node` make `Buffer`\n * generic, which no longer matches zlib's `InputType` under the typescript version our envs ship.\n */\n static parseObjectTypeFromChunk(chunk: Uint8Array): string | null {\n let buffer: Buffer;\n try {\n buffer = inflateSync(chunk, { finishFlush: constants.Z_SYNC_FLUSH });\n } catch {\n return null;\n }\n const firstNullByteLocation = buffer.indexOf(NULL_BYTE);\n if (firstNullByteLocation === -1) return null;\n const [type] = buffer.slice(0, firstNullByteLocation).toString().split(SPACE_DELIMITER);\n if (!type) return null;\n if (!types[type]) throw new UnknownObjectType(type);\n return type;\n }\n\n /**\n * same as `parseObjectTypeFromChunk`, only it gets the entire (inflated) object.\n */\n static async parseObjectType(fileContents: Buffer, filePath?: string): Promise<string> {\n const buffer = await inflate(fileContents, filePath);\n const { type } = extractHeaderAndContent(buffer);\n if (!types[type]) throw new UnknownObjectType(type);\n return type;\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 return sha1(str);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import type BitObject from './object';
|
|
2
1
|
export default class BitRawObject {
|
|
3
2
|
headers: string[];
|
|
4
3
|
type: string;
|
|
5
4
|
content: Buffer;
|
|
6
5
|
parsedContent: any;
|
|
7
6
|
_ref: string;
|
|
8
|
-
constructor(buffer
|
|
7
|
+
constructor(buffer?: Buffer, ref?: string | null, type?: string | null, content?: Buffer | null, parsedContent?: any | null);
|
|
9
8
|
getParsedContent(): any;
|
|
10
9
|
getString(pretty: boolean): string | Buffer<ArrayBufferLike>;
|
|
11
10
|
set ref(ref: string);
|
|
12
11
|
get ref(): string;
|
|
13
12
|
get id(): string;
|
|
14
13
|
refs(): string[];
|
|
15
|
-
static fromDeflatedBuffer(fileContents: Buffer, ref: string | null | undefined): Promise<
|
|
14
|
+
static fromDeflatedBuffer(fileContents: Buffer, ref: string | null | undefined): Promise<BitRawObject>;
|
|
16
15
|
/**
|
|
17
16
|
* Build a real object (model) from a parsed content (can be the original parsed conents or a provided one)
|
|
18
17
|
* We use the provided version during the migration process when we change the parsed content outside
|
|
@@ -52,9 +52,7 @@ class BitRawObject {
|
|
|
52
52
|
this.content = content || contentFromBuffer;
|
|
53
53
|
this.headers = headers ? headers.split(_legacy().SPACE_DELIMITER) : undefined;
|
|
54
54
|
const typeFromHeader = this.headers ? this.headers[0] : undefined;
|
|
55
|
-
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
56
55
|
this.type = type || typeFromHeader;
|
|
57
|
-
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
58
56
|
this._ref = ref;
|
|
59
57
|
this.parsedContent = parsedContent || this.getParsedContent();
|
|
60
58
|
}
|
|
@@ -121,7 +119,6 @@ class BitRawObject {
|
|
|
121
119
|
return [];
|
|
122
120
|
}
|
|
123
121
|
static async fromDeflatedBuffer(fileContents, ref) {
|
|
124
|
-
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
125
122
|
return (0, _legacy2().inflate)(fileContents).then(buffer => new BitRawObject(buffer, ref));
|
|
126
123
|
}
|
|
127
124
|
|
|
@@ -136,7 +133,6 @@ class BitRawObject {
|
|
|
136
133
|
clone() {
|
|
137
134
|
const parsedContent = this.parsedContent ? (0, _lodash().clone)(this.parsedContent) : undefined;
|
|
138
135
|
// TODO: Should also clone the buffers (content)
|
|
139
|
-
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
140
136
|
return new BitRawObject(undefined, this._ref, this.type, this.content, parsedContent);
|
|
141
137
|
}
|
|
142
138
|
}
|
|
@@ -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
|
|
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 { clone } from 'lodash';\n\nexport default class BitRawObject {\n headers: string[];\n type: string;\n content: Buffer;\n parsedContent: any;\n _ref: string;\n\n constructor(\n buffer?: Buffer,\n ref?: string | null,\n type?: string | null,\n content?: Buffer | null,\n parsedContent?: any | null\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 this.type = (type || typeFromHeader)!;\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 set ref(ref: string) {\n this._ref = ref;\n }\n\n get ref(): string {\n return this._ref;\n }\n\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(fileContents: Buffer, ref: string | null | undefined): Promise<BitRawObject> {\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 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 return new BitRawObject(undefined, this._ref, this.type, this.content, parsedContent);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -87,7 +87,7 @@ export default class Repository {
|
|
|
87
87
|
getPath(): string;
|
|
88
88
|
getBackupPath(dirName?: string): string;
|
|
89
89
|
getTrashDir(): string;
|
|
90
|
-
getLicense(): Promise<string>;
|
|
90
|
+
getLicense(): Promise<string | null | undefined>;
|
|
91
91
|
getScopeMetaObject(): Promise<ObjectItem>;
|
|
92
92
|
objectPath(ref: Ref): string;
|
|
93
93
|
has(ref: Ref): Promise<boolean>;
|
|
@@ -274,7 +274,6 @@ class Repository {
|
|
|
274
274
|
return path().join(this.scopePath, TRASH_DIR);
|
|
275
275
|
}
|
|
276
276
|
getLicense() {
|
|
277
|
-
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
|
|
278
277
|
return this.scopeJson.getPopulatedLicense();
|
|
279
278
|
}
|
|
280
279
|
async getScopeMetaObject() {
|
|
@@ -656,7 +655,7 @@ class Repository {
|
|
|
656
655
|
if (throws) {
|
|
657
656
|
throw new (_legacy3().HashNotFound)(ref.toString());
|
|
658
657
|
}
|
|
659
|
-
// @ts-
|
|
658
|
+
// @ts-expect-error @todo: it should return BitObject | null (same as `load()`)
|
|
660
659
|
return null;
|
|
661
660
|
}
|
|
662
661
|
}
|
|
@@ -717,7 +716,8 @@ class Repository {
|
|
|
717
716
|
// leave the following commented log message, it is very useful for debugging but too verbose when not needed.
|
|
718
717
|
// logger.debug(`repository: adding object ${object.hash().toString()} which consist of the following id: ${object.id()}`);
|
|
719
718
|
this.objects[object.hash().toString()] = object;
|
|
720
|
-
|
|
719
|
+
const size = object.contents?.byteLength;
|
|
720
|
+
this.setCache(object, size);
|
|
721
721
|
return this;
|
|
722
722
|
}
|
|
723
723
|
addMany(objects) {
|
|
@@ -924,8 +924,11 @@ class Repository {
|
|
|
924
924
|
await this.writeObjectFile(objectPath, transformedContent, options);
|
|
925
925
|
// once written, the object is the up-to-date one. this also replaces the size-estimate of objects that
|
|
926
926
|
// were cached by `add()`.
|
|
927
|
-
|
|
928
|
-
this.
|
|
927
|
+
const cacheable = transformedContent.byteLength < MAX_COMPRESSED_SIZE_TO_CACHE;
|
|
928
|
+
if (this.cache.has(hash.toString())) {
|
|
929
|
+
if (cacheable) this.cache.set(hash.toString(), object, inflatedSize);else this.cache.delete(hash.toString());
|
|
930
|
+
}
|
|
931
|
+
this.liveObjects.set(hash.toString(), object, inflatedSize, cacheable);
|
|
929
932
|
}
|
|
930
933
|
async writeObjectsToPendingDir(objectList, pendingDir) {
|
|
931
934
|
// Refs come from client-supplied tar entry names. Validate the whole batch
|