@proteinjs/db 1.54.1 → 1.54.3

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 (48) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/src/Columns.d.ts +12 -6
  3. package/dist/src/Columns.d.ts.map +1 -1
  4. package/dist/src/Columns.js +40 -65
  5. package/dist/src/Columns.js.map +1 -1
  6. package/dist/src/Db.d.ts.map +1 -1
  7. package/dist/src/Db.js +2 -5
  8. package/dist/src/Db.js.map +1 -1
  9. package/dist/src/Record.d.ts +35 -0
  10. package/dist/src/Record.d.ts.map +1 -1
  11. package/dist/src/Record.js +177 -45
  12. package/dist/src/Record.js.map +1 -1
  13. package/dist/src/Table.d.ts +18 -1
  14. package/dist/src/Table.d.ts.map +1 -1
  15. package/dist/src/encryption/EncryptionRecordHooks.d.ts +9 -4
  16. package/dist/src/encryption/EncryptionRecordHooks.d.ts.map +1 -1
  17. package/dist/src/encryption/EncryptionRecordHooks.js +65 -42
  18. package/dist/src/encryption/EncryptionRecordHooks.js.map +1 -1
  19. package/dist/test/DateTimeFieldReadOnFirstRead.test.d.ts +2 -0
  20. package/dist/test/DateTimeFieldReadOnFirstRead.test.d.ts.map +1 -0
  21. package/dist/test/DateTimeFieldReadOnFirstRead.test.js +238 -0
  22. package/dist/test/DateTimeFieldReadOnFirstRead.test.js.map +1 -0
  23. package/dist/test/HydrationBenchmark.test.d.ts +2 -0
  24. package/dist/test/HydrationBenchmark.test.d.ts.map +1 -0
  25. package/dist/test/HydrationBenchmark.test.js +299 -0
  26. package/dist/test/HydrationBenchmark.test.js.map +1 -0
  27. package/dist/test/LegacyCellHydration.test.d.ts +2 -0
  28. package/dist/test/LegacyCellHydration.test.d.ts.map +1 -0
  29. package/dist/test/LegacyCellHydration.test.js +321 -0
  30. package/dist/test/LegacyCellHydration.test.js.map +1 -0
  31. package/dist/test/SyncRowHydration.test.d.ts +2 -0
  32. package/dist/test/SyncRowHydration.test.d.ts.map +1 -0
  33. package/dist/test/SyncRowHydration.test.js +344 -0
  34. package/dist/test/SyncRowHydration.test.js.map +1 -0
  35. package/dist/test/reusable/ColumnTypesTests.d.ts.map +1 -1
  36. package/dist/test/reusable/ColumnTypesTests.js +55 -0
  37. package/dist/test/reusable/ColumnTypesTests.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/Columns.ts +14 -7
  40. package/src/Db.ts +3 -4
  41. package/src/Record.ts +202 -16
  42. package/src/Table.ts +21 -1
  43. package/src/encryption/EncryptionRecordHooks.ts +48 -17
  44. package/test/DateTimeFieldReadOnFirstRead.test.ts +162 -0
  45. package/test/HydrationBenchmark.test.ts +209 -0
  46. package/test/LegacyCellHydration.test.ts +234 -0
  47. package/test/SyncRowHydration.test.ts +249 -0
  48. package/test/reusable/ColumnTypesTests.ts +47 -1
@@ -186,57 +186,189 @@ var RecordSerializer = /** @class */ (function () {
186
186
  });
187
187
  });
188
188
  };
189
+ /**
190
+ * A result set's rows → records, in ONE pass. A row whose hook and columns all answer directly
191
+ * is hydrated synchronously, and when every row did the array returns synchronously: no promise
192
+ * per row, no yield of the event loop between rows. A row that needs an await — a ciphertext
193
+ * envelope to decrypt, a column whose `deserialize` answers with a promise — settles through one
194
+ * promise for the whole set. The hook and the column seats are resolved once per serializer.
195
+ */
196
+ RecordSerializer.prototype.deserializeAll = function (serializedRecords) {
197
+ var plan = this.hydrationPlan();
198
+ var records = new Array(serializedRecords.length);
199
+ var settles = false;
200
+ for (var i = 0; i < serializedRecords.length; i++) {
201
+ var record = this.hydrate(plan, serializedRecords[i]);
202
+ if (this.isPromise(record)) {
203
+ settles = true;
204
+ }
205
+ records[i] = record;
206
+ }
207
+ return settles ? Promise.all(records) : records;
208
+ };
209
+ /** One row → one record (`deserializeAll` is the door for a result set). */
189
210
  RecordSerializer.prototype.deserialize = function (serializedRecord) {
190
211
  return __awaiter(this, void 0, void 0, function () {
191
- var EncryptionRecordHooks, prepared, deserialized, fieldSerializer, omittedFields, _a, _b, _c, _i, columnName, serializedFieldValue, _d, fieldPropertyName, fieldValue, MissingFieldError_2;
192
- return __generator(this, function (_e) {
193
- switch (_e.label) {
194
- case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require('./encryption/EncryptionRecordHooks')); })];
195
- case 1:
196
- EncryptionRecordHooks = (_e.sent()).EncryptionRecordHooks;
197
- return [4 /*yield*/, new EncryptionRecordHooks().onDeserialize(this.table, serializedRecord)];
198
- case 2:
199
- prepared = _e.sent();
200
- deserialized = {};
201
- fieldSerializer = new FieldSerializer(this.table);
202
- omittedFields = [];
203
- _a = prepared;
204
- _b = [];
205
- for (_c in _a)
206
- _b.push(_c);
207
- _i = 0;
208
- _e.label = 3;
209
- case 3:
210
- if (!(_i < _b.length)) return [3 /*break*/, 8];
211
- _c = _b[_i];
212
- if (!(_c in _a)) return [3 /*break*/, 7];
213
- columnName = _c;
214
- serializedFieldValue = prepared[columnName];
215
- _e.label = 4;
216
- case 4:
217
- _e.trys.push([4, 6, , 7]);
218
- return [4 /*yield*/, fieldSerializer.deserialize(columnName, serializedFieldValue, prepared)];
219
- case 5:
220
- _d = _e.sent(), fieldPropertyName = _d.fieldPropertyName, fieldValue = _d.fieldValue;
221
- deserialized[fieldPropertyName] = fieldValue;
222
- return [3 /*break*/, 7];
223
- case 6:
224
- MissingFieldError_2 = _e.sent();
225
- omittedFields.push(columnName);
226
- return [3 /*break*/, 7];
227
- case 7:
228
- _i++;
229
- return [3 /*break*/, 3];
230
- case 8:
231
- if (omittedFields.length > 0) {
232
- // expected when passing a base table into the query api
233
- this.logger.debug({ message: "Fields were omitted during deserialization", obj: { omittedFields: omittedFields } });
234
- }
235
- return [2 /*return*/, deserialized];
212
+ return __generator(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0: return [4 /*yield*/, this.hydrate(this.hydrationPlan(), serializedRecord)];
215
+ case 1: return [2 /*return*/, _a.sent()];
236
216
  }
237
217
  });
238
218
  });
239
219
  };
220
+ RecordSerializer.prototype.hydrate = function (plan, serializedRecord) {
221
+ var _this = this;
222
+ // The transparent decryption seam: ciphertext envelopes decrypt (self-describing — the
223
+ // envelope names its key), framework companion columns drop out of the result. The hook
224
+ // answers directly for a row holding no envelope.
225
+ var prepared = plan.hooks.onDeserialize(this.table, serializedRecord);
226
+ if (this.isPromise(prepared)) {
227
+ return prepared.then(function (row) { return _this.hydratePrepared(plan, row); });
228
+ }
229
+ return this.hydratePrepared(plan, prepared);
230
+ };
231
+ RecordSerializer.prototype.hydratePrepared = function (plan, prepared) {
232
+ var _this = this;
233
+ var record = {};
234
+ var settling;
235
+ var omittedFields;
236
+ var _loop_1 = function (columnName) {
237
+ var slot = plan.slotsByColumnName[columnName];
238
+ if (!slot) {
239
+ // a column exists in the db that is no longer defined in Table.columns
240
+ (omittedFields !== null && omittedFields !== void 0 ? omittedFields : (omittedFields = [])).push(columnName);
241
+ return "continue";
242
+ }
243
+ var propertyName = slot.propertyName, column = slot.column;
244
+ var storedValue = prepared[columnName];
245
+ if (!column.deserialize) {
246
+ record[propertyName] = storedValue;
247
+ return "continue";
248
+ }
249
+ if (column.deserializeOnFirstRead && storedValue !== null && storedValue !== undefined) {
250
+ this_1.defineFieldReadOnFirstRead(record, propertyName, column, storedValue);
251
+ return "continue";
252
+ }
253
+ var fieldValue = void 0;
254
+ try {
255
+ fieldValue = column.deserialize(storedValue, prepared);
256
+ }
257
+ catch (error) {
258
+ this_1.omitCellNotDeserialized(columnName, prepared, error);
259
+ return "continue";
260
+ }
261
+ if (this_1.isPromise(fieldValue)) {
262
+ record[propertyName] = undefined; // seats the property in column order; the value lands when it settles
263
+ (settling !== null && settling !== void 0 ? settling : (settling = [])).push(fieldValue.then(function (value) {
264
+ record[propertyName] = value;
265
+ }, function (error) {
266
+ delete record[propertyName];
267
+ _this.omitCellNotDeserialized(columnName, prepared, error);
268
+ }));
269
+ return "continue";
270
+ }
271
+ record[propertyName] = fieldValue;
272
+ };
273
+ var this_1 = this;
274
+ for (var columnName in prepared) {
275
+ _loop_1(columnName);
276
+ }
277
+ if (omittedFields) {
278
+ // expected when passing a base table into the query api
279
+ this.logger.debug({ message: "Fields were omitted during deserialization", obj: { omittedFields: omittedFields } });
280
+ }
281
+ if (settling) {
282
+ return Promise.all(settling).then(function () { return record; });
283
+ }
284
+ return record;
285
+ };
286
+ /**
287
+ * The field as an own, enumerable property whose value is deserialized on its first read, once
288
+ * (`Column.deserializeOnFirstRead`); a write replaces it like any other field.
289
+ */
290
+ RecordSerializer.prototype.defineFieldReadOnFirstRead = function (record, propertyName, column, storedValue) {
291
+ var _this = this;
292
+ var value;
293
+ var read = false;
294
+ var omit = function (error) { return _this.omitCellNotDeserialized(column.name, record, error); };
295
+ Object.defineProperty(record, propertyName, {
296
+ enumerable: true,
297
+ configurable: true,
298
+ get: function () {
299
+ if (!read) {
300
+ read = true;
301
+ try {
302
+ value = column.deserialize(storedValue, undefined);
303
+ }
304
+ catch (error) {
305
+ delete record[propertyName];
306
+ omit(error);
307
+ }
308
+ }
309
+ return value;
310
+ },
311
+ set: function (next) {
312
+ value = next;
313
+ read = true;
314
+ },
315
+ });
316
+ };
317
+ RecordSerializer.prototype.hydrationPlan = function () {
318
+ if (this.plan) {
319
+ return this.plan;
320
+ }
321
+ // Required at call time — this module sits below the encryption machinery in the package's
322
+ // module graph (the seam `Table.ts` uses for the same reason).
323
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
324
+ var EncryptionRecordHooks = require('./encryption/EncryptionRecordHooks').EncryptionRecordHooks;
325
+ var slotsByColumnName = {};
326
+ var columns = this.table.columns;
327
+ // Seated by column name, then by property name — a stored key that is a property name
328
+ // resolves to that property's column first, as it always has.
329
+ for (var propertyName in columns) {
330
+ slotsByColumnName[columns[propertyName].name] = { propertyName: propertyName, column: columns[propertyName] };
331
+ }
332
+ for (var propertyName in columns) {
333
+ slotsByColumnName[propertyName] = { propertyName: propertyName, column: columns[propertyName] };
334
+ }
335
+ this.plan = { hooks: new EncryptionRecordHooks(), slotsByColumnName: slotsByColumnName };
336
+ return this.plan;
337
+ };
338
+ /**
339
+ * A stored cell the column cannot deserialize — a value written past the serializer, the way a
340
+ * hand-run statement or an older writer leaves it — never takes the row, the result set or the
341
+ * process with it. The field is omitted from the record (the law the per-row hydration held:
342
+ * `try { deserialize } catch { omit }`; what a reader of an optional field already takes as
343
+ * absent), and one warning per table and column per process names the table, the column and the
344
+ * first row seen — never the stored value, which the parser's own message quotes.
345
+ */
346
+ RecordSerializer.prototype.omitCellNotDeserialized = function (columnName, row, error) {
347
+ var cell = "".concat(this.table.name, ".").concat(columnName);
348
+ if (RecordSerializer.legacyCellsWarned.has(cell)) {
349
+ return;
350
+ }
351
+ RecordSerializer.legacyCellsWarned.add(cell);
352
+ this.logger.warn({
353
+ message: "A stored cell could not be deserialized; the field is omitted from the record",
354
+ obj: {
355
+ table: this.table.name,
356
+ column: columnName,
357
+ id: row['id'],
358
+ error: error instanceof Error ? error.name : typeof error,
359
+ },
360
+ });
361
+ };
362
+ RecordSerializer.prototype.isPromise = function (value) {
363
+ return typeof (value === null || value === void 0 ? void 0 : value.then) === 'function';
364
+ };
365
+ /**
366
+ * The table-and-column pairs whose stored cells have failed to deserialize in this process
367
+ * (`omitCellNotDeserialized`): each is warned once. A legacy cell is read again by every query
368
+ * that touches its row — a background sweep reads some rows every few seconds — and the warning
369
+ * is a schema fact, not a per-read event.
370
+ */
371
+ RecordSerializer.legacyCellsWarned = new Set();
240
372
  return RecordSerializer;
241
373
  }());
242
374
  exports.RecordSerializer = RecordSerializer;
@@ -1 +1 @@
1
- {"version":3,"file":"Record.js","sourceRoot":"","sources":["../../src/Record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Record.js","sourceRoot":"","sources":["../../src/Record.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,qCAAuD;AAEvD,uCAAsC;AAStC,SAAgB,cAAc,CAAC,MAAc;IAC3C,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;AACzE,CAAC;AAFD,wCAEC;AAED,IAAM,aAAa,GAAoB;IACrC,EAAE,EAAE,IAAI,oBAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;IAClD,OAAO,EAAE,IAAI,wBAAc,CAAC,SAAS,EAAE;QACrC,YAAY,EAAE;YAAY,sBAAA,IAAA,eAAM,GAAE,EAAA;iBAAA;KACnC,CAAC;IACF,OAAO,EAAE,IAAI,wBAAc,CAAC,SAAS,EAAE;QACrC,YAAY,EAAE;YAAY,sBAAA,IAAA,eAAM,GAAE,EAAA;iBAAA;QAClC,WAAW,EAAE;YAAY,sBAAA,IAAA,eAAM,GAAE,EAAA;iBAAA;KAClC,CAAC;CACH,CAAC;AAEF;IAAgC,qCAAK;IACnC,2BAAY,SAAiB,EAAE,SAAiB;QAAhD,YACE,kBAAM,gBAAS,SAAS,gCAAsB,SAAS,CAAE,CAAC,SAE3D;QADC,KAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;;IAClC,CAAC;IACH,wBAAC;AAAD,CAAC,AALD,CAAgC,KAAK,GAKpC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,OAAuC;IAEvC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAJD,8CAIC;AAuBD;IAaE,0BAAY,KAAe,EAAE,iBAA2C;QALhE,WAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAM3D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAEK,oCAAS,GAAf,UAAgB,MAAW;;;;;;wBACnB,UAAU,GAAQ,EAAE,CAAC;wBACrB,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClD,aAAa,GAAa,EAAE,CAAC;6BACH,MAAM;;;;;;;;;;;wBACpC,IAAI,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;4BACnD,wBAAS;yBACV;wBAEkB,qBAAM,MAAM,CAAC,iBAAiB,CAAC,EAAA;;wBAA5C,UAAU,GAAG,SAA+B;wBAClD,IAAI,UAAU,KAAK,SAAS,EAAE;4BACtB,wBAAwB,GAAG,qEAA8D,IAAI,CAAC,KAAK,CAAC,IAAI,cAAI,iBAAiB,CAAE,CAAC;4BACtI,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;yBAC3C;;;;wBAE8C,qBAAM,eAAe,CAAC,SAAS,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAA;;wBAArG,KAAuC,SAA8D,EAAnG,UAAU,gBAAA,EAAE,oBAAoB,0BAAA;wBACxC,UAAU,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC;;;;wBAE9C,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;;;;;wBAI1C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC5B,qEAAqE;4BACrE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,GAAG,EAAE,EAAE,aAAa,eAAA,EAAE,EAAE,CAAC,CAAC;yBACnG;wBAMiC,sFAAa,oCAAoC,QAAC;;wBAA5E,qBAAqB,GAAK,CAAA,SAAkD,CAAA,sBAAvD;wBAC7B,qBAAM,IAAI,qBAAqB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAA;;wBAA7F,SAA6F,CAAC;wBAC9F,sBAAO,UAAU,EAAC;;;;KACnB;IAED;;;;;;OAMG;IACH,yCAAc,GAAd,UAAe,iBAAqC;QAClD,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,IAAM,OAAO,GAAuB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC1B,OAAO,GAAG,IAAI,CAAC;aAChB;YACD,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;SACrB;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAe,CAAC;IAC3D,CAAC;IAED,4EAA4E;IACtE,sCAAW,GAAjB,UAAkB,gBAAkC;;;;4BAC3C,qBAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,gBAAgB,CAAC,EAAA;4BAAjE,sBAAO,SAA0D,EAAC;;;;KACnE;IAEO,kCAAO,GAAf,UAAgB,IAAmB,EAAE,gBAAkC;QAAvE,iBAUC;QATC,uFAAuF;QACvF,wFAAwF;QACxF,kDAAkD;QAClD,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,EAA/B,CAA+B,CAAC,CAAC;SAChE;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEO,0CAAe,GAAvB,UAAwB,IAAmB,EAAE,QAA0B;QAAvE,iBA6DC;QA5DC,IAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,IAAI,QAAqC,CAAC;QAC1C,IAAI,aAAmC,CAAC;gCAC7B,UAAU;YACnB,IAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE;gBACT,uEAAuE;gBACvE,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,IAAb,aAAa,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;aAEzC;YAEO,IAAA,YAAY,GAAa,IAAI,aAAjB,EAAE,MAAM,GAAK,IAAI,OAAT,CAAU;YACtC,IAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBACvB,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;;aAEpC;YAED,IAAI,MAAM,CAAC,sBAAsB,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;gBACtF,OAAK,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;;aAE5E;YAED,IAAI,UAAU,SAAS,CAAC;YACxB,IAAI;gBACF,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;aACxD;YAAC,OAAO,KAAK,EAAE;gBACd,OAAK,uBAAuB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;;aAE3D;YAED,IAAI,OAAK,SAAS,CAAC,UAAU,CAAC,EAAE;gBAC9B,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,sEAAsE;gBACxG,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,IAAR,QAAQ,GAAK,EAAE,EAAC,CAAC,IAAI,CACpB,UAAU,CAAC,IAAI,CACb,UAAC,KAAK;oBACJ,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC/B,CAAC,EACD,UAAC,KAAK;oBACJ,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC5B,KAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC,CACF,CACF,CAAC;;aAEH;YAED,MAAM,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;;;QA5CpC,KAAK,IAAM,UAAU,IAAI,QAAQ;oBAAtB,UAAU;SA6CpB;QAED,IAAI,aAAa,EAAE;YACjB,wDAAwD;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,GAAG,EAAE,EAAE,aAAa,eAAA,EAAE,EAAE,CAAC,CAAC;SACtG;QAED,IAAI,QAAQ,EAAE;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,MAAW,EAAX,CAAW,CAAC,CAAC;SACtD;QAED,OAAO,MAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACK,qDAA0B,GAAlC,UACE,MAAW,EACX,YAAoB,EACpB,MAAwB,EACxB,WAAoB;QAJtB,iBA8BC;QAxBC,IAAI,KAAc,CAAC;QACnB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAM,IAAI,GAAG,UAAC,KAAc,IAAK,OAAA,KAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAxD,CAAwD,CAAC;QAC1F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;YAC1C,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,GAAG;gBACD,IAAI,CAAC,IAAI,EAAE;oBACT,IAAI,GAAG,IAAI,CAAC;oBACZ,IAAI;wBACF,KAAK,GAAG,MAAM,CAAC,WAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;qBACrD;oBAAC,OAAO,KAAK,EAAE;wBACd,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC5B,IAAI,CAAC,KAAK,CAAC,CAAC;qBACb;iBACF;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;YACD,GAAG,YAAC,IAAa;gBACf,KAAK,GAAG,IAAI,CAAC;gBACb,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,wCAAa,GAArB;QACE,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO,IAAI,CAAC,IAAI,CAAC;SAClB;QAED,2FAA2F;QAC3F,+DAA+D;QAC/D,8DAA8D;QACtD,IAAA,qBAAqB,GAC3B,OAAO,CAAC,oCAAoC,CAAwD,sBADzE,CAC0E;QACvG,IAAM,iBAAiB,GAAuC,EAAE,CAAC;QACjE,IAAM,OAAO,GAAiD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACjF,sFAAsF;QACtF,8DAA8D;QAC9D,KAAK,IAAM,YAAY,IAAI,OAAO,EAAE;YAClC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,cAAA,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;SACjG;QACD,KAAK,IAAM,YAAY,IAAI,OAAO,EAAE;YAClC,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,cAAA,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;SACnF;QAED,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,qBAAqB,EAAE,EAAE,iBAAiB,mBAAA,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACK,kDAAuB,GAA/B,UAAgC,UAAkB,EAAE,GAAqB,EAAE,KAAc;QACvF,IAAM,IAAI,GAAG,UAAG,IAAI,CAAC,KAAK,CAAC,IAAI,cAAI,UAAU,CAAE,CAAC;QAChD,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAChD,OAAO;SACR;QAED,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,+EAA+E;YACxF,GAAG,EAAE;gBACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtB,MAAM,EAAE,UAAU;gBAClB,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAEO,oCAAS,GAAjB,UAAqB,KAAqB;QACxC,OAAO,OAAO,CAAC,KAA+C,aAA/C,KAAK,uBAAL,KAAK,CAA4C,IAAI,CAAA,KAAK,UAAU,CAAC;IACtF,CAAC;IApPD;;;;;OAKG;IACY,kCAAiB,GAAG,IAAI,GAAG,EAAU,AAApB,CAAqB;IA+OvD,uBAAC;CAAA,AAtPD,IAsPC;AAtPY,4CAAgB;AAwP7B;IACE,yBAAoB,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;IAAG,CAAC;IAEjC,mCAAS,GAAf,UAAgB,iBAAyB,EAAE,UAAe;;;;;;wBAClD,OAAO,GAAyC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;wBACnE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;wBAC1C,IAAI,CAAC,MAAM,EAAE;4BACX,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;yBACjE;wBAEG,oBAAoB,GAAG,UAAU,CAAC;6BAClC,MAAM,CAAC,SAAS,EAAhB,wBAAgB;wBACK,qBAAM,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAA;;wBAAzD,oBAAoB,GAAG,SAAkC,CAAC;;4BAG5D,sBAAO,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,oBAAoB,sBAAA,EAAE,EAAC;;;;KAC1D;IAEK,qCAAW,GAAjB,UAAkB,UAAkB,EAAE,oBAAyB,EAAE,gBAAkC;;;;;;wBAC3F,OAAO,GAAyC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;wBACrE,iBAAiB,GAAG,UAAU,CAAC;wBAC/B,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;wBACjC,IAAI,CAAC,MAAM,EAAE;4BACX,KAAW,kBAAkB,IAAI,OAAO,EAAE;gCAClC,WAAW,GAAI,IAAI,CAAC,KAAK,CAAC,OAAe,CAAC,kBAAkB,CAAC,CAAC;gCACpE,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE;oCACjD,iBAAiB,GAAG,kBAAkB,CAAC;oCACvC,MAAM,GAAG,WAAW,CAAC;oCACrB,MAAM;iCACP;6BACF;yBACF;wBAED,IAAI,CAAC,MAAM,EAAE;4BACX,8FAA8F;4BAC9F,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;yBACjE;wBAEG,UAAU,GAAG,oBAAoB,CAAC;6BAClC,MAAM,CAAC,WAAW,EAAlB,wBAAkB;wBACP,qBAAM,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EAAA;;wBAA7E,UAAU,GAAG,SAAgE,CAAC;;4BAGhF,sBAAO,EAAE,iBAAiB,mBAAA,EAAE,UAAU,YAAA,EAAE,EAAC;;;;KAC1C;IACH,sBAAC;AAAD,CAAC,AA7CD,IA6CC;AA7CY,0CAAe"}
@@ -176,7 +176,24 @@ export type Column<T, Serialized> = {
176
176
  oldName?: string;
177
177
  options?: ColumnOptions;
178
178
  serialize?: (fieldValue: T | null | undefined) => Promise<Serialized | null | undefined>;
179
- deserialize?: (serializedFieldValue: Serialized | null, serializedRecord: any) => Promise<T | null | void>;
179
+ /**
180
+ * The stored value → the field's value. Answers directly when building the value needs no
181
+ * await (every column this package ships does), or with a promise when it does: record
182
+ * hydration (`RecordSerializer.deserializeAll`) awaits only what comes back as a promise, so a
183
+ * result set whose rows all answer directly hydrates synchronously — no promise per row, no
184
+ * yield of the event loop between rows.
185
+ */
186
+ deserialize?: (serializedFieldValue: Serialized | null, serializedRecord: any) => T | null | void | Promise<T | null | void>;
187
+ /**
188
+ * When true, a hydrated record builds this column's field on the FIRST READ of the field, not
189
+ * at hydration: `deserialize` runs then, once, with the stored value alone (the row is not
190
+ * kept), so a deserializer under this flag reads nothing but its value and answers directly,
191
+ * never with a promise. For a pure, synchronous deserializer whose value costs more to build
192
+ * than to store and is often never read on a row — a DateTime column's moment. The record's
193
+ * shape is unchanged: the field is an own, enumerable property that reads as the deserialized
194
+ * value and takes a write like any other; a stored null reads null, undeferred.
195
+ */
196
+ deserializeOnFirstRead?: boolean;
180
197
  /**
181
198
  * The column's QUERY-side contract, paralleling `serialize`/`deserialize` on the storage
182
199
  * side: how uses of this column in a query (conditions, ORDER BY, aggregation, GROUP BY)
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
@@ -26,14 +26,17 @@ export declare class EncryptionRecordHooks {
26
26
  private encryptedColumns;
27
27
  private envelope;
28
28
  private tokenizer;
29
+ private internalNames?;
29
30
  /** Encrypt encrypted-column values in `serialized` (column-name-keyed) and add companions. */
30
31
  onSerialize(table: Table<any>, serialized: SerializedRecord, context?: EncryptionWriteContext): Promise<void>;
31
32
  /**
32
- * A copy of `serializedRecord` with framework companion columns dropped and every
33
- * envelope value decrypted (any column — self-describing ciphertext also covers the
34
- * decrypt-out transition, where the config no longer marks the column).
33
+ * `serializedRecord` with framework companion columns dropped and every envelope value
34
+ * decrypted (any column — self-describing ciphertext also covers the decrypt-out transition,
35
+ * where the config no longer marks the column). Answers directly — the row itself when
36
+ * nothing drops or decrypts, else a copy — unless an envelope must be decrypted: its key is
37
+ * read asynchronously, so the copy settles through a promise.
35
38
  */
36
- onDeserialize(table: Table<any>, serializedRecord: SerializedRecord): Promise<SerializedRecord>;
39
+ onDeserialize(table: Table<any>, serializedRecord: SerializedRecord): SerializedRecord | Promise<SerializedRecord>;
37
40
  /**
38
41
  * The key owner for a row being written — its permission-source scope owner:
39
42
  * `DbEncryptionConfig.resolveKeyOwner` when the deployment supplies one (richer sharing
@@ -41,6 +44,8 @@ export declare class EncryptionRecordHooks {
41
44
  * scope columns hold the owning user's id).
42
45
  */
43
46
  resolveKeyOwnerForWrite(table: Table<any>, record: any): Promise<string>;
47
+ private decryptInto;
48
+ /** The table's framework-derived companion column names — resolved once per table per instance, not per row. */
44
49
  private internalColumnNames;
45
50
  private assertServerSide;
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionRecordHooks.d.ts","sourceRoot":"","sources":["../../../src/encryption/EncryptionRecordHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAOlD,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAAyB;IAE1C,8FAA8F;IACxF,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDnH;;;;OAIG;IACG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0BrG;;;;;OAKG;IACG,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB9E,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;CAQzB"}
1
+ {"version":3,"file":"EncryptionRecordHooks.d.ts","sourceRoot":"","sources":["../../../src/encryption/EncryptionRecordHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAOlD,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAK1D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAA4C;IAElE,8FAA8F;IACxF,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDnH;;;;;;OAMG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoClH;;;;;OAKG;IACG,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;YAoBhE,WAAW;IASzB,gHAAgH;IAChH,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,gBAAgB;CAQzB"}
@@ -131,48 +131,41 @@ var EncryptionRecordHooks = /** @class */ (function () {
131
131
  });
132
132
  };
133
133
  /**
134
- * A copy of `serializedRecord` with framework companion columns dropped and every
135
- * envelope value decrypted (any column — self-describing ciphertext also covers the
136
- * decrypt-out transition, where the config no longer marks the column).
134
+ * `serializedRecord` with framework companion columns dropped and every envelope value
135
+ * decrypted (any column — self-describing ciphertext also covers the decrypt-out transition,
136
+ * where the config no longer marks the column). Answers directly — the row itself when
137
+ * nothing drops or decrypts, else a copy — unless an envelope must be decrypted: its key is
138
+ * read asynchronously, so the copy settles through a promise.
137
139
  */
138
140
  EncryptionRecordHooks.prototype.onDeserialize = function (table, serializedRecord) {
139
- return __awaiter(this, void 0, void 0, function () {
140
- var prepared, internalColumnNames, decrypted, _i, _a, columnName, value, parsed, key;
141
- return __generator(this, function (_b) {
142
- switch (_b.label) {
143
- case 0:
144
- this.encryptedColumns.ensureSchema(table);
145
- prepared = {};
146
- internalColumnNames = this.internalColumnNames(table);
147
- decrypted = false;
148
- _i = 0, _a = Object.keys(serializedRecord);
149
- _b.label = 1;
150
- case 1:
151
- if (!(_i < _a.length)) return [3 /*break*/, 4];
152
- columnName = _a[_i];
153
- if (internalColumnNames.has(columnName)) {
154
- return [3 /*break*/, 3];
155
- }
156
- value = serializedRecord[columnName];
157
- parsed = this.envelope.parse(value);
158
- if (!parsed) {
159
- prepared[columnName] = value;
160
- return [3 /*break*/, 3];
161
- }
162
- this.assertServerSide();
163
- return [4 /*yield*/, new DataKeyStore_1.DataKeyStore().getKeyByVersion(parsed.owner, parsed.version)];
164
- case 2:
165
- key = _b.sent();
166
- prepared[columnName] = this.envelope.decrypt(value, key);
167
- decrypted = true;
168
- _b.label = 3;
169
- case 3:
170
- _i++;
171
- return [3 /*break*/, 1];
172
- case 4: return [2 /*return*/, decrypted || internalColumnNames.size > 0 ? prepared : serializedRecord];
173
- }
174
- });
175
- });
141
+ this.encryptedColumns.ensureSchema(table);
142
+ var internalColumnNames = this.internalColumnNames(table);
143
+ var dropsInternal = false;
144
+ var envelopes;
145
+ for (var columnName in serializedRecord) {
146
+ if (internalColumnNames.has(columnName)) {
147
+ dropsInternal = true;
148
+ continue;
149
+ }
150
+ var parsed = this.envelope.parse(serializedRecord[columnName]);
151
+ if (parsed) {
152
+ (envelopes !== null && envelopes !== void 0 ? envelopes : (envelopes = [])).push({ columnName: columnName, owner: parsed.owner, version: parsed.version });
153
+ }
154
+ }
155
+ if (!dropsInternal && !envelopes) {
156
+ return serializedRecord;
157
+ }
158
+ var prepared = {};
159
+ for (var columnName in serializedRecord) {
160
+ if (!internalColumnNames.has(columnName)) {
161
+ prepared[columnName] = serializedRecord[columnName];
162
+ }
163
+ }
164
+ if (!envelopes) {
165
+ return prepared;
166
+ }
167
+ this.assertServerSide();
168
+ return this.decryptInto(prepared, envelopes);
176
169
  };
177
170
  /**
178
171
  * The key owner for a row being written — its permission-source scope owner:
@@ -206,15 +199,45 @@ var EncryptionRecordHooks = /** @class */ (function () {
206
199
  });
207
200
  });
208
201
  };
202
+ EncryptionRecordHooks.prototype.decryptInto = function (prepared, envelopes) {
203
+ return __awaiter(this, void 0, void 0, function () {
204
+ var _i, envelopes_1, cell, key;
205
+ return __generator(this, function (_a) {
206
+ switch (_a.label) {
207
+ case 0:
208
+ _i = 0, envelopes_1 = envelopes;
209
+ _a.label = 1;
210
+ case 1:
211
+ if (!(_i < envelopes_1.length)) return [3 /*break*/, 4];
212
+ cell = envelopes_1[_i];
213
+ return [4 /*yield*/, new DataKeyStore_1.DataKeyStore().getKeyByVersion(cell.owner, cell.version)];
214
+ case 2:
215
+ key = _a.sent();
216
+ prepared[cell.columnName] = this.envelope.decrypt(prepared[cell.columnName], key);
217
+ _a.label = 3;
218
+ case 3:
219
+ _i++;
220
+ return [3 /*break*/, 1];
221
+ case 4: return [2 /*return*/, prepared];
222
+ }
223
+ });
224
+ });
225
+ };
226
+ /** The table's framework-derived companion column names — resolved once per table per instance, not per row. */
209
227
  EncryptionRecordHooks.prototype.internalColumnNames = function (table) {
228
+ var _a;
229
+ if (((_a = this.internalNames) === null || _a === void 0 ? void 0 : _a.table) === table) {
230
+ return this.internalNames.names;
231
+ }
210
232
  var names = new Set();
211
- for (var _i = 0, _a = Object.keys(table.columns); _i < _a.length; _i++) {
212
- var prop = _a[_i];
233
+ for (var _i = 0, _b = Object.keys(table.columns); _i < _b.length; _i++) {
234
+ var prop = _b[_i];
213
235
  var column = table.columns[prop];
214
236
  if (this.encryptedColumns.isInternalColumn(column)) {
215
237
  names.add(column.name);
216
238
  }
217
239
  }
240
+ this.internalNames = { table: table, names: names };
218
241
  return names;
219
242
  };
220
243
  EncryptionRecordHooks.prototype.assertServerSide = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptionRecordHooks.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionRecordHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EncryptionRecordHooks.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionRecordHooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import '../src/Table';
2
+ //# sourceMappingURL=DateTimeFieldReadOnFirstRead.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeFieldReadOnFirstRead.test.d.ts","sourceRoot":"","sources":["../../test/DateTimeFieldReadOnFirstRead.test.ts"],"names":[],"mappings":"AAcA,OAAO,cAAc,CAAC"}