@xylex-group/athena 2.14.0 → 3.0.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 (78) hide show
  1. package/README.md +91 -1398
  2. package/dist/admin.d.cts +1 -1
  3. package/dist/admin.d.ts +1 -1
  4. package/dist/billing.cjs +1199 -0
  5. package/dist/billing.cjs.map +1 -0
  6. package/dist/billing.d.cts +230 -0
  7. package/dist/billing.d.ts +230 -0
  8. package/dist/billing.js +1194 -0
  9. package/dist/billing.js.map +1 -0
  10. package/dist/browser.cjs +8892 -8533
  11. package/dist/browser.cjs.map +1 -1
  12. package/dist/browser.d.cts +11 -10
  13. package/dist/browser.d.ts +11 -10
  14. package/dist/browser.js +8889 -8531
  15. package/dist/browser.js.map +1 -1
  16. package/dist/cli/index.cjs +8294 -7528
  17. package/dist/cli/index.cjs.map +1 -1
  18. package/dist/cli/index.d.cts +4 -4
  19. package/dist/cli/index.d.ts +4 -4
  20. package/dist/cli/index.js +8294 -7528
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/index.cjs +8869 -8504
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +11 -10
  25. package/dist/index.d.ts +11 -10
  26. package/dist/index.js +8862 -8502
  27. package/dist/index.js.map +1 -1
  28. package/dist/{model-form-BE1_Bmdd.d.cts → model-form-BEfCGB5b.d.cts} +2 -2
  29. package/dist/{model-form-DcH3R7WD.d.ts → model-form-BKetpu6Q.d.ts} +2 -2
  30. package/dist/module-8dSMcy0K.d.cts +326 -0
  31. package/dist/module-8dSMcy0K.d.ts +326 -0
  32. package/dist/{module-Ca3_OQqR.d.ts → module-Bef_MAPO.d.ts} +6 -52
  33. package/dist/{module-DFGZXCtt.d.cts → module-CrrSmpML.d.cts} +6 -52
  34. package/dist/next/client.cjs +2 -9168
  35. package/dist/next/client.cjs.map +1 -1
  36. package/dist/next/client.d.cts +1 -27
  37. package/dist/next/client.d.ts +1 -27
  38. package/dist/next/client.js +3 -9168
  39. package/dist/next/client.js.map +1 -1
  40. package/dist/next/server.cjs +79 -9279
  41. package/dist/next/server.cjs.map +1 -1
  42. package/dist/next/server.d.cts +30 -46
  43. package/dist/next/server.d.ts +30 -46
  44. package/dist/next/server.js +79 -9279
  45. package/dist/next/server.js.map +1 -1
  46. package/dist/{payload-BbSCmILD.d.ts → payload-DWI1rw-e.d.cts} +1 -35
  47. package/dist/{payload-zXIwKTQf.d.cts → payload-DWI1rw-e.d.ts} +1 -35
  48. package/dist/{pipeline-DqwehoQV.d.ts → pipeline-BXFQbsUW.d.ts} +1 -1
  49. package/dist/{pipeline-CwQoD5G9.d.cts → pipeline-Dfsed4VD.d.cts} +1 -1
  50. package/dist/react.cjs +114 -13
  51. package/dist/react.cjs.map +1 -1
  52. package/dist/react.d.cts +46 -16
  53. package/dist/react.d.ts +46 -16
  54. package/dist/react.js +113 -14
  55. package/dist/react.js.map +1 -1
  56. package/dist/social-providers.cjs +9 -9
  57. package/dist/social-providers.cjs.map +1 -1
  58. package/dist/social-providers.d.cts +79 -82
  59. package/dist/social-providers.d.ts +79 -82
  60. package/dist/social-providers.js +9 -9
  61. package/dist/social-providers.js.map +1 -1
  62. package/dist/{types-eAKAh71s.d.cts → types-AOY-GLu8.d.cts} +27 -54
  63. package/dist/{types-eAKAh71s.d.ts → types-AOY-GLu8.d.ts} +27 -54
  64. package/dist/{types-YQUR7wu0.d.cts → types-Bltx6iL6.d.cts} +3 -5
  65. package/dist/{types-YQUR7wu0.d.ts → types-Bltx6iL6.d.ts} +3 -5
  66. package/dist/{types-C1swabT5.d.ts → types-CK7cBQbC.d.ts} +2 -2
  67. package/dist/{types-dHnjluBC.d.cts → types-Z3-rsiM3.d.cts} +2 -2
  68. package/dist/{types-CD6K05JQ.d.ts → types-jClgDy1J.d.ts} +2 -2
  69. package/dist/{types-6H575ITc.d.cts → types-kO_Ut5wU.d.cts} +2 -2
  70. package/dist/utils.cjs +7 -8
  71. package/dist/utils.cjs.map +1 -1
  72. package/dist/utils.d.cts +2 -5
  73. package/dist/utils.d.ts +2 -5
  74. package/dist/utils.js +7 -8
  75. package/dist/utils.js.map +1 -1
  76. package/dist/{client-uthENhaf.d.ts → v3-client-CuCNy-JJ.d.ts} +380 -515
  77. package/dist/{client-wU2J9yqb.d.cts → v3-client-G8JMOilK.d.cts} +380 -515
  78. package/package.json +10 -1
@@ -1,26 +1,7 @@
1
- import { a as AthenaGatewayCallOptions, b as AthenaGatewayConnectionOptions, c as AthenaGatewayConnectionResult, w as AthenaFetchPayload, s as AthenaGatewayResponse, x as AthenaInsertPayload, y as AthenaUpdatePayload, v as AthenaDeletePayload, n as AthenaRpcPayload, j as AthenaRpcCallOptions, C as AthenaQueryPayload, q as AthenaGatewayEndpointPath, r as AthenaGatewayMethod, i as AthenaJsonValue, g as AthenaJsonObject, D as AthenaGatewayBaseOptions, E as AthenaConditionValue, F as AthenaConditionArrayValue, G as AthenaGatewayCondition, H as AthenaSortBy, k as AthenaRpcFilter, o as BackendConfig, p as BackendType, e as AthenaGatewayErrorDetails, A as AthenaConditionCastType, I as AthenaConditionOperator } from './types-YQUR7wu0.js';
2
- import { F as AthenaAuthClientConfig, D as AthenaAuthBindings } from './types-eAKAh71s.js';
3
- import { A as AthenaModelTarget, n as RowOf, a as InsertOf, U as UpdateOf, u as AthenaClientTableName, s as AthenaClientModelForTableName, R as RegistryDef, D as DatabaseDef, o as SchemaDef, r as AnyModelDef, j as ModelDef, m as ModelRelationMetadata, t as AthenaClientModelsInput } from './types-CD6K05JQ.js';
4
-
5
- interface AthenaFindManyAstPayload$1 {
6
- table_name: string;
7
- select: Record<string, unknown>;
8
- where?: Record<string, unknown>;
9
- orderBy?: Record<string, unknown>;
10
- limit?: number;
11
- }
12
- declare function verifyAthenaGatewayUrl(baseUrl: string, options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
13
- interface AthenaGatewayClient {
14
- baseUrl: string;
15
- buildHeaders(options?: AthenaGatewayCallOptions): Record<string, string>;
16
- verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
17
- fetchGateway<T>(payload: AthenaFetchPayload | AthenaFindManyAstPayload$1, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
18
- insertGateway<T>(payload: AthenaInsertPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
19
- updateGateway<T>(payload: AthenaUpdatePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
20
- deleteGateway<T>(payload: AthenaDeletePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
21
- rpcGateway<T>(payload: AthenaRpcPayload, options?: AthenaRpcCallOptions): Promise<AthenaGatewayResponse<T>>;
22
- queryGateway<T>(payload: AthenaQueryPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
23
- }
1
+ import { F as AthenaAuthClientConfig, D as AthenaAuthBindings } from './types-AOY-GLu8.js';
2
+ import { e as AthenaGatewayErrorDetails, a as AthenaGatewayCallOptions, b as AthenaGatewayConnectionOptions, c as AthenaGatewayConnectionResult, x as AthenaFetchPayload, s as AthenaGatewayResponse, y as AthenaInsertPayload, z as AthenaUpdatePayload, w as AthenaDeletePayload, n as AthenaRpcPayload, j as AthenaRpcCallOptions, C as AthenaQueryPayload, i as AthenaJsonValue, g as AthenaJsonObject, q as AthenaGatewayEndpointPath, r as AthenaGatewayMethod, D as AthenaGatewayBaseOptions, E as AthenaConditionValue, F as AthenaConditionArrayValue, G as AthenaGatewayCondition, H as AthenaSortBy, k as AthenaRpcFilter, A as AthenaConditionCastType, I as AthenaConditionOperator, o as BackendConfig, p as BackendType } from './types-Bltx6iL6.js';
3
+ import { A as AthenaModelTarget, n as RowOf, a as InsertOf, U as UpdateOf, u as AthenaClientTableName, s as AthenaClientModelForTableName, R as RegistryDef, D as DatabaseDef, o as SchemaDef, r as AnyModelDef, j as ModelDef, m as ModelRelationMetadata, t as AthenaClientModelsInput } from './types-jClgDy1J.js';
4
+ import { a as AthenaBillingClientConfig, c as AthenaBillingModule } from './module-8dSMcy0K.js';
24
5
 
25
6
  type AthenaErrorKind = 'unique_violation' | 'not_found' | 'validation' | 'auth' | 'rate_limit' | 'transient' | 'unknown';
26
7
  declare const AthenaErrorKind: {
@@ -194,7 +175,7 @@ declare function coerceInt(value: unknown, options?: IntCoercionOptions): number
194
175
  */
195
176
  declare function assertInt(value: unknown, label?: string, options?: IntCoercionOptions): number;
196
177
  /**
197
- * @deprecated Prefer `experimental.retryReads` for standard SDK-managed read
178
+ * @deprecated Prefer `retryReads` for standard SDK-managed read
198
179
  * retries, or a call-site retry policy when you need custom write/replay
199
180
  * behavior. This helper is retained for compatibility.
200
181
  *
@@ -205,6 +186,154 @@ declare function assertInt(value: unknown, label?: string, options?: IntCoercion
205
186
  */
206
187
  declare function withRetry<T>(config: RetryConfig, fn: () => Promise<T>): Promise<T>;
207
188
 
189
+ interface AthenaResult<T> {
190
+ data: T | null;
191
+ error: AthenaResultError | null;
192
+ statusText?: string | null;
193
+ /**
194
+ * @deprecated Prefer `error?.gatewayCode`, `error?.hint`, and related fields on `error`.
195
+ */
196
+ errorDetails?: AthenaGatewayErrorDetails | null;
197
+ status: number;
198
+ count?: number | null;
199
+ raw: unknown;
200
+ }
201
+ interface AthenaResultError {
202
+ message: string;
203
+ code: string | null;
204
+ athenaCode: NormalizedAthenaError['code'];
205
+ gatewayCode?: AthenaGatewayErrorDetails['code'] | null;
206
+ kind: NormalizedAthenaError['kind'];
207
+ category: NormalizedAthenaError['category'];
208
+ retryable: boolean;
209
+ details: unknown | null;
210
+ hint: string | null;
211
+ status: number;
212
+ statusText: string | null;
213
+ constraint?: string;
214
+ table?: string;
215
+ operation?: string;
216
+ endpoint?: AthenaGatewayErrorDetails['endpoint'];
217
+ method?: AthenaGatewayErrorDetails['method'];
218
+ requestId?: string;
219
+ cause?: string;
220
+ raw: unknown;
221
+ }
222
+
223
+ type AthenaRequestService = 'db' | 'auth' | 'chat' | 'storage';
224
+ type AthenaRequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
225
+ interface AthenaRequestQueryValueMap {
226
+ [key: string]: string | number | boolean | null | undefined | Array<string | number | boolean | null | undefined>;
227
+ }
228
+ interface AthenaRequestOptions {
229
+ service?: AthenaRequestService;
230
+ url?: string;
231
+ path?: string;
232
+ method?: AthenaRequestMethod;
233
+ headers?: Record<string, string>;
234
+ /** Per-request override for the canonical `X-Athena-Key` header. */
235
+ apiKey?: string | null;
236
+ query?: AthenaRequestQueryValueMap;
237
+ body?: RequestInit['body'] | Record<string, unknown> | unknown[] | null;
238
+ signal?: AbortSignal;
239
+ credentials?: RequestInit['credentials'];
240
+ responseType?: 'json' | 'text' | 'response';
241
+ }
242
+ interface AthenaRequestResponse<T = unknown> {
243
+ ok: boolean;
244
+ status: number;
245
+ statusText: string;
246
+ headers: Headers;
247
+ data: T | string | null;
248
+ raw: Response;
249
+ }
250
+
251
+ interface AthenaFindManyAstPayload$1 {
252
+ table_name: string;
253
+ select: Record<string, unknown>;
254
+ where?: Record<string, unknown>;
255
+ orderBy?: Record<string, unknown>;
256
+ limit?: number;
257
+ }
258
+ declare function verifyAthenaGatewayUrl(baseUrl: string, options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
259
+ interface AthenaGatewayClient {
260
+ baseUrl: string;
261
+ buildHeaders(options?: AthenaGatewayCallOptions): Record<string, string>;
262
+ resolveCallOptions(options?: AthenaGatewayCallOptions): Promise<AthenaGatewayCallOptions | undefined>;
263
+ verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
264
+ fetchGateway<T>(payload: AthenaFetchPayload | AthenaFindManyAstPayload$1, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
265
+ insertGateway<T>(payload: AthenaInsertPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
266
+ updateGateway<T>(payload: AthenaUpdatePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
267
+ deleteGateway<T>(payload: AthenaDeletePayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
268
+ rpcGateway<T>(payload: AthenaRpcPayload, options?: AthenaRpcCallOptions): Promise<AthenaGatewayResponse<T>>;
269
+ queryGateway<T>(payload: AthenaQueryPayload, options?: AthenaGatewayCallOptions): Promise<AthenaGatewayResponse<T>>;
270
+ }
271
+
272
+ type Whitespace = ' ' | '\n' | '\r' | '\t';
273
+ type TrimLeft<TValue extends string> = TValue extends `${Whitespace}${infer TRest}` ? TrimLeft<TRest> : TValue;
274
+ type TrimRight<TValue extends string> = TValue extends `${infer TRest}${Whitespace}` ? TrimRight<TRest> : TValue;
275
+ type Trim<TValue extends string> = TrimLeft<TrimRight<TValue>>;
276
+ /** Known string keys of a row / model type (empty when the shape is untyped). */
277
+ type AthenaColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
278
+ type KnownSelectColumnKey<Row> = AthenaColumnKey<Row>;
279
+ type HasKnownSelectColumns<Row> = [KnownSelectColumnKey<Row>] extends [never] ? false : string extends KnownSelectColumnKey<Row> ? false : true;
280
+ type HasComplexSelectTokenSyntax<TValue extends string> = TValue extends `${string}(${string}` ? true : TValue extends `${string})${string}` ? true : TValue extends `${string}.${string}` ? true : TValue extends `${string}"${string}` ? true : TValue extends `${string}'${string}` ? true : false;
281
+ type ValidateAliasedBase<Row, TOriginal extends string, TBase extends string> = HasComplexSelectTokenSyntax<Trim<TBase>> extends true ? TOriginal : Trim<TBase> extends KnownSelectColumnKey<Row> ? TOriginal : never;
282
+ type ValidateSelectToken<Row, TToken extends string> = Trim<TToken> extends infer TTrimmed extends string ? TTrimmed extends '' ? never : TTrimmed extends '*' ? TTrimmed : TTrimmed extends `${string}:${infer TBase}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} as ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} AS ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : HasComplexSelectTokenSyntax<TTrimmed> extends true ? TTrimmed : TTrimmed extends KnownSelectColumnKey<Row> ? TTrimmed : never : never;
283
+ type ValidateSelectList<Row, TValue extends string> = string extends TValue ? TValue : HasComplexSelectTokenSyntax<TValue> extends true ? TValue : TValue extends `${infer THead},${infer TTail}` ? ValidateSelectToken<Row, THead> extends never ? never : ValidateSelectList<Row, TTail> extends never ? never : TValue : ValidateSelectToken<Row, TValue> extends never ? never : TValue;
284
+ /**
285
+ * Preferred element type for typed array selects.
286
+ * Contextual typing validates each array-literal element against known keys
287
+ * (no `as const` required) and powers IntelliSense on each slot.
288
+ */
289
+ type AthenaSelectArrayElement<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> | '*' : string;
290
+ type AthenaSelectInput = string | string[] | readonly string[];
291
+ /**
292
+ * Compile-time validation for `select` / `single` / `maybeSingle` when
293
+ * row keys are known.
294
+ *
295
+ * - Comma-separated strings: validates each simple token (aliases / relation
296
+ * syntax are allowed through).
297
+ * - Arrays: always `readonly (keyof Row | '*')[]` for element IntelliSense and
298
+ * checking without `as const`.
299
+ */
300
+ type AthenaValidatedSelectInput<Row, TValue extends AthenaSelectInput> = HasKnownSelectColumns<Row> extends true ? TValue extends readonly string[] ? readonly AthenaSelectArrayElement<Row>[] : TValue extends string ? ValidateSelectList<Row, TValue> : never : TValue;
301
+ /**
302
+ * Filter / order / RPC column parameter. Known model keys are closed; dynamic
303
+ * rows retain free-form string support.
304
+ */
305
+ type AthenaTypecheckedColumnKey<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> : string;
306
+
307
+ type AthenaRowShape$1 = Record<string, AthenaJsonValue | undefined>;
308
+ type UntypedTableName<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
309
+ type ResolvedClientTableModel<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
310
+ type ClientTableQueryBuilder<TModels, TTableName extends string> = TableQueryBuilder<RowOf<ResolvedClientTableModel<TModels, TTableName>>, InsertOf<ResolvedClientTableModel<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel<TModels, TTableName>>>;
311
+ type AthenaUpsertOptions<Update> = AthenaGatewayCallOptions & {
312
+ updateBody?: Update;
313
+ onConflict?: string | string[];
314
+ };
315
+ interface AthenaDbModule<TModels = never> {
316
+ from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>>;
317
+ from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder<TModels, TTableName>;
318
+ from<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update>;
319
+ select<Row = AthenaRowShape$1>(table: UntypedTableName<TModels>, options?: AthenaGatewayCallOptions): SelectChain<Row, Row>;
320
+ select(table: UntypedTableName<TModels>, columns: AthenaSelectInput, options?: AthenaGatewayCallOptions): SelectChain<AthenaRowShape$1, AthenaRowShape$1>;
321
+ insert<Row = AthenaRowShape$1, Insert = Partial<Row>>(table: UntypedTableName<TModels>, values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row>;
322
+ insert<Row = AthenaRowShape$1, Insert = Partial<Row>>(table: UntypedTableName<TModels>, values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row>;
323
+ upsert<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, values: Insert, options?: AthenaUpsertOptions<Update>): MutationQuery<Row, Row>;
324
+ upsert<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, values: Insert[], options?: AthenaUpsertOptions<Update>): MutationQuery<Row[], Row>;
325
+ update<Row = AthenaRowShape$1, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row>;
326
+ delete<Row = AthenaRowShape$1>(table: UntypedTableName<TModels>, options?: AthenaGatewayCallOptions & {
327
+ resourceId?: string;
328
+ }): MutationQuery<Row | null, Row>;
329
+ rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row>;
330
+ query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
331
+ }
332
+
333
+ /** Files at or above this size use multipart unless `forceSinglePut` is set. */
334
+ declare const DEFAULT_MULTIPART_THRESHOLD_BYTES: number;
335
+ /** Chunk size for multipart uploads (S3 requires >= 5 MiB except the last part). */
336
+ declare const DEFAULT_MULTIPART_PART_SIZE_BYTES: number;
208
337
  type AthenaStorageTemplateValue = string | number | boolean | null | undefined;
209
338
  type AthenaStorageTemplateVars = Record<string, AthenaStorageTemplateValue>;
210
339
  type AthenaStorageEnv = Record<string, string | undefined>;
@@ -250,6 +379,12 @@ interface AthenaStorageUploadProgress {
250
379
  aggregateLoaded: number;
251
380
  aggregateTotal: number;
252
381
  aggregatePercent: number;
382
+ /** Present when the active file is uploading via multipart. */
383
+ multipart?: {
384
+ uploadId: string;
385
+ partNumber: number;
386
+ partCount: number;
387
+ };
253
388
  }
254
389
  type AthenaStorageUploadProgressHandler = (progress: AthenaStorageUploadProgress) => void;
255
390
  interface AthenaStorageFileUploadInput extends AthenaStorageUploadConstraints, StorageServerSideEncryptionOptions {
@@ -277,6 +412,14 @@ interface AthenaStorageFileUploadInput extends AthenaStorageUploadConstraints, S
277
412
  env?: AthenaStorageEnv;
278
413
  uploadHeaders?: AthenaStorageUploadHeaders;
279
414
  onProgress?: AthenaStorageUploadProgressHandler;
415
+ /** Override auto-multipart threshold (default 32 MiB). */
416
+ multipartThresholdBytes?: number;
417
+ /** Override multipart chunk size (default 8 MiB, minimum 5 MiB). */
418
+ multipartPartSizeBytes?: number;
419
+ /** Always use a single PUT even when the file exceeds the multipart threshold. */
420
+ forceSinglePut?: boolean;
421
+ /** Always use multipart even when the file is below the threshold. */
422
+ forceMultipart?: boolean;
280
423
  }
281
424
  interface AthenaStorageUploadedFile {
282
425
  file: ManagedFileRecord;
@@ -309,6 +452,7 @@ interface AthenaStorageFileDownloadInput extends GetStorageFileUrlQuery {
309
452
  type AthenaStorageFileDeleteInput = string | readonly string[];
310
453
  interface AthenaStorageFileModule {
311
454
  upload(input: AthenaStorageFileUploadInput, options?: AthenaStorageCallOptions): Promise<AthenaStorageFileUploadResult>;
455
+ uploadMultipart(input: AthenaStorageFileUploadInput, options?: AthenaStorageCallOptions): Promise<AthenaStorageFileUploadResult>;
312
456
  download(fileId: string, query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response>;
313
457
  download(fileIds: readonly string[], query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response[]>;
314
458
  download(input: AthenaStorageFileDownloadInput, options?: AthenaStorageBinaryCallOptions): Promise<Response | Response[]>;
@@ -316,6 +460,33 @@ interface AthenaStorageFileModule {
316
460
  delete(fileId: string, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
317
461
  delete(fileIds: readonly string[], options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse[]>;
318
462
  }
463
+ interface AthenaStorageFileBaseModule {
464
+ createStorageUploadUrl(input: CreateStorageUploadUrlRequest, options?: AthenaStorageCallOptions): Promise<StorageUploadUrlResponse>;
465
+ createStorageUploadUrls(input: {
466
+ files: CreateStorageUploadUrlRequest[];
467
+ }, options?: AthenaStorageCallOptions): Promise<StorageBatchUploadUrlResponse>;
468
+ listStorageFiles(input: ListStorageFilesRequest, options?: AthenaStorageCallOptions): Promise<StorageListFilesResponse>;
469
+ getStorageFileProxy(fileId: string, query?: GetStorageFileUrlQuery, options?: AthenaStorageBinaryCallOptions): Promise<Response>;
470
+ deleteStorageFile(fileId: string, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
471
+ }
472
+ interface AthenaStorageMultipartClient {
473
+ create(input: StorageMultipartCreateRequest, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
474
+ signPart(input: StorageMultipartSignPartRequest, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
475
+ complete(input: StorageMultipartCompleteRequest, options?: AthenaStorageCallOptions): Promise<StorageFileMutationResponse>;
476
+ abort(input: StorageMultipartAbortRequest, options?: AthenaStorageCallOptions): Promise<Record<string, unknown>>;
477
+ }
478
+ declare function createStorageFileModule(base: AthenaStorageFileBaseModule, config?: AthenaStorageFileConfig, multipart?: AthenaStorageMultipartClient): AthenaStorageFileModule;
479
+ declare function resolveStoragePath(path: string, input: {
480
+ prefixPath?: AthenaStoragePrefixPath;
481
+ vars?: AthenaStorageTemplateVars;
482
+ env?: AthenaStorageEnv;
483
+ organization_id?: string;
484
+ organizationId?: string;
485
+ user_id?: string;
486
+ userId?: string;
487
+ resource_id?: string;
488
+ resourceId?: string;
489
+ }, options: AthenaStorageCallOptions | undefined, config?: AthenaStorageFileConfig): string;
319
490
 
320
491
  /**
321
492
  * Admin backup surface exposed under `client.storage.backup.*`.
@@ -1118,7 +1289,7 @@ interface CreateStorageCatalogRequest {
1118
1289
  */
1119
1290
  region?: string;
1120
1291
  bucket: string;
1121
- /** Storage provider: `s3`, `r2`, or `cloudflare_r2` (and free-form S3-compatible labels). */
1292
+ /** Storage provider: `s3` or `r2`; aliases include `aws`, `aws_s3`, `cloudflare_r2`, and `cloudflare-r2`. */
1122
1293
  provider?: string;
1123
1294
  /**
1124
1295
  * Cloudflare account ID for R2 catalogs when endpoint is omitted.
@@ -1385,49 +1556,78 @@ interface StorageMultipartListPartsRequest {
1385
1556
  file_id: string;
1386
1557
  upload_id: string;
1387
1558
  }
1388
- interface StorageObjectFolderCreateRequest {
1559
+ interface DeprecatedInlineStorageConnectionFields {
1560
+ provider?: string;
1561
+ /**
1562
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1563
+ */
1564
+ endpoint?: string;
1565
+ /**
1566
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1567
+ */
1568
+ region?: string;
1569
+ /**
1570
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1571
+ */
1572
+ access_key_id?: string;
1573
+ /**
1574
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1575
+ */
1576
+ secret_key?: string;
1577
+ /**
1578
+ * @deprecated Prefer `s3_id` / `s3Id` and a managed storage catalog.
1579
+ */
1580
+ session_token?: string;
1581
+ }
1582
+ type StorageConnectionSelector = ({
1583
+ s3_id: string;
1584
+ s3Id?: string;
1585
+ } & DeprecatedInlineStorageConnectionFields) | ({
1586
+ s3_id?: string;
1587
+ s3Id: string;
1588
+ } & DeprecatedInlineStorageConnectionFields) | ({
1589
+ s3_id?: string;
1590
+ s3Id?: string;
1389
1591
  endpoint: string;
1390
1592
  region: string;
1391
1593
  access_key_id: string;
1392
1594
  secret_key: string;
1595
+ } & DeprecatedInlineStorageConnectionFields);
1596
+ type StorageObjectFolderCreateRequest = StorageConnectionSelector & {
1393
1597
  bucket: string;
1394
1598
  prefix: string;
1395
- }
1599
+ };
1396
1600
  type StorageObjectFolderDeleteRequest = StorageObjectFolderCreateRequest;
1397
1601
  interface StorageObjectFolderRenameRequest extends Omit<StorageObjectFolderCreateRequest, 'prefix'> {
1398
1602
  from_prefix: string;
1399
1603
  to_prefix: string;
1400
1604
  }
1401
- interface StorageObjectBaseRequest {
1402
- endpoint: string;
1403
- region: string;
1404
- access_key_id: string;
1405
- secret_key: string;
1605
+ type StorageObjectBaseRequest = StorageConnectionSelector & {
1406
1606
  bucket: string;
1407
- }
1408
- interface StorageObjectRequest extends StorageObjectBaseRequest {
1607
+ };
1608
+ type StorageObjectRequest = StorageObjectBaseRequest & {
1409
1609
  key: string;
1410
- }
1411
- interface StorageObjectValidateRequest extends StorageObjectRequest {
1610
+ };
1611
+ type StorageObjectValidateRequest = StorageObjectRequest & {
1412
1612
  checksum_sha256?: string;
1413
1613
  etag?: string;
1414
- }
1415
- interface StorageObjectCopyRequest extends StorageObjectBaseRequest, StorageServerSideEncryptionOptions {
1614
+ };
1615
+ type StorageObjectCopyRequest = StorageObjectBaseRequest & StorageServerSideEncryptionOptions & {
1416
1616
  source_key: string;
1417
1617
  destination_key: string;
1418
1618
  destination_bucket?: string;
1419
- }
1420
- interface StorageObjectPublicUrlRequest extends StorageObjectRequest {
1619
+ };
1620
+ type StorageObjectPublicUrlRequest = StorageObjectRequest & {
1421
1621
  public_base_url?: string;
1422
1622
  force_path_style?: boolean;
1423
- }
1424
- interface StorageListObjectsRequest extends StorageObjectBaseRequest {
1623
+ };
1624
+ type StorageListObjectsRequest = StorageObjectBaseRequest & {
1425
1625
  prefix?: string;
1426
1626
  delimiter?: string;
1427
1627
  continuation_token?: string;
1428
1628
  max_keys?: number;
1429
- }
1430
- interface StorageUpdateObjectRequest extends StorageObjectRequest {
1629
+ };
1630
+ type StorageUpdateObjectRequest = StorageObjectRequest & {
1431
1631
  acl?: string;
1432
1632
  content_type?: string;
1433
1633
  cache_control?: string;
@@ -1435,18 +1635,18 @@ interface StorageUpdateObjectRequest extends StorageObjectRequest {
1435
1635
  content_encoding?: string;
1436
1636
  content_language?: string;
1437
1637
  metadata?: Record<string, string>;
1438
- }
1439
- interface StorageObjectVersionListRequest extends StorageObjectBaseRequest {
1638
+ };
1639
+ type StorageObjectVersionListRequest = StorageObjectBaseRequest & {
1440
1640
  key?: string;
1441
1641
  max_keys?: number;
1442
1642
  key_marker?: string;
1443
1643
  version_id_marker?: string;
1444
1644
  delimiter?: string;
1445
- }
1446
- interface StorageObjectVersionMutationRequest extends StorageObjectRequest {
1645
+ };
1646
+ type StorageObjectVersionMutationRequest = StorageObjectRequest & {
1447
1647
  version_id: string;
1448
- }
1449
- interface StorageSignedPostPolicyRequest extends StorageObjectRequest, StorageServerSideEncryptionOptions {
1648
+ };
1649
+ type StorageSignedPostPolicyRequest = StorageObjectRequest & StorageServerSideEncryptionOptions & {
1450
1650
  content_type?: string;
1451
1651
  min_size?: number;
1452
1652
  max_size?: number;
@@ -1454,10 +1654,10 @@ interface StorageSignedPostPolicyRequest extends StorageObjectRequest, StorageSe
1454
1654
  public_base_url?: string;
1455
1655
  force_path_style?: boolean;
1456
1656
  success_action_status?: string;
1457
- }
1458
- interface StoragePresignUploadRequest extends StorageObjectRequest, StorageServerSideEncryptionOptions {
1657
+ };
1658
+ type StoragePresignUploadRequest = StorageObjectRequest & StorageServerSideEncryptionOptions & {
1459
1659
  content_type?: string;
1460
- }
1660
+ };
1461
1661
  type StorageBucketCorsRequest = StorageObjectBaseRequest;
1462
1662
  interface StorageBucketCorsRuleInput {
1463
1663
  allowed_origins: string[];
@@ -1466,9 +1666,9 @@ interface StorageBucketCorsRuleInput {
1466
1666
  expose_headers?: string[];
1467
1667
  max_age_seconds?: number;
1468
1668
  }
1469
- interface StorageSetBucketCorsRequest extends StorageBucketCorsRequest {
1669
+ type StorageSetBucketCorsRequest = StorageBucketCorsRequest & {
1470
1670
  rules: StorageBucketCorsRuleInput[];
1471
- }
1671
+ };
1472
1672
  type StorageBucketLifecycleRequest = StorageObjectBaseRequest;
1473
1673
  interface StorageBucketLifecycleRuleInput {
1474
1674
  id?: string;
@@ -1479,20 +1679,20 @@ interface StorageBucketLifecycleRuleInput {
1479
1679
  noncurrent_version_expiration_days?: number;
1480
1680
  abort_incomplete_multipart_upload_days?: number;
1481
1681
  }
1482
- interface StorageSetBucketLifecycleRequest extends StorageBucketLifecycleRequest {
1682
+ type StorageSetBucketLifecycleRequest = StorageBucketLifecycleRequest & {
1483
1683
  rules: StorageBucketLifecycleRuleInput[];
1484
- }
1684
+ };
1485
1685
  type StorageBucketPolicyRequest = StorageObjectBaseRequest;
1486
- interface StorageSetBucketPolicyRequest extends StorageBucketPolicyRequest {
1686
+ type StorageSetBucketPolicyRequest = StorageBucketPolicyRequest & {
1487
1687
  policy: Record<string, unknown> | string;
1488
- }
1688
+ };
1489
1689
  type StoragePublicAccessBlockRequest = StorageObjectBaseRequest;
1490
- interface StorageSetPublicAccessBlockRequest extends StoragePublicAccessBlockRequest {
1690
+ type StorageSetPublicAccessBlockRequest = StoragePublicAccessBlockRequest & {
1491
1691
  block_public_acls?: boolean;
1492
1692
  ignore_public_acls?: boolean;
1493
1693
  block_public_policy?: boolean;
1494
1694
  restrict_public_buckets?: boolean;
1495
- }
1695
+ };
1496
1696
  interface StorageFileVersionPathRequest {
1497
1697
  file_id: string;
1498
1698
  version_id: string;
@@ -1523,7 +1723,7 @@ interface AthenaStorageClientConfig extends AthenaStorageFileConfig {
1523
1723
  onError?: AthenaStorageErrorHandler;
1524
1724
  }
1525
1725
  /**
1526
- * Experimental credentials for signing the upload PUT in the client.
1726
+ * Credentials for signing the direct upload PUT in the client.
1527
1727
  * The Athena API still creates managed-file metadata so the public upload
1528
1728
  * result remains unchanged; file bytes go directly to this S3-compatible endpoint.
1529
1729
  */
@@ -1801,73 +2001,6 @@ interface AthenaStorageModule extends AthenaStorageBaseModule {
1801
2001
  declare function createAthenaStorageError(input: AthenaStorageErrorInput): AthenaStorageError;
1802
2002
  declare function createStorageModule(gateway: AthenaGatewayClient, runtimeOptions?: AthenaStorageClientConfig): AthenaStorageModule;
1803
2003
 
1804
- type Whitespace = ' ' | '\n' | '\r' | '\t';
1805
- type TrimLeft<TValue extends string> = TValue extends `${Whitespace}${infer TRest}` ? TrimLeft<TRest> : TValue;
1806
- type TrimRight<TValue extends string> = TValue extends `${infer TRest}${Whitespace}` ? TrimRight<TRest> : TValue;
1807
- type Trim<TValue extends string> = TrimLeft<TrimRight<TValue>>;
1808
- /** Known string keys of a row / model type (empty when the shape is untyped). */
1809
- type AthenaColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
1810
- type KnownSelectColumnKey<Row> = AthenaColumnKey<Row>;
1811
- type HasKnownSelectColumns<Row> = [KnownSelectColumnKey<Row>] extends [never] ? false : string extends KnownSelectColumnKey<Row> ? false : true;
1812
- type HasComplexSelectTokenSyntax<TValue extends string> = TValue extends `${string}(${string}` ? true : TValue extends `${string})${string}` ? true : TValue extends `${string}.${string}` ? true : TValue extends `${string}"${string}` ? true : TValue extends `${string}'${string}` ? true : false;
1813
- type ValidateAliasedBase<Row, TOriginal extends string, TBase extends string> = HasComplexSelectTokenSyntax<Trim<TBase>> extends true ? TOriginal : Trim<TBase> extends KnownSelectColumnKey<Row> ? TOriginal : never;
1814
- type ValidateSelectToken<Row, TToken extends string> = Trim<TToken> extends infer TTrimmed extends string ? TTrimmed extends '' ? never : TTrimmed extends '*' ? TTrimmed : TTrimmed extends `${string}:${infer TBase}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} as ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : TTrimmed extends `${infer TBase} AS ${string}` ? ValidateAliasedBase<Row, TTrimmed, TBase> : HasComplexSelectTokenSyntax<TTrimmed> extends true ? TTrimmed : TTrimmed extends KnownSelectColumnKey<Row> ? TTrimmed : never : never;
1815
- type ValidateSelectList<Row, TValue extends string> = string extends TValue ? TValue : HasComplexSelectTokenSyntax<TValue> extends true ? TValue : TValue extends `${infer THead},${infer TTail}` ? ValidateSelectToken<Row, THead> extends never ? never : ValidateSelectList<Row, TTail> extends never ? never : TValue : ValidateSelectToken<Row, TValue> extends never ? never : TValue;
1816
- /**
1817
- * Preferred element type for typed array selects.
1818
- * Contextual typing validates each array-literal element against known keys
1819
- * (no `as const` required) and powers IntelliSense on each slot.
1820
- */
1821
- type AthenaSelectArrayElement<Row> = HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> | '*' : string;
1822
- type AthenaSelectInput = string | string[] | readonly string[];
1823
- /**
1824
- * Compile-time validation for `select` / `single` / `maybeSingle` when
1825
- * `experimental.typecheckColumns` is enabled and row keys are known.
1826
- *
1827
- * - Comma-separated strings: validates each simple token (aliases / relation
1828
- * syntax are allowed through).
1829
- * - Arrays: always `readonly (keyof Row | '*')[]` for element IntelliSense and
1830
- * checking without `as const`.
1831
- */
1832
- type AthenaValidatedSelectInput<Row, TValue extends AthenaSelectInput> = HasKnownSelectColumns<Row> extends true ? TValue extends readonly string[] ? readonly AthenaSelectArrayElement<Row>[] : TValue extends string ? ValidateSelectList<Row, TValue> : never : TValue;
1833
- /**
1834
- * Filter / order / RPC column parameter when `typecheckColumns` is enabled.
1835
- * When disabled, still surfaces known keys for IntelliSense via
1836
- * `Keys | (string & {})` so free-form strings remain assignable.
1837
- */
1838
- type AthenaTypecheckedColumnKey<Row, TEnabled extends boolean> = TEnabled extends true ? HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> : string : HasKnownSelectColumns<Row> extends true ? KnownSelectColumnKey<Row> | (string & {}) : string;
1839
-
1840
- type AthenaRowShape$2 = Record<string, AthenaJsonValue | undefined>;
1841
- /**
1842
- * Free-form `from<Row>(table)` table argument.
1843
- * With client `models`, this is the known table-name union (IntelliSense).
1844
- * Without models, plain `string`.
1845
- */
1846
- type UntypedTableName$1<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
1847
- type ResolvedClientTableModel$1<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
1848
- type ClientTableQueryBuilder$1<TModels, TTableName extends string, TStrict extends boolean> = TableQueryBuilder<RowOf<ResolvedClientTableModel$1<TModels, TTableName>>, InsertOf<ResolvedClientTableModel$1<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel$1<TModels, TTableName>>, unknown, TStrict>;
1849
- type AthenaUpsertOptions<Update> = AthenaGatewayCallOptions & {
1850
- updateBody?: Update;
1851
- onConflict?: string | string[];
1852
- };
1853
- interface AthenaDbModule<TStrict extends boolean = false, TModels = never> {
1854
- from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>, unknown, TStrict>;
1855
- from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder$1<TModels, TTableName, TStrict>;
1856
- from<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update, unknown, TStrict>;
1857
- select<Row = AthenaRowShape$2>(table: UntypedTableName$1<TModels>, options?: AthenaGatewayCallOptions): SelectChain<Row, Row, TStrict>;
1858
- select(table: UntypedTableName$1<TModels>, columns: AthenaSelectInput, options?: AthenaGatewayCallOptions): SelectChain<AthenaRowShape$2, AthenaRowShape$2, TStrict>;
1859
- insert<Row = AthenaRowShape$2, Insert = Partial<Row>>(table: UntypedTableName$1<TModels>, values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row, TStrict>;
1860
- insert<Row = AthenaRowShape$2, Insert = Partial<Row>>(table: UntypedTableName$1<TModels>, values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row, TStrict>;
1861
- upsert<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Insert, options?: AthenaUpsertOptions<Update>): MutationQuery<Row, Row, TStrict>;
1862
- upsert<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Insert[], options?: AthenaUpsertOptions<Update>): MutationQuery<Row[], Row, TStrict>;
1863
- update<Row = AthenaRowShape$2, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName$1<TModels>, values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row, TStrict>;
1864
- delete<Row = AthenaRowShape$2>(table: UntypedTableName$1<TModels>, options?: AthenaGatewayCallOptions & {
1865
- resourceId?: string;
1866
- }): MutationQuery<Row | null, Row, TStrict>;
1867
- rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row, TStrict>;
1868
- query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
1869
- }
1870
-
1871
2004
  type AthenaChatRoomKind = 'dm' | 'group' | 'channel';
1872
2005
  type AthenaChatMemberRole = 'owner' | 'admin' | 'member';
1873
2006
  interface AthenaChatAttachmentInput {
@@ -2165,7 +2298,7 @@ interface AthenaChatWsErrorEvent {
2165
2298
  code?: string | null;
2166
2299
  }
2167
2300
  type AthenaChatWsServerEvent = AthenaChatWsHelloOkEvent | AthenaChatWsSubscribedEvent | AthenaChatWsRoomCreatedEvent | AthenaChatWsRoomUpdatedEvent | AthenaChatWsRoomArchivedEvent | AthenaChatWsMessageCreatedEvent | AthenaChatWsMessageUpdatedEvent | AthenaChatWsMessageDeletedEvent | AthenaChatWsReadUpdatedEvent | AthenaChatWsMembersUpdatedEvent | AthenaChatWsTypingUpdatedEvent | AthenaChatWsPresenceUpdatedEvent | AthenaChatWsSyncRequiredEvent | AthenaChatWsReactionUpdatedEvent | AthenaChatWsPongEvent | AthenaChatWsErrorEvent;
2168
- type AthenaChatCallOptions = Pick<AthenaGatewayBaseOptions, 'headers' | 'client' | 'apiKey' | 'athenaKey' | 'bearerToken' | 'cookie' | 'sessionToken' | 'forceNoCache'> & {
2301
+ type AthenaChatCallOptions = Pick<AthenaGatewayBaseOptions, 'headers' | 'client' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken' | 'forceNoCache'> & {
2169
2302
  signal?: AbortSignal;
2170
2303
  };
2171
2304
  interface AthenaChatWebSocketLike {
@@ -2236,7 +2369,7 @@ interface AthenaChatModule {
2236
2369
  realtime: AthenaChatRealtimeModule;
2237
2370
  }
2238
2371
 
2239
- type AthenaRowShape$1 = Record<string, AthenaJsonValue | undefined>;
2372
+ type AthenaRowShape = Record<string, AthenaJsonValue | undefined>;
2240
2373
  type FilterColumnKey$1<Row> = Extract<keyof NonNullable<Row>, string>;
2241
2374
  type ResolvedFilterColumnKey$1<Row> = [FilterColumnKey$1<Row>] extends [never] ? string : FilterColumnKey$1<Row>;
2242
2375
  type AthenaFilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'ilike' | 'is' | 'in' | 'contains' | 'containedBy';
@@ -2255,7 +2388,7 @@ type AthenaWhereOperatorInput = {
2255
2388
  contains?: AthenaConditionArrayValue;
2256
2389
  containedBy?: AthenaConditionArrayValue;
2257
2390
  };
2258
- type AthenaWhereColumnInput<Row = AthenaRowShape$1> = Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereOperatorInput>>;
2391
+ type AthenaWhereColumnInput<Row = AthenaRowShape> = Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereOperatorInput>>;
2259
2392
  type AthenaBooleanSafeOperator = Exclude<AthenaFilterOperator, 'in' | 'contains' | 'containedBy'>;
2260
2393
  type AthenaWhereBooleanSafeOperatorInput = Partial<Record<AthenaBooleanSafeOperator, AthenaConditionValue>>;
2261
2394
  type AthenaWhereBooleanNotOperatorInput = {
@@ -2269,9 +2402,9 @@ type AthenaStrictBooleanOperand<Keys extends string, Value> = {
2269
2402
  } & Partial<Record<Exclude<Keys, K>, never>>;
2270
2403
  }[Keys];
2271
2404
  type AthenaNonEmptyArray<T> = [T, ...T[]];
2272
- type AthenaWhereBooleanOperand<Row = AthenaRowShape$1> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanSafeOperatorInput>;
2273
- type AthenaWhereNotOperand<Row = AthenaRowShape$1> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanNotOperatorInput>;
2274
- type AthenaWhere<Row = AthenaRowShape$1> = AthenaWhereColumnInput<Row> & {
2405
+ type AthenaWhereBooleanOperand<Row = AthenaRowShape> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanSafeOperatorInput>;
2406
+ type AthenaWhereNotOperand<Row = AthenaRowShape> = string extends ResolvedFilterColumnKey$1<Row> ? AthenaWhereColumnInput<Row> : AthenaStrictBooleanOperand<ResolvedFilterColumnKey$1<Row>, AthenaWherePrimitive | AthenaWhereBooleanNotOperatorInput>;
2407
+ type AthenaWhere<Row = AthenaRowShape> = AthenaWhereColumnInput<Row> & {
2275
2408
  or?: string extends ResolvedFilterColumnKey$1<Row> ? Array<AthenaWhereColumnInput<Row>> : AthenaNonEmptyArray<AthenaWhereBooleanOperand<Row>>;
2276
2409
  not?: AthenaWhereNotOperand<Row>;
2277
2410
  };
@@ -2298,11 +2431,11 @@ type GenericRegistryDef = RegistryDef<Record<string, DatabaseDef<Record<string,
2298
2431
  type AthenaOrderByDirectionInput = 'asc' | 'desc' | 'ascending' | 'descending' | boolean | {
2299
2432
  ascending?: boolean;
2300
2433
  };
2301
- type AthenaOrderBy<Row = AthenaRowShape$1> = {
2434
+ type AthenaOrderBy<Row = AthenaRowShape> = {
2302
2435
  column: ResolvedFilterColumnKey$1<Row>;
2303
2436
  ascending?: boolean;
2304
2437
  } | Partial<Record<ResolvedFilterColumnKey$1<Row>, AthenaOrderByDirectionInput>>;
2305
- interface AthenaFindManyOptions<Row = AthenaRowShape$1, TSelect extends AthenaSelectShape = AthenaSelectShape> {
2438
+ interface AthenaFindManyOptions<Row = AthenaRowShape, TSelect extends AthenaSelectShape = AthenaSelectShape> {
2306
2439
  select: TSelect;
2307
2440
  where?: AthenaWhere<Row>;
2308
2441
  orderBy?: AthenaOrderBy<Row>;
@@ -2457,7 +2590,7 @@ interface AthenaUpsertDebugAst extends AthenaDebugAstBase<'upsert'> {
2457
2590
  interface AthenaUpdateDebugAst extends AthenaDebugAstBase<'update'> {
2458
2591
  tableName: string;
2459
2592
  input: {
2460
- values: AthenaUpdatePayload['set'];
2593
+ values: AthenaUpdatePayload['update_body'];
2461
2594
  state: AthenaTableBuilderStateAst;
2462
2595
  returning?: AthenaUpdatePayload['columns'];
2463
2596
  };
@@ -2508,122 +2641,6 @@ interface AthenaRawQueryDebugAst extends AthenaDebugAstBase<'query'> {
2508
2641
  type AthenaQueryDebugAst = AthenaSelectDebugAst | AthenaFindManyDebugAst | AthenaInsertDebugAst | AthenaUpsertDebugAst | AthenaUpdateDebugAst | AthenaDeleteDebugAst | AthenaRpcDebugAst | AthenaRawQueryDebugAst;
2509
2642
  declare function getAthenaDebugAst(value: unknown): AthenaQueryDebugAst | null;
2510
2643
 
2511
- interface AthenaResult<T> {
2512
- data: T | null;
2513
- error: AthenaResultError | null;
2514
- statusText?: string | null;
2515
- /**
2516
- * @deprecated Prefer `error?.gatewayCode`, `error?.hint`, and related fields on `error`.
2517
- */
2518
- errorDetails?: AthenaGatewayErrorDetails | null;
2519
- status: number;
2520
- count?: number | null;
2521
- raw: unknown;
2522
- }
2523
- interface AthenaResultError {
2524
- message: string;
2525
- code: string | null;
2526
- athenaCode: NormalizedAthenaError['code'];
2527
- gatewayCode?: AthenaGatewayErrorDetails['code'] | null;
2528
- kind: NormalizedAthenaError['kind'];
2529
- category: NormalizedAthenaError['category'];
2530
- retryable: boolean;
2531
- details: unknown | null;
2532
- hint: string | null;
2533
- status: number;
2534
- statusText: string | null;
2535
- constraint?: string;
2536
- table?: string;
2537
- operation?: string;
2538
- endpoint?: AthenaGatewayErrorDetails['endpoint'];
2539
- method?: AthenaGatewayErrorDetails['method'];
2540
- requestId?: string;
2541
- cause?: string;
2542
- raw: unknown;
2543
- }
2544
- type AthenaRequestService = 'db' | 'auth' | 'chat' | 'storage';
2545
- type AthenaRequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
2546
- interface AthenaRequestQueryValueMap {
2547
- [key: string]: string | number | boolean | null | undefined | Array<string | number | boolean | null | undefined>;
2548
- }
2549
- interface AthenaRequestOptions {
2550
- service?: AthenaRequestService;
2551
- url?: string;
2552
- path?: string;
2553
- method?: AthenaRequestMethod;
2554
- headers?: Record<string, string>;
2555
- /** Per-request override for the canonical `X-Athena-Key` header. */
2556
- apiKey?: string | null;
2557
- /** Per-request override for `X-Athena-Key` only. */
2558
- athenaKey?: string | null;
2559
- query?: AthenaRequestQueryValueMap;
2560
- body?: RequestInit['body'] | Record<string, unknown> | unknown[] | null;
2561
- signal?: AbortSignal;
2562
- credentials?: RequestInit['credentials'];
2563
- responseType?: 'json' | 'text' | 'response';
2564
- }
2565
- interface AthenaRequestResponse<T = unknown> {
2566
- ok: boolean;
2567
- status: number;
2568
- statusText: string;
2569
- headers: Headers;
2570
- data: T | string | null;
2571
- raw: Response;
2572
- }
2573
- interface AthenaClientExperimentalOptions {
2574
- /**
2575
- * @deprecated Failed `AthenaResult` values now include normalized structured `error`
2576
- * envelopes by default. This flag is retained as a no-op compatibility switch.
2577
- */
2578
- enableErrorNormalization?: boolean;
2579
- /**
2580
- * Retry retryable read failures (`select`, `findMany`, `query`) with a fixed internal policy.
2581
- *
2582
- * Applies two additional attempts with exponential backoff and jitter.
2583
- */
2584
- retryReads?: boolean;
2585
- /**
2586
- * Emit execution diagnostics for every query/mutation/RPC invocation.
2587
- * Includes payload, synthesized SQL, full outcome, and best-effort callsite metadata.
2588
- */
2589
- traceQueries?: boolean | AthenaQueryTraceOptions;
2590
- /**
2591
- * Build and attach a normalized operation AST for runtime debugging.
2592
- *
2593
- * When enabled, successful Athena results expose a non-enumerable debug AST
2594
- * that can be read with `getAthenaDebugAst(...)`. If tracing is also enabled,
2595
- * the same AST is included on emitted trace events.
2596
- */
2597
- debugAst?: boolean;
2598
- /**
2599
- * Compile-time opt-in for validating simple `select(...)`, `order(...)`, and
2600
- * RPC filter column names against known row keys.
2601
- *
2602
- * This flag is type-only. It does not change runtime request behavior.
2603
- */
2604
- typecheckColumns?: boolean;
2605
- /**
2606
- * Send the original `findMany(...)` AST body for clean object-select reads.
2607
- * This requires gateway support and falls back to legacy compiled transport
2608
- * when a chain carries filter/pagination state that the AST payload cannot
2609
- * represent losslessly yet.
2610
- */
2611
- findManyAst?: boolean;
2612
- /**
2613
- * Expose the experimental `client.storage.*` bindings for Athena storage APIs.
2614
- */
2615
- athenaStorageBackend?: boolean;
2616
- /**
2617
- * Sign high-level `storage.file.upload(...)` PUTs in the client and send
2618
- * file bytes directly to the configured S3-compatible storage endpoint.
2619
- * Athena still creates managed-file metadata, preserving the upload result contract.
2620
- */
2621
- directStorageUpload?: AthenaStorageDirectUploadConfig;
2622
- /**
2623
- * Optional storage SDK runtime hooks. Only used when `athenaStorageBackend` is enabled.
2624
- */
2625
- storage?: AthenaStorageClientConfig;
2626
- }
2627
2644
  interface AthenaQueryTraceOptions {
2628
2645
  /**
2629
2646
  * Custom sink for trace events. Defaults to console.info.
@@ -2662,34 +2679,21 @@ interface AthenaQueryTraceEvent {
2662
2679
  }
2663
2680
  type MutationSingleResult<Result> = Result extends Array<infer Item> ? Item | null : Result | null;
2664
2681
  type MutationResultRow<Result> = Result extends Array<infer Item> ? Item : Result;
2665
- type AthenaRowShape = Record<string, AthenaJsonValue | undefined>;
2666
2682
  type FilterColumnKey<Row> = Extract<keyof NonNullable<Row>, string>;
2667
2683
  /** Known keys when the row shape is concrete; `string` when untyped / index signature. */
2668
2684
  type ResolvedFilterColumnKey<Row> = [FilterColumnKey<Row>] extends [never] ? string : string extends FilterColumnKey<Row> ? string : FilterColumnKey<Row>;
2669
- /**
2670
- * Table-name argument for free-form `from<Row>(table)`.
2671
- * - No client `models` → `string` (nothing to complete).
2672
- * - With `models` → known bare/qualified names (IntelliSense + reject unknowns).
2673
- * Prefer `.from("users")` without a row generic so the row type is inferred from the model.
2674
- */
2675
- type UntypedTableName<TModels> = [TModels] extends [never] ? string : [AthenaClientTableName<TModels>] extends [never] ? string : AthenaClientTableName<TModels>;
2676
- type ResolvedClientTableModel<TModels, TTableName extends string> = Extract<AthenaClientModelForTableName<TModels, TTableName>, AthenaModelTarget>;
2677
- type ClientTableQueryBuilder<TModels, TTableName extends string, TStrict extends boolean> = TableQueryBuilder<RowOf<ResolvedClientTableModel<TModels, TTableName>>, InsertOf<ResolvedClientTableModel<TModels, TTableName>>, UpdateOf<ResolvedClientTableModel<TModels, TTableName>>, unknown, TStrict>;
2678
2685
  /**
2679
2686
  * Select/returning/single column input.
2680
2687
  *
2681
- * - Typed row + `typecheckColumns`: validates string lists; arrays use key union
2682
- * (IntelliSense + reject unknown elements without `as const`).
2683
- * - Typed row without strict: free-form strings still allowed; key unions are
2684
- * included so IDEs can suggest column names on `select` / `single` / etc.
2688
+ * - Typed row: validates string lists; arrays use the model-key union.
2685
2689
  * - Untyped row: plain `TValue` (`string | string[]`).
2686
2690
  */
2687
- type SelectColumnsFor<Row, TStrict extends boolean, TValue extends AthenaSelectInput> = TStrict extends true ? AthenaValidatedSelectInput<Row, TValue> : [FilterColumnKey<Row>] extends [never] ? TValue : string extends FilterColumnKey<Row> ? TValue : TValue | FilterColumnKey<Row> | '*' | readonly (FilterColumnKey<Row> | '*')[];
2688
- interface MutationQuery<Result, Row = MutationResultRow<Result>, TStrict extends boolean = false> extends PromiseLike<AthenaResult<Result>> {
2689
- select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2690
- returning<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2691
- single<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2692
- maybeSingle<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2691
+ type SelectColumnsFor<Row, TValue extends AthenaSelectInput> = AthenaValidatedSelectInput<Row, TValue>;
2692
+ interface MutationQuery<Result, Row = MutationResultRow<Result>> extends PromiseLike<AthenaResult<Result>> {
2693
+ select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2694
+ returning<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Result>>;
2695
+ single<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2696
+ maybeSingle<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<MutationSingleResult<Result>>>;
2693
2697
  then<TResult1 = AthenaResult<Result>, TResult2 = never>(onfulfilled?: ((value: AthenaResult<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
2694
2698
  catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<AthenaResult<Result> | TResult>;
2695
2699
  finally(onfinally?: (() => void) | undefined | null): Promise<AthenaResult<Result>>;
@@ -2725,277 +2729,138 @@ interface FilterChain<Self, Row> {
2725
2729
  or(expression: string): Self;
2726
2730
  }
2727
2731
  /** Chain returned by select() - supports filters and single/maybeSingle before execution */
2728
- interface SelectChain<Row, SelectedRow = Row, TStrict extends boolean = false> extends FilterChain<SelectChain<Row, SelectedRow, TStrict>, Row>, PromiseLike<AthenaResult<SelectedRow[]>> {
2729
- single<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2730
- maybeSingle<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2732
+ interface SelectChain<Row, SelectedRow = Row> extends FilterChain<SelectChain<Row, SelectedRow>, Row>, PromiseLike<AthenaResult<SelectedRow[]>> {
2733
+ single<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2734
+ maybeSingle<T = SelectedRow, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2731
2735
  }
2732
2736
  /** Chain returned by update() - supports filters before execution, plus select/returning */
2733
- interface UpdateChain<Row, TStrict extends boolean = false> extends FilterChain<UpdateChain<Row, TStrict>, Row>, MutationQuery<Row[], Row, TStrict> {
2734
- }
2735
- interface RpcFilterChain<Self, Row, TStrict extends boolean = false> {
2736
- eq(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2737
- neq(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2738
- gt(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2739
- gte(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2740
- lt(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2741
- lte(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2742
- like(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2743
- ilike(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2744
- is(column: AthenaTypecheckedColumnKey<Row, TStrict>, value: AthenaConditionValue): Self;
2745
- in(column: AthenaTypecheckedColumnKey<Row, TStrict>, values: AthenaConditionArrayValue): Self;
2737
+ interface UpdateChain<Row> extends FilterChain<UpdateChain<Row>, Row>, MutationQuery<Row[], Row> {
2738
+ }
2739
+ interface RpcFilterChain<Self, Row> {
2740
+ eq(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2741
+ neq(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2742
+ gt(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2743
+ gte(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2744
+ lt(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2745
+ lte(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2746
+ like(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2747
+ ilike(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2748
+ is(column: AthenaTypecheckedColumnKey<Row>, value: AthenaConditionValue): Self;
2749
+ in(column: AthenaTypecheckedColumnKey<Row>, values: AthenaConditionArrayValue): Self;
2746
2750
  }
2747
2751
  interface RpcOrderOptions {
2748
2752
  ascending?: boolean;
2749
2753
  }
2750
- interface RpcQueryBuilder<Row, TStrict extends boolean = false> extends RpcFilterChain<RpcQueryBuilder<Row, TStrict>, Row, TStrict>, PromiseLike<AthenaResult<Row[]>> {
2751
- select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<Row[]>>;
2752
- single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2753
- maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2754
- order(column: AthenaTypecheckedColumnKey<Row, TStrict>, options?: RpcOrderOptions): RpcQueryBuilder<Row, TStrict>;
2755
- limit(count: number): RpcQueryBuilder<Row, TStrict>;
2756
- offset(count: number): RpcQueryBuilder<Row, TStrict>;
2757
- range(from: number, to: number): RpcQueryBuilder<Row, TStrict>;
2754
+ interface RpcQueryBuilder<Row> extends RpcFilterChain<RpcQueryBuilder<Row>, Row>, PromiseLike<AthenaResult<Row[]>> {
2755
+ select<const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<Row[]>>;
2756
+ single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2757
+ maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaRpcCallOptions): Promise<AthenaResult<T | null>>;
2758
+ order(column: AthenaTypecheckedColumnKey<Row>, options?: RpcOrderOptions): RpcQueryBuilder<Row>;
2759
+ limit(count: number): RpcQueryBuilder<Row>;
2760
+ offset(count: number): RpcQueryBuilder<Row>;
2761
+ range(from: number, to: number): RpcQueryBuilder<Row>;
2758
2762
  }
2759
2763
  interface AthenaFromOptions {
2760
2764
  schema?: string;
2761
2765
  }
2762
- interface TableQueryBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, TContext = unknown, TStrict extends boolean = false> extends FilterChain<TableQueryBuilder<Row, Insert, Update, TContext, TStrict>, Row> {
2763
- select<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): SelectChain<Row, T, TStrict>;
2766
+ interface TableQueryBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, TContext = unknown> extends FilterChain<TableQueryBuilder<Row, Insert, Update, TContext>, Row> {
2767
+ select<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): SelectChain<Row, T>;
2764
2768
  findMany<const TSelect extends AthenaSelectShape>(options: AthenaFindManyOptions<Row, TSelect> & {
2765
2769
  select: AthenaValidatedSelectShape<TSelect>;
2766
2770
  }): Promise<AthenaResult<Array<AthenaFindManyResult<Row, TSelect, TContext>>>>;
2767
- insert(values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row, TStrict>;
2768
- insert(values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row, TStrict>;
2771
+ insert(values: Insert, options?: AthenaGatewayCallOptions): MutationQuery<Row, Row>;
2772
+ insert(values: Insert[], options?: AthenaGatewayCallOptions): MutationQuery<Row[], Row>;
2769
2773
  upsert(values: Insert, options?: AthenaGatewayCallOptions & {
2770
2774
  updateBody?: Update;
2771
2775
  onConflict?: ResolvedFilterColumnKey<Row> | Array<ResolvedFilterColumnKey<Row>> | (string & {}) | Array<string & {}>;
2772
- }): MutationQuery<Row, Row, TStrict>;
2776
+ }): MutationQuery<Row, Row>;
2773
2777
  upsert(values: Insert[], options?: AthenaGatewayCallOptions & {
2774
2778
  updateBody?: Update;
2775
2779
  onConflict?: ResolvedFilterColumnKey<Row> | Array<ResolvedFilterColumnKey<Row>> | (string & {}) | Array<string & {}>;
2776
- }): MutationQuery<Row[], Row, TStrict>;
2777
- update(values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row, TStrict>;
2780
+ }): MutationQuery<Row[], Row>;
2781
+ update(values: Update, options?: AthenaGatewayCallOptions): UpdateChain<Row>;
2778
2782
  delete(options?: AthenaGatewayCallOptions & {
2779
2783
  resourceId?: string;
2780
- }): MutationQuery<Row | null, Row, TStrict>;
2781
- single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2782
- maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TStrict, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2783
- reset(): TableQueryBuilder<Row, Insert, Update, TContext, TStrict>;
2784
- }
2785
- interface AthenaSdkClient<TStrict extends boolean = false, TModels = never> {
2786
- from<TModel extends AthenaModelTarget>(model: TModel): TableQueryBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>, unknown, TStrict>;
2787
- from<TTableName extends AthenaClientTableName<TModels>>(table: TTableName, options?: AthenaFromOptions): ClientTableQueryBuilder<TModels, TTableName, TStrict>;
2788
- from<Row = AthenaRowShape, Insert = Partial<Row>, Update = Partial<Insert>>(table: UntypedTableName<TModels>, options?: AthenaFromOptions): TableQueryBuilder<Row, Insert, Update, unknown, TStrict>;
2789
- db: AthenaDbModule<TStrict, TModels>;
2790
- rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row, TStrict>;
2791
- query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
2792
- request<T = unknown>(options: AthenaRequestOptions): Promise<AthenaRequestResponse<T>>;
2793
- verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
2794
- withContext(context?: AthenaClientContextOptions): AthenaSdkClient<TStrict, TModels>;
2795
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClient<TStrict, TModels>;
2796
- }
2797
- interface AthenaSdkClientWithAuth<TStrict extends boolean = false, TModels = never> extends AthenaSdkClient<TStrict, TModels> {
2798
- auth: AthenaAuthBindings;
2799
- chat: AthenaChatModule;
2800
- withContext(context?: AthenaClientContextOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2801
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2802
- withOptions(options?: AthenaClientOverrideOptions): AthenaSdkClientWithAuth<TStrict, TModels>;
2803
- }
2804
- interface AthenaSdkClientWithStorage<TStrict extends boolean = false, TModels = never> extends AthenaSdkClientWithAuth<TStrict, TModels> {
2805
- storage: AthenaStorageModule;
2806
- withContext(context?: AthenaClientContextOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2807
- withSession(session?: AthenaClientSessionLike | null, options?: AthenaClientSessionOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2808
- withOptions(options?: AthenaClientOverrideOptions): AthenaSdkClientWithStorage<TStrict, TModels>;
2809
- }
2810
- interface AthenaHeaderBag {
2811
- get(name: string): string | null;
2812
- }
2813
- interface AthenaClientSessionLike {
2814
- user?: {
2815
- id?: string | null | undefined;
2816
- } | null | undefined;
2817
- session?: {
2818
- token?: string | null | undefined;
2819
- activeOrganizationId?: string | null | undefined;
2820
- } | null | undefined;
2821
- }
2822
- interface AthenaCreateClientServiceUrlConfig {
2823
- url?: string | null | undefined;
2824
- }
2825
- interface AthenaCreateClientChatOptions extends AthenaCreateClientServiceUrlConfig {
2826
- wsUrl?: string | null | undefined;
2827
- webSocketFactory?: AthenaChatWebSocketFactory | null | undefined;
2828
- }
2829
- interface AthenaCreateClientAuthOptions extends Omit<AthenaAuthClientConfig, 'baseUrl' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken'> {
2830
- url?: string | null | undefined;
2831
- baseUrl?: string | null | undefined;
2832
- apiKey?: string | null | undefined;
2833
- bearerToken?: string | null | undefined;
2834
- cookie?: string | null | undefined;
2835
- sessionToken?: string | null | undefined;
2836
- }
2837
- interface AthenaCreateClientOptions {
2838
- client?: string | null | undefined;
2839
- userId?: string | null | undefined;
2840
- organizationId?: string | null | undefined;
2841
- forceNoCache?: boolean;
2842
- headers?: Record<string, string>;
2843
- /** Direct PostgreSQL URI forwarded as `x-pg-uri` on gateway requests. */
2844
- pgUri?: string | null | undefined;
2845
- /** JDBC/PostgreSQL URI mirrored to `x-athena-jdbc-url` and `x-jdbc-url`. */
2846
- jdbcUrl?: string | null | undefined;
2847
- /** Client-wide override for the canonical `X-Athena-Key` header. */
2848
- athenaKey?: string | null | undefined;
2849
- backend?: BackendConfig | BackendType;
2850
- db?: AthenaCreateClientServiceUrlConfig;
2851
- gateway?: AthenaCreateClientServiceUrlConfig;
2852
- auth?: AthenaCreateClientAuthOptions;
2853
- chat?: AthenaCreateClientChatOptions;
2854
- storage?: AthenaCreateClientServiceUrlConfig;
2855
- dbUrl?: string | null | undefined;
2856
- gatewayUrl?: string | null | undefined;
2857
- authUrl?: string | null | undefined;
2858
- chatUrl?: string | null | undefined;
2859
- chatWsUrl?: string | null | undefined;
2860
- storageUrl?: string | null | undefined;
2861
- models?: AthenaClientModelsInput;
2862
- experimental?: AthenaClientExperimentalOptions;
2863
- }
2864
- interface AthenaCreateClientOptionsWithStorage extends AthenaCreateClientOptions {
2865
- experimental: AthenaClientExperimentalOptions & {
2866
- athenaStorageBackend: true;
2867
- };
2868
- }
2869
- interface AthenaCreateClientOptionsWithTypecheckedColumns extends AthenaCreateClientOptions {
2870
- experimental: AthenaClientExperimentalOptions & {
2871
- typecheckColumns: true;
2872
- };
2784
+ }): MutationQuery<Row | null, Row>;
2785
+ single<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2786
+ maybeSingle<T = Row, const TColumns extends AthenaSelectInput = string>(columns?: SelectColumnsFor<Row, TColumns>, options?: AthenaGatewayCallOptions): Promise<AthenaResult<T | null>>;
2787
+ reset(): TableQueryBuilder<Row, Insert, Update, TContext>;
2873
2788
  }
2874
- interface AthenaCreateClientOptionsWithStorageAndTypecheckedColumns extends AthenaCreateClientOptions {
2875
- experimental: AthenaClientExperimentalOptions & {
2876
- athenaStorageBackend: true;
2877
- typecheckColumns: true;
2878
- };
2789
+
2790
+ type MaybePromise<T> = T | Promise<T>;
2791
+ type ResolvedModels<TModels> = TModels extends AthenaClientModelsInput ? TModels : never;
2792
+ type AthenaService = 'db' | 'auth' | 'chat' | 'storage' | 'billing';
2793
+ declare class AthenaConfigurationError extends Error {
2794
+ readonly code: "ATHENA_SERVICE_NOT_CONFIGURED";
2795
+ readonly service: AthenaService;
2796
+ constructor(service: AthenaService, message?: string);
2797
+ }
2798
+ interface AthenaRequestContext {
2799
+ userId?: string | null;
2800
+ organizationId?: string | null;
2801
+ headers?: Record<string, string>;
2802
+ cookie?: string | null;
2803
+ bearerToken?: string | null;
2804
+ sessionToken?: string | null;
2805
+ forceNoCache?: boolean;
2879
2806
  }
2880
- interface AthenaCreateClientConfig extends AthenaCreateClientOptions {
2881
- url?: string | null | undefined;
2882
- key: string | null | undefined;
2807
+ type AthenaRequestContextProvider = () => MaybePromise<AthenaRequestContext | undefined>;
2808
+ interface AthenaDbConfig {
2809
+ url?: string | null;
2810
+ pgUri?: string | null;
2811
+ jdbcUrl?: string | null;
2883
2812
  }
2884
- interface AthenaCreateClientConfigWithStorage extends AthenaCreateClientOptionsWithStorage {
2885
- url?: string | null | undefined;
2886
- key: string | null | undefined;
2813
+ interface AthenaAuthConfig extends Omit<AthenaAuthClientConfig, 'baseUrl' | 'apiKey' | 'bearerToken' | 'cookie' | 'sessionToken'> {
2814
+ url?: string | null;
2887
2815
  }
2888
- interface AthenaCreateClientConfigWithTypecheckedColumns extends AthenaCreateClientOptionsWithTypecheckedColumns {
2889
- url?: string | null | undefined;
2890
- key: string | null | undefined;
2816
+ interface AthenaChatConfig {
2817
+ url?: string | null;
2818
+ wsUrl?: string | null;
2819
+ webSocketFactory?: AthenaChatWebSocketFactory | null;
2891
2820
  }
2892
- interface AthenaCreateClientConfigWithStorageAndTypecheckedColumns extends AthenaCreateClientOptionsWithStorageAndTypecheckedColumns {
2893
- url?: string | null | undefined;
2894
- key: string | null | undefined;
2821
+ interface AthenaStorageConfig extends Omit<AthenaStorageClientConfig, 'baseUrl' | 'directUpload'> {
2822
+ url?: string | null;
2823
+ directUpload?: AthenaStorageDirectUploadConfig;
2895
2824
  }
2896
- interface AthenaClientOverrideOptions extends Omit<AthenaCreateClientOptions, 'experimental' | 'models'> {
2897
- url?: string | null | undefined;
2898
- key?: string | null | undefined;
2825
+ interface AthenaBillingConfig extends Omit<AthenaBillingClientConfig, 'baseUrl' | 'apiKey' | 'client' | 'fetchImpl'> {
2826
+ /** Optional override; defaults to the unified/root or db Athena URL. */
2827
+ url?: string | null;
2899
2828
  }
2900
- interface AthenaClientContextOptions {
2901
- userId?: string | null | undefined;
2902
- organizationId?: string | null | undefined;
2903
- forceNoCache?: boolean;
2829
+ interface AthenaClientConfig<TModels extends AthenaClientModelsInput | undefined = undefined> {
2830
+ url?: string | null;
2831
+ key?: string | null;
2832
+ client?: string | null;
2833
+ backend?: BackendConfig | BackendType;
2904
2834
  headers?: Record<string, string>;
2905
- auth?: Omit<AthenaCreateClientAuthOptions, 'url' | 'baseUrl' | 'apiKey'>;
2906
- }
2907
- interface AthenaClientSessionOptions extends AthenaClientContextOptions {
2908
- requestHeaders?: AthenaHeaderBag | Record<string, string | null | undefined>;
2909
- }
2910
- interface AthenaClientFromEnvironmentOptions extends AthenaCreateClientOptions {
2835
+ models?: TModels;
2911
2836
  env?: Record<string, string | undefined>;
2912
- url?: string | null | undefined;
2913
- key?: string | null | undefined;
2914
- }
2915
- interface AthenaClientFromEnvironmentOptionsWithStorage extends AthenaClientFromEnvironmentOptions {
2916
- experimental: AthenaClientExperimentalOptions & {
2917
- athenaStorageBackend: true;
2918
- };
2919
- }
2920
- interface AthenaClientFromEnvironmentOptionsWithTypecheckedColumns extends AthenaClientFromEnvironmentOptions {
2921
- experimental: AthenaClientExperimentalOptions & {
2922
- typecheckColumns: true;
2923
- };
2837
+ context?: AthenaRequestContext | AthenaRequestContextProvider;
2838
+ db?: AthenaDbConfig;
2839
+ auth?: AthenaAuthConfig;
2840
+ chat?: AthenaChatConfig;
2841
+ storage?: AthenaStorageConfig;
2842
+ billing?: AthenaBillingConfig;
2843
+ retryReads?: boolean;
2844
+ traceQueries?: boolean | AthenaQueryTraceOptions;
2845
+ debugAst?: boolean;
2846
+ findManyAst?: boolean;
2924
2847
  }
2925
- interface AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns extends AthenaClientFromEnvironmentOptions {
2926
- experimental: AthenaClientExperimentalOptions & {
2927
- athenaStorageBackend: true;
2928
- typecheckColumns: true;
2929
- };
2848
+ type V3TableBuilder<Row, Insert = Partial<Row>, Update = Partial<Insert>, Result = unknown> = TableQueryBuilder<Row, Insert, Update, Result>;
2849
+ interface AthenaClient<TModels extends AthenaClientModelsInput | undefined = AthenaClientModelsInput | undefined> {
2850
+ readonly db: AthenaDbModule<ResolvedModels<TModels>>;
2851
+ readonly auth: AthenaAuthBindings;
2852
+ readonly chat: AthenaChatModule;
2853
+ readonly storage: AthenaStorageModule;
2854
+ readonly billing: AthenaBillingModule;
2855
+ from<TModel extends AthenaModelTarget>(model: TModel): V3TableBuilder<RowOf<TModel>, InsertOf<TModel>, UpdateOf<TModel>>;
2856
+ from<TTableName extends AthenaClientTableName<ResolvedModels<TModels>>>(table: TTableName, options?: AthenaFromOptions): V3TableBuilder<RowOf<AthenaClientModelForTableName<ResolvedModels<TModels>, TTableName>>, InsertOf<AthenaClientModelForTableName<ResolvedModels<TModels>, TTableName>>, UpdateOf<AthenaClientModelForTableName<ResolvedModels<TModels>, TTableName>>>;
2857
+ from<Row = Record<string, unknown>, Insert = Partial<Row>, Update = Partial<Insert>>(table: string, options?: AthenaFromOptions): V3TableBuilder<Row, Insert, Update>;
2858
+ rpc<Row = unknown, Args extends AthenaJsonObject = AthenaJsonObject>(fn: string, args?: Args, options?: AthenaRpcCallOptions): RpcQueryBuilder<Row>;
2859
+ query<Row = unknown>(query: string, options?: AthenaGatewayCallOptions): Promise<AthenaResult<Row[]>>;
2860
+ request<T = unknown>(options: AthenaRequestOptions): Promise<AthenaRequestResponse<T>>;
2861
+ verifyConnection(options?: AthenaGatewayConnectionOptions): Promise<AthenaGatewayConnectionResult>;
2862
+ withContext(context: AthenaRequestContext): AthenaClient<TModels>;
2930
2863
  }
2931
- interface AthenaClientBuilder<StorageEnabled extends boolean = false, TStrict extends boolean = false> {
2932
- /** Set the public Athena base URL. */
2933
- url(url: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2934
- /** Set the API key used for all requests. */
2935
- key(apiKey: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2936
- /** Set the default backend routing strategy. */
2937
- backend(backend: BackendConfig | BackendType): AthenaClientBuilder<StorageEnabled, TStrict>;
2938
- /** Set the default Athena client routing key. */
2939
- client(clientName: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2940
- /** Attach static headers to every request. */
2941
- headers(headers: Record<string, string>): AthenaClientBuilder<StorageEnabled, TStrict>;
2942
- /** Forward a direct PostgreSQL URI as `x-pg-uri` on gateway requests. */
2943
- pgUri(pgUri: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2944
- /** Forward a JDBC/PostgreSQL URI to compatibility JDBC headers. */
2945
- jdbcUrl(jdbcUrl: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2946
- /** Override the canonical `X-Athena-Key` header for this client. */
2947
- athenaKey(athenaKey: string | null | undefined): AthenaClientBuilder<StorageEnabled, TStrict>;
2948
- /** Configure Athena Auth client behavior for `client.auth.*` methods. */
2949
- auth(config: AthenaCreateClientAuthOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2950
- /** Configure experimental client options and narrow the built client when storage or strict column checks are enabled. */
2951
- experimental(options: AthenaClientExperimentalOptions & {
2952
- athenaStorageBackend: true;
2953
- typecheckColumns: true;
2954
- }): AthenaClientBuilder<true, true>;
2955
- experimental(options: AthenaClientExperimentalOptions & {
2956
- athenaStorageBackend: true;
2957
- }): AthenaClientBuilder<true, TStrict>;
2958
- experimental(options: AthenaClientExperimentalOptions & {
2959
- typecheckColumns: true;
2960
- }): AthenaClientBuilder<StorageEnabled, true>;
2961
- experimental(options: AthenaClientExperimentalOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2962
- /** Apply createClient options and narrow the built client when storage is enabled. */
2963
- options(options: AthenaCreateClientOptionsWithStorageAndTypecheckedColumns): AthenaClientBuilder<true, true>;
2964
- options(options: AthenaCreateClientOptionsWithStorage): AthenaClientBuilder<true, TStrict>;
2965
- options(options: AthenaCreateClientOptionsWithTypecheckedColumns): AthenaClientBuilder<StorageEnabled, true>;
2966
- options(options: AthenaCreateClientOptions): AthenaClientBuilder<StorageEnabled, TStrict>;
2967
- /** Build the immutable Athena SDK client. */
2968
- build(): StorageEnabled extends true ? AthenaSdkClientWithStorage<TStrict> : AthenaSdkClientWithAuth<TStrict>;
2969
- }
2970
- /** Canonical Athena client factory with builder-based configuration. */
2971
- declare class AthenaClient {
2972
- /** Create a fluent builder for a strongly-typed Athena SDK client. */
2973
- static builder(): AthenaClientBuilder<false, false>;
2974
- /** Build a client from process environment variables. */
2975
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns): AthenaSdkClientWithStorage<true>;
2976
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithStorage): AthenaSdkClientWithStorage<false>;
2977
- static fromEnvironment(options: AthenaClientFromEnvironmentOptionsWithTypecheckedColumns): AthenaSdkClientWithAuth<true>;
2978
- static fromEnvironment(options?: AthenaClientFromEnvironmentOptions): AthenaSdkClientWithAuth<false>;
2979
- }
2980
- type ExtractClientModels<TInput> = TInput extends {
2981
- models: infer TModels extends AthenaClientModelsInput;
2982
- } ? TModels : never;
2983
- type AthenaCreateClientReturn<TInput> = TInput extends {
2984
- experimental: AthenaClientExperimentalOptions & {
2985
- athenaStorageBackend: true;
2986
- typecheckColumns: true;
2987
- };
2988
- } ? AthenaSdkClientWithStorage<true, ExtractClientModels<TInput>> : TInput extends {
2989
- experimental: AthenaClientExperimentalOptions & {
2990
- athenaStorageBackend: true;
2991
- };
2992
- } ? AthenaSdkClientWithStorage<false, ExtractClientModels<TInput>> : TInput extends {
2993
- experimental: AthenaClientExperimentalOptions & {
2994
- typecheckColumns: true;
2995
- };
2996
- } ? AthenaSdkClientWithAuth<true, ExtractClientModels<TInput>> : AthenaSdkClientWithAuth<false, ExtractClientModels<TInput>>;
2997
- /** Create client (convenience wrapper; use AthenaClient.builder() for full control) */
2998
- declare function createClient<TConfig extends AthenaCreateClientConfig>(config: TConfig): AthenaCreateClientReturn<TConfig>;
2999
- declare function createClient<TOptions extends AthenaCreateClientOptions | undefined>(url: string | null | undefined, apiKey: string | null | undefined, options?: TOptions): TOptions extends AthenaCreateClientOptions ? AthenaCreateClientReturn<TOptions> : AthenaSdkClientWithAuth<false>;
2864
+ declare function createClient<const TModels extends AthenaClientModelsInput | undefined = undefined>(config: AthenaClientConfig<TModels>): AthenaClient<TModels>;
3000
2865
 
3001
- export { type AthenaChatWsReadUpdatedEvent as $, type AthenaChatAddMembersRequest as A, type AthenaChatRoom as B, type AthenaChatRoomCreatedResponse as C, type AthenaChatRoomKind as D, type AthenaChatRoomPage as E, type AthenaChatSearchHit as F, type AthenaChatSearchMessagesRequest as G, type AthenaChatSearchPage as H, type AthenaChatSendMessageRequest as I, type AthenaChatUpdateRoomRequest as J, type AthenaChatWebSocketFactory as K, type AthenaChatWebSocketLike as L, type AthenaChatWsAuthHelloCommand as M, type AthenaChatWsClientCommand as N, type AthenaChatWsErrorEvent as O, type AthenaChatWsHelloOkEvent as P, type AthenaChatWsMembersUpdatedEvent as Q, type AthenaChatWsMessageCreatedEvent as R, type AthenaChatWsMessageDeletedEvent as S, type AthenaChatWsMessageEventBase as T, type AthenaChatWsMessageUpdatedEvent as U, type AthenaChatWsPingCommand as V, type AthenaChatWsPongEvent as W, type AthenaChatWsPresenceHeartbeatCommand as X, type AthenaChatWsPresenceUpdatedEvent as Y, type AthenaChatWsReactionUpdatedEvent as Z, type AthenaChatWsReadUpToCommand as _, type AthenaChatAddReactionRequest as a, type AthenaStorageBackupNamespace as a$, type AthenaChatWsResumeCommand as a0, type AthenaChatWsRoomArchivedEvent as a1, type AthenaChatWsRoomCreatedEvent as a2, type AthenaChatWsRoomEventBase as a3, type AthenaChatWsRoomUpdatedEvent as a4, type AthenaChatWsServerEvent as a5, type AthenaChatWsSubscribeCommand as a6, type AthenaChatWsSubscribedEvent as a7, type AthenaChatWsSyncRequiredEvent as a8, type AthenaChatWsTypingStartCommand as a9, type AthenaEnvelope as aA, AthenaError as aB, AthenaErrorCategory as aC, AthenaErrorCode as aD, type AthenaErrorInput as aE, AthenaErrorKind as aF, type AthenaFindManyDebugAst as aG, type AthenaFromOptions as aH, type AthenaHeaderBag as aI, type AthenaInsertDebugAst as aJ, type AthenaOperationContext as aK, type AthenaQueryDebugAst as aL, type AthenaRawQueryDebugAst as aM, type AthenaRequestMethod as aN, type AthenaRequestOptions as aO, type AthenaRequestQueryValueMap as aP, type AthenaRequestResponse as aQ, type AthenaRequestService as aR, type AthenaResult as aS, type AthenaRpcBuilderStateAst as aT, type AthenaRpcDebugAst as aU, type AthenaSdkClient as aV, type AthenaSdkClientWithAuth as aW, type AthenaSdkClientWithStorage as aX, type AthenaSelectDebugAst as aY, type AthenaSelectDebugTransport as aZ, type AthenaStorageAuditNamespace as a_, type AthenaChatWsTypingStopCommand as aa, type AthenaChatWsTypingUpdatedEvent as ab, type AthenaChatWsUnsubscribeCommand as ac, AthenaClient as ad, type AthenaClientContextOptions as ae, type AthenaClientExperimentalOptions as af, type AthenaClientFromEnvironmentOptions as ag, type AthenaClientFromEnvironmentOptionsWithStorage as ah, type AthenaClientFromEnvironmentOptionsWithStorageAndTypecheckedColumns as ai, type AthenaClientFromEnvironmentOptionsWithTypecheckedColumns as aj, type AthenaClientOverrideOptions as ak, type AthenaClientSessionLike as al, type AthenaClientSessionOptions as am, type AthenaCreateClientAuthOptions as an, type AthenaCreateClientChatOptions as ao, type AthenaCreateClientConfig as ap, type AthenaCreateClientConfigWithStorage as aq, type AthenaCreateClientConfigWithStorageAndTypecheckedColumns as ar, type AthenaCreateClientConfigWithTypecheckedColumns as as, type AthenaCreateClientOptions as at, type AthenaCreateClientOptionsWithStorage as au, type AthenaCreateClientOptionsWithStorageAndTypecheckedColumns as av, type AthenaCreateClientOptionsWithTypecheckedColumns as aw, type AthenaCreateClientServiceUrlConfig as ax, type AthenaDbModule as ay, type AthenaDeleteDebugAst as az, type AthenaChatAttachmentInput as b, type RetryBackoffStrategy as b$, type AthenaStorageBaseModule as b0, type AthenaStorageBinaryCallOptions as b1, type AthenaStorageBucketCorsNamespace as b2, type AthenaStorageBucketNamespace as b3, type AthenaStorageCallOptions as b4, type AthenaStorageCatalogNamespace as b5, type AthenaStorageClientConfig as b6, type AthenaStorageCredentialsNamespace as b7, type AthenaStorageDirectUploadConfig as b8, type AthenaStorageEnv as b9, type AthenaStorageTemplateValue as bA, type AthenaStorageTemplateVars as bB, type AthenaStorageUploadConstraints as bC, type AthenaStorageUploadProgress as bD, type AthenaStorageUploadProgressHandler as bE, type AthenaStorageUploadSource as bF, type AthenaStorageUploadedFile as bG, type AthenaTableBuilderStateAst as bH, type AthenaUpdateDebugAst as bI, type AthenaUpsertDebugAst as bJ, type BackupRecoveryStrategy as bK, type ConfirmStorageUploadRequest as bL, type CopyStorageFileRequest as bM, type CreateStorageCatalogRequest as bN, type CreateStorageUploadUrlRequest as bO, type CreateStorageUploadUrlsRequest as bP, type DeleteManyStorageFilesRequest as bQ, type DeleteStorageFolderRequest as bR, type GetStorageFileUrlQuery as bS, type IntCoercionOptions as bT, type ListStorageFilesRequest as bU, type ListStorageFoldersRequest as bV, type ManagedFileRecord as bW, type MoveStorageFolderRequest as bX, type NormalizedAthenaError as bY, type PresignedFileUrlResponse as bZ, type RequireAffectedOptions as b_, AthenaStorageError as ba, AthenaStorageErrorCode as bb, type AthenaStorageErrorDetails as bc, type AthenaStorageErrorHandler as bd, type AthenaStorageErrorInput as be, type AthenaStorageFileConfig as bf, type AthenaStorageFileDeleteInput as bg, type AthenaStorageFileDownloadInput as bh, type AthenaStorageFileListInput as bi, type AthenaStorageFileModule as bj, type AthenaStorageFileNamespace as bk, type AthenaStorageFileUploadInput as bl, type AthenaStorageFileUploadManyRequest as bm, type AthenaStorageFileUploadRequest as bn, type AthenaStorageFileUploadResult as bo, type AthenaStorageFolderNamespace as bp, type AthenaStorageManagedUpload as bq, type AthenaStorageModule as br, type AthenaStorageMultipartNamespace as bs, type AthenaStorageObjectFolderNamespace as bt, type AthenaStorageObjectNamespace as bu, type AthenaStoragePathContext as bv, type AthenaStoragePermissionNamespace as bw, type AthenaStoragePrefixPath as bx, type AthenaStoragePutBody as by, type AthenaStoragePutOptions as bz, type AthenaChatAttachmentView as c, type StorageSetBucketPolicyRequest as c$, type RetryConfig as c0, type RpcOrderOptions as c1, type RpcQueryBuilder as c2, type S3CatalogItem as c3, type S3CredentialListItem as c4, type SearchStorageFilesRequest as c5, type SetManyStorageFileVisibilityRequest as c6, type SetStorageFileVisibilityRequest as c7, type StorageAuditEventRecord as c8, type StorageAuditListResponse as c9, type StorageMultipartAbortRequest as cA, type StorageMultipartCompletePartInput as cB, type StorageMultipartCompleteRequest as cC, type StorageMultipartCreateRequest as cD, type StorageMultipartListPartsRequest as cE, type StorageMultipartSignPartRequest as cF, type StorageObjectBaseRequest as cG, type StorageObjectCopyRequest as cH, type StorageObjectFolderCreateRequest as cI, type StorageObjectFolderDeleteRequest as cJ, type StorageObjectFolderRenameRequest as cK, type StorageObjectPublicUrlRequest as cL, type StorageObjectRequest as cM, type StorageObjectValidateRequest as cN, type StorageObjectVersionListRequest as cO, type StorageObjectVersionMutationRequest as cP, type StoragePermissionCheckRequest as cQ, type StoragePermissionCheckResponse as cR, type StoragePermissionGrantRequest as cS, type StoragePermissionListRequest as cT, type StoragePermissionListResponse as cU, type StoragePermissionRevokeRequest as cV, type StoragePresignUploadRequest as cW, type StoragePublicAccessBlockRequest as cX, type StorageServerSideEncryptionOptions as cY, type StorageSetBucketCorsRequest as cZ, type StorageSetBucketLifecycleRequest as c_, type StorageAuditQueryRequest as ca, type StorageBackupCreateRequest as cb, type StorageBackupJob as cc, type StorageBackupListPage as cd, type StorageBackupListQuery as ce, type StorageBackupQueuedJob as cf, type StorageBackupRecord as cg, type StorageBackupRestoreRequest as ch, type StorageBackupSchedule as ci, type StorageBackupScheduleCreateRequest as cj, type StorageBatchUploadUrlResponse as ck, type StorageBatchUploadUrlResponseWithPut as cl, type StorageBucketCorsRequest as cm, type StorageBucketCorsRuleInput as cn, type StorageBucketLifecycleRequest as co, type StorageBucketLifecycleRuleInput as cp, type StorageBucketPolicyRequest as cq, type StorageFileAccessPurpose as cr, type StorageFileMutationManyResponse as cs, type StorageFileMutationResponse as ct, type StorageFilePermissionRecord as cu, type StorageFileRetentionRequest as cv, type StorageFileVersionPathRequest as cw, type StorageFolderMutationResponse as cx, type StorageListFilesResponse as cy, type StorageListObjectsRequest as cz, type AthenaChatCallOptions as d, type StorageSetPublicAccessBlockRequest as d0, type StorageSignedPostPolicyRequest as d1, type StorageUpdateObjectRequest as d2, type StorageUploadUrlResponse as d3, type StorageUploadUrlResponseWithPut as d4, type TableQueryBuilder as d5, type TreeStorageFoldersRequest as d6, type UnwrapOneOptions as d7, type UnwrapOptions as d8, type UpdateManyStorageFilesRequest as d9, type AthenaQueryTraceOptions as dA, type AthenaRelationSelectNode as dB, type AthenaResultError as dC, type AthenaSelectShape as dD, type AthenaWhere as dE, type AthenaWhereBooleanOperand as dF, type AthenaWhereOperatorInput as dG, type UpdateStorageCatalogRequest as da, type UpdateStorageFileRequest as db, assertInt as dc, coerceInt as dd, createAthenaStorageError as de, createClient as df, createStorageModule as dg, getAthenaDebugAst as dh, isOk as di, normalizeAthenaError as dj, parseBooleanFlag as dk, requireAffected as dl, requireSuccess as dm, storageSdkManifest as dn, unwrap as dp, unwrapOne as dq, unwrapRows as dr, verifyAthenaGatewayUrl as ds, withRetry as dt, type AthenaClientBuilder as du, type AthenaFindManyOptions as dv, type AthenaFindManyResult as dw, type AthenaOrderBy as dx, type AthenaQueryTraceCallsite as dy, type AthenaQueryTraceEvent as dz, type AthenaChatConnectOptions as e, type AthenaChatCreateRoomRequest as f, type AthenaChatDeleteResult as g, type AthenaChatEditMessageRequest as h, type AthenaChatListMessagesQuery as i, type AthenaChatListRoomsQuery as j, type AthenaChatMarkReadUpToRequest as k, type AthenaChatMember as l, type AthenaChatMemberRole as m, type AthenaChatMessage as n, type AthenaChatMessageCreatedResponse as o, type AthenaChatMessagePage as p, type AthenaChatModule as q, type AthenaChatPresenceUser as r, type AthenaChatReactionCount as s, type AthenaChatReactionSummary as t, type AthenaChatReadCursor as u, type AthenaChatRealtimeConnection as v, type AthenaChatRealtimeInfoResponse as w, type AthenaChatRealtimeModule as x, type AthenaChatRemoveResult as y, type AthenaChatResumeRoomCursor as z };
2866
+ export { type AthenaChatWsPresenceUpdatedEvent as $, type AthenaAuthConfig as A, type AthenaChatRealtimeModule as B, type AthenaChatRemoveResult as C, type AthenaChatResumeRoomCursor as D, type AthenaChatRoom as E, type AthenaChatRoomCreatedResponse as F, type AthenaChatRoomKind as G, type AthenaChatRoomPage as H, type AthenaChatSearchHit as I, type AthenaChatSearchMessagesRequest as J, type AthenaChatSearchPage as K, type AthenaChatSendMessageRequest as L, type AthenaChatUpdateRoomRequest as M, type AthenaChatWebSocketFactory as N, type AthenaChatWebSocketLike as O, type AthenaChatWsAuthHelloCommand as P, type AthenaChatWsClientCommand as Q, type AthenaChatWsErrorEvent as R, type AthenaChatWsHelloOkEvent as S, type AthenaChatWsMembersUpdatedEvent as T, type AthenaChatWsMessageCreatedEvent as U, type AthenaChatWsMessageDeletedEvent as V, type AthenaChatWsMessageEventBase as W, type AthenaChatWsMessageUpdatedEvent as X, type AthenaChatWsPingCommand as Y, type AthenaChatWsPongEvent as Z, type AthenaChatWsPresenceHeartbeatCommand as _, type AthenaBillingConfig as a, type AthenaStorageErrorHandler as a$, type AthenaChatWsReactionUpdatedEvent as a0, type AthenaChatWsReadUpToCommand as a1, type AthenaChatWsReadUpdatedEvent as a2, type AthenaChatWsResumeCommand as a3, type AthenaChatWsRoomArchivedEvent as a4, type AthenaChatWsRoomCreatedEvent as a5, type AthenaChatWsRoomEventBase as a6, type AthenaChatWsRoomUpdatedEvent as a7, type AthenaChatWsServerEvent as a8, type AthenaChatWsSubscribeCommand as a9, type AthenaRequestMethod as aA, type AthenaRequestOptions as aB, type AthenaRequestQueryValueMap as aC, type AthenaRequestResponse as aD, type AthenaRequestService as aE, type AthenaResult as aF, type AthenaRpcBuilderStateAst as aG, type AthenaRpcDebugAst as aH, type AthenaSelectDebugAst as aI, type AthenaSelectDebugTransport as aJ, type AthenaService as aK, type AthenaStorageAuditNamespace as aL, type AthenaStorageBackupNamespace as aM, type AthenaStorageBaseModule as aN, type AthenaStorageBinaryCallOptions as aO, type AthenaStorageBucketCorsNamespace as aP, type AthenaStorageBucketNamespace as aQ, type AthenaStorageCallOptions as aR, type AthenaStorageCatalogNamespace as aS, type AthenaStorageClientConfig as aT, type AthenaStorageConfig as aU, type AthenaStorageCredentialsNamespace as aV, type AthenaStorageDirectUploadConfig as aW, type AthenaStorageEnv as aX, AthenaStorageError as aY, AthenaStorageErrorCode as aZ, type AthenaStorageErrorDetails as a_, type AthenaChatWsSubscribedEvent as aa, type AthenaChatWsSyncRequiredEvent as ab, type AthenaChatWsTypingStartCommand as ac, type AthenaChatWsTypingStopCommand as ad, type AthenaChatWsTypingUpdatedEvent as ae, type AthenaChatWsUnsubscribeCommand as af, type AthenaClient as ag, type AthenaClientConfig as ah, AthenaConfigurationError as ai, type AthenaDbConfig as aj, type AthenaDbModule as ak, type AthenaDeleteDebugAst as al, type AthenaEnvelope as am, AthenaError as an, AthenaErrorCategory as ao, AthenaErrorCode as ap, type AthenaErrorInput as aq, AthenaErrorKind as ar, type AthenaFindManyDebugAst as as, type AthenaFromOptions as at, type AthenaInsertDebugAst as au, type AthenaOperationContext as av, type AthenaQueryDebugAst as aw, type AthenaRawQueryDebugAst as ax, type AthenaRequestContext as ay, type AthenaRequestContextProvider as az, type AthenaChatAddMembersRequest as b, type StorageBackupJob as b$, type AthenaStorageErrorInput as b0, type AthenaStorageFileConfig as b1, type AthenaStorageFileDeleteInput as b2, type AthenaStorageFileDownloadInput as b3, type AthenaStorageFileListInput as b4, type AthenaStorageFileModule as b5, type AthenaStorageFileNamespace as b6, type AthenaStorageFileUploadInput as b7, type AthenaStorageFileUploadManyRequest as b8, type AthenaStorageFileUploadRequest as b9, type CreateStorageUploadUrlRequest as bA, type CreateStorageUploadUrlsRequest as bB, type DeleteManyStorageFilesRequest as bC, type DeleteStorageFolderRequest as bD, type DeprecatedInlineStorageConnectionFields as bE, type GetStorageFileUrlQuery as bF, type IntCoercionOptions as bG, type ListStorageFilesRequest as bH, type ListStorageFoldersRequest as bI, type ManagedFileRecord as bJ, type MoveStorageFolderRequest as bK, type NormalizedAthenaError as bL, type PresignedFileUrlResponse as bM, type RequireAffectedOptions as bN, type RetryBackoffStrategy as bO, type RetryConfig as bP, type RpcOrderOptions as bQ, type RpcQueryBuilder as bR, type S3CatalogItem as bS, type S3CredentialListItem as bT, type SearchStorageFilesRequest as bU, type SetManyStorageFileVisibilityRequest as bV, type SetStorageFileVisibilityRequest as bW, type StorageAuditEventRecord as bX, type StorageAuditListResponse as bY, type StorageAuditQueryRequest as bZ, type StorageBackupCreateRequest as b_, type AthenaStorageFileUploadResult as ba, type AthenaStorageFolderNamespace as bb, type AthenaStorageManagedUpload as bc, type AthenaStorageModule as bd, type AthenaStorageMultipartNamespace as be, type AthenaStorageObjectFolderNamespace as bf, type AthenaStorageObjectNamespace as bg, type AthenaStoragePathContext as bh, type AthenaStoragePermissionNamespace as bi, type AthenaStoragePrefixPath as bj, type AthenaStoragePutBody as bk, type AthenaStoragePutOptions as bl, type AthenaStorageTemplateValue as bm, type AthenaStorageTemplateVars as bn, type AthenaStorageUploadConstraints as bo, type AthenaStorageUploadProgress as bp, type AthenaStorageUploadProgressHandler as bq, type AthenaStorageUploadSource as br, type AthenaStorageUploadedFile as bs, type AthenaTableBuilderStateAst as bt, type AthenaUpdateDebugAst as bu, type AthenaUpsertDebugAst as bv, type BackupRecoveryStrategy as bw, type ConfirmStorageUploadRequest as bx, type CopyStorageFileRequest as by, type CreateStorageCatalogRequest as bz, type AthenaChatAddReactionRequest as c, type UpdateStorageFileRequest as c$, type StorageBackupListPage as c0, type StorageBackupListQuery as c1, type StorageBackupQueuedJob as c2, type StorageBackupRecord as c3, type StorageBackupRestoreRequest as c4, type StorageBackupSchedule as c5, type StorageBackupScheduleCreateRequest as c6, type StorageBatchUploadUrlResponse as c7, type StorageBatchUploadUrlResponseWithPut as c8, type StorageBucketCorsRequest as c9, type StorageObjectRequest as cA, type StorageObjectValidateRequest as cB, type StorageObjectVersionListRequest as cC, type StorageObjectVersionMutationRequest as cD, type StoragePermissionCheckRequest as cE, type StoragePermissionCheckResponse as cF, type StoragePermissionGrantRequest as cG, type StoragePermissionListRequest as cH, type StoragePermissionListResponse as cI, type StoragePermissionRevokeRequest as cJ, type StoragePresignUploadRequest as cK, type StoragePublicAccessBlockRequest as cL, type StorageServerSideEncryptionOptions as cM, type StorageSetBucketCorsRequest as cN, type StorageSetBucketLifecycleRequest as cO, type StorageSetBucketPolicyRequest as cP, type StorageSetPublicAccessBlockRequest as cQ, type StorageSignedPostPolicyRequest as cR, type StorageUpdateObjectRequest as cS, type StorageUploadUrlResponse as cT, type StorageUploadUrlResponseWithPut as cU, type TableQueryBuilder as cV, type TreeStorageFoldersRequest as cW, type UnwrapOneOptions as cX, type UnwrapOptions as cY, type UpdateManyStorageFilesRequest as cZ, type UpdateStorageCatalogRequest as c_, type StorageBucketCorsRuleInput as ca, type StorageBucketLifecycleRequest as cb, type StorageBucketLifecycleRuleInput as cc, type StorageBucketPolicyRequest as cd, type StorageConnectionSelector as ce, type StorageFileAccessPurpose as cf, type StorageFileMutationManyResponse as cg, type StorageFileMutationResponse as ch, type StorageFilePermissionRecord as ci, type StorageFileRetentionRequest as cj, type StorageFileVersionPathRequest as ck, type StorageFolderMutationResponse as cl, type StorageListFilesResponse as cm, type StorageListObjectsRequest as cn, type StorageMultipartAbortRequest as co, type StorageMultipartCompletePartInput as cp, type StorageMultipartCompleteRequest as cq, type StorageMultipartCreateRequest as cr, type StorageMultipartListPartsRequest as cs, type StorageMultipartSignPartRequest as ct, type StorageObjectBaseRequest as cu, type StorageObjectCopyRequest as cv, type StorageObjectFolderCreateRequest as cw, type StorageObjectFolderDeleteRequest as cx, type StorageObjectFolderRenameRequest as cy, type StorageObjectPublicUrlRequest as cz, type AthenaChatAttachmentInput as d, assertInt as d0, coerceInt as d1, createAthenaStorageError as d2, createClient as d3, createStorageModule as d4, getAthenaDebugAst as d5, isOk as d6, normalizeAthenaError as d7, parseBooleanFlag as d8, requireAffected as d9, requireSuccess as da, storageSdkManifest as db, unwrap as dc, unwrapOne as dd, unwrapRows as de, verifyAthenaGatewayUrl as df, withRetry as dg, type AthenaFindManyOptions as dh, type AthenaFindManyResult as di, type AthenaOrderBy as dj, type AthenaQueryTraceCallsite as dk, type AthenaQueryTraceEvent as dl, type AthenaQueryTraceOptions as dm, type AthenaRelationSelectNode as dn, type AthenaResultError as dp, type AthenaSelectShape as dq, type AthenaWhere as dr, type AthenaWhereBooleanOperand as ds, type AthenaWhereOperatorInput as dt, DEFAULT_MULTIPART_PART_SIZE_BYTES as du, DEFAULT_MULTIPART_THRESHOLD_BYTES as dv, createStorageFileModule as dw, resolveStoragePath as dx, type AthenaChatAttachmentView as e, type AthenaChatCallOptions as f, type AthenaChatConfig as g, type AthenaChatConnectOptions as h, type AthenaChatCreateRoomRequest as i, type AthenaChatDeleteResult as j, type AthenaChatEditMessageRequest as k, type AthenaChatListMessagesQuery as l, type AthenaChatListRoomsQuery as m, type AthenaChatMarkReadUpToRequest as n, type AthenaChatMember as o, type AthenaChatMemberRole as p, type AthenaChatMessage as q, type AthenaChatMessageCreatedResponse as r, type AthenaChatMessagePage as s, type AthenaChatModule as t, type AthenaChatPresenceUser as u, type AthenaChatReactionCount as v, type AthenaChatReactionSummary as w, type AthenaChatReadCursor as x, type AthenaChatRealtimeConnection as y, type AthenaChatRealtimeInfoResponse as z };