@xata.io/client 0.0.0-alpha.veb4417f → 0.0.0-alpha.vec88a57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,9 @@
1
+ declare type AttributeDictionary = Record<string, string | number | boolean | undefined>;
2
+ declare type TraceFunction = <T>(name: string, fn: (options: {
3
+ setAttributes: (attrs: AttributeDictionary) => void;
4
+ onError: (message: string) => void;
5
+ }) => T, options?: AttributeDictionary) => Promise<T>;
6
+
1
7
  declare type FetchImpl = (url: string, init?: {
2
8
  body?: string;
3
9
  headers?: Record<string, string>;
@@ -5,7 +11,11 @@ declare type FetchImpl = (url: string, init?: {
5
11
  }) => Promise<{
6
12
  ok: boolean;
7
13
  status: number;
14
+ url: string;
8
15
  json(): Promise<any>;
16
+ headers?: {
17
+ get(name: string): string | null;
18
+ };
9
19
  }>;
10
20
  declare type WorkspaceApiUrlBuilder = (path: string, pathParams: Record<string, string>) => string;
11
21
  declare type FetcherExtraProps = {
@@ -13,6 +23,7 @@ declare type FetcherExtraProps = {
13
23
  workspacesApiUrl: string | WorkspaceApiUrlBuilder;
14
24
  fetchImpl: FetchImpl;
15
25
  apiKey: string;
26
+ trace: TraceFunction;
16
27
  };
17
28
  declare type ErrorWrapper<TError> = TError | {
18
29
  status: 'unknown';
@@ -20,7 +31,6 @@ declare type ErrorWrapper<TError> = TError | {
20
31
  };
21
32
 
22
33
  interface CacheImpl {
23
- cacheRecords: boolean;
24
34
  defaultQueryTTL: number;
25
35
  getAll(): Promise<Record<string, unknown>>;
26
36
  get: <T>(key: string) => Promise<T | null>;
@@ -30,13 +40,11 @@ interface CacheImpl {
30
40
  }
31
41
  interface SimpleCacheOptions {
32
42
  max?: number;
33
- cacheRecords?: boolean;
34
43
  defaultQueryTTL?: number;
35
44
  }
36
45
  declare class SimpleCache implements CacheImpl {
37
46
  #private;
38
47
  capacity: number;
39
- cacheRecords: boolean;
40
48
  defaultQueryTTL: number;
41
49
  constructor(options?: SimpleCacheOptions);
42
50
  getAll(): Promise<Record<string, unknown>>;
@@ -52,6 +60,7 @@ declare abstract class XataPlugin {
52
60
  declare type XataPluginOptions = {
53
61
  getFetchProps: () => Promise<FetcherExtraProps>;
54
62
  cache: CacheImpl;
63
+ trace?: TraceFunction;
55
64
  };
56
65
 
57
66
  /**
@@ -122,16 +131,20 @@ declare type WorkspaceMembers = {
122
131
  * @pattern ^ik_[a-zA-Z0-9]+
123
132
  */
124
133
  declare type InviteKey = string;
134
+ /**
135
+ * Metadata of databases
136
+ */
137
+ declare type DatabaseMetadata = {
138
+ name: string;
139
+ displayName: string;
140
+ createdAt: DateTime;
141
+ numberOfBranches: number;
142
+ ui?: {
143
+ color?: string;
144
+ };
145
+ };
125
146
  declare type ListDatabasesResponse = {
126
- databases?: {
127
- name: string;
128
- displayName: string;
129
- createdAt: DateTime;
130
- numberOfBranches: number;
131
- ui?: {
132
- color?: string;
133
- };
134
- }[];
147
+ databases?: DatabaseMetadata[];
135
148
  };
136
149
  declare type ListBranchesResponse = {
137
150
  databaseName: string;
@@ -279,6 +292,10 @@ declare type SortOrder = 'asc' | 'desc';
279
292
  * @minimum 0
280
293
  */
281
294
  declare type FuzzinessExpression = number;
295
+ /**
296
+ * If the prefix type is set to "disabled" (the default), the search only matches full words. If the prefix type is set to "phrase", the search will return results that match prefixes of the search phrase.
297
+ */
298
+ declare type PrefixExpression = 'phrase' | 'disabled';
282
299
  /**
283
300
  * @minProperties 1
284
301
  */
@@ -296,6 +313,44 @@ declare type HighlightExpression = {
296
313
  enabled?: boolean;
297
314
  encodeHTML?: boolean;
298
315
  };
316
+ /**
317
+ * Booster Expression
318
+ *
319
+ * @x-go-type xata.BoosterExpression
320
+ */
321
+ declare type BoosterExpression = {
322
+ valueBooster?: ValueBooster$1;
323
+ } | {
324
+ numericBooster?: NumericBooster$1;
325
+ } | {
326
+ dateBooster?: DateBooster$1;
327
+ };
328
+ /**
329
+ * Boost records with a particular value for a column.
330
+ */
331
+ declare type ValueBooster$1 = {
332
+ column: string;
333
+ value: string | number | boolean;
334
+ factor: number;
335
+ };
336
+ /**
337
+ * Boost records based on the value of a numeric column.
338
+ */
339
+ declare type NumericBooster$1 = {
340
+ column: string;
341
+ factor: number;
342
+ };
343
+ /**
344
+ * Boost records based on the value of a datetime column. It is configured via "origin", "scale", and "decay". The further away from the "origin",
345
+ * the more the score is decayed. The decay function uses an exponential function. For example if origin is "now", and scale is 10 days and decay is 0.5, it
346
+ * should be interpreted as: a record with a date 10 days before/after origin will score 2 times less than a record with the date at origin.
347
+ */
348
+ declare type DateBooster$1 = {
349
+ column: string;
350
+ origin?: string;
351
+ scale: string;
352
+ decay: number;
353
+ };
299
354
  declare type FilterList = FilterExpression | FilterExpression[];
300
355
  declare type FilterColumn = FilterColumnIncludes | FilterPredicate | FilterList;
301
356
  /**
@@ -352,7 +407,24 @@ declare type PageConfig = {
352
407
  size?: number;
353
408
  offset?: number;
354
409
  };
355
- declare type ColumnsFilter = string[];
410
+ declare type ColumnsProjection = string[];
411
+ /**
412
+ * Xata Table Record Metadata
413
+ */
414
+ declare type RecordMeta = {
415
+ id: RecordID;
416
+ xata: {
417
+ version: number;
418
+ table?: string;
419
+ highlight?: {
420
+ [key: string]: string[] | {
421
+ [key: string]: any;
422
+ };
423
+ };
424
+ score?: number;
425
+ warnings?: string[];
426
+ };
427
+ };
356
428
  /**
357
429
  * @pattern [a-zA-Z0-9_-~:]+
358
430
  */
@@ -374,21 +446,9 @@ declare type RecordsMetadata = {
374
446
  };
375
447
  };
376
448
  /**
377
- * Xata Table Record
449
+ * Xata Table Record Metadata
378
450
  */
379
- declare type XataRecord$1 = {
380
- id: RecordID;
381
- xata: {
382
- version: number;
383
- table?: string;
384
- highlight?: {
385
- [key: string]: string[] | {
386
- [key: string]: any;
387
- };
388
- };
389
- warnings?: string[];
390
- };
391
- } & {
451
+ declare type XataRecord$1 = RecordMeta & {
392
452
  [key: string]: any;
393
453
  };
394
454
 
@@ -406,6 +466,7 @@ type schemas_InviteID = InviteID;
406
466
  type schemas_WorkspaceInvite = WorkspaceInvite;
407
467
  type schemas_WorkspaceMembers = WorkspaceMembers;
408
468
  type schemas_InviteKey = InviteKey;
469
+ type schemas_DatabaseMetadata = DatabaseMetadata;
409
470
  type schemas_ListDatabasesResponse = ListDatabasesResponse;
410
471
  type schemas_ListBranchesResponse = ListBranchesResponse;
411
472
  type schemas_ListGitBranchesResponse = ListGitBranchesResponse;
@@ -430,8 +491,10 @@ type schemas_ColumnMigration = ColumnMigration;
430
491
  type schemas_SortExpression = SortExpression;
431
492
  type schemas_SortOrder = SortOrder;
432
493
  type schemas_FuzzinessExpression = FuzzinessExpression;
494
+ type schemas_PrefixExpression = PrefixExpression;
433
495
  type schemas_FilterExpression = FilterExpression;
434
496
  type schemas_HighlightExpression = HighlightExpression;
497
+ type schemas_BoosterExpression = BoosterExpression;
435
498
  type schemas_FilterList = FilterList;
436
499
  type schemas_FilterColumn = FilterColumn;
437
500
  type schemas_FilterColumnIncludes = FilterColumnIncludes;
@@ -441,7 +504,8 @@ type schemas_FilterPredicateRangeOp = FilterPredicateRangeOp;
441
504
  type schemas_FilterRangeValue = FilterRangeValue;
442
505
  type schemas_FilterValue = FilterValue;
443
506
  type schemas_PageConfig = PageConfig;
444
- type schemas_ColumnsFilter = ColumnsFilter;
507
+ type schemas_ColumnsProjection = ColumnsProjection;
508
+ type schemas_RecordMeta = RecordMeta;
445
509
  type schemas_RecordID = RecordID;
446
510
  type schemas_TableRename = TableRename;
447
511
  type schemas_RecordsMetadata = RecordsMetadata;
@@ -461,6 +525,7 @@ declare namespace schemas {
461
525
  schemas_WorkspaceInvite as WorkspaceInvite,
462
526
  schemas_WorkspaceMembers as WorkspaceMembers,
463
527
  schemas_InviteKey as InviteKey,
528
+ schemas_DatabaseMetadata as DatabaseMetadata,
464
529
  schemas_ListDatabasesResponse as ListDatabasesResponse,
465
530
  schemas_ListBranchesResponse as ListBranchesResponse,
466
531
  schemas_ListGitBranchesResponse as ListGitBranchesResponse,
@@ -485,8 +550,13 @@ declare namespace schemas {
485
550
  schemas_SortExpression as SortExpression,
486
551
  schemas_SortOrder as SortOrder,
487
552
  schemas_FuzzinessExpression as FuzzinessExpression,
553
+ schemas_PrefixExpression as PrefixExpression,
488
554
  schemas_FilterExpression as FilterExpression,
489
555
  schemas_HighlightExpression as HighlightExpression,
556
+ schemas_BoosterExpression as BoosterExpression,
557
+ ValueBooster$1 as ValueBooster,
558
+ NumericBooster$1 as NumericBooster,
559
+ DateBooster$1 as DateBooster,
490
560
  schemas_FilterList as FilterList,
491
561
  schemas_FilterColumn as FilterColumn,
492
562
  schemas_FilterColumnIncludes as FilterColumnIncludes,
@@ -496,7 +566,8 @@ declare namespace schemas {
496
566
  schemas_FilterRangeValue as FilterRangeValue,
497
567
  schemas_FilterValue as FilterValue,
498
568
  schemas_PageConfig as PageConfig,
499
- schemas_ColumnsFilter as ColumnsFilter,
569
+ schemas_ColumnsProjection as ColumnsProjection,
570
+ schemas_RecordMeta as RecordMeta,
500
571
  schemas_RecordID as RecordID,
501
572
  schemas_TableRename as TableRename,
502
573
  schemas_RecordsMetadata as RecordsMetadata,
@@ -531,11 +602,17 @@ declare type BulkError = {
531
602
  status?: number;
532
603
  }[];
533
604
  };
605
+ declare type BulkInsertResponse = {
606
+ recordIDs: string[];
607
+ } | {
608
+ records: XataRecord$1[];
609
+ };
534
610
  declare type BranchMigrationPlan = {
535
611
  version: number;
536
612
  migration: BranchMigration;
537
613
  };
538
- declare type RecordUpdateResponse = {
614
+ declare type RecordResponse = XataRecord$1;
615
+ declare type RecordUpdateResponse = XataRecord$1 | {
539
616
  id: string;
540
617
  xata: {
541
618
  version: number;
@@ -559,7 +636,9 @@ type responses_SimpleError = SimpleError;
559
636
  type responses_BadRequestError = BadRequestError;
560
637
  type responses_AuthError = AuthError;
561
638
  type responses_BulkError = BulkError;
639
+ type responses_BulkInsertResponse = BulkInsertResponse;
562
640
  type responses_BranchMigrationPlan = BranchMigrationPlan;
641
+ type responses_RecordResponse = RecordResponse;
563
642
  type responses_RecordUpdateResponse = RecordUpdateResponse;
564
643
  type responses_QueryResponse = QueryResponse;
565
644
  type responses_SearchResponse = SearchResponse;
@@ -570,7 +649,9 @@ declare namespace responses {
570
649
  responses_BadRequestError as BadRequestError,
571
650
  responses_AuthError as AuthError,
572
651
  responses_BulkError as BulkError,
652
+ responses_BulkInsertResponse as BulkInsertResponse,
573
653
  responses_BranchMigrationPlan as BranchMigrationPlan,
654
+ responses_RecordResponse as RecordResponse,
574
655
  responses_RecordUpdateResponse as RecordUpdateResponse,
575
656
  responses_QueryResponse as QueryResponse,
576
657
  responses_SearchResponse as SearchResponse,
@@ -876,6 +957,9 @@ declare type InviteWorkspaceMemberError = ErrorWrapper<{
876
957
  } | {
877
958
  status: 404;
878
959
  payload: SimpleError;
960
+ } | {
961
+ status: 409;
962
+ payload: SimpleError;
879
963
  }>;
880
964
  declare type InviteWorkspaceMemberRequestBody = {
881
965
  email: string;
@@ -889,6 +973,34 @@ declare type InviteWorkspaceMemberVariables = {
889
973
  * Invite some user to join the workspace with the given role
890
974
  */
891
975
  declare const inviteWorkspaceMember: (variables: InviteWorkspaceMemberVariables) => Promise<WorkspaceInvite>;
976
+ declare type UpdateWorkspaceMemberInvitePathParams = {
977
+ workspaceId: WorkspaceID;
978
+ inviteId: InviteID;
979
+ };
980
+ declare type UpdateWorkspaceMemberInviteError = ErrorWrapper<{
981
+ status: 400;
982
+ payload: BadRequestError;
983
+ } | {
984
+ status: 401;
985
+ payload: AuthError;
986
+ } | {
987
+ status: 404;
988
+ payload: SimpleError;
989
+ } | {
990
+ status: 422;
991
+ payload: SimpleError;
992
+ }>;
993
+ declare type UpdateWorkspaceMemberInviteRequestBody = {
994
+ role: Role;
995
+ };
996
+ declare type UpdateWorkspaceMemberInviteVariables = {
997
+ body: UpdateWorkspaceMemberInviteRequestBody;
998
+ pathParams: UpdateWorkspaceMemberInvitePathParams;
999
+ } & FetcherExtraProps;
1000
+ /**
1001
+ * This operation provides a way to update an existing invite. Updates are performed in-place; they do not change the invite link, the expiry time, nor do they re-notify the recipient of the invite.
1002
+ */
1003
+ declare const updateWorkspaceMemberInvite: (variables: UpdateWorkspaceMemberInviteVariables) => Promise<WorkspaceInvite>;
892
1004
  declare type CancelWorkspaceMemberInvitePathParams = {
893
1005
  workspaceId: WorkspaceID;
894
1006
  inviteId: InviteID;
@@ -1042,6 +1154,27 @@ declare type DeleteDatabaseVariables = {
1042
1154
  * Delete a database and all of its branches and tables permanently.
1043
1155
  */
1044
1156
  declare const deleteDatabase: (variables: DeleteDatabaseVariables) => Promise<undefined>;
1157
+ declare type GetDatabaseMetadataPathParams = {
1158
+ dbName: DBName;
1159
+ workspace: string;
1160
+ };
1161
+ declare type GetDatabaseMetadataError = ErrorWrapper<{
1162
+ status: 400;
1163
+ payload: BadRequestError;
1164
+ } | {
1165
+ status: 401;
1166
+ payload: AuthError;
1167
+ } | {
1168
+ status: 404;
1169
+ payload: SimpleError;
1170
+ }>;
1171
+ declare type GetDatabaseMetadataVariables = {
1172
+ pathParams: GetDatabaseMetadataPathParams;
1173
+ } & FetcherExtraProps;
1174
+ /**
1175
+ * Retrieve metadata of the given database
1176
+ */
1177
+ declare const getDatabaseMetadata: (variables: GetDatabaseMetadataVariables) => Promise<DatabaseMetadata>;
1045
1178
  declare type GetGitBranchesMappingPathParams = {
1046
1179
  dbName: DBName;
1047
1180
  workspace: string;
@@ -1234,6 +1367,10 @@ declare type CreateBranchError = ErrorWrapper<{
1234
1367
  status: 404;
1235
1368
  payload: SimpleError;
1236
1369
  }>;
1370
+ declare type CreateBranchResponse = {
1371
+ databaseName: string;
1372
+ branchName: string;
1373
+ };
1237
1374
  declare type CreateBranchRequestBody = {
1238
1375
  from?: string;
1239
1376
  metadata?: BranchMetadata;
@@ -1243,7 +1380,7 @@ declare type CreateBranchVariables = {
1243
1380
  pathParams: CreateBranchPathParams;
1244
1381
  queryParams?: CreateBranchQueryParams;
1245
1382
  } & FetcherExtraProps;
1246
- declare const createBranch: (variables: CreateBranchVariables) => Promise<undefined>;
1383
+ declare const createBranch: (variables: CreateBranchVariables) => Promise<CreateBranchResponse>;
1247
1384
  declare type DeleteBranchPathParams = {
1248
1385
  dbBranchName: DBBranchName;
1249
1386
  workspace: string;
@@ -1430,13 +1567,17 @@ declare type CreateTableError = ErrorWrapper<{
1430
1567
  status: 422;
1431
1568
  payload: SimpleError;
1432
1569
  }>;
1570
+ declare type CreateTableResponse = {
1571
+ branchName: string;
1572
+ tableName: string;
1573
+ };
1433
1574
  declare type CreateTableVariables = {
1434
1575
  pathParams: CreateTablePathParams;
1435
1576
  } & FetcherExtraProps;
1436
1577
  /**
1437
1578
  * Creates a new table with the given name. Returns 422 if a table with the same name already exists.
1438
1579
  */
1439
- declare const createTable: (variables: CreateTableVariables) => Promise<undefined>;
1580
+ declare const createTable: (variables: CreateTableVariables) => Promise<CreateTableResponse>;
1440
1581
  declare type DeleteTablePathParams = {
1441
1582
  dbBranchName: DBBranchName;
1442
1583
  tableName: TableName;
@@ -1669,6 +1810,9 @@ declare type InsertRecordPathParams = {
1669
1810
  tableName: TableName;
1670
1811
  workspace: string;
1671
1812
  };
1813
+ declare type InsertRecordQueryParams = {
1814
+ columns?: ColumnsProjection;
1815
+ };
1672
1816
  declare type InsertRecordError = ErrorWrapper<{
1673
1817
  status: 400;
1674
1818
  payload: BadRequestError;
@@ -1679,20 +1823,15 @@ declare type InsertRecordError = ErrorWrapper<{
1679
1823
  status: 404;
1680
1824
  payload: SimpleError;
1681
1825
  }>;
1682
- declare type InsertRecordResponse = {
1683
- id: string;
1684
- xata: {
1685
- version: number;
1686
- };
1687
- };
1688
1826
  declare type InsertRecordVariables = {
1689
1827
  body?: Record<string, any>;
1690
1828
  pathParams: InsertRecordPathParams;
1829
+ queryParams?: InsertRecordQueryParams;
1691
1830
  } & FetcherExtraProps;
1692
1831
  /**
1693
1832
  * Insert a new Record into the Table
1694
1833
  */
1695
- declare const insertRecord: (variables: InsertRecordVariables) => Promise<InsertRecordResponse>;
1834
+ declare const insertRecord: (variables: InsertRecordVariables) => Promise<RecordUpdateResponse>;
1696
1835
  declare type InsertRecordWithIDPathParams = {
1697
1836
  dbBranchName: DBBranchName;
1698
1837
  tableName: TableName;
@@ -1700,6 +1839,7 @@ declare type InsertRecordWithIDPathParams = {
1700
1839
  workspace: string;
1701
1840
  };
1702
1841
  declare type InsertRecordWithIDQueryParams = {
1842
+ columns?: ColumnsProjection;
1703
1843
  createOnly?: boolean;
1704
1844
  ifVersion?: number;
1705
1845
  };
@@ -1732,6 +1872,7 @@ declare type UpdateRecordWithIDPathParams = {
1732
1872
  workspace: string;
1733
1873
  };
1734
1874
  declare type UpdateRecordWithIDQueryParams = {
1875
+ columns?: ColumnsProjection;
1735
1876
  ifVersion?: number;
1736
1877
  };
1737
1878
  declare type UpdateRecordWithIDError = ErrorWrapper<{
@@ -1760,6 +1901,7 @@ declare type UpsertRecordWithIDPathParams = {
1760
1901
  workspace: string;
1761
1902
  };
1762
1903
  declare type UpsertRecordWithIDQueryParams = {
1904
+ columns?: ColumnsProjection;
1763
1905
  ifVersion?: number;
1764
1906
  };
1765
1907
  declare type UpsertRecordWithIDError = ErrorWrapper<{
@@ -1787,6 +1929,9 @@ declare type DeleteRecordPathParams = {
1787
1929
  recordId: RecordID;
1788
1930
  workspace: string;
1789
1931
  };
1932
+ declare type DeleteRecordQueryParams = {
1933
+ columns?: ColumnsProjection;
1934
+ };
1790
1935
  declare type DeleteRecordError = ErrorWrapper<{
1791
1936
  status: 400;
1792
1937
  payload: BadRequestError;
@@ -1799,14 +1944,18 @@ declare type DeleteRecordError = ErrorWrapper<{
1799
1944
  }>;
1800
1945
  declare type DeleteRecordVariables = {
1801
1946
  pathParams: DeleteRecordPathParams;
1947
+ queryParams?: DeleteRecordQueryParams;
1802
1948
  } & FetcherExtraProps;
1803
- declare const deleteRecord: (variables: DeleteRecordVariables) => Promise<undefined>;
1949
+ declare const deleteRecord: (variables: DeleteRecordVariables) => Promise<XataRecord$1>;
1804
1950
  declare type GetRecordPathParams = {
1805
1951
  dbBranchName: DBBranchName;
1806
1952
  tableName: TableName;
1807
1953
  recordId: RecordID;
1808
1954
  workspace: string;
1809
1955
  };
1956
+ declare type GetRecordQueryParams = {
1957
+ columns?: ColumnsProjection;
1958
+ };
1810
1959
  declare type GetRecordError = ErrorWrapper<{
1811
1960
  status: 400;
1812
1961
  payload: BadRequestError;
@@ -1817,12 +1966,9 @@ declare type GetRecordError = ErrorWrapper<{
1817
1966
  status: 404;
1818
1967
  payload: SimpleError;
1819
1968
  }>;
1820
- declare type GetRecordRequestBody = {
1821
- columns?: ColumnsFilter;
1822
- };
1823
1969
  declare type GetRecordVariables = {
1824
- body?: GetRecordRequestBody;
1825
1970
  pathParams: GetRecordPathParams;
1971
+ queryParams?: GetRecordQueryParams;
1826
1972
  } & FetcherExtraProps;
1827
1973
  /**
1828
1974
  * Retrieve record by ID
@@ -1833,6 +1979,9 @@ declare type BulkInsertTableRecordsPathParams = {
1833
1979
  tableName: TableName;
1834
1980
  workspace: string;
1835
1981
  };
1982
+ declare type BulkInsertTableRecordsQueryParams = {
1983
+ columns?: ColumnsProjection;
1984
+ };
1836
1985
  declare type BulkInsertTableRecordsError = ErrorWrapper<{
1837
1986
  status: 400;
1838
1987
  payload: BulkError;
@@ -1842,21 +1991,22 @@ declare type BulkInsertTableRecordsError = ErrorWrapper<{
1842
1991
  } | {
1843
1992
  status: 404;
1844
1993
  payload: SimpleError;
1994
+ } | {
1995
+ status: 422;
1996
+ payload: SimpleError;
1845
1997
  }>;
1846
- declare type BulkInsertTableRecordsResponse = {
1847
- recordIDs: string[];
1848
- };
1849
1998
  declare type BulkInsertTableRecordsRequestBody = {
1850
1999
  records: Record<string, any>[];
1851
2000
  };
1852
2001
  declare type BulkInsertTableRecordsVariables = {
1853
2002
  body: BulkInsertTableRecordsRequestBody;
1854
2003
  pathParams: BulkInsertTableRecordsPathParams;
2004
+ queryParams?: BulkInsertTableRecordsQueryParams;
1855
2005
  } & FetcherExtraProps;
1856
2006
  /**
1857
2007
  * Bulk insert records
1858
2008
  */
1859
- declare const bulkInsertTableRecords: (variables: BulkInsertTableRecordsVariables) => Promise<BulkInsertTableRecordsResponse>;
2009
+ declare const bulkInsertTableRecords: (variables: BulkInsertTableRecordsVariables) => Promise<BulkInsertResponse>;
1860
2010
  declare type QueryTablePathParams = {
1861
2011
  dbBranchName: DBBranchName;
1862
2012
  tableName: TableName;
@@ -1876,7 +2026,7 @@ declare type QueryTableRequestBody = {
1876
2026
  filter?: FilterExpression;
1877
2027
  sort?: SortExpression;
1878
2028
  page?: PageConfig;
1879
- columns?: ColumnsFilter;
2029
+ columns?: ColumnsProjection;
1880
2030
  };
1881
2031
  declare type QueryTableVariables = {
1882
2032
  body?: QueryTableRequestBody;
@@ -2622,8 +2772,10 @@ declare type SearchTableError = ErrorWrapper<{
2622
2772
  declare type SearchTableRequestBody = {
2623
2773
  query: string;
2624
2774
  fuzziness?: FuzzinessExpression;
2775
+ prefix?: PrefixExpression;
2625
2776
  filter?: FilterExpression;
2626
2777
  highlight?: HighlightExpression;
2778
+ boosters?: BoosterExpression[];
2627
2779
  };
2628
2780
  declare type SearchTableVariables = {
2629
2781
  body: SearchTableRequestBody;
@@ -2655,6 +2807,7 @@ declare type SearchBranchRequestBody = {
2655
2807
  tables?: (string | {
2656
2808
  table: string;
2657
2809
  filter?: FilterExpression;
2810
+ boosters?: BoosterExpression[];
2658
2811
  })[];
2659
2812
  query: string;
2660
2813
  fuzziness?: FuzzinessExpression;
@@ -2687,6 +2840,7 @@ declare const operationsByTag: {
2687
2840
  updateWorkspaceMemberRole: (variables: UpdateWorkspaceMemberRoleVariables) => Promise<undefined>;
2688
2841
  removeWorkspaceMember: (variables: RemoveWorkspaceMemberVariables) => Promise<undefined>;
2689
2842
  inviteWorkspaceMember: (variables: InviteWorkspaceMemberVariables) => Promise<WorkspaceInvite>;
2843
+ updateWorkspaceMemberInvite: (variables: UpdateWorkspaceMemberInviteVariables) => Promise<WorkspaceInvite>;
2690
2844
  cancelWorkspaceMemberInvite: (variables: CancelWorkspaceMemberInviteVariables) => Promise<undefined>;
2691
2845
  resendWorkspaceMemberInvite: (variables: ResendWorkspaceMemberInviteVariables) => Promise<undefined>;
2692
2846
  acceptWorkspaceMemberInvite: (variables: AcceptWorkspaceMemberInviteVariables) => Promise<undefined>;
@@ -2695,6 +2849,7 @@ declare const operationsByTag: {
2695
2849
  getDatabaseList: (variables: GetDatabaseListVariables) => Promise<ListDatabasesResponse>;
2696
2850
  createDatabase: (variables: CreateDatabaseVariables) => Promise<CreateDatabaseResponse>;
2697
2851
  deleteDatabase: (variables: DeleteDatabaseVariables) => Promise<undefined>;
2852
+ getDatabaseMetadata: (variables: GetDatabaseMetadataVariables) => Promise<DatabaseMetadata>;
2698
2853
  getGitBranchesMapping: (variables: GetGitBranchesMappingVariables) => Promise<ListGitBranchesResponse>;
2699
2854
  addGitBranchesEntry: (variables: AddGitBranchesEntryVariables) => Promise<AddGitBranchesEntryResponse>;
2700
2855
  removeGitBranchesEntry: (variables: RemoveGitBranchesEntryVariables) => Promise<undefined>;
@@ -2703,7 +2858,7 @@ declare const operationsByTag: {
2703
2858
  branch: {
2704
2859
  getBranchList: (variables: GetBranchListVariables) => Promise<ListBranchesResponse>;
2705
2860
  getBranchDetails: (variables: GetBranchDetailsVariables) => Promise<DBBranch>;
2706
- createBranch: (variables: CreateBranchVariables) => Promise<undefined>;
2861
+ createBranch: (variables: CreateBranchVariables) => Promise<CreateBranchResponse>;
2707
2862
  deleteBranch: (variables: DeleteBranchVariables) => Promise<undefined>;
2708
2863
  updateBranchMetadata: (variables: UpdateBranchMetadataVariables) => Promise<undefined>;
2709
2864
  getBranchMetadata: (variables: GetBranchMetadataVariables) => Promise<BranchMetadata>;
@@ -2713,7 +2868,7 @@ declare const operationsByTag: {
2713
2868
  getBranchStats: (variables: GetBranchStatsVariables) => Promise<GetBranchStatsResponse>;
2714
2869
  };
2715
2870
  table: {
2716
- createTable: (variables: CreateTableVariables) => Promise<undefined>;
2871
+ createTable: (variables: CreateTableVariables) => Promise<CreateTableResponse>;
2717
2872
  deleteTable: (variables: DeleteTableVariables) => Promise<undefined>;
2718
2873
  updateTable: (variables: UpdateTableVariables) => Promise<undefined>;
2719
2874
  getTableSchema: (variables: GetTableSchemaVariables) => Promise<GetTableSchemaResponse>;
@@ -2725,13 +2880,13 @@ declare const operationsByTag: {
2725
2880
  updateColumn: (variables: UpdateColumnVariables) => Promise<MigrationIdResponse>;
2726
2881
  };
2727
2882
  records: {
2728
- insertRecord: (variables: InsertRecordVariables) => Promise<InsertRecordResponse>;
2883
+ insertRecord: (variables: InsertRecordVariables) => Promise<RecordUpdateResponse>;
2729
2884
  insertRecordWithID: (variables: InsertRecordWithIDVariables) => Promise<RecordUpdateResponse>;
2730
2885
  updateRecordWithID: (variables: UpdateRecordWithIDVariables) => Promise<RecordUpdateResponse>;
2731
2886
  upsertRecordWithID: (variables: UpsertRecordWithIDVariables) => Promise<RecordUpdateResponse>;
2732
- deleteRecord: (variables: DeleteRecordVariables) => Promise<undefined>;
2887
+ deleteRecord: (variables: DeleteRecordVariables) => Promise<XataRecord$1>;
2733
2888
  getRecord: (variables: GetRecordVariables) => Promise<XataRecord$1>;
2734
- bulkInsertTableRecords: (variables: BulkInsertTableRecordsVariables) => Promise<BulkInsertTableRecordsResponse>;
2889
+ bulkInsertTableRecords: (variables: BulkInsertTableRecordsVariables) => Promise<BulkInsertResponse>;
2735
2890
  queryTable: (variables: QueryTableVariables) => Promise<QueryResponse>;
2736
2891
  searchTable: (variables: SearchTableVariables) => Promise<SearchResponse>;
2737
2892
  searchBranch: (variables: SearchBranchVariables) => Promise<SearchResponse>;
@@ -2749,10 +2904,8 @@ interface XataApiClientOptions {
2749
2904
  fetch?: FetchImpl;
2750
2905
  apiKey?: string;
2751
2906
  host?: HostProvider;
2907
+ trace?: TraceFunction;
2752
2908
  }
2753
- /**
2754
- * @deprecated Use XataApiPlugin instead
2755
- */
2756
2909
  declare class XataApiClient {
2757
2910
  #private;
2758
2911
  constructor(options?: XataApiClientOptions);
@@ -2785,6 +2938,7 @@ declare class WorkspaceApi {
2785
2938
  updateWorkspaceMemberRole(workspaceId: WorkspaceID, userId: UserID, role: Role): Promise<void>;
2786
2939
  removeWorkspaceMember(workspaceId: WorkspaceID, userId: UserID): Promise<void>;
2787
2940
  inviteWorkspaceMember(workspaceId: WorkspaceID, email: string, role: Role): Promise<WorkspaceInvite>;
2941
+ updateWorkspaceMemberInvite(workspaceId: WorkspaceID, inviteId: InviteID, role: Role): Promise<WorkspaceInvite>;
2788
2942
  cancelWorkspaceMemberInvite(workspaceId: WorkspaceID, inviteId: InviteID): Promise<void>;
2789
2943
  resendWorkspaceMemberInvite(workspaceId: WorkspaceID, inviteId: InviteID): Promise<void>;
2790
2944
  acceptWorkspaceMemberInvite(workspaceId: WorkspaceID, inviteKey: InviteKey): Promise<void>;
@@ -2795,17 +2949,18 @@ declare class DatabaseApi {
2795
2949
  getDatabaseList(workspace: WorkspaceID): Promise<ListDatabasesResponse>;
2796
2950
  createDatabase(workspace: WorkspaceID, dbName: DBName, options?: CreateDatabaseRequestBody): Promise<CreateDatabaseResponse>;
2797
2951
  deleteDatabase(workspace: WorkspaceID, dbName: DBName): Promise<void>;
2952
+ getDatabaseMetadata(workspace: WorkspaceID, dbName: DBName): Promise<DatabaseMetadata>;
2798
2953
  getGitBranchesMapping(workspace: WorkspaceID, dbName: DBName): Promise<ListGitBranchesResponse>;
2799
2954
  addGitBranchesEntry(workspace: WorkspaceID, dbName: DBName, body: AddGitBranchesEntryRequestBody): Promise<AddGitBranchesEntryResponse>;
2800
2955
  removeGitBranchesEntry(workspace: WorkspaceID, dbName: DBName, gitBranch: string): Promise<void>;
2801
- resolveBranch(workspace: WorkspaceID, dbName: DBName, gitBranch: string): Promise<ResolveBranchResponse>;
2956
+ resolveBranch(workspace: WorkspaceID, dbName: DBName, gitBranch?: string, fallbackBranch?: string): Promise<ResolveBranchResponse>;
2802
2957
  }
2803
2958
  declare class BranchApi {
2804
2959
  private extraProps;
2805
2960
  constructor(extraProps: FetcherExtraProps);
2806
2961
  getBranchList(workspace: WorkspaceID, dbName: DBName): Promise<ListBranchesResponse>;
2807
2962
  getBranchDetails(workspace: WorkspaceID, database: DBName, branch: BranchName): Promise<DBBranch>;
2808
- createBranch(workspace: WorkspaceID, database: DBName, branch: BranchName, from?: string, options?: CreateBranchRequestBody): Promise<void>;
2963
+ createBranch(workspace: WorkspaceID, database: DBName, branch: BranchName, from?: string, options?: CreateBranchRequestBody): Promise<CreateBranchResponse>;
2809
2964
  deleteBranch(workspace: WorkspaceID, database: DBName, branch: BranchName): Promise<void>;
2810
2965
  updateBranchMetadata(workspace: WorkspaceID, database: DBName, branch: BranchName, metadata?: BranchMetadata): Promise<void>;
2811
2966
  getBranchMetadata(workspace: WorkspaceID, database: DBName, branch: BranchName): Promise<BranchMetadata>;
@@ -2817,7 +2972,7 @@ declare class BranchApi {
2817
2972
  declare class TableApi {
2818
2973
  private extraProps;
2819
2974
  constructor(extraProps: FetcherExtraProps);
2820
- createTable(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName): Promise<void>;
2975
+ createTable(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName): Promise<CreateTableResponse>;
2821
2976
  deleteTable(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName): Promise<void>;
2822
2977
  updateTable(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, options: UpdateTableRequestBody): Promise<void>;
2823
2978
  getTableSchema(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName): Promise<GetTableSchemaResponse>;
@@ -2831,13 +2986,13 @@ declare class TableApi {
2831
2986
  declare class RecordsApi {
2832
2987
  private extraProps;
2833
2988
  constructor(extraProps: FetcherExtraProps);
2834
- insertRecord(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, record: Record<string, any>): Promise<InsertRecordResponse>;
2989
+ insertRecord(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, record: Record<string, any>, options?: InsertRecordQueryParams): Promise<RecordUpdateResponse>;
2835
2990
  insertRecordWithID(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID, record: Record<string, any>, options?: InsertRecordWithIDQueryParams): Promise<RecordUpdateResponse>;
2836
2991
  updateRecordWithID(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID, record: Record<string, any>, options?: UpdateRecordWithIDQueryParams): Promise<RecordUpdateResponse>;
2837
2992
  upsertRecordWithID(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID, record: Record<string, any>, options?: UpsertRecordWithIDQueryParams): Promise<RecordUpdateResponse>;
2838
- deleteRecord(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID): Promise<void>;
2839
- getRecord(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID, options?: GetRecordRequestBody): Promise<XataRecord$1>;
2840
- bulkInsertTableRecords(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, records: Record<string, any>[]): Promise<BulkInsertTableRecordsResponse>;
2993
+ deleteRecord(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID, options?: DeleteRecordQueryParams): Promise<RecordUpdateResponse>;
2994
+ getRecord(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, recordId: RecordID, options?: GetRecordQueryParams): Promise<XataRecord$1>;
2995
+ bulkInsertTableRecords(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, records: Record<string, any>[], options?: BulkInsertTableRecordsQueryParams): Promise<BulkInsertResponse>;
2841
2996
  queryTable(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, query: QueryTableRequestBody): Promise<QueryResponse>;
2842
2997
  searchTable(workspace: WorkspaceID, database: DBName, branch: BranchName, tableName: TableName, query: SearchTableRequestBody): Promise<SearchResponse>;
2843
2998
  searchBranch(workspace: WorkspaceID, database: DBName, branch: BranchName, query: SearchBranchRequestBody): Promise<SearchResponse>;
@@ -2853,39 +3008,39 @@ declare type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) ex
2853
3008
  declare type If<Condition, Then, Else> = Condition extends true ? Then : Else;
2854
3009
  declare type IsObject<T> = T extends Record<string, any> ? true : false;
2855
3010
  declare type IsArray<T> = T extends Array<any> ? true : false;
2856
- declare type NonEmptyArray<T> = T[] & {
2857
- 0: T;
2858
- };
2859
3011
  declare type RequiredBy<T, K extends keyof T> = T & {
2860
3012
  [P in K]-?: NonNullable<T[P]>;
2861
3013
  };
2862
3014
  declare type GetArrayInnerType<T extends readonly any[]> = T[number];
2863
3015
  declare type SingleOrArray<T> = T | T[];
2864
3016
  declare type OmitBy<T, K extends keyof T> = T extends any ? Omit<T, K> : never;
3017
+ declare type Without<T, U> = {
3018
+ [P in Exclude<keyof T, keyof U>]?: never;
3019
+ };
3020
+ declare type ExclusiveOr<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
2865
3021
 
2866
3022
  declare type SelectableColumn<O, RecursivePath extends any[] = []> = '*' | 'id' | DataProps<O> | NestedColumns<O, RecursivePath>;
2867
- declare type SelectedPick<O extends XataRecord, Key extends SelectableColumn<O>[]> = XataRecord & UnionToIntersection<Values<{
2868
- [K in Key[number]]: NestedValueAtColumn<O, K> & XataRecord;
3023
+ declare type SelectedPick<O extends XataRecord, Key extends SelectableColumn<O>[]> = XataRecord<O> & UnionToIntersection<Values<{
3024
+ [K in Key[number]]: NestedValueAtColumn<O, K> & XataRecord<O>;
2869
3025
  }>>;
2870
- declare type ValueAtColumn<O, P extends SelectableColumn<O>> = P extends '*' ? Values<O> : P extends 'id' ? string : P extends keyof O ? O[P] : P extends `${infer K}.${infer V}` ? K extends keyof O ? Values<RemoveNullable<O[K]> extends Record<string, any> ? V extends SelectableColumn<RemoveNullable<O[K]>> ? {
2871
- V: ValueAtColumn<RemoveNullable<O[K]>, V>;
2872
- } : never : O[K]> : never : never;
3026
+ declare type ValueAtColumn<O, P extends SelectableColumn<O>> = P extends '*' ? Values<O> : P extends 'id' ? string : P extends keyof O ? O[P] : P extends `${infer K}.${infer V}` ? K extends keyof O ? Values<NonNullable<O[K]> extends infer Item ? Item extends Record<string, any> ? V extends SelectableColumn<Item> ? {
3027
+ V: ValueAtColumn<Item, V>;
3028
+ } : never : O[K] : never> : never : never;
2873
3029
  declare type MAX_RECURSION = 5;
2874
3030
  declare type NestedColumns<O, RecursivePath extends any[]> = RecursivePath['length'] extends MAX_RECURSION ? never : If<IsObject<O>, Values<{
2875
- [K in DataProps<O>]: If<IsArray<RemoveNullable<O[K]>>, K, // If the property is an array, we stop recursion. We don't support object arrays yet
2876
- If<IsObject<RemoveNullable<O[K]>>, RemoveNullable<O[K]> extends XataRecord ? SelectableColumn<RemoveNullable<O[K]>, [...RecursivePath, O[K]]> extends string ? K | `${K}.${SelectableColumn<RemoveNullable<O[K]>, [...RecursivePath, O[K]]>}` : never : `${K}.${StringKeys<RemoveNullable<O[K]>> | '*'}`, // This allows usage of objects that are not links
2877
- K>>;
3031
+ [K in DataProps<O>]: NonNullable<O[K]> extends infer Item ? If<IsArray<Item>, K, // If the property is an array, we stop recursion. We don't support object arrays yet
3032
+ If<IsObject<Item>, Item extends XataRecord ? SelectableColumn<Item, [...RecursivePath, Item]> extends infer Column ? Column extends string ? K | `${K}.${Column}` : never : never : Item extends Date ? K : `${K}.${StringKeys<Item> | '*'}`, // This allows usage of objects that are not links
3033
+ K>> : never;
2878
3034
  }>, never>;
2879
3035
  declare type DataProps<O> = Exclude<StringKeys<O>, StringKeys<XataRecord>>;
2880
3036
  declare type NestedValueAtColumn<O, Key extends SelectableColumn<O>> = Key extends `${infer N}.${infer M}` ? N extends DataProps<O> ? {
2881
- [K in N]: M extends SelectableColumn<RemoveNullable<O[K]>> ? RemoveNullable<O[K]> extends XataRecord ? ForwardNullable<O[K], NestedValueAtColumn<RemoveNullable<O[K]>, M> & XataRecord> : ForwardNullable<O[K], NestedValueAtColumn<RemoveNullable<O[K]>, M>> : unknown;
3037
+ [K in N]: M extends SelectableColumn<NonNullable<O[K]>> ? NonNullable<O[K]> extends XataRecord ? ForwardNullable<O[K], NestedValueAtColumn<NonNullable<O[K]>, M> & XataRecord> : ForwardNullable<O[K], NestedValueAtColumn<NonNullable<O[K]>, M>> : unknown;
2882
3038
  } : unknown : Key extends DataProps<O> ? {
2883
- [K in Key]: RemoveNullable<O[K]> extends XataRecord ? ForwardNullable<O[K], SelectedPick<RemoveNullable<O[K]>, ['*']>> : O[K];
3039
+ [K in Key]: NonNullable<O[K]> extends XataRecord ? ForwardNullable<O[K], SelectedPick<NonNullable<O[K]>, ['*']>> : O[K];
2884
3040
  } : Key extends '*' ? {
2885
- [K in StringKeys<O>]: RemoveNullable<O[K]> extends XataRecord ? ForwardNullable<O[K], Link<RemoveNullable<O[K]>>> : O[K];
3041
+ [K in StringKeys<O>]: NonNullable<O[K]> extends XataRecord ? ForwardNullable<O[K], Link<NonNullable<O[K]>>> : O[K];
2886
3042
  } : unknown;
2887
- declare type RemoveNullable<T> = T extends null | undefined ? never : T;
2888
- declare type ForwardNullable<T, R> = T extends RemoveNullable<T> ? R : R | null;
3043
+ declare type ForwardNullable<T, R> = T extends NonNullable<T> ? R : R | null;
2889
3044
 
2890
3045
  /**
2891
3046
  * Represents an identifiable record from the database.
@@ -2902,27 +3057,37 @@ interface BaseData {
2902
3057
  /**
2903
3058
  * Represents a persisted record from the database.
2904
3059
  */
2905
- interface XataRecord extends Identifiable {
3060
+ interface XataRecord<OriginalRecord extends XataRecord<any> = XataRecord<any>> extends Identifiable {
2906
3061
  /**
2907
- * Metadata of this record.
3062
+ * Get metadata of this record.
2908
3063
  */
2909
- xata: {
2910
- /**
2911
- * Number that is increased every time the record is updated.
2912
- */
2913
- version: number;
2914
- };
3064
+ getMetadata(): XataRecordMetadata;
2915
3065
  /**
2916
3066
  * Retrieves a refreshed copy of the current record from the database.
3067
+ * @param columns The columns to retrieve. If not specified, all first level properties are retrieved.
3068
+ * @returns The persisted record with the selected columns.
2917
3069
  */
2918
- read(): Promise<Readonly<SelectedPick<this, ['*']>> | null>;
3070
+ read<K extends SelectableColumn<OriginalRecord>>(columns: K[]): Promise<Readonly<SelectedPick<OriginalRecord, typeof columns>> | null>;
3071
+ /**
3072
+ * Retrieves a refreshed copy of the current record from the database.
3073
+ * @returns The persisted record with all first level properties.
3074
+ */
3075
+ read(): Promise<Readonly<SelectedPick<OriginalRecord, ['*']>> | null>;
2919
3076
  /**
2920
3077
  * Performs a partial update of the current record. On success a new object is
2921
3078
  * returned and the current object is not mutated.
2922
- * @param data The columns and their values that have to be updated.
2923
- * @returns A new record containing the latest values for all the columns of the current record.
3079
+ * @param partialUpdate The columns and their values that have to be updated.
3080
+ * @param columns The columns to retrieve. If not specified, all first level properties are retrieved.
3081
+ * @returns The persisted record with the selected columns.
3082
+ */
3083
+ update<K extends SelectableColumn<OriginalRecord>>(partialUpdate: Partial<EditableData<Omit<OriginalRecord, keyof XataRecord>>>, columns: K[]): Promise<Readonly<SelectedPick<OriginalRecord, typeof columns>>>;
3084
+ /**
3085
+ * Performs a partial update of the current record. On success a new object is
3086
+ * returned and the current object is not mutated.
3087
+ * @param partialUpdate The columns and their values that have to be updated.
3088
+ * @returns The persisted record with all first level properties.
2924
3089
  */
2925
- update(partialUpdate: Partial<EditableData<Omit<this, keyof XataRecord>>>): Promise<Readonly<SelectedPick<this, ['*']>>>;
3090
+ update(partialUpdate: Partial<EditableData<Omit<OriginalRecord, keyof XataRecord>>>): Promise<Readonly<SelectedPick<OriginalRecord, ['*']>>>;
2926
3091
  /**
2927
3092
  * Performs a deletion of the current record in the database.
2928
3093
  *
@@ -2934,23 +3099,36 @@ declare type Link<Record extends XataRecord> = Omit<XataRecord, 'read' | 'update
2934
3099
  /**
2935
3100
  * Retrieves a refreshed copy of the current record from the database.
2936
3101
  */
2937
- read(): Promise<Readonly<SelectedPick<Record, ['*']>> | null>;
3102
+ read<K extends SelectableColumn<Record>>(columns?: K[]): Promise<Readonly<SelectedPick<Record, typeof columns extends SelectableColumn<Record>[] ? typeof columns : ['*']>> | null>;
2938
3103
  /**
2939
3104
  * Performs a partial update of the current record. On success a new object is
2940
3105
  * returned and the current object is not mutated.
2941
- * @param data The columns and their values that have to be updated.
3106
+ * @param partialUpdate The columns and their values that have to be updated.
2942
3107
  * @returns A new record containing the latest values for all the columns of the current record.
2943
3108
  */
2944
- update(partialUpdate: Partial<EditableData<Omit<Record, keyof XataRecord>>>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3109
+ update<K extends SelectableColumn<Record>>(partialUpdate: Partial<EditableData<Omit<Record, keyof XataRecord>>>, columns?: K[]): Promise<Readonly<SelectedPick<Record, typeof columns extends SelectableColumn<Record>[] ? typeof columns : ['*']>>>;
3110
+ /**
3111
+ * Performs a deletion of the current record in the database.
3112
+ *
3113
+ * @throws If the record was already deleted or if an error happened while performing the deletion.
3114
+ */
3115
+ delete(): Promise<void>;
3116
+ };
3117
+ declare type XataRecordMetadata = {
3118
+ /**
3119
+ * Number that is increased every time the record is updated.
3120
+ */
3121
+ version: number;
3122
+ warnings?: string[];
2945
3123
  };
2946
3124
  declare function isIdentifiable(x: any): x is Identifiable & Record<string, unknown>;
2947
3125
  declare function isXataRecord(x: any): x is XataRecord & Record<string, unknown>;
2948
3126
  declare type EditableData<O extends BaseData> = {
2949
3127
  [K in keyof O]: O[K] extends XataRecord ? {
2950
3128
  id: string;
2951
- } : NonNullable<O[K]> extends XataRecord ? {
3129
+ } | string : NonNullable<O[K]> extends XataRecord ? {
2952
3130
  id: string;
2953
- } | null | undefined : O[K];
3131
+ } | string | null | undefined : O[K];
2954
3132
  };
2955
3133
 
2956
3134
  /**
@@ -3045,7 +3223,85 @@ declare type BaseApiFilter<Record> = PropertyAccessFilter<Record> | AggregatorFi
3045
3223
  declare type NestedApiFilter<T> = {
3046
3224
  [key in keyof T]?: T[key] extends Record<string, any> ? SingleOrArray<Filter<T[key]>> : PropertyFilter<T[key]>;
3047
3225
  };
3048
- declare type Filter<T> = T extends Record<string, any> ? BaseApiFilter<T> | NestedApiFilter<T> : PropertyFilter<T>;
3226
+ declare type Filter<T> = T extends Record<string, any> ? T extends Date ? PropertyFilter<T> : BaseApiFilter<T> | NestedApiFilter<T> : PropertyFilter<T>;
3227
+
3228
+ declare type DateBooster = {
3229
+ origin?: string;
3230
+ scale: string;
3231
+ decay: number;
3232
+ };
3233
+ declare type NumericBooster = {
3234
+ factor: number;
3235
+ };
3236
+ declare type ValueBooster<T extends string | number | boolean> = {
3237
+ value: T;
3238
+ factor: number;
3239
+ };
3240
+ declare type Boosters<O extends XataRecord> = Values<{
3241
+ [K in SelectableColumn<O>]: NonNullable<ValueAtColumn<O, K>> extends Date ? {
3242
+ dateBooster: {
3243
+ column: K;
3244
+ } & DateBooster;
3245
+ } : NonNullable<ValueAtColumn<O, K>> extends number ? ExclusiveOr<{
3246
+ numericBooster?: {
3247
+ column: K;
3248
+ } & NumericBooster;
3249
+ }, {
3250
+ valueBooster?: {
3251
+ column: K;
3252
+ } & ValueBooster<number>;
3253
+ }> : NonNullable<ValueAtColumn<O, K>> extends string | boolean ? {
3254
+ valueBooster: {
3255
+ column: K;
3256
+ } & ValueBooster<NonNullable<ValueAtColumn<O, K>>>;
3257
+ } : never;
3258
+ }>;
3259
+
3260
+ declare type SearchOptions<Schemas extends Record<string, BaseData>, Tables extends StringKeys<Schemas>> = {
3261
+ fuzziness?: FuzzinessExpression;
3262
+ prefix?: PrefixExpression;
3263
+ highlight?: HighlightExpression;
3264
+ tables?: Array<Tables | Values<{
3265
+ [Model in GetArrayInnerType<NonNullable<Tables[]>>]: {
3266
+ table: Model;
3267
+ filter?: Filter<SelectedPick<Schemas[Model] & XataRecord, ['*']>>;
3268
+ boosters?: Boosters<Schemas[Model] & XataRecord>[];
3269
+ };
3270
+ }>>;
3271
+ };
3272
+ declare type SearchPluginResult<Schemas extends Record<string, BaseData>> = {
3273
+ all: <Tables extends StringKeys<Schemas>>(query: string, options?: SearchOptions<Schemas, Tables>) => Promise<Values<{
3274
+ [Model in ExtractTables<Schemas, Tables, GetArrayInnerType<NonNullable<NonNullable<typeof options>['tables']>>>]: {
3275
+ table: Model;
3276
+ record: Awaited<SearchXataRecord<SelectedPick<Schemas[Model] & XataRecord, ['*']>>>;
3277
+ };
3278
+ }>[]>;
3279
+ byTable: <Tables extends StringKeys<Schemas>>(query: string, options?: SearchOptions<Schemas, Tables>) => Promise<{
3280
+ [Model in ExtractTables<Schemas, Tables, GetArrayInnerType<NonNullable<NonNullable<typeof options>['tables']>>>]?: Awaited<SearchXataRecord<SelectedPick<Schemas[Model] & XataRecord, ['*']>>[]>;
3281
+ }>;
3282
+ };
3283
+ declare class SearchPlugin<Schemas extends Record<string, BaseData>> extends XataPlugin {
3284
+ #private;
3285
+ private db;
3286
+ constructor(db: SchemaPluginResult<Schemas>, schemaTables?: Schemas.Table[]);
3287
+ build({ getFetchProps }: XataPluginOptions): SearchPluginResult<Schemas>;
3288
+ }
3289
+ declare type SearchXataRecord<Record extends XataRecord> = Omit<Record, 'getMetadata'> & {
3290
+ getMetadata: () => XataRecordMetadata & SearchExtraProperties;
3291
+ };
3292
+ declare type SearchExtraProperties = {
3293
+ table: string;
3294
+ highlight?: {
3295
+ [key: string]: string[] | {
3296
+ [key: string]: any;
3297
+ };
3298
+ };
3299
+ score?: number;
3300
+ };
3301
+ declare type ReturnTable<Table, Tables> = Table extends Tables ? Table : never;
3302
+ declare type ExtractTables<Schemas extends Record<string, BaseData>, Tables extends StringKeys<Schemas>, TableOptions extends GetArrayInnerType<NonNullable<NonNullable<SearchOptions<Schemas, Tables>>['tables']>>> = TableOptions extends `${infer Table}` ? ReturnTable<Table, Tables> : TableOptions extends {
3303
+ table: infer Table;
3304
+ } ? ReturnTable<Table, Tables> : never;
3049
3305
 
3050
3306
  declare type SortDirection = 'asc' | 'desc';
3051
3307
  declare type SortFilterExtended<T extends XataRecord> = {
@@ -3058,7 +3314,7 @@ declare type SortFilterBase<T extends XataRecord> = {
3058
3314
  };
3059
3315
 
3060
3316
  declare type BaseOptions<T extends XataRecord> = {
3061
- columns?: NonEmptyArray<SelectableColumn<T>>;
3317
+ columns?: SelectableColumn<T>[];
3062
3318
  cache?: number;
3063
3319
  };
3064
3320
  declare type CursorQueryOptions = {
@@ -3081,7 +3337,7 @@ declare type QueryOptions<T extends XataRecord> = BaseOptions<T> & (CursorQueryO
3081
3337
  declare class Query<Record extends XataRecord, Result extends XataRecord = Record> implements Paginable<Record, Result> {
3082
3338
  #private;
3083
3339
  readonly meta: PaginationQueryMeta;
3084
- readonly records: Result[];
3340
+ readonly records: RecordArray<Result>;
3085
3341
  constructor(repository: Repository<Record> | null, table: string, data: Partial<QueryOptions<Record>>, rawParent?: Partial<QueryOptions<Record>>);
3086
3342
  getQueryOptions(): QueryOptions<Record>;
3087
3343
  key(): string;
@@ -3121,7 +3377,7 @@ declare class Query<Record extends XataRecord, Result extends XataRecord = Recor
3121
3377
  * @param value The value to filter.
3122
3378
  * @returns A new Query object.
3123
3379
  */
3124
- filter<F extends SelectableColumn<Record>>(column: F, value: Filter<ValueAtColumn<Record, F>>): Query<Record, Result>;
3380
+ filter<F extends SelectableColumn<Record>>(column: F, value: Filter<NonNullable<ValueAtColumn<Record, F>>>): Query<Record, Result>;
3125
3381
  /**
3126
3382
  * Builds a new query object adding one or more constraints. Examples:
3127
3383
  *
@@ -3142,13 +3398,13 @@ declare class Query<Record extends XataRecord, Result extends XataRecord = Recor
3142
3398
  * @param direction The direction. Either ascending or descending.
3143
3399
  * @returns A new Query object.
3144
3400
  */
3145
- sort<F extends SelectableColumn<Record>>(column: F, direction: SortDirection): Query<Record, Result>;
3401
+ sort<F extends SelectableColumn<Record>>(column: F, direction?: SortDirection): Query<Record, Result>;
3146
3402
  /**
3147
3403
  * Builds a new query specifying the set of columns to be returned in the query response.
3148
3404
  * @param columns Array of column names to be returned by the query.
3149
3405
  * @returns A new Query object.
3150
3406
  */
3151
- select<K extends SelectableColumn<Record>>(columns: NonEmptyArray<K>): Query<Record, SelectedPick<Record, NonEmptyArray<K>>>;
3407
+ select<K extends SelectableColumn<Record>>(columns: K[]): Query<Record, SelectedPick<Record, K[]>>;
3152
3408
  /**
3153
3409
  * Get paginated results
3154
3410
  *
@@ -3204,19 +3460,19 @@ declare class Query<Record extends XataRecord, Result extends XataRecord = Recor
3204
3460
  * Performs the query in the database and returns a set of results.
3205
3461
  * @returns An array of records from the database.
3206
3462
  */
3207
- getMany(): Promise<Result[]>;
3463
+ getMany(): Promise<RecordArray<Result>>;
3208
3464
  /**
3209
3465
  * Performs the query in the database and returns a set of results.
3210
3466
  * @param options Additional options to be used when performing the query.
3211
3467
  * @returns An array of records from the database.
3212
3468
  */
3213
- getMany(options: OmitBy<QueryOptions<Record>, 'columns'>): Promise<Result[]>;
3469
+ getMany<Options extends RequiredBy<QueryOptions<Record>, 'columns'>>(options: Options): Promise<RecordArray<SelectedPick<Record, typeof options['columns']>>>;
3214
3470
  /**
3215
3471
  * Performs the query in the database and returns a set of results.
3216
3472
  * @param options Additional options to be used when performing the query.
3217
3473
  * @returns An array of records from the database.
3218
3474
  */
3219
- getMany<Options extends RequiredBy<QueryOptions<Record>, 'columns'>>(options: Options): Promise<SelectedPick<Record, typeof options['columns']>[]>;
3475
+ getMany(options: OmitBy<QueryOptions<Record>, 'columns'>): Promise<RecordArray<Result>>;
3220
3476
  /**
3221
3477
  * Performs the query in the database and returns all the results.
3222
3478
  * Warning: If there are a large number of results, this method can have performance implications.
@@ -3229,18 +3485,18 @@ declare class Query<Record extends XataRecord, Result extends XataRecord = Recor
3229
3485
  * @param options Additional options to be used when performing the query.
3230
3486
  * @returns An array of records from the database.
3231
3487
  */
3232
- getAll(options: OmitBy<QueryOptions<Record>, 'columns' | 'pagination'> & {
3488
+ getAll<Options extends RequiredBy<OmitBy<QueryOptions<Record>, 'pagination'>, 'columns'> & {
3233
3489
  batchSize?: number;
3234
- }): Promise<Result[]>;
3490
+ }>(options: Options): Promise<SelectedPick<Record, typeof options['columns']>[]>;
3235
3491
  /**
3236
3492
  * Performs the query in the database and returns all the results.
3237
3493
  * Warning: If there are a large number of results, this method can have performance implications.
3238
3494
  * @param options Additional options to be used when performing the query.
3239
3495
  * @returns An array of records from the database.
3240
3496
  */
3241
- getAll<Options extends RequiredBy<OmitBy<QueryOptions<Record>, 'pagination'>, 'columns'> & {
3497
+ getAll(options: OmitBy<QueryOptions<Record>, 'columns' | 'pagination'> & {
3242
3498
  batchSize?: number;
3243
- }>(options: Options): Promise<SelectedPick<Record, typeof options['columns']>[]>;
3499
+ }): Promise<Result[]>;
3244
3500
  /**
3245
3501
  * Performs the query in the database and returns the first result.
3246
3502
  * @returns The first record that matches the query, or null if no record matched the query.
@@ -3251,13 +3507,13 @@ declare class Query<Record extends XataRecord, Result extends XataRecord = Recor
3251
3507
  * @param options Additional options to be used when performing the query.
3252
3508
  * @returns The first record that matches the query, or null if no record matched the query.
3253
3509
  */
3254
- getFirst(options: OmitBy<QueryOptions<Record>, 'columns' | 'pagination'>): Promise<Result | null>;
3510
+ getFirst<Options extends RequiredBy<OmitBy<QueryOptions<Record>, 'pagination'>, 'columns'>>(options: Options): Promise<SelectedPick<Record, typeof options['columns']> | null>;
3255
3511
  /**
3256
3512
  * Performs the query in the database and returns the first result.
3257
3513
  * @param options Additional options to be used when performing the query.
3258
3514
  * @returns The first record that matches the query, or null if no record matched the query.
3259
3515
  */
3260
- getFirst<Options extends RequiredBy<OmitBy<QueryOptions<Record>, 'pagination'>, 'columns'>>(options: Options): Promise<SelectedPick<Record, typeof options['columns']> | null>;
3516
+ getFirst(options: OmitBy<QueryOptions<Record>, 'columns' | 'pagination'>): Promise<Result | null>;
3261
3517
  /**
3262
3518
  * Builds a new query object adding a cache TTL in milliseconds.
3263
3519
  * @param ttl The cache TTL in milliseconds.
@@ -3302,7 +3558,7 @@ declare type PaginationQueryMeta = {
3302
3558
  };
3303
3559
  interface Paginable<Record extends XataRecord, Result extends XataRecord = Record> {
3304
3560
  meta: PaginationQueryMeta;
3305
- records: Result[];
3561
+ records: RecordArray<Result>;
3306
3562
  nextPage(size?: number, offset?: number): Promise<Page<Record, Result>>;
3307
3563
  previousPage(size?: number, offset?: number): Promise<Page<Record, Result>>;
3308
3564
  firstPage(size?: number, offset?: number): Promise<Page<Record, Result>>;
@@ -3322,7 +3578,7 @@ declare class Page<Record extends XataRecord, Result extends XataRecord = Record
3322
3578
  /**
3323
3579
  * The set of results for this page.
3324
3580
  */
3325
- readonly records: Result[];
3581
+ readonly records: RecordArray<Result>;
3326
3582
  constructor(query: Query<Record, Result>, meta: PaginationQueryMeta, records?: Result[]);
3327
3583
  /**
3328
3584
  * Retrieves the next page of results.
@@ -3371,29 +3627,87 @@ declare type OffsetNavigationOptions = {
3371
3627
  offset?: number;
3372
3628
  };
3373
3629
  declare const PAGINATION_MAX_SIZE = 200;
3374
- declare const PAGINATION_DEFAULT_SIZE = 200;
3630
+ declare const PAGINATION_DEFAULT_SIZE = 20;
3375
3631
  declare const PAGINATION_MAX_OFFSET = 800;
3376
3632
  declare const PAGINATION_DEFAULT_OFFSET = 0;
3377
3633
  declare function isCursorPaginationOptions(options: Record<string, unknown> | undefined | null): options is CursorNavigationOptions;
3634
+ declare class RecordArray<Result extends XataRecord> extends Array<Result> {
3635
+ #private;
3636
+ constructor(page: Paginable<any, Result>, overrideRecords?: Result[]);
3637
+ static parseConstructorParams(...args: any[]): any[];
3638
+ toArray(): Result[];
3639
+ map<U>(callbackfn: (value: Result, index: number, array: Result[]) => U, thisArg?: any): U[];
3640
+ /**
3641
+ * Retrieve next page of records
3642
+ *
3643
+ * @returns A new array of objects
3644
+ */
3645
+ nextPage(size?: number, offset?: number): Promise<RecordArray<Result>>;
3646
+ /**
3647
+ * Retrieve previous page of records
3648
+ *
3649
+ * @returns A new array of objects
3650
+ */
3651
+ previousPage(size?: number, offset?: number): Promise<RecordArray<Result>>;
3652
+ /**
3653
+ * Retrieve first page of records
3654
+ *
3655
+ * @returns A new array of objects
3656
+ */
3657
+ firstPage(size?: number, offset?: number): Promise<RecordArray<Result>>;
3658
+ /**
3659
+ * Retrieve last page of records
3660
+ *
3661
+ * @returns A new array of objects
3662
+ */
3663
+ lastPage(size?: number, offset?: number): Promise<RecordArray<Result>>;
3664
+ /**
3665
+ * @returns Boolean indicating if there is a next page
3666
+ */
3667
+ hasNextPage(): boolean;
3668
+ }
3378
3669
 
3379
3670
  /**
3380
3671
  * Common interface for performing operations on a table.
3381
3672
  */
3382
3673
  declare abstract class Repository<Data extends BaseData, Record extends XataRecord = Data & XataRecord> extends Query<Record, Readonly<SelectedPick<Record, ['*']>>> {
3383
- abstract create(object: EditableData<Data> & Partial<Identifiable>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3674
+ abstract create<K extends SelectableColumn<Record>>(object: Omit<EditableData<Data>, 'id'> & Partial<Identifiable>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3675
+ abstract create(object: Omit<EditableData<Data>, 'id'> & Partial<Identifiable>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3676
+ /**
3677
+ * Creates a single record in the table with a unique id.
3678
+ * @param id The unique id.
3679
+ * @param object Object containing the column names with their values to be stored in the table.
3680
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3681
+ * @returns The full persisted record.
3682
+ */
3683
+ abstract create<K extends SelectableColumn<Record>>(id: string, object: Omit<EditableData<Data>, 'id'>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3384
3684
  /**
3385
3685
  * Creates a single record in the table with a unique id.
3386
3686
  * @param id The unique id.
3387
3687
  * @param object Object containing the column names with their values to be stored in the table.
3388
3688
  * @returns The full persisted record.
3389
3689
  */
3390
- abstract create(id: string, object: EditableData<Data>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3690
+ abstract create(id: string, object: Omit<EditableData<Data>, 'id'>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3391
3691
  /**
3392
3692
  * Creates multiple records in the table.
3393
3693
  * @param objects Array of objects with the column names and the values to be stored in the table.
3394
- * @returns Array of the persisted records.
3694
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3695
+ * @returns Array of the persisted records in order.
3395
3696
  */
3396
- abstract create(objects: Array<EditableData<Data> & Partial<Identifiable>>): Promise<Readonly<SelectedPick<Record, ['*']>>[]>;
3697
+ abstract create<K extends SelectableColumn<Record>>(objects: Array<Omit<EditableData<Data>, 'id'> & Partial<Identifiable>>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>[]>;
3698
+ /**
3699
+ * Creates multiple records in the table.
3700
+ * @param objects Array of objects with the column names and the values to be stored in the table.
3701
+ * @returns Array of the persisted records in order.
3702
+ */
3703
+ abstract create(objects: Array<Omit<EditableData<Data>, 'id'> & Partial<Identifiable>>): Promise<Readonly<SelectedPick<Record, ['*']>>[]>;
3704
+ /**
3705
+ * Queries a single record from the table given its unique id.
3706
+ * @param id The unique id.
3707
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3708
+ * @returns The persisted record for the given id or null if the record could not be found.
3709
+ */
3710
+ abstract read<K extends SelectableColumn<Record>>(id: string, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns> | null>>;
3397
3711
  /**
3398
3712
  * Queries a single record from the table given its unique id.
3399
3713
  * @param id The unique id.
@@ -3403,15 +3717,63 @@ declare abstract class Repository<Data extends BaseData, Record extends XataReco
3403
3717
  /**
3404
3718
  * Queries multiple records from the table given their unique id.
3405
3719
  * @param ids The unique ids array.
3406
- * @returns The persisted records for the given ids (if a record could not be found it is not returned).
3720
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3721
+ * @returns The persisted records for the given ids in order (if a record could not be found null is returned).
3722
+ */
3723
+ abstract read<K extends SelectableColumn<Record>>(ids: string[], columns: K[]): Promise<Array<Readonly<SelectedPick<Record, typeof columns>> | null>>;
3724
+ /**
3725
+ * Queries multiple records from the table given their unique id.
3726
+ * @param ids The unique ids array.
3727
+ * @returns The persisted records for the given ids in order (if a record could not be found null is returned).
3728
+ */
3729
+ abstract read(ids: string[]): Promise<Array<Readonly<SelectedPick<Record, ['*']>> | null>>;
3730
+ /**
3731
+ * Queries a single record from the table by the id in the object.
3732
+ * @param object Object containing the id of the record.
3733
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3734
+ * @returns The persisted record for the given id or null if the record could not be found.
3735
+ */
3736
+ abstract read<K extends SelectableColumn<Record>>(object: Identifiable, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns> | null>>;
3737
+ /**
3738
+ * Queries a single record from the table by the id in the object.
3739
+ * @param object Object containing the id of the record.
3740
+ * @returns The persisted record for the given id or null if the record could not be found.
3741
+ */
3742
+ abstract read(object: Identifiable): Promise<Readonly<SelectedPick<Record, ['*']> | null>>;
3743
+ /**
3744
+ * Queries multiple records from the table by the ids in the objects.
3745
+ * @param objects Array of objects containing the ids of the records.
3746
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3747
+ * @returns The persisted records for the given ids in order (if a record could not be found null is returned).
3748
+ */
3749
+ abstract read<K extends SelectableColumn<Record>>(objects: Identifiable[], columns: K[]): Promise<Array<Readonly<SelectedPick<Record, typeof columns>> | null>>;
3750
+ /**
3751
+ * Queries multiple records from the table by the ids in the objects.
3752
+ * @param objects Array of objects containing the ids of the records.
3753
+ * @returns The persisted records for the given ids in order (if a record could not be found null is returned).
3407
3754
  */
3408
- abstract read(ids: string[]): Promise<Array<Readonly<SelectedPick<Record, ['*']>>>>;
3755
+ abstract read(objects: Identifiable[]): Promise<Array<Readonly<SelectedPick<Record, ['*']>> | null>>;
3756
+ /**
3757
+ * Partially update a single record.
3758
+ * @param object An object with its id and the columns to be updated.
3759
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3760
+ * @returns The full persisted record.
3761
+ */
3762
+ abstract update<K extends SelectableColumn<Record>>(object: Partial<EditableData<Data>> & Identifiable, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3409
3763
  /**
3410
3764
  * Partially update a single record.
3411
3765
  * @param object An object with its id and the columns to be updated.
3412
3766
  * @returns The full persisted record.
3413
3767
  */
3414
3768
  abstract update(object: Partial<EditableData<Data>> & Identifiable): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3769
+ /**
3770
+ * Partially update a single record given its unique id.
3771
+ * @param id The unique id.
3772
+ * @param object The column names and their values that have to be updated.
3773
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3774
+ * @returns The full persisted record.
3775
+ */
3776
+ abstract update<K extends SelectableColumn<Record>>(id: string, object: Partial<EditableData<Data>>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3415
3777
  /**
3416
3778
  * Partially update a single record given its unique id.
3417
3779
  * @param id The unique id.
@@ -3422,9 +3784,24 @@ declare abstract class Repository<Data extends BaseData, Record extends XataReco
3422
3784
  /**
3423
3785
  * Partially updates multiple records.
3424
3786
  * @param objects An array of objects with their ids and columns to be updated.
3425
- * @returns Array of the persisted records.
3787
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3788
+ * @returns Array of the persisted records in order.
3789
+ */
3790
+ abstract update<K extends SelectableColumn<Record>>(objects: Array<Partial<EditableData<Data>> & Identifiable>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>[]>;
3791
+ /**
3792
+ * Partially updates multiple records.
3793
+ * @param objects An array of objects with their ids and columns to be updated.
3794
+ * @returns Array of the persisted records in order.
3426
3795
  */
3427
3796
  abstract update(objects: Array<Partial<EditableData<Data>> & Identifiable>): Promise<Readonly<SelectedPick<Record, ['*']>>[]>;
3797
+ /**
3798
+ * Creates or updates a single record. If a record exists with the given id,
3799
+ * it will be update, otherwise a new record will be created.
3800
+ * @param object Object containing the column names with their values to be persisted in the table.
3801
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3802
+ * @returns The full persisted record.
3803
+ */
3804
+ abstract createOrUpdate<K extends SelectableColumn<Record>>(object: EditableData<Data> & Identifiable, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3428
3805
  /**
3429
3806
  * Creates or updates a single record. If a record exists with the given id,
3430
3807
  * it will be update, otherwise a new record will be created.
@@ -3437,9 +3814,26 @@ declare abstract class Repository<Data extends BaseData, Record extends XataReco
3437
3814
  * it will be update, otherwise a new record will be created.
3438
3815
  * @param id A unique id.
3439
3816
  * @param object The column names and the values to be persisted.
3817
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3440
3818
  * @returns The full persisted record.
3441
3819
  */
3442
- abstract createOrUpdate(id: string, object: EditableData<Data>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3820
+ abstract createOrUpdate<K extends SelectableColumn<Record>>(id: string, object: Omit<EditableData<Data>, 'id'>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3821
+ /**
3822
+ * Creates or updates a single record. If a record exists with the given id,
3823
+ * it will be update, otherwise a new record will be created.
3824
+ * @param id A unique id.
3825
+ * @param object The column names and the values to be persisted.
3826
+ * @returns The full persisted record.
3827
+ */
3828
+ abstract createOrUpdate(id: string, object: Omit<EditableData<Data>, 'id'>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3829
+ /**
3830
+ * Creates or updates a single record. If a record exists with the given id,
3831
+ * it will be update, otherwise a new record will be created.
3832
+ * @param objects Array of objects with the column names and the values to be stored in the table.
3833
+ * @param columns Array of columns to be returned. If not specified, first level columns will be returned.
3834
+ * @returns Array of the persisted records.
3835
+ */
3836
+ abstract createOrUpdate<K extends SelectableColumn<Record>>(objects: Array<EditableData<Data> & Identifiable>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>[]>;
3443
3837
  /**
3444
3838
  * Creates or updates a single record. If a record exists with the given id,
3445
3839
  * it will be update, otherwise a new record will be created.
@@ -3479,39 +3873,115 @@ declare abstract class Repository<Data extends BaseData, Record extends XataReco
3479
3873
  */
3480
3874
  abstract search(query: string, options?: {
3481
3875
  fuzziness?: FuzzinessExpression;
3876
+ prefix?: PrefixExpression;
3482
3877
  highlight?: HighlightExpression;
3483
3878
  filter?: Filter<Record>;
3484
- }): Promise<SelectedPick<Record, ['*']>[]>;
3879
+ boosters?: Boosters<Record>[];
3880
+ }): Promise<SearchXataRecord<SelectedPick<Record, ['*']>>[]>;
3485
3881
  abstract query<Result extends XataRecord>(query: Query<Record, Result>): Promise<Page<Record, Result>>;
3486
3882
  }
3487
3883
  declare class RestRepository<Data extends BaseData, Record extends XataRecord = Data & XataRecord> extends Query<Record, SelectedPick<Record, ['*']>> implements Repository<Data, Record> {
3488
3884
  #private;
3489
- db: SchemaPluginResult<any>;
3490
3885
  constructor(options: {
3491
3886
  table: string;
3492
3887
  db: SchemaPluginResult<any>;
3493
3888
  pluginOptions: XataPluginOptions;
3889
+ schemaTables?: Table[];
3494
3890
  });
3495
- create(object: EditableData<Data>): Promise<SelectedPick<Record, ['*']>>;
3496
- create(recordId: string, object: EditableData<Data>): Promise<SelectedPick<Record, ['*']>>;
3497
- create(objects: EditableData<Data>[]): Promise<SelectedPick<Record, ['*']>[]>;
3498
- read(recordId: string): Promise<SelectedPick<Record, ['*']> | null>;
3891
+ create(object: EditableData<Data>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3892
+ create(recordId: string, object: EditableData<Data>): Promise<Readonly<SelectedPick<Record, ['*']>>>;
3893
+ create(objects: EditableData<Data>[]): Promise<Readonly<SelectedPick<Record, ['*']>>[]>;
3894
+ create<K extends SelectableColumn<Record>>(object: EditableData<Data>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3895
+ create<K extends SelectableColumn<Record>>(recordId: string, object: EditableData<Data>, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>>;
3896
+ create<K extends SelectableColumn<Record>>(objects: EditableData<Data>[], columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>>[]>;
3897
+ read(recordId: string): Promise<Readonly<SelectedPick<Record, ['*']>> | null>;
3499
3898
  read(recordIds: string[]): Promise<Array<Readonly<SelectedPick<Record, ['*']>>>>;
3899
+ read(object: Identifiable): Promise<Readonly<SelectedPick<Record, ['*']>> | null>;
3900
+ read(objects: Identifiable[]): Promise<Array<Readonly<SelectedPick<Record, ['*']>>>>;
3901
+ read<K extends SelectableColumn<Record>>(recordId: string, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>> | null>;
3902
+ read<K extends SelectableColumn<Record>>(recordIds: string[], columns: K[]): Promise<Array<Readonly<SelectedPick<Record, typeof columns>>>>;
3903
+ read<K extends SelectableColumn<Record>>(object: Identifiable, columns: K[]): Promise<Readonly<SelectedPick<Record, typeof columns>> | null>;
3904
+ read<K extends SelectableColumn<Record>>(objects: Identifiable[], columns: K[]): Promise<Array<Readonly<SelectedPick<Record, typeof columns>>>>;
3500
3905
  update(object: Partial<EditableData<Data>> & Identifiable): Promise<SelectedPick<Record, ['*']>>;
3501
3906
  update(recordId: string, object: Partial<EditableData<Data>>): Promise<SelectedPick<Record, ['*']>>;
3502
3907
  update(objects: Array<Partial<EditableData<Data>> & Identifiable>): Promise<SelectedPick<Record, ['*']>[]>;
3908
+ update<K extends SelectableColumn<Record>>(object: Partial<EditableData<Data>> & Identifiable, columns: K[]): Promise<SelectedPick<Record, typeof columns>>;
3909
+ update<K extends SelectableColumn<Record>>(recordId: string, object: Partial<EditableData<Data>>, columns: K[]): Promise<SelectedPick<Record, typeof columns>>;
3910
+ update<K extends SelectableColumn<Record>>(objects: Array<Partial<EditableData<Data>> & Identifiable>, columns: K[]): Promise<SelectedPick<Record, typeof columns>[]>;
3503
3911
  createOrUpdate(object: EditableData<Data>): Promise<SelectedPick<Record, ['*']>>;
3504
3912
  createOrUpdate(recordId: string, object: EditableData<Data>): Promise<SelectedPick<Record, ['*']>>;
3505
3913
  createOrUpdate(objects: EditableData<Data>[]): Promise<SelectedPick<Record, ['*']>[]>;
3914
+ createOrUpdate<K extends SelectableColumn<Record>>(object: EditableData<Data>, columns: K[]): Promise<SelectedPick<Record, typeof columns>>;
3915
+ createOrUpdate<K extends SelectableColumn<Record>>(recordId: string, object: EditableData<Data>, columns: K[]): Promise<SelectedPick<Record, typeof columns>>;
3916
+ createOrUpdate<K extends SelectableColumn<Record>>(objects: EditableData<Data>[], columns: K[]): Promise<SelectedPick<Record, typeof columns>[]>;
3506
3917
  delete(a: string | Identifiable | Array<string | Identifiable>): Promise<void>;
3507
3918
  search(query: string, options?: {
3508
3919
  fuzziness?: FuzzinessExpression;
3920
+ prefix?: PrefixExpression;
3509
3921
  highlight?: HighlightExpression;
3510
3922
  filter?: Filter<Record>;
3511
- }): Promise<SelectedPick<Record, ['*']>[]>;
3923
+ boosters?: Boosters<Record>[];
3924
+ }): Promise<any>;
3512
3925
  query<Result extends XataRecord>(query: Query<Record, Result>): Promise<Page<Record, Result>>;
3513
3926
  }
3514
3927
 
3928
+ declare type BaseSchema = {
3929
+ name: string;
3930
+ columns: readonly ({
3931
+ name: string;
3932
+ type: Column['type'];
3933
+ } | {
3934
+ name: string;
3935
+ type: 'link';
3936
+ link: {
3937
+ table: string;
3938
+ };
3939
+ } | {
3940
+ name: string;
3941
+ type: 'object';
3942
+ columns: {
3943
+ name: string;
3944
+ type: string;
3945
+ }[];
3946
+ })[];
3947
+ };
3948
+ declare type SchemaInference<T extends readonly BaseSchema[]> = T extends never[] ? Record<string, Record<string, any>> : T extends readonly unknown[] ? T[number] extends {
3949
+ name: string;
3950
+ columns: readonly unknown[];
3951
+ } ? {
3952
+ [K in T[number]['name']]: TableType<T[number], K>;
3953
+ } : never : never;
3954
+ declare type TableType<Tables, TableName> = Tables & {
3955
+ name: TableName;
3956
+ } extends infer Table ? Table extends {
3957
+ name: string;
3958
+ columns: infer Columns;
3959
+ } ? Columns extends readonly unknown[] ? Columns[number] extends {
3960
+ name: string;
3961
+ type: string;
3962
+ } ? Identifiable & {
3963
+ [K in Columns[number]['name']]?: PropertyType<Tables, Columns[number], K>;
3964
+ } : never : never : never : never;
3965
+ declare type PropertyType<Tables, Properties, PropertyName> = Properties & {
3966
+ name: PropertyName;
3967
+ } extends infer Property ? Property extends {
3968
+ name: string;
3969
+ type: infer Type;
3970
+ link?: {
3971
+ table: infer LinkedTable;
3972
+ };
3973
+ columns?: infer ObjectColumns;
3974
+ } ? (Type extends 'string' | 'text' | 'email' ? string : Type extends 'int' | 'float' ? number : Type extends 'bool' ? boolean : Type extends 'datetime' ? Date : Type extends 'multiple' ? string[] : Type extends 'object' ? ObjectColumns extends readonly unknown[] ? ObjectColumns[number] extends {
3975
+ name: string;
3976
+ type: string;
3977
+ } ? {
3978
+ [K in ObjectColumns[number]['name']]?: PropertyType<Tables, ObjectColumns[number], K>;
3979
+ } : never : never : Type extends 'link' ? TableType<Tables, LinkedTable> & XataRecord : never) | null : never : never;
3980
+
3981
+ /**
3982
+ * Operator to restrict results to only values that are greater than the given value.
3983
+ */
3984
+ declare const greaterThan: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
3515
3985
  /**
3516
3986
  * Operator to restrict results to only values that are greater than the given value.
3517
3987
  */
@@ -3519,15 +3989,35 @@ declare const gt: <T extends ComparableType>(value: T) => ComparableTypeFilter<T
3519
3989
  /**
3520
3990
  * Operator to restrict results to only values that are greater than or equal to the given value.
3521
3991
  */
3522
- declare const ge: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
3992
+ declare const greaterThanEquals: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
3993
+ /**
3994
+ * Operator to restrict results to only values that are greater than or equal to the given value.
3995
+ */
3996
+ declare const greaterEquals: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
3523
3997
  /**
3524
3998
  * Operator to restrict results to only values that are greater than or equal to the given value.
3525
3999
  */
3526
4000
  declare const gte: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
4001
+ /**
4002
+ * Operator to restrict results to only values that are greater than or equal to the given value.
4003
+ */
4004
+ declare const ge: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
4005
+ /**
4006
+ * Operator to restrict results to only values that are lower than the given value.
4007
+ */
4008
+ declare const lessThan: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
3527
4009
  /**
3528
4010
  * Operator to restrict results to only values that are lower than the given value.
3529
4011
  */
3530
4012
  declare const lt: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
4013
+ /**
4014
+ * Operator to restrict results to only values that are lower than or equal to the given value.
4015
+ */
4016
+ declare const lessThanEquals: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
4017
+ /**
4018
+ * Operator to restrict results to only values that are lower than or equal to the given value.
4019
+ */
4020
+ declare const lessEquals: <T extends ComparableType>(value: T) => ComparableTypeFilter<T>;
3531
4021
  /**
3532
4022
  * Operator to restrict results to only values that are lower than or equal to the given value.
3533
4023
  */
@@ -3560,6 +4050,10 @@ declare const pattern: (value: string) => StringTypeFilter;
3560
4050
  * Operator to restrict results to only values that are equal to the given value.
3561
4051
  */
3562
4052
  declare const is: <T>(value: T) => PropertyFilter<T>;
4053
+ /**
4054
+ * Operator to restrict results to only values that are equal to the given value.
4055
+ */
4056
+ declare const equals: <T>(value: T) => PropertyFilter<T>;
3563
4057
  /**
3564
4058
  * Operator to restrict results to only values that are not equal to the given value.
3565
4059
  */
@@ -3595,53 +4089,10 @@ declare type SchemaPluginResult<Schemas extends Record<string, BaseData>> = {
3595
4089
  };
3596
4090
  declare class SchemaPlugin<Schemas extends Record<string, BaseData>> extends XataPlugin {
3597
4091
  #private;
3598
- private tableNames?;
3599
- constructor(tableNames?: string[] | undefined);
4092
+ constructor(schemaTables?: Schemas.Table[]);
3600
4093
  build(pluginOptions: XataPluginOptions): SchemaPluginResult<Schemas>;
3601
4094
  }
3602
4095
 
3603
- declare type SearchOptions<Schemas extends Record<string, BaseData>, Tables extends StringKeys<Schemas>> = {
3604
- fuzziness?: FuzzinessExpression;
3605
- highlight?: HighlightExpression;
3606
- tables?: Array<Tables | Values<{
3607
- [Model in GetArrayInnerType<NonNullable<Tables[]>>]: {
3608
- table: Model;
3609
- filter?: Filter<SelectedPick<Schemas[Model] & SearchXataRecord, ['*']>>;
3610
- };
3611
- }>>;
3612
- };
3613
- declare type SearchPluginResult<Schemas extends Record<string, BaseData>> = {
3614
- all: <Tables extends StringKeys<Schemas>>(query: string, options?: SearchOptions<Schemas, Tables>) => Promise<Values<{
3615
- [Model in ExtractTables<Schemas, Tables, GetArrayInnerType<NonNullable<NonNullable<typeof options>['tables']>>>]: {
3616
- table: Model;
3617
- record: Awaited<SelectedPick<Schemas[Model] & SearchXataRecord, ['*']>>;
3618
- };
3619
- }>[]>;
3620
- byTable: <Tables extends StringKeys<Schemas>>(query: string, options?: SearchOptions<Schemas, Tables>) => Promise<{
3621
- [Model in ExtractTables<Schemas, Tables, GetArrayInnerType<NonNullable<NonNullable<typeof options>['tables']>>>]?: Awaited<SelectedPick<Schemas[Model] & SearchXataRecord, ['*']>[]>;
3622
- }>;
3623
- };
3624
- declare class SearchPlugin<Schemas extends Record<string, BaseData>> extends XataPlugin {
3625
- #private;
3626
- private db;
3627
- constructor(db: SchemaPluginResult<Schemas>);
3628
- build({ getFetchProps }: XataPluginOptions): SearchPluginResult<Schemas>;
3629
- }
3630
- declare type SearchXataRecord = XataRecord & {
3631
- xata: {
3632
- table?: string;
3633
- highlight?: {
3634
- [key: string]: string[] | {
3635
- [key: string]: any;
3636
- };
3637
- };
3638
- };
3639
- };
3640
- declare type ReturnTable<Table, Tables> = Table extends Tables ? Table : never;
3641
- declare type ExtractTables<Schemas extends Record<string, BaseData>, Tables extends StringKeys<Schemas>, TableOptions extends GetArrayInnerType<NonNullable<NonNullable<SearchOptions<Schemas, Tables>>['tables']>>> = TableOptions extends `${infer Table}` ? ReturnTable<Table, Tables> : TableOptions extends {
3642
- table: infer Table;
3643
- } ? ReturnTable<Table, Tables> : never;
3644
-
3645
4096
  declare type BranchStrategyValue = string | undefined | null;
3646
4097
  declare type BranchStrategyBuilder = () => BranchStrategyValue | Promise<BranchStrategyValue>;
3647
4098
  declare type BranchStrategy = BranchStrategyValue | BranchStrategyBuilder;
@@ -3653,20 +4104,35 @@ declare type BaseClientOptions = {
3653
4104
  databaseURL?: string;
3654
4105
  branch?: BranchStrategyOption;
3655
4106
  cache?: CacheImpl;
4107
+ trace?: TraceFunction;
3656
4108
  };
3657
4109
  declare const buildClient: <Plugins extends Record<string, XataPlugin> = {}>(plugins?: Plugins | undefined) => ClientConstructor<Plugins>;
3658
4110
  interface ClientConstructor<Plugins extends Record<string, XataPlugin>> {
3659
- new <Schemas extends Record<string, BaseData> = {}>(options?: Partial<BaseClientOptions>, tables?: string[]): Omit<{
3660
- db: Awaited<ReturnType<SchemaPlugin<Schemas>['build']>>;
3661
- search: Awaited<ReturnType<SearchPlugin<Schemas>['build']>>;
4111
+ new <T extends readonly BaseSchema[]>(options?: Partial<BaseClientOptions>, schemaTables?: T): Omit<{
4112
+ db: Awaited<ReturnType<SchemaPlugin<SchemaInference<NonNullable<typeof schemaTables>>>['build']>>;
4113
+ search: Awaited<ReturnType<SearchPlugin<SchemaInference<NonNullable<typeof schemaTables>>>['build']>>;
3662
4114
  }, keyof Plugins> & {
3663
4115
  [Key in StringKeys<NonNullable<Plugins>>]: Awaited<ReturnType<NonNullable<Plugins>[Key]['build']>>;
4116
+ } & {
4117
+ getConfig(): Promise<{
4118
+ databaseURL: string;
4119
+ branch: string;
4120
+ }>;
3664
4121
  };
3665
4122
  }
3666
4123
  declare const BaseClient_base: ClientConstructor<{}>;
3667
- declare class BaseClient extends BaseClient_base<Record<string, any>> {
4124
+ declare class BaseClient extends BaseClient_base<[]> {
3668
4125
  }
3669
4126
 
4127
+ declare class Serializer {
4128
+ classes: Record<string, any>;
4129
+ add(clazz: any): void;
4130
+ toJSON<T>(data: T): string;
4131
+ fromJSON<T>(json: string): T;
4132
+ }
4133
+ declare const serialize: <T>(data: T) => string;
4134
+ declare const deserialize: <T>(json: string) => T;
4135
+
3670
4136
  declare type BranchResolutionOptions = {
3671
4137
  databaseURL?: string;
3672
4138
  apiKey?: string;
@@ -3678,9 +4144,89 @@ declare function getDatabaseURL(): string | undefined;
3678
4144
 
3679
4145
  declare function getAPIKey(): string | undefined;
3680
4146
 
4147
+ interface Body {
4148
+ arrayBuffer(): Promise<ArrayBuffer>;
4149
+ blob(): Promise<Blob>;
4150
+ formData(): Promise<FormData>;
4151
+ json(): Promise<any>;
4152
+ text(): Promise<string>;
4153
+ }
4154
+ interface Blob {
4155
+ readonly size: number;
4156
+ readonly type: string;
4157
+ arrayBuffer(): Promise<ArrayBuffer>;
4158
+ slice(start?: number, end?: number, contentType?: string): Blob;
4159
+ text(): Promise<string>;
4160
+ }
4161
+ /** Provides information about files and allows JavaScript in a web page to access their content. */
4162
+ interface File extends Blob {
4163
+ readonly lastModified: number;
4164
+ readonly name: string;
4165
+ readonly webkitRelativePath: string;
4166
+ }
4167
+ declare type FormDataEntryValue = File | string;
4168
+ /** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". */
4169
+ interface FormData {
4170
+ append(name: string, value: string | Blob, fileName?: string): void;
4171
+ delete(name: string): void;
4172
+ get(name: string): FormDataEntryValue | null;
4173
+ getAll(name: string): FormDataEntryValue[];
4174
+ has(name: string): boolean;
4175
+ set(name: string, value: string | Blob, fileName?: string): void;
4176
+ forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;
4177
+ }
4178
+ /** This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs. You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence. */
4179
+ interface Headers {
4180
+ append(name: string, value: string): void;
4181
+ delete(name: string): void;
4182
+ get(name: string): string | null;
4183
+ has(name: string): boolean;
4184
+ set(name: string, value: string): void;
4185
+ forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;
4186
+ }
4187
+ interface Request extends Body {
4188
+ /** Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser's cache when fetching. */
4189
+ readonly cache: 'default' | 'force-cache' | 'no-cache' | 'no-store' | 'only-if-cached' | 'reload';
4190
+ /** Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. */
4191
+ readonly credentials: 'include' | 'omit' | 'same-origin';
4192
+ /** Returns the kind of resource requested by request, e.g., "document" or "script". */
4193
+ readonly destination: '' | 'audio' | 'audioworklet' | 'document' | 'embed' | 'font' | 'frame' | 'iframe' | 'image' | 'manifest' | 'object' | 'paintworklet' | 'report' | 'script' | 'sharedworker' | 'style' | 'track' | 'video' | 'worker' | 'xslt';
4194
+ /** Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header. */
4195
+ readonly headers: Headers;
4196
+ /** Returns request's subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI] */
4197
+ readonly integrity: string;
4198
+ /** Returns a boolean indicating whether or not request can outlive the global in which it was created. */
4199
+ readonly keepalive: boolean;
4200
+ /** Returns request's HTTP method, which is "GET" by default. */
4201
+ readonly method: string;
4202
+ /** Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs. */
4203
+ readonly mode: 'cors' | 'navigate' | 'no-cors' | 'same-origin';
4204
+ /** Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default. */
4205
+ readonly redirect: 'error' | 'follow' | 'manual';
4206
+ /** Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and "about:client" when defaulting to the global's default. This is used during fetching to determine the value of the `Referer` header of the request being made. */
4207
+ readonly referrer: string;
4208
+ /** Returns the referrer policy associated with request. This is used during fetching to compute the value of the request's referrer. */
4209
+ readonly referrerPolicy: '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
4210
+ /** Returns the URL of request as a string. */
4211
+ readonly url: string;
4212
+ clone(): Request;
4213
+ }
4214
+
4215
+ declare type XataWorkerContext<XataClient> = {
4216
+ xata: XataClient;
4217
+ request: Request;
4218
+ env: Record<string, string | undefined>;
4219
+ };
4220
+ declare type RemoveFirst<T> = T extends [any, ...infer U] ? U : never;
4221
+ declare type WorkerRunnerConfig = {
4222
+ workspace: string;
4223
+ worker: string;
4224
+ };
4225
+ declare function buildWorkerRunner<XataClient>(config: WorkerRunnerConfig): <WorkerFunction extends (ctx: XataWorkerContext<XataClient>, ...args: any[]) => any>(name: string, _worker: WorkerFunction) => (...args: RemoveFirst<Parameters<WorkerFunction>>) => Promise<Awaited<ReturnType<WorkerFunction>>>;
4226
+
3681
4227
  declare class XataError extends Error {
3682
4228
  readonly status: number;
3683
4229
  constructor(message: string, status: number);
3684
4230
  }
3685
4231
 
3686
- export { AcceptWorkspaceMemberInviteError, AcceptWorkspaceMemberInvitePathParams, AcceptWorkspaceMemberInviteVariables, AddGitBranchesEntryError, AddGitBranchesEntryPathParams, AddGitBranchesEntryRequestBody, AddGitBranchesEntryResponse, AddGitBranchesEntryVariables, AddTableColumnError, AddTableColumnPathParams, AddTableColumnVariables, BaseClient, BaseClientOptions, BaseData, BulkInsertTableRecordsError, BulkInsertTableRecordsPathParams, BulkInsertTableRecordsRequestBody, BulkInsertTableRecordsResponse, BulkInsertTableRecordsVariables, CacheImpl, CancelWorkspaceMemberInviteError, CancelWorkspaceMemberInvitePathParams, CancelWorkspaceMemberInviteVariables, ClientConstructor, CreateBranchError, CreateBranchPathParams, CreateBranchQueryParams, CreateBranchRequestBody, CreateBranchVariables, CreateDatabaseError, CreateDatabasePathParams, CreateDatabaseRequestBody, CreateDatabaseResponse, CreateDatabaseVariables, CreateTableError, CreateTablePathParams, CreateTableVariables, CreateUserAPIKeyError, CreateUserAPIKeyPathParams, CreateUserAPIKeyResponse, CreateUserAPIKeyVariables, CreateWorkspaceError, CreateWorkspaceVariables, CursorNavigationOptions, DeleteBranchError, DeleteBranchPathParams, DeleteBranchVariables, DeleteColumnError, DeleteColumnPathParams, DeleteColumnVariables, DeleteDatabaseError, DeleteDatabasePathParams, DeleteDatabaseVariables, DeleteRecordError, DeleteRecordPathParams, DeleteRecordVariables, DeleteTableError, DeleteTablePathParams, DeleteTableVariables, DeleteUserAPIKeyError, DeleteUserAPIKeyPathParams, DeleteUserAPIKeyVariables, DeleteUserError, DeleteUserVariables, DeleteWorkspaceError, DeleteWorkspacePathParams, DeleteWorkspaceVariables, EditableData, ExecuteBranchMigrationPlanError, ExecuteBranchMigrationPlanPathParams, ExecuteBranchMigrationPlanRequestBody, ExecuteBranchMigrationPlanVariables, FetchImpl, FetcherExtraProps, GetBranchDetailsError, GetBranchDetailsPathParams, GetBranchDetailsVariables, GetBranchListError, GetBranchListPathParams, GetBranchListVariables, GetBranchMetadataError, GetBranchMetadataPathParams, GetBranchMetadataVariables, GetBranchMigrationHistoryError, GetBranchMigrationHistoryPathParams, GetBranchMigrationHistoryRequestBody, GetBranchMigrationHistoryResponse, GetBranchMigrationHistoryVariables, GetBranchMigrationPlanError, GetBranchMigrationPlanPathParams, GetBranchMigrationPlanVariables, GetBranchStatsError, GetBranchStatsPathParams, GetBranchStatsResponse, GetBranchStatsVariables, GetColumnError, GetColumnPathParams, GetColumnVariables, GetDatabaseListError, GetDatabaseListPathParams, GetDatabaseListVariables, GetGitBranchesMappingError, GetGitBranchesMappingPathParams, GetGitBranchesMappingVariables, GetRecordError, GetRecordPathParams, GetRecordRequestBody, GetRecordVariables, GetTableColumnsError, GetTableColumnsPathParams, GetTableColumnsResponse, GetTableColumnsVariables, GetTableSchemaError, GetTableSchemaPathParams, GetTableSchemaResponse, GetTableSchemaVariables, GetUserAPIKeysError, GetUserAPIKeysResponse, GetUserAPIKeysVariables, GetUserError, GetUserVariables, GetWorkspaceError, GetWorkspaceMembersListError, GetWorkspaceMembersListPathParams, GetWorkspaceMembersListVariables, GetWorkspacePathParams, GetWorkspaceVariables, GetWorkspacesListError, GetWorkspacesListResponse, GetWorkspacesListVariables, Identifiable, InsertRecordError, InsertRecordPathParams, InsertRecordResponse, InsertRecordVariables, InsertRecordWithIDError, InsertRecordWithIDPathParams, InsertRecordWithIDQueryParams, InsertRecordWithIDVariables, InviteWorkspaceMemberError, InviteWorkspaceMemberPathParams, InviteWorkspaceMemberRequestBody, InviteWorkspaceMemberVariables, OffsetNavigationOptions, operationsByTag as Operations, PAGINATION_DEFAULT_OFFSET, PAGINATION_DEFAULT_SIZE, PAGINATION_MAX_OFFSET, PAGINATION_MAX_SIZE, Page, Paginable, PaginationQueryMeta, Query, QueryTableError, QueryTablePathParams, QueryTableRequestBody, QueryTableVariables, RemoveGitBranchesEntryError, RemoveGitBranchesEntryPathParams, RemoveGitBranchesEntryQueryParams, RemoveGitBranchesEntryVariables, RemoveWorkspaceMemberError, RemoveWorkspaceMemberPathParams, RemoveWorkspaceMemberVariables, Repository, ResendWorkspaceMemberInviteError, ResendWorkspaceMemberInvitePathParams, ResendWorkspaceMemberInviteVariables, ResolveBranchError, ResolveBranchPathParams, ResolveBranchQueryParams, ResolveBranchResponse, ResolveBranchVariables, responses as Responses, RestRepository, SchemaDefinition, SchemaPlugin, SchemaPluginResult, schemas as Schemas, SearchBranchError, SearchBranchPathParams, SearchBranchRequestBody, SearchBranchVariables, SearchOptions, SearchPlugin, SearchPluginResult, SearchTableError, SearchTablePathParams, SearchTableRequestBody, SearchTableVariables, SelectableColumn, SelectedPick, SetTableSchemaError, SetTableSchemaPathParams, SetTableSchemaRequestBody, SetTableSchemaVariables, SimpleCache, SimpleCacheOptions, UpdateBranchMetadataError, UpdateBranchMetadataPathParams, UpdateBranchMetadataVariables, UpdateColumnError, UpdateColumnPathParams, UpdateColumnRequestBody, UpdateColumnVariables, UpdateRecordWithIDError, UpdateRecordWithIDPathParams, UpdateRecordWithIDQueryParams, UpdateRecordWithIDVariables, UpdateTableError, UpdateTablePathParams, UpdateTableRequestBody, UpdateTableVariables, UpdateUserError, UpdateUserVariables, UpdateWorkspaceError, UpdateWorkspaceMemberRoleError, UpdateWorkspaceMemberRolePathParams, UpdateWorkspaceMemberRoleRequestBody, UpdateWorkspaceMemberRoleVariables, UpdateWorkspacePathParams, UpdateWorkspaceVariables, UpsertRecordWithIDError, UpsertRecordWithIDPathParams, UpsertRecordWithIDQueryParams, UpsertRecordWithIDVariables, ValueAtColumn, XataApiClient, XataApiClientOptions, XataApiPlugin, XataError, XataPlugin, XataPluginOptions, XataRecord, acceptWorkspaceMemberInvite, addGitBranchesEntry, addTableColumn, buildClient, bulkInsertTableRecords, cancelWorkspaceMemberInvite, contains, createBranch, createDatabase, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, endsWith, executeBranchMigrationPlan, exists, ge, getAPIKey, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchStats, getColumn, getCurrentBranchDetails, getCurrentBranchName, getDatabaseList, getDatabaseURL, getGitBranchesMapping, getRecord, getTableColumns, getTableSchema, getUser, getUserAPIKeys, getWorkspace, getWorkspaceMembersList, getWorkspacesList, gt, gte, includes, includesAll, includesAny, includesNone, insertRecord, insertRecordWithID, inviteWorkspaceMember, is, isCursorPaginationOptions, isIdentifiable, isNot, isXataRecord, le, lt, lte, notExists, operationsByTag, pattern, queryTable, removeGitBranchesEntry, removeWorkspaceMember, resendWorkspaceMemberInvite, resolveBranch, searchBranch, searchTable, setTableSchema, startsWith, updateBranchMetadata, updateColumn, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberRole, upsertRecordWithID };
4232
+ export { AcceptWorkspaceMemberInviteError, AcceptWorkspaceMemberInvitePathParams, AcceptWorkspaceMemberInviteVariables, AddGitBranchesEntryError, AddGitBranchesEntryPathParams, AddGitBranchesEntryRequestBody, AddGitBranchesEntryResponse, AddGitBranchesEntryVariables, AddTableColumnError, AddTableColumnPathParams, AddTableColumnVariables, BaseClient, BaseClientOptions, BaseData, BaseSchema, BulkInsertTableRecordsError, BulkInsertTableRecordsPathParams, BulkInsertTableRecordsQueryParams, BulkInsertTableRecordsRequestBody, BulkInsertTableRecordsVariables, CacheImpl, CancelWorkspaceMemberInviteError, CancelWorkspaceMemberInvitePathParams, CancelWorkspaceMemberInviteVariables, ClientConstructor, CreateBranchError, CreateBranchPathParams, CreateBranchQueryParams, CreateBranchRequestBody, CreateBranchResponse, CreateBranchVariables, CreateDatabaseError, CreateDatabasePathParams, CreateDatabaseRequestBody, CreateDatabaseResponse, CreateDatabaseVariables, CreateTableError, CreateTablePathParams, CreateTableResponse, CreateTableVariables, CreateUserAPIKeyError, CreateUserAPIKeyPathParams, CreateUserAPIKeyResponse, CreateUserAPIKeyVariables, CreateWorkspaceError, CreateWorkspaceVariables, CursorNavigationOptions, DeleteBranchError, DeleteBranchPathParams, DeleteBranchVariables, DeleteColumnError, DeleteColumnPathParams, DeleteColumnVariables, DeleteDatabaseError, DeleteDatabasePathParams, DeleteDatabaseVariables, DeleteRecordError, DeleteRecordPathParams, DeleteRecordQueryParams, DeleteRecordVariables, DeleteTableError, DeleteTablePathParams, DeleteTableVariables, DeleteUserAPIKeyError, DeleteUserAPIKeyPathParams, DeleteUserAPIKeyVariables, DeleteUserError, DeleteUserVariables, DeleteWorkspaceError, DeleteWorkspacePathParams, DeleteWorkspaceVariables, EditableData, ExecuteBranchMigrationPlanError, ExecuteBranchMigrationPlanPathParams, ExecuteBranchMigrationPlanRequestBody, ExecuteBranchMigrationPlanVariables, FetchImpl, FetcherExtraProps, GetBranchDetailsError, GetBranchDetailsPathParams, GetBranchDetailsVariables, GetBranchListError, GetBranchListPathParams, GetBranchListVariables, GetBranchMetadataError, GetBranchMetadataPathParams, GetBranchMetadataVariables, GetBranchMigrationHistoryError, GetBranchMigrationHistoryPathParams, GetBranchMigrationHistoryRequestBody, GetBranchMigrationHistoryResponse, GetBranchMigrationHistoryVariables, GetBranchMigrationPlanError, GetBranchMigrationPlanPathParams, GetBranchMigrationPlanVariables, GetBranchStatsError, GetBranchStatsPathParams, GetBranchStatsResponse, GetBranchStatsVariables, GetColumnError, GetColumnPathParams, GetColumnVariables, GetDatabaseListError, GetDatabaseListPathParams, GetDatabaseListVariables, GetDatabaseMetadataError, GetDatabaseMetadataPathParams, GetDatabaseMetadataVariables, GetGitBranchesMappingError, GetGitBranchesMappingPathParams, GetGitBranchesMappingVariables, GetRecordError, GetRecordPathParams, GetRecordQueryParams, GetRecordVariables, GetTableColumnsError, GetTableColumnsPathParams, GetTableColumnsResponse, GetTableColumnsVariables, GetTableSchemaError, GetTableSchemaPathParams, GetTableSchemaResponse, GetTableSchemaVariables, GetUserAPIKeysError, GetUserAPIKeysResponse, GetUserAPIKeysVariables, GetUserError, GetUserVariables, GetWorkspaceError, GetWorkspaceMembersListError, GetWorkspaceMembersListPathParams, GetWorkspaceMembersListVariables, GetWorkspacePathParams, GetWorkspaceVariables, GetWorkspacesListError, GetWorkspacesListResponse, GetWorkspacesListVariables, Identifiable, InsertRecordError, InsertRecordPathParams, InsertRecordQueryParams, InsertRecordVariables, InsertRecordWithIDError, InsertRecordWithIDPathParams, InsertRecordWithIDQueryParams, InsertRecordWithIDVariables, InviteWorkspaceMemberError, InviteWorkspaceMemberPathParams, InviteWorkspaceMemberRequestBody, InviteWorkspaceMemberVariables, Link, OffsetNavigationOptions, operationsByTag as Operations, PAGINATION_DEFAULT_OFFSET, PAGINATION_DEFAULT_SIZE, PAGINATION_MAX_OFFSET, PAGINATION_MAX_SIZE, Page, Paginable, PaginationQueryMeta, Query, QueryTableError, QueryTablePathParams, QueryTableRequestBody, QueryTableVariables, RecordArray, RemoveGitBranchesEntryError, RemoveGitBranchesEntryPathParams, RemoveGitBranchesEntryQueryParams, RemoveGitBranchesEntryVariables, RemoveWorkspaceMemberError, RemoveWorkspaceMemberPathParams, RemoveWorkspaceMemberVariables, Repository, ResendWorkspaceMemberInviteError, ResendWorkspaceMemberInvitePathParams, ResendWorkspaceMemberInviteVariables, ResolveBranchError, ResolveBranchPathParams, ResolveBranchQueryParams, ResolveBranchResponse, ResolveBranchVariables, responses as Responses, RestRepository, SchemaDefinition, SchemaInference, SchemaPlugin, SchemaPluginResult, schemas as Schemas, SearchBranchError, SearchBranchPathParams, SearchBranchRequestBody, SearchBranchVariables, SearchOptions, SearchPlugin, SearchPluginResult, SearchTableError, SearchTablePathParams, SearchTableRequestBody, SearchTableVariables, SearchXataRecord, SelectableColumn, SelectedPick, Serializer, SetTableSchemaError, SetTableSchemaPathParams, SetTableSchemaRequestBody, SetTableSchemaVariables, SimpleCache, SimpleCacheOptions, UpdateBranchMetadataError, UpdateBranchMetadataPathParams, UpdateBranchMetadataVariables, UpdateColumnError, UpdateColumnPathParams, UpdateColumnRequestBody, UpdateColumnVariables, UpdateRecordWithIDError, UpdateRecordWithIDPathParams, UpdateRecordWithIDQueryParams, UpdateRecordWithIDVariables, UpdateTableError, UpdateTablePathParams, UpdateTableRequestBody, UpdateTableVariables, UpdateUserError, UpdateUserVariables, UpdateWorkspaceError, UpdateWorkspaceMemberInviteError, UpdateWorkspaceMemberInvitePathParams, UpdateWorkspaceMemberInviteRequestBody, UpdateWorkspaceMemberInviteVariables, UpdateWorkspaceMemberRoleError, UpdateWorkspaceMemberRolePathParams, UpdateWorkspaceMemberRoleRequestBody, UpdateWorkspaceMemberRoleVariables, UpdateWorkspacePathParams, UpdateWorkspaceVariables, UpsertRecordWithIDError, UpsertRecordWithIDPathParams, UpsertRecordWithIDQueryParams, UpsertRecordWithIDVariables, ValueAtColumn, XataApiClient, XataApiClientOptions, XataApiPlugin, XataError, XataPlugin, XataPluginOptions, XataRecord, acceptWorkspaceMemberInvite, addGitBranchesEntry, addTableColumn, buildClient, buildWorkerRunner, bulkInsertTableRecords, cancelWorkspaceMemberInvite, contains, createBranch, createDatabase, createTable, createUserAPIKey, createWorkspace, deleteBranch, deleteColumn, deleteDatabase, deleteRecord, deleteTable, deleteUser, deleteUserAPIKey, deleteWorkspace, deserialize, endsWith, equals, executeBranchMigrationPlan, exists, ge, getAPIKey, getBranchDetails, getBranchList, getBranchMetadata, getBranchMigrationHistory, getBranchMigrationPlan, getBranchStats, getColumn, getCurrentBranchDetails, getCurrentBranchName, getDatabaseList, getDatabaseMetadata, getDatabaseURL, getGitBranchesMapping, getRecord, getTableColumns, getTableSchema, getUser, getUserAPIKeys, getWorkspace, getWorkspaceMembersList, getWorkspacesList, greaterEquals, greaterThan, greaterThanEquals, gt, gte, includes, includesAll, includesAny, includesNone, insertRecord, insertRecordWithID, inviteWorkspaceMember, is, isCursorPaginationOptions, isIdentifiable, isNot, isXataRecord, le, lessEquals, lessThan, lessThanEquals, lt, lte, notExists, operationsByTag, pattern, queryTable, removeGitBranchesEntry, removeWorkspaceMember, resendWorkspaceMemberInvite, resolveBranch, searchBranch, searchTable, serialize, setTableSchema, startsWith, updateBranchMetadata, updateColumn, updateRecordWithID, updateTable, updateUser, updateWorkspace, updateWorkspaceMemberInvite, updateWorkspaceMemberRole, upsertRecordWithID };