@lossless.org/client 1.6.0 → 1.8.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 (51) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/nosqldb/classes.atomicdelete.d.ts +1 -0
  3. package/dist_ts/nosqldb/classes.atomicdelete.js +10 -7
  4. package/dist_ts/nosqldb/classes.atomicfindoneandupdate.d.ts +2 -0
  5. package/dist_ts/nosqldb/classes.atomicfindoneandupdate.js +9 -5
  6. package/dist_ts/nosqldb/classes.atomicupdate.d.ts +2 -0
  7. package/dist_ts/nosqldb/classes.atomicupdate.js +13 -8
  8. package/dist_ts/nosqldb/classes.collection.d.ts +13 -4
  9. package/dist_ts/nosqldb/classes.collection.js +57 -64
  10. package/dist_ts/nosqldb/classes.db.d.ts +1 -1
  11. package/dist_ts/nosqldb/classes.doc.d.ts +60 -3
  12. package/dist_ts/nosqldb/classes.doc.js +68 -26
  13. package/dist_ts/nosqldb/classes.exactpersistence.d.ts +36 -7
  14. package/dist_ts/nosqldb/classes.exactpersistence.js +92 -81
  15. package/dist_ts/nosqldb/classes.operationdeadline.d.ts +61 -0
  16. package/dist_ts/nosqldb/classes.operationdeadline.js +149 -0
  17. package/dist_ts/nosqldb/classes.persistence.d.ts +16 -1
  18. package/dist_ts/nosqldb/classes.persistence.js +20 -1
  19. package/dist_ts/nosqldb/classes.session.d.ts +73 -2
  20. package/dist_ts/nosqldb/classes.session.js +164 -38
  21. package/dist_ts/objectstorage/classes.bucket.d.ts +61 -3
  22. package/dist_ts/objectstorage/classes.bucket.js +243 -184
  23. package/dist_ts/objectstorage/classes.directory.js +17 -28
  24. package/dist_ts/objectstorage/classes.smartbucket.d.ts +13 -6
  25. package/dist_ts/objectstorage/classes.smartbucket.js +18 -12
  26. package/dist_ts/objectstorage/classes.watcher.js +1 -2
  27. package/dist_ts/objectstorage/interfaces.d.ts +8 -0
  28. package/dist_ts/objectstorage/internal.bucketrequests.d.ts +14 -0
  29. package/dist_ts/objectstorage/internal.bucketrequests.js +53 -0
  30. package/dist_ts/objectstorage/internal.exactupload.capability.d.ts +12 -0
  31. package/dist_ts/objectstorage/internal.exactupload.capability.js +46 -17
  32. package/package.json +3 -3
  33. package/readme.md +13 -2
  34. package/ts/00_commitinfo_data.ts +1 -1
  35. package/ts/nosqldb/classes.atomicdelete.ts +10 -6
  36. package/ts/nosqldb/classes.atomicfindoneandupdate.ts +10 -4
  37. package/ts/nosqldb/classes.atomicupdate.ts +14 -7
  38. package/ts/nosqldb/classes.collection.ts +82 -73
  39. package/ts/nosqldb/classes.db.ts +1 -1
  40. package/ts/nosqldb/classes.doc.ts +162 -33
  41. package/ts/nosqldb/classes.exactpersistence.ts +131 -93
  42. package/ts/nosqldb/classes.operationdeadline.ts +179 -0
  43. package/ts/nosqldb/classes.persistence.ts +36 -1
  44. package/ts/nosqldb/classes.session.ts +221 -39
  45. package/ts/objectstorage/classes.bucket.ts +350 -218
  46. package/ts/objectstorage/classes.directory.ts +18 -27
  47. package/ts/objectstorage/classes.smartbucket.ts +21 -11
  48. package/ts/objectstorage/classes.watcher.ts +0 -1
  49. package/ts/objectstorage/interfaces.ts +9 -0
  50. package/ts/objectstorage/internal.bucketrequests.ts +70 -0
  51. package/ts/objectstorage/internal.exactupload.capability.ts +105 -24
@@ -73,7 +73,21 @@ export interface IExactSessionOptions {
73
73
  export interface IExactReadOptions extends IExactSessionOptions {
74
74
  signal?: AbortSignal;
75
75
  }
76
- export interface IFindStoredOptions<TPersisted extends object> extends IExactReadOptions {
76
+ /**
77
+ * Options of every exact call: `insert()`, `transition()`, `delete()`,
78
+ * `count()`, `distinct()` and `findStoredOne()`, and through
79
+ * `IFindStoredOptions` `findStored()`.
80
+ */
81
+ export interface IExactBoundedOptions extends IExactReadOptions {
82
+ /**
83
+ * Client deadline (1..120000 ms), handed to the driver as its client-side
84
+ * operation timeout for every command of the call, including the wait for
85
+ * the lazy first-touch preparation. Inside a transaction with a deadline it
86
+ * is refused; the transaction's deadline bounds the call.
87
+ */
88
+ timeoutMS?: number;
89
+ }
90
+ export interface IFindStoredOptions<TPersisted extends object> extends IExactBoundedOptions {
77
91
  filter?: MongoFilter<TStoredDocument<TPersisted>>;
78
92
  sort?: Partial<Record<TExactDocumentPath<TStoredDocument<TPersisted>>, 1 | -1>>;
79
93
  skip?: number;
@@ -102,7 +116,22 @@ export declare class SmartdataExactCollection<TModel extends SmartDataDbDoc<any,
102
116
  private initializeOnce;
103
117
  prepare(): Promise<void>;
104
118
  private beginOperation;
119
+ /**
120
+ * Runs one exact call on its session lease under its client deadline and
121
+ * signal. A signal that is already aborted rejects with its reason before
122
+ * anything is sent. An expired driver deadline surfaces as the `timeout`
123
+ * persistence error; a write the deadline or signal interrupts in flight
124
+ * is reported by the write itself as `ambiguous_write`, and inside a
125
+ * transaction any interruption fails the attempt.
126
+ */
105
127
  private runOperation;
128
+ /**
129
+ * The error of a non-transactional write that its client deadline or
130
+ * signal interrupted after the write was handed to the driver: the command
131
+ * may have reached the database, so its outcome is unknown and no
132
+ * reconciliation read runs on the interrupted call's budget.
133
+ */
134
+ private interruptedWriteError;
106
135
  private canonicalizeDocument;
107
136
  private assertAllowedTopLevelKeys;
108
137
  private canonicalizePersistedDocument;
@@ -119,20 +148,20 @@ export declare class SmartdataExactCollection<TModel extends SmartDataDbDoc<any,
119
148
  private ambiguousWriteError;
120
149
  private canonicalizeDeleteCurrent;
121
150
  private reconcileDeleteOutcome;
122
- insert(documentArg: TModel | TExactPersistedDocument<TPersisted>, optionsArg?: IExactSessionOptions): Promise<TExactInsertResult<TPersisted>>;
151
+ insert(documentArg: TModel | TExactPersistedDocument<TPersisted>, optionsArg?: IExactBoundedOptions): Promise<TExactInsertResult<TPersisted>>;
123
152
  toPersisted(storedDocumentArg: TStoredDocument<TPersisted>): TExactPersistedDocument<TPersisted>;
124
153
  canonicalBytes(persistedDocumentArg: TExactPersistedDocument<TPersisted>): Uint8Array;
125
- findStoredOne(filterArg: MongoFilter<TStoredDocument<TPersisted>>, optionsArg?: IExactReadOptions): Promise<TStoredDocument<TPersisted> | null>;
154
+ findStoredOne(filterArg: MongoFilter<TStoredDocument<TPersisted>>, optionsArg?: IExactBoundedOptions): Promise<TStoredDocument<TPersisted> | null>;
126
155
  findStored(optionsArg?: IFindStoredOptions<TPersisted>): Promise<Array<TStoredDocument<TPersisted>>>;
127
- count(filterArg?: MongoFilter<TStoredDocument<TPersisted>>, optionsArg?: IExactSessionOptions): Promise<number>;
128
- distinct<TField extends TExactDocumentPath<TStoredDocument<TPersisted>>>(fieldArg: TField, filterArg?: MongoFilter<TStoredDocument<TPersisted>>, optionsArg?: IExactSessionOptions): Promise<Array<TExactDistinctValue<TExactDocumentPathValue<TStoredDocument<TPersisted>, TField>>>>;
156
+ count(filterArg?: MongoFilter<TStoredDocument<TPersisted>>, optionsArg?: IExactBoundedOptions): Promise<number>;
157
+ distinct<TField extends TExactDocumentPath<TStoredDocument<TPersisted>>>(fieldArg: TField, filterArg?: MongoFilter<TStoredDocument<TPersisted>>, optionsArg?: IExactBoundedOptions): Promise<Array<TExactDistinctValue<TExactDocumentPathValue<TStoredDocument<TPersisted>, TField>>>>;
129
158
  transition(optionsArg: {
130
159
  current: TStoredDocument<TPersisted>;
131
160
  change: (modelArg: TModel) => void;
132
- }, sessionOptionsArg?: IExactSessionOptions): Promise<TExactTransitionResult<TPersisted>>;
161
+ }, sessionOptionsArg?: IExactBoundedOptions): Promise<TExactTransitionResult<TPersisted>>;
133
162
  delete(optionsArg: {
134
163
  current: TStoredDocument<TPersisted>;
135
- }, sessionOptionsArg?: IExactSessionOptions): Promise<TExactDeleteResult>;
164
+ }, sessionOptionsArg?: IExactBoundedOptions): Promise<TExactDeleteResult>;
136
165
  }
137
166
  export declare function exactPersistence<TAssertion extends TExactDocumentAssertion<object>>(optionsArg: {
138
167
  assertDocument: TAssertion;