@teambit/objects 0.0.735 → 0.0.737
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/index.d.ts +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/models/model-component.d.ts +9 -3
- package/dist/models/model-component.js +51 -17
- package/dist/models/model-component.js.map +1 -1
- package/dist/models/model-component.spec.js +43 -1
- package/dist/models/model-component.spec.js.map +1 -1
- package/models/model-component.spec.ts +41 -1
- package/models/model-component.ts +58 -19
- package/package.json +6 -6
- /package/dist/{preview-1793198771448.js → preview-1793216382803.js} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { BitObject, BitRawObject, Ref, Repository } from './objects';
|
|
|
3
3
|
export type { ObjectWithType, ObjectsWithType } from './objects';
|
|
4
4
|
export { ComponentLog, ScopeListItem, AddVersionOpts, ComponentProps, VERSION_ZERO } from './models/model-component';
|
|
5
5
|
export { ComponentItem, IndexType, LaneItem } from './objects/scope-index';
|
|
6
|
-
export { ObjectItem, ObjectList, ObjectItemsStream } from './objects/object-list';
|
|
6
|
+
export { ObjectItem, ObjectList, ObjectItemsStream, RawObjectsMap } from './objects/object-list';
|
|
7
7
|
export { BitObjectList } from './objects/bit-object-list';
|
|
8
8
|
export { LaneComponent, Log as LaneLog, LaneReadmeComponent } from './models/lane';
|
|
9
9
|
export { DependenciesGraph, type PackagesMap, type PackageAttributes, type DependencyEdge, type DependencyNeighbour, } from './models/dependencies-graph';
|
package/dist/index.js
CHANGED
|
@@ -177,6 +177,12 @@ Object.defineProperty(exports, "ObjectsReadableGenerator", {
|
|
|
177
177
|
return _objectsReadableGenerator().ObjectsReadableGenerator;
|
|
178
178
|
}
|
|
179
179
|
});
|
|
180
|
+
Object.defineProperty(exports, "RawObjectsMap", {
|
|
181
|
+
enumerable: true,
|
|
182
|
+
get: function () {
|
|
183
|
+
return _objectList().RawObjectsMap;
|
|
184
|
+
}
|
|
185
|
+
});
|
|
180
186
|
Object.defineProperty(exports, "Ref", {
|
|
181
187
|
enumerable: true,
|
|
182
188
|
get: function () {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_models","data","require","_objects","_modelComponent","_scopeIndex","_objectList","_bitObjectList","_lane","_dependenciesGraph","_version","_objectsReadableGenerator","_versionHistory","_laneHistory","_objectListToGraph","_objects2","_default","exports","default","ObjectsAspect"],"sources":["index.ts"],"sourcesContent":["export {\n ModelComponent,\n ScopeMeta,\n Source,\n Version,\n Symlink,\n Lane,\n ExportMetadata,\n VersionHistory,\n LaneHistory,\n} from './models';\nexport { BitObject, BitRawObject, Ref, Repository } from './objects';\nexport type { ObjectWithType, ObjectsWithType } from './objects';\nexport { ComponentLog, ScopeListItem, AddVersionOpts, ComponentProps, VERSION_ZERO } from './models/model-component';\nexport { ComponentItem, IndexType, LaneItem } from './objects/scope-index';\nexport { ObjectItem, ObjectList, ObjectItemsStream } from './objects/object-list';\nexport { BitObjectList } from './objects/bit-object-list';\nexport { LaneComponent, Log as LaneLog, LaneReadmeComponent } from './models/lane';\nexport {\n DependenciesGraph,\n type PackagesMap,\n type PackageAttributes,\n type DependencyEdge,\n type DependencyNeighbour,\n} from './models/dependencies-graph';\nexport { DepEdge, DepEdgeType, SourceFileModel, Log, ObjectsLoader } from './models/version';\nexport { ComponentWithCollectOptions, ObjectsReadableGenerator } from './objects/objects-readable-generator';\nexport { ScopeIndex } from './objects/scope-index';\nexport { VersionHistoryGraph } from './models/version-history';\nexport { VersionParents, versionParentsToGraph } from './models/version-history';\nexport { HistoryItem } from './models/lane-history';\nexport { IdGraph, objectListToGraph, bitObjectListToGraph } from './objects/object-list-to-graph';\n\nimport { ObjectsAspect } from './objects.aspect';\n\nexport type { ObjectsMain } from './objects.main.runtime';\nexport default ObjectsAspect;\nexport { ObjectsAspect };\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_models","data","require","_objects","_modelComponent","_scopeIndex","_objectList","_bitObjectList","_lane","_dependenciesGraph","_version","_objectsReadableGenerator","_versionHistory","_laneHistory","_objectListToGraph","_objects2","_default","exports","default","ObjectsAspect"],"sources":["index.ts"],"sourcesContent":["export {\n ModelComponent,\n ScopeMeta,\n Source,\n Version,\n Symlink,\n Lane,\n ExportMetadata,\n VersionHistory,\n LaneHistory,\n} from './models';\nexport { BitObject, BitRawObject, Ref, Repository } from './objects';\nexport type { ObjectWithType, ObjectsWithType } from './objects';\nexport { ComponentLog, ScopeListItem, AddVersionOpts, ComponentProps, VERSION_ZERO } from './models/model-component';\nexport { ComponentItem, IndexType, LaneItem } from './objects/scope-index';\nexport { ObjectItem, ObjectList, ObjectItemsStream, RawObjectsMap } from './objects/object-list';\nexport { BitObjectList } from './objects/bit-object-list';\nexport { LaneComponent, Log as LaneLog, LaneReadmeComponent } from './models/lane';\nexport {\n DependenciesGraph,\n type PackagesMap,\n type PackageAttributes,\n type DependencyEdge,\n type DependencyNeighbour,\n} from './models/dependencies-graph';\nexport { DepEdge, DepEdgeType, SourceFileModel, Log, ObjectsLoader } from './models/version';\nexport { ComponentWithCollectOptions, ObjectsReadableGenerator } from './objects/objects-readable-generator';\nexport { ScopeIndex } from './objects/scope-index';\nexport { VersionHistoryGraph } from './models/version-history';\nexport { VersionParents, versionParentsToGraph } from './models/version-history';\nexport { HistoryItem } from './models/lane-history';\nexport { IdGraph, objectListToGraph, bitObjectListToGraph } from './objects/object-list-to-graph';\n\nimport { ObjectsAspect } from './objects.aspect';\n\nexport type { ObjectsMain } from './objects.main.runtime';\nexport default ObjectsAspect;\nexport { ObjectsAspect };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAWA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,gBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,eAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,YAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,WAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,eAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,cAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,MAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,KAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,mBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,kBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAS,SAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,QAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,0BAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,yBAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,gBAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,eAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAY,aAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,YAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,mBAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,kBAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAc,UAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGlCC,yBAAa","ignoreList":[]}
|
|
@@ -67,8 +67,11 @@ export declare const VERSION_ZERO = "0.0.0";
|
|
|
67
67
|
export default class Component extends BitObject {
|
|
68
68
|
scope: string;
|
|
69
69
|
name: string;
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
/**
|
|
71
|
+
* read-only from outside, so every write goes through a method of this class, which drops the tags index.
|
|
72
|
+
*/
|
|
73
|
+
readonly versions: Readonly<Versions>;
|
|
74
|
+
readonly orphanedVersions: Readonly<Versions>;
|
|
72
75
|
lang: string;
|
|
73
76
|
/**
|
|
74
77
|
* @deprecated moved to the Version object inside teambit/deprecation aspect
|
|
@@ -105,12 +108,15 @@ export default class Component extends BitObject {
|
|
|
105
108
|
detachedHeads: DetachedHeads;
|
|
106
109
|
private divergeData?;
|
|
107
110
|
private _populateVersionHistoryMutex?;
|
|
108
|
-
private lastFoundTag?;
|
|
109
111
|
constructor(props: ComponentProps);
|
|
110
112
|
private get populateVersionHistoryMutex();
|
|
113
|
+
private get writableVersions();
|
|
114
|
+
private get writableOrphanedVersions();
|
|
111
115
|
get versionArray(): Ref[];
|
|
112
116
|
setVersion(tag: string, ref: Ref): void;
|
|
113
117
|
setOrphanedVersion(tag: string, ref: Ref): void;
|
|
118
|
+
clearOrphanedVersions(): void;
|
|
119
|
+
moveVersionToOrphaned(tag: string): void;
|
|
114
120
|
getRef(version: string): Ref | null;
|
|
115
121
|
getHeadStr(): string | null;
|
|
116
122
|
getHead(): Ref | undefined;
|
|
@@ -193,6 +193,23 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
193
193
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
194
194
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
195
195
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
196
|
+
/**
|
|
197
|
+
* the tag of each hash. a later tag of the same hash overrides an earlier one, so pass the maps by ascending
|
|
198
|
+
* precedence. within a map the newest tag wins, as tags keep insertion order.
|
|
199
|
+
*/
|
|
200
|
+
function indexTagsByHash(...versionsMaps) {
|
|
201
|
+
const tagsByHash = new Map();
|
|
202
|
+
for (const versions of versionsMaps) {
|
|
203
|
+
for (const tag in versions) tagsByHash.set(versions[tag].toString(), tag);
|
|
204
|
+
}
|
|
205
|
+
return tagsByHash;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* the index of `getTagOfRefIfExists` per component, built on demand. kept off the component itself, so it's not
|
|
210
|
+
* serialized with it (e.g. by `bit cat-scope --json`).
|
|
211
|
+
*/
|
|
212
|
+
const tagsByHashIndex = new WeakMap();
|
|
196
213
|
const VERSION_ZERO = exports.VERSION_ZERO = '0.0.0';
|
|
197
214
|
|
|
198
215
|
/**
|
|
@@ -205,6 +222,9 @@ class Component extends _objects().BitObject {
|
|
|
205
222
|
super();
|
|
206
223
|
_defineProperty(this, "scope", void 0);
|
|
207
224
|
_defineProperty(this, "name", void 0);
|
|
225
|
+
/**
|
|
226
|
+
* read-only from outside, so every write goes through a method of this class, which drops the tags index.
|
|
227
|
+
*/
|
|
208
228
|
_defineProperty(this, "versions", void 0);
|
|
209
229
|
_defineProperty(this, "orphanedVersions", void 0);
|
|
210
230
|
_defineProperty(this, "lang", void 0);
|
|
@@ -246,7 +266,6 @@ class Component extends _objects().BitObject {
|
|
|
246
266
|
_defineProperty(this, "detachedHeads", void 0);
|
|
247
267
|
_defineProperty(this, "divergeData", void 0);
|
|
248
268
|
_defineProperty(this, "_populateVersionHistoryMutex", void 0);
|
|
249
|
-
_defineProperty(this, "lastFoundTag", void 0);
|
|
250
269
|
if (!props.name) throw new TypeError('Model Component constructor expects to get a name parameter');
|
|
251
270
|
if (!props.scope) {
|
|
252
271
|
throw new (_legacy6().BitIdCompIdError)(props.name);
|
|
@@ -270,18 +289,36 @@ class Component extends _objects().BitObject {
|
|
|
270
289
|
}
|
|
271
290
|
return this._populateVersionHistoryMutex;
|
|
272
291
|
}
|
|
292
|
+
get writableVersions() {
|
|
293
|
+
return this.versions;
|
|
294
|
+
}
|
|
295
|
+
get writableOrphanedVersions() {
|
|
296
|
+
return this.orphanedVersions;
|
|
297
|
+
}
|
|
273
298
|
get versionArray() {
|
|
274
299
|
return Object.values(this.versions);
|
|
275
300
|
}
|
|
276
301
|
setVersion(tag, ref) {
|
|
277
|
-
this.
|
|
278
|
-
delete this.
|
|
302
|
+
this.writableVersions[tag] = ref;
|
|
303
|
+
delete this.writableOrphanedVersions[tag]; // just in case it's there.
|
|
304
|
+
tagsByHashIndex.delete(this);
|
|
279
305
|
}
|
|
280
306
|
setOrphanedVersion(tag, ref) {
|
|
281
307
|
if (this.versions[tag]) {
|
|
282
308
|
throw new Error(`unable to save orphanedVersion "${tag}" for "${this.id()}" because this tag is already part of the versions prop`);
|
|
283
309
|
}
|
|
284
|
-
this.
|
|
310
|
+
this.writableOrphanedVersions[tag] = ref;
|
|
311
|
+
tagsByHashIndex.delete(this);
|
|
312
|
+
}
|
|
313
|
+
clearOrphanedVersions() {
|
|
314
|
+
Object.keys(this.orphanedVersions).forEach(tag => delete this.writableOrphanedVersions[tag]);
|
|
315
|
+
tagsByHashIndex.delete(this);
|
|
316
|
+
}
|
|
317
|
+
moveVersionToOrphaned(tag) {
|
|
318
|
+
const ref = this.versions[tag];
|
|
319
|
+
if (!ref) throw new Error(`moveVersionToOrphaned failed finding version ${tag} of ${this.id()}`);
|
|
320
|
+
delete this.writableVersions[tag];
|
|
321
|
+
this.setOrphanedVersion(tag, ref);
|
|
285
322
|
}
|
|
286
323
|
getRef(version) {
|
|
287
324
|
if ((0, _componentVersion().isTag)(version)) {
|
|
@@ -715,18 +752,14 @@ class Component extends _objects().BitObject {
|
|
|
715
752
|
}));
|
|
716
753
|
}
|
|
717
754
|
getTagOfRefIfExists(ref) {
|
|
718
|
-
//
|
|
719
|
-
//
|
|
720
|
-
|
|
721
|
-
if (
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
this.lastFoundTag = tag;
|
|
727
|
-
return tag;
|
|
728
|
-
}
|
|
729
|
-
return findIn(this.orphanedVersions);
|
|
755
|
+
// called for every version of a history walk, so it's a lookup in an index rather than a scan of all the tags.
|
|
756
|
+
// a tag in `versions` takes precedence over an orphaned one.
|
|
757
|
+
let tagsByHash = tagsByHashIndex.get(this);
|
|
758
|
+
if (!tagsByHash) {
|
|
759
|
+
tagsByHash = indexTagsByHash(this.orphanedVersions, this.versions);
|
|
760
|
+
tagsByHashIndex.set(this, tagsByHash);
|
|
761
|
+
}
|
|
762
|
+
return tagsByHash.get(ref.toString());
|
|
730
763
|
}
|
|
731
764
|
getTag(version) {
|
|
732
765
|
if ((0, _componentVersion().isTag)(version)) return version;
|
|
@@ -1026,7 +1059,8 @@ consider using --ignore-missing-artifacts flag if you're sure the artifacts are
|
|
|
1026
1059
|
removeVersion(version) {
|
|
1027
1060
|
const objectRef = this.getRef(version);
|
|
1028
1061
|
if (!objectRef) throw new Error(`removeVersion failed finding version ${version}`);
|
|
1029
|
-
delete this.
|
|
1062
|
+
delete this.writableVersions[version];
|
|
1063
|
+
tagsByHashIndex.delete(this);
|
|
1030
1064
|
if (this.state.versions && this.state.versions[version]) delete this.state.versions[version];
|
|
1031
1065
|
return objectRef;
|
|
1032
1066
|
}
|