@lossless.org/client 1.21.0 → 1.22.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.
Files changed (46) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/nosqldb/classes.atomicdelete.js +8 -4
  3. package/dist_ts/nosqldb/classes.atomicfindoneandupdate.js +19 -4
  4. package/dist_ts/nosqldb/classes.atomicupdate.js +16 -5
  5. package/dist_ts/nosqldb/classes.bootstraprecord.js +31 -5
  6. package/dist_ts/nosqldb/classes.collection.js +17 -14
  7. package/dist_ts/nosqldb/classes.collectiontopology.d.ts +8 -1
  8. package/dist_ts/nosqldb/classes.collectiontopology.js +10 -2
  9. package/dist_ts/nosqldb/classes.connection.d.ts +3 -0
  10. package/dist_ts/nosqldb/classes.connection.js +3 -2
  11. package/dist_ts/nosqldb/classes.db.d.ts +27 -2
  12. package/dist_ts/nosqldb/classes.db.js +42 -3
  13. package/dist_ts/nosqldb/classes.doc.d.ts +3 -1
  14. package/dist_ts/nosqldb/classes.doc.js +15 -9
  15. package/dist_ts/nosqldb/classes.exactpersistence.d.ts +13 -2
  16. package/dist_ts/nosqldb/classes.exactpersistence.js +64 -17
  17. package/dist_ts/nosqldb/classes.operationdeadline.d.ts +5 -0
  18. package/dist_ts/nosqldb/classes.operationdeadline.js +8 -1
  19. package/dist_ts/nosqldb/classes.readtracker.d.ts +28 -0
  20. package/dist_ts/nosqldb/classes.readtracker.js +128 -5
  21. package/dist_ts/nosqldb/classes.session.d.ts +34 -5
  22. package/dist_ts/nosqldb/classes.session.js +138 -9
  23. package/dist_ts/nosqldb/classes.storedinspection.js +7 -4
  24. package/dist_ts/nosqldb/classes.writeobserver.d.ts +5 -0
  25. package/dist_ts/nosqldb/classes.writeobserver.js +1 -1
  26. package/dist_ts/nosqldb/classes.writerevisions.d.ts +81 -0
  27. package/dist_ts/nosqldb/classes.writerevisions.js +246 -0
  28. package/package.json +4 -4
  29. package/readme.md +1 -0
  30. package/ts/00_commitinfo_data.ts +1 -1
  31. package/ts/nosqldb/classes.atomicdelete.ts +11 -2
  32. package/ts/nosqldb/classes.atomicfindoneandupdate.ts +25 -2
  33. package/ts/nosqldb/classes.atomicupdate.ts +25 -3
  34. package/ts/nosqldb/classes.bootstraprecord.ts +29 -4
  35. package/ts/nosqldb/classes.collection.ts +20 -12
  36. package/ts/nosqldb/classes.collectiontopology.ts +15 -1
  37. package/ts/nosqldb/classes.connection.ts +5 -1
  38. package/ts/nosqldb/classes.db.ts +65 -2
  39. package/ts/nosqldb/classes.doc.ts +16 -8
  40. package/ts/nosqldb/classes.exactpersistence.ts +83 -21
  41. package/ts/nosqldb/classes.operationdeadline.ts +8 -0
  42. package/ts/nosqldb/classes.readtracker.ts +147 -5
  43. package/ts/nosqldb/classes.session.ts +197 -11
  44. package/ts/nosqldb/classes.storedinspection.ts +6 -3
  45. package/ts/nosqldb/classes.writeobserver.ts +5 -0
  46. package/ts/nosqldb/classes.writerevisions.ts +328 -0
@@ -76,9 +76,16 @@ export declare const getExpectedCollectionTopologyForModel: (constructorArg: ICo
76
76
  export declare const getExpectedCollectionTopologyForSchema: (schema: INormalizedCollectionModelSchema) => ISmartdataExpectedCollectionTopology;
77
77
  /**
78
78
  * @internal A single-field ascending unique index is what makes a declared
79
- * identity globally constraining, whatever the index is called.
79
+ * identity globally constraining, whatever the index is called. A partial one
80
+ * does not: documents outside its filter may share a value.
80
81
  */
81
82
  export declare const isIdentityIndexFor: (indexArg: INormalizedCollectionModelSchema['indexes'][number], fieldArg: string) => boolean;
83
+ /**
84
+ * @internal The identity fields whose identity index holds every document, so
85
+ * a sort by one orders them all. A sparse index leaves out the documents that
86
+ * lack the field, which tie.
87
+ */
88
+ export declare const getOrderingIdentityFields: (schemaArg: INormalizedCollectionModelSchema) => readonly string[];
82
89
  /**
83
90
  * @internal Name of the unique index that backs an identity field in a bound
84
91
  * schema. Index-creation fallbacks resolve it here so that a model naming its
@@ -232,12 +232,20 @@ export const getExpectedCollectionTopologyForSchema = (schema) => {
232
232
  };
233
233
  /**
234
234
  * @internal A single-field ascending unique index is what makes a declared
235
- * identity globally constraining, whatever the index is called.
235
+ * identity globally constraining, whatever the index is called. A partial one
236
+ * does not: documents outside its filter may share a value.
236
237
  */
237
238
  export const isIdentityIndexFor = (indexArg, fieldArg) => indexArg.options.unique === true &&
239
+ indexArg.options.partialFilterExpression === undefined &&
238
240
  indexArg.key.length === 1 &&
239
241
  indexArg.key[0][0] === fieldArg &&
240
242
  indexArg.key[0][1] === 1;
243
+ /**
244
+ * @internal The identity fields whose identity index holds every document, so
245
+ * a sort by one orders them all. A sparse index leaves out the documents that
246
+ * lack the field, which tie.
247
+ */
248
+ export const getOrderingIdentityFields = (schemaArg) => schemaArg.identityFields.filter((fieldArg) => schemaArg.indexes.some((indexArg) => isIdentityIndexFor(indexArg, fieldArg) && indexArg.options.sparse !== true));
241
249
  /**
242
250
  * @internal Name of the unique index that backs an identity field in a bound
243
251
  * schema. Index-creation fallbacks resolve it here so that a model naming its
@@ -506,4 +514,4 @@ export const inspectCollectionTopologySnapshot = (expected, rawSnapshot) => {
506
514
  throw new SmartdataPersistenceError('unsupported_operation', 'Collection topology inspection returned unreadable metadata.');
507
515
  }
508
516
  };
509
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2xsZWN0aW9udG9wb2xvZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9ub3NxbGRiL2NsYXNzZXMuY29sbGVjdGlvbnRvcG9sb2d5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBZ0VuRixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxNQUFNLENBQ3ZELHFEQUFxRCxDQUN0RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsTUFBTSxDQUN4RCxzREFBc0QsQ0FDdkQsQ0FBQztBQWtCRixNQUFNLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDL0IsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkQsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsS0FBSztJQUNiLGtCQUFrQixFQUFFLElBQUk7Q0FDekIsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxlQUFlLEdBQXNEO0lBQ3pFLDBCQUEwQjtJQUMxQiw0QkFBNEI7SUFDNUIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZiwwQkFBMEI7Q0FDM0IsQ0FBQztBQUNGLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdEMsR0FBRztJQUNILEtBQUs7SUFDTCxNQUFNO0lBQ04sSUFBSTtJQUNKLFlBQVk7SUFDWixRQUFRO0lBQ1IsUUFBUTtJQUNSLG9C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
517
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2xsZWN0aW9udG9wb2xvZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9ub3NxbGRiL2NsYXNzZXMuY29sbGVjdGlvbnRvcG9sb2d5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBZ0VuRixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxNQUFNLENBQ3ZELHFEQUFxRCxDQUN0RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsTUFBTSxDQUN4RCxzREFBc0QsQ0FDdkQsQ0FBQztBQWtCRixNQUFNLDJCQUEyQixHQUFHLEVBQUUsQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDL0IsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkQsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsS0FBSztJQUNiLGtCQUFrQixFQUFFLElBQUk7Q0FDekIsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxlQUFlLEdBQXNEO0lBQ3pFLDBCQUEwQjtJQUMxQiw0QkFBNEI7SUFDNUIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZiwwQkFBMEI7Q0FDM0IsQ0FBQztBQUNGLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdEMsR0FBRztJQUNILEtBQUs7SUFDTCxNQUFNO0lBQ04sSUFBSTtJQUNKLFlBQVk7SUFDWixRQUFRO0lBQ1IsUUFBUTtJQUNSLG9C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
@@ -1,4 +1,5 @@
1
1
  import { SmartdataDb } from './classes.db.js';
2
+ import type { ISmartdataWriteRevisionsOptions } from './classes.writerevisions.js';
2
3
  import { type ISmartdataEngineIdentity, type TSmartdataEngineBackend } from './engineidentity.js';
3
4
  import type { ICapabilities, IOperationOptions, IReadiness } from '../core/interfaces.js';
4
5
  export interface INoSqlConnectionOptions {
@@ -8,6 +9,8 @@ export interface INoSqlConnectionOptions {
8
9
  username?: string;
9
10
  password?: string;
10
11
  connectionLimit?: number;
12
+ /** See `ISmartdataDbOptions.writeRevisions`. */
13
+ writeRevisions?: ISmartdataWriteRevisionsOptions;
11
14
  }
12
15
  export declare class NoSqlConnection extends SmartdataDb {
13
16
  readonly options: INoSqlConnectionOptions;
@@ -9,7 +9,8 @@ export class NoSqlConnection extends SmartdataDb {
9
9
  constructor(options) {
10
10
  super({ mongoDbUrl: options.url, mongoDbName: options.database,
11
11
  mongoDbUser: options.username, mongoDbPass: options.password,
12
- ...(options.connectionLimit === undefined ? {} : { maxPoolSize: options.connectionLimit }) });
12
+ ...(options.connectionLimit === undefined ? {} : { maxPoolSize: options.connectionLimit }),
13
+ ...(options.writeRevisions === undefined ? {} : { writeRevisions: options.writeRevisions }) });
13
14
  this.options = options;
14
15
  this.backend = options.backend;
15
16
  this.declaredCapabilities = composeSmartdataCapabilities(this.backend, smartdataCompositeGrouping(this.engineIdentity));
@@ -25,4 +26,4 @@ export class NoSqlConnection extends SmartdataDb {
25
26
  return result.ready ? { ready: true } : { ready: false, reason: result.reason };
26
27
  }
27
28
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsMEJBQTBCLEdBRzNCLE1BQU0scUJBQXFCLENBQUM7QUFZN0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUtsQixPQUFPO0lBSm5CLE9BQU8sQ0FBMEI7SUFDekMsb0JBQW9CLENBQWdCO0lBQzVDLDJFQUEyRTtJQUMzRSxJQUFvQixZQUFZLEtBQW9CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUN2RixZQUE0QixPQUFnQztRQUMxRCxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDNUQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzVELEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7dUJBSHRFLE9BQU87UUFJakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNuRSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0Qsd0ZBQXdGO0lBQ3JFLG1CQUFtQixDQUFDLFdBQXFDO1FBQzFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFDbkUsMEJBQTBCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ00sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQXNCLEVBQUUsSUFBbUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBc0IsRUFBRTtRQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEYsQ0FBQztDQUNGIn0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb25uZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLmNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsMEJBQTBCLEdBRzNCLE1BQU0scUJBQXFCLENBQUM7QUFjN0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQUtsQixPQUFPO0lBSm5CLE9BQU8sQ0FBMEI7SUFDekMsb0JBQW9CLENBQWdCO0lBQzVDLDJFQUEyRTtJQUMzRSxJQUFvQixZQUFZLEtBQW9CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUN2RixZQUE0QixPQUFnQztRQUMxRCxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVE7WUFDNUQsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzVELEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUYsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzt1QkFKdkUsT0FBTztRQUtqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ25FLDBCQUEwQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCx3RkFBd0Y7SUFDckUsbUJBQW1CLENBQUMsV0FBcUM7UUFDMUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNuRSwwQkFBMEIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBc0IsRUFBRSxJQUFtQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNGLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFzQixFQUFFO1FBQ2hELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsRixDQUFDO0NBQ0YifQ==
@@ -7,10 +7,12 @@ import { collectionTopologyDbInspectionSymbol } from './classes.collectiontopolo
7
7
  import { type ISmartdataNamespaceInspectionOptions, type ISmartdataNamespaceInspection } from './classes.namespaceinspection.js';
8
8
  import { type ISmartdataWriteObserverOptions } from './classes.writeobserver.js';
9
9
  import { type ISmartdataTrackedReads } from './classes.readtracker.js';
10
+ import { type ISmartdataWriteRevisionsOptions } from './classes.writerevisions.js';
10
11
  export { SmartdataSession } from './classes.session.js';
11
12
  export { SmartdataReadSet } from './classes.readtracker.js';
12
13
  export type { ISmartdataTrackedReads } from './classes.readtracker.js';
13
14
  export type { ISmartdataTransactionOptions, TSmartdataOrdinarySession, TSmartdataTransactionCommitOutcome, } from './classes.session.js';
15
+ export type { ISmartdataWriteRevisionsOptions } from './classes.writerevisions.js';
14
16
  export type { ISmartdataWriteObserverOptions, ISmartdataWriteReport, TSmartdataObservedFields, TSmartdataObservedValue, TSmartdataWriteKind, } from './classes.writeobserver.js';
15
17
  import { type ISmartdataEngineIdentity } from './engineidentity.js';
16
18
  import type { ICapabilities } from '../core/interfaces.js';
@@ -45,6 +47,18 @@ export interface ISmartdataDbOptions {
45
47
  serverSelectionTimeoutMS?: number;
46
48
  /** Milliseconds a socket may stay inactive before it is closed. Default 30000. */
47
49
  socketTimeoutMS?: number;
50
+ /**
51
+ * Keeps write revisions, so `reads.isCurrent()` of `trackReads()` also
52
+ * notices writes of other processes. Every process that writes the database
53
+ * must enable it with the same `partitionField`; see `trackReads()`. Read
54
+ * once, by the constructor.
55
+ */
56
+ writeRevisions?: ISmartdataWriteRevisionsOptions;
57
+ }
58
+ export interface ISmartdataInvalidateTrackedReadsOptions {
59
+ /** Client deadline of the write-revision epoch's bump (1..120000 ms). */
60
+ timeoutMS?: number;
61
+ signal?: AbortSignal;
48
62
  }
49
63
  export interface ISmartdataReadinessOptions {
50
64
  timeoutMs?: number;
@@ -155,8 +169,11 @@ export declare class SmartdataDb {
155
169
  * as one that did. A cache keyed by `reads` rebuilds only what such a write
156
170
  * touched.
157
171
  *
158
- * Writes of other processes, raw driver access and migrations are not
159
- * followed. A read inside a transaction, a read of another database and a
172
+ * `reads.changed` does not follow writes of other processes, raw driver
173
+ * access or migrations. With the `writeRevisions` option, the awaited
174
+ * `reads.isCurrent()` also answers for the model writes of every process
175
+ * that enables it, and for raw writes once `invalidateTrackedReads()` states
176
+ * them. A read inside a transaction, a read of another database and a
160
177
  * write made inside `fnArg` mark the set changed at once. Queries are
161
178
  * evaluated by MongoDB's simple binary comparison, so a read of a view or of
162
179
  * a collection with a default collation marks the set changed as well; each
@@ -164,6 +181,14 @@ export declare class SmartdataDb {
164
181
  * Close a set that is no longer needed.
165
182
  */
166
183
  trackReads<TResult>(fnArg: () => TResult | Promise<TResult>): Promise<ISmartdataTrackedReads<TResult>>;
184
+ /**
185
+ * States that something wrote the database behind its models, such as a
186
+ * migration or an operator command on the raw driver: every open read set
187
+ * of this process changes, and with `writeRevisions` active the database's
188
+ * epoch is bumped, so `isCurrent()` turns false in every process. Call it
189
+ * after the raw writes; a raw write in flight meanwhile can still be missed.
190
+ */
191
+ invalidateTrackedReads(optionsArg?: ISmartdataInvalidateTrackedReadsOptions): Promise<void>;
167
192
  /**
168
193
  * Creates a narrowly scoped MongoDB administration facade bound to this
169
194
  * SmartData lifecycle. Applications never need direct driver access.
@@ -8,6 +8,8 @@ import { collectionTopologyDbInspectionSymbol } from './classes.collectiontopolo
8
8
  import { inspectSmartdataNamespace, } from './classes.namespaceinspection.js';
9
9
  import { addSmartdataWriteObserver, } from './classes.writeobserver.js';
10
10
  import { changeSmartdataReadSetsOfDb, trackSmartdataReads, } from './classes.readtracker.js';
11
+ import { bumpSmartdataWriteRevisionEpoch, configureSmartdataWriteRevisions, ensureSmartdataWriteRevisions, isSmartdataWriteRevisionsActive, } from './classes.writerevisions.js';
12
+ import { requireOperationSignal, requireOperationTimeoutMS, } from './classes.operationdeadline.js';
11
13
  export { SmartdataSession } from './classes.session.js';
12
14
  export { SmartdataReadSet } from './classes.readtracker.js';
13
15
  import { logger } from './logging.js';
@@ -53,6 +55,7 @@ export class SmartdataDb {
53
55
  engineIdentityState = unidentifiedSmartdataEngine;
54
56
  capabilitiesState;
55
57
  constructor(smartdataOptions) {
58
+ configureSmartdataWriteRevisions(this, smartdataOptions.writeRevisions);
56
59
  this.smartdataOptions = smartdataOptions;
57
60
  this.status = 'initial';
58
61
  void this.statusConnectedDeferred.promise.catch(() => { });
@@ -142,6 +145,10 @@ export class SmartdataDb {
142
145
  this.applyEngineIdentity(await probeSmartdataEngineIdentity(candidateDb, budget));
143
146
  // The probe absorbs its own failures, so a budget that expired during it must still refuse here.
144
147
  budget?.check();
148
+ if (isSmartdataWriteRevisionsActive(this)) {
149
+ await ensureSmartdataWriteRevisions(candidateDb, budget?.operationOptions());
150
+ budget?.check();
151
+ }
145
152
  this.mongoDbClient = candidateClient;
146
153
  this.mongoDb = candidateDb;
147
154
  candidateClient = undefined;
@@ -358,8 +365,11 @@ export class SmartdataDb {
358
365
  * as one that did. A cache keyed by `reads` rebuilds only what such a write
359
366
  * touched.
360
367
  *
361
- * Writes of other processes, raw driver access and migrations are not
362
- * followed. A read inside a transaction, a read of another database and a
368
+ * `reads.changed` does not follow writes of other processes, raw driver
369
+ * access or migrations. With the `writeRevisions` option, the awaited
370
+ * `reads.isCurrent()` also answers for the model writes of every process
371
+ * that enables it, and for raw writes once `invalidateTrackedReads()` states
372
+ * them. A read inside a transaction, a read of another database and a
363
373
  * write made inside `fnArg` mark the set changed at once. Queries are
364
374
  * evaluated by MongoDB's simple binary comparison, so a read of a view or of
365
375
  * a collection with a default collation marks the set changed as well; each
@@ -369,6 +379,35 @@ export class SmartdataDb {
369
379
  async trackReads(fnArg) {
370
380
  return trackSmartdataReads(this, fnArg);
371
381
  }
382
+ /**
383
+ * States that something wrote the database behind its models, such as a
384
+ * migration or an operator command on the raw driver: every open read set
385
+ * of this process changes, and with `writeRevisions` active the database's
386
+ * epoch is bumped, so `isCurrent()` turns false in every process. Call it
387
+ * after the raw writes; a raw write in flight meanwhile can still be missed.
388
+ */
389
+ async invalidateTrackedReads(optionsArg = {}) {
390
+ const { timeoutMS, signal } = assertDataOptions(optionsArg, ['timeoutMS', 'signal']);
391
+ const options = {
392
+ timeoutMS: requireOperationTimeoutMS(timeoutMS, 'invalidateTrackedReads timeoutMS'),
393
+ signal: requireOperationSignal(signal, 'invalidateTrackedReads signal'),
394
+ };
395
+ changeSmartdataReadSetsOfDb(this);
396
+ if (!isSmartdataWriteRevisionsActive(this))
397
+ return;
398
+ try {
399
+ await bumpSmartdataWriteRevisionEpoch(this, {
400
+ ...(options.timeoutMS === undefined ? {} : { timeoutMS: options.timeoutMS }),
401
+ ...(options.signal === undefined ? {} : { signal: options.signal }),
402
+ });
403
+ }
404
+ catch (errorArg) {
405
+ if (isMongoDeadlineError(errorArg)) {
406
+ throw createSmartdataTimeoutError('Bumping the write-revision epoch exceeded its client deadline.', errorArg);
407
+ }
408
+ throw errorArg;
409
+ }
410
+ }
372
411
  /**
373
412
  * Creates a narrowly scoped MongoDB administration facade bound to this
374
413
  * SmartData lifecycle. Applications never need direct driver access.
@@ -522,4 +561,4 @@ export class SmartdataDb {
522
561
  };
523
562
  }
524
563
  }
525
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25vc3FsZGIvY2xhc3Nlcy5kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIseUJBQXlCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLHdDQUF3QyxHQUN6QyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCx5QkFBeUIsR0FHMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixtQkFBbUIsR0FFcEIsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQWU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNGLE9BQU8sRUFD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
564
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25vc3FsZGIvY2xhc3Nlcy5kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIseUJBQXlCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLHdDQUF3QyxHQUN6QyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCx5QkFBeUIsR0FHMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixtQkFBbUIsR0FFcEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQyw2QkFBNkIsRUFDN0IsK0JBQStCLEdBRWhDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQWdCNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLDJCQUEyQixHQUU1QixNQUFNLHFCQUFxQixDQUFDO0FBa0g3QixNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQztBQUN4QyxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQztBQUV6QyxNQUFNLHFCQUFxQixHQUFHLENBQzVCLFFBQWlCLEVBQ2pCLGVBQWtDLEVBQ2xDLGNBQXNCLEVBQ3RCLGFBQWEsR0FBRyxLQUFLLEVBQ0ksRUFBRTtJQUMzQixJQUNFLFFBQVEsS0FBSyxJQUFJO1FBQ2pCLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDdkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUNwRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyxrQkFBa0IsRUFDbEIsR0FBRyxjQUFjLDBCQUEwQixDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsSUFDRSxDQUFDLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUMxRCxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFDOUUsSUFBSSxDQUFDLElBQUksQ0FDUCxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDbEUsRUFDRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyxrQkFBa0IsRUFDbEIsR0FBRyxjQUFjLHdCQUF3QixDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUNELEtBQUssTUFBTSxHQUFHLElBQUksSUFBZ0IsRUFBRSxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyxrQkFBa0IsRUFDbEIsR0FBRyxjQUFjLHFDQUFxQyxDQUN2RCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFFBQW1DLENBQUM7QUFDN0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxPQUFPLFdBQVc7SUFDdEIsZ0JBQWdCLENBQXNCO0lBQ3RDLGFBQWEsQ0FBK0I7SUFDNUMsT0FBTyxDQUFzQjtJQUM3QixNQUFNLENBQW9CO0lBQzFCLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkQsc0JBQXNCLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBNEIsQ0FBQztJQUN2RSxjQUFjLEdBQStCLFNBQVMsQ0FBQztJQUN2RCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLHdCQUF3QixHQUEwQyxJQUFJLENBQUM7SUFDdkUsYUFBYSxDQUErQjtJQUNwRCx1RkFBdUY7SUFDL0UsYUFBYSxDQUF5QztJQUN0RCxtQkFBbUIsR0FBNkIsMkJBQTJCLENBQUM7SUFDNUUsaUJBQWlCLENBQTRCO0lBRXJELFlBQVksZ0JBQXFDO1FBQy9DLGdDQUFnQyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsS0FBSyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxtRkFBbUY7SUFDekUsbUJBQW1CLENBQUMsV0FBcUM7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxLQUFLLFNBQVM7WUFDNUMsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsNEJBQTRCLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFlBQVk7SUFDTCxLQUFLLENBQUMsZUFBZSxDQUFjLFNBQWlCO1FBQ3pELE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsd0VBQXdFO0lBRXhFOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQTBCLEVBQUU7UUFDdEQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTTtZQUN4QyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRixJQUFJLENBQUM7WUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFBQyxDQUFDO1FBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUFDLE1BQU0sUUFBUSxDQUFDO1FBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLHdGQUF3RjtRQUN4RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxlQUF3RCxDQUFDO1FBQzdELElBQUksQ0FBQztZQUNILElBQUksQ0FBQztnQkFDSCxNQUFNLGFBQWEsR0FBdUM7b0JBQ3hELFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVyxJQUFJLEdBQUc7b0JBQzFDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYSxJQUFJLE1BQU07b0JBQ2pELHdCQUF3QixFQUN0QixNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksVUFBVSxDQUFDLHdCQUF3QixJQUFJLEtBQUs7b0JBQ3ZFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDN0QsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksS0FBSztvQkFDcEQsV0FBVyxFQUFFLElBQUk7aUJBQ2xCLENBQUM7Z0JBRUYsZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQy9DLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQztnQkFDckMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7Z0JBQ3pDLElBQUksbUJBQThDLENBQUM7Z0JBQ25ELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsbUJBQW1CLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pELHlEQUF5RDtvQkFDekQsS0FBSyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQztnQkFDRixNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDO29CQUNILE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNsQixDQUFDO3dCQUFTLENBQUM7b0JBQ1QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3JELElBQUksbUJBQW1CO3dCQUFFLE1BQU0sbUJBQW1CLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FDbEMsQ0FBQztnQkFDRixLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUNoRSxVQUFVLENBQUMseUJBQXlCLEVBQUUsQ0FBQztnQkFDekMsQ0FBQztnQkFDRCxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLHdFQUF3RTtnQkFDeEUsd0VBQXdFO2dCQUN4RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDbEYsaUdBQWlHO2dCQUNqRyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDMUMsTUFBTSw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDN0UsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNsQixDQUFDO2dCQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztnQkFDM0IsZUFBZSxHQUFHLFNBQVMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO2dCQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ25GLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksWUFBcUIsQ0FBQztnQkFDMUIsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDO3dCQUNILHFFQUFxRTt3QkFDckUsTUFBTSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO29CQUNqQyxDQUFDO29CQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7d0JBQ2xCLFlBQVksR0FBRyxRQUFRLENBQUM7b0JBQzFCLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDcEYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsOENBQThDLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLElBQUkseUJBQXlCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQzdFLENBQUMsQ0FBQyx1RUFBdUU7d0JBQ3pFLENBQUMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELE1BQU0sVUFBVSxHQUFHLElBQUkseUJBQXlCLENBQUMsdUJBQXVCLEVBQ3RFLG9DQUFvQyxFQUNwQyxFQUFFLEtBQUssRUFBRSw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLFlBQVk7b0JBQUUsTUFBTSxJQUFJLGNBQWMsQ0FDeEMsQ0FBQyxVQUFVLEVBQUUsOEJBQThCLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQ3RFLHVFQUF1RSxDQUFDLENBQUM7Z0JBQzNFLE1BQU0sVUFBVSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQTJCLEVBQUU7UUFDeEQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVGLE1BQU0sTUFBTSxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO1FBQzdCLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMvRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBYyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDO2dCQUNILE1BQU0sWUFBWSxHQUFHLDJCQUEyQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDakYsNEVBQTRFO2dCQUM1RSxxRUFBcUU7Z0JBQ3JFLDBFQUEwRTtnQkFDMUUsd0JBQXdCO2dCQUN4QixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLE1BQU07b0JBQUUsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLFlBQVksQ0FBQztZQUNyQixDQUFDO1lBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsV0FBVyxDQUFDLElBQUksQ0FDZCxHQUFHLENBQUMsd0NBQXdDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUN0RSxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQztvQkFDSCxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDdEYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dCQUNyQixNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2Qiw2REFBNkQsQ0FDOUQsQ0FBQztvQkFDSixDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQztvQkFDSCxJQUFJLE1BQU07d0JBQUUsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUNoRCxtRkFBbUY7b0JBQ25GLE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO29CQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztvQkFDL0IsSUFBSSxPQUFPLENBQUMsTUFBTTt3QkFBRSxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO2dCQUNqQyxDQUFDO2dCQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7b0JBQ2xCLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDOUQsQ0FBQyxDQUFDLDJCQUEyQixDQUMzQix3RUFBd0UsQ0FBQzt3QkFDM0UsQ0FBQyxDQUFDLElBQUkseUJBQXlCLENBQUMsdUJBQXVCLEVBQ3JELDJEQUEyRCxDQUFDLENBQUM7Z0JBQ25FLENBQUM7Z0JBQ0QsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUM3QixNQUFNLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsQ0FBQztnQkFDRCxNQUFNLElBQUksY0FBYyxDQUN0QixXQUFXLEVBQ1gsd0RBQXdELENBQ3pELENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLDhCQUE4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4RixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUN6QixVQUFVLEdBQStCLEVBQUU7UUFFM0MsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUkseUJBQXlCLENBQUM7UUFDcEUsSUFDRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1lBQ2hDLFNBQVMsSUFBSSxDQUFDO1lBQ2QsU0FBUyxHQUFHLHlCQUF5QixFQUNyQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyxrQkFBa0IsRUFDbEIsdUVBQXVFLHlCQUF5QixHQUFHLENBQ3BHLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDM0QsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLFFBQXVDLENBQUM7UUFDNUMsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FDOUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ1g7Z0JBQ0UsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLE1BQU07YUFDUCxDQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELElBQ0UsSUFBSSxDQUFDLGNBQWMsS0FBSyxjQUFjO2dCQUN0QyxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU87Z0JBQ3hCLElBQUksQ0FBQyxhQUFhLEtBQUssYUFBYSxFQUNwQyxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUNoQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxhQUFhLEVBQ25ELFNBQVMsQ0FDVixDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksS0FBSyxZQUFZLE9BQU8sQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztnQkFDaEUsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELElBQ0UsSUFBSSxDQUFDLGNBQWMsS0FBSyxjQUFjO1lBQ3RDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztZQUN4QixJQUFJLENBQUMsYUFBYSxLQUFLLGFBQWEsRUFDcEMsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUNoQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsSUFBSSxhQUFhLEVBQ25ELFNBQVMsQ0FDVixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTO1NBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxhQUFhLENBQUMsVUFBMEM7UUFDN0QsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQ3JCLEtBQXVDO1FBRXZDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQUMsc0JBQXNCLENBQ2pDLFVBQVUsR0FBNEMsRUFBRTtRQUV4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHO1lBQ2QsU0FBUyxFQUFFLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxrQ0FBa0MsQ0FBQztZQUNuRixNQUFNLEVBQUUsc0JBQXNCLENBQUMsTUFBTSxFQUFFLCtCQUErQixDQUFDO1NBQ3hFLENBQUM7UUFDRiwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUNuRCxJQUFJLENBQUM7WUFDSCxNQUFNLCtCQUErQixDQUFDLElBQUksRUFBRTtnQkFDMUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDNUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNwRSxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sMkJBQTJCLENBQUMsZ0VBQWdFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEgsQ0FBQztZQUNELE1BQU0sUUFBUSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0kseUJBQXlCO1FBQzlCLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsc0ZBQXNGO0lBQy9FLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsVUFBaUQ7UUFFakQsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGlHQUFpRztJQUMxRixLQUFLLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUNqRCxZQUFnRztRQUVoRyxJQUNFLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVztZQUNuQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFDM0IsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNiLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFDMUMsQ0FBQztZQUNELE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLGtFQUFrRSxDQUNuRSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxFQUFFLENBQy9CLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVztZQUNuQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFDM0IsSUFBSSxDQUFDLGNBQWMsS0FBSyxjQUFjO1lBQ3RDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztZQUN4QixJQUFJLENBQUMsYUFBYSxLQUFLLGFBQWE7WUFDcEMsT0FBTyxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQUM7UUFDbkMsSUFBSSxNQUFlLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7b0JBQzNCLE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyx1QkFBdUIsRUFBRSxnREFBZ0QsQ0FBQyxDQUFDO2dCQUNqSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyx1QkFBdUIsRUFDdkIscUVBQXFFLENBQ3RFLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyx1QkFBdUIsRUFDdkIsd0NBQXdDLENBQ3pDLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2QixxRUFBcUUsQ0FDdEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQscUNBQXFDO0lBRTlCLGFBQWEsQ0FBQyxzQkFBZ0Q7UUFDbkUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLDRCQUE0QixDQUFJLE9BQWU7UUFDMUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1lBQ25GLE9BQU8sVUFBVSxDQUFDLGNBQWMsS0FBSyxPQUFPLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxZQUE0QztRQUMxRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLFlBQVksQ0FBQztJQUMvQyxDQUFDO0lBRU8sZ0NBQWdDLENBQ3RDLFlBQTRDO1FBRTVDLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyx1QkFBdUIsRUFDdkIsbUNBQW1DLFlBQVksVUFBVSxJQUFJLENBQUMsd0JBQXdCLG9CQUFvQixDQUMzRyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQ0UsWUFBWSxLQUFLLE1BQU07WUFDdkIsQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVc7Z0JBQ2xDLElBQUksQ0FBQyxjQUFjLEtBQUssY0FBYyxDQUFDLEVBQ3pDLENBQUM7WUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2QixxRUFBcUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUM1RixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsVUFBa0M7UUFFbEMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQy9DLE9BQU8sQ0FBQyxZQUFZLEVBQ3BCLENBQUMsc0JBQXNCLENBQUMsRUFDeEIsZ0NBQWdDLENBQ2pDLENBQUM7UUFDRixNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDO1FBQ3RFLElBQ0UsT0FBTyxvQkFBb0IsS0FBSyxRQUFRO1lBQ3hDLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ2pDLG9CQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLG9CQUFvQixFQUNwRCxDQUFDO1lBQ0QsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyxrQkFBa0IsRUFDbEIsMkZBQTJGLENBQzVGLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFDRSxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVc7WUFDbkMsSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXO1lBQzNCLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDbkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNiLENBQUM7WUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2QixrRUFBa0UsQ0FDbkUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2QiwwREFBMEQsQ0FDM0QsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3BELElBQUksb0JBQW9CLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUkseUJBQXlCLENBQ2pDLGtCQUFrQixFQUNsQix1RUFBdUUsQ0FDeEUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztZQUM1RCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2Qix5RUFBeUUsQ0FDMUUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssZ0JBQWdCLENBQ3RCLFNBQXNDO1FBRXRDLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FDM0MsR0FBaUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDdkQsQ0FBQyxRQUFpQixFQUFnQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQ3pGLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFlBQTRDO1FBQ3hFLElBQUksSUFBSSxDQUFDLHdCQUF3QixLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxRQUFvQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLDJCQUEyQjtRQU1qQyxRQUFRLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM1QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxpQkFBaUIsQ0FBQztZQUMzQixLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxZQUFZLENBQUM7WUFDdEIsS0FBSyxtQkFBbUI7Z0JBQ3RCLE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsS0FBSyxTQUFTO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssV0FBVztnQkFDZCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUM1QixTQUEyQyxFQUMzQyxZQUFvQjtRQUVwQixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsYUFBYTtZQUNyQixNQUFNLEVBQUUsU0FBUztZQUNqQixVQUFVLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFlBQVk7U0FDN0MsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
@@ -698,7 +698,9 @@ export declare class SmartDataDbDoc<T extends TImplements, TImplements, TManager
698
698
  * unless the caller supplies a transaction session. With ordered semantics
699
699
  * (the default) MongoDB stops at the first failure; documents MongoDB
700
700
  * reports as inserted are marked database-backed even when the batch fails
701
- * part-way, so callers can compensate precisely.
701
+ * part-way, so callers can compensate precisely. On a database with active
702
+ * write revisions, a batch outside a transaction runs in one of its own and
703
+ * inserts every document or none.
702
704
  */
703
705
  static insertMany<T extends SmartDataDbDoc<any, any>>(this: plugins.tsclass.typeFest.Class<T>, documentsArg: T[], opts?: {
704
706
  session?: TSmartdataOrdinarySession;