@teambit/objects 0.0.0-fe8e30c7942d34e4dfb8bda5b2527ab810254a3d → 0.0.0-ff3121b14c6880670d2b2c275634315b73294711
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/export-metadata.js +0 -2
- package/dist/models/export-metadata.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 +22 -5
- package/dist/models/model-component.js.map +1 -1
- package/dist/models/scopeMeta.d.ts +1 -1
- package/dist/models/scopeMeta.js +0 -3
- package/dist/models/scopeMeta.js.map +1 -1
- package/dist/models/source.d.ts +2 -2
- package/dist/models/source.js +0 -1
- package/dist/models/source.js.map +1 -1
- 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 +1 -13
- package/dist/models/version.js.map +1 -1
- package/dist/models/version.spec.js +4 -12
- package/dist/models/version.spec.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-list.d.ts +6 -0
- package/dist/objects/object-list.js +20 -0
- package/dist/objects/object-list.js.map +1 -1
- package/dist/objects/object.d.ts +2 -2
- package/dist/objects/object.js +0 -1
- 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 +1 -11
- 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.d.ts +23 -7
- package/dist/objects/repository.js +23 -12
- package/dist/objects/repository.js.map +1 -1
- package/dist/objects/scope-index.d.ts +2 -2
- package/dist/objects/scope-index.js +0 -1
- package/dist/objects/scope-index.js.map +1 -1
- package/models/dependencies-graph.ts +1 -1
- package/models/export-metadata.ts +0 -1
- package/models/lane-history.ts +1 -1
- package/models/lane.ts +4 -3
- package/models/model-component.ts +36 -16
- package/models/scopeMeta.ts +1 -3
- package/models/source.ts +0 -1
- package/models/version-history.ts +1 -1
- package/models/version.spec.ts +4 -12
- package/models/version.ts +10 -21
- package/objects/bit-object-list.ts +1 -1
- package/objects/object-list-to-graph.ts +2 -2
- package/objects/object-list.ts +14 -0
- package/objects/object.ts +2 -3
- package/objects/objects-readable-generator.ts +6 -6
- package/objects/raw-object.ts +2 -12
- package/objects/ref.ts +2 -2
- package/objects/repository.ts +29 -17
- package/objects/scope-index.ts +2 -3
- package/package.json +32 -32
- package/dist/objects/repository-hooks.d.ts +0 -4
- package/dist/objects/repository-hooks.js +0 -56
- package/dist/objects/repository-hooks.js.map +0 -1
- package/objects/repository-hooks.ts +0 -42
- /package/dist/{preview-1752679581363.js → preview-1765762480694.js} +0 -0
|
@@ -103,21 +103,13 @@ describe('Version', () => {
|
|
|
103
103
|
it('dependencies should be an array', () => {
|
|
104
104
|
(0, _chai().expect)(dependencies).to.be.an('array').and.have.lengthOf(1);
|
|
105
105
|
});
|
|
106
|
-
it('dependencies should have
|
|
106
|
+
it('dependencies should have id property only (relativePaths removed)', () => {
|
|
107
107
|
(0, _chai().expect)(dependencies[0]).to.haveOwnProperty('id');
|
|
108
|
-
(0, _chai().expect)(dependencies[0]).to.haveOwnProperty('relativePaths');
|
|
108
|
+
(0, _chai().expect)(dependencies[0]).to.not.haveOwnProperty('relativePaths');
|
|
109
109
|
(0, _chai().expect)(dependencies[0]).to.not.haveOwnProperty('nonExistProperty');
|
|
110
|
-
(0, _chai().expect)(Object.keys(dependencies[0])).to.have.lengthOf(
|
|
111
|
-
});
|
|
112
|
-
it('relativePaths should be an array', () => {
|
|
113
|
-
(0, _chai().expect)(dependencies[0].relativePaths).to.be.an('array').and.have.lengthOf(1);
|
|
114
|
-
});
|
|
115
|
-
it('relativePaths should have properties sourceRelativePath and destinationRelativePath only', () => {
|
|
116
|
-
(0, _chai().expect)(dependencies[0].relativePaths[0]).to.haveOwnProperty('sourceRelativePath');
|
|
117
|
-
(0, _chai().expect)(dependencies[0].relativePaths[0]).to.haveOwnProperty('destinationRelativePath');
|
|
118
|
-
(0, _chai().expect)(dependencies[0].relativePaths[0]).to.not.haveOwnProperty('nonExistProperty');
|
|
119
|
-
(0, _chai().expect)(Object.keys(dependencies[0].relativePaths[0])).to.have.lengthOf(2);
|
|
110
|
+
(0, _chai().expect)(Object.keys(dependencies[0])).to.have.lengthOf(1);
|
|
120
111
|
});
|
|
112
|
+
// relativePaths tests removed - no longer included in Version.id() hash for Harmony components
|
|
121
113
|
});
|
|
122
114
|
});
|
|
123
115
|
describe('hash()', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chai","data","require","_versionModelExtended","_interopRequireDefault","_versionModelObject","_legacy","_version","_lodash","e","__esModule","default","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","Object","keys","relativePaths","hash","versionFixtureHash","calculateHash","toString","equal","versionFromContent","validateFunc","beforeEach","validate","throw","errMsg","mainFile","undefined","files","file","name","relativePath","packageDependencies","lodash","userLib","devPackageDependencies","peerPackageDependencies","devDependencies","flattenedDependencies","changeVersion","log","bindingPrefix","packageJsonChangedProps","main","bin","overrides","exclude","scripts","schema","SchemaName","Harmony","compiler","dists","Legacy","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 { clone } from 'lodash';\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 properties id and relativePaths only', () => {\n expect(dependencies[0]).to.haveOwnProperty('id');\n expect(dependencies[0]).to.haveOwnProperty('relativePaths');\n expect(dependencies[0]).to.not.haveOwnProperty('nonExistProperty');\n expect(Object.keys(dependencies[0])).to.have.lengthOf(2);\n });\n it('relativePaths should be an array', () => {\n expect(dependencies[0].relativePaths).to.be.an('array').and.have.lengthOf(1);\n });\n it('relativePaths should have properties sourceRelativePath and destinationRelativePath only', () => {\n expect(dependencies[0].relativePaths[0]).to.haveOwnProperty('sourceRelativePath');\n expect(dependencies[0].relativePaths[0]).to.haveOwnProperty('destinationRelativePath');\n expect(dependencies[0].relativePaths[0]).to.not.haveOwnProperty('nonExistProperty');\n expect(Object.keys(dependencies[0].relativePaths[0])).to.have.lengthOf(2);\n });\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('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","e","__esModule","default","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","Object","keys","hash","versionFixtureHash","calculateHash","toString","equal","versionFromContent","validateFunc","beforeEach","validate","throw","errMsg","mainFile","undefined","files","file","name","relativePath","packageDependencies","lodash","userLib","devPackageDependencies","peerPackageDependencies","devDependencies","flattenedDependencies","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 { clone } from 'lodash';\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('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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_models","data","require","BitObjectList","constructor","objects","getComponents","filter","object","ModelComponent","getVersions","Version","getLanes","Lane","getVersionHistories","VersionHistory","getLaneHistories","LaneHistory","getAll","excludeTypes","types","includes","getType","getExportMetadata","find","ExportMetadata","getObjectsRequireMerge","typeRequireMerge","objectTypesRequireMerge","some","ObjClass","getObjectsNotRequireMerge","every","exports"],"sources":["bit-object-list.ts"],"sourcesContent":["import BitObject from './object';\nimport { ExportMetadata, Lane, LaneHistory, ModelComponent, Version, VersionHistory } from '../models';\n\nexport class BitObjectList {\n constructor(private objects: BitObject[]) {}\n\n getComponents(): ModelComponent[] {\n return this.objects.filter((object) => object instanceof ModelComponent) as ModelComponent[];\n }\n\n getVersions(): Version[] {\n return this.objects.filter((object) => object instanceof Version) as Version[];\n }\n\n getLanes(): Lane[] {\n return this.objects.filter((object) => object instanceof Lane) as Lane[];\n }\n\n getVersionHistories(): VersionHistory[] {\n return this.objects.filter((object) => object instanceof VersionHistory) as VersionHistory[];\n }\n\n getLaneHistories(): LaneHistory[] {\n return this.objects.filter((object) => object instanceof LaneHistory) as LaneHistory[];\n }\n\n getAll(): BitObject[] {\n return this.objects;\n }\n\n excludeTypes(types: string[]): BitObject[] {\n return this.objects.filter((object) => !types.includes(object.getType()));\n }\n\n getExportMetadata(): ExportMetadata | undefined {\n return this.objects.find((object) => object instanceof ExportMetadata) as ExportMetadata | undefined;\n }\n\n /**\n * object that needs merge operation before saving them into the scope, such as ModelComponent\n */\n getObjectsRequireMerge() {\n const typeRequireMerge = this.objectTypesRequireMerge();\n return this.objects.filter((object) => typeRequireMerge.some((ObjClass) => object instanceof ObjClass));\n }\n\n /**\n * object that don't need merge operation and can be saved immediately into the scope.\n * such as Source or Version\n */\n getObjectsNotRequireMerge() {\n const typeRequireMerge = this.objectTypesRequireMerge();\n return this.objects.filter((object) => typeRequireMerge.every((ObjClass) => !(object instanceof ObjClass)));\n }\n\n private objectTypesRequireMerge() {\n return [ModelComponent, Lane, VersionHistory, LaneHistory];\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,aAAa,CAAC;EACzBC,WAAWA,CAASC,OAAoB,EAAE;IAAA,KAAtBA,OAAoB,GAApBA,OAAoB;EAAG;EAE3CC,aAAaA,CAAA,EAAqB;IAChC,OAAO,IAAI,CAACD,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYC,wBAAc,CAAC;EAC1E;EAEAC,WAAWA,CAAA,EAAc;IACvB,OAAO,IAAI,CAACL,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYG,iBAAO,CAAC;EACnE;EAEAC,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACP,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYK,cAAI,CAAC;EAChE;EAEAC,mBAAmBA,CAAA,EAAqB;IACtC,OAAO,IAAI,CAACT,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYO,wBAAc,CAAC;EAC1E;EAEAC,gBAAgBA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACX,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYS,qBAAW,CAAC;EACvE;EAEAC,MAAMA,CAAA,EAAgB;IACpB,OAAO,IAAI,CAACb,OAAO;EACrB;EAEAc,YAAYA,CAACC,KAAe,EAAe;IACzC,OAAO,IAAI,CAACf,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAK,CAACY,KAAK,CAACC,QAAQ,CAACb,MAAM,CAACc,OAAO,CAAC,CAAC,CAAC,CAAC;EAC3E;EAEAC,iBAAiBA,CAAA,EAA+B;IAC9C,OAAO,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAEhB,MAAM,IAAKA,MAAM,YAAYiB,wBAAc,CAAC;EACxE;;EAEA;AACF;AACA;EACEC,sBAAsBA,CAAA,EAAG;IACvB,MAAMC,gBAAgB,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;IACvD,OAAO,IAAI,CAACvB,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKmB,gBAAgB,CAACE,IAAI,CAAEC,QAAQ,IAAKtB,MAAM,YAAYsB,QAAQ,CAAC,CAAC;EACzG;;EAEA;AACF;AACA;AACA;EACEC,yBAAyBA,CAAA,EAAG;IAC1B,MAAMJ,gBAAgB,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;IACvD,OAAO,IAAI,CAACvB,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKmB,gBAAgB,CAACK,KAAK,CAAEF,QAAQ,IAAK,EAAEtB,MAAM,YAAYsB,QAAQ,CAAC,CAAC,CAAC;EAC7G;EAEQF,uBAAuBA,CAAA,EAAG;IAChC,OAAO,CAACnB,wBAAc,EAAEI,cAAI,EAAEE,wBAAc,EAAEE,qBAAW,CAAC;EAC5D;AACF;AAACgB,OAAA,CAAA9B,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_models","data","require","BitObjectList","constructor","objects","getComponents","filter","object","ModelComponent","getVersions","Version","getLanes","Lane","getVersionHistories","VersionHistory","getLaneHistories","LaneHistory","getAll","excludeTypes","types","includes","getType","getExportMetadata","find","ExportMetadata","getObjectsRequireMerge","typeRequireMerge","objectTypesRequireMerge","some","ObjClass","getObjectsNotRequireMerge","every","exports"],"sources":["bit-object-list.ts"],"sourcesContent":["import type BitObject from './object';\nimport { ExportMetadata, Lane, LaneHistory, ModelComponent, Version, VersionHistory } from '../models';\n\nexport class BitObjectList {\n constructor(private objects: BitObject[]) {}\n\n getComponents(): ModelComponent[] {\n return this.objects.filter((object) => object instanceof ModelComponent) as ModelComponent[];\n }\n\n getVersions(): Version[] {\n return this.objects.filter((object) => object instanceof Version) as Version[];\n }\n\n getLanes(): Lane[] {\n return this.objects.filter((object) => object instanceof Lane) as Lane[];\n }\n\n getVersionHistories(): VersionHistory[] {\n return this.objects.filter((object) => object instanceof VersionHistory) as VersionHistory[];\n }\n\n getLaneHistories(): LaneHistory[] {\n return this.objects.filter((object) => object instanceof LaneHistory) as LaneHistory[];\n }\n\n getAll(): BitObject[] {\n return this.objects;\n }\n\n excludeTypes(types: string[]): BitObject[] {\n return this.objects.filter((object) => !types.includes(object.getType()));\n }\n\n getExportMetadata(): ExportMetadata | undefined {\n return this.objects.find((object) => object instanceof ExportMetadata) as ExportMetadata | undefined;\n }\n\n /**\n * object that needs merge operation before saving them into the scope, such as ModelComponent\n */\n getObjectsRequireMerge() {\n const typeRequireMerge = this.objectTypesRequireMerge();\n return this.objects.filter((object) => typeRequireMerge.some((ObjClass) => object instanceof ObjClass));\n }\n\n /**\n * object that don't need merge operation and can be saved immediately into the scope.\n * such as Source or Version\n */\n getObjectsNotRequireMerge() {\n const typeRequireMerge = this.objectTypesRequireMerge();\n return this.objects.filter((object) => typeRequireMerge.every((ObjClass) => !(object instanceof ObjClass)));\n }\n\n private objectTypesRequireMerge() {\n return [ModelComponent, Lane, VersionHistory, LaneHistory];\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,aAAa,CAAC;EACzBC,WAAWA,CAASC,OAAoB,EAAE;IAAA,KAAtBA,OAAoB,GAApBA,OAAoB;EAAG;EAE3CC,aAAaA,CAAA,EAAqB;IAChC,OAAO,IAAI,CAACD,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYC,wBAAc,CAAC;EAC1E;EAEAC,WAAWA,CAAA,EAAc;IACvB,OAAO,IAAI,CAACL,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYG,iBAAO,CAAC;EACnE;EAEAC,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACP,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYK,cAAI,CAAC;EAChE;EAEAC,mBAAmBA,CAAA,EAAqB;IACtC,OAAO,IAAI,CAACT,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYO,wBAAc,CAAC;EAC1E;EAEAC,gBAAgBA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACX,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKA,MAAM,YAAYS,qBAAW,CAAC;EACvE;EAEAC,MAAMA,CAAA,EAAgB;IACpB,OAAO,IAAI,CAACb,OAAO;EACrB;EAEAc,YAAYA,CAACC,KAAe,EAAe;IACzC,OAAO,IAAI,CAACf,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAK,CAACY,KAAK,CAACC,QAAQ,CAACb,MAAM,CAACc,OAAO,CAAC,CAAC,CAAC,CAAC;EAC3E;EAEAC,iBAAiBA,CAAA,EAA+B;IAC9C,OAAO,IAAI,CAAClB,OAAO,CAACmB,IAAI,CAAEhB,MAAM,IAAKA,MAAM,YAAYiB,wBAAc,CAAC;EACxE;;EAEA;AACF;AACA;EACEC,sBAAsBA,CAAA,EAAG;IACvB,MAAMC,gBAAgB,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;IACvD,OAAO,IAAI,CAACvB,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKmB,gBAAgB,CAACE,IAAI,CAAEC,QAAQ,IAAKtB,MAAM,YAAYsB,QAAQ,CAAC,CAAC;EACzG;;EAEA;AACF;AACA;AACA;EACEC,yBAAyBA,CAAA,EAAG;IAC1B,MAAMJ,gBAAgB,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;IACvD,OAAO,IAAI,CAACvB,OAAO,CAACE,MAAM,CAAEC,MAAM,IAAKmB,gBAAgB,CAACK,KAAK,CAAEF,QAAQ,IAAK,EAAEtB,MAAM,YAAYsB,QAAQ,CAAC,CAAC,CAAC;EAC7G;EAEQF,uBAAuBA,CAAA,EAAG;IAChC,OAAO,CAACnB,wBAAc,EAAEI,cAAI,EAAEE,wBAAc,EAAEE,qBAAW,CAAC;EAC5D;AACF;AAACgB,OAAA,CAAA9B,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Graph, Node, Edge } from '@teambit/graph.cleargraph';
|
|
2
|
-
import { ComponentID } from '@teambit/component-id';
|
|
2
|
+
import type { ComponentID } from '@teambit/component-id';
|
|
3
3
|
import type { ObjectList } from './object-list';
|
|
4
|
-
import { BitObjectList } from './bit-object-list';
|
|
4
|
+
import type { BitObjectList } from './bit-object-list';
|
|
5
5
|
import { Dependency } from '@teambit/graph';
|
|
6
6
|
type BitIdNode = Node<ComponentID>;
|
|
7
7
|
type DependencyEdge = Edge<Dependency>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graph","data","require","_lodash","_component","_graph2","IdGraph","Graph","constructor","nodes","edges","exports","objectListToGraph","objectList","bitObjectsList","toBitObjects","bitObjectListToGraph","exportMetadata","getExportMetadata","components","getComponents","versions","getVersions","Promise","all","map","component","compFromMetadata","exportVersions","find","c","id","isEqualWithoutVersion","toComponentId","startFrom","head","versionsInfo","getAllVersionsInfo","modelComponent","versionObjects","throws","forEach","versionInfo","changeVersion","tag","ref","toString","idStr","push","Node","version","dependencies","devDependencies","peerDependencies","extensionDependencies","depsIdsGroupedByType","addDep","depId","edge","depIdStr","Edge","runTime","Dependency","dev","peer","uniqNodes","uniqBy","idGraph"],"sources":["object-list-to-graph.ts"],"sourcesContent":["import { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { uniqBy } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ObjectList } from './object-list';\nimport { BitObjectList } from './bit-object-list';\nimport { getAllVersionsInfo } from '@teambit/component.snap-distance';\nimport { Dependency } from '@teambit/graph';\n\ntype BitIdNode = Node<ComponentID>;\ntype DependencyEdge = Edge<Dependency>;\n\nexport class IdGraph extends Graph<ComponentID, Dependency> {\n constructor(nodes: BitIdNode[] = [], edges: DependencyEdge[] = []) {\n super(nodes, edges);\n }\n}\n\nexport async function objectListToGraph(objectList: ObjectList): Promise<IdGraph> {\n const bitObjectsList = await objectList.toBitObjects();\n\n return bitObjectListToGraph(bitObjectsList);\n}\n\nexport async function bitObjectListToGraph(bitObjectsList: BitObjectList): Promise<IdGraph> {\n const exportMetadata = bitObjectsList.getExportMetadata();\n const components = bitObjectsList.getComponents();\n const versions = bitObjectsList.getVersions();\n const nodes: BitIdNode[] = [];\n const edges: DependencyEdge[] = [];\n await Promise.all(\n components.map(async (component) => {\n const compFromMetadata = exportMetadata?.exportVersions.find((c) =>\n c.id.isEqualWithoutVersion(component.toComponentId())\n );\n const startFrom = compFromMetadata?.head;\n const versionsInfo = await getAllVersionsInfo({\n modelComponent: component,\n versionObjects: versions,\n startFrom,\n throws: false,\n });\n versionsInfo.forEach((versionInfo) => {\n const id = component.toComponentId().changeVersion(versionInfo.tag || versionInfo.ref.toString());\n const idStr = id.toString();\n nodes.push(new Node(idStr, id));\n if (!versionInfo.version) {\n return;\n }\n const { dependencies, devDependencies, peerDependencies, extensionDependencies } =\n versionInfo.version.depsIdsGroupedByType;\n const addDep = (depId: ComponentID, edge: Dependency) => {\n const depIdStr = depId.toString();\n nodes.push(new Node(depIdStr, depId));\n edges.push(new Edge(idStr, depIdStr, edge));\n };\n const runTime = new Dependency('runtime');\n const dev = new Dependency('dev');\n const peer = new Dependency('peer');\n dependencies.forEach((depId) => addDep(depId, runTime));\n [...devDependencies, ...extensionDependencies].forEach((depId) => addDep(depId, dev));\n peerDependencies.forEach((depId) => addDep(depId, peer));\n });\n })\n );\n const uniqNodes = uniqBy(nodes, 'id');\n const idGraph = new IdGraph(uniqNodes, edges);\n\n return idGraph;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_graph","data","require","_lodash","_component","_graph2","IdGraph","Graph","constructor","nodes","edges","exports","objectListToGraph","objectList","bitObjectsList","toBitObjects","bitObjectListToGraph","exportMetadata","getExportMetadata","components","getComponents","versions","getVersions","Promise","all","map","component","compFromMetadata","exportVersions","find","c","id","isEqualWithoutVersion","toComponentId","startFrom","head","versionsInfo","getAllVersionsInfo","modelComponent","versionObjects","throws","forEach","versionInfo","changeVersion","tag","ref","toString","idStr","push","Node","version","dependencies","devDependencies","peerDependencies","extensionDependencies","depsIdsGroupedByType","addDep","depId","edge","depIdStr","Edge","runTime","Dependency","dev","peer","uniqNodes","uniqBy","idGraph"],"sources":["object-list-to-graph.ts"],"sourcesContent":["import { Graph, Node, Edge } from '@teambit/graph.cleargraph';\nimport { uniqBy } from 'lodash';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { ObjectList } from './object-list';\nimport type { BitObjectList } from './bit-object-list';\nimport { getAllVersionsInfo } from '@teambit/component.snap-distance';\nimport { Dependency } from '@teambit/graph';\n\ntype BitIdNode = Node<ComponentID>;\ntype DependencyEdge = Edge<Dependency>;\n\nexport class IdGraph extends Graph<ComponentID, Dependency> {\n constructor(nodes: BitIdNode[] = [], edges: DependencyEdge[] = []) {\n super(nodes, edges);\n }\n}\n\nexport async function objectListToGraph(objectList: ObjectList): Promise<IdGraph> {\n const bitObjectsList = await objectList.toBitObjects();\n\n return bitObjectListToGraph(bitObjectsList);\n}\n\nexport async function bitObjectListToGraph(bitObjectsList: BitObjectList): Promise<IdGraph> {\n const exportMetadata = bitObjectsList.getExportMetadata();\n const components = bitObjectsList.getComponents();\n const versions = bitObjectsList.getVersions();\n const nodes: BitIdNode[] = [];\n const edges: DependencyEdge[] = [];\n await Promise.all(\n components.map(async (component) => {\n const compFromMetadata = exportMetadata?.exportVersions.find((c) =>\n c.id.isEqualWithoutVersion(component.toComponentId())\n );\n const startFrom = compFromMetadata?.head;\n const versionsInfo = await getAllVersionsInfo({\n modelComponent: component,\n versionObjects: versions,\n startFrom,\n throws: false,\n });\n versionsInfo.forEach((versionInfo) => {\n const id = component.toComponentId().changeVersion(versionInfo.tag || versionInfo.ref.toString());\n const idStr = id.toString();\n nodes.push(new Node(idStr, id));\n if (!versionInfo.version) {\n return;\n }\n const { dependencies, devDependencies, peerDependencies, extensionDependencies } =\n versionInfo.version.depsIdsGroupedByType;\n const addDep = (depId: ComponentID, edge: Dependency) => {\n const depIdStr = depId.toString();\n nodes.push(new Node(depIdStr, depId));\n edges.push(new Edge(idStr, depIdStr, edge));\n };\n const runTime = new Dependency('runtime');\n const dev = new Dependency('dev');\n const peer = new Dependency('peer');\n dependencies.forEach((depId) => addDep(depId, runTime));\n [...devDependencies, ...extensionDependencies].forEach((depId) => addDep(depId, dev));\n peerDependencies.forEach((depId) => addDep(depId, peer));\n });\n })\n );\n const uniqNodes = uniqBy(nodes, 'id');\n const idGraph = new IdGraph(uniqNodes, edges);\n\n return idGraph;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,6 +17,12 @@ export declare class ObjectList {
|
|
|
17
17
|
objects: ObjectItem[];
|
|
18
18
|
constructor(objects?: ObjectItem[]);
|
|
19
19
|
count(): number;
|
|
20
|
+
/**
|
|
21
|
+
* Generates a SHA1 hash from all object buffers.
|
|
22
|
+
* Used to identify duplicate export requests during retries.
|
|
23
|
+
* Performance wise, it's not too bad. ~98ms for 150 components on CircleCI.
|
|
24
|
+
*/
|
|
25
|
+
getSha1Hash(): string;
|
|
20
26
|
static mergeMultipleInstances(objectLists: ObjectList[]): ObjectList;
|
|
21
27
|
mergeObjectList(objectList: ObjectList): void;
|
|
22
28
|
static fromJsonString(jsonStr: string): ObjectList;
|
|
@@ -32,6 +32,13 @@ function _stream() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
+
function _crypto() {
|
|
36
|
+
const data = _interopRequireDefault(require("crypto"));
|
|
37
|
+
_crypto = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
35
42
|
function _object() {
|
|
36
43
|
const data = _interopRequireDefault(require("./object"));
|
|
37
44
|
_object = function () {
|
|
@@ -111,6 +118,19 @@ class ObjectList {
|
|
|
111
118
|
count() {
|
|
112
119
|
return this.objects.length;
|
|
113
120
|
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Generates a SHA1 hash from all object buffers.
|
|
124
|
+
* Used to identify duplicate export requests during retries.
|
|
125
|
+
* Performance wise, it's not too bad. ~98ms for 150 components on CircleCI.
|
|
126
|
+
*/
|
|
127
|
+
getSha1Hash() {
|
|
128
|
+
const hash = _crypto().default.createHash('sha1');
|
|
129
|
+
for (const obj of this.objects) {
|
|
130
|
+
hash.update(new Uint8Array(obj.buffer));
|
|
131
|
+
}
|
|
132
|
+
return hash.digest('hex');
|
|
133
|
+
}
|
|
114
134
|
static mergeMultipleInstances(objectLists) {
|
|
115
135
|
const objectList = new ObjectList();
|
|
116
136
|
objectLists.forEach(objList => objectList.mergeObjectList(objList));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_tarStream","data","_interopRequireDefault","require","_toolboxPromise","_lodash","_stream","_object","_bitObjectList","_ref","_legacy","_harmonyModules","_models","_legacy2","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","TAR_STREAM_ERROR_FILENAME","OBJECT_LIST_CURRENT_SCHEMA","TAR_STREAM_START_FILENAME","TAR_STREAM_END_FILENAME","FETCH_FORMAT_OBJECT_LIST","exports","ObjectList","constructor","objects","count","mergeMultipleInstances","objectLists","objectList","objList","mergeObjectList","addIfNotExist","fromJsonString","jsonStr","jsonParsed","JSON","parse","Array","isArray","Error","obj","ref","Ref","hash","buffer","Buffer","from","toJsonString","stringify","toTar","pack","tarStream","entry","name","combineScopeAndHash","finalize","toReadableStream","Readable","fromTar","packStream","extract","objectItems","Promise","resolve","reject","on","header","stream","next","chunk","extractScopeAndHash","concat","err","resume","pipe","fromTarToObjectStream","passThrough","PassThrough","objectMode","startData","endData","allData","emit","toString","logger","debug","write","schema","end","pipeline","error","fromObjectStreamToTar","readable","scopeName","startFile","numOfFiles","endFile","errorMessage","message","fromReadableStream","nameSplit","split","hasScope","scope","undefined","objectItem","exists","find","object","isEqual","toBitObjects","throwForUnknownTypes","concurrency","concurrentIOLimit","bitObjects","pMapPool","BitObject","parseObject","UnknownObjectType","type","BitObjectList","compact","fromBitObjects","compress","getType","addScopeName","splitByScopeName","objectListPerScope","ExportMetadata","toConsoleLog","console","log","map","join"],"sources":["object-list.ts"],"sourcesContent":["import tarStream from 'tar-stream';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport { compact } from 'lodash';\nimport { Readable, PassThrough, pipeline } from 'stream';\nimport BitObject from './object';\nimport { BitObjectList } from './bit-object-list';\nimport Ref from './ref';\nimport { logger } from '@teambit/legacy.logger';\nimport { concurrentIOLimit } from '@teambit/harmony.modules.concurrency';\nimport { ExportMetadata } from '../models';\nimport { UnknownObjectType } from '@teambit/legacy.scope';\n\n/**\n * when error occurred during streaming between HTTP server and client, there is no good way to\n * indicate this other than sending a new file with a special name and the error message.\n */\nconst TAR_STREAM_ERROR_FILENAME = '.BIT.ERROR';\n/**\n * schema 1.0.0 - added the start and end file with basic info\n */\nconst OBJECT_LIST_CURRENT_SCHEMA = '1.0.0';\nconst TAR_STREAM_START_FILENAME = '.BIT.START';\nconst TAR_STREAM_END_FILENAME = '.BIT.END';\n\ntype StartFile = {\n schema: string;\n scopeName: string;\n};\ntype EndFile = {\n numOfFiles: number;\n scopeName: string;\n};\n\nexport type ObjectItem = {\n ref: Ref;\n buffer: Buffer; // zlib deflated BitObject\n type?: string; // for future use. e.g. to be able to export only Component/Version types but not Source/Artifact, etc.\n scope?: string; // used for the export process\n};\n\nexport const FETCH_FORMAT_OBJECT_LIST = 'ObjectList';\n\n/**\n * Stream.Readable that operates with objectMode, while each 'data' event emits one ObjectItem object.\n */\nexport type ObjectItemsStream = Readable;\n\nexport class ObjectList {\n constructor(public objects: ObjectItem[] = []) {}\n\n count() {\n return this.objects.length;\n }\n\n static mergeMultipleInstances(objectLists: ObjectList[]): ObjectList {\n const objectList = new ObjectList();\n objectLists.forEach((objList) => objectList.mergeObjectList(objList));\n return objectList;\n }\n mergeObjectList(objectList: ObjectList) {\n this.addIfNotExist(objectList.objects);\n }\n static fromJsonString(jsonStr: string): ObjectList {\n const jsonParsed = JSON.parse(jsonStr);\n if (!Array.isArray(jsonParsed)) {\n throw new Error(`fromJsonString expect an array, got ${typeof jsonParsed}`);\n }\n jsonParsed.forEach((obj) => {\n obj.ref = new Ref(obj.ref.hash);\n obj.buffer = Buffer.from(obj.buffer);\n });\n return new ObjectList(jsonParsed);\n }\n toJsonString(): string {\n return JSON.stringify(this.objects);\n }\n toTar(): NodeJS.ReadableStream {\n const pack = tarStream.pack();\n this.objects.forEach((obj) => {\n pack.entry({ name: ObjectList.combineScopeAndHash(obj) }, obj.buffer);\n });\n pack.finalize();\n return pack;\n }\n toReadableStream(): ObjectItemsStream {\n return Readable.from(this.objects);\n }\n static async fromTar(packStream: NodeJS.ReadableStream): Promise<ObjectList> {\n const extract = tarStream.extract();\n const objectItems: ObjectItem[] = await new Promise((resolve, reject) => {\n const objects: ObjectItem[] = [];\n extract.on('entry', (header, stream, next) => {\n const data: Buffer[] = [];\n stream.on('data', (chunk) => {\n data.push(chunk);\n });\n stream.on('end', () => {\n objects.push({\n ...ObjectList.extractScopeAndHash(header.name),\n buffer: Buffer.concat(data as unknown as Uint8Array[]),\n });\n next(); // ready for next entry\n });\n stream.on('error', (err) => reject(err));\n\n stream.resume(); // just auto drain the stream\n });\n\n extract.on('finish', () => {\n resolve(objects);\n });\n\n packStream.pipe(extract);\n });\n return new ObjectList(objectItems);\n }\n\n static fromTarToObjectStream(packStream: NodeJS.ReadableStream): ObjectItemsStream {\n const passThrough = new PassThrough({ objectMode: true });\n const extract = tarStream.extract();\n let startData: StartFile | undefined;\n let endData: EndFile | undefined;\n extract.on('entry', (header, stream, next) => {\n const data: Buffer[] = [];\n stream.on('data', (chunk) => {\n data.push(chunk);\n });\n stream.on('end', () => {\n const allData = Buffer.concat(data as unknown as Uint8Array[]);\n if (header.name === TAR_STREAM_ERROR_FILENAME) {\n passThrough.emit('error', new Error(allData.toString()));\n return;\n }\n if (header.name === TAR_STREAM_START_FILENAME) {\n startData = JSON.parse(allData.toString());\n logger.debug('fromTarToObjectStream, start getting data', startData);\n next();\n return;\n }\n if (header.name === TAR_STREAM_END_FILENAME) {\n endData = JSON.parse(allData.toString());\n logger.debug('fromTarToObjectStream, finished getting data', endData);\n next();\n return;\n }\n passThrough.write({ ...ObjectList.extractScopeAndHash(header.name), buffer: allData });\n next(); // ready for next entry\n });\n stream.on('error', (err) => {\n passThrough.emit('error', err);\n });\n\n stream.resume(); // just auto drain the stream\n });\n\n // not sure if needed\n extract.on('error', (err) => {\n passThrough.emit('error', err);\n });\n\n extract.on('finish', () => {\n if (startData?.schema === OBJECT_LIST_CURRENT_SCHEMA && !endData) {\n // wasn't able to find a better way to indicate whether the server aborted the request\n // see https://github.com/node-fetch/node-fetch/issues/1117\n passThrough.emit(\n 'error',\n new Error(`server terminated the stream unexpectedly (metadata: ${JSON.stringify(startData)})`)\n );\n }\n passThrough.end();\n });\n pipeline(packStream, extract, (err) => {\n if (err) {\n logger.error('fromTarToObjectStream, pipeline', err);\n passThrough.emit('error', err);\n } else {\n logger.debug('fromTarToObjectStream, pipeline is completed');\n }\n });\n\n return passThrough;\n }\n\n static fromObjectStreamToTar(readable: Readable, scopeName: string) {\n const pack = tarStream.pack();\n const startFile: StartFile = { schema: OBJECT_LIST_CURRENT_SCHEMA, scopeName };\n logger.debug('fromObjectStreamToTar, start sending data', startFile);\n pack.entry({ name: TAR_STREAM_START_FILENAME }, JSON.stringify(startFile));\n let numOfFiles = 0;\n readable.on('data', (obj: ObjectItem) => {\n numOfFiles += 1;\n pack.entry({ name: ObjectList.combineScopeAndHash(obj) }, obj.buffer);\n });\n readable.on('end', () => {\n const endFile: EndFile = { numOfFiles, scopeName };\n logger.debug('fromObjectStreamToTar, finished sending data', endFile);\n pack.entry({ name: TAR_STREAM_END_FILENAME }, JSON.stringify(endFile));\n pack.finalize();\n });\n readable.on('error', (err) => {\n const errorMessage = err.message || `unexpected error (${err.name})`;\n logger.error(`ObjectList.fromObjectStreamToTar, streaming an error as a file`, err);\n pack.entry({ name: TAR_STREAM_ERROR_FILENAME }, errorMessage);\n pack.finalize();\n });\n return pack;\n }\n\n static async fromReadableStream(readable: ObjectItemsStream): Promise<ObjectList> {\n const objectItems: ObjectItem[] = [];\n for await (const obj of readable) {\n objectItems.push(obj);\n }\n return new ObjectList(objectItems);\n }\n\n /**\n * the opposite of this.combineScopeAndHash\n */\n static extractScopeAndHash(name: string): { scope?: string; ref: Ref } {\n const nameSplit = name.split('/');\n const hasScope = nameSplit.length > 1;\n return {\n scope: hasScope ? nameSplit[0] : undefined,\n ref: new Ref(hasScope ? nameSplit[1] : nameSplit[0]),\n };\n }\n /**\n * the opposite of this.extractScopeAndHash\n */\n static combineScopeAndHash(objectItem: ObjectItem): string {\n const scope = objectItem.scope ? `${objectItem.scope}/` : '';\n return `${scope}${objectItem.ref.hash}`;\n }\n\n addIfNotExist(objectItems: ObjectItem[]) {\n objectItems.forEach((objectItem) => {\n const exists = this.objects.find(\n (object) => object.ref.isEqual(objectItem.ref) && object.scope === objectItem.scope\n );\n if (!exists) {\n this.objects.push(objectItem);\n }\n });\n }\n\n async toBitObjects(throwForUnknownTypes = false): Promise<BitObjectList> {\n const concurrency = concurrentIOLimit();\n const bitObjects = await pMapPool(\n this.objects,\n async (object) => {\n try {\n return await BitObject.parseObject(object.buffer);\n } catch (err) {\n if (throwForUnknownTypes || !(err instanceof UnknownObjectType)) {\n throw err;\n }\n logger.error(\n `toBitObjects, unable to parse object of type ${err.type}, ignoring it. please update your bit version`\n );\n return null;\n }\n },\n { concurrency }\n );\n return new BitObjectList(compact(bitObjects));\n }\n\n static async fromBitObjects(bitObjects: BitObject[]): Promise<ObjectList> {\n const concurrency = concurrentIOLimit();\n const objectItems = await pMapPool(\n bitObjects,\n async (obj) => ({\n ref: obj.hash(),\n buffer: await obj.compress(),\n type: obj.getType(),\n }),\n { concurrency }\n );\n return new ObjectList(objectItems);\n }\n\n addScopeName(scopeName: string) {\n this.objects.forEach((object) => {\n object.scope = scopeName;\n });\n }\n\n splitByScopeName(): { [scopeName: string]: ObjectList } {\n const objectListPerScope: { [scopeName: string]: ObjectList } = {};\n this.objects.forEach((obj) => {\n if (obj.type === ExportMetadata.name) {\n return; // no scope for this type. it's general for all export data from all scopes\n }\n if (!obj.scope) {\n throw new Error(`ObjectList: unable to split by scopeName, the scopeName is missing for ${obj.ref.hash}`);\n }\n if (objectListPerScope[obj.scope]) {\n objectListPerScope[obj.scope].addIfNotExist([obj]);\n } else {\n objectListPerScope[obj.scope] = new ObjectList([obj]);\n }\n });\n return objectListPerScope;\n }\n\n /**\n * helps debugging\n */\n toConsoleLog() {\n console.log(this.objects.map((o) => o.ref.hash).join('\\n')); // eslint-disable-line no-console\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_tarStream","data","_interopRequireDefault","require","_toolboxPromise","_lodash","_stream","_crypto","_object","_bitObjectList","_ref","_legacy","_harmonyModules","_models","_legacy2","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","TAR_STREAM_ERROR_FILENAME","OBJECT_LIST_CURRENT_SCHEMA","TAR_STREAM_START_FILENAME","TAR_STREAM_END_FILENAME","FETCH_FORMAT_OBJECT_LIST","exports","ObjectList","constructor","objects","count","getSha1Hash","hash","crypto","createHash","obj","update","Uint8Array","buffer","digest","mergeMultipleInstances","objectLists","objectList","objList","mergeObjectList","addIfNotExist","fromJsonString","jsonStr","jsonParsed","JSON","parse","Array","isArray","Error","ref","Ref","Buffer","from","toJsonString","stringify","toTar","pack","tarStream","entry","name","combineScopeAndHash","finalize","toReadableStream","Readable","fromTar","packStream","extract","objectItems","Promise","resolve","reject","on","header","stream","next","chunk","extractScopeAndHash","concat","err","resume","pipe","fromTarToObjectStream","passThrough","PassThrough","objectMode","startData","endData","allData","emit","toString","logger","debug","write","schema","end","pipeline","error","fromObjectStreamToTar","readable","scopeName","startFile","numOfFiles","endFile","errorMessage","message","fromReadableStream","nameSplit","split","hasScope","scope","undefined","objectItem","exists","find","object","isEqual","toBitObjects","throwForUnknownTypes","concurrency","concurrentIOLimit","bitObjects","pMapPool","BitObject","parseObject","UnknownObjectType","type","BitObjectList","compact","fromBitObjects","compress","getType","addScopeName","splitByScopeName","objectListPerScope","ExportMetadata","toConsoleLog","console","log","map","join"],"sources":["object-list.ts"],"sourcesContent":["import tarStream from 'tar-stream';\nimport { pMapPool } from '@teambit/toolbox.promise.map-pool';\nimport { compact } from 'lodash';\nimport { Readable, PassThrough, pipeline } from 'stream';\nimport crypto from 'crypto';\nimport BitObject from './object';\nimport { BitObjectList } from './bit-object-list';\nimport Ref from './ref';\nimport { logger } from '@teambit/legacy.logger';\nimport { concurrentIOLimit } from '@teambit/harmony.modules.concurrency';\nimport { ExportMetadata } from '../models';\nimport { UnknownObjectType } from '@teambit/legacy.scope';\n\n/**\n * when error occurred during streaming between HTTP server and client, there is no good way to\n * indicate this other than sending a new file with a special name and the error message.\n */\nconst TAR_STREAM_ERROR_FILENAME = '.BIT.ERROR';\n/**\n * schema 1.0.0 - added the start and end file with basic info\n */\nconst OBJECT_LIST_CURRENT_SCHEMA = '1.0.0';\nconst TAR_STREAM_START_FILENAME = '.BIT.START';\nconst TAR_STREAM_END_FILENAME = '.BIT.END';\n\ntype StartFile = {\n schema: string;\n scopeName: string;\n};\ntype EndFile = {\n numOfFiles: number;\n scopeName: string;\n};\n\nexport type ObjectItem = {\n ref: Ref;\n buffer: Buffer; // zlib deflated BitObject\n type?: string; // for future use. e.g. to be able to export only Component/Version types but not Source/Artifact, etc.\n scope?: string; // used for the export process\n};\n\nexport const FETCH_FORMAT_OBJECT_LIST = 'ObjectList';\n\n/**\n * Stream.Readable that operates with objectMode, while each 'data' event emits one ObjectItem object.\n */\nexport type ObjectItemsStream = Readable;\n\nexport class ObjectList {\n constructor(public objects: ObjectItem[] = []) {}\n\n count() {\n return this.objects.length;\n }\n\n /**\n * Generates a SHA1 hash from all object buffers.\n * Used to identify duplicate export requests during retries.\n * Performance wise, it's not too bad. ~98ms for 150 components on CircleCI.\n */\n getSha1Hash(): string {\n const hash = crypto.createHash('sha1');\n for (const obj of this.objects) {\n hash.update(new Uint8Array(obj.buffer));\n }\n return hash.digest('hex');\n }\n\n static mergeMultipleInstances(objectLists: ObjectList[]): ObjectList {\n const objectList = new ObjectList();\n objectLists.forEach((objList) => objectList.mergeObjectList(objList));\n return objectList;\n }\n mergeObjectList(objectList: ObjectList) {\n this.addIfNotExist(objectList.objects);\n }\n static fromJsonString(jsonStr: string): ObjectList {\n const jsonParsed = JSON.parse(jsonStr);\n if (!Array.isArray(jsonParsed)) {\n throw new Error(`fromJsonString expect an array, got ${typeof jsonParsed}`);\n }\n jsonParsed.forEach((obj) => {\n obj.ref = new Ref(obj.ref.hash);\n obj.buffer = Buffer.from(obj.buffer);\n });\n return new ObjectList(jsonParsed);\n }\n toJsonString(): string {\n return JSON.stringify(this.objects);\n }\n toTar(): NodeJS.ReadableStream {\n const pack = tarStream.pack();\n this.objects.forEach((obj) => {\n pack.entry({ name: ObjectList.combineScopeAndHash(obj) }, obj.buffer);\n });\n pack.finalize();\n return pack;\n }\n toReadableStream(): ObjectItemsStream {\n return Readable.from(this.objects);\n }\n static async fromTar(packStream: NodeJS.ReadableStream): Promise<ObjectList> {\n const extract = tarStream.extract();\n const objectItems: ObjectItem[] = await new Promise((resolve, reject) => {\n const objects: ObjectItem[] = [];\n extract.on('entry', (header, stream, next) => {\n const data: Buffer[] = [];\n stream.on('data', (chunk) => {\n data.push(chunk);\n });\n stream.on('end', () => {\n objects.push({\n ...ObjectList.extractScopeAndHash(header.name),\n buffer: Buffer.concat(data as unknown as Uint8Array[]),\n });\n next(); // ready for next entry\n });\n stream.on('error', (err) => reject(err));\n\n stream.resume(); // just auto drain the stream\n });\n\n extract.on('finish', () => {\n resolve(objects);\n });\n\n packStream.pipe(extract);\n });\n return new ObjectList(objectItems);\n }\n\n static fromTarToObjectStream(packStream: NodeJS.ReadableStream): ObjectItemsStream {\n const passThrough = new PassThrough({ objectMode: true });\n const extract = tarStream.extract();\n let startData: StartFile | undefined;\n let endData: EndFile | undefined;\n extract.on('entry', (header, stream, next) => {\n const data: Buffer[] = [];\n stream.on('data', (chunk) => {\n data.push(chunk);\n });\n stream.on('end', () => {\n const allData = Buffer.concat(data as unknown as Uint8Array[]);\n if (header.name === TAR_STREAM_ERROR_FILENAME) {\n passThrough.emit('error', new Error(allData.toString()));\n return;\n }\n if (header.name === TAR_STREAM_START_FILENAME) {\n startData = JSON.parse(allData.toString());\n logger.debug('fromTarToObjectStream, start getting data', startData);\n next();\n return;\n }\n if (header.name === TAR_STREAM_END_FILENAME) {\n endData = JSON.parse(allData.toString());\n logger.debug('fromTarToObjectStream, finished getting data', endData);\n next();\n return;\n }\n passThrough.write({ ...ObjectList.extractScopeAndHash(header.name), buffer: allData });\n next(); // ready for next entry\n });\n stream.on('error', (err) => {\n passThrough.emit('error', err);\n });\n\n stream.resume(); // just auto drain the stream\n });\n\n // not sure if needed\n extract.on('error', (err) => {\n passThrough.emit('error', err);\n });\n\n extract.on('finish', () => {\n if (startData?.schema === OBJECT_LIST_CURRENT_SCHEMA && !endData) {\n // wasn't able to find a better way to indicate whether the server aborted the request\n // see https://github.com/node-fetch/node-fetch/issues/1117\n passThrough.emit(\n 'error',\n new Error(`server terminated the stream unexpectedly (metadata: ${JSON.stringify(startData)})`)\n );\n }\n passThrough.end();\n });\n pipeline(packStream, extract, (err) => {\n if (err) {\n logger.error('fromTarToObjectStream, pipeline', err);\n passThrough.emit('error', err);\n } else {\n logger.debug('fromTarToObjectStream, pipeline is completed');\n }\n });\n\n return passThrough;\n }\n\n static fromObjectStreamToTar(readable: Readable, scopeName: string) {\n const pack = tarStream.pack();\n const startFile: StartFile = { schema: OBJECT_LIST_CURRENT_SCHEMA, scopeName };\n logger.debug('fromObjectStreamToTar, start sending data', startFile);\n pack.entry({ name: TAR_STREAM_START_FILENAME }, JSON.stringify(startFile));\n let numOfFiles = 0;\n readable.on('data', (obj: ObjectItem) => {\n numOfFiles += 1;\n pack.entry({ name: ObjectList.combineScopeAndHash(obj) }, obj.buffer);\n });\n readable.on('end', () => {\n const endFile: EndFile = { numOfFiles, scopeName };\n logger.debug('fromObjectStreamToTar, finished sending data', endFile);\n pack.entry({ name: TAR_STREAM_END_FILENAME }, JSON.stringify(endFile));\n pack.finalize();\n });\n readable.on('error', (err) => {\n const errorMessage = err.message || `unexpected error (${err.name})`;\n logger.error(`ObjectList.fromObjectStreamToTar, streaming an error as a file`, err);\n pack.entry({ name: TAR_STREAM_ERROR_FILENAME }, errorMessage);\n pack.finalize();\n });\n return pack;\n }\n\n static async fromReadableStream(readable: ObjectItemsStream): Promise<ObjectList> {\n const objectItems: ObjectItem[] = [];\n for await (const obj of readable) {\n objectItems.push(obj);\n }\n return new ObjectList(objectItems);\n }\n\n /**\n * the opposite of this.combineScopeAndHash\n */\n static extractScopeAndHash(name: string): { scope?: string; ref: Ref } {\n const nameSplit = name.split('/');\n const hasScope = nameSplit.length > 1;\n return {\n scope: hasScope ? nameSplit[0] : undefined,\n ref: new Ref(hasScope ? nameSplit[1] : nameSplit[0]),\n };\n }\n /**\n * the opposite of this.extractScopeAndHash\n */\n static combineScopeAndHash(objectItem: ObjectItem): string {\n const scope = objectItem.scope ? `${objectItem.scope}/` : '';\n return `${scope}${objectItem.ref.hash}`;\n }\n\n addIfNotExist(objectItems: ObjectItem[]) {\n objectItems.forEach((objectItem) => {\n const exists = this.objects.find(\n (object) => object.ref.isEqual(objectItem.ref) && object.scope === objectItem.scope\n );\n if (!exists) {\n this.objects.push(objectItem);\n }\n });\n }\n\n async toBitObjects(throwForUnknownTypes = false): Promise<BitObjectList> {\n const concurrency = concurrentIOLimit();\n const bitObjects = await pMapPool(\n this.objects,\n async (object) => {\n try {\n return await BitObject.parseObject(object.buffer);\n } catch (err) {\n if (throwForUnknownTypes || !(err instanceof UnknownObjectType)) {\n throw err;\n }\n logger.error(\n `toBitObjects, unable to parse object of type ${err.type}, ignoring it. please update your bit version`\n );\n return null;\n }\n },\n { concurrency }\n );\n return new BitObjectList(compact(bitObjects));\n }\n\n static async fromBitObjects(bitObjects: BitObject[]): Promise<ObjectList> {\n const concurrency = concurrentIOLimit();\n const objectItems = await pMapPool(\n bitObjects,\n async (obj) => ({\n ref: obj.hash(),\n buffer: await obj.compress(),\n type: obj.getType(),\n }),\n { concurrency }\n );\n return new ObjectList(objectItems);\n }\n\n addScopeName(scopeName: string) {\n this.objects.forEach((object) => {\n object.scope = scopeName;\n });\n }\n\n splitByScopeName(): { [scopeName: string]: ObjectList } {\n const objectListPerScope: { [scopeName: string]: ObjectList } = {};\n this.objects.forEach((obj) => {\n if (obj.type === ExportMetadata.name) {\n return; // no scope for this type. it's general for all export data from all scopes\n }\n if (!obj.scope) {\n throw new Error(`ObjectList: unable to split by scopeName, the scopeName is missing for ${obj.ref.hash}`);\n }\n if (objectListPerScope[obj.scope]) {\n objectListPerScope[obj.scope].addIfNotExist([obj]);\n } else {\n objectListPerScope[obj.scope] = new ObjectList([obj]);\n }\n });\n return objectListPerScope;\n }\n\n /**\n * helps debugging\n */\n toConsoleLog() {\n console.log(this.objects.map((o) => o.ref.hash).join('\\n')); // eslint-disable-line no-console\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/objects/object.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ObjectItem } from './object-list';
|
|
1
|
+
import type { ObjectItem } from './object-list';
|
|
2
2
|
import Ref from './ref';
|
|
3
|
-
import Repository from './repository';
|
|
3
|
+
import type Repository from './repository';
|
|
4
4
|
export default class BitObject {
|
|
5
5
|
validateBeforePersist: boolean;
|
|
6
6
|
id(): string | Buffer;
|
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","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 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":[]}
|