@lossless.org/client 1.21.1 → 1.22.1

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.
Files changed (44) hide show
  1. package/.smartconfig.json +1 -2
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/nosqldb/classes.atomicdelete.js +8 -4
  4. package/dist_ts/nosqldb/classes.atomicfindoneandupdate.js +19 -4
  5. package/dist_ts/nosqldb/classes.atomicupdate.js +16 -5
  6. package/dist_ts/nosqldb/classes.bootstraprecord.js +31 -5
  7. package/dist_ts/nosqldb/classes.collection.js +17 -14
  8. package/dist_ts/nosqldb/classes.connection.d.ts +3 -0
  9. package/dist_ts/nosqldb/classes.connection.js +3 -2
  10. package/dist_ts/nosqldb/classes.db.d.ts +27 -2
  11. package/dist_ts/nosqldb/classes.db.js +42 -3
  12. package/dist_ts/nosqldb/classes.doc.d.ts +3 -1
  13. package/dist_ts/nosqldb/classes.doc.js +15 -9
  14. package/dist_ts/nosqldb/classes.exactpersistence.d.ts +13 -2
  15. package/dist_ts/nosqldb/classes.exactpersistence.js +64 -17
  16. package/dist_ts/nosqldb/classes.operationdeadline.d.ts +5 -0
  17. package/dist_ts/nosqldb/classes.operationdeadline.js +8 -1
  18. package/dist_ts/nosqldb/classes.readtracker.d.ts +26 -0
  19. package/dist_ts/nosqldb/classes.readtracker.js +124 -1
  20. package/dist_ts/nosqldb/classes.session.d.ts +34 -5
  21. package/dist_ts/nosqldb/classes.session.js +134 -8
  22. package/dist_ts/nosqldb/classes.storedinspection.js +7 -4
  23. package/dist_ts/nosqldb/classes.writeobserver.d.ts +5 -0
  24. package/dist_ts/nosqldb/classes.writeobserver.js +1 -1
  25. package/dist_ts/nosqldb/classes.writerevisions.d.ts +81 -0
  26. package/dist_ts/nosqldb/classes.writerevisions.js +246 -0
  27. package/package.json +8 -5
  28. package/readme.md +10 -2
  29. package/ts/00_commitinfo_data.ts +1 -1
  30. package/ts/nosqldb/classes.atomicdelete.ts +11 -2
  31. package/ts/nosqldb/classes.atomicfindoneandupdate.ts +25 -2
  32. package/ts/nosqldb/classes.atomicupdate.ts +25 -3
  33. package/ts/nosqldb/classes.bootstraprecord.ts +29 -4
  34. package/ts/nosqldb/classes.collection.ts +20 -12
  35. package/ts/nosqldb/classes.connection.ts +5 -1
  36. package/ts/nosqldb/classes.db.ts +65 -2
  37. package/ts/nosqldb/classes.doc.ts +16 -8
  38. package/ts/nosqldb/classes.exactpersistence.ts +83 -21
  39. package/ts/nosqldb/classes.operationdeadline.ts +8 -0
  40. package/ts/nosqldb/classes.readtracker.ts +139 -0
  41. package/ts/nosqldb/classes.session.ts +191 -8
  42. package/ts/nosqldb/classes.storedinspection.ts +6 -3
  43. package/ts/nosqldb/classes.writeobserver.ts +5 -0
  44. package/ts/nosqldb/classes.writerevisions.ts +328 -0
@@ -1,6 +1,6 @@
1
1
  import * as plugins from './plugins.js';
2
2
  import type { SmartdataCollection } from './classes.collection.js';
3
- import type { SmartdataSession } from './classes.session.js';
3
+ import { SmartdataSession } from './classes.session.js';
4
4
  import { type MongoFilter, type SmartDataDbDoc } from './classes.doc.js';
5
5
  declare const reservedKeys: readonly ["_id", "_smartdataRevision", "_createdAt", "_updatedAt"];
6
6
  type TReservedKey = (typeof reservedKeys)[number];
@@ -115,6 +115,8 @@ export declare class SmartdataExactCollection<TModel extends SmartDataDbDoc<any,
115
115
  private initialize;
116
116
  private initializeOnce;
117
117
  prepare(): Promise<void>;
118
+ /** Refuses an owned session until the collection is prepared: its DDL cannot run in a transaction. */
119
+ private requirePreparedForSession;
118
120
  private beginOperation;
119
121
  /**
120
122
  * Runs one exact call on its session lease under its client deadline and
@@ -128,9 +130,18 @@ export declare class SmartdataExactCollection<TModel extends SmartDataDbDoc<any,
128
130
  /**
129
131
  * Runs one exact write through `runOperation`. A write that fails once
130
132
  * started may still have applied, so it changes every open read set that
131
- * read the collection.
133
+ * read the collection. A write of a database with write revisions outside
134
+ * an owned transaction starts one, on the caller's session if it passed one.
132
135
  */
133
136
  private runWriteOperation;
137
+ /**
138
+ * Runs one exact write in a transaction that carries the write's revisions:
139
+ * on the caller's owned session, which needs the collection prepared, or on
140
+ * a session of its own, which prepares the collection first. The
141
+ * transaction's commit is the write's outcome: one whose commit outcome is
142
+ * unknown is `ambiguous_write`.
143
+ */
144
+ private runRevisionWriteOperation;
134
145
  /**
135
146
  * The error of a non-transactional write that its client deadline or
136
147
  * signal interrupted after the write was handed to the driver: the command
@@ -4,7 +4,7 @@ import { assertBsonWithoutMutation } from './classes.bsonassertion.js';
4
4
  import { getOrdinaryPersistencePolicy } from './classes.ordinarypersistence.js';
5
5
  import { getIdentityIndexName } from './classes.collectiontopology.js';
6
6
  import { registerCollectionReconnectHandler } from './classes.collectionlifecycle.js';
7
- import { acquireSmartdataSession, reportSmartdataCollectionWrite, reportSmartdataWriteFailure, settleSmartdataOperationError, resolveSmartdataOperationDeadline, trackSmartdataRead, } from './classes.session.js';
7
+ import { SmartdataSession, acquireSmartdataSession, needsSmartdataRevisionTransaction, readPreviousWriteRevisions, reportSmartdataCollectionWrite, reportSmartdataWriteFailure, runSmartdataRevisionTransaction, settleSmartdataOperationError, resolveSmartdataOperationDeadline, trackSmartdataRead, } from './classes.session.js';
8
8
  import { runSmartdataWrite } from './classes.readtracker.js';
9
9
  import { requireOperationSignal, requireOperationTimeoutMS, } from './classes.operationdeadline.js';
10
10
  import { normalizeDeadlineError } from './classes.persistence.js';
@@ -517,16 +517,20 @@ export class SmartdataExactCollection {
517
517
  async prepare() {
518
518
  await this.initialize();
519
519
  }
520
+ /** Refuses an owned session until the collection is prepared: its DDL cannot run in a transaction. */
521
+ requirePreparedForSession() {
522
+ if (!this.collection.isInitializedForCurrentDatabase()
523
+ || this.initializedCollection !== this.collection.mongoDbCollection) {
524
+ throw new SmartdataExactPersistenceError('unsupported_operation', 'Exact collection must be prepared before it participates in a transaction.');
525
+ }
526
+ }
520
527
  async beginOperation(sessionArg, boundsArg) {
521
528
  if (!sessionArg) {
522
529
  const deadline = resolveSmartdataOperationDeadline(undefined, boundsArg);
523
530
  await deadline.join(this.initialize());
524
531
  return { deadline, release: () => { } };
525
532
  }
526
- if (!this.collection.isInitializedForCurrentDatabase()
527
- || this.initializedCollection !== this.collection.mongoDbCollection) {
528
- throw new SmartdataExactPersistenceError('unsupported_operation', 'Exact collection must be prepared before it participates in a transaction.');
529
- }
533
+ this.requirePreparedForSession();
530
534
  const lease = acquireSmartdataSession(sessionArg, this.collection.smartdataDb);
531
535
  try {
532
536
  const deadline = resolveSmartdataOperationDeadline(sessionArg, boundsArg);
@@ -570,9 +574,13 @@ export class SmartdataExactCollection {
570
574
  /**
571
575
  * Runs one exact write through `runOperation`. A write that fails once
572
576
  * started may still have applied, so it changes every open read set that
573
- * read the collection.
577
+ * read the collection. A write of a database with write revisions outside
578
+ * an owned transaction starts one, on the caller's session if it passed one.
574
579
  */
575
580
  async runWriteOperation(optionsArg, operationArg) {
581
+ if (needsSmartdataRevisionTransaction(optionsArg.session, this.collection.smartdataDb)) {
582
+ return this.runRevisionWriteOperation(optionsArg, operationArg);
583
+ }
576
584
  let started = false;
577
585
  try {
578
586
  return await runSmartdataWrite(this.collection.smartdataDb, () => this.runOperation(optionsArg, (sessionArg, deadlineArg) => {
@@ -587,6 +595,34 @@ export class SmartdataExactCollection {
587
595
  throw errorArg;
588
596
  }
589
597
  }
598
+ /**
599
+ * Runs one exact write in a transaction that carries the write's revisions:
600
+ * on the caller's owned session, which needs the collection prepared, or on
601
+ * a session of its own, which prepares the collection first. The
602
+ * transaction's commit is the write's outcome: one whose commit outcome is
603
+ * unknown is `ambiguous_write`.
604
+ */
605
+ async runRevisionWriteOperation(optionsArg, operationArg) {
606
+ const timeoutMS = requireOperationTimeoutMS(optionsArg.timeoutMS, 'Exact operation timeoutMS');
607
+ const signal = requireOperationSignal(optionsArg.signal, 'Exact operation signal');
608
+ signal?.throwIfAborted();
609
+ if (optionsArg.session)
610
+ this.requirePreparedForSession();
611
+ try {
612
+ return await runSmartdataRevisionTransaction(optionsArg.session, this.collection.smartdataDb, {
613
+ ...(optionsArg.session ? { prepared: true } : { prepare: () => this.initialize() }),
614
+ collectionName: this.collection.collectionName,
615
+ ...(timeoutMS === undefined ? {} : { timeoutMS }),
616
+ ...(signal === undefined ? {} : { signal }),
617
+ }, (sessionArg) => this.runWriteOperation({ session: sessionArg }, operationArg));
618
+ }
619
+ catch (errorArg) {
620
+ if (SmartdataSession.getCommitOutcome(errorArg) === 'unknown') {
621
+ throw this.ambiguousWriteError('The commit outcome of an exact write is unknown.', errorArg);
622
+ }
623
+ throw errorArg;
624
+ }
625
+ }
590
626
  /**
591
627
  * The error of a non-transactional write that its client deadline or
592
628
  * signal interrupted after the write was handed to the driver: the command
@@ -922,11 +958,11 @@ export class SmartdataExactCollection {
922
958
  async findStoredOne(filterArg, optionsArg = {}) {
923
959
  return this.runOperation(optionsArg, async (sessionArg, deadlineArg) => {
924
960
  const filter = convertFilterForMongoDb(filterArg);
925
- const tracked = trackSmartdataRead(this.collection, optionsArg.session, {
961
+ const tracked = await trackSmartdataRead(this.collection, optionsArg.session, {
926
962
  kind: 'documents',
927
963
  filter,
928
964
  limited: true,
929
- });
965
+ }, deadlineArg);
930
966
  const cursor = this.collection.mongoDbCollection.find(filter, {
931
967
  session: sessionArg,
932
968
  singleBatch: true,
@@ -965,13 +1001,13 @@ export class SmartdataExactCollection {
965
1001
  return this.runOperation(optionsArg, async (sessionArg, deadlineArg) => {
966
1002
  const filter = convertFilterForMongoDb(optionsArg.filter || {});
967
1003
  // A skipped page depends on the documents before it, which it never returns.
968
- const tracked = trackSmartdataRead(this.collection, optionsArg.session, {
1004
+ const tracked = await trackSmartdataRead(this.collection, optionsArg.session, {
969
1005
  kind: 'documents',
970
1006
  filter,
971
1007
  sort: optionsArg.sort,
972
1008
  matches: optionsArg.skip !== undefined && optionsArg.skip > 0,
973
1009
  limited: optionsArg.limit !== undefined,
974
- });
1010
+ }, deadlineArg);
975
1011
  let cursor = this.collection.mongoDbCollection.find(filter, { session: sessionArg, ...deadlineArg.cursorOptions() });
976
1012
  // The driver abort listener does not await close, so every close must join
977
1013
  // the same native cleanup before runOperation releases its session lease.
@@ -1014,7 +1050,7 @@ export class SmartdataExactCollection {
1014
1050
  async count(filterArg = {}, optionsArg = {}) {
1015
1051
  return this.runOperation(optionsArg, async (sessionArg, deadlineArg) => {
1016
1052
  const filter = convertFilterForMongoDb(filterArg);
1017
- const tracked = trackSmartdataRead(this.collection, optionsArg.session, { kind: 'count', filter });
1053
+ const tracked = await trackSmartdataRead(this.collection, optionsArg.session, { kind: 'count', filter }, deadlineArg);
1018
1054
  const count = await this.collection.mongoDbCollection.countDocuments(filter, { session: sessionArg, ...deadlineArg.commandOptions() });
1019
1055
  tracked?.settle();
1020
1056
  return count;
@@ -1023,11 +1059,11 @@ export class SmartdataExactCollection {
1023
1059
  async distinct(fieldArg, filterArg = {}, optionsArg = {}) {
1024
1060
  return this.runOperation(optionsArg, async (sessionArg, deadlineArg) => {
1025
1061
  const filter = convertFilterForMongoDb(filterArg);
1026
- trackSmartdataRead(this.collection, optionsArg.session, {
1062
+ await trackSmartdataRead(this.collection, optionsArg.session, {
1027
1063
  kind: 'documents',
1028
1064
  filter,
1029
1065
  matches: true,
1030
- });
1066
+ }, deadlineArg);
1031
1067
  return (await this.collection.mongoDbCollection.distinct(fieldArg, filter, { session: sessionArg, ...deadlineArg.commandOptions() }));
1032
1068
  });
1033
1069
  }
@@ -1063,9 +1099,15 @@ export class SmartdataExactCollection {
1063
1099
  const selector = current._smartdataRevision !== undefined
1064
1100
  ? { _id: current._id, _smartdataRevision: current._smartdataRevision }
1065
1101
  : { _id: current._id, _smartdataRevision: { $exists: false } };
1066
- // Only a revision pins the stored body the selector matched.
1102
+ // Only a revision pins the stored body the selector matched; without one
1103
+ // the write-revision partition it held is read first.
1104
+ const previousPartitionsRead = current._smartdataRevision === undefined
1105
+ && await readPreviousWriteRevisions(this.collection.smartdataDb, this.collection.mongoDbCollection, sessionArg, selector, deadlineArg);
1067
1106
  const reportTransition = () => {
1068
- reportSmartdataCollectionWrite(this.collection, sessionOptionsArg.session, 'replace', [current, expectedStoredDocument], selector, { images: current._smartdataRevision !== undefined ? 'beforeAndAfter' : 'after' });
1107
+ reportSmartdataCollectionWrite(this.collection, sessionOptionsArg.session, 'replace', [current, expectedStoredDocument], selector, {
1108
+ images: current._smartdataRevision !== undefined ? 'beforeAndAfter' : 'after',
1109
+ ...(previousPartitionsRead ? { previousPartitionsRead } : {}),
1110
+ });
1069
1111
  };
1070
1112
  const replaceOptions = {
1071
1113
  returnDocument: 'after',
@@ -1137,6 +1179,8 @@ export class SmartdataExactCollection {
1137
1179
  [this.reconcileBy]: identity,
1138
1180
  _smartdataRevision: { $exists: false },
1139
1181
  };
1182
+ const previousPartitionsRead = current._smartdataRevision === undefined
1183
+ && await readPreviousWriteRevisions(this.collection.smartdataDb, this.collection.mongoDbCollection, sessionArg, selector, deadlineArg);
1140
1184
  let result;
1141
1185
  const deleteOptions = { session: sessionArg, ...deadlineArg.commandOptions() };
1142
1186
  try {
@@ -1156,7 +1200,10 @@ export class SmartdataExactCollection {
1156
1200
  }
1157
1201
  if (result.acknowledged === true &&
1158
1202
  result.deletedCount === 1) {
1159
- reportSmartdataCollectionWrite(this.collection, sessionOptionsArg.session, 'delete', [current], selector, { images: current._smartdataRevision !== undefined ? 'before' : 'none' });
1203
+ reportSmartdataCollectionWrite(this.collection, sessionOptionsArg.session, 'delete', [current], selector, {
1204
+ images: current._smartdataRevision !== undefined ? 'before' : 'none',
1205
+ ...(previousPartitionsRead ? { previousPartitionsRead } : {}),
1206
+ });
1160
1207
  return { status: 'deleted', deletedCount: 1 };
1161
1208
  }
1162
1209
  if (result.acknowledged === true &&
@@ -1241,4 +1288,4 @@ export function exactPersistence(optionsArg) {
1241
1288
  });
1242
1289
  };
1243
1290
  }
1244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5leGFjdHBlcnNpc3RlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmV4YWN0cGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3QixpQ0FBaUMsRUFDakMsa0JBQWtCLEdBQ25CLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUVMLHNCQUFzQixFQUN0Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEdBSXhCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsTUFBTSw0QkFBNEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUM3Qyw4Q0FBOEMsQ0FDL0MsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQVUsQ0FBQztBQUNuRSxNQUFNLFlBQVksR0FBRztJQUNuQixHQUFHLG1CQUFtQjtJQUN0QixZQUFZO0lBQ1osWUFBWTtDQUNKLENBQUM7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
1291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5leGFjdHBlcnNpc3RlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmV4YWN0cGVyc2lzdGVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEYsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFDOUIsMkJBQTJCLEVBQzNCLCtCQUErQixFQUMvQiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLGtCQUFrQixHQUNuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFFTCxzQkFBc0IsRUFDdEIseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUNMLHVCQUF1QixHQUl4QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE1BQU0sNEJBQTRCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDN0MsOENBQThDLENBQy9DLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFVLENBQUM7QUFDbkUsTUFBTSxZQUFZLEdB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
@@ -24,6 +24,11 @@ export declare class SmartdataOperationDeadline {
24
24
  private readonly expiresAt;
25
25
  constructor(timeoutMSArg: number | undefined, signal?: AbortSignal | undefined);
26
26
  get bounded(): boolean;
27
+ /**
28
+ * The time left for a deadline handed on whole, such as a transaction's;
29
+ * `undefined` when unbounded. Throws `timeout` once it has passed.
30
+ */
31
+ remainingTimeoutMS(): number | undefined;
27
32
  /** Throws the signal's reason once the call was aborted. */
28
33
  throwIfAborted(): void;
29
34
  /**
@@ -52,6 +52,13 @@ export class SmartdataOperationDeadline {
52
52
  get bounded() {
53
53
  return this.expiresAt !== undefined;
54
54
  }
55
+ /**
56
+ * The time left for a deadline handed on whole, such as a transaction's;
57
+ * `undefined` when unbounded. Throws `timeout` once it has passed.
58
+ */
59
+ remainingTimeoutMS() {
60
+ return this.expiresAt === undefined ? undefined : this.remainingMS();
61
+ }
55
62
  /** Throws the signal's reason once the call was aborted. */
56
63
  throwIfAborted() {
57
64
  this.signal?.throwIfAborted();
@@ -146,4 +153,4 @@ export class SmartdataOperationDeadline {
146
153
  return Math.ceil(remainingMS);
147
154
  }
148
155
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5vcGVyYXRpb25kZWFkbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25vc3FsZGIvY2xhc3Nlcy5vcGVyYXRpb25kZWFkbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLDJCQUEyQixFQUMzQixvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxNQUFNLHVCQUF1QixHQUFHLG1EQUFtRCxDQUFDO0FBRXBGLDBGQUEwRjtBQUMxRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxRQUFpQixFQUNqQixRQUFnQixFQUNJLEVBQUU7SUFDdEIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQ0UsT0FBTyxRQUFRLEtBQUssUUFBUTtXQUN6QixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1dBQy9CLFFBQVEsR0FBRyxDQUFDO1dBQ1osUUFBUSxHQUFHLE9BQU8sRUFDckIsQ0FBQztRQUNELE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsa0JBQWtCLEVBQ2xCLEdBQUcsUUFBUSwwREFBMEQsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRix5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsUUFBaUIsRUFDakIsUUFBZ0IsRUFDUyxFQUFFO0lBQzNCLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMs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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5vcGVyYXRpb25kZWFkbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25vc3FsZGIvY2xhc3Nlcy5vcGVyYXRpb25kZWFkbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLDJCQUEyQixFQUMzQixvQkFBb0IsR0FDckIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxNQUFNLHVCQUF1QixHQUFHLG1EQUFtRCxDQUFDO0FBRXBGLDBGQUEwRjtBQUMxRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxRQUFpQixFQUNqQixRQUFnQixFQUNJLEVBQUU7SUFDdEIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQ0UsT0FBTyxRQUFRLEtBQUssUUFBUTtXQUN6QixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1dBQy9CLFFBQVEsR0FBRyxDQUFDO1dBQ1osUUFBUSxHQUFHLE9BQU8sRUFDckIsQ0FBQztRQUNELE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsa0JBQWtCLEVBQ2xCLEdBQUcsUUFBUSwwREFBMEQsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRix5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsUUFBaUIsRUFDakIsUUFBZ0IsRUFDUyxFQUFFO0lBQzNCLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMs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
@@ -12,6 +12,18 @@ export declare class SmartdataReadSet {
12
12
  * it cannot follow.
13
13
  */
14
14
  get changed(): boolean;
15
+ /**
16
+ * Whether no write of any process could have changed what the reads
17
+ * returned: `changed` is false, and the write revisions the reads depend on
18
+ * are what they were before the reads ran. Requires the database's
19
+ * `writeRevisions` option and an engine with transactions; without them,
20
+ * and whenever the revisions cannot be read in time, it is false.
21
+ *
22
+ * The revisions count writes per collection and partition, not per read,
23
+ * so a write of this process that left `changed` false also makes it false
24
+ * when it wrote to a partition or collection the reads depend on.
25
+ */
26
+ isCurrent(): Promise<boolean>;
15
27
  /** Stops following writes and frees the recorded reads; `changed` is true from then on. */
16
28
  close(): void;
17
29
  }
@@ -51,6 +63,11 @@ export interface ISmartdataReadRecorder {
51
63
  record(documentArg: unknown): void;
52
64
  /** The read returned everything it will return. */
53
65
  settle(): void;
66
+ /**
67
+ * Settles once the write revisions the read depends on were read; the read
68
+ * is issued after it. `undefined` when there is nothing to wait for.
69
+ */
70
+ ready?: Promise<void>;
54
71
  }
55
72
  /** @internal Runs `fnArg` with a new read set open; see `SmartdataDb.trackReads`. */
56
73
  export declare const trackSmartdataReads: <TResult>(dbArg: SmartdataDb, fnArg: () => TResult | Promise<TResult>) => Promise<ISmartdataTrackedReads<TResult>>;
@@ -87,3 +104,12 @@ export declare const captureSmartdataReadChange: (dbArg: SmartdataDb, writeArg:
87
104
  * failed write may still have applied — so every read of it counts as changed.
88
105
  */
89
106
  export declare const captureSmartdataCollectionChange: (dbArg: SmartdataDb, collectionArg: string, deferredArg: boolean) => (() => void) | undefined;
107
+ /**
108
+ * @internal The write-revision counters one acknowledged write bumps: the
109
+ * partition of each document state it names before and after, and the shared
110
+ * counter for each state it cannot place. A state before the write that the
111
+ * report does not carry was read ahead of the write when
112
+ * `previousPartitionsRead` is set; a field the write left alone keeps the
113
+ * value it has afterwards.
114
+ */
115
+ export declare const writeRevisionIdsOfWrite: (writeArg: ISmartdataWrite, fieldArg: string) => Set<string>;