@proteinjs/db 1.35.1 → 1.36.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 (160) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/generated/index.d.ts.map +1 -1
  3. package/dist/generated/index.js +7 -1
  4. package/dist/generated/index.js.map +1 -1
  5. package/dist/generated/test/index.d.ts.map +1 -1
  6. package/dist/generated/test/index.js +7 -1
  7. package/dist/generated/test/index.js.map +1 -1
  8. package/dist/index.d.ts +15 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +15 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/src/Db.d.ts +25 -0
  13. package/dist/src/Db.d.ts.map +1 -1
  14. package/dist/src/Db.js +219 -22
  15. package/dist/src/Db.js.map +1 -1
  16. package/dist/src/Record.d.ts +7 -1
  17. package/dist/src/Record.d.ts.map +1 -1
  18. package/dist/src/Record.js +56 -21
  19. package/dist/src/Record.js.map +1 -1
  20. package/dist/src/Table.d.ts +82 -1
  21. package/dist/src/Table.d.ts.map +1 -1
  22. package/dist/src/Table.js +24 -1
  23. package/dist/src/Table.js.map +1 -1
  24. package/dist/src/TableQueryTransformProvider.d.ts +17 -0
  25. package/dist/src/TableQueryTransformProvider.d.ts.map +1 -0
  26. package/dist/src/TableQueryTransformProvider.js +34 -0
  27. package/dist/src/TableQueryTransformProvider.js.map +1 -0
  28. package/dist/src/encryption/Base64Url.d.ts +12 -0
  29. package/dist/src/encryption/Base64Url.d.ts.map +1 -0
  30. package/dist/src/encryption/Base64Url.js +21 -0
  31. package/dist/src/encryption/Base64Url.js.map +1 -0
  32. package/dist/src/encryption/DataEncryptionKeyTable.d.ts +33 -0
  33. package/dist/src/encryption/DataEncryptionKeyTable.d.ts.map +1 -0
  34. package/dist/src/encryption/DataEncryptionKeyTable.js +45 -0
  35. package/dist/src/encryption/DataEncryptionKeyTable.js.map +1 -0
  36. package/dist/src/encryption/DataKeyStore.d.ts +84 -0
  37. package/dist/src/encryption/DataKeyStore.d.ts.map +1 -0
  38. package/dist/src/encryption/DataKeyStore.js +481 -0
  39. package/dist/src/encryption/DataKeyStore.js.map +1 -0
  40. package/dist/src/encryption/DbEncryptionConfig.d.ts +62 -0
  41. package/dist/src/encryption/DbEncryptionConfig.d.ts.map +1 -0
  42. package/dist/src/encryption/DbEncryptionConfig.js +67 -0
  43. package/dist/src/encryption/DbEncryptionConfig.js.map +1 -0
  44. package/dist/src/encryption/EncryptedColumnQueryError.d.ts +10 -0
  45. package/dist/src/encryption/EncryptedColumnQueryError.d.ts.map +1 -0
  46. package/dist/src/encryption/EncryptedColumnQueryError.js +38 -0
  47. package/dist/src/encryption/EncryptedColumnQueryError.js.map +1 -0
  48. package/dist/src/encryption/EncryptedColumnQueryTransform.d.ts +52 -0
  49. package/dist/src/encryption/EncryptedColumnQueryTransform.d.ts.map +1 -0
  50. package/dist/src/encryption/EncryptedColumnQueryTransform.js +423 -0
  51. package/dist/src/encryption/EncryptedColumnQueryTransform.js.map +1 -0
  52. package/dist/src/encryption/EncryptedColumns.d.ts +69 -0
  53. package/dist/src/encryption/EncryptedColumns.d.ts.map +1 -0
  54. package/dist/src/encryption/EncryptedColumns.js +286 -0
  55. package/dist/src/encryption/EncryptedColumns.js.map +1 -0
  56. package/dist/src/encryption/EncryptionDerivedTableRegistry.d.ts +20 -0
  57. package/dist/src/encryption/EncryptionDerivedTableRegistry.d.ts.map +1 -0
  58. package/dist/src/encryption/EncryptionDerivedTableRegistry.js +36 -0
  59. package/dist/src/encryption/EncryptionDerivedTableRegistry.js.map +1 -0
  60. package/dist/src/encryption/EncryptionEnvelope.d.ts +25 -0
  61. package/dist/src/encryption/EncryptionEnvelope.d.ts.map +1 -0
  62. package/dist/src/encryption/EncryptionEnvelope.js +59 -0
  63. package/dist/src/encryption/EncryptionEnvelope.js.map +1 -0
  64. package/dist/src/encryption/EncryptionLifecycleWalker.d.ts +65 -0
  65. package/dist/src/encryption/EncryptionLifecycleWalker.d.ts.map +1 -0
  66. package/dist/src/encryption/EncryptionLifecycleWalker.js +343 -0
  67. package/dist/src/encryption/EncryptionLifecycleWalker.js.map +1 -0
  68. package/dist/src/encryption/EncryptionRecordHooks.d.ts +47 -0
  69. package/dist/src/encryption/EncryptionRecordHooks.d.ts.map +1 -0
  70. package/dist/src/encryption/EncryptionRecordHooks.js +229 -0
  71. package/dist/src/encryption/EncryptionRecordHooks.js.map +1 -0
  72. package/dist/src/encryption/EncryptionTokenMaintenance.d.ts +34 -0
  73. package/dist/src/encryption/EncryptionTokenMaintenance.d.ts.map +1 -0
  74. package/dist/src/encryption/EncryptionTokenMaintenance.js +211 -0
  75. package/dist/src/encryption/EncryptionTokenMaintenance.js.map +1 -0
  76. package/dist/src/encryption/InMemoryMasterKeyProvider.d.ts +20 -0
  77. package/dist/src/encryption/InMemoryMasterKeyProvider.d.ts.map +1 -0
  78. package/dist/src/encryption/InMemoryMasterKeyProvider.js +87 -0
  79. package/dist/src/encryption/InMemoryMasterKeyProvider.js.map +1 -0
  80. package/dist/src/encryption/MasterKeyProvider.d.ts +27 -0
  81. package/dist/src/encryption/MasterKeyProvider.d.ts.map +1 -0
  82. package/dist/src/encryption/MasterKeyProvider.js +3 -0
  83. package/dist/src/encryption/MasterKeyProvider.js.map +1 -0
  84. package/dist/src/encryption/SearchTokenizer.d.ts +49 -0
  85. package/dist/src/encryption/SearchTokenizer.d.ts.map +1 -0
  86. package/dist/src/encryption/SearchTokenizer.js +106 -0
  87. package/dist/src/encryption/SearchTokenizer.js.map +1 -0
  88. package/dist/src/schema/TableManager.d.ts +10 -0
  89. package/dist/src/schema/TableManager.d.ts.map +1 -1
  90. package/dist/src/schema/TableManager.js +62 -5
  91. package/dist/src/schema/TableManager.js.map +1 -1
  92. package/dist/src/tables/MigrationTable.d.ts +2 -2
  93. package/dist/test/EncryptedColumnsSchema.test.d.ts +2 -0
  94. package/dist/test/EncryptedColumnsSchema.test.d.ts.map +1 -0
  95. package/dist/test/EncryptedColumnsSchema.test.js +151 -0
  96. package/dist/test/EncryptedColumnsSchema.test.js.map +1 -0
  97. package/dist/test/EncryptionEnvelope.test.d.ts +2 -0
  98. package/dist/test/EncryptionEnvelope.test.d.ts.map +1 -0
  99. package/dist/test/EncryptionEnvelope.test.js +109 -0
  100. package/dist/test/EncryptionEnvelope.test.js.map +1 -0
  101. package/dist/test/EncryptionQueryContract.test.d.ts +2 -0
  102. package/dist/test/EncryptionQueryContract.test.d.ts.map +1 -0
  103. package/dist/test/EncryptionQueryContract.test.js +399 -0
  104. package/dist/test/EncryptionQueryContract.test.js.map +1 -0
  105. package/dist/test/SearchTokenizer.test.d.ts +2 -0
  106. package/dist/test/SearchTokenizer.test.d.ts.map +1 -0
  107. package/dist/test/SearchTokenizer.test.js +64 -0
  108. package/dist/test/SearchTokenizer.test.js.map +1 -0
  109. package/dist/test/reusable/CascadeDeleteTests.js +2 -2
  110. package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
  111. package/dist/test/reusable/ColumnTypesTests.js +2 -2
  112. package/dist/test/reusable/ColumnTypesTests.js.map +1 -1
  113. package/dist/test/reusable/CrudTests.js +2 -2
  114. package/dist/test/reusable/CrudTests.js.map +1 -1
  115. package/dist/test/reusable/DynamicReferenceColumnTests.js +2 -2
  116. package/dist/test/reusable/DynamicReferenceColumnTests.js.map +1 -1
  117. package/dist/test/reusable/PreloadReferencesTests.js +2 -2
  118. package/dist/test/reusable/PreloadReferencesTests.js.map +1 -1
  119. package/dist/test/reusable/RecordIteratorTests.js +2 -2
  120. package/dist/test/reusable/RecordIteratorTests.js.map +1 -1
  121. package/dist/test/reusable/TableManagerTests.js +2 -2
  122. package/dist/test/reusable/TableManagerTests.js.map +1 -1
  123. package/dist/test/reusable/TransactionTests.js +2 -2
  124. package/dist/test/reusable/TransactionTests.js.map +1 -1
  125. package/generated/index.ts +7 -1
  126. package/generated/test/index.ts +7 -1
  127. package/index.ts +16 -0
  128. package/package.json +3 -3
  129. package/src/Db.ts +137 -12
  130. package/src/Record.ts +21 -4
  131. package/src/Table.ts +109 -2
  132. package/src/TableQueryTransformProvider.ts +31 -0
  133. package/src/encryption/Base64Url.ts +14 -0
  134. package/src/encryption/DataEncryptionKeyTable.ts +40 -0
  135. package/src/encryption/DataKeyStore.ts +305 -0
  136. package/src/encryption/DbEncryptionConfig.ts +92 -0
  137. package/src/encryption/EncryptedColumnQueryError.ts +15 -0
  138. package/src/encryption/EncryptedColumnQueryTransform.ts +383 -0
  139. package/src/encryption/EncryptedColumns.ts +318 -0
  140. package/src/encryption/EncryptionDerivedTableRegistry.ts +34 -0
  141. package/src/encryption/EncryptionEnvelope.ts +60 -0
  142. package/src/encryption/EncryptionLifecycleWalker.ts +243 -0
  143. package/src/encryption/EncryptionRecordHooks.ts +167 -0
  144. package/src/encryption/EncryptionTokenMaintenance.ts +123 -0
  145. package/src/encryption/InMemoryMasterKeyProvider.ts +42 -0
  146. package/src/encryption/MasterKeyProvider.ts +26 -0
  147. package/src/encryption/SearchTokenizer.ts +103 -0
  148. package/src/schema/TableManager.ts +43 -1
  149. package/test/EncryptedColumnsSchema.test.ts +172 -0
  150. package/test/EncryptionEnvelope.test.ts +66 -0
  151. package/test/EncryptionQueryContract.test.ts +195 -0
  152. package/test/SearchTokenizer.test.ts +67 -0
  153. package/test/reusable/CascadeDeleteTests.ts +2 -2
  154. package/test/reusable/ColumnTypesTests.ts +2 -2
  155. package/test/reusable/CrudTests.ts +2 -2
  156. package/test/reusable/DynamicReferenceColumnTests.ts +2 -2
  157. package/test/reusable/PreloadReferencesTests.ts +2 -2
  158. package/test/reusable/RecordIteratorTests.ts +2 -2
  159. package/test/reusable/TableManagerTests.ts +2 -2
  160. package/test/reusable/TransactionTests.ts +2 -2
@@ -57,6 +57,8 @@ var db_query_1 = require("@proteinjs/db-query");
57
57
  var Table_1 = require("../Table");
58
58
  var SchemaMetadata_1 = require("./SchemaMetadata");
59
59
  var StatementConfigFactory_1 = require("../StatementConfigFactory");
60
+ var EncryptedColumns_1 = require("../encryption/EncryptedColumns");
61
+ var DbEncryptionConfig_1 = require("../encryption/DbEncryptionConfig");
60
62
  /**
61
63
  * Thrown by the pre-sync duplicate check when a unique index is about to be added to an existing
62
64
  * table whose data already violates it. Without the preflight the backend's index backfill fails
@@ -113,7 +115,7 @@ var TableManager = /** @class */ (function () {
113
115
  return __generator(this, function (_b) {
114
116
  switch (_b.label) {
115
117
  case 0:
116
- tables = (0, Table_1.getTables)();
118
+ tables = this.prepareTablesForLoad((0, Table_1.getTables)());
117
119
  absentTables = [];
118
120
  existingTables = [];
119
121
  _i = 0, tables_1 = tables;
@@ -172,6 +174,29 @@ var TableManager = /** @class */ (function () {
172
174
  });
173
175
  };
174
176
  TableManager.prototype.loadTable = function (table) {
177
+ return __awaiter(this, void 0, void 0, function () {
178
+ var _i, _a, preparedTable;
179
+ return __generator(this, function (_b) {
180
+ switch (_b.label) {
181
+ case 0:
182
+ _i = 0, _a = this.prepareTablesForLoad([table]);
183
+ _b.label = 1;
184
+ case 1:
185
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
186
+ preparedTable = _a[_i];
187
+ return [4 /*yield*/, this.loadSingleTable(preparedTable)];
188
+ case 2:
189
+ _b.sent();
190
+ _b.label = 3;
191
+ case 3:
192
+ _i++;
193
+ return [3 /*break*/, 1];
194
+ case 4: return [2 /*return*/];
195
+ }
196
+ });
197
+ });
198
+ };
199
+ TableManager.prototype.loadSingleTable = function (table) {
175
200
  return __awaiter(this, void 0, void 0, function () {
176
201
  var error_2;
177
202
  return __generator(this, function (_a) {
@@ -208,6 +233,38 @@ var TableManager = /** @class */ (function () {
208
233
  });
209
234
  });
210
235
  };
236
+ /**
237
+ * Column-encryption schema pass (`ColumnOptions.encrypted`): validate declarations,
238
+ * inject the derived companion columns, and append each table's derived search-token
239
+ * table so it is created/altered alongside its base table. When the deployment turns on
240
+ * `requireEncryptedDeclarations` (or `DB_REQUIRE_ENCRYPTED_DECLARATIONS=true`), every
241
+ * text-holding column must declare `encrypted` — registration fails loudly here otherwise.
242
+ */
243
+ TableManager.prototype.prepareTablesForLoad = function (tables) {
244
+ var encryptedColumns = new EncryptedColumns_1.EncryptedColumns();
245
+ var requireDeclarations = this.requireEncryptedDeclarations();
246
+ var prepared = [];
247
+ for (var _i = 0, tables_2 = tables; _i < tables_2.length; _i++) {
248
+ var table = tables_2[_i];
249
+ encryptedColumns.ensureSchema(table);
250
+ if (requireDeclarations) {
251
+ encryptedColumns.validateDeclarations(table);
252
+ }
253
+ prepared.push(table);
254
+ var tokenTable = encryptedColumns.tokenTableFor(table);
255
+ if (tokenTable) {
256
+ prepared.push(tokenTable);
257
+ }
258
+ }
259
+ return prepared;
260
+ };
261
+ TableManager.prototype.requireEncryptedDeclarations = function () {
262
+ var _a;
263
+ if (getEnvVar('DB_REQUIRE_ENCRYPTED_DECLARATIONS') === 'true') {
264
+ return true;
265
+ }
266
+ return !!((_a = (0, DbEncryptionConfig_1.findDbEncryptionConfig)()) === null || _a === void 0 ? void 0 : _a.requireEncryptedDeclarations);
267
+ };
211
268
  TableManager.prototype.alterTableIfChanged = function (table) {
212
269
  return __awaiter(this, void 0, void 0, function () {
213
270
  var tableChanges, error_3;
@@ -279,7 +336,7 @@ var TableManager = /** @class */ (function () {
279
336
  TableManager.prototype.reconcileConcurrentSchemaChange = function (tables, error) {
280
337
  var _a, _b;
281
338
  return __awaiter(this, void 0, void 0, function () {
282
- var tableNames, reason, _i, tables_2, table;
339
+ var tableNames, reason, _i, tables_3, table;
283
340
  return __generator(this, function (_c) {
284
341
  switch (_c.label) {
285
342
  case 0:
@@ -288,11 +345,11 @@ var TableManager = /** @class */ (function () {
288
345
  }
289
346
  tableNames = tables.map(function (table) { return table.name; }).join(', ');
290
347
  reason = this.schemaErrorReason(error);
291
- _i = 0, tables_2 = tables;
348
+ _i = 0, tables_3 = tables;
292
349
  _c.label = 1;
293
350
  case 1:
294
- if (!(_i < tables_2.length)) return [3 /*break*/, 4];
295
- table = tables_2[_i];
351
+ if (!(_i < tables_3.length)) return [3 /*break*/, 4];
352
+ table = tables_3[_i];
296
353
  return [4 /*yield*/, this.verifyIntendedDefinition(table, tableNames, reason, error)];
297
354
  case 2:
298
355
  _c.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
@@ -69,11 +69,11 @@ export declare class MigrationTable extends Table<Migration> {
69
69
  sourcePackage: import("../Table").Column<string | undefined, any>;
70
70
  sourcePackageVersion: import("../Table").Column<string | undefined, any>;
71
71
  } & {} & {
72
+ retired: import("../Table").Column<boolean | undefined, any>;
73
+ status: import("../Table").Column<"proposed" | "running" | "success" | "failure" | undefined, any>;
72
74
  description: import("../Table").Column<string, any>;
73
75
  manual: import("../Table").Column<boolean | undefined, any>;
74
76
  preSchemaSync: import("../Table").Column<boolean | undefined, any>;
75
- retired: import("../Table").Column<boolean | undefined, any>;
76
- status: import("../Table").Column<"proposed" | "running" | "success" | "failure" | undefined, any>;
77
77
  failureMessage: import("../Table").Column<string | undefined, any>;
78
78
  failureStack: import("../Table").Column<string | undefined, any>;
79
79
  startTime: import("../Table").Column<Moment | undefined, any>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EncryptedColumnsSchema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedColumnsSchema.test.d.ts","sourceRoot":"","sources":["../../test/EncryptedColumnsSchema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ var Table_1 = require("../src/Table");
19
+ var EncryptionDerivedTableRegistry_1 = require("../src/encryption/EncryptionDerivedTableRegistry");
20
+ var Record_1 = require("../src/Record");
21
+ var Columns_1 = require("../src/Columns");
22
+ var EncryptedColumns_1 = require("../src/encryption/EncryptedColumns");
23
+ var DbEncryptionConfig_1 = require("../src/encryption/DbEncryptionConfig");
24
+ var noteTable = function (columns) {
25
+ return new (/** @class */ (function (_super) {
26
+ __extends(class_1, _super);
27
+ function class_1() {
28
+ var _this = _super !== null && _super.apply(this, arguments) || this;
29
+ _this.name = "enc_schema_test_".concat(schemaTestTableCounter++);
30
+ _this.columns = columns;
31
+ return _this;
32
+ }
33
+ return class_1;
34
+ }(Table_1.Table)))();
35
+ };
36
+ var schemaTestTableCounter = 0;
37
+ /**
38
+ * The schema side of `ColumnOptions.encrypted`: declaration validation (invalid states
39
+ * rejected loudly), derived companion columns / token table, ciphertext widening, and the
40
+ * mandatory-declaration gate.
41
+ */
42
+ describe('EncryptedColumns schema derivation', function () {
43
+ var encryptedColumns = new EncryptedColumns_1.EncryptedColumns();
44
+ test('derives companions automatically: MAX widening, equality fingerprint column + index, sort prefix column, token table', function () {
45
+ var table = noteTable((0, Record_1.withRecordColumns)({
46
+ title: new Columns_1.StringColumn('title', { encrypted: { searchable: 'contains' } }),
47
+ label: new Columns_1.StringColumn('label', { encrypted: { searchable: 'equality', sortKey: { revealPrefix: 3 } } }),
48
+ body: new Columns_1.ObjectColumn('body', { encrypted: {} }),
49
+ plain: new Columns_1.StringColumn('plain', { encrypted: false }),
50
+ }));
51
+ encryptedColumns.ensureSchema(table);
52
+ // ciphertext outgrows declared widths
53
+ expect(table.columns.title.maxLength).toBe('MAX');
54
+ expect(table.columns.label.maxLength).toBe('MAX');
55
+ // plaintext column untouched
56
+ expect(table.columns.plain.maxLength).toBe(255);
57
+ // equality fingerprint companion, indexed
58
+ var eqCompanion = table.columns[encryptedColumns.eqCompanionProp(table, 'label')];
59
+ expect(eqCompanion).toBeTruthy();
60
+ expect(eqCompanion.name).toBe('label_enc_eq');
61
+ expect(table.indexes.some(function (index) { return index.name === "".concat(table.name, "_label_enc_eq_idx"); })).toBe(true);
62
+ // sort prefix companion bounded to the declared reveal
63
+ var sortCompanion = table.columns[encryptedColumns.sortCompanionProp(table, 'label')];
64
+ expect(sortCompanion.name).toBe('label_enc_srt');
65
+ expect(sortCompanion.maxLength).toBe(3);
66
+ // token table registered in the derived registry (tableByName's fallback — the
67
+ // full tableByName resolution is covered by the driver integration tests, which run
68
+ // with a real reflection graph)
69
+ var tokenTable = encryptedColumns.tokenTableFor(table);
70
+ expect(tokenTable.name).toBe("".concat(table.name, "_enc_tok"));
71
+ expect(EncryptionDerivedTableRegistry_1.EncryptionDerivedTableRegistry.get(tokenTable.name)).toBe(tokenTable);
72
+ // idempotent: a second pass adds nothing
73
+ var columnCount = Object.keys(table.columns).length;
74
+ var indexCount = table.indexes.length;
75
+ encryptedColumns.ensureSchema(table);
76
+ expect(Object.keys(table.columns).length).toBe(columnCount);
77
+ expect(table.indexes.length).toBe(indexCount);
78
+ });
79
+ test('a unique declaration moves onto the equality fingerprint (per-owner value uniqueness)', function () {
80
+ var _a;
81
+ var table = noteTable((0, Record_1.withRecordColumns)({
82
+ label: new Columns_1.StringColumn('label', {
83
+ unique: { unique: true },
84
+ encrypted: { searchable: 'equality' },
85
+ }),
86
+ }));
87
+ encryptedColumns.ensureSchema(table);
88
+ expect((_a = table.columns.label.options) === null || _a === void 0 ? void 0 : _a.unique).toBeUndefined();
89
+ var eqCompanion = table.columns[encryptedColumns.eqCompanionProp(table, 'label')];
90
+ expect(eqCompanion.options.unique.unique).toBe(true);
91
+ });
92
+ test('rejects: unique without equality declaration (a unique index on ciphertext cannot bite)', function () {
93
+ var table = noteTable((0, Record_1.withRecordColumns)({
94
+ label: new Columns_1.StringColumn('label', { unique: { unique: true }, encrypted: {} }),
95
+ }));
96
+ expect(function () { return encryptedColumns.ensureSchema(table); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
97
+ expect(function () { return encryptedColumns.ensureSchema(table); }).toThrow(/searchable: 'equality'/);
98
+ });
99
+ test('rejects: encrypted on reference/id columns (metadata by construction)', function () {
100
+ var table = noteTable((0, Record_1.withRecordColumns)({
101
+ attachments: new Columns_1.ReferenceColumn('attachment', 'other_table', false, { encrypted: {} }),
102
+ }));
103
+ expect(function () { return encryptedColumns.ensureSchema(table); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
104
+ });
105
+ test('rejects: searchable/sortKey on serialized-object columns (derivatives cover text, not serialization)', function () {
106
+ var table = noteTable((0, Record_1.withRecordColumns)({
107
+ body: new Columns_1.ObjectColumn('body', { encrypted: { searchable: 'contains' } }),
108
+ }));
109
+ expect(function () { return encryptedColumns.ensureSchema(table); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
110
+ });
111
+ test('rejects: malformed nested config values', function () {
112
+ var badSearchable = noteTable((0, Record_1.withRecordColumns)({
113
+ title: new Columns_1.StringColumn('title', { encrypted: { searchable: 'fuzzy' } }),
114
+ }));
115
+ expect(function () { return encryptedColumns.ensureSchema(badSearchable); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
116
+ var badReveal = noteTable((0, Record_1.withRecordColumns)({
117
+ title: new Columns_1.StringColumn('title', { encrypted: { sortKey: { revealPrefix: 0 } } }),
118
+ }));
119
+ expect(function () { return encryptedColumns.ensureSchema(badReveal); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
120
+ });
121
+ test('a rejected declaration stays rejected on every use (no half-applied schema)', function () {
122
+ var table = noteTable((0, Record_1.withRecordColumns)({
123
+ title: new Columns_1.StringColumn('title', { encrypted: { searchable: 'fuzzy' } }),
124
+ }));
125
+ expect(function () { return encryptedColumns.ensureSchema(table); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
126
+ expect(function () { return encryptedColumns.ensureSchema(table); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
127
+ });
128
+ });
129
+ describe('EncryptedColumns mandatory declarations (the sweep-wave gate)', function () {
130
+ var encryptedColumns = new EncryptedColumns_1.EncryptedColumns();
131
+ test('a text column without an encrypted declaration fails validation, naming the column', function () {
132
+ var table = noteTable((0, Record_1.withRecordColumns)({
133
+ title: new Columns_1.StringColumn('title'),
134
+ plain: new Columns_1.StringColumn('plain', { encrypted: false }),
135
+ }));
136
+ encryptedColumns.ensureSchema(table);
137
+ expect(function () { return encryptedColumns.validateDeclarations(table); }).toThrow(DbEncryptionConfig_1.EncryptedColumnConfigError);
138
+ expect(function () { return encryptedColumns.validateDeclarations(table); }).toThrow(/title/);
139
+ });
140
+ test('declared columns (false or config), id/reference columns, and derived companions pass', function () {
141
+ var table = noteTable((0, Record_1.withRecordColumns)({
142
+ title: new Columns_1.StringColumn('title', { encrypted: { searchable: 'equality' } }),
143
+ plain: new Columns_1.StringColumn('plain', { encrypted: false }),
144
+ attachments: new Columns_1.ReferenceColumn('attachment', 'other_table', false),
145
+ label: new Columns_1.UuidColumn('label'),
146
+ }));
147
+ encryptedColumns.ensureSchema(table);
148
+ expect(function () { return encryptedColumns.validateDeclarations(table); }).not.toThrow();
149
+ });
150
+ });
151
+ //# sourceMappingURL=EncryptedColumnsSchema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedColumnsSchema.test.js","sourceRoot":"","sources":["../../test/EncryptedColumnsSchema.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EncryptionEnvelope.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptionEnvelope.test.d.ts","sourceRoot":"","sources":["../../test/EncryptionEnvelope.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var crypto_1 = require("crypto");
40
+ var EncryptionEnvelope_1 = require("../src/encryption/EncryptionEnvelope");
41
+ var InMemoryMasterKeyProvider_1 = require("../src/encryption/InMemoryMasterKeyProvider");
42
+ var keyFor = function (owner, version) {
43
+ if (version === void 0) { version = 1; }
44
+ return ({
45
+ owner: owner,
46
+ version: version,
47
+ cipherKey: (0, crypto_1.randomBytes)(32),
48
+ indexKey: (0, crypto_1.randomBytes)(32),
49
+ });
50
+ };
51
+ describe('EncryptionEnvelope', function () {
52
+ var envelope = new EncryptionEnvelope_1.EncryptionEnvelope();
53
+ test('round trip: encrypt -> parse -> decrypt restores the exact plaintext', function () {
54
+ var key = keyFor('11111111-2222-3333-4444-555555555555', 3);
55
+ var plaintext = 'Therapy notes — divorce; emoji 🙂 and unicode ünïcode';
56
+ var stored = envelope.encrypt(plaintext, key);
57
+ expect(stored.startsWith(EncryptionEnvelope_1.EncryptionEnvelope.PREFIX)).toBe(true);
58
+ expect(stored).not.toContain('Therapy');
59
+ var parsed = envelope.parse(stored);
60
+ expect(parsed.owner).toBe(key.owner);
61
+ expect(parsed.version).toBe(3);
62
+ expect(envelope.decrypt(stored, key)).toBe(plaintext);
63
+ });
64
+ test('self-describing: the envelope names key owner and version (rotation is a rewrite, not a redesign)', function () {
65
+ var key = keyFor('owner-a', 7);
66
+ var parsed = envelope.parse(envelope.encrypt('x', key));
67
+ expect(parsed).toMatchObject({ owner: 'owner-a', version: 7 });
68
+ });
69
+ test('plaintext and non-envelope strings do not parse as envelopes', function () {
70
+ expect(envelope.parse('an ordinary title')).toBeUndefined();
71
+ expect(envelope.parse('pjenc:1:not-an-envelope')).toBeUndefined();
72
+ expect(envelope.parse(null)).toBeUndefined();
73
+ expect(envelope.parse(42)).toBeUndefined();
74
+ });
75
+ test('tampered ciphertext fails loudly (GCM auth)', function () {
76
+ var key = keyFor('owner-a');
77
+ var stored = envelope.encrypt('sensitive', key);
78
+ var flipped = stored.slice(0, -2) + (stored.endsWith('AA') ? 'BB' : 'AA');
79
+ expect(function () { return envelope.decrypt(flipped, key); }).toThrow();
80
+ });
81
+ test('wrong key fails loudly, never returns garbage', function () {
82
+ var stored = envelope.encrypt('sensitive', keyFor('owner-a'));
83
+ expect(function () { return envelope.decrypt(stored, keyFor('owner-a')); }).toThrow();
84
+ });
85
+ });
86
+ describe('InMemoryMasterKeyProvider', function () {
87
+ test('wrap/unwrap round trip; same secret unwraps across instances; wrong secret fails', function () { return __awaiter(void 0, void 0, void 0, function () {
88
+ var material, wrapped, unwrapped;
89
+ return __generator(this, function (_a) {
90
+ switch (_a.label) {
91
+ case 0:
92
+ material = (0, crypto_1.randomBytes)(64);
93
+ return [4 /*yield*/, new InMemoryMasterKeyProvider_1.InMemoryMasterKeyProvider('test-secret').wrapDataKey(material)];
94
+ case 1:
95
+ wrapped = _a.sent();
96
+ expect(wrapped).not.toContain(material.toString('base64'));
97
+ return [4 /*yield*/, new InMemoryMasterKeyProvider_1.InMemoryMasterKeyProvider('test-secret').unwrapDataKey(wrapped)];
98
+ case 2:
99
+ unwrapped = _a.sent();
100
+ expect(unwrapped.equals(material)).toBe(true);
101
+ return [4 /*yield*/, expect(new InMemoryMasterKeyProvider_1.InMemoryMasterKeyProvider('other-secret').unwrapDataKey(wrapped)).rejects.toThrow()];
102
+ case 3:
103
+ _a.sent();
104
+ return [2 /*return*/];
105
+ }
106
+ });
107
+ }); });
108
+ });
109
+ //# sourceMappingURL=EncryptionEnvelope.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptionEnvelope.test.js","sourceRoot":"","sources":["../../test/EncryptionEnvelope.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EncryptionQueryContract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptionQueryContract.test.d.ts","sourceRoot":"","sources":["../../test/EncryptionQueryContract.test.ts"],"names":[],"mappings":""}