@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.
- package/CHANGELOG.md +22 -0
- package/dist/src/Columns.d.ts +12 -6
- package/dist/src/Columns.d.ts.map +1 -1
- package/dist/src/Columns.js +40 -65
- package/dist/src/Columns.js.map +1 -1
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Db.js +2 -5
- package/dist/src/Db.js.map +1 -1
- package/dist/src/Record.d.ts +35 -0
- package/dist/src/Record.d.ts.map +1 -1
- package/dist/src/Record.js +177 -45
- package/dist/src/Record.js.map +1 -1
- package/dist/src/Table.d.ts +18 -1
- package/dist/src/Table.d.ts.map +1 -1
- package/dist/src/encryption/EncryptionRecordHooks.d.ts +9 -4
- package/dist/src/encryption/EncryptionRecordHooks.d.ts.map +1 -1
- package/dist/src/encryption/EncryptionRecordHooks.js +65 -42
- package/dist/src/encryption/EncryptionRecordHooks.js.map +1 -1
- package/dist/test/DateTimeFieldReadOnFirstRead.test.d.ts +2 -0
- package/dist/test/DateTimeFieldReadOnFirstRead.test.d.ts.map +1 -0
- package/dist/test/DateTimeFieldReadOnFirstRead.test.js +238 -0
- package/dist/test/DateTimeFieldReadOnFirstRead.test.js.map +1 -0
- package/dist/test/HydrationBenchmark.test.d.ts +2 -0
- package/dist/test/HydrationBenchmark.test.d.ts.map +1 -0
- package/dist/test/HydrationBenchmark.test.js +299 -0
- package/dist/test/HydrationBenchmark.test.js.map +1 -0
- package/dist/test/LegacyCellHydration.test.d.ts +2 -0
- package/dist/test/LegacyCellHydration.test.d.ts.map +1 -0
- package/dist/test/LegacyCellHydration.test.js +321 -0
- package/dist/test/LegacyCellHydration.test.js.map +1 -0
- package/dist/test/SyncRowHydration.test.d.ts +2 -0
- package/dist/test/SyncRowHydration.test.d.ts.map +1 -0
- package/dist/test/SyncRowHydration.test.js +344 -0
- package/dist/test/SyncRowHydration.test.js.map +1 -0
- package/dist/test/reusable/ColumnTypesTests.d.ts.map +1 -1
- package/dist/test/reusable/ColumnTypesTests.js +55 -0
- package/dist/test/reusable/ColumnTypesTests.js.map +1 -1
- package/package.json +2 -2
- package/src/Columns.ts +14 -7
- package/src/Db.ts +3 -4
- package/src/Record.ts +202 -16
- package/src/Table.ts +21 -1
- package/src/encryption/EncryptionRecordHooks.ts +48 -17
- package/test/DateTimeFieldReadOnFirstRead.test.ts +162 -0
- package/test/HydrationBenchmark.test.ts +209 -0
- package/test/LegacyCellHydration.test.ts +234 -0
- package/test/SyncRowHydration.test.ts +249 -0
- package/test/reusable/ColumnTypesTests.ts +47 -1
package/dist/src/Record.js
CHANGED
|
@@ -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
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
case
|
|
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;
|
package/dist/src/Record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Record.js","sourceRoot":"","sources":["../../src/Record.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,qCAAuD;AAEvD,uCAAsC;
|
|
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"}
|
package/dist/src/Table.d.ts
CHANGED
|
@@ -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
|
-
|
|
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)
|
package/dist/src/Table.d.ts.map
CHANGED
|
@@ -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
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
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;
|
|
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
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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,
|
|
212
|
-
var prop =
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2DAAyF;AACzF,uDAAsD;AACtD,2DAA0D;AAC1D,+CAA+D;AAC/D,qDAAoD;
|
|
1
|
+
{"version":3,"file":"EncryptionRecordHooks.js","sourceRoot":"","sources":["../../../src/encryption/EncryptionRecordHooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2DAAyF;AACzF,uDAAsD;AACtD,2DAA0D;AAC1D,+CAA+D;AAC/D,qDAAoD;AAQpD;;;;;;;;;;;;;;;;;GAiBG;AACH;IAAA;QACU,qBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;QAC1C,aAAQ,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACpC,cAAS,GAAG,IAAI,iCAAe,EAAE,CAAC;IAkK5C,CAAC;IA/JC,8FAA8F;IACxF,2CAAW,GAAjB,UAAkB,KAAiB,EAAE,UAA4B,EAAE,OAAgC;;;;;;wBACjG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpC,YAAY,GAAG,IAAI,CAAC,gBAAgB;6BACvC,cAAc,CAAC,KAAK,CAAC;6BACrB,MAAM,CAAC,UAAC,IAAI,IAAK,OAAE,KAAK,CAAC,OAAe,CAAC,IAAI,CAAsB,CAAC,IAAI,IAAI,UAAU,EAArE,CAAqE,CAAC,CAAC;wBAC3F,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC7B,sBAAO;yBACR;wBAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;8BAEO,EAAZ,6BAAY;;;6BAAZ,CAAA,0BAAY,CAAA;wBAApB,IAAI;wBACP,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAE,CAAC;wBACvD,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,KAAK,KAAK,IAAI,EAAE;4BAClB,+EAA+E;4BAC/E,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;gCACpC,UAAU,CAAC,UAAG,MAAM,CAAC,IAAI,YAAS,CAAC,GAAG,IAAI,CAAC;6BAC5C;4BACD,IAAI,MAAM,CAAC,OAAO,EAAE;gCAClB,UAAU,CAAC,UAAG,MAAM,CAAC,IAAI,aAAU,CAAC,GAAG,IAAI,CAAC;6BAC7C;4BACD,wBAAS;yBACV;wBAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;4BAC7B,MAAM,IAAI,+CAA0B,CAClC,WAAI,KAAK,CAAC,IAAI,cAAI,IAAI,qDAAkD;gCACtE,cAAO,OAAO,KAAK,2DAAwD,CAC9E,CAAC;yBACH;6BAEG,CAAC,QAAQ,EAAT,wBAAS;wBACX,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,EAAE;4BACtB,MAAM,IAAI,+CAA0B,CAClC,WAAI,KAAK,CAAC,IAAI,iDAAuC,IAAI,4BAAyB;gCAChF,2EAA2E;gCAC3E,mEAAmE,CACtE,CAAC;yBACH;wBACU,qBAAM,IAAI,2BAAY,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAA;;wBAAjE,QAAQ,GAAG,SAAsD,CAAC;;;wBAGpE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBACjE,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;4BACpC,UAAU,CAAC,UAAG,MAAM,CAAC,IAAI,YAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;yBACpG;wBACD,IAAI,MAAM,CAAC,OAAO,EAAE;4BAClB,UAAU,CAAC,UAAG,MAAM,CAAC,IAAI,aAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;yBACtG;;;wBAvCgB,IAAY,CAAA;;;;;;KAyChC;IAED;;;;;;OAMG;IACH,6CAAa,GAAb,UAAc,KAAiB,EAAE,gBAAkC;QACjE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,SAAqC,CAAC;QAC1C,KAAK,IAAM,UAAU,IAAI,gBAAgB,EAAE;YACzC,IAAI,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACvC,aAAa,GAAG,IAAI,CAAC;gBACrB,SAAS;aACV;YAED,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;YACjE,IAAI,MAAM,EAAE;gBACV,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,EAAE,EAAC,CAAC,IAAI,CAAC,EAAE,UAAU,YAAA,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;aACvF;SACF;QAED,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE;YAChC,OAAO,gBAAgB,CAAC;SACzB;QAED,IAAM,QAAQ,GAAqB,EAAE,CAAC;QACtC,KAAK,IAAM,UAAU,IAAI,gBAAgB,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACxC,QAAQ,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;aACrD;SACF;QAED,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,QAAQ,CAAC;SACjB;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACG,uDAAuB,GAA7B,UAA8B,KAAiB,EAAE,MAAW;;;;;;wBACpD,MAAM,GAAG,IAAA,0CAAqB,GAAE,CAAC;6BACnC,MAAM,CAAC,eAAe,EAAtB,wBAAsB;wBACV,qBAAM,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,EAAA;;wBAAvD,KAAK,GAAG,SAA+C;wBAC7D,IAAI,KAAK,EAAE;4BACT,sBAAO,KAAK,EAAC;yBACd;;;wBAGH,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC/D,sBAAO,MAAM,CAAC,KAAK,EAAC;yBACrB;wBAED,MAAM,IAAI,+CAA0B,CAClC,WAAI,KAAK,CAAC,IAAI,gFAA6E;4BACzF,oFAAoF;4BACpF,iFAAiF,CACpF,CAAC;;;;KACH;IAEa,2CAAW,GAAzB,UAA0B,QAA0B,EAAE,SAAyB;;;;;;8BACjD,EAAT,uBAAS;;;6BAAT,CAAA,uBAAS,CAAA;wBAAjB,IAAI;wBACD,qBAAM,IAAI,2BAAY,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAA;;wBAAxE,GAAG,GAAG,SAAkE;wBAC9E,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAW,EAAE,GAAG,CAAC,CAAC;;;wBAF3E,IAAS,CAAA;;4BAK5B,sBAAO,QAAQ,EAAC;;;;KACjB;IAED,gHAAgH;IACxG,mDAAmB,GAA3B,UAA4B,KAAiB;;QAC3C,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,KAAK,MAAK,KAAK,EAAE;YACvC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACjC;QAED,IAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,KAAmB,UAA0B,EAA1B,KAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAA1B,cAA0B,EAA1B,IAA0B,EAAE;YAA1C,IAAM,IAAI,SAAA;YACb,IAAM,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;gBAClD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;QAED,IAAI,CAAC,aAAa,GAAG,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,gDAAgB,GAAxB;QACE,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb,sFAAsF;gBACpF,gDAAgD,CACnD,CAAC;SACH;IACH,CAAC;IACH,4BAAC;AAAD,CAAC,AArKD,IAqKC;AArKY,sDAAqB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeFieldReadOnFirstRead.test.d.ts","sourceRoot":"","sources":["../../test/DateTimeFieldReadOnFirstRead.test.ts"],"names":[],"mappings":"AAcA,OAAO,cAAc,CAAC"}
|