@peerbit/document 15.0.12 → 15.0.13
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/src/program.d.ts +1 -0
- package/dist/src/program.d.ts.map +1 -1
- package/dist/src/program.js +30 -4
- package/dist/src/program.js.map +1 -1
- package/dist/src/search.d.ts +5 -2
- package/dist/src/search.d.ts.map +1 -1
- package/dist/src/search.js +20 -6
- package/dist/src/search.js.map +1 -1
- package/package.json +15 -13
- package/src/program.ts +45 -4
- package/src/search.ts +44 -9
package/dist/src/program.d.ts
CHANGED
|
@@ -301,6 +301,7 @@ export declare class Documents<T, I extends Record<string, any> = T extends Reco
|
|
|
301
301
|
private delCompatDocumentBackend;
|
|
302
302
|
private delNativeDocumentBackend;
|
|
303
303
|
handleChanges(change: Change<Operation>, reference?: PutChangeReference<T, I>): Promise<void>;
|
|
304
|
+
private handleChangesInOrder;
|
|
304
305
|
/**
|
|
305
306
|
* Count documents locally (default), or estimate the global count.
|
|
306
307
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAKjB,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACN,KAAK,MAAM,EACX,KAAK,EAKL,KAAK,kBAAkB,EAEvB,KAAK,WAAW,EAEhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,SAAS,EACT,KAAK,gBAAgB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AACnE,OAAO,EAEN,eAAe,EACf,KAAK,SAAS,EACd,YAAY,EACZ,mBAAmB,EAInB,MAAM,gBAAgB,CAAC;AAcxB,OAAO,EACN,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
package/dist/src/program.js
CHANGED
|
@@ -1027,9 +1027,11 @@ let Documents = (() => {
|
|
|
1027
1027
|
* Those callers must keep throwing: outside change delivery, a closed index is
|
|
1028
1028
|
* a caller error, not a state to paper over.
|
|
1029
1029
|
*/
|
|
1030
|
-
getLocalIndexedContextForChange(key) {
|
|
1030
|
+
getLocalIndexedContextForChange(key, orderedSession) {
|
|
1031
1031
|
try {
|
|
1032
|
-
const result =
|
|
1032
|
+
const result = (orderedSession
|
|
1033
|
+
? orderedSession.get(key, { shape: INDEX_CONTEXT_SHAPE })
|
|
1034
|
+
: this.getLocalIndexedContext(key));
|
|
1033
1035
|
return (isPromiseLike(result)
|
|
1034
1036
|
? result.catch((error) => this.recoverClosedIndexContextRead(error))
|
|
1035
1037
|
: result);
|
|
@@ -3320,6 +3322,15 @@ let Documents = (() => {
|
|
|
3320
3322
|
}
|
|
3321
3323
|
async handleChanges(change, reference) {
|
|
3322
3324
|
logger.trace("handleChanges called", change);
|
|
3325
|
+
if (reference == null &&
|
|
3326
|
+
change.added.length >= 2 &&
|
|
3327
|
+
!this.isNativeMode() &&
|
|
3328
|
+
this._index.canUseOrderedWriteSession()) {
|
|
3329
|
+
return this._index.withOrderedWriteSession((orderedSession) => this.handleChangesInOrder(change, reference, orderedSession));
|
|
3330
|
+
}
|
|
3331
|
+
return this.handleChangesInOrder(change, reference);
|
|
3332
|
+
}
|
|
3333
|
+
async handleChangesInOrder(change, reference, orderedSession) {
|
|
3323
3334
|
const isAppendOperation = change?.added.length === 1 ? !!change.added[0] : false;
|
|
3324
3335
|
const removedSet = new Map();
|
|
3325
3336
|
for (const r of change.removed) {
|
|
@@ -3348,6 +3359,7 @@ let Documents = (() => {
|
|
|
3348
3359
|
let modified = new Set();
|
|
3349
3360
|
for (const item of sortedEntries) {
|
|
3350
3361
|
if (!item) {
|
|
3362
|
+
await orderedSession?.flush();
|
|
3351
3363
|
continue;
|
|
3352
3364
|
}
|
|
3353
3365
|
try {
|
|
@@ -3358,6 +3370,7 @@ let Documents = (() => {
|
|
|
3358
3370
|
? reference.operation
|
|
3359
3371
|
: await this.getAppendOperation(item);
|
|
3360
3372
|
if (!payload) {
|
|
3373
|
+
await orderedSession?.flush();
|
|
3361
3374
|
continue;
|
|
3362
3375
|
}
|
|
3363
3376
|
if (isPutOperation(payload) && !removedSet.has(item.hash)) {
|
|
@@ -3399,6 +3412,9 @@ let Documents = (() => {
|
|
|
3399
3412
|
: indexerTypes.toId(this.idResolver(value));
|
|
3400
3413
|
// document is already updated with more recent entry
|
|
3401
3414
|
if (modified.has(key.primitive)) {
|
|
3415
|
+
// Duplicate ids deliberately retain the scalar boundary until
|
|
3416
|
+
// their callback and event semantics are proven independently.
|
|
3417
|
+
await orderedSession?.flush();
|
|
3402
3418
|
continue;
|
|
3403
3419
|
}
|
|
3404
3420
|
// if no casual ordering is used, use timestamps to order docs
|
|
@@ -3408,7 +3424,7 @@ let Documents = (() => {
|
|
|
3408
3424
|
? reference.existing
|
|
3409
3425
|
: this.isNativeMode()
|
|
3410
3426
|
? this.getNativeModeIndexedContext(key) || null
|
|
3411
|
-
: (await this.getLocalIndexedContextForChange(key)) || null;
|
|
3427
|
+
: (await this.getLocalIndexedContextForChange(key, orderedSession)) || null;
|
|
3412
3428
|
if (!this.strictHistory && existing) {
|
|
3413
3429
|
// if immutable use oldest, else use newest
|
|
3414
3430
|
let shouldIgnoreChange = this.immutable
|
|
@@ -3417,9 +3433,16 @@ let Documents = (() => {
|
|
|
3417
3433
|
: existing.value.__context.modified >
|
|
3418
3434
|
item.meta.clock.timestamp.wallTime;
|
|
3419
3435
|
if (shouldIgnoreChange) {
|
|
3436
|
+
await orderedSession?.flush();
|
|
3420
3437
|
continue;
|
|
3421
3438
|
}
|
|
3422
3439
|
}
|
|
3440
|
+
const useOrderedWrite = orderedSession != null &&
|
|
3441
|
+
existing == null &&
|
|
3442
|
+
!(value instanceof Program);
|
|
3443
|
+
if (!useOrderedWrite) {
|
|
3444
|
+
await orderedSession?.flush();
|
|
3445
|
+
}
|
|
3423
3446
|
// Program specific
|
|
3424
3447
|
if (value instanceof Program) {
|
|
3425
3448
|
// if replicator, then open
|
|
@@ -3433,13 +3456,14 @@ let Documents = (() => {
|
|
|
3433
3456
|
modified.add(key.primitive);
|
|
3434
3457
|
continue;
|
|
3435
3458
|
}
|
|
3436
|
-
const { context, indexable } = await this._index.put(value, key, item, existing);
|
|
3459
|
+
const { context, indexable } = await this._index.put(value, key, item, existing, useOrderedWrite ? orderedSession : undefined);
|
|
3437
3460
|
documentsChanged?.added.push(coerceWithIndexed(coerceWithContext(value, context), indexable));
|
|
3438
3461
|
modified.add(key.primitive);
|
|
3439
3462
|
}
|
|
3440
3463
|
else if ((isDeleteOperation(payload) && !removedSet.has(item.hash)) ||
|
|
3441
3464
|
isPutOperation(payload) ||
|
|
3442
3465
|
removedSet.has(item.hash)) {
|
|
3466
|
+
await orderedSession?.flush();
|
|
3443
3467
|
if (!documentsChanged &&
|
|
3444
3468
|
(await this.collectRemovedPutChangeFromNativeId(payload, modified))) {
|
|
3445
3469
|
continue;
|
|
@@ -3453,11 +3477,13 @@ let Documents = (() => {
|
|
|
3453
3477
|
}
|
|
3454
3478
|
catch (error) {
|
|
3455
3479
|
if (error instanceof AccessError) {
|
|
3480
|
+
await orderedSession?.flush();
|
|
3456
3481
|
continue;
|
|
3457
3482
|
}
|
|
3458
3483
|
throw error;
|
|
3459
3484
|
}
|
|
3460
3485
|
}
|
|
3486
|
+
await orderedSession?.flush();
|
|
3461
3487
|
if (canRemoveByIndexedHead && change.removed.length > 0) {
|
|
3462
3488
|
const handled = await this.collectRemovedDocumentChangesFromIndexedHeads(change.removed, modified);
|
|
3463
3489
|
const remainingRemoved = change.removed.filter((entry) => !handled.has(entry.hash));
|