@cipherstash/stack 0.18.0 → 0.19.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 (101) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +2 -2
  3. package/dist/{chunk-ZYOZHZMJ.js → chunk-36AA7IBJ.js} +151 -160
  4. package/dist/chunk-36AA7IBJ.js.map +1 -0
  5. package/dist/{chunk-VPOTNP4K.js → chunk-4AVL4VZD.js} +1 -1
  6. package/dist/chunk-4AVL4VZD.js.map +1 -0
  7. package/dist/{chunk-XWPGAHBZ.js → chunk-BNO32ZMV.js} +1 -1
  8. package/dist/chunk-BNO32ZMV.js.map +1 -0
  9. package/dist/{chunk-LLCCNKDL.js → chunk-HQANMV7R.js} +3 -3
  10. package/dist/{chunk-LLCCNKDL.js.map → chunk-HQANMV7R.js.map} +1 -1
  11. package/dist/chunk-IADZCZEA.js +23 -0
  12. package/dist/chunk-IADZCZEA.js.map +1 -0
  13. package/dist/chunk-IBSK6P33.js +209 -0
  14. package/dist/chunk-IBSK6P33.js.map +1 -0
  15. package/dist/chunk-JSG2AMDI.js +17 -0
  16. package/dist/chunk-JSG2AMDI.js.map +1 -0
  17. package/dist/chunk-MP3SSDNN.js +4439 -0
  18. package/dist/chunk-MP3SSDNN.js.map +1 -0
  19. package/dist/chunk-OFQ555AX.js +191 -0
  20. package/dist/chunk-OFQ555AX.js.map +1 -0
  21. package/dist/chunk-PZ5AY32C.js +10 -0
  22. package/dist/chunk-PZ5AY32C.js.map +1 -0
  23. package/dist/chunk-U66S7VIF.js +435 -0
  24. package/dist/chunk-U66S7VIF.js.map +1 -0
  25. package/dist/{client-Dt98Rugc.d.cts → client-DSGHBN-g.d.cts} +200 -58
  26. package/dist/{client-CIsfZ2zg.d.ts → client-DfCrlHXh.d.ts} +200 -58
  27. package/dist/client.cjs +4101 -43
  28. package/dist/client.cjs.map +1 -1
  29. package/dist/client.d.cts +5 -5
  30. package/dist/client.d.ts +5 -5
  31. package/dist/client.js +3 -1
  32. package/dist/drizzle/index.cjs +4133 -74
  33. package/dist/drizzle/index.cjs.map +1 -1
  34. package/dist/drizzle/index.d.cts +33 -33
  35. package/dist/drizzle/index.d.ts +33 -33
  36. package/dist/drizzle/index.js +35 -30
  37. package/dist/drizzle/index.js.map +1 -1
  38. package/dist/dynamodb/index.cjs +19 -12
  39. package/dist/dynamodb/index.cjs.map +1 -1
  40. package/dist/dynamodb/index.d.cts +2 -2
  41. package/dist/dynamodb/index.d.ts +2 -2
  42. package/dist/dynamodb/index.js +8 -10
  43. package/dist/dynamodb/index.js.map +1 -1
  44. package/dist/encryption/index.cjs +4448 -212
  45. package/dist/encryption/index.cjs.map +1 -1
  46. package/dist/encryption/index.d.cts +3 -3
  47. package/dist/encryption/index.d.ts +3 -3
  48. package/dist/encryption/index.js +15 -7
  49. package/dist/encryption/v3.cjs +7791 -0
  50. package/dist/encryption/v3.cjs.map +1 -0
  51. package/dist/encryption/v3.d.cts +100 -0
  52. package/dist/encryption/v3.d.ts +100 -0
  53. package/dist/encryption/v3.js +161 -0
  54. package/dist/encryption/v3.js.map +1 -0
  55. package/dist/eql/v3/index.cjs +612 -0
  56. package/dist/eql/v3/index.cjs.map +1 -0
  57. package/dist/eql/v3/index.d.cts +71 -0
  58. package/dist/eql/v3/index.d.ts +71 -0
  59. package/dist/eql/v3/index.js +89 -0
  60. package/dist/eql/v3/index.js.map +1 -0
  61. package/dist/errors/index.js +1 -0
  62. package/dist/identity/index.cjs +55 -35
  63. package/dist/identity/index.cjs.map +1 -1
  64. package/dist/identity/index.d.cts +54 -30
  65. package/dist/identity/index.d.ts +54 -30
  66. package/dist/identity/index.js +9 -177
  67. package/dist/identity/index.js.map +1 -1
  68. package/dist/index.cjs +4480 -228
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.d.cts +18 -7
  71. package/dist/index.d.ts +18 -7
  72. package/dist/index.js +20 -5
  73. package/dist/index.js.map +1 -1
  74. package/dist/schema/index.cjs +4105 -43
  75. package/dist/schema/index.cjs.map +1 -1
  76. package/dist/schema/index.d.cts +1 -1
  77. package/dist/schema/index.d.ts +1 -1
  78. package/dist/schema/index.js +3 -1
  79. package/dist/supabase/index.cjs +4500 -75
  80. package/dist/supabase/index.cjs.map +1 -1
  81. package/dist/supabase/index.d.cts +113 -34
  82. package/dist/supabase/index.d.ts +113 -34
  83. package/dist/supabase/index.js +350 -32
  84. package/dist/supabase/index.js.map +1 -1
  85. package/dist/table-CIH7jZ2h.d.ts +603 -0
  86. package/dist/table-DihEAlxG.d.cts +603 -0
  87. package/dist/{types-public-BTxqjmtv.d.ts → types-public-CpS5KjwX.d.cts} +250 -92
  88. package/dist/{types-public-BTxqjmtv.d.cts → types-public-CpS5KjwX.d.ts} +250 -92
  89. package/dist/types-public.cjs.map +1 -1
  90. package/dist/types-public.d.cts +2 -2
  91. package/dist/types-public.d.ts +2 -2
  92. package/dist/types-public.js +2 -1
  93. package/dist/wasm-inline.d.ts +1269 -0
  94. package/dist/wasm-inline.js +4594 -0
  95. package/dist/wasm-inline.js.map +1 -0
  96. package/package.json +54 -4
  97. package/dist/chunk-VPOTNP4K.js.map +0 -1
  98. package/dist/chunk-XWPGAHBZ.js.map +0 -1
  99. package/dist/chunk-YWQXTZ5M.js +0 -383
  100. package/dist/chunk-YWQXTZ5M.js.map +0 -1
  101. package/dist/chunk-ZYOZHZMJ.js.map +0 -1
@@ -0,0 +1,612 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/eql/v3/index.ts
21
+ var v3_exports = {};
22
+ __export(v3_exports, {
23
+ EncryptedBooleanColumn: () => EncryptedBooleanColumn,
24
+ EncryptedDateColumn: () => EncryptedDateColumn,
25
+ EncryptedDateEqColumn: () => EncryptedDateEqColumn,
26
+ EncryptedDateOrdColumn: () => EncryptedDateOrdColumn,
27
+ EncryptedDateOrdOreColumn: () => EncryptedDateOrdOreColumn,
28
+ EncryptedDoubleColumn: () => EncryptedDoubleColumn,
29
+ EncryptedDoubleEqColumn: () => EncryptedDoubleEqColumn,
30
+ EncryptedDoubleOrdColumn: () => EncryptedDoubleOrdColumn,
31
+ EncryptedDoubleOrdOreColumn: () => EncryptedDoubleOrdOreColumn,
32
+ EncryptedIntegerColumn: () => EncryptedIntegerColumn,
33
+ EncryptedIntegerEqColumn: () => EncryptedIntegerEqColumn,
34
+ EncryptedIntegerOrdColumn: () => EncryptedIntegerOrdColumn,
35
+ EncryptedIntegerOrdOreColumn: () => EncryptedIntegerOrdOreColumn,
36
+ EncryptedNumericColumn: () => EncryptedNumericColumn,
37
+ EncryptedNumericEqColumn: () => EncryptedNumericEqColumn,
38
+ EncryptedNumericOrdColumn: () => EncryptedNumericOrdColumn,
39
+ EncryptedNumericOrdOreColumn: () => EncryptedNumericOrdOreColumn,
40
+ EncryptedRealColumn: () => EncryptedRealColumn,
41
+ EncryptedRealEqColumn: () => EncryptedRealEqColumn,
42
+ EncryptedRealOrdColumn: () => EncryptedRealOrdColumn,
43
+ EncryptedRealOrdOreColumn: () => EncryptedRealOrdOreColumn,
44
+ EncryptedSmallintColumn: () => EncryptedSmallintColumn,
45
+ EncryptedSmallintEqColumn: () => EncryptedSmallintEqColumn,
46
+ EncryptedSmallintOrdColumn: () => EncryptedSmallintOrdColumn,
47
+ EncryptedSmallintOrdOreColumn: () => EncryptedSmallintOrdOreColumn,
48
+ EncryptedTable: () => EncryptedTable,
49
+ EncryptedTextColumn: () => EncryptedTextColumn,
50
+ EncryptedTextEqColumn: () => EncryptedTextEqColumn,
51
+ EncryptedTextMatchColumn: () => EncryptedTextMatchColumn,
52
+ EncryptedTextOrdColumn: () => EncryptedTextOrdColumn,
53
+ EncryptedTextOrdOreColumn: () => EncryptedTextOrdOreColumn,
54
+ EncryptedTextSearchColumn: () => EncryptedTextSearchColumn,
55
+ EncryptedTimestampColumn: () => EncryptedTimestampColumn,
56
+ EncryptedTimestampEqColumn: () => EncryptedTimestampEqColumn,
57
+ EncryptedTimestampOrdColumn: () => EncryptedTimestampOrdColumn,
58
+ EncryptedTimestampOrdOreColumn: () => EncryptedTimestampOrdOreColumn,
59
+ TEXT_SEARCH_EQL_TYPE: () => TEXT_SEARCH_EQL_TYPE,
60
+ buildEncryptConfig: () => buildEncryptConfig,
61
+ encryptedTable: () => encryptedTable,
62
+ types: () => types
63
+ });
64
+ module.exports = __toCommonJS(v3_exports);
65
+
66
+ // src/schema/match-defaults.ts
67
+ function defaultMatchOpts() {
68
+ return {
69
+ tokenizer: { kind: "ngram", token_length: 3 },
70
+ token_filters: [{ kind: "downcase" }],
71
+ k: 6,
72
+ m: 2048,
73
+ include_original: true
74
+ };
75
+ }
76
+ function cloneMatchOpts(opts) {
77
+ return {
78
+ ...opts,
79
+ tokenizer: { ...opts.tokenizer },
80
+ token_filters: opts.token_filters.map((f) => ({ ...f }))
81
+ };
82
+ }
83
+
84
+ // src/eql/v3/columns.ts
85
+ var STORAGE_ONLY = {
86
+ equality: false,
87
+ orderAndRange: false,
88
+ freeTextSearch: false
89
+ };
90
+ var EQUALITY_ONLY = {
91
+ equality: true,
92
+ orderAndRange: false,
93
+ freeTextSearch: false
94
+ };
95
+ var ORDER_AND_RANGE = {
96
+ equality: true,
97
+ orderAndRange: true,
98
+ freeTextSearch: false
99
+ };
100
+ var MATCH_ONLY = {
101
+ equality: false,
102
+ orderAndRange: false,
103
+ freeTextSearch: true
104
+ };
105
+ var TEXT_SEARCH = {
106
+ equality: true,
107
+ orderAndRange: true,
108
+ freeTextSearch: true
109
+ };
110
+ var TEXT_SEARCH_EQL_TYPE = "eql_v3.text_search";
111
+ var INTEGER = {
112
+ eqlType: "eql_v3.integer",
113
+ castAs: "number",
114
+ capabilities: STORAGE_ONLY
115
+ };
116
+ var INTEGER_EQ = {
117
+ eqlType: "eql_v3.integer_eq",
118
+ castAs: "number",
119
+ capabilities: EQUALITY_ONLY
120
+ };
121
+ var INTEGER_ORD_ORE = {
122
+ eqlType: "eql_v3.integer_ord_ore",
123
+ castAs: "number",
124
+ capabilities: ORDER_AND_RANGE
125
+ };
126
+ var INTEGER_ORD = {
127
+ eqlType: "eql_v3.integer_ord",
128
+ castAs: "number",
129
+ capabilities: ORDER_AND_RANGE
130
+ };
131
+ var SMALLINT = {
132
+ eqlType: "eql_v3.smallint",
133
+ castAs: "number",
134
+ capabilities: STORAGE_ONLY
135
+ };
136
+ var SMALLINT_EQ = {
137
+ eqlType: "eql_v3.smallint_eq",
138
+ castAs: "number",
139
+ capabilities: EQUALITY_ONLY
140
+ };
141
+ var SMALLINT_ORD_ORE = {
142
+ eqlType: "eql_v3.smallint_ord_ore",
143
+ castAs: "number",
144
+ capabilities: ORDER_AND_RANGE
145
+ };
146
+ var SMALLINT_ORD = {
147
+ eqlType: "eql_v3.smallint_ord",
148
+ castAs: "number",
149
+ capabilities: ORDER_AND_RANGE
150
+ };
151
+ var DATE = {
152
+ eqlType: "eql_v3.date",
153
+ castAs: "date",
154
+ capabilities: STORAGE_ONLY
155
+ };
156
+ var DATE_EQ = {
157
+ eqlType: "eql_v3.date_eq",
158
+ castAs: "date",
159
+ capabilities: EQUALITY_ONLY
160
+ };
161
+ var DATE_ORD_ORE = {
162
+ eqlType: "eql_v3.date_ord_ore",
163
+ castAs: "date",
164
+ capabilities: ORDER_AND_RANGE
165
+ };
166
+ var DATE_ORD = {
167
+ eqlType: "eql_v3.date_ord",
168
+ castAs: "date",
169
+ capabilities: ORDER_AND_RANGE
170
+ };
171
+ var TIMESTAMP = {
172
+ eqlType: "eql_v3.timestamp",
173
+ castAs: "timestamp",
174
+ capabilities: STORAGE_ONLY
175
+ };
176
+ var TIMESTAMP_EQ = {
177
+ eqlType: "eql_v3.timestamp_eq",
178
+ castAs: "timestamp",
179
+ capabilities: EQUALITY_ONLY
180
+ };
181
+ var TIMESTAMP_ORD_ORE = {
182
+ eqlType: "eql_v3.timestamp_ord_ore",
183
+ castAs: "timestamp",
184
+ capabilities: ORDER_AND_RANGE
185
+ };
186
+ var TIMESTAMP_ORD = {
187
+ eqlType: "eql_v3.timestamp_ord",
188
+ castAs: "timestamp",
189
+ capabilities: ORDER_AND_RANGE
190
+ };
191
+ var NUMERIC = {
192
+ eqlType: "eql_v3.numeric",
193
+ castAs: "number",
194
+ capabilities: STORAGE_ONLY
195
+ };
196
+ var NUMERIC_EQ = {
197
+ eqlType: "eql_v3.numeric_eq",
198
+ castAs: "number",
199
+ capabilities: EQUALITY_ONLY
200
+ };
201
+ var NUMERIC_ORD_ORE = {
202
+ eqlType: "eql_v3.numeric_ord_ore",
203
+ castAs: "number",
204
+ capabilities: ORDER_AND_RANGE
205
+ };
206
+ var NUMERIC_ORD = {
207
+ eqlType: "eql_v3.numeric_ord",
208
+ castAs: "number",
209
+ capabilities: ORDER_AND_RANGE
210
+ };
211
+ var TEXT = {
212
+ eqlType: "eql_v3.text",
213
+ castAs: "string",
214
+ capabilities: STORAGE_ONLY
215
+ };
216
+ var TEXT_EQ = {
217
+ eqlType: "eql_v3.text_eq",
218
+ castAs: "string",
219
+ capabilities: EQUALITY_ONLY
220
+ };
221
+ var TEXT_MATCH = {
222
+ eqlType: "eql_v3.text_match",
223
+ castAs: "string",
224
+ capabilities: MATCH_ONLY
225
+ };
226
+ var TEXT_ORD_ORE = {
227
+ eqlType: "eql_v3.text_ord_ore",
228
+ castAs: "string",
229
+ capabilities: ORDER_AND_RANGE
230
+ };
231
+ var TEXT_ORD = {
232
+ eqlType: "eql_v3.text_ord",
233
+ castAs: "string",
234
+ capabilities: ORDER_AND_RANGE
235
+ };
236
+ var BOOLEAN = {
237
+ eqlType: "eql_v3.boolean",
238
+ castAs: "boolean",
239
+ capabilities: STORAGE_ONLY
240
+ };
241
+ var REAL = {
242
+ eqlType: "eql_v3.real",
243
+ castAs: "number",
244
+ capabilities: STORAGE_ONLY
245
+ };
246
+ var REAL_EQ = {
247
+ eqlType: "eql_v3.real_eq",
248
+ castAs: "number",
249
+ capabilities: EQUALITY_ONLY
250
+ };
251
+ var REAL_ORD_ORE = {
252
+ eqlType: "eql_v3.real_ord_ore",
253
+ castAs: "number",
254
+ capabilities: ORDER_AND_RANGE
255
+ };
256
+ var REAL_ORD = {
257
+ eqlType: "eql_v3.real_ord",
258
+ castAs: "number",
259
+ capabilities: ORDER_AND_RANGE
260
+ };
261
+ var DOUBLE = {
262
+ eqlType: "eql_v3.double",
263
+ castAs: "number",
264
+ capabilities: STORAGE_ONLY
265
+ };
266
+ var DOUBLE_EQ = {
267
+ eqlType: "eql_v3.double_eq",
268
+ castAs: "number",
269
+ capabilities: EQUALITY_ONLY
270
+ };
271
+ var DOUBLE_ORD_ORE = {
272
+ eqlType: "eql_v3.double_ord_ore",
273
+ castAs: "number",
274
+ capabilities: ORDER_AND_RANGE
275
+ };
276
+ var DOUBLE_ORD = {
277
+ eqlType: "eql_v3.double_ord",
278
+ castAs: "number",
279
+ capabilities: ORDER_AND_RANGE
280
+ };
281
+ function indexesForCapabilities(capabilities, castAs) {
282
+ const indexes = {};
283
+ if (capabilities.equality && (!capabilities.orderAndRange || castAs === "string")) {
284
+ indexes.unique = { token_filters: [] };
285
+ }
286
+ if (capabilities.orderAndRange) {
287
+ indexes.ore = {};
288
+ }
289
+ if (capabilities.freeTextSearch) {
290
+ indexes.match = defaultMatchOpts();
291
+ }
292
+ return indexes;
293
+ }
294
+ function isQueryableCapabilities(capabilities) {
295
+ return capabilities.equality || capabilities.orderAndRange || capabilities.freeTextSearch;
296
+ }
297
+ var EncryptedV3Column = class {
298
+ constructor(columnName, definition) {
299
+ this.columnName = columnName;
300
+ this.definition = definition;
301
+ }
302
+ columnName;
303
+ definition;
304
+ getName() {
305
+ return this.columnName;
306
+ }
307
+ /** The concrete EQL v3 domain name. Metadata only; not emitted by `build()`. */
308
+ getEqlType() {
309
+ return this.definition.eqlType;
310
+ }
311
+ /** The semantic query capabilities this domain exposes. Metadata only. */
312
+ getQueryCapabilities() {
313
+ return this.definition.capabilities;
314
+ }
315
+ /** `true` when this domain can produce at least one kind of query term. */
316
+ isQueryable() {
317
+ return isQueryableCapabilities(
318
+ this.definition.capabilities
319
+ );
320
+ }
321
+ /** Emit the encrypt-config column: `cast_as` plus capability-derived indexes. */
322
+ build() {
323
+ return {
324
+ cast_as: this.definition.castAs,
325
+ indexes: indexesForCapabilities(
326
+ this.definition.capabilities,
327
+ this.definition.castAs
328
+ )
329
+ };
330
+ }
331
+ };
332
+ var TEXT_SEARCH_DOMAIN = {
333
+ eqlType: TEXT_SEARCH_EQL_TYPE,
334
+ castAs: "string",
335
+ capabilities: TEXT_SEARCH
336
+ };
337
+ var EncryptedTextSearchColumn = class extends EncryptedV3Column {
338
+ matchOpts;
339
+ constructor(columnName) {
340
+ 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
+ }
370
+ };
371
+ var EncryptedIntegerColumn = class extends EncryptedV3Column {
372
+ };
373
+ var EncryptedIntegerEqColumn = class extends EncryptedV3Column {
374
+ };
375
+ var EncryptedIntegerOrdOreColumn = class extends EncryptedV3Column {
376
+ };
377
+ var EncryptedIntegerOrdColumn = class extends EncryptedV3Column {
378
+ };
379
+ var EncryptedSmallintColumn = class extends EncryptedV3Column {
380
+ };
381
+ var EncryptedSmallintEqColumn = class extends EncryptedV3Column {
382
+ };
383
+ var EncryptedSmallintOrdOreColumn = class extends EncryptedV3Column {
384
+ };
385
+ var EncryptedSmallintOrdColumn = class extends EncryptedV3Column {
386
+ };
387
+ var EncryptedDateColumn = class extends EncryptedV3Column {
388
+ };
389
+ var EncryptedDateEqColumn = class extends EncryptedV3Column {
390
+ };
391
+ var EncryptedDateOrdOreColumn = class extends EncryptedV3Column {
392
+ };
393
+ var EncryptedDateOrdColumn = class extends EncryptedV3Column {
394
+ };
395
+ var EncryptedTimestampColumn = class extends EncryptedV3Column {
396
+ };
397
+ var EncryptedTimestampEqColumn = class extends EncryptedV3Column {
398
+ };
399
+ var EncryptedTimestampOrdOreColumn = class extends EncryptedV3Column {
400
+ };
401
+ var EncryptedTimestampOrdColumn = class extends EncryptedV3Column {
402
+ };
403
+ var EncryptedNumericColumn = class extends EncryptedV3Column {
404
+ };
405
+ var EncryptedNumericEqColumn = class extends EncryptedV3Column {
406
+ };
407
+ var EncryptedNumericOrdOreColumn = class extends EncryptedV3Column {
408
+ };
409
+ var EncryptedNumericOrdColumn = class extends EncryptedV3Column {
410
+ };
411
+ var EncryptedTextColumn = class extends EncryptedV3Column {
412
+ };
413
+ var EncryptedTextEqColumn = class extends EncryptedV3Column {
414
+ };
415
+ var EncryptedTextMatchColumn = class extends EncryptedV3Column {
416
+ };
417
+ var EncryptedTextOrdOreColumn = class extends EncryptedV3Column {
418
+ };
419
+ var EncryptedTextOrdColumn = class extends EncryptedV3Column {
420
+ };
421
+ var EncryptedBooleanColumn = class extends EncryptedV3Column {
422
+ };
423
+ var EncryptedRealColumn = class extends EncryptedV3Column {
424
+ };
425
+ var EncryptedRealEqColumn = class extends EncryptedV3Column {
426
+ };
427
+ var EncryptedRealOrdOreColumn = class extends EncryptedV3Column {
428
+ };
429
+ var EncryptedRealOrdColumn = class extends EncryptedV3Column {
430
+ };
431
+ var EncryptedDoubleColumn = class extends EncryptedV3Column {
432
+ };
433
+ var EncryptedDoubleEqColumn = class extends EncryptedV3Column {
434
+ };
435
+ var EncryptedDoubleOrdOreColumn = class extends EncryptedV3Column {
436
+ };
437
+ var EncryptedDoubleOrdColumn = class extends EncryptedV3Column {
438
+ };
439
+
440
+ // src/eql/v3/table.ts
441
+ var EncryptedTable = class {
442
+ constructor(tableName, columnBuilders) {
443
+ this.tableName = tableName;
444
+ this.columnBuilders = columnBuilders;
445
+ }
446
+ tableName;
447
+ columnBuilders;
448
+ build() {
449
+ const builtColumns = {};
450
+ for (const builder of Object.values(this.columnBuilders)) {
451
+ const name = builder.getName();
452
+ if (Object.hasOwn(builtColumns, name)) {
453
+ throw new Error(
454
+ `[eql/v3]: duplicate column name "${name}" in table "${this.tableName}" \u2014 two columns resolve to the same DB name`
455
+ );
456
+ }
457
+ builtColumns[name] = builder.build();
458
+ }
459
+ return {
460
+ tableName: this.tableName,
461
+ columns: builtColumns
462
+ };
463
+ }
464
+ /**
465
+ * Map each column's JS property name to its DB column name (`getName()`).
466
+ * The model path matches user models by property name but must address the
467
+ * encrypt config and FFI by DB name — `build()` keys columns by DB name, so
468
+ * the two only agree when property == name. This recovers the mapping that
469
+ * `build()` discards.
470
+ */
471
+ buildColumnKeyMap() {
472
+ const map = {};
473
+ for (const [property, builder] of Object.entries(this.columnBuilders)) {
474
+ map[property] = builder.getName();
475
+ }
476
+ return map;
477
+ }
478
+ };
479
+ var RESERVED_TABLE_KEYS = /* @__PURE__ */ new Set([
480
+ "tableName",
481
+ "columnBuilders",
482
+ "_columnType",
483
+ "build",
484
+ "buildColumnKeyMap"
485
+ ]);
486
+ function isReservedTableKey(tableBuilder, colName) {
487
+ return RESERVED_TABLE_KEYS.has(colName) || colName in tableBuilder;
488
+ }
489
+ function encryptedTable(tableName, columns) {
490
+ const tableBuilder = new EncryptedTable(
491
+ tableName,
492
+ columns
493
+ );
494
+ for (const [colName, colBuilder] of Object.entries(columns)) {
495
+ if (isReservedTableKey(tableBuilder, colName)) {
496
+ throw new Error(
497
+ `Column name "${colName}" collides with a reserved EncryptedTable property`
498
+ );
499
+ }
500
+ ;
501
+ tableBuilder[colName] = colBuilder;
502
+ }
503
+ return tableBuilder;
504
+ }
505
+ function buildEncryptConfig(...tables) {
506
+ const config = {
507
+ v: 1,
508
+ tables: {}
509
+ };
510
+ for (const tb of tables) {
511
+ const tableDef = tb.build();
512
+ if (Object.hasOwn(config.tables, tableDef.tableName)) {
513
+ throw new Error(
514
+ `[eql/v3]: duplicate table name "${tableDef.tableName}" passed to buildEncryptConfig \u2014 each table must have a unique name`
515
+ );
516
+ }
517
+ config.tables[tableDef.tableName] = tableDef.columns;
518
+ }
519
+ return config;
520
+ }
521
+
522
+ // src/eql/v3/types.ts
523
+ var types = {
524
+ // integer
525
+ Integer: (name) => new EncryptedIntegerColumn(name, INTEGER),
526
+ IntegerEq: (name) => new EncryptedIntegerEqColumn(name, INTEGER_EQ),
527
+ IntegerOrdOre: (name) => new EncryptedIntegerOrdOreColumn(name, INTEGER_ORD_ORE),
528
+ IntegerOrd: (name) => new EncryptedIntegerOrdColumn(name, INTEGER_ORD),
529
+ // smallint
530
+ Smallint: (name) => new EncryptedSmallintColumn(name, SMALLINT),
531
+ SmallintEq: (name) => new EncryptedSmallintEqColumn(name, SMALLINT_EQ),
532
+ SmallintOrdOre: (name) => new EncryptedSmallintOrdOreColumn(name, SMALLINT_ORD_ORE),
533
+ SmallintOrd: (name) => new EncryptedSmallintOrdColumn(name, SMALLINT_ORD),
534
+ // date
535
+ Date: (name) => new EncryptedDateColumn(name, DATE),
536
+ DateEq: (name) => new EncryptedDateEqColumn(name, DATE_EQ),
537
+ DateOrdOre: (name) => new EncryptedDateOrdOreColumn(name, DATE_ORD_ORE),
538
+ DateOrd: (name) => new EncryptedDateOrdColumn(name, DATE_ORD),
539
+ // timestamp
540
+ Timestamp: (name) => new EncryptedTimestampColumn(name, TIMESTAMP),
541
+ TimestampEq: (name) => new EncryptedTimestampEqColumn(name, TIMESTAMP_EQ),
542
+ TimestampOrdOre: (name) => new EncryptedTimestampOrdOreColumn(name, TIMESTAMP_ORD_ORE),
543
+ TimestampOrd: (name) => new EncryptedTimestampOrdColumn(name, TIMESTAMP_ORD),
544
+ // numeric
545
+ Numeric: (name) => new EncryptedNumericColumn(name, NUMERIC),
546
+ NumericEq: (name) => new EncryptedNumericEqColumn(name, NUMERIC_EQ),
547
+ NumericOrdOre: (name) => new EncryptedNumericOrdOreColumn(name, NUMERIC_ORD_ORE),
548
+ NumericOrd: (name) => new EncryptedNumericOrdColumn(name, NUMERIC_ORD),
549
+ // text
550
+ Text: (name) => new EncryptedTextColumn(name, TEXT),
551
+ TextEq: (name) => new EncryptedTextEqColumn(name, TEXT_EQ),
552
+ TextMatch: (name) => new EncryptedTextMatchColumn(name, TEXT_MATCH),
553
+ TextOrdOre: (name) => new EncryptedTextOrdOreColumn(name, TEXT_ORD_ORE),
554
+ TextOrd: (name) => new EncryptedTextOrdColumn(name, TEXT_ORD),
555
+ TextSearch: (name) => new EncryptedTextSearchColumn(name),
556
+ // boolean
557
+ Boolean: (name) => new EncryptedBooleanColumn(name, BOOLEAN),
558
+ // real
559
+ Real: (name) => new EncryptedRealColumn(name, REAL),
560
+ RealEq: (name) => new EncryptedRealEqColumn(name, REAL_EQ),
561
+ RealOrdOre: (name) => new EncryptedRealOrdOreColumn(name, REAL_ORD_ORE),
562
+ RealOrd: (name) => new EncryptedRealOrdColumn(name, REAL_ORD),
563
+ // double
564
+ Double: (name) => new EncryptedDoubleColumn(name, DOUBLE),
565
+ DoubleEq: (name) => new EncryptedDoubleEqColumn(name, DOUBLE_EQ),
566
+ DoubleOrdOre: (name) => new EncryptedDoubleOrdOreColumn(name, DOUBLE_ORD_ORE),
567
+ DoubleOrd: (name) => new EncryptedDoubleOrdColumn(name, DOUBLE_ORD)
568
+ };
569
+ // Annotate the CommonJS export names for ESM import in node:
570
+ 0 && (module.exports = {
571
+ EncryptedBooleanColumn,
572
+ EncryptedDateColumn,
573
+ EncryptedDateEqColumn,
574
+ EncryptedDateOrdColumn,
575
+ EncryptedDateOrdOreColumn,
576
+ EncryptedDoubleColumn,
577
+ EncryptedDoubleEqColumn,
578
+ EncryptedDoubleOrdColumn,
579
+ EncryptedDoubleOrdOreColumn,
580
+ EncryptedIntegerColumn,
581
+ EncryptedIntegerEqColumn,
582
+ EncryptedIntegerOrdColumn,
583
+ EncryptedIntegerOrdOreColumn,
584
+ EncryptedNumericColumn,
585
+ EncryptedNumericEqColumn,
586
+ EncryptedNumericOrdColumn,
587
+ EncryptedNumericOrdOreColumn,
588
+ EncryptedRealColumn,
589
+ EncryptedRealEqColumn,
590
+ EncryptedRealOrdColumn,
591
+ EncryptedRealOrdOreColumn,
592
+ EncryptedSmallintColumn,
593
+ EncryptedSmallintEqColumn,
594
+ EncryptedSmallintOrdColumn,
595
+ EncryptedSmallintOrdOreColumn,
596
+ EncryptedTable,
597
+ EncryptedTextColumn,
598
+ EncryptedTextEqColumn,
599
+ EncryptedTextMatchColumn,
600
+ EncryptedTextOrdColumn,
601
+ EncryptedTextOrdOreColumn,
602
+ EncryptedTextSearchColumn,
603
+ EncryptedTimestampColumn,
604
+ EncryptedTimestampEqColumn,
605
+ EncryptedTimestampOrdColumn,
606
+ EncryptedTimestampOrdOreColumn,
607
+ TEXT_SEARCH_EQL_TYPE,
608
+ buildEncryptConfig,
609
+ encryptedTable,
610
+ types
611
+ });
612
+ //# sourceMappingURL=index.cjs.map