@proteinjs/db 1.35.1 → 1.37.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 (165) hide show
  1. package/CHANGELOG.md +22 -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/Columns.d.ts +5 -1
  13. package/dist/src/Columns.d.ts.map +1 -1
  14. package/dist/src/Columns.js +2 -1
  15. package/dist/src/Columns.js.map +1 -1
  16. package/dist/src/Db.d.ts +25 -0
  17. package/dist/src/Db.d.ts.map +1 -1
  18. package/dist/src/Db.js +219 -22
  19. package/dist/src/Db.js.map +1 -1
  20. package/dist/src/Record.d.ts +7 -1
  21. package/dist/src/Record.d.ts.map +1 -1
  22. package/dist/src/Record.js +56 -21
  23. package/dist/src/Record.js.map +1 -1
  24. package/dist/src/Table.d.ts +82 -1
  25. package/dist/src/Table.d.ts.map +1 -1
  26. package/dist/src/Table.js +24 -1
  27. package/dist/src/Table.js.map +1 -1
  28. package/dist/src/TableQueryTransformProvider.d.ts +17 -0
  29. package/dist/src/TableQueryTransformProvider.d.ts.map +1 -0
  30. package/dist/src/TableQueryTransformProvider.js +34 -0
  31. package/dist/src/TableQueryTransformProvider.js.map +1 -0
  32. package/dist/src/encryption/Base64Url.d.ts +12 -0
  33. package/dist/src/encryption/Base64Url.d.ts.map +1 -0
  34. package/dist/src/encryption/Base64Url.js +21 -0
  35. package/dist/src/encryption/Base64Url.js.map +1 -0
  36. package/dist/src/encryption/DataEncryptionKeyTable.d.ts +33 -0
  37. package/dist/src/encryption/DataEncryptionKeyTable.d.ts.map +1 -0
  38. package/dist/src/encryption/DataEncryptionKeyTable.js +45 -0
  39. package/dist/src/encryption/DataEncryptionKeyTable.js.map +1 -0
  40. package/dist/src/encryption/DataKeyStore.d.ts +84 -0
  41. package/dist/src/encryption/DataKeyStore.d.ts.map +1 -0
  42. package/dist/src/encryption/DataKeyStore.js +481 -0
  43. package/dist/src/encryption/DataKeyStore.js.map +1 -0
  44. package/dist/src/encryption/DbEncryptionConfig.d.ts +62 -0
  45. package/dist/src/encryption/DbEncryptionConfig.d.ts.map +1 -0
  46. package/dist/src/encryption/DbEncryptionConfig.js +67 -0
  47. package/dist/src/encryption/DbEncryptionConfig.js.map +1 -0
  48. package/dist/src/encryption/EncryptedColumnQueryError.d.ts +10 -0
  49. package/dist/src/encryption/EncryptedColumnQueryError.d.ts.map +1 -0
  50. package/dist/src/encryption/EncryptedColumnQueryError.js +38 -0
  51. package/dist/src/encryption/EncryptedColumnQueryError.js.map +1 -0
  52. package/dist/src/encryption/EncryptedColumnQueryTransform.d.ts +52 -0
  53. package/dist/src/encryption/EncryptedColumnQueryTransform.d.ts.map +1 -0
  54. package/dist/src/encryption/EncryptedColumnQueryTransform.js +423 -0
  55. package/dist/src/encryption/EncryptedColumnQueryTransform.js.map +1 -0
  56. package/dist/src/encryption/EncryptedColumns.d.ts +69 -0
  57. package/dist/src/encryption/EncryptedColumns.d.ts.map +1 -0
  58. package/dist/src/encryption/EncryptedColumns.js +286 -0
  59. package/dist/src/encryption/EncryptedColumns.js.map +1 -0
  60. package/dist/src/encryption/EncryptionDerivedTableRegistry.d.ts +20 -0
  61. package/dist/src/encryption/EncryptionDerivedTableRegistry.d.ts.map +1 -0
  62. package/dist/src/encryption/EncryptionDerivedTableRegistry.js +36 -0
  63. package/dist/src/encryption/EncryptionDerivedTableRegistry.js.map +1 -0
  64. package/dist/src/encryption/EncryptionEnvelope.d.ts +25 -0
  65. package/dist/src/encryption/EncryptionEnvelope.d.ts.map +1 -0
  66. package/dist/src/encryption/EncryptionEnvelope.js +59 -0
  67. package/dist/src/encryption/EncryptionEnvelope.js.map +1 -0
  68. package/dist/src/encryption/EncryptionLifecycleWalker.d.ts +65 -0
  69. package/dist/src/encryption/EncryptionLifecycleWalker.d.ts.map +1 -0
  70. package/dist/src/encryption/EncryptionLifecycleWalker.js +343 -0
  71. package/dist/src/encryption/EncryptionLifecycleWalker.js.map +1 -0
  72. package/dist/src/encryption/EncryptionRecordHooks.d.ts +47 -0
  73. package/dist/src/encryption/EncryptionRecordHooks.d.ts.map +1 -0
  74. package/dist/src/encryption/EncryptionRecordHooks.js +229 -0
  75. package/dist/src/encryption/EncryptionRecordHooks.js.map +1 -0
  76. package/dist/src/encryption/EncryptionTokenMaintenance.d.ts +34 -0
  77. package/dist/src/encryption/EncryptionTokenMaintenance.d.ts.map +1 -0
  78. package/dist/src/encryption/EncryptionTokenMaintenance.js +211 -0
  79. package/dist/src/encryption/EncryptionTokenMaintenance.js.map +1 -0
  80. package/dist/src/encryption/InMemoryMasterKeyProvider.d.ts +20 -0
  81. package/dist/src/encryption/InMemoryMasterKeyProvider.d.ts.map +1 -0
  82. package/dist/src/encryption/InMemoryMasterKeyProvider.js +87 -0
  83. package/dist/src/encryption/InMemoryMasterKeyProvider.js.map +1 -0
  84. package/dist/src/encryption/MasterKeyProvider.d.ts +27 -0
  85. package/dist/src/encryption/MasterKeyProvider.d.ts.map +1 -0
  86. package/dist/src/encryption/MasterKeyProvider.js +3 -0
  87. package/dist/src/encryption/MasterKeyProvider.js.map +1 -0
  88. package/dist/src/encryption/SearchTokenizer.d.ts +49 -0
  89. package/dist/src/encryption/SearchTokenizer.d.ts.map +1 -0
  90. package/dist/src/encryption/SearchTokenizer.js +106 -0
  91. package/dist/src/encryption/SearchTokenizer.js.map +1 -0
  92. package/dist/src/schema/TableManager.d.ts +10 -0
  93. package/dist/src/schema/TableManager.d.ts.map +1 -1
  94. package/dist/src/schema/TableManager.js +62 -5
  95. package/dist/src/schema/TableManager.js.map +1 -1
  96. package/dist/src/tables/MigrationTable.d.ts +2 -2
  97. package/dist/test/EncryptedColumnsSchema.test.d.ts +2 -0
  98. package/dist/test/EncryptedColumnsSchema.test.d.ts.map +1 -0
  99. package/dist/test/EncryptedColumnsSchema.test.js +151 -0
  100. package/dist/test/EncryptedColumnsSchema.test.js.map +1 -0
  101. package/dist/test/EncryptionEnvelope.test.d.ts +2 -0
  102. package/dist/test/EncryptionEnvelope.test.d.ts.map +1 -0
  103. package/dist/test/EncryptionEnvelope.test.js +109 -0
  104. package/dist/test/EncryptionEnvelope.test.js.map +1 -0
  105. package/dist/test/EncryptionQueryContract.test.d.ts +2 -0
  106. package/dist/test/EncryptionQueryContract.test.d.ts.map +1 -0
  107. package/dist/test/EncryptionQueryContract.test.js +399 -0
  108. package/dist/test/EncryptionQueryContract.test.js.map +1 -0
  109. package/dist/test/SearchTokenizer.test.d.ts +2 -0
  110. package/dist/test/SearchTokenizer.test.d.ts.map +1 -0
  111. package/dist/test/SearchTokenizer.test.js +64 -0
  112. package/dist/test/SearchTokenizer.test.js.map +1 -0
  113. package/dist/test/reusable/CascadeDeleteTests.js +2 -2
  114. package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
  115. package/dist/test/reusable/ColumnTypesTests.js +2 -2
  116. package/dist/test/reusable/ColumnTypesTests.js.map +1 -1
  117. package/dist/test/reusable/CrudTests.js +2 -2
  118. package/dist/test/reusable/CrudTests.js.map +1 -1
  119. package/dist/test/reusable/DynamicReferenceColumnTests.js +2 -2
  120. package/dist/test/reusable/DynamicReferenceColumnTests.js.map +1 -1
  121. package/dist/test/reusable/PreloadReferencesTests.js +2 -2
  122. package/dist/test/reusable/PreloadReferencesTests.js.map +1 -1
  123. package/dist/test/reusable/RecordIteratorTests.js +2 -2
  124. package/dist/test/reusable/RecordIteratorTests.js.map +1 -1
  125. package/dist/test/reusable/TableManagerTests.js +2 -2
  126. package/dist/test/reusable/TableManagerTests.js.map +1 -1
  127. package/dist/test/reusable/TransactionTests.js +2 -2
  128. package/dist/test/reusable/TransactionTests.js.map +1 -1
  129. package/generated/index.ts +7 -1
  130. package/generated/test/index.ts +7 -1
  131. package/index.ts +16 -0
  132. package/package.json +3 -3
  133. package/src/Columns.ts +6 -2
  134. package/src/Db.ts +137 -12
  135. package/src/Record.ts +21 -4
  136. package/src/Table.ts +109 -2
  137. package/src/TableQueryTransformProvider.ts +31 -0
  138. package/src/encryption/Base64Url.ts +14 -0
  139. package/src/encryption/DataEncryptionKeyTable.ts +40 -0
  140. package/src/encryption/DataKeyStore.ts +305 -0
  141. package/src/encryption/DbEncryptionConfig.ts +92 -0
  142. package/src/encryption/EncryptedColumnQueryError.ts +15 -0
  143. package/src/encryption/EncryptedColumnQueryTransform.ts +383 -0
  144. package/src/encryption/EncryptedColumns.ts +318 -0
  145. package/src/encryption/EncryptionDerivedTableRegistry.ts +34 -0
  146. package/src/encryption/EncryptionEnvelope.ts +60 -0
  147. package/src/encryption/EncryptionLifecycleWalker.ts +243 -0
  148. package/src/encryption/EncryptionRecordHooks.ts +167 -0
  149. package/src/encryption/EncryptionTokenMaintenance.ts +123 -0
  150. package/src/encryption/InMemoryMasterKeyProvider.ts +42 -0
  151. package/src/encryption/MasterKeyProvider.ts +26 -0
  152. package/src/encryption/SearchTokenizer.ts +103 -0
  153. package/src/schema/TableManager.ts +43 -1
  154. package/test/EncryptedColumnsSchema.test.ts +172 -0
  155. package/test/EncryptionEnvelope.test.ts +66 -0
  156. package/test/EncryptionQueryContract.test.ts +195 -0
  157. package/test/SearchTokenizer.test.ts +67 -0
  158. package/test/reusable/CascadeDeleteTests.ts +2 -2
  159. package/test/reusable/ColumnTypesTests.ts +2 -2
  160. package/test/reusable/CrudTests.ts +2 -2
  161. package/test/reusable/DynamicReferenceColumnTests.ts +2 -2
  162. package/test/reusable/PreloadReferencesTests.ts +2 -2
  163. package/test/reusable/RecordIteratorTests.ts +2 -2
  164. package/test/reusable/TableManagerTests.ts +2 -2
  165. package/test/reusable/TransactionTests.ts +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataKeyStore.js","sourceRoot":"","sources":["../../../src/encryption/DataKeyStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Loadable } from '@proteinjs/reflection';
2
+ import type { Table } from '../Table';
3
+ import { MasterKeyProvider } from './MasterKeyProvider';
4
+ /**
5
+ * A column-encryption configuration problem — a misdeclared column, a missing
6
+ * `DbEncryptionConfigFactory`, an unresolvable key owner. Always a dev-time/boot-time
7
+ * error class, never a data error.
8
+ */
9
+ export declare class EncryptedColumnConfigError extends Error {
10
+ constructor(message: string);
11
+ }
12
+ /**
13
+ * Deployment-level configuration for column encryption (`ColumnOptions.encrypted`).
14
+ * Registered once per app through a `DbEncryptionConfigFactory`; every encrypted read,
15
+ * write, and translated query resolves it through `getDbEncryptionConfig`.
16
+ */
17
+ export interface DbEncryptionConfig {
18
+ /** The vault that wraps/unwraps per-user data keys (see `MasterKeyProvider`). */
19
+ masterKeyProvider: MasterKeyProvider;
20
+ /**
21
+ * Resolve the key-owner id whose data key encrypts a row being written — the row's
22
+ * permission-source scope owner. Return `undefined` to fall through to the framework
23
+ * default (the row's `scope` column value). Consumer layers with richer sharing models
24
+ * (e.g. permission-source trees) supply their scope→owner mapping here; the framework
25
+ * stays generic.
26
+ */
27
+ resolveKeyOwner?: (args: {
28
+ table: Table<any>;
29
+ record: any;
30
+ }) => Promise<string | undefined>;
31
+ /**
32
+ * The key owners whose rows the current caller can read — the caller's own id plus the
33
+ * (bounded) set of owners sharing rows into the caller's view. Search conditions on
34
+ * encrypted columns fingerprint the query once per accessible owner and OR the matches,
35
+ * so this powers shared-scope search. Required for any query that searches an encrypted
36
+ * column; without it such queries are rejected loudly.
37
+ */
38
+ getAccessibleKeyOwners?: (args: {
39
+ runAsSystem: boolean;
40
+ }) => Promise<string[]>;
41
+ /**
42
+ * When true, every text-holding column of every registered table MUST declare
43
+ * `encrypted` (`false` or a config object) — registration fails loudly otherwise
44
+ * (see `EncryptedColumns.validateDeclarations`). Ships default-OFF so existing schemas
45
+ * keep booting; the app-wide declaration sweep turns it on.
46
+ */
47
+ requireEncryptedDeclarations?: boolean;
48
+ }
49
+ /** Registers the app's `DbEncryptionConfig`. Implement as a Loadable so the framework finds it. */
50
+ export interface DbEncryptionConfigFactory extends Loadable {
51
+ getConfig(): DbEncryptionConfig;
52
+ }
53
+ /**
54
+ * Set (or clear) the config without a Loadable factory — test harnesses and bootstrap
55
+ * contexts that run outside the source-repository graph.
56
+ */
57
+ export declare const setDbEncryptionConfig: (config?: DbEncryptionConfig) => void;
58
+ /** The registered config, or undefined when the deployment has none (a plaintext-only app). */
59
+ export declare const findDbEncryptionConfig: () => DbEncryptionConfig | undefined;
60
+ /** The registered config; throws a named error when encryption is used without one. */
61
+ export declare const getDbEncryptionConfig: () => DbEncryptionConfig;
62
+ //# sourceMappingURL=DbEncryptionConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbEncryptionConfig.d.ts","sourceRoot":"","sources":["../../../src/encryption/DbEncryptionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,OAAO,EAAE,MAAM;CAO5B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5F;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,mGAAmG;AACnG,MAAM,WAAW,yBAA0B,SAAQ,QAAQ;IACzD,SAAS,IAAI,kBAAkB,CAAC;CACjC;AAID;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YAAa,kBAAkB,SAEhE,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,QAAO,kBAAkB,GAAG,SAS9D,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,QAAO,kBAWxC,CAAC"}
@@ -0,0 +1,67 @@
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
+ exports.getDbEncryptionConfig = exports.findDbEncryptionConfig = exports.setDbEncryptionConfig = exports.EncryptedColumnConfigError = void 0;
19
+ var reflection_1 = require("@proteinjs/reflection");
20
+ /**
21
+ * A column-encryption configuration problem — a misdeclared column, a missing
22
+ * `DbEncryptionConfigFactory`, an unresolvable key owner. Always a dev-time/boot-time
23
+ * error class, never a data error.
24
+ */
25
+ var EncryptedColumnConfigError = /** @class */ (function (_super) {
26
+ __extends(EncryptedColumnConfigError, _super);
27
+ function EncryptedColumnConfigError(message) {
28
+ var _this = _super.call(this, message) || this;
29
+ _this.name = 'EncryptedColumnConfigError';
30
+ // ES5 down-leveled `extends Error` loses the subclass prototype — restore it so
31
+ // `instanceof` holds for catchers.
32
+ Object.setPrototypeOf(_this, EncryptedColumnConfigError.prototype);
33
+ return _this;
34
+ }
35
+ return EncryptedColumnConfigError;
36
+ }(Error));
37
+ exports.EncryptedColumnConfigError = EncryptedColumnConfigError;
38
+ var configOverride;
39
+ /**
40
+ * Set (or clear) the config without a Loadable factory — test harnesses and bootstrap
41
+ * contexts that run outside the source-repository graph.
42
+ */
43
+ var setDbEncryptionConfig = function (config) {
44
+ configOverride = config;
45
+ };
46
+ exports.setDbEncryptionConfig = setDbEncryptionConfig;
47
+ /** The registered config, or undefined when the deployment has none (a plaintext-only app). */
48
+ var findDbEncryptionConfig = function () {
49
+ if (configOverride) {
50
+ return configOverride;
51
+ }
52
+ var factory = reflection_1.SourceRepository.get().object('@proteinjs/db/DbEncryptionConfigFactory');
53
+ return factory === null || factory === void 0 ? void 0 : factory.getConfig();
54
+ };
55
+ exports.findDbEncryptionConfig = findDbEncryptionConfig;
56
+ /** The registered config; throws a named error when encryption is used without one. */
57
+ var getDbEncryptionConfig = function () {
58
+ var config = (0, exports.findDbEncryptionConfig)();
59
+ if (!config) {
60
+ throw new EncryptedColumnConfigError("A column declares 'encrypted' but no DbEncryptionConfig is registered. Implement " +
61
+ "@proteinjs/db/DbEncryptionConfigFactory (or call setDbEncryptionConfig) with a " +
62
+ "masterKeyProvider before using encrypted columns.");
63
+ }
64
+ return config;
65
+ };
66
+ exports.getDbEncryptionConfig = getDbEncryptionConfig;
67
+ //# sourceMappingURL=DbEncryptionConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbEncryptionConfig.js","sourceRoot":"","sources":["../../../src/encryption/DbEncryptionConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oDAAmE;AAInE;;;;GAIG;AACH;IAAgD,8CAAK;IACnD,oCAAY,OAAe;QAA3B,YACE,kBAAM,OAAO,CAAC,SAKf;QAJC,KAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,gFAAgF;QAChF,mCAAmC;QACnC,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;;IACpE,CAAC;IACH,iCAAC;AAAD,CAAC,AARD,CAAgD,KAAK,GAQpD;AARY,gEAA0B;AAgDvC,IAAI,cAA8C,CAAC;AAEnD;;;GAGG;AACI,IAAM,qBAAqB,GAAG,UAAC,MAA2B;IAC/D,cAAc,GAAG,MAAM,CAAC;AAC1B,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEF,+FAA+F;AACxF,IAAM,sBAAsB,GAAG;IACpC,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;IAED,IAAM,OAAO,GAAG,6BAAgB,CAAC,GAAG,EAAE,CAAC,MAAM,CAC3C,yCAAyC,CAC1C,CAAC;IACF,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE,CAAC;AAC9B,CAAC,CAAC;AATW,QAAA,sBAAsB,0BASjC;AAEF,uFAAuF;AAChF,IAAM,qBAAqB,GAAG;IACnC,IAAM,MAAM,GAAG,IAAA,8BAAsB,GAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,0BAA0B,CAClC,mFAAmF;YACjF,iFAAiF;YACjF,mDAAmD,CACtD,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A query asked an encrypted column for a shape outside the compatibility contract
3
+ * (`EncryptionQueryTranslator`). Thrown at query-build time, before any statement runs —
4
+ * the message names the limitation and the sanctioned paths, so the limitation cannot be
5
+ * hit silently.
6
+ */
7
+ export declare class EncryptedColumnQueryError extends Error {
8
+ constructor(message: string);
9
+ }
10
+ //# sourceMappingURL=EncryptedColumnQueryError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedColumnQueryError.d.ts","sourceRoot":"","sources":["../../../src/encryption/EncryptedColumnQueryError.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAO5B"}
@@ -0,0 +1,38 @@
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
+ exports.EncryptedColumnQueryError = void 0;
19
+ /**
20
+ * A query asked an encrypted column for a shape outside the compatibility contract
21
+ * (`EncryptionQueryTranslator`). Thrown at query-build time, before any statement runs —
22
+ * the message names the limitation and the sanctioned paths, so the limitation cannot be
23
+ * hit silently.
24
+ */
25
+ var EncryptedColumnQueryError = /** @class */ (function (_super) {
26
+ __extends(EncryptedColumnQueryError, _super);
27
+ function EncryptedColumnQueryError(message) {
28
+ var _this = _super.call(this, message) || this;
29
+ _this.name = 'EncryptedColumnQueryError';
30
+ // ES5 down-leveled `extends Error` loses the subclass prototype — restore it so
31
+ // `instanceof` holds for catchers.
32
+ Object.setPrototypeOf(_this, EncryptedColumnQueryError.prototype);
33
+ return _this;
34
+ }
35
+ return EncryptedColumnQueryError;
36
+ }(Error));
37
+ exports.EncryptedColumnQueryError = EncryptedColumnQueryError;
38
+ //# sourceMappingURL=EncryptedColumnQueryError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedColumnQueryError.js","sourceRoot":"","sources":["../../../src/encryption/EncryptedColumnQueryError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH;IAA+C,6CAAK;IAClD,mCAAY,OAAe;QAA3B,YACE,kBAAM,OAAO,CAAC,SAKf;QAJC,KAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,gFAAgF;QAChF,mCAAmC;QACnC,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;;IACnE,CAAC;IACH,gCAAC;AAAD,CAAC,AARD,CAA+C,KAAK,GAQnD;AARY,8DAAyB"}
@@ -0,0 +1,52 @@
1
+ import { Aggregate, ColumnQueryTransform, ColumnQueryTransformContext, Condition, SortCriteria } from '@proteinjs/db-query';
2
+ import type { Column, ColumnQueryRuntime, EncryptedColumnConfig, Table } from '../Table';
3
+ /**
4
+ * An encrypted column's `ColumnQueryTransform` — the query-side half of the column's
5
+ * encryption contract (`EncryptionRecordHooks` is the storage-side half). Attached to the
6
+ * column by `EncryptedColumns.ensureSchema` (derived from `ColumnOptions.encrypted`, never
7
+ * caller-declared) and applied by `QueryBuilder.applyColumnTransforms` on every query, so
8
+ * callers keep writing exactly what they write today:
9
+ *
10
+ * - **Equality** (`=`, `IN`) on a column declared `searchable: 'equality'` rewrites onto the
11
+ * whole-value fingerprint companion — one indexed lookup, exact (fingerprints cover the
12
+ * exact value), fingerprinted once per accessible key owner (shared-scope reads OR the
13
+ * owners' fingerprints).
14
+ * - **Contains / prefix LIKE** on a column declared `searchable: 'contains'` resolves in two
15
+ * index-bounded steps: (1) the token table answers a candidate id set — rows holding ALL
16
+ * of the query's fragment fingerprints under some accessible owner key; (2) candidates
17
+ * are verified against the decrypted value (the pg_trgm recheck semantics — no false
18
+ * positive survives, no true match ≥3-chars-per-word is missed). The condition then
19
+ * rewrites to the VERIFIED id set, so it composes exactly under any boolean structure,
20
+ * ORDER BY, pagination, and COUNT.
21
+ * - **Out-of-contract shapes are REJECTED loudly at query-build time** — undeclared ORDER BY,
22
+ * ranges, arbitrary LIKE patterns, aggregation over the value — each error naming the
23
+ * sanctioned paths. A limitation a developer cannot hit silently is a contract; one they
24
+ * discover in production is a bug.
25
+ */
26
+ export declare class EncryptedColumnQueryTransform implements ColumnQueryTransform {
27
+ private table;
28
+ private prop;
29
+ private column;
30
+ private config;
31
+ private runtime;
32
+ private encryptedColumns;
33
+ private tokenizer;
34
+ constructor(table: Table<any>, prop: string, column: Column<any, any>, config: EncryptedColumnConfig, runtime: ColumnQueryRuntime);
35
+ transformCondition(condition: Condition<any>, context: ColumnQueryTransformContext): Promise<Condition<any> | undefined>;
36
+ transformSort(criteria: SortCriteria<any>): SortCriteria<any>;
37
+ transformAggregate(aggregate: Aggregate<any>): Aggregate<any> | undefined;
38
+ transformGroupByField(): string;
39
+ private equalityCondition;
40
+ private likeCondition;
41
+ /**
42
+ * The two index-bounded steps of contains search (class doc): token-cover candidates,
43
+ * then decrypt-and-verify. Returns the ids whose values TRULY match the pattern.
44
+ */
45
+ private verifiedCandidateIds;
46
+ /** Candidate ids: rows whose token rows cover ALL query fragments under SOME accessible key. */
47
+ private tokenCoverCandidates;
48
+ private matches;
49
+ private parseLikePattern;
50
+ private accessibleIndexKeys;
51
+ }
52
+ //# sourceMappingURL=EncryptedColumnQueryTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EncryptedColumnQueryTransform.d.ts","sourceRoot":"","sources":["../../../src/encryption/EncryptedColumnQueryTransform.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,2BAA2B,EAC3B,SAAS,EAET,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAYzF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,6BAA8B,YAAW,oBAAoB;IAKtE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IARjB,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,SAAS,CAAyB;gBAGhC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EACxB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,kBAAkB;IAG/B,kBAAkB,CACtB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,EACzB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IA2CtC,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;IAqB7D,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS;IAYzE,qBAAqB,IAAI,MAAM;YAQjB,iBAAiB;YA8CjB,aAAa;IAsB3B;;;OAGG;YACW,oBAAoB;IAoClC,gGAAgG;YAClF,oBAAoB;IA0DlC,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,gBAAgB;YA0CV,mBAAmB;CAalC"}