@cipherstash/stack 0.18.0 → 1.0.0-rc.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.
- package/CHANGELOG.md +704 -0
- package/README.md +97 -79
- package/dist/adapter-kit.cjs +923 -0
- package/dist/adapter-kit.cjs.map +1 -0
- package/dist/adapter-kit.d.cts +82 -0
- package/dist/adapter-kit.d.ts +82 -0
- package/dist/adapter-kit.js +47 -0
- package/dist/adapter-kit.js.map +1 -0
- package/dist/base-operation-AOAIvsSB.d.cts +32 -0
- package/dist/base-operation-FXEzUXIq.d.ts +32 -0
- package/dist/{chunk-VPOTNP4K.js → chunk-3B5ZX3IS.js} +3 -1
- package/dist/chunk-3B5ZX3IS.js.map +1 -0
- package/dist/chunk-7333ZC6L.js +48 -0
- package/dist/chunk-7333ZC6L.js.map +1 -0
- package/dist/{chunk-XWPGAHBZ.js → chunk-BNO32ZMV.js} +1 -1
- package/dist/chunk-BNO32ZMV.js.map +1 -0
- package/dist/chunk-CLM7E4I6.js +4439 -0
- package/dist/chunk-CLM7E4I6.js.map +1 -0
- package/dist/{chunk-LLCCNKDL.js → chunk-HQANMV7R.js} +3 -3
- package/dist/{chunk-LLCCNKDL.js.map → chunk-HQANMV7R.js.map} +1 -1
- package/dist/chunk-JSG2AMDI.js +17 -0
- package/dist/chunk-JSG2AMDI.js.map +1 -0
- package/dist/chunk-OFQ555AX.js +191 -0
- package/dist/chunk-OFQ555AX.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/chunk-V2Q3NYIH.js +494 -0
- package/dist/chunk-V2Q3NYIH.js.map +1 -0
- package/dist/chunk-X3JRXEIB.js +98 -0
- package/dist/chunk-X3JRXEIB.js.map +1 -0
- package/dist/{chunk-ZYOZHZMJ.js → chunk-ZTP5QJ27.js} +193 -169
- package/dist/chunk-ZTP5QJ27.js.map +1 -0
- package/dist/client.cjs +4124 -49
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +6 -5
- package/dist/client.d.ts +6 -5
- package/dist/client.js +3 -1
- package/dist/columns-D2_YzrCX.d.cts +622 -0
- package/dist/columns-rZc7fQHI.d.ts +622 -0
- package/dist/dynamodb/index.cjs +19 -12
- package/dist/dynamodb/index.cjs.map +1 -1
- package/dist/dynamodb/index.d.cts +3 -2
- package/dist/dynamodb/index.d.ts +3 -2
- package/dist/dynamodb/index.js +8 -10
- package/dist/dynamodb/index.js.map +1 -1
- package/dist/encryption/index.cjs +4496 -222
- package/dist/encryption/index.cjs.map +1 -1
- package/dist/encryption/index.d.cts +807 -6
- package/dist/encryption/index.d.ts +807 -6
- package/dist/encryption/index.js +15 -7
- package/dist/encryption/v3.cjs +7896 -0
- package/dist/encryption/v3.cjs.map +1 -0
- package/dist/encryption/v3.d.cts +103 -0
- package/dist/encryption/v3.d.ts +103 -0
- package/dist/encryption/v3.js +189 -0
- package/dist/encryption/v3.js.map +1 -0
- package/dist/eql/v3/index.cjs +663 -0
- package/dist/eql/v3/index.cjs.map +1 -0
- package/dist/eql/v3/index.d.cts +173 -0
- package/dist/eql/v3/index.d.ts +173 -0
- package/dist/eql/v3/index.js +99 -0
- package/dist/eql/v3/index.js.map +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/identity/index.cjs +55 -35
- package/dist/identity/index.cjs.map +1 -1
- package/dist/identity/index.d.cts +54 -30
- package/dist/identity/index.d.ts +54 -30
- package/dist/identity/index.js +9 -177
- package/dist/identity/index.js.map +1 -1
- package/dist/index-BquA71_Y.d.ts +24 -0
- package/dist/index-fhWTOV0K.d.cts +24 -0
- package/dist/index.cjs +4547 -243
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -19
- package/dist/index.d.ts +18 -19
- package/dist/index.js +20 -5
- package/dist/index.js.map +1 -1
- package/dist/schema/index.cjs +4128 -49
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.js +3 -1
- package/dist/{types-public-BTxqjmtv.d.cts → types-public-QMjYNfQO.d.cts} +448 -251
- package/dist/{types-public-BTxqjmtv.d.ts → types-public-QMjYNfQO.d.ts} +448 -251
- package/dist/types-public.cjs.map +1 -1
- package/dist/types-public.d.cts +2 -2
- package/dist/types-public.d.ts +2 -2
- package/dist/types-public.js +2 -1
- package/dist/wasm-inline.d.ts +1643 -0
- package/dist/wasm-inline.js +4901 -0
- package/dist/wasm-inline.js.map +1 -0
- package/package.json +74 -52
- package/dist/chunk-VPOTNP4K.js.map +0 -1
- package/dist/chunk-XWPGAHBZ.js.map +0 -1
- package/dist/chunk-YWQXTZ5M.js +0 -383
- package/dist/chunk-YWQXTZ5M.js.map +0 -1
- package/dist/chunk-ZYOZHZMJ.js.map +0 -1
- package/dist/client-CIsfZ2zg.d.ts +0 -692
- package/dist/client-Dt98Rugc.d.cts +0 -692
- package/dist/drizzle/index.cjs +0 -1558
- package/dist/drizzle/index.cjs.map +0 -1
- package/dist/drizzle/index.d.cts +0 -358
- package/dist/drizzle/index.d.ts +0 -358
- package/dist/drizzle/index.js +0 -1215
- package/dist/drizzle/index.js.map +0 -1
- package/dist/supabase/index.cjs +0 -1526
- package/dist/supabase/index.cjs.map +0 -1
- package/dist/supabase/index.d.cts +0 -144
- package/dist/supabase/index.d.ts +0 -144
- package/dist/supabase/index.js +0 -899
- package/dist/supabase/index.js.map +0 -1
package/dist/client.d.cts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
import 'zod';
|
|
4
|
-
import '@cipherstash/protect-ffi';
|
|
5
|
-
import './errors/index.cjs';
|
|
1
|
+
export { EncryptionClient } from './encryption/index.cjs';
|
|
2
|
+
export { q as EncryptedColumn, r as EncryptedField, z as EncryptedTable, A as EncryptedTableColumn, I as InferEncrypted, J as InferPlaintext, Z as encryptedColumn, _ as encryptedField, $ as encryptedTable } from './types-public-QMjYNfQO.cjs';
|
|
6
3
|
import '@byteslice/result';
|
|
4
|
+
import './errors/index.cjs';
|
|
5
|
+
import '@cipherstash/protect-ffi';
|
|
7
6
|
import './identity/index.cjs';
|
|
7
|
+
import './base-operation-AOAIvsSB.cjs';
|
|
8
|
+
import 'zod';
|
package/dist/client.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
import 'zod';
|
|
4
|
-
import '@cipherstash/protect-ffi';
|
|
5
|
-
import './errors/index.js';
|
|
1
|
+
export { EncryptionClient } from './encryption/index.js';
|
|
2
|
+
export { q as EncryptedColumn, r as EncryptedField, z as EncryptedTable, A as EncryptedTableColumn, I as InferEncrypted, J as InferPlaintext, Z as encryptedColumn, _ as encryptedField, $ as encryptedTable } from './types-public-QMjYNfQO.js';
|
|
6
3
|
import '@byteslice/result';
|
|
4
|
+
import './errors/index.js';
|
|
5
|
+
import '@cipherstash/protect-ffi';
|
|
7
6
|
import './identity/index.js';
|
|
7
|
+
import './base-operation-FXEzUXIq.js';
|
|
8
|
+
import 'zod';
|
package/dist/client.js
CHANGED
|
@@ -0,0 +1,622 @@
|
|
|
1
|
+
import { k as ColumnSchema } from './types-public-QMjYNfQO.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The query capabilities a v3 concrete domain exposes. These are SDK-facing
|
|
5
|
+
* semantic flags describing what kinds of query terms a column can produce —
|
|
6
|
+
* NOT the raw EQL index keys. They are metadata only and never emitted by
|
|
7
|
+
* `build()`.
|
|
8
|
+
*
|
|
9
|
+
* - `equality`: exact-match lookups (EQL `hm`, or comparison via `ob`).
|
|
10
|
+
* - `orderAndRange`: comparison / range lookups (EQL `op`, or `ob` on `_ord_ore` domains).
|
|
11
|
+
* - `freeTextSearch`: tokenised substring match (EQL `bf`).
|
|
12
|
+
* - `searchableJson`: encrypted-JSONB containment / selector lookups (EQL
|
|
13
|
+
* `ste_vec`). Optional and mutually exclusive with the scalar flags — a
|
|
14
|
+
* `public.eql_v3_json` document is queried by structure, not by scalar term.
|
|
15
|
+
*/
|
|
16
|
+
type QueryCapabilities = Readonly<{
|
|
17
|
+
equality: boolean;
|
|
18
|
+
orderAndRange: boolean;
|
|
19
|
+
freeTextSearch: boolean;
|
|
20
|
+
searchableJson?: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* The `cast_as` kinds whose decrypted plaintext reconstructs to a JS `Date`.
|
|
24
|
+
*
|
|
25
|
+
* SINGLE SOURCE OF TRUTH for the date-like set. Both the type-level
|
|
26
|
+
* {@link PlaintextFromKind} and the runtime `rowReconstructor` (encryption/v3.ts)
|
|
27
|
+
* derive their "reconstructs to `Date`" decision from this array, so the next
|
|
28
|
+
* `Date`-backed cast is added in exactly one place — never hand-synced across a
|
|
29
|
+
* type and a runtime guard that could silently drift.
|
|
30
|
+
*
|
|
31
|
+
* (`timestamp` reconstructs to `Date` just like `date`, but its `cast_as` tells
|
|
32
|
+
* the FFI not to truncate the time-of-day.)
|
|
33
|
+
*/
|
|
34
|
+
declare const DATE_LIKE_CASTS: readonly ["date", "timestamp"];
|
|
35
|
+
/** A `cast_as` kind that reconstructs to `Date` — see {@link DATE_LIKE_CASTS}. */
|
|
36
|
+
type DateLikeCast = (typeof DATE_LIKE_CASTS)[number];
|
|
37
|
+
/** The plaintext (TypeScript) kind a v3 domain decrypts to. A subset of the
|
|
38
|
+
* SDK `CastAs` enum, restricted to the scalar kinds v3 domains actually use. */
|
|
39
|
+
type PlaintextKind = 'string' | 'number' | 'bigint' | 'boolean' | 'json' | DateLikeCast;
|
|
40
|
+
/**
|
|
41
|
+
* The full, literal definition of a v3 domain. This is the LOAD-BEARING type:
|
|
42
|
+
* the base column class carries a private field of this type so that every
|
|
43
|
+
* concrete (otherwise-empty) subclass is discriminated by its literal
|
|
44
|
+
* `eqlType`/`castAs`/`capabilities` — TypeScript empty subclasses are NOT
|
|
45
|
+
* nominal, so without this a storage-only `boolean` column would be assignable to
|
|
46
|
+
* a storage-only `date` column and plaintext inference would collapse.
|
|
47
|
+
*/
|
|
48
|
+
type V3DomainDefinition = Readonly<{
|
|
49
|
+
eqlType: `public.${string}`;
|
|
50
|
+
castAs: PlaintextKind;
|
|
51
|
+
capabilities: QueryCapabilities;
|
|
52
|
+
}>;
|
|
53
|
+
/** Type-level mirror of {@link isQueryableCapabilities}: `false` for a
|
|
54
|
+
* storage-only domain (all capability flags `false`), `true` otherwise. */
|
|
55
|
+
type QueryableFlag<D extends V3DomainDefinition> = D['capabilities'] extends {
|
|
56
|
+
equality: false;
|
|
57
|
+
orderAndRange: false;
|
|
58
|
+
freeTextSearch: false;
|
|
59
|
+
searchableJson?: false | undefined;
|
|
60
|
+
} ? false : true;
|
|
61
|
+
/**
|
|
62
|
+
* The concrete EQL v3 domain name for a full-capability text column.
|
|
63
|
+
* Recorded as metadata for future DDL / query-dialect increments; it is
|
|
64
|
+
* intentionally absent from the emitted encrypt config.
|
|
65
|
+
*/
|
|
66
|
+
declare const TEXT_SEARCH_EQL_TYPE = "public.eql_v3_text_search";
|
|
67
|
+
declare const INTEGER: {
|
|
68
|
+
readonly eqlType: "public.eql_v3_integer";
|
|
69
|
+
readonly castAs: "number";
|
|
70
|
+
readonly capabilities: {
|
|
71
|
+
readonly equality: false;
|
|
72
|
+
readonly orderAndRange: false;
|
|
73
|
+
readonly freeTextSearch: false;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
declare const INTEGER_EQ: {
|
|
77
|
+
readonly eqlType: "public.eql_v3_integer_eq";
|
|
78
|
+
readonly castAs: "number";
|
|
79
|
+
readonly capabilities: {
|
|
80
|
+
readonly equality: true;
|
|
81
|
+
readonly orderAndRange: false;
|
|
82
|
+
readonly freeTextSearch: false;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
declare const INTEGER_ORD_ORE: {
|
|
86
|
+
readonly eqlType: "public.eql_v3_integer_ord_ore";
|
|
87
|
+
readonly castAs: "number";
|
|
88
|
+
readonly capabilities: {
|
|
89
|
+
readonly equality: true;
|
|
90
|
+
readonly orderAndRange: true;
|
|
91
|
+
readonly freeTextSearch: false;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
declare const INTEGER_ORD: {
|
|
95
|
+
readonly eqlType: "public.eql_v3_integer_ord";
|
|
96
|
+
readonly castAs: "number";
|
|
97
|
+
readonly capabilities: {
|
|
98
|
+
readonly equality: true;
|
|
99
|
+
readonly orderAndRange: true;
|
|
100
|
+
readonly freeTextSearch: false;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
declare const SMALLINT: {
|
|
104
|
+
readonly eqlType: "public.eql_v3_smallint";
|
|
105
|
+
readonly castAs: "number";
|
|
106
|
+
readonly capabilities: {
|
|
107
|
+
readonly equality: false;
|
|
108
|
+
readonly orderAndRange: false;
|
|
109
|
+
readonly freeTextSearch: false;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
declare const SMALLINT_EQ: {
|
|
113
|
+
readonly eqlType: "public.eql_v3_smallint_eq";
|
|
114
|
+
readonly castAs: "number";
|
|
115
|
+
readonly capabilities: {
|
|
116
|
+
readonly equality: true;
|
|
117
|
+
readonly orderAndRange: false;
|
|
118
|
+
readonly freeTextSearch: false;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
declare const SMALLINT_ORD_ORE: {
|
|
122
|
+
readonly eqlType: "public.eql_v3_smallint_ord_ore";
|
|
123
|
+
readonly castAs: "number";
|
|
124
|
+
readonly capabilities: {
|
|
125
|
+
readonly equality: true;
|
|
126
|
+
readonly orderAndRange: true;
|
|
127
|
+
readonly freeTextSearch: false;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
declare const SMALLINT_ORD: {
|
|
131
|
+
readonly eqlType: "public.eql_v3_smallint_ord";
|
|
132
|
+
readonly castAs: "number";
|
|
133
|
+
readonly capabilities: {
|
|
134
|
+
readonly equality: true;
|
|
135
|
+
readonly orderAndRange: true;
|
|
136
|
+
readonly freeTextSearch: false;
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
declare const BIGINT: {
|
|
140
|
+
readonly eqlType: "public.eql_v3_bigint";
|
|
141
|
+
readonly castAs: "bigint";
|
|
142
|
+
readonly capabilities: {
|
|
143
|
+
readonly equality: false;
|
|
144
|
+
readonly orderAndRange: false;
|
|
145
|
+
readonly freeTextSearch: false;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
declare const BIGINT_EQ: {
|
|
149
|
+
readonly eqlType: "public.eql_v3_bigint_eq";
|
|
150
|
+
readonly castAs: "bigint";
|
|
151
|
+
readonly capabilities: {
|
|
152
|
+
readonly equality: true;
|
|
153
|
+
readonly orderAndRange: false;
|
|
154
|
+
readonly freeTextSearch: false;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
declare const BIGINT_ORD_ORE: {
|
|
158
|
+
readonly eqlType: "public.eql_v3_bigint_ord_ore";
|
|
159
|
+
readonly castAs: "bigint";
|
|
160
|
+
readonly capabilities: {
|
|
161
|
+
readonly equality: true;
|
|
162
|
+
readonly orderAndRange: true;
|
|
163
|
+
readonly freeTextSearch: false;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
declare const BIGINT_ORD: {
|
|
167
|
+
readonly eqlType: "public.eql_v3_bigint_ord";
|
|
168
|
+
readonly castAs: "bigint";
|
|
169
|
+
readonly capabilities: {
|
|
170
|
+
readonly equality: true;
|
|
171
|
+
readonly orderAndRange: true;
|
|
172
|
+
readonly freeTextSearch: false;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
declare const DATE: {
|
|
176
|
+
readonly eqlType: "public.eql_v3_date";
|
|
177
|
+
readonly castAs: "date";
|
|
178
|
+
readonly capabilities: {
|
|
179
|
+
readonly equality: false;
|
|
180
|
+
readonly orderAndRange: false;
|
|
181
|
+
readonly freeTextSearch: false;
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
declare const DATE_EQ: {
|
|
185
|
+
readonly eqlType: "public.eql_v3_date_eq";
|
|
186
|
+
readonly castAs: "date";
|
|
187
|
+
readonly capabilities: {
|
|
188
|
+
readonly equality: true;
|
|
189
|
+
readonly orderAndRange: false;
|
|
190
|
+
readonly freeTextSearch: false;
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
declare const DATE_ORD_ORE: {
|
|
194
|
+
readonly eqlType: "public.eql_v3_date_ord_ore";
|
|
195
|
+
readonly castAs: "date";
|
|
196
|
+
readonly capabilities: {
|
|
197
|
+
readonly equality: true;
|
|
198
|
+
readonly orderAndRange: true;
|
|
199
|
+
readonly freeTextSearch: false;
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
declare const DATE_ORD: {
|
|
203
|
+
readonly eqlType: "public.eql_v3_date_ord";
|
|
204
|
+
readonly castAs: "date";
|
|
205
|
+
readonly capabilities: {
|
|
206
|
+
readonly equality: true;
|
|
207
|
+
readonly orderAndRange: true;
|
|
208
|
+
readonly freeTextSearch: false;
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
declare const TIMESTAMP: {
|
|
212
|
+
readonly eqlType: "public.eql_v3_timestamp";
|
|
213
|
+
readonly castAs: "timestamp";
|
|
214
|
+
readonly capabilities: {
|
|
215
|
+
readonly equality: false;
|
|
216
|
+
readonly orderAndRange: false;
|
|
217
|
+
readonly freeTextSearch: false;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
declare const TIMESTAMP_EQ: {
|
|
221
|
+
readonly eqlType: "public.eql_v3_timestamp_eq";
|
|
222
|
+
readonly castAs: "timestamp";
|
|
223
|
+
readonly capabilities: {
|
|
224
|
+
readonly equality: true;
|
|
225
|
+
readonly orderAndRange: false;
|
|
226
|
+
readonly freeTextSearch: false;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
declare const TIMESTAMP_ORD_ORE: {
|
|
230
|
+
readonly eqlType: "public.eql_v3_timestamp_ord_ore";
|
|
231
|
+
readonly castAs: "timestamp";
|
|
232
|
+
readonly capabilities: {
|
|
233
|
+
readonly equality: true;
|
|
234
|
+
readonly orderAndRange: true;
|
|
235
|
+
readonly freeTextSearch: false;
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
declare const TIMESTAMP_ORD: {
|
|
239
|
+
readonly eqlType: "public.eql_v3_timestamp_ord";
|
|
240
|
+
readonly castAs: "timestamp";
|
|
241
|
+
readonly capabilities: {
|
|
242
|
+
readonly equality: true;
|
|
243
|
+
readonly orderAndRange: true;
|
|
244
|
+
readonly freeTextSearch: false;
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
declare const NUMERIC: {
|
|
248
|
+
readonly eqlType: "public.eql_v3_numeric";
|
|
249
|
+
readonly castAs: "number";
|
|
250
|
+
readonly capabilities: {
|
|
251
|
+
readonly equality: false;
|
|
252
|
+
readonly orderAndRange: false;
|
|
253
|
+
readonly freeTextSearch: false;
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
declare const NUMERIC_EQ: {
|
|
257
|
+
readonly eqlType: "public.eql_v3_numeric_eq";
|
|
258
|
+
readonly castAs: "number";
|
|
259
|
+
readonly capabilities: {
|
|
260
|
+
readonly equality: true;
|
|
261
|
+
readonly orderAndRange: false;
|
|
262
|
+
readonly freeTextSearch: false;
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
declare const NUMERIC_ORD_ORE: {
|
|
266
|
+
readonly eqlType: "public.eql_v3_numeric_ord_ore";
|
|
267
|
+
readonly castAs: "number";
|
|
268
|
+
readonly capabilities: {
|
|
269
|
+
readonly equality: true;
|
|
270
|
+
readonly orderAndRange: true;
|
|
271
|
+
readonly freeTextSearch: false;
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
declare const NUMERIC_ORD: {
|
|
275
|
+
readonly eqlType: "public.eql_v3_numeric_ord";
|
|
276
|
+
readonly castAs: "number";
|
|
277
|
+
readonly capabilities: {
|
|
278
|
+
readonly equality: true;
|
|
279
|
+
readonly orderAndRange: true;
|
|
280
|
+
readonly freeTextSearch: false;
|
|
281
|
+
};
|
|
282
|
+
};
|
|
283
|
+
declare const TEXT: {
|
|
284
|
+
readonly eqlType: "public.eql_v3_text";
|
|
285
|
+
readonly castAs: "string";
|
|
286
|
+
readonly capabilities: {
|
|
287
|
+
readonly equality: false;
|
|
288
|
+
readonly orderAndRange: false;
|
|
289
|
+
readonly freeTextSearch: false;
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
declare const TEXT_EQ: {
|
|
293
|
+
readonly eqlType: "public.eql_v3_text_eq";
|
|
294
|
+
readonly castAs: "string";
|
|
295
|
+
readonly capabilities: {
|
|
296
|
+
readonly equality: true;
|
|
297
|
+
readonly orderAndRange: false;
|
|
298
|
+
readonly freeTextSearch: false;
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
declare const TEXT_MATCH: {
|
|
302
|
+
readonly eqlType: "public.eql_v3_text_match";
|
|
303
|
+
readonly castAs: "string";
|
|
304
|
+
readonly capabilities: {
|
|
305
|
+
readonly equality: false;
|
|
306
|
+
readonly orderAndRange: false;
|
|
307
|
+
readonly freeTextSearch: true;
|
|
308
|
+
};
|
|
309
|
+
};
|
|
310
|
+
declare const TEXT_ORD_ORE: {
|
|
311
|
+
readonly eqlType: "public.eql_v3_text_ord_ore";
|
|
312
|
+
readonly castAs: "string";
|
|
313
|
+
readonly capabilities: {
|
|
314
|
+
readonly equality: true;
|
|
315
|
+
readonly orderAndRange: true;
|
|
316
|
+
readonly freeTextSearch: false;
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
declare const TEXT_ORD: {
|
|
320
|
+
readonly eqlType: "public.eql_v3_text_ord";
|
|
321
|
+
readonly castAs: "string";
|
|
322
|
+
readonly capabilities: {
|
|
323
|
+
readonly equality: true;
|
|
324
|
+
readonly orderAndRange: true;
|
|
325
|
+
readonly freeTextSearch: false;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
declare const BOOLEAN: {
|
|
329
|
+
readonly eqlType: "public.eql_v3_boolean";
|
|
330
|
+
readonly castAs: "boolean";
|
|
331
|
+
readonly capabilities: {
|
|
332
|
+
readonly equality: false;
|
|
333
|
+
readonly orderAndRange: false;
|
|
334
|
+
readonly freeTextSearch: false;
|
|
335
|
+
};
|
|
336
|
+
};
|
|
337
|
+
declare const REAL: {
|
|
338
|
+
readonly eqlType: "public.eql_v3_real";
|
|
339
|
+
readonly castAs: "number";
|
|
340
|
+
readonly capabilities: {
|
|
341
|
+
readonly equality: false;
|
|
342
|
+
readonly orderAndRange: false;
|
|
343
|
+
readonly freeTextSearch: false;
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
declare const REAL_EQ: {
|
|
347
|
+
readonly eqlType: "public.eql_v3_real_eq";
|
|
348
|
+
readonly castAs: "number";
|
|
349
|
+
readonly capabilities: {
|
|
350
|
+
readonly equality: true;
|
|
351
|
+
readonly orderAndRange: false;
|
|
352
|
+
readonly freeTextSearch: false;
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
declare const REAL_ORD_ORE: {
|
|
356
|
+
readonly eqlType: "public.eql_v3_real_ord_ore";
|
|
357
|
+
readonly castAs: "number";
|
|
358
|
+
readonly capabilities: {
|
|
359
|
+
readonly equality: true;
|
|
360
|
+
readonly orderAndRange: true;
|
|
361
|
+
readonly freeTextSearch: false;
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
declare const REAL_ORD: {
|
|
365
|
+
readonly eqlType: "public.eql_v3_real_ord";
|
|
366
|
+
readonly castAs: "number";
|
|
367
|
+
readonly capabilities: {
|
|
368
|
+
readonly equality: true;
|
|
369
|
+
readonly orderAndRange: true;
|
|
370
|
+
readonly freeTextSearch: false;
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
declare const DOUBLE: {
|
|
374
|
+
readonly eqlType: "public.eql_v3_double";
|
|
375
|
+
readonly castAs: "number";
|
|
376
|
+
readonly capabilities: {
|
|
377
|
+
readonly equality: false;
|
|
378
|
+
readonly orderAndRange: false;
|
|
379
|
+
readonly freeTextSearch: false;
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
declare const DOUBLE_EQ: {
|
|
383
|
+
readonly eqlType: "public.eql_v3_double_eq";
|
|
384
|
+
readonly castAs: "number";
|
|
385
|
+
readonly capabilities: {
|
|
386
|
+
readonly equality: true;
|
|
387
|
+
readonly orderAndRange: false;
|
|
388
|
+
readonly freeTextSearch: false;
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
declare const DOUBLE_ORD_ORE: {
|
|
392
|
+
readonly eqlType: "public.eql_v3_double_ord_ore";
|
|
393
|
+
readonly castAs: "number";
|
|
394
|
+
readonly capabilities: {
|
|
395
|
+
readonly equality: true;
|
|
396
|
+
readonly orderAndRange: true;
|
|
397
|
+
readonly freeTextSearch: false;
|
|
398
|
+
};
|
|
399
|
+
};
|
|
400
|
+
declare const DOUBLE_ORD: {
|
|
401
|
+
readonly eqlType: "public.eql_v3_double_ord";
|
|
402
|
+
readonly castAs: "number";
|
|
403
|
+
readonly capabilities: {
|
|
404
|
+
readonly equality: true;
|
|
405
|
+
readonly orderAndRange: true;
|
|
406
|
+
readonly freeTextSearch: false;
|
|
407
|
+
};
|
|
408
|
+
};
|
|
409
|
+
/**
|
|
410
|
+
* Shared base for every v3 concrete domain column. Parameterised by the FULL
|
|
411
|
+
* literal {@link V3DomainDefinition} (not by capabilities alone): the private
|
|
412
|
+
* `definition` field carries the literal `eqlType`/`castAs`/`capabilities`, so
|
|
413
|
+
* two otherwise-empty subclasses (e.g. `EncryptedBooleanColumn` and
|
|
414
|
+
* `EncryptedDateColumn`, both storage-only) are NOT mutually assignable. This
|
|
415
|
+
* nominality is what keeps plaintext inference precise.
|
|
416
|
+
*/
|
|
417
|
+
declare class EncryptedV3Column<D extends V3DomainDefinition> {
|
|
418
|
+
private readonly columnName;
|
|
419
|
+
private readonly definition;
|
|
420
|
+
constructor(columnName: string, definition: D);
|
|
421
|
+
getName(): string;
|
|
422
|
+
/** The concrete EQL v3 domain name. Metadata only; not emitted by `build()`. */
|
|
423
|
+
getEqlType(): D['eqlType'];
|
|
424
|
+
/** The semantic query capabilities this domain exposes. Metadata only. */
|
|
425
|
+
getQueryCapabilities(): D['capabilities'];
|
|
426
|
+
/** `true` when this domain can produce at least one kind of query term. */
|
|
427
|
+
isQueryable(): QueryableFlag<D>;
|
|
428
|
+
/** Emit the encrypt-config column: `cast_as` plus capability-derived indexes. */
|
|
429
|
+
build(): ColumnSchema;
|
|
430
|
+
}
|
|
431
|
+
declare const TEXT_SEARCH_DOMAIN: {
|
|
432
|
+
readonly eqlType: "public.eql_v3_text_search";
|
|
433
|
+
readonly castAs: "string";
|
|
434
|
+
readonly capabilities: {
|
|
435
|
+
readonly equality: true;
|
|
436
|
+
readonly orderAndRange: true;
|
|
437
|
+
readonly freeTextSearch: true;
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
/**
|
|
441
|
+
* Builder for a `public.eql_v3_text_search` column.
|
|
442
|
+
*
|
|
443
|
+
* The concrete type inherently enables equality + order/range + free-text
|
|
444
|
+
* match — there are no capability-enabling or tuning methods. The match index
|
|
445
|
+
* is always emitted with the default configuration.
|
|
446
|
+
*
|
|
447
|
+
* NOTE — querying: a `text_search` column emits all three indexes (`unique`,
|
|
448
|
+
* `ope`, `match`), and the shared index-inference picks them by fixed priority
|
|
449
|
+
* `unique > match > ordering`. So `encryptQuery(value, { column, table })` with NO
|
|
450
|
+
* explicit `queryType` builds an EQUALITY term (via `unique`), NOT a free-text
|
|
451
|
+
* match — a substring like `'joh'` then matches nothing. To run a free-text
|
|
452
|
+
* match query you MUST pass `queryType: 'freeTextSearch'`:
|
|
453
|
+
*
|
|
454
|
+
* ```typescript
|
|
455
|
+
* // equality (default): exact value only
|
|
456
|
+
* client.encryptQuery('john@example.com', { column: users.email, table: users })
|
|
457
|
+
* // free-text match: substring/token search
|
|
458
|
+
* client.encryptQuery('joh', { column: users.email, table: users, queryType: 'freeTextSearch' })
|
|
459
|
+
* ```
|
|
460
|
+
*/
|
|
461
|
+
declare class EncryptedTextSearchColumn extends EncryptedV3Column<typeof TEXT_SEARCH_DOMAIN> {
|
|
462
|
+
constructor(columnName: string);
|
|
463
|
+
}
|
|
464
|
+
declare class EncryptedIntegerColumn extends EncryptedV3Column<typeof INTEGER> {
|
|
465
|
+
}
|
|
466
|
+
declare class EncryptedIntegerEqColumn extends EncryptedV3Column<typeof INTEGER_EQ> {
|
|
467
|
+
}
|
|
468
|
+
declare class EncryptedIntegerOrdOreColumn extends EncryptedV3Column<typeof INTEGER_ORD_ORE> {
|
|
469
|
+
}
|
|
470
|
+
declare class EncryptedIntegerOrdColumn extends EncryptedV3Column<typeof INTEGER_ORD> {
|
|
471
|
+
}
|
|
472
|
+
declare class EncryptedSmallintColumn extends EncryptedV3Column<typeof SMALLINT> {
|
|
473
|
+
}
|
|
474
|
+
declare class EncryptedSmallintEqColumn extends EncryptedV3Column<typeof SMALLINT_EQ> {
|
|
475
|
+
}
|
|
476
|
+
declare class EncryptedSmallintOrdOreColumn extends EncryptedV3Column<typeof SMALLINT_ORD_ORE> {
|
|
477
|
+
}
|
|
478
|
+
declare class EncryptedSmallintOrdColumn extends EncryptedV3Column<typeof SMALLINT_ORD> {
|
|
479
|
+
}
|
|
480
|
+
declare class EncryptedBigintColumn extends EncryptedV3Column<typeof BIGINT> {
|
|
481
|
+
}
|
|
482
|
+
declare class EncryptedBigintEqColumn extends EncryptedV3Column<typeof BIGINT_EQ> {
|
|
483
|
+
}
|
|
484
|
+
declare class EncryptedBigintOrdOreColumn extends EncryptedV3Column<typeof BIGINT_ORD_ORE> {
|
|
485
|
+
}
|
|
486
|
+
declare class EncryptedBigintOrdColumn extends EncryptedV3Column<typeof BIGINT_ORD> {
|
|
487
|
+
}
|
|
488
|
+
declare class EncryptedDateColumn extends EncryptedV3Column<typeof DATE> {
|
|
489
|
+
}
|
|
490
|
+
declare class EncryptedDateEqColumn extends EncryptedV3Column<typeof DATE_EQ> {
|
|
491
|
+
}
|
|
492
|
+
declare class EncryptedDateOrdOreColumn extends EncryptedV3Column<typeof DATE_ORD_ORE> {
|
|
493
|
+
}
|
|
494
|
+
declare class EncryptedDateOrdColumn extends EncryptedV3Column<typeof DATE_ORD> {
|
|
495
|
+
}
|
|
496
|
+
declare class EncryptedTimestampColumn extends EncryptedV3Column<typeof TIMESTAMP> {
|
|
497
|
+
}
|
|
498
|
+
declare class EncryptedTimestampEqColumn extends EncryptedV3Column<typeof TIMESTAMP_EQ> {
|
|
499
|
+
}
|
|
500
|
+
declare class EncryptedTimestampOrdOreColumn extends EncryptedV3Column<typeof TIMESTAMP_ORD_ORE> {
|
|
501
|
+
}
|
|
502
|
+
declare class EncryptedTimestampOrdColumn extends EncryptedV3Column<typeof TIMESTAMP_ORD> {
|
|
503
|
+
}
|
|
504
|
+
declare class EncryptedNumericColumn extends EncryptedV3Column<typeof NUMERIC> {
|
|
505
|
+
}
|
|
506
|
+
declare class EncryptedNumericEqColumn extends EncryptedV3Column<typeof NUMERIC_EQ> {
|
|
507
|
+
}
|
|
508
|
+
declare class EncryptedNumericOrdOreColumn extends EncryptedV3Column<typeof NUMERIC_ORD_ORE> {
|
|
509
|
+
}
|
|
510
|
+
declare class EncryptedNumericOrdColumn extends EncryptedV3Column<typeof NUMERIC_ORD> {
|
|
511
|
+
}
|
|
512
|
+
declare class EncryptedTextColumn extends EncryptedV3Column<typeof TEXT> {
|
|
513
|
+
}
|
|
514
|
+
declare class EncryptedTextEqColumn extends EncryptedV3Column<typeof TEXT_EQ> {
|
|
515
|
+
}
|
|
516
|
+
declare class EncryptedTextMatchColumn extends EncryptedV3Column<typeof TEXT_MATCH> {
|
|
517
|
+
}
|
|
518
|
+
declare class EncryptedTextOrdOreColumn extends EncryptedV3Column<typeof TEXT_ORD_ORE> {
|
|
519
|
+
}
|
|
520
|
+
declare class EncryptedTextOrdColumn extends EncryptedV3Column<typeof TEXT_ORD> {
|
|
521
|
+
}
|
|
522
|
+
declare class EncryptedBooleanColumn extends EncryptedV3Column<typeof BOOLEAN> {
|
|
523
|
+
}
|
|
524
|
+
declare class EncryptedRealColumn extends EncryptedV3Column<typeof REAL> {
|
|
525
|
+
}
|
|
526
|
+
declare class EncryptedRealEqColumn extends EncryptedV3Column<typeof REAL_EQ> {
|
|
527
|
+
}
|
|
528
|
+
declare class EncryptedRealOrdOreColumn extends EncryptedV3Column<typeof REAL_ORD_ORE> {
|
|
529
|
+
}
|
|
530
|
+
declare class EncryptedRealOrdColumn extends EncryptedV3Column<typeof REAL_ORD> {
|
|
531
|
+
}
|
|
532
|
+
declare class EncryptedDoubleColumn extends EncryptedV3Column<typeof DOUBLE> {
|
|
533
|
+
}
|
|
534
|
+
declare class EncryptedDoubleEqColumn extends EncryptedV3Column<typeof DOUBLE_EQ> {
|
|
535
|
+
}
|
|
536
|
+
declare class EncryptedDoubleOrdOreColumn extends EncryptedV3Column<typeof DOUBLE_ORD_ORE> {
|
|
537
|
+
}
|
|
538
|
+
declare class EncryptedDoubleOrdColumn extends EncryptedV3Column<typeof DOUBLE_ORD> {
|
|
539
|
+
}
|
|
540
|
+
declare const JSON_DOMAIN: {
|
|
541
|
+
readonly eqlType: "public.eql_v3_json";
|
|
542
|
+
readonly castAs: "json";
|
|
543
|
+
readonly capabilities: {
|
|
544
|
+
readonly equality: false;
|
|
545
|
+
readonly orderAndRange: false;
|
|
546
|
+
readonly freeTextSearch: false;
|
|
547
|
+
readonly searchableJson: true;
|
|
548
|
+
};
|
|
549
|
+
};
|
|
550
|
+
/**
|
|
551
|
+
* Builder for a `public.eql_v3_json` column — an encrypted JSONB document
|
|
552
|
+
* (a {@link JsonDocument}: object, array, or null). It round-trips through
|
|
553
|
+
* `encrypt`/`decrypt`, and containment queries use the encrypted-JSONB index
|
|
554
|
+
* emitted by `build()`. (The stored payload is protect-ffi's `SteVecDocument`,
|
|
555
|
+
* and the config index kind is `ste_vec` — both protect-ffi names.)
|
|
556
|
+
*/
|
|
557
|
+
declare class EncryptedJsonColumn extends EncryptedV3Column<typeof JSON_DOMAIN> {
|
|
558
|
+
constructor(columnName: string);
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Union of every v3 concrete column type. Used as the value type for v3 table
|
|
562
|
+
* columns so a table may mix any generated domains.
|
|
563
|
+
*/
|
|
564
|
+
type AnyEncryptedV3Column = EncryptedIntegerColumn | EncryptedIntegerEqColumn | EncryptedIntegerOrdOreColumn | EncryptedIntegerOrdColumn | EncryptedSmallintColumn | EncryptedSmallintEqColumn | EncryptedSmallintOrdOreColumn | EncryptedSmallintOrdColumn | EncryptedBigintColumn | EncryptedBigintEqColumn | EncryptedBigintOrdOreColumn | EncryptedBigintOrdColumn | EncryptedDateColumn | EncryptedDateEqColumn | EncryptedDateOrdOreColumn | EncryptedDateOrdColumn | EncryptedTimestampColumn | EncryptedTimestampEqColumn | EncryptedTimestampOrdOreColumn | EncryptedTimestampOrdColumn | EncryptedNumericColumn | EncryptedNumericEqColumn | EncryptedNumericOrdOreColumn | EncryptedNumericOrdColumn | EncryptedTextColumn | EncryptedTextEqColumn | EncryptedTextMatchColumn | EncryptedTextOrdOreColumn | EncryptedTextOrdColumn | EncryptedTextSearchColumn | EncryptedBooleanColumn | EncryptedRealColumn | EncryptedRealEqColumn | EncryptedRealOrdOreColumn | EncryptedRealOrdColumn | EncryptedDoubleColumn | EncryptedDoubleEqColumn | EncryptedDoubleOrdOreColumn | EncryptedDoubleOrdColumn | EncryptedJsonColumn;
|
|
565
|
+
/**
|
|
566
|
+
* A factory that builds a concrete v3 column for a given DB column name.
|
|
567
|
+
*
|
|
568
|
+
* Declared here rather than beside `DOMAIN_REGISTRY` so that `./types` can
|
|
569
|
+
* constrain its own export against it without importing from `./domain-registry`,
|
|
570
|
+
* which imports `./types` back as a value.
|
|
571
|
+
*/
|
|
572
|
+
type V3ColumnFactory = (name: string) => AnyEncryptedV3Column;
|
|
573
|
+
/**
|
|
574
|
+
* Shape of v3 table columns: every value is a v3 concrete column builder.
|
|
575
|
+
* (Nested fields are deferred to later increments.)
|
|
576
|
+
*/
|
|
577
|
+
type EncryptedV3TableColumn = {
|
|
578
|
+
[key: string]: AnyEncryptedV3Column;
|
|
579
|
+
};
|
|
580
|
+
/** A JSON value at any depth. Used for the values NESTED inside a document. */
|
|
581
|
+
type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
582
|
+
[key: string]: JsonValue;
|
|
583
|
+
};
|
|
584
|
+
/**
|
|
585
|
+
* The plaintext a `public.eql_v3_json` column encrypts and reconstructs: a JSON
|
|
586
|
+
* DOCUMENT — an object, an array, or `null`. NOT a bare top-level scalar:
|
|
587
|
+
* protect-ffi's `json` cast rejects a top-level string/number/boolean
|
|
588
|
+
* ("Cannot convert … to Json"), because a scalar belongs in a scalar domain
|
|
589
|
+
* (`types.TextEq`, `types.IntegerEq`, …). Nested scalars are ordinary
|
|
590
|
+
* {@link JsonValue}s and are fully supported.
|
|
591
|
+
*/
|
|
592
|
+
type JsonDocument = null | JsonValue[] | {
|
|
593
|
+
[key: string]: JsonValue;
|
|
594
|
+
};
|
|
595
|
+
/** Map a domain's {@link PlaintextKind} to its TypeScript plaintext type. */
|
|
596
|
+
type PlaintextFromKind<K extends PlaintextKind> = K extends 'string' ? string : K extends 'number' ? number : K extends 'bigint' ? bigint : K extends 'boolean' ? boolean : K extends DateLikeCast ? Date : K extends 'json' ? JsonDocument : never;
|
|
597
|
+
/**
|
|
598
|
+
* The plaintext type for a single v3 column, read from the literal domain
|
|
599
|
+
* definition carried on the base class's private field. This is stable across
|
|
600
|
+
* empty subclasses that share the same base generic — a subclass-name
|
|
601
|
+
* conditional would collapse because those subclasses are structurally
|
|
602
|
+
* assignable to one another.
|
|
603
|
+
*/
|
|
604
|
+
type PlaintextForColumn<C> = C extends EncryptedV3Column<infer D> ? PlaintextFromKind<D['castAs']> : never;
|
|
605
|
+
/**
|
|
606
|
+
* The user-facing `queryType` names a v3 column supports, derived 1:1 from its
|
|
607
|
+
* capability flags. Resolves to `never` for a storage-only column (all flags
|
|
608
|
+
* `false`) and for any non-v3 value. The names mirror the {@link QueryCapabilities}
|
|
609
|
+
* keys and the first three {@link import('@/types').QueryTypeName} members.
|
|
610
|
+
*/
|
|
611
|
+
type QueryTypesForColumn<C> = C extends EncryptedV3Column<infer D> ? (D['capabilities']['equality'] extends true ? 'equality' : never) | (D['capabilities']['orderAndRange'] extends true ? 'orderAndRange' : never) | (D['capabilities']['freeTextSearch'] extends true ? 'freeTextSearch' : never) : never;
|
|
612
|
+
/**
|
|
613
|
+
* The concrete EQL v3 type string for a single column, read from the literal
|
|
614
|
+
* domain definition carried on the base class's private field (mirrors
|
|
615
|
+
* {@link PlaintextForColumn}). Distributes over a union of columns, so
|
|
616
|
+
* `EqlTypeForColumn<AnyEncryptedV3Column>` yields the union of every domain's
|
|
617
|
+
* `eqlType` — the canonical, source-of-truth key set for a type-driven test
|
|
618
|
+
* matrix keyed by domain.
|
|
619
|
+
*/
|
|
620
|
+
type EqlTypeForColumn<C> = C extends EncryptedV3Column<infer D> ? D['eqlType'] : never;
|
|
621
|
+
|
|
622
|
+
export { type AnyEncryptedV3Column as A, EncryptedSmallintEqColumn as B, EncryptedSmallintOrdColumn as C, DATE_LIKE_CASTS as D, EncryptedBigintColumn as E, EncryptedSmallintOrdOreColumn as F, EncryptedTextColumn as G, EncryptedTextEqColumn as H, EncryptedTextMatchColumn as I, EncryptedTextOrdColumn as J, EncryptedTextOrdOreColumn as K, EncryptedTextSearchColumn as L, EncryptedTimestampColumn as M, EncryptedTimestampEqColumn as N, EncryptedTimestampOrdColumn as O, EncryptedTimestampOrdOreColumn as P, EncryptedV3Column as Q, type EncryptedV3TableColumn as R, type EqlTypeForColumn as S, type JsonDocument as T, type JsonValue as U, type PlaintextForColumn as V, type QueryCapabilities as W, type QueryTypesForColumn as X, TEXT_SEARCH_EQL_TYPE as Y, type V3ColumnFactory as Z, EncryptedBigintEqColumn as a, EncryptedBigintOrdColumn as b, EncryptedBigintOrdOreColumn as c, EncryptedBooleanColumn as d, EncryptedDateColumn as e, EncryptedDateEqColumn as f, EncryptedDateOrdColumn as g, EncryptedDateOrdOreColumn as h, EncryptedDoubleColumn as i, EncryptedDoubleEqColumn as j, EncryptedDoubleOrdColumn as k, EncryptedDoubleOrdOreColumn as l, EncryptedIntegerColumn as m, EncryptedIntegerEqColumn as n, EncryptedIntegerOrdColumn as o, EncryptedIntegerOrdOreColumn as p, EncryptedJsonColumn as q, EncryptedNumericColumn as r, EncryptedNumericEqColumn as s, EncryptedNumericOrdColumn as t, EncryptedNumericOrdOreColumn as u, EncryptedRealColumn as v, EncryptedRealEqColumn as w, EncryptedRealOrdColumn as x, EncryptedRealOrdOreColumn as y, EncryptedSmallintColumn as z };
|