@cipherstash/stack 0.19.0 → 1.0.0-rc.1
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 +596 -0
- package/README.md +376 -276
- package/dist/adapter-kit.cjs +1002 -0
- package/dist/adapter-kit.cjs.map +1 -0
- package/dist/adapter-kit.d.cts +120 -0
- package/dist/adapter-kit.d.ts +120 -0
- package/dist/adapter-kit.js +122 -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-4AVL4VZD.js → chunk-3B5ZX3IS.js} +3 -1
- package/dist/chunk-3B5ZX3IS.js.map +1 -0
- package/dist/{chunk-U66S7VIF.js → chunk-6SGN52W6.js} +166 -107
- package/dist/chunk-6SGN52W6.js.map +1 -0
- package/dist/chunk-7333ZC6L.js +48 -0
- package/dist/chunk-7333ZC6L.js.map +1 -0
- package/dist/{chunk-MP3SSDNN.js → chunk-CLM7E4I6.js} +15 -15
- package/dist/{chunk-MP3SSDNN.js.map → chunk-CLM7E4I6.js.map} +1 -1
- package/dist/{chunk-OFQ555AX.js → chunk-IDKP6ABU.js} +2 -2
- package/dist/{chunk-36AA7IBJ.js → chunk-L7ISHSG7.js} +53 -20
- package/dist/chunk-L7ISHSG7.js.map +1 -0
- package/dist/{chunk-LBMC4D6D.js → chunk-NVKK7UDN.js} +1 -1
- package/dist/chunk-NVKK7UDN.js.map +1 -0
- package/dist/chunk-X3JRXEIB.js +98 -0
- package/dist/chunk-X3JRXEIB.js.map +1 -0
- package/dist/client.cjs +29 -12
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +3 -2
- package/dist/client.d.ts +3 -2
- package/dist/client.js +2 -2
- package/dist/{table-CIH7jZ2h.d.ts → columns-0lbT9stl.d.ts} +157 -138
- package/dist/{table-DihEAlxG.d.cts → columns-Bxv7Oo9o.d.cts} +157 -138
- package/dist/dynamodb/index.d.cts +3 -2
- package/dist/dynamodb/index.d.ts +3 -2
- package/dist/encryption/index.cjs +54 -16
- 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 +6 -6
- package/dist/encryption/v3.cjs +1078 -973
- package/dist/encryption/v3.cjs.map +1 -1
- package/dist/encryption/v3.d.cts +15 -12
- package/dist/encryption/v3.d.ts +15 -12
- package/dist/encryption/v3.js +50 -22
- package/dist/encryption/v3.js.map +1 -1
- package/dist/eql/v3/index.cjs +130 -79
- package/dist/eql/v3/index.cjs.map +1 -1
- package/dist/eql/v3/index.d.cts +115 -13
- package/dist/eql/v3/index.d.ts +115 -13
- package/dist/eql/v3/index.js +16 -6
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +5 -5
- package/dist/errors/index.d.ts +5 -5
- package/dist/errors/index.js +1 -1
- package/dist/identity/index.cjs.map +1 -1
- package/dist/identity/index.js +2 -2
- package/dist/index-BquA71_Y.d.ts +24 -0
- package/dist/index-fhWTOV0K.d.cts +24 -0
- package/dist/index.cjs +79 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -17
- package/dist/index.d.ts +5 -17
- package/dist/index.js +6 -6
- package/dist/schema/index.cjs +29 -12
- 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 +2 -2
- package/dist/{types-public-CpS5KjwX.d.ts → types-public-QMjYNfQO.d.cts} +765 -726
- package/dist/{types-public-CpS5KjwX.d.cts → types-public-QMjYNfQO.d.ts} +765 -726
- package/dist/types-public.cjs.map +1 -1
- package/dist/types-public.d.cts +1 -1
- package/dist/types-public.d.ts +1 -1
- package/dist/types-public.js +1 -1
- package/dist/wasm-inline.d.ts +779 -405
- package/dist/wasm-inline.js +606 -299
- package/dist/wasm-inline.js.map +1 -1
- package/package.json +25 -53
- package/dist/chunk-36AA7IBJ.js.map +0 -1
- package/dist/chunk-4AVL4VZD.js.map +0 -1
- package/dist/chunk-IADZCZEA.js +0 -23
- package/dist/chunk-IADZCZEA.js.map +0 -1
- package/dist/chunk-IBSK6P33.js +0 -209
- package/dist/chunk-IBSK6P33.js.map +0 -1
- package/dist/chunk-LBMC4D6D.js.map +0 -1
- package/dist/chunk-U66S7VIF.js.map +0 -1
- package/dist/client-DSGHBN-g.d.cts +0 -834
- package/dist/client-DfCrlHXh.d.ts +0 -834
- package/dist/drizzle/index.cjs +0 -5617
- 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 -1220
- package/dist/drizzle/index.js.map +0 -1
- package/dist/supabase/index.cjs +0 -5951
- package/dist/supabase/index.cjs.map +0 -1
- package/dist/supabase/index.d.cts +0 -223
- package/dist/supabase/index.d.ts +0 -223
- package/dist/supabase/index.js +0 -1217
- package/dist/supabase/index.js.map +0 -1
- /package/dist/{chunk-OFQ555AX.js.map → chunk-IDKP6ABU.js.map} +0 -0
package/dist/eql/v3/index.cjs
CHANGED
|
@@ -20,6 +20,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/eql/v3/index.ts
|
|
21
21
|
var v3_exports = {};
|
|
22
22
|
__export(v3_exports, {
|
|
23
|
+
EncryptedBigintColumn: () => EncryptedBigintColumn,
|
|
24
|
+
EncryptedBigintEqColumn: () => EncryptedBigintEqColumn,
|
|
25
|
+
EncryptedBigintOrdColumn: () => EncryptedBigintOrdColumn,
|
|
26
|
+
EncryptedBigintOrdOreColumn: () => EncryptedBigintOrdOreColumn,
|
|
23
27
|
EncryptedBooleanColumn: () => EncryptedBooleanColumn,
|
|
24
28
|
EncryptedDateColumn: () => EncryptedDateColumn,
|
|
25
29
|
EncryptedDateEqColumn: () => EncryptedDateEqColumn,
|
|
@@ -33,6 +37,7 @@ __export(v3_exports, {
|
|
|
33
37
|
EncryptedIntegerEqColumn: () => EncryptedIntegerEqColumn,
|
|
34
38
|
EncryptedIntegerOrdColumn: () => EncryptedIntegerOrdColumn,
|
|
35
39
|
EncryptedIntegerOrdOreColumn: () => EncryptedIntegerOrdOreColumn,
|
|
40
|
+
EncryptedJsonColumn: () => EncryptedJsonColumn,
|
|
36
41
|
EncryptedNumericColumn: () => EncryptedNumericColumn,
|
|
37
42
|
EncryptedNumericEqColumn: () => EncryptedNumericEqColumn,
|
|
38
43
|
EncryptedNumericOrdColumn: () => EncryptedNumericOrdColumn,
|
|
@@ -73,13 +78,6 @@ function defaultMatchOpts() {
|
|
|
73
78
|
include_original: true
|
|
74
79
|
};
|
|
75
80
|
}
|
|
76
|
-
function cloneMatchOpts(opts) {
|
|
77
|
-
return {
|
|
78
|
-
...opts,
|
|
79
|
-
tokenizer: { ...opts.tokenizer },
|
|
80
|
-
token_filters: opts.token_filters.map((f) => ({ ...f }))
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
81
|
|
|
84
82
|
// src/eql/v3/columns.ts
|
|
85
83
|
var STORAGE_ONLY = {
|
|
@@ -107,192 +105,222 @@ var TEXT_SEARCH = {
|
|
|
107
105
|
orderAndRange: true,
|
|
108
106
|
freeTextSearch: true
|
|
109
107
|
};
|
|
110
|
-
var TEXT_SEARCH_EQL_TYPE = "
|
|
108
|
+
var TEXT_SEARCH_EQL_TYPE = "public.eql_v3_text_search";
|
|
111
109
|
var INTEGER = {
|
|
112
|
-
eqlType: "
|
|
110
|
+
eqlType: "public.eql_v3_integer",
|
|
113
111
|
castAs: "number",
|
|
114
112
|
capabilities: STORAGE_ONLY
|
|
115
113
|
};
|
|
116
114
|
var INTEGER_EQ = {
|
|
117
|
-
eqlType: "
|
|
115
|
+
eqlType: "public.eql_v3_integer_eq",
|
|
118
116
|
castAs: "number",
|
|
119
117
|
capabilities: EQUALITY_ONLY
|
|
120
118
|
};
|
|
121
119
|
var INTEGER_ORD_ORE = {
|
|
122
|
-
eqlType: "
|
|
120
|
+
eqlType: "public.eql_v3_integer_ord_ore",
|
|
123
121
|
castAs: "number",
|
|
124
122
|
capabilities: ORDER_AND_RANGE
|
|
125
123
|
};
|
|
126
124
|
var INTEGER_ORD = {
|
|
127
|
-
eqlType: "
|
|
125
|
+
eqlType: "public.eql_v3_integer_ord",
|
|
128
126
|
castAs: "number",
|
|
129
127
|
capabilities: ORDER_AND_RANGE
|
|
130
128
|
};
|
|
131
129
|
var SMALLINT = {
|
|
132
|
-
eqlType: "
|
|
130
|
+
eqlType: "public.eql_v3_smallint",
|
|
133
131
|
castAs: "number",
|
|
134
132
|
capabilities: STORAGE_ONLY
|
|
135
133
|
};
|
|
136
134
|
var SMALLINT_EQ = {
|
|
137
|
-
eqlType: "
|
|
135
|
+
eqlType: "public.eql_v3_smallint_eq",
|
|
138
136
|
castAs: "number",
|
|
139
137
|
capabilities: EQUALITY_ONLY
|
|
140
138
|
};
|
|
141
139
|
var SMALLINT_ORD_ORE = {
|
|
142
|
-
eqlType: "
|
|
140
|
+
eqlType: "public.eql_v3_smallint_ord_ore",
|
|
143
141
|
castAs: "number",
|
|
144
142
|
capabilities: ORDER_AND_RANGE
|
|
145
143
|
};
|
|
146
144
|
var SMALLINT_ORD = {
|
|
147
|
-
eqlType: "
|
|
145
|
+
eqlType: "public.eql_v3_smallint_ord",
|
|
148
146
|
castAs: "number",
|
|
149
147
|
capabilities: ORDER_AND_RANGE
|
|
150
148
|
};
|
|
149
|
+
var BIGINT = {
|
|
150
|
+
eqlType: "public.eql_v3_bigint",
|
|
151
|
+
castAs: "bigint",
|
|
152
|
+
capabilities: STORAGE_ONLY
|
|
153
|
+
};
|
|
154
|
+
var BIGINT_EQ = {
|
|
155
|
+
eqlType: "public.eql_v3_bigint_eq",
|
|
156
|
+
castAs: "bigint",
|
|
157
|
+
capabilities: EQUALITY_ONLY
|
|
158
|
+
};
|
|
159
|
+
var BIGINT_ORD_ORE = {
|
|
160
|
+
eqlType: "public.eql_v3_bigint_ord_ore",
|
|
161
|
+
castAs: "bigint",
|
|
162
|
+
capabilities: ORDER_AND_RANGE
|
|
163
|
+
};
|
|
164
|
+
var BIGINT_ORD = {
|
|
165
|
+
eqlType: "public.eql_v3_bigint_ord",
|
|
166
|
+
castAs: "bigint",
|
|
167
|
+
capabilities: ORDER_AND_RANGE
|
|
168
|
+
};
|
|
151
169
|
var DATE = {
|
|
152
|
-
eqlType: "
|
|
170
|
+
eqlType: "public.eql_v3_date",
|
|
153
171
|
castAs: "date",
|
|
154
172
|
capabilities: STORAGE_ONLY
|
|
155
173
|
};
|
|
156
174
|
var DATE_EQ = {
|
|
157
|
-
eqlType: "
|
|
175
|
+
eqlType: "public.eql_v3_date_eq",
|
|
158
176
|
castAs: "date",
|
|
159
177
|
capabilities: EQUALITY_ONLY
|
|
160
178
|
};
|
|
161
179
|
var DATE_ORD_ORE = {
|
|
162
|
-
eqlType: "
|
|
180
|
+
eqlType: "public.eql_v3_date_ord_ore",
|
|
163
181
|
castAs: "date",
|
|
164
182
|
capabilities: ORDER_AND_RANGE
|
|
165
183
|
};
|
|
166
184
|
var DATE_ORD = {
|
|
167
|
-
eqlType: "
|
|
185
|
+
eqlType: "public.eql_v3_date_ord",
|
|
168
186
|
castAs: "date",
|
|
169
187
|
capabilities: ORDER_AND_RANGE
|
|
170
188
|
};
|
|
171
189
|
var TIMESTAMP = {
|
|
172
|
-
eqlType: "
|
|
190
|
+
eqlType: "public.eql_v3_timestamp",
|
|
173
191
|
castAs: "timestamp",
|
|
174
192
|
capabilities: STORAGE_ONLY
|
|
175
193
|
};
|
|
176
194
|
var TIMESTAMP_EQ = {
|
|
177
|
-
eqlType: "
|
|
195
|
+
eqlType: "public.eql_v3_timestamp_eq",
|
|
178
196
|
castAs: "timestamp",
|
|
179
197
|
capabilities: EQUALITY_ONLY
|
|
180
198
|
};
|
|
181
199
|
var TIMESTAMP_ORD_ORE = {
|
|
182
|
-
eqlType: "
|
|
200
|
+
eqlType: "public.eql_v3_timestamp_ord_ore",
|
|
183
201
|
castAs: "timestamp",
|
|
184
202
|
capabilities: ORDER_AND_RANGE
|
|
185
203
|
};
|
|
186
204
|
var TIMESTAMP_ORD = {
|
|
187
|
-
eqlType: "
|
|
205
|
+
eqlType: "public.eql_v3_timestamp_ord",
|
|
188
206
|
castAs: "timestamp",
|
|
189
207
|
capabilities: ORDER_AND_RANGE
|
|
190
208
|
};
|
|
191
209
|
var NUMERIC = {
|
|
192
|
-
eqlType: "
|
|
210
|
+
eqlType: "public.eql_v3_numeric",
|
|
193
211
|
castAs: "number",
|
|
194
212
|
capabilities: STORAGE_ONLY
|
|
195
213
|
};
|
|
196
214
|
var NUMERIC_EQ = {
|
|
197
|
-
eqlType: "
|
|
215
|
+
eqlType: "public.eql_v3_numeric_eq",
|
|
198
216
|
castAs: "number",
|
|
199
217
|
capabilities: EQUALITY_ONLY
|
|
200
218
|
};
|
|
201
219
|
var NUMERIC_ORD_ORE = {
|
|
202
|
-
eqlType: "
|
|
220
|
+
eqlType: "public.eql_v3_numeric_ord_ore",
|
|
203
221
|
castAs: "number",
|
|
204
222
|
capabilities: ORDER_AND_RANGE
|
|
205
223
|
};
|
|
206
224
|
var NUMERIC_ORD = {
|
|
207
|
-
eqlType: "
|
|
225
|
+
eqlType: "public.eql_v3_numeric_ord",
|
|
208
226
|
castAs: "number",
|
|
209
227
|
capabilities: ORDER_AND_RANGE
|
|
210
228
|
};
|
|
211
229
|
var TEXT = {
|
|
212
|
-
eqlType: "
|
|
230
|
+
eqlType: "public.eql_v3_text",
|
|
213
231
|
castAs: "string",
|
|
214
232
|
capabilities: STORAGE_ONLY
|
|
215
233
|
};
|
|
216
234
|
var TEXT_EQ = {
|
|
217
|
-
eqlType: "
|
|
235
|
+
eqlType: "public.eql_v3_text_eq",
|
|
218
236
|
castAs: "string",
|
|
219
237
|
capabilities: EQUALITY_ONLY
|
|
220
238
|
};
|
|
221
239
|
var TEXT_MATCH = {
|
|
222
|
-
eqlType: "
|
|
240
|
+
eqlType: "public.eql_v3_text_match",
|
|
223
241
|
castAs: "string",
|
|
224
242
|
capabilities: MATCH_ONLY
|
|
225
243
|
};
|
|
226
244
|
var TEXT_ORD_ORE = {
|
|
227
|
-
eqlType: "
|
|
245
|
+
eqlType: "public.eql_v3_text_ord_ore",
|
|
228
246
|
castAs: "string",
|
|
229
247
|
capabilities: ORDER_AND_RANGE
|
|
230
248
|
};
|
|
231
249
|
var TEXT_ORD = {
|
|
232
|
-
eqlType: "
|
|
250
|
+
eqlType: "public.eql_v3_text_ord",
|
|
233
251
|
castAs: "string",
|
|
234
252
|
capabilities: ORDER_AND_RANGE
|
|
235
253
|
};
|
|
236
254
|
var BOOLEAN = {
|
|
237
|
-
eqlType: "
|
|
255
|
+
eqlType: "public.eql_v3_boolean",
|
|
238
256
|
castAs: "boolean",
|
|
239
257
|
capabilities: STORAGE_ONLY
|
|
240
258
|
};
|
|
241
259
|
var REAL = {
|
|
242
|
-
eqlType: "
|
|
260
|
+
eqlType: "public.eql_v3_real",
|
|
243
261
|
castAs: "number",
|
|
244
262
|
capabilities: STORAGE_ONLY
|
|
245
263
|
};
|
|
246
264
|
var REAL_EQ = {
|
|
247
|
-
eqlType: "
|
|
265
|
+
eqlType: "public.eql_v3_real_eq",
|
|
248
266
|
castAs: "number",
|
|
249
267
|
capabilities: EQUALITY_ONLY
|
|
250
268
|
};
|
|
251
269
|
var REAL_ORD_ORE = {
|
|
252
|
-
eqlType: "
|
|
270
|
+
eqlType: "public.eql_v3_real_ord_ore",
|
|
253
271
|
castAs: "number",
|
|
254
272
|
capabilities: ORDER_AND_RANGE
|
|
255
273
|
};
|
|
256
274
|
var REAL_ORD = {
|
|
257
|
-
eqlType: "
|
|
275
|
+
eqlType: "public.eql_v3_real_ord",
|
|
258
276
|
castAs: "number",
|
|
259
277
|
capabilities: ORDER_AND_RANGE
|
|
260
278
|
};
|
|
261
279
|
var DOUBLE = {
|
|
262
|
-
eqlType: "
|
|
280
|
+
eqlType: "public.eql_v3_double",
|
|
263
281
|
castAs: "number",
|
|
264
282
|
capabilities: STORAGE_ONLY
|
|
265
283
|
};
|
|
266
284
|
var DOUBLE_EQ = {
|
|
267
|
-
eqlType: "
|
|
285
|
+
eqlType: "public.eql_v3_double_eq",
|
|
268
286
|
castAs: "number",
|
|
269
287
|
capabilities: EQUALITY_ONLY
|
|
270
288
|
};
|
|
271
289
|
var DOUBLE_ORD_ORE = {
|
|
272
|
-
eqlType: "
|
|
290
|
+
eqlType: "public.eql_v3_double_ord_ore",
|
|
273
291
|
castAs: "number",
|
|
274
292
|
capabilities: ORDER_AND_RANGE
|
|
275
293
|
};
|
|
276
294
|
var DOUBLE_ORD = {
|
|
277
|
-
eqlType: "
|
|
295
|
+
eqlType: "public.eql_v3_double_ord",
|
|
278
296
|
castAs: "number",
|
|
279
297
|
capabilities: ORDER_AND_RANGE
|
|
280
298
|
};
|
|
281
|
-
function indexesForCapabilities(capabilities, castAs) {
|
|
299
|
+
function indexesForCapabilities(capabilities, castAs, ordering) {
|
|
282
300
|
const indexes = {};
|
|
283
301
|
if (capabilities.equality && (!capabilities.orderAndRange || castAs === "string")) {
|
|
284
302
|
indexes.unique = { token_filters: [] };
|
|
285
303
|
}
|
|
286
304
|
if (capabilities.orderAndRange) {
|
|
287
|
-
indexes
|
|
305
|
+
indexes[ordering] = {};
|
|
288
306
|
}
|
|
289
307
|
if (capabilities.freeTextSearch) {
|
|
290
|
-
indexes.match = defaultMatchOpts();
|
|
308
|
+
indexes.match = { ...defaultMatchOpts(), include_original: false };
|
|
309
|
+
}
|
|
310
|
+
if (capabilities.searchableJson) {
|
|
311
|
+
indexes.ste_vec = {
|
|
312
|
+
prefix: "enabled",
|
|
313
|
+
array_index_mode: { item: true, wildcard: true, position: false },
|
|
314
|
+
mode: "compat"
|
|
315
|
+
};
|
|
291
316
|
}
|
|
292
317
|
return indexes;
|
|
293
318
|
}
|
|
319
|
+
function orderingForEqlType(eqlType) {
|
|
320
|
+
return eqlType.endsWith("_ord_ore") ? "ore" : "ope";
|
|
321
|
+
}
|
|
294
322
|
function isQueryableCapabilities(capabilities) {
|
|
295
|
-
return capabilities.equality || capabilities.orderAndRange || capabilities.freeTextSearch;
|
|
323
|
+
return capabilities.equality || capabilities.orderAndRange || capabilities.freeTextSearch || (capabilities.searchableJson ?? false);
|
|
296
324
|
}
|
|
297
325
|
var EncryptedV3Column = class {
|
|
298
326
|
constructor(columnName, definition) {
|
|
@@ -324,7 +352,8 @@ var EncryptedV3Column = class {
|
|
|
324
352
|
cast_as: this.definition.castAs,
|
|
325
353
|
indexes: indexesForCapabilities(
|
|
326
354
|
this.definition.capabilities,
|
|
327
|
-
this.definition.castAs
|
|
355
|
+
this.definition.castAs,
|
|
356
|
+
orderingForEqlType(this.definition.eqlType)
|
|
328
357
|
)
|
|
329
358
|
};
|
|
330
359
|
}
|
|
@@ -335,37 +364,8 @@ var TEXT_SEARCH_DOMAIN = {
|
|
|
335
364
|
capabilities: TEXT_SEARCH
|
|
336
365
|
};
|
|
337
366
|
var EncryptedTextSearchColumn = class extends EncryptedV3Column {
|
|
338
|
-
matchOpts;
|
|
339
367
|
constructor(columnName) {
|
|
340
368
|
super(columnName, TEXT_SEARCH_DOMAIN);
|
|
341
|
-
this.matchOpts = defaultMatchOpts();
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Tune the match index. Each provided key replaces its default; omitted
|
|
345
|
-
* keys keep the default. This NEVER enables a capability — match is always
|
|
346
|
-
* on for this type. Merge semantics mirror v2's `opts?.x ?? default`.
|
|
347
|
-
*/
|
|
348
|
-
freeTextSearch(opts) {
|
|
349
|
-
const defaults = defaultMatchOpts();
|
|
350
|
-
this.matchOpts = cloneMatchOpts({
|
|
351
|
-
tokenizer: opts?.tokenizer ?? defaults.tokenizer,
|
|
352
|
-
token_filters: opts?.token_filters ?? defaults.token_filters,
|
|
353
|
-
k: opts?.k ?? defaults.k,
|
|
354
|
-
m: opts?.m ?? defaults.m,
|
|
355
|
-
include_original: opts?.include_original ?? defaults.include_original
|
|
356
|
-
});
|
|
357
|
-
return this;
|
|
358
|
-
}
|
|
359
|
-
/** Emit the encrypt-config column. Byte-identical to a v2 equality+order+match column. */
|
|
360
|
-
build() {
|
|
361
|
-
return {
|
|
362
|
-
cast_as: "string",
|
|
363
|
-
indexes: {
|
|
364
|
-
unique: { token_filters: [] },
|
|
365
|
-
ore: {},
|
|
366
|
-
match: cloneMatchOpts(this.matchOpts)
|
|
367
|
-
}
|
|
368
|
-
};
|
|
369
369
|
}
|
|
370
370
|
};
|
|
371
371
|
var EncryptedIntegerColumn = class extends EncryptedV3Column {
|
|
@@ -384,6 +384,14 @@ var EncryptedSmallintOrdOreColumn = class extends EncryptedV3Column {
|
|
|
384
384
|
};
|
|
385
385
|
var EncryptedSmallintOrdColumn = class extends EncryptedV3Column {
|
|
386
386
|
};
|
|
387
|
+
var EncryptedBigintColumn = class extends EncryptedV3Column {
|
|
388
|
+
};
|
|
389
|
+
var EncryptedBigintEqColumn = class extends EncryptedV3Column {
|
|
390
|
+
};
|
|
391
|
+
var EncryptedBigintOrdOreColumn = class extends EncryptedV3Column {
|
|
392
|
+
};
|
|
393
|
+
var EncryptedBigintOrdColumn = class extends EncryptedV3Column {
|
|
394
|
+
};
|
|
387
395
|
var EncryptedDateColumn = class extends EncryptedV3Column {
|
|
388
396
|
};
|
|
389
397
|
var EncryptedDateEqColumn = class extends EncryptedV3Column {
|
|
@@ -436,6 +444,21 @@ var EncryptedDoubleOrdOreColumn = class extends EncryptedV3Column {
|
|
|
436
444
|
};
|
|
437
445
|
var EncryptedDoubleOrdColumn = class extends EncryptedV3Column {
|
|
438
446
|
};
|
|
447
|
+
var JSON_DOMAIN = {
|
|
448
|
+
eqlType: "public.eql_v3_json",
|
|
449
|
+
castAs: "json",
|
|
450
|
+
capabilities: {
|
|
451
|
+
equality: false,
|
|
452
|
+
orderAndRange: false,
|
|
453
|
+
freeTextSearch: false,
|
|
454
|
+
searchableJson: true
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
var EncryptedJsonColumn = class extends EncryptedV3Column {
|
|
458
|
+
constructor(columnName) {
|
|
459
|
+
super(columnName, JSON_DOMAIN);
|
|
460
|
+
}
|
|
461
|
+
};
|
|
439
462
|
|
|
440
463
|
// src/eql/v3/table.ts
|
|
441
464
|
var EncryptedTable = class {
|
|
@@ -446,7 +469,7 @@ var EncryptedTable = class {
|
|
|
446
469
|
tableName;
|
|
447
470
|
columnBuilders;
|
|
448
471
|
build() {
|
|
449
|
-
const builtColumns =
|
|
472
|
+
const builtColumns = /* @__PURE__ */ Object.create(null);
|
|
450
473
|
for (const builder of Object.values(this.columnBuilders)) {
|
|
451
474
|
const name = builder.getName();
|
|
452
475
|
if (Object.hasOwn(builtColumns, name)) {
|
|
@@ -467,9 +490,19 @@ var EncryptedTable = class {
|
|
|
467
490
|
* encrypt config and FFI by DB name — `build()` keys columns by DB name, so
|
|
468
491
|
* the two only agree when property == name. This recovers the mapping that
|
|
469
492
|
* `build()` discards.
|
|
493
|
+
*
|
|
494
|
+
* NULL PROTOTYPE — load-bearing. Callers index this map by a column name that
|
|
495
|
+
* ultimately comes from the database (`addJsonbCastsV3`, `filterColumnName`,
|
|
496
|
+
* the mutation transform). On a plain object literal, a column named
|
|
497
|
+
* `constructor` / `toString` / `valueOf` / `__proto__` resolves to an
|
|
498
|
+
* inherited `Object.prototype` member, which is truthy — so a *plaintext*
|
|
499
|
+
* column with such a name would be mistaken for a mapped encrypted column and
|
|
500
|
+
* its `Object.prototype` value interpolated into the emitted select string.
|
|
501
|
+
* `encryptedTable()` rejects such names as JS *properties*, but nothing
|
|
502
|
+
* constrains the DB column names a table may contain.
|
|
470
503
|
*/
|
|
471
504
|
buildColumnKeyMap() {
|
|
472
|
-
const map =
|
|
505
|
+
const map = /* @__PURE__ */ Object.create(null);
|
|
473
506
|
for (const [property, builder] of Object.entries(this.columnBuilders)) {
|
|
474
507
|
map[property] = builder.getName();
|
|
475
508
|
}
|
|
@@ -531,6 +564,12 @@ var types = {
|
|
|
531
564
|
SmallintEq: (name) => new EncryptedSmallintEqColumn(name, SMALLINT_EQ),
|
|
532
565
|
SmallintOrdOre: (name) => new EncryptedSmallintOrdOreColumn(name, SMALLINT_ORD_ORE),
|
|
533
566
|
SmallintOrd: (name) => new EncryptedSmallintOrdColumn(name, SMALLINT_ORD),
|
|
567
|
+
// bigint (int8) — plaintext is a JS `bigint`, round-tripped losslessly by
|
|
568
|
+
// the native protect-ffi boundary (see ./columns)
|
|
569
|
+
Bigint: (name) => new EncryptedBigintColumn(name, BIGINT),
|
|
570
|
+
BigintEq: (name) => new EncryptedBigintEqColumn(name, BIGINT_EQ),
|
|
571
|
+
BigintOrdOre: (name) => new EncryptedBigintOrdOreColumn(name, BIGINT_ORD_ORE),
|
|
572
|
+
BigintOrd: (name) => new EncryptedBigintOrdColumn(name, BIGINT_ORD),
|
|
534
573
|
// date
|
|
535
574
|
Date: (name) => new EncryptedDateColumn(name, DATE),
|
|
536
575
|
DateEq: (name) => new EncryptedDateEqColumn(name, DATE_EQ),
|
|
@@ -564,10 +603,21 @@ var types = {
|
|
|
564
603
|
Double: (name) => new EncryptedDoubleColumn(name, DOUBLE),
|
|
565
604
|
DoubleEq: (name) => new EncryptedDoubleEqColumn(name, DOUBLE_EQ),
|
|
566
605
|
DoubleOrdOre: (name) => new EncryptedDoubleOrdOreColumn(name, DOUBLE_ORD_ORE),
|
|
567
|
-
DoubleOrd: (name) => new EncryptedDoubleOrdColumn(name, DOUBLE_ORD)
|
|
606
|
+
DoubleOrd: (name) => new EncryptedDoubleOrdColumn(name, DOUBLE_ORD),
|
|
607
|
+
// json (encrypted JSONB document, ste_vec containment)
|
|
608
|
+
Json: (name) => new EncryptedJsonColumn(name)
|
|
609
|
+
// `satisfies` is load-bearing, not decoration: `DOMAIN_REGISTRY` derives itself
|
|
610
|
+
// by calling every value here at module load. A non-factory export would throw
|
|
611
|
+
// during module evaluation and take the supabase introspect/schema-build/verify
|
|
612
|
+
// path down with it. This turns that into a compile error at the offending line.
|
|
613
|
+
// `as const` applies first, so literal key inference is preserved.
|
|
568
614
|
};
|
|
569
615
|
// Annotate the CommonJS export names for ESM import in node:
|
|
570
616
|
0 && (module.exports = {
|
|
617
|
+
EncryptedBigintColumn,
|
|
618
|
+
EncryptedBigintEqColumn,
|
|
619
|
+
EncryptedBigintOrdColumn,
|
|
620
|
+
EncryptedBigintOrdOreColumn,
|
|
571
621
|
EncryptedBooleanColumn,
|
|
572
622
|
EncryptedDateColumn,
|
|
573
623
|
EncryptedDateEqColumn,
|
|
@@ -581,6 +631,7 @@ var types = {
|
|
|
581
631
|
EncryptedIntegerEqColumn,
|
|
582
632
|
EncryptedIntegerOrdColumn,
|
|
583
633
|
EncryptedIntegerOrdOreColumn,
|
|
634
|
+
EncryptedJsonColumn,
|
|
584
635
|
EncryptedNumericColumn,
|
|
585
636
|
EncryptedNumericEqColumn,
|
|
586
637
|
EncryptedNumericOrdColumn,
|