verso-db 0.4.0 → 0.6.0
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/CHANGELOG.md +13 -0
- package/README.md +19 -1
- package/dist/Collection.d.ts +34 -4
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +139 -7
- package/dist/Collection.js.map +1 -1
- package/dist/HNSWIndex.d.ts +27 -2
- package/dist/HNSWIndex.d.ts.map +1 -1
- package/dist/HNSWIndex.js +261 -96
- package/dist/HNSWIndex.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/presets.d.ts +23 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +41 -0
- package/dist/presets.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# [0.6.0](https://github.com/briansunter/verso/compare/v0.5.0...v0.6.0) (2026-06-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* normalize cosine queries on the selective exact-scan path ([0c2af0e](https://github.com/briansunter/verso/commit/0c2af0e7c897a1d4112dead263f7edb4bb23da71))
|
|
7
|
+
* selective metadata filters silently returned fewer than k results ([5cc7dff](https://github.com/briansunter/verso/commit/5cc7dffb23fc1db38b5650b891a14d71b46c8f37))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* persist quantization state in v4 HNSW format and fix lazy-load serialization ([1124c98](https://github.com/briansunter/verso/commit/1124c9863966b6c5f2c5094d49736657740f9e11))
|
|
13
|
+
|
|
1
14
|
# [0.4.0](https://github.com/briansunter/verso/compare/v0.3.0...v0.4.0) (2026-05-01)
|
|
2
15
|
|
|
3
16
|
|
package/README.md
CHANGED
|
@@ -137,6 +137,15 @@ await collection.add({
|
|
|
137
137
|
metadata: [{ key: 'value' }, { key: 'value' }] // optional
|
|
138
138
|
});
|
|
139
139
|
|
|
140
|
+
// Or add packed row-major vectors from a model batch output
|
|
141
|
+
await collection.add({
|
|
142
|
+
ids: ['id1', 'id2'],
|
|
143
|
+
vectors: new Float32Array([
|
|
144
|
+
/* id1 vector */, /* id2 vector */
|
|
145
|
+
]),
|
|
146
|
+
metadata: [{ key: 'value' }, { key: 'value' }]
|
|
147
|
+
});
|
|
148
|
+
|
|
140
149
|
// Upsert vectors (update existing, add new)
|
|
141
150
|
await collection.upsert({
|
|
142
151
|
ids: ['id1', 'id3'], // id1 updated, id3 added
|
|
@@ -167,6 +176,7 @@ await collection.deleteBatch(['id1', 'id2']);
|
|
|
167
176
|
// Check existence
|
|
168
177
|
collection.has('id1'); // true if active (not deleted)
|
|
169
178
|
collection.count(); // number of active vectors
|
|
179
|
+
collection.count({ filter: { category: 'tech' } }); // active vectors matching metadata
|
|
170
180
|
|
|
171
181
|
// Flush pending writes when using Collection directly
|
|
172
182
|
await collection.flush();
|
|
@@ -194,11 +204,19 @@ Supported operators: `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`, `$in`, `$nin`
|
|
|
194
204
|
### Parameter Presets
|
|
195
205
|
|
|
196
206
|
```typescript
|
|
197
|
-
import {
|
|
207
|
+
import {
|
|
208
|
+
getBrowserRecommendedPreset,
|
|
209
|
+
getRecommendedPreset,
|
|
210
|
+
getRAGPreset,
|
|
211
|
+
PRESETS
|
|
212
|
+
} from 'verso-db';
|
|
198
213
|
|
|
199
214
|
// Automatic preset based on dimensions
|
|
200
215
|
const preset = getRecommendedPreset(768);
|
|
201
216
|
|
|
217
|
+
// Browser-safe preset with capped M/ef values for OPFS/WebWorker apps
|
|
218
|
+
const browserPreset = getBrowserRecommendedPreset(384);
|
|
219
|
+
|
|
202
220
|
// RAG-optimized preset (high recall) by embedding model name
|
|
203
221
|
const ragPreset = getRAGPreset('text-embedding-3-large');
|
|
204
222
|
|
package/dist/Collection.d.ts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { DistanceMetric } from './HNSWIndex';
|
|
2
2
|
import type { StorageBackend } from './storage/StorageBackend';
|
|
3
|
+
export type VectorInput = number[] | Float32Array;
|
|
4
|
+
export type AddVectorInput = VectorInput[] | Float32Array;
|
|
3
5
|
/**
|
|
4
6
|
* Configuration for adding vectors to a collection.
|
|
5
7
|
*/
|
|
6
8
|
export interface AddConfig {
|
|
7
9
|
/** Unique string identifiers for each vector */
|
|
8
10
|
ids: string[];
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Vectors to add. Pass either one vector per ID or a single row-major
|
|
13
|
+
* Float32Array packed as `[vector0..., vector1..., ...]`.
|
|
14
|
+
*/
|
|
15
|
+
vectors: AddVectorInput;
|
|
11
16
|
/** Optional metadata for each vector (same length as ids/vectors, plain JSON objects only) */
|
|
12
17
|
metadata?: Array<Record<string, any>>;
|
|
13
18
|
}
|
|
19
|
+
export interface CountConfig {
|
|
20
|
+
/** Optional metadata filter. Uses the same operators and semantics as QueryConfig.filter. */
|
|
21
|
+
filter?: Record<string, any>;
|
|
22
|
+
}
|
|
14
23
|
/**
|
|
15
24
|
* Configuration for querying a collection.
|
|
16
25
|
*
|
|
@@ -108,6 +117,7 @@ export declare class Collection {
|
|
|
108
117
|
private restoreMutationSnapshot;
|
|
109
118
|
private cloneMetadata;
|
|
110
119
|
private resultMetadataFor;
|
|
120
|
+
private prepareExactQueryVector;
|
|
111
121
|
/**
|
|
112
122
|
* Wrap a mutation in snapshot-capture + auto-persist.
|
|
113
123
|
* The mutation fn should set `this.dirty = true` when it mutates state.
|
|
@@ -160,9 +170,11 @@ export declare class Collection {
|
|
|
160
170
|
getEfConstruction(): number;
|
|
161
171
|
/**
|
|
162
172
|
* Returns the number of active (non-deleted) vectors in the collection.
|
|
163
|
-
* O(1)
|
|
173
|
+
* O(1) without a filter; filtered counts scan metadata for matching active vectors.
|
|
164
174
|
*/
|
|
165
|
-
count(): number;
|
|
175
|
+
count(config?: CountConfig): number;
|
|
176
|
+
/** Alias for count() when no filter is required. */
|
|
177
|
+
countActive(): number;
|
|
166
178
|
/**
|
|
167
179
|
* Returns the total number of tracked vectors including deleted (tombstoned) ones.
|
|
168
180
|
* Use this to determine when compaction might be beneficial.
|
|
@@ -207,14 +219,32 @@ export declare class Collection {
|
|
|
207
219
|
private saveToDiskUnlocked;
|
|
208
220
|
private executeQuery;
|
|
209
221
|
private searchCandidates;
|
|
222
|
+
/**
|
|
223
|
+
* Collect live (non-deleted) numeric ids whose metadata matches `filter`,
|
|
224
|
+
* stopping early once more than `limit` matches are found.
|
|
225
|
+
*
|
|
226
|
+
* `exceeded: true` means the filter is too broad to brute-force — the
|
|
227
|
+
* returned ids are partial and the caller should fall back to the HNSW
|
|
228
|
+
* search path. `exceeded: false` means `ids` is the complete matching set.
|
|
229
|
+
*/
|
|
230
|
+
private collectFilteredIds;
|
|
231
|
+
/**
|
|
232
|
+
* Exact nearest-neighbor search over an explicit set of numeric ids.
|
|
233
|
+
* Used for selective metadata filters where brute force over the matching
|
|
234
|
+
* set is both cheap and guarantees up to k correct results. Returns the
|
|
235
|
+
* full matching set sorted ascending by distance; the caller slices to k.
|
|
236
|
+
*/
|
|
237
|
+
private searchExactWithinIds;
|
|
210
238
|
private filterAndDeduplicateResults;
|
|
211
239
|
private materializeResults;
|
|
212
240
|
private validateQueryInput;
|
|
241
|
+
private validateCountInput;
|
|
213
242
|
private hasFilter;
|
|
214
243
|
private reconcileLoadedState;
|
|
215
244
|
private matchesFilter;
|
|
216
245
|
private validateFilterOperators;
|
|
217
246
|
private validateAddInput;
|
|
247
|
+
private vectorInputAt;
|
|
218
248
|
private validateMetadataValue;
|
|
219
249
|
private parseMetadataLine;
|
|
220
250
|
private isPlainObject;
|
package/dist/Collection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
|
package/dist/Collection.js
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
import { HNSWIndex } from './HNSWIndex.js';
|
|
2
|
+
import { normalizeInPlace } from './backends/JsDistanceBackend.js';
|
|
2
3
|
import { DimensionMismatchError, DuplicateVectorError, VectorDBError } from './errors.js';
|
|
3
4
|
const EMPTY_METADATA = Object.freeze({});
|
|
4
5
|
/** Supported metadata filter operators — hoisted to avoid per-call allocation */
|
|
5
6
|
const SUPPORTED_OPERATORS = new Set(['$eq', '$ne', '$gt', '$gte', '$lt', '$lte', '$in', '$nin']);
|
|
6
7
|
const COLLECTION_STATE_VERSION = 1;
|
|
8
|
+
/**
|
|
9
|
+
* When a metadata filter matches at most this many live vectors, the query is
|
|
10
|
+
* answered by exact brute force over the matching set instead of the HNSW
|
|
11
|
+
* post-filter + ef/k escalation loop.
|
|
12
|
+
*
|
|
13
|
+
* Rationale: the escalation loop applies the filter *after* graph traversal,
|
|
14
|
+
* so a highly selective filter can (a) silently return fewer than k results
|
|
15
|
+
* once escalation bottoms out, and (b) degrade toward an O(n) scan anyway.
|
|
16
|
+
* Brute-forcing the (small) matching set is exact, guarantees up to k
|
|
17
|
+
* results, and is cheaper than the degenerate escalation. Above this limit
|
|
18
|
+
* the filter is broad enough that the HNSW path reliably finds k survivors,
|
|
19
|
+
* so the existing loop is kept.
|
|
20
|
+
*/
|
|
21
|
+
const SELECTIVE_FILTER_BRUTE_FORCE_LIMIT = 10_000;
|
|
7
22
|
export class Collection {
|
|
8
23
|
static MAX_INTERNAL_ID = 0xFFFFFFFE;
|
|
9
24
|
name;
|
|
@@ -117,6 +132,13 @@ export class Collection {
|
|
|
117
132
|
const metadata = this.metadata.get(numericId);
|
|
118
133
|
return metadata === undefined ? {} : this.cloneMetadata(metadata);
|
|
119
134
|
}
|
|
135
|
+
prepareExactQueryVector(queryVector) {
|
|
136
|
+
if (this.metric !== 'cosine')
|
|
137
|
+
return queryVector;
|
|
138
|
+
const normalized = new Float32Array(queryVector);
|
|
139
|
+
normalizeInPlace(normalized);
|
|
140
|
+
return normalized;
|
|
141
|
+
}
|
|
120
142
|
/**
|
|
121
143
|
* Wrap a mutation in snapshot-capture + auto-persist.
|
|
122
144
|
* The mutation fn should set `this.dirty = true` when it mutates state.
|
|
@@ -329,7 +351,7 @@ export class Collection {
|
|
|
329
351
|
this.validateQueryInput(config, 'Query vector');
|
|
330
352
|
const { queryVector, k, filter } = config;
|
|
331
353
|
// Compute distances to all vectors, applying filter during scan
|
|
332
|
-
const queryFloat = queryVector instanceof Float32Array ? queryVector : new Float32Array(queryVector);
|
|
354
|
+
const queryFloat = this.prepareExactQueryVector(queryVector instanceof Float32Array ? queryVector : new Float32Array(queryVector));
|
|
333
355
|
const hasFilter = this.hasFilter(filter);
|
|
334
356
|
const distances = [];
|
|
335
357
|
for (const [numericId, vector] of this.hnsw.getAllVectors()) {
|
|
@@ -390,7 +412,10 @@ export class Collection {
|
|
|
390
412
|
const points = new Array(config.ids.length);
|
|
391
413
|
const startId = this.reserveNumericIds(config.ids.length);
|
|
392
414
|
for (let i = 0; i < config.ids.length; i++) {
|
|
393
|
-
points[i] = {
|
|
415
|
+
points[i] = {
|
|
416
|
+
id: startId + i,
|
|
417
|
+
vector: this.vectorInputAt(config.vectors, i),
|
|
418
|
+
};
|
|
394
419
|
}
|
|
395
420
|
await this.hnsw.addPointsBulk(points);
|
|
396
421
|
for (let i = 0; i < config.ids.length; i++) {
|
|
@@ -429,9 +454,28 @@ export class Collection {
|
|
|
429
454
|
getEfConstruction() { return this.efConstruction; }
|
|
430
455
|
/**
|
|
431
456
|
* Returns the number of active (non-deleted) vectors in the collection.
|
|
432
|
-
* O(1)
|
|
457
|
+
* O(1) without a filter; filtered counts scan metadata for matching active vectors.
|
|
433
458
|
*/
|
|
434
|
-
count() {
|
|
459
|
+
count(config) {
|
|
460
|
+
if (config === undefined) {
|
|
461
|
+
return this.activeCount;
|
|
462
|
+
}
|
|
463
|
+
this.validateCountInput(config);
|
|
464
|
+
if (!this.hasFilter(config.filter)) {
|
|
465
|
+
return this.activeCount;
|
|
466
|
+
}
|
|
467
|
+
let matched = 0;
|
|
468
|
+
for (const [numericId] of this.idReverseMap) {
|
|
469
|
+
if (this.deletedIds.has(numericId))
|
|
470
|
+
continue;
|
|
471
|
+
const metadata = this.metadata.get(numericId) || EMPTY_METADATA;
|
|
472
|
+
if (this.matchesFilter(metadata, config.filter))
|
|
473
|
+
matched++;
|
|
474
|
+
}
|
|
475
|
+
return matched;
|
|
476
|
+
}
|
|
477
|
+
/** Alias for count() when no filter is required. */
|
|
478
|
+
countActive() {
|
|
435
479
|
return this.activeCount;
|
|
436
480
|
}
|
|
437
481
|
/**
|
|
@@ -642,6 +686,16 @@ export class Collection {
|
|
|
642
686
|
const totalCandidates = this.countWithDeleted();
|
|
643
687
|
if (totalCandidates === 0)
|
|
644
688
|
return [];
|
|
689
|
+
// Selective-filter fast path. When a metadata filter matches only a small
|
|
690
|
+
// set, brute-force that set exactly: this guarantees up to k results (the
|
|
691
|
+
// HNSW post-filter + escalation path below can silently return < k for
|
|
692
|
+
// highly selective filters) and avoids the degenerate O(n) escalation.
|
|
693
|
+
if (filter) {
|
|
694
|
+
const { ids, exceeded } = this.collectFilteredIds(filter, SELECTIVE_FILTER_BRUTE_FORCE_LIMIT);
|
|
695
|
+
if (!exceeded) {
|
|
696
|
+
return this.searchExactWithinIds(queryVector, ids);
|
|
697
|
+
}
|
|
698
|
+
}
|
|
645
699
|
let requestK = Math.min(Math.max(k * 2, 50), totalCandidates);
|
|
646
700
|
let requestEf = Math.max(efSearch, requestK);
|
|
647
701
|
let filtered = [];
|
|
@@ -661,6 +715,49 @@ export class Collection {
|
|
|
661
715
|
requestEf = Math.max(requestEf, requestK);
|
|
662
716
|
}
|
|
663
717
|
}
|
|
718
|
+
/**
|
|
719
|
+
* Collect live (non-deleted) numeric ids whose metadata matches `filter`,
|
|
720
|
+
* stopping early once more than `limit` matches are found.
|
|
721
|
+
*
|
|
722
|
+
* `exceeded: true` means the filter is too broad to brute-force — the
|
|
723
|
+
* returned ids are partial and the caller should fall back to the HNSW
|
|
724
|
+
* search path. `exceeded: false` means `ids` is the complete matching set.
|
|
725
|
+
*/
|
|
726
|
+
collectFilteredIds(filter, limit) {
|
|
727
|
+
const ids = [];
|
|
728
|
+
for (const [numericId] of this.idReverseMap) {
|
|
729
|
+
if (this.deletedIds.has(numericId))
|
|
730
|
+
continue;
|
|
731
|
+
const metadata = this.metadata.get(numericId) || EMPTY_METADATA;
|
|
732
|
+
if (!this.matchesFilter(metadata, filter))
|
|
733
|
+
continue;
|
|
734
|
+
ids.push(numericId);
|
|
735
|
+
if (ids.length > limit)
|
|
736
|
+
return { ids, exceeded: true };
|
|
737
|
+
}
|
|
738
|
+
return { ids, exceeded: false };
|
|
739
|
+
}
|
|
740
|
+
/**
|
|
741
|
+
* Exact nearest-neighbor search over an explicit set of numeric ids.
|
|
742
|
+
* Used for selective metadata filters where brute force over the matching
|
|
743
|
+
* set is both cheap and guarantees up to k correct results. Returns the
|
|
744
|
+
* full matching set sorted ascending by distance; the caller slices to k.
|
|
745
|
+
*/
|
|
746
|
+
searchExactWithinIds(queryVector, ids) {
|
|
747
|
+
const preparedQuery = this.prepareExactQueryVector(queryVector);
|
|
748
|
+
const out = [];
|
|
749
|
+
for (const numericId of ids) {
|
|
750
|
+
const vector = this.hnsw.getVectorById(numericId);
|
|
751
|
+
if (!vector)
|
|
752
|
+
continue;
|
|
753
|
+
out.push({ id: numericId, distance: this.hnsw.calculateDistance(preparedQuery, vector) });
|
|
754
|
+
}
|
|
755
|
+
out.sort((a, b) => {
|
|
756
|
+
const diff = a.distance - b.distance;
|
|
757
|
+
return diff !== 0 ? diff : a.id - b.id;
|
|
758
|
+
});
|
|
759
|
+
return out;
|
|
760
|
+
}
|
|
664
761
|
filterAndDeduplicateResults(results, filter) {
|
|
665
762
|
const filtered = [];
|
|
666
763
|
const hasFilter = !!filter;
|
|
@@ -736,6 +833,17 @@ export class Collection {
|
|
|
736
833
|
this.validateFilterOperators(config.filter);
|
|
737
834
|
}
|
|
738
835
|
}
|
|
836
|
+
validateCountInput(config) {
|
|
837
|
+
if (!this.isPlainObject(config)) {
|
|
838
|
+
throw new VectorDBError('Count config must be a plain object', 'VALIDATION_ERROR');
|
|
839
|
+
}
|
|
840
|
+
if (config.filter !== undefined) {
|
|
841
|
+
if (!this.isFilterObject(config.filter)) {
|
|
842
|
+
throw new VectorDBError('Filter must be a plain object', 'VALIDATION_ERROR');
|
|
843
|
+
}
|
|
844
|
+
this.validateFilterOperators(config.filter);
|
|
845
|
+
}
|
|
846
|
+
}
|
|
739
847
|
hasFilter(filter) {
|
|
740
848
|
return !!filter && Object.keys(filter).length > 0;
|
|
741
849
|
}
|
|
@@ -868,10 +976,16 @@ export class Collection {
|
|
|
868
976
|
if (!Array.isArray(config.ids)) {
|
|
869
977
|
throw new VectorDBError('ids must be an array of strings', 'VALIDATION_ERROR');
|
|
870
978
|
}
|
|
871
|
-
if (!Array.isArray(config.vectors)) {
|
|
872
|
-
throw new VectorDBError('vectors must be an array of number[] or Float32Array', 'VALIDATION_ERROR');
|
|
979
|
+
if (!(Array.isArray(config.vectors) || config.vectors instanceof Float32Array)) {
|
|
980
|
+
throw new VectorDBError('vectors must be an array of number[]/Float32Array or a packed Float32Array', 'VALIDATION_ERROR');
|
|
873
981
|
}
|
|
874
|
-
if (config.vectors
|
|
982
|
+
if (config.vectors instanceof Float32Array) {
|
|
983
|
+
const expectedLength = config.ids.length * this.dimension;
|
|
984
|
+
if (config.vectors.length !== expectedLength) {
|
|
985
|
+
throw new VectorDBError(`Packed vectors length must equal ids.length * dimension (${expectedLength}), got ${config.vectors.length}`, 'DIMENSION_MISMATCH');
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
else if (config.vectors.length !== config.ids.length) {
|
|
875
989
|
throw new VectorDBError('Number of vectors must match number of IDs', 'VALIDATION_ERROR');
|
|
876
990
|
}
|
|
877
991
|
if (config.metadata !== undefined && !Array.isArray(config.metadata)) {
|
|
@@ -911,6 +1025,16 @@ export class Collection {
|
|
|
911
1025
|
if (duplicateIds.size > 0) {
|
|
912
1026
|
throw new DuplicateVectorError([...duplicateIds]);
|
|
913
1027
|
}
|
|
1028
|
+
if (config.vectors instanceof Float32Array) {
|
|
1029
|
+
for (let i = 0; i < config.vectors.length; i++) {
|
|
1030
|
+
if (!Number.isFinite(config.vectors[i])) {
|
|
1031
|
+
const vectorIndex = Math.floor(i / this.dimension);
|
|
1032
|
+
const dimension = i % this.dimension;
|
|
1033
|
+
throw new VectorDBError(`Vector at index ${vectorIndex} contains non-finite value at dimension ${dimension}: ${config.vectors[i]}`, 'VALIDATION_ERROR');
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
return;
|
|
1037
|
+
}
|
|
914
1038
|
for (let i = 0; i < config.vectors.length; i++) {
|
|
915
1039
|
const vector = config.vectors[i];
|
|
916
1040
|
if (!(Array.isArray(vector) || vector instanceof Float32Array)) {
|
|
@@ -926,6 +1050,14 @@ export class Collection {
|
|
|
926
1050
|
}
|
|
927
1051
|
}
|
|
928
1052
|
}
|
|
1053
|
+
vectorInputAt(vectors, index) {
|
|
1054
|
+
if (vectors instanceof Float32Array) {
|
|
1055
|
+
const start = index * this.dimension;
|
|
1056
|
+
return vectors.subarray(start, start + this.dimension);
|
|
1057
|
+
}
|
|
1058
|
+
const vector = vectors[index];
|
|
1059
|
+
return vector instanceof Float32Array ? vector : new Float32Array(vector);
|
|
1060
|
+
}
|
|
929
1061
|
validateMetadataValue(value, path, seen) {
|
|
930
1062
|
if (value === null)
|
|
931
1063
|
return;
|
package/dist/Collection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../src/Collection.ts"],"names":[],"mappings":"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"}
|