react-native-appwrite 0.15.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/sdk.js +431 -21
  3. package/dist/cjs/sdk.js.map +1 -1
  4. package/dist/esm/sdk.js +431 -21
  5. package/dist/esm/sdk.js.map +1 -1
  6. package/docs/examples/account/create-email-verification.md +13 -0
  7. package/docs/examples/account/update-email-verification.md +14 -0
  8. package/docs/examples/databases/create-document.md +2 -1
  9. package/docs/examples/databases/create-operations.md +24 -0
  10. package/docs/examples/databases/create-transaction.md +13 -0
  11. package/docs/examples/databases/decrement-document-attribute.md +2 -1
  12. package/docs/examples/databases/delete-document.md +2 -1
  13. package/docs/examples/databases/delete-transaction.md +13 -0
  14. package/docs/examples/databases/get-document.md +2 -1
  15. package/docs/examples/databases/get-transaction.md +13 -0
  16. package/docs/examples/databases/increment-document-attribute.md +2 -1
  17. package/docs/examples/databases/list-documents.md +2 -1
  18. package/docs/examples/databases/list-transactions.md +13 -0
  19. package/docs/examples/databases/update-document.md +2 -1
  20. package/docs/examples/databases/update-transaction.md +15 -0
  21. package/docs/examples/databases/upsert-document.md +2 -1
  22. package/docs/examples/tablesdb/create-operations.md +24 -0
  23. package/docs/examples/tablesdb/create-row.md +2 -1
  24. package/docs/examples/tablesdb/create-transaction.md +13 -0
  25. package/docs/examples/tablesdb/decrement-row-column.md +2 -1
  26. package/docs/examples/tablesdb/delete-row.md +2 -1
  27. package/docs/examples/tablesdb/delete-transaction.md +13 -0
  28. package/docs/examples/tablesdb/get-row.md +2 -1
  29. package/docs/examples/tablesdb/get-transaction.md +13 -0
  30. package/docs/examples/tablesdb/increment-row-column.md +2 -1
  31. package/docs/examples/tablesdb/list-rows.md +2 -1
  32. package/docs/examples/tablesdb/list-transactions.md +13 -0
  33. package/docs/examples/tablesdb/update-row.md +2 -1
  34. package/docs/examples/tablesdb/update-transaction.md +15 -0
  35. package/docs/examples/tablesdb/upsert-row.md +2 -1
  36. package/package.json +1 -1
  37. package/src/client.ts +1 -1
  38. package/src/models.ts +44 -0
  39. package/src/services/account.ts +123 -4
  40. package/src/services/databases.ts +414 -56
  41. package/src/services/tables-db.ts +426 -68
  42. package/types/models.d.ts +42 -0
  43. package/types/services/account.d.ts +49 -0
  44. package/types/services/databases.d.ts +155 -8
  45. package/types/services/tables-db.d.ts +167 -20
@@ -13,47 +13,345 @@ export class Databases extends Service {
13
13
  super(client);
14
14
  }
15
15
 
16
+ /**
17
+ * List transactions across all databases.
18
+ *
19
+ * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries).
20
+ * @throws {AppwriteException}
21
+ * @returns {Promise}
22
+ */
23
+ listTransactions(params?: { queries?: string[] }): Promise<Models.TransactionList>;
24
+ /**
25
+ * List transactions across all databases.
26
+ *
27
+ * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries).
28
+ * @throws {AppwriteException}
29
+ * @returns {Promise<Models.TransactionList>}
30
+ * @deprecated Use the object parameter style method for a better developer experience.
31
+ */
32
+ listTransactions(queries?: string[]): Promise<Models.TransactionList>;
33
+ listTransactions(
34
+ paramsOrFirst?: { queries?: string[] } | string[]
35
+ ): Promise<Models.TransactionList> {
36
+ let params: { queries?: string[] };
37
+
38
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
39
+ params = (paramsOrFirst || {}) as { queries?: string[] };
40
+ } else {
41
+ params = {
42
+ queries: paramsOrFirst as string[]
43
+ };
44
+ }
45
+
46
+ const queries = params.queries;
47
+
48
+ const apiPath = '/databases/transactions';
49
+ const payload: Payload = {};
50
+
51
+ if (typeof queries !== 'undefined') {
52
+ payload['queries'] = queries;
53
+ }
54
+
55
+ const uri = new URL(this.client.config.endpoint + apiPath);
56
+ return this.client.call('get', uri, {
57
+ }, payload);
58
+ }
59
+
60
+ /**
61
+ * Create a new transaction.
62
+ *
63
+ * @param {number} params.ttl - Seconds before the transaction expires.
64
+ * @throws {AppwriteException}
65
+ * @returns {Promise}
66
+ */
67
+ createTransaction(params?: { ttl?: number }): Promise<Models.Transaction>;
68
+ /**
69
+ * Create a new transaction.
70
+ *
71
+ * @param {number} ttl - Seconds before the transaction expires.
72
+ * @throws {AppwriteException}
73
+ * @returns {Promise<Models.Transaction>}
74
+ * @deprecated Use the object parameter style method for a better developer experience.
75
+ */
76
+ createTransaction(ttl?: number): Promise<Models.Transaction>;
77
+ createTransaction(
78
+ paramsOrFirst?: { ttl?: number } | number
79
+ ): Promise<Models.Transaction> {
80
+ let params: { ttl?: number };
81
+
82
+ if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
83
+ params = (paramsOrFirst || {}) as { ttl?: number };
84
+ } else {
85
+ params = {
86
+ ttl: paramsOrFirst as number
87
+ };
88
+ }
89
+
90
+ const ttl = params.ttl;
91
+
92
+ const apiPath = '/databases/transactions';
93
+ const payload: Payload = {};
94
+
95
+ if (typeof ttl !== 'undefined') {
96
+ payload['ttl'] = ttl;
97
+ }
98
+
99
+ const uri = new URL(this.client.config.endpoint + apiPath);
100
+ return this.client.call('post', uri, {
101
+ 'content-type': 'application/json',
102
+ }, payload);
103
+ }
104
+
105
+ /**
106
+ * Get a transaction by its unique ID.
107
+ *
108
+ * @param {string} params.transactionId - Transaction ID.
109
+ * @throws {AppwriteException}
110
+ * @returns {Promise}
111
+ */
112
+ getTransaction(params: { transactionId: string }): Promise<Models.Transaction>;
113
+ /**
114
+ * Get a transaction by its unique ID.
115
+ *
116
+ * @param {string} transactionId - Transaction ID.
117
+ * @throws {AppwriteException}
118
+ * @returns {Promise<Models.Transaction>}
119
+ * @deprecated Use the object parameter style method for a better developer experience.
120
+ */
121
+ getTransaction(transactionId: string): Promise<Models.Transaction>;
122
+ getTransaction(
123
+ paramsOrFirst: { transactionId: string } | string
124
+ ): Promise<Models.Transaction> {
125
+ let params: { transactionId: string };
126
+
127
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
128
+ params = (paramsOrFirst || {}) as { transactionId: string };
129
+ } else {
130
+ params = {
131
+ transactionId: paramsOrFirst as string
132
+ };
133
+ }
134
+
135
+ const transactionId = params.transactionId;
136
+
137
+ if (typeof transactionId === 'undefined') {
138
+ throw new AppwriteException('Missing required parameter: "transactionId"');
139
+ }
140
+
141
+ const apiPath = '/databases/transactions/{transactionId}'.replace('{transactionId}', transactionId);
142
+ const payload: Payload = {};
143
+
144
+ const uri = new URL(this.client.config.endpoint + apiPath);
145
+ return this.client.call('get', uri, {
146
+ }, payload);
147
+ }
148
+
149
+ /**
150
+ * Update a transaction, to either commit or roll back its operations.
151
+ *
152
+ * @param {string} params.transactionId - Transaction ID.
153
+ * @param {boolean} params.commit - Commit transaction?
154
+ * @param {boolean} params.rollback - Rollback transaction?
155
+ * @throws {AppwriteException}
156
+ * @returns {Promise}
157
+ */
158
+ updateTransaction(params: { transactionId: string, commit?: boolean, rollback?: boolean }): Promise<Models.Transaction>;
159
+ /**
160
+ * Update a transaction, to either commit or roll back its operations.
161
+ *
162
+ * @param {string} transactionId - Transaction ID.
163
+ * @param {boolean} commit - Commit transaction?
164
+ * @param {boolean} rollback - Rollback transaction?
165
+ * @throws {AppwriteException}
166
+ * @returns {Promise<Models.Transaction>}
167
+ * @deprecated Use the object parameter style method for a better developer experience.
168
+ */
169
+ updateTransaction(transactionId: string, commit?: boolean, rollback?: boolean): Promise<Models.Transaction>;
170
+ updateTransaction(
171
+ paramsOrFirst: { transactionId: string, commit?: boolean, rollback?: boolean } | string,
172
+ ...rest: [(boolean)?, (boolean)?]
173
+ ): Promise<Models.Transaction> {
174
+ let params: { transactionId: string, commit?: boolean, rollback?: boolean };
175
+
176
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
177
+ params = (paramsOrFirst || {}) as { transactionId: string, commit?: boolean, rollback?: boolean };
178
+ } else {
179
+ params = {
180
+ transactionId: paramsOrFirst as string,
181
+ commit: rest[0] as boolean,
182
+ rollback: rest[1] as boolean
183
+ };
184
+ }
185
+
186
+ const transactionId = params.transactionId;
187
+ const commit = params.commit;
188
+ const rollback = params.rollback;
189
+
190
+ if (typeof transactionId === 'undefined') {
191
+ throw new AppwriteException('Missing required parameter: "transactionId"');
192
+ }
193
+
194
+ const apiPath = '/databases/transactions/{transactionId}'.replace('{transactionId}', transactionId);
195
+ const payload: Payload = {};
196
+
197
+ if (typeof commit !== 'undefined') {
198
+ payload['commit'] = commit;
199
+ }
200
+
201
+ if (typeof rollback !== 'undefined') {
202
+ payload['rollback'] = rollback;
203
+ }
204
+
205
+ const uri = new URL(this.client.config.endpoint + apiPath);
206
+ return this.client.call('patch', uri, {
207
+ 'content-type': 'application/json',
208
+ }, payload);
209
+ }
210
+
211
+ /**
212
+ * Delete a transaction by its unique ID.
213
+ *
214
+ * @param {string} params.transactionId - Transaction ID.
215
+ * @throws {AppwriteException}
216
+ * @returns {Promise}
217
+ */
218
+ deleteTransaction(params: { transactionId: string }): Promise<{}>;
219
+ /**
220
+ * Delete a transaction by its unique ID.
221
+ *
222
+ * @param {string} transactionId - Transaction ID.
223
+ * @throws {AppwriteException}
224
+ * @returns {Promise<{}>}
225
+ * @deprecated Use the object parameter style method for a better developer experience.
226
+ */
227
+ deleteTransaction(transactionId: string): Promise<{}>;
228
+ deleteTransaction(
229
+ paramsOrFirst: { transactionId: string } | string
230
+ ): Promise<{}> {
231
+ let params: { transactionId: string };
232
+
233
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
234
+ params = (paramsOrFirst || {}) as { transactionId: string };
235
+ } else {
236
+ params = {
237
+ transactionId: paramsOrFirst as string
238
+ };
239
+ }
240
+
241
+ const transactionId = params.transactionId;
242
+
243
+ if (typeof transactionId === 'undefined') {
244
+ throw new AppwriteException('Missing required parameter: "transactionId"');
245
+ }
246
+
247
+ const apiPath = '/databases/transactions/{transactionId}'.replace('{transactionId}', transactionId);
248
+ const payload: Payload = {};
249
+
250
+ const uri = new URL(this.client.config.endpoint + apiPath);
251
+ return this.client.call('delete', uri, {
252
+ 'content-type': 'application/json',
253
+ }, payload);
254
+ }
255
+
256
+ /**
257
+ * Create multiple operations in a single transaction.
258
+ *
259
+ * @param {string} params.transactionId - Transaction ID.
260
+ * @param {object[]} params.operations - Array of staged operations.
261
+ * @throws {AppwriteException}
262
+ * @returns {Promise}
263
+ */
264
+ createOperations(params: { transactionId: string, operations?: object[] }): Promise<Models.Transaction>;
265
+ /**
266
+ * Create multiple operations in a single transaction.
267
+ *
268
+ * @param {string} transactionId - Transaction ID.
269
+ * @param {object[]} operations - Array of staged operations.
270
+ * @throws {AppwriteException}
271
+ * @returns {Promise<Models.Transaction>}
272
+ * @deprecated Use the object parameter style method for a better developer experience.
273
+ */
274
+ createOperations(transactionId: string, operations?: object[]): Promise<Models.Transaction>;
275
+ createOperations(
276
+ paramsOrFirst: { transactionId: string, operations?: object[] } | string,
277
+ ...rest: [(object[])?]
278
+ ): Promise<Models.Transaction> {
279
+ let params: { transactionId: string, operations?: object[] };
280
+
281
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
282
+ params = (paramsOrFirst || {}) as { transactionId: string, operations?: object[] };
283
+ } else {
284
+ params = {
285
+ transactionId: paramsOrFirst as string,
286
+ operations: rest[0] as object[]
287
+ };
288
+ }
289
+
290
+ const transactionId = params.transactionId;
291
+ const operations = params.operations;
292
+
293
+ if (typeof transactionId === 'undefined') {
294
+ throw new AppwriteException('Missing required parameter: "transactionId"');
295
+ }
296
+
297
+ const apiPath = '/databases/transactions/{transactionId}/operations'.replace('{transactionId}', transactionId);
298
+ const payload: Payload = {};
299
+
300
+ if (typeof operations !== 'undefined') {
301
+ payload['operations'] = operations;
302
+ }
303
+
304
+ const uri = new URL(this.client.config.endpoint + apiPath);
305
+ return this.client.call('post', uri, {
306
+ 'content-type': 'application/json',
307
+ }, payload);
308
+ }
309
+
16
310
  /**
17
311
  * Get a list of all the user's documents in a given collection. You can use the query params to filter your results.
18
312
  *
19
313
  * @param {string} params.databaseId - Database ID.
20
314
  * @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
21
315
  * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
316
+ * @param {string} params.transactionId - Transaction ID to read uncommitted changes within the transaction.
22
317
  * @throws {AppwriteException}
23
318
  * @returns {Promise}
24
319
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.listRows` instead.
25
320
  */
26
- listDocuments<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, queries?: string[] }): Promise<Models.DocumentList<Document>>;
321
+ listDocuments<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string }): Promise<Models.DocumentList<Document>>;
27
322
  /**
28
323
  * Get a list of all the user's documents in a given collection. You can use the query params to filter your results.
29
324
  *
30
325
  * @param {string} databaseId - Database ID.
31
326
  * @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
32
327
  * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
328
+ * @param {string} transactionId - Transaction ID to read uncommitted changes within the transaction.
33
329
  * @throws {AppwriteException}
34
330
  * @returns {Promise<Models.DocumentList<Document>>}
35
331
  * @deprecated Use the object parameter style method for a better developer experience.
36
332
  */
37
- listDocuments<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.DocumentList<Document>>;
333
+ listDocuments<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, queries?: string[], transactionId?: string): Promise<Models.DocumentList<Document>>;
38
334
  listDocuments<Document extends Models.Document = Models.DefaultDocument>(
39
- paramsOrFirst: { databaseId: string, collectionId: string, queries?: string[] } | string,
40
- ...rest: [(string)?, (string[])?]
335
+ paramsOrFirst: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string } | string,
336
+ ...rest: [(string)?, (string[])?, (string)?]
41
337
  ): Promise<Models.DocumentList<Document>> {
42
- let params: { databaseId: string, collectionId: string, queries?: string[] };
338
+ let params: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string };
43
339
 
44
340
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
45
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, queries?: string[] };
341
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, queries?: string[], transactionId?: string };
46
342
  } else {
47
343
  params = {
48
344
  databaseId: paramsOrFirst as string,
49
345
  collectionId: rest[0] as string,
50
- queries: rest[1] as string[]
346
+ queries: rest[1] as string[],
347
+ transactionId: rest[2] as string
51
348
  };
52
349
  }
53
350
 
54
351
  const databaseId = params.databaseId;
55
352
  const collectionId = params.collectionId;
56
353
  const queries = params.queries;
354
+ const transactionId = params.transactionId;
57
355
 
58
356
  if (typeof databaseId === 'undefined') {
59
357
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -70,6 +368,10 @@ export class Databases extends Service {
70
368
  payload['queries'] = queries;
71
369
  }
72
370
 
371
+ if (typeof transactionId !== 'undefined') {
372
+ payload['transactionId'] = transactionId;
373
+ }
374
+
73
375
  const uri = new URL(this.client.config.endpoint + apiPath);
74
376
  return this.client.call('get', uri, {
75
377
  }, payload);
@@ -83,11 +385,12 @@ export class Databases extends Service {
83
385
  * @param {string} params.documentId - Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
84
386
  * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>} params.data - Document data as JSON object.
85
387
  * @param {string[]} params.permissions - An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
388
+ * @param {string} params.transactionId - Transaction ID for staging the operation.
86
389
  * @throws {AppwriteException}
87
390
  * @returns {Promise}
88
391
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.createRow` instead.
89
392
  */
90
- createDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[] }): Promise<Document>;
393
+ createDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[], transactionId?: string }): Promise<Document>;
91
394
  /**
92
395
  * Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
93
396
  *
@@ -96,26 +399,28 @@ export class Databases extends Service {
96
399
  * @param {string} documentId - Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
97
400
  * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>} data - Document data as JSON object.
98
401
  * @param {string[]} permissions - An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
402
+ * @param {string} transactionId - Transaction ID for staging the operation.
99
403
  * @throws {AppwriteException}
100
404
  * @returns {Promise<Document>}
101
405
  * @deprecated Use the object parameter style method for a better developer experience.
102
406
  */
103
- createDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[]): Promise<Document>;
407
+ createDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[], transactionId?: string): Promise<Document>;
104
408
  createDocument<Document extends Models.Document = Models.DefaultDocument>(
105
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[] } | string,
106
- ...rest: [(string)?, (string)?, (Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>)?, (string[])?]
409
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[], transactionId?: string } | string,
410
+ ...rest: [(string)?, (string)?, (Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>)?, (string[])?, (string)?]
107
411
  ): Promise<Document> {
108
- let params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[] };
412
+ let params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[], transactionId?: string };
109
413
 
110
414
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
111
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[] };
415
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[], transactionId?: string };
112
416
  } else {
113
417
  params = {
114
418
  databaseId: paramsOrFirst as string,
115
419
  collectionId: rest[0] as string,
116
420
  documentId: rest[1] as string,
117
421
  data: rest[2] as Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>,
118
- permissions: rest[3] as string[]
422
+ permissions: rest[3] as string[],
423
+ transactionId: rest[4] as string
119
424
  };
120
425
  }
121
426
 
@@ -124,6 +429,7 @@ export class Databases extends Service {
124
429
  const documentId = params.documentId;
125
430
  const data = params.data;
126
431
  const permissions = params.permissions;
432
+ const transactionId = params.transactionId;
127
433
 
128
434
  if (typeof databaseId === 'undefined') {
129
435
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -156,6 +462,10 @@ export class Databases extends Service {
156
462
  payload['permissions'] = permissions;
157
463
  }
158
464
 
465
+ if (typeof transactionId !== 'undefined') {
466
+ payload['transactionId'] = transactionId;
467
+ }
468
+
159
469
  const uri = new URL(this.client.config.endpoint + apiPath);
160
470
  return this.client.call('post', uri, {
161
471
  'content-type': 'application/json',
@@ -169,11 +479,12 @@ export class Databases extends Service {
169
479
  * @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
170
480
  * @param {string} params.documentId - Document ID.
171
481
  * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
482
+ * @param {string} params.transactionId - Transaction ID to read uncommitted changes within the transaction.
172
483
  * @throws {AppwriteException}
173
484
  * @returns {Promise}
174
485
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.getRow` instead.
175
486
  */
176
- getDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, queries?: string[] }): Promise<Document>;
487
+ getDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, queries?: string[], transactionId?: string }): Promise<Document>;
177
488
  /**
178
489
  * Get a document by its unique ID. This endpoint response returns a JSON object with the document data.
179
490
  *
@@ -181,25 +492,27 @@ export class Databases extends Service {
181
492
  * @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
182
493
  * @param {string} documentId - Document ID.
183
494
  * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
495
+ * @param {string} transactionId - Transaction ID to read uncommitted changes within the transaction.
184
496
  * @throws {AppwriteException}
185
497
  * @returns {Promise<Document>}
186
498
  * @deprecated Use the object parameter style method for a better developer experience.
187
499
  */
188
- getDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, queries?: string[]): Promise<Document>;
500
+ getDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, queries?: string[], transactionId?: string): Promise<Document>;
189
501
  getDocument<Document extends Models.Document = Models.DefaultDocument>(
190
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, queries?: string[] } | string,
191
- ...rest: [(string)?, (string)?, (string[])?]
502
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, queries?: string[], transactionId?: string } | string,
503
+ ...rest: [(string)?, (string)?, (string[])?, (string)?]
192
504
  ): Promise<Document> {
193
- let params: { databaseId: string, collectionId: string, documentId: string, queries?: string[] };
505
+ let params: { databaseId: string, collectionId: string, documentId: string, queries?: string[], transactionId?: string };
194
506
 
195
507
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
196
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, queries?: string[] };
508
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, queries?: string[], transactionId?: string };
197
509
  } else {
198
510
  params = {
199
511
  databaseId: paramsOrFirst as string,
200
512
  collectionId: rest[0] as string,
201
513
  documentId: rest[1] as string,
202
- queries: rest[2] as string[]
514
+ queries: rest[2] as string[],
515
+ transactionId: rest[3] as string
203
516
  };
204
517
  }
205
518
 
@@ -207,6 +520,7 @@ export class Databases extends Service {
207
520
  const collectionId = params.collectionId;
208
521
  const documentId = params.documentId;
209
522
  const queries = params.queries;
523
+ const transactionId = params.transactionId;
210
524
 
211
525
  if (typeof databaseId === 'undefined') {
212
526
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -227,6 +541,10 @@ export class Databases extends Service {
227
541
  payload['queries'] = queries;
228
542
  }
229
543
 
544
+ if (typeof transactionId !== 'undefined') {
545
+ payload['transactionId'] = transactionId;
546
+ }
547
+
230
548
  const uri = new URL(this.client.config.endpoint + apiPath);
231
549
  return this.client.call('get', uri, {
232
550
  }, payload);
@@ -240,11 +558,12 @@ export class Databases extends Service {
240
558
  * @param {string} params.documentId - Document ID.
241
559
  * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} params.data - Document data as JSON object. Include all required attributes of the document to be created or updated.
242
560
  * @param {string[]} params.permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
561
+ * @param {string} params.transactionId - Transaction ID for staging the operation.
243
562
  * @throws {AppwriteException}
244
563
  * @returns {Promise}
245
564
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.upsertRow` instead.
246
565
  */
247
- upsertDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] }): Promise<Document>;
566
+ upsertDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string }): Promise<Document>;
248
567
  /**
249
568
  * Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
250
569
  *
@@ -253,26 +572,28 @@ export class Databases extends Service {
253
572
  * @param {string} documentId - Document ID.
254
573
  * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} data - Document data as JSON object. Include all required attributes of the document to be created or updated.
255
574
  * @param {string[]} permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
575
+ * @param {string} transactionId - Transaction ID for staging the operation.
256
576
  * @throws {AppwriteException}
257
577
  * @returns {Promise<Document>}
258
578
  * @deprecated Use the object parameter style method for a better developer experience.
259
579
  */
260
- upsertDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[]): Promise<Document>;
580
+ upsertDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string): Promise<Document>;
261
581
  upsertDocument<Document extends Models.Document = Models.DefaultDocument>(
262
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] } | string,
263
- ...rest: [(string)?, (string)?, (Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>)?, (string[])?]
582
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string } | string,
583
+ ...rest: [(string)?, (string)?, (Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>)?, (string[])?, (string)?]
264
584
  ): Promise<Document> {
265
- let params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] };
585
+ let params: { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string };
266
586
 
267
587
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
268
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] };
588
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string };
269
589
  } else {
270
590
  params = {
271
591
  databaseId: paramsOrFirst as string,
272
592
  collectionId: rest[0] as string,
273
593
  documentId: rest[1] as string,
274
594
  data: rest[2] as Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>,
275
- permissions: rest[3] as string[]
595
+ permissions: rest[3] as string[],
596
+ transactionId: rest[4] as string
276
597
  };
277
598
  }
278
599
 
@@ -281,6 +602,7 @@ export class Databases extends Service {
281
602
  const documentId = params.documentId;
282
603
  const data = params.data;
283
604
  const permissions = params.permissions;
605
+ const transactionId = params.transactionId;
284
606
 
285
607
  if (typeof databaseId === 'undefined') {
286
608
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -309,6 +631,10 @@ export class Databases extends Service {
309
631
  payload['permissions'] = permissions;
310
632
  }
311
633
 
634
+ if (typeof transactionId !== 'undefined') {
635
+ payload['transactionId'] = transactionId;
636
+ }
637
+
312
638
  const uri = new URL(this.client.config.endpoint + apiPath);
313
639
  return this.client.call('put', uri, {
314
640
  'content-type': 'application/json',
@@ -323,11 +649,12 @@ export class Databases extends Service {
323
649
  * @param {string} params.documentId - Document ID.
324
650
  * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} params.data - Document data as JSON object. Include only attribute and value pairs to be updated.
325
651
  * @param {string[]} params.permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
652
+ * @param {string} params.transactionId - Transaction ID for staging the operation.
326
653
  * @throws {AppwriteException}
327
654
  * @returns {Promise}
328
655
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.updateRow` instead.
329
656
  */
330
- updateDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] }): Promise<Document>;
657
+ updateDocument<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string }): Promise<Document>;
331
658
  /**
332
659
  * Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.
333
660
  *
@@ -336,26 +663,28 @@ export class Databases extends Service {
336
663
  * @param {string} documentId - Document ID.
337
664
  * @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} data - Document data as JSON object. Include only attribute and value pairs to be updated.
338
665
  * @param {string[]} permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
666
+ * @param {string} transactionId - Transaction ID for staging the operation.
339
667
  * @throws {AppwriteException}
340
668
  * @returns {Promise<Document>}
341
669
  * @deprecated Use the object parameter style method for a better developer experience.
342
670
  */
343
- updateDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[]): Promise<Document>;
671
+ updateDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string): Promise<Document>;
344
672
  updateDocument<Document extends Models.Document = Models.DefaultDocument>(
345
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] } | string,
346
- ...rest: [(string)?, (string)?, (Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>)?, (string[])?]
673
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string } | string,
674
+ ...rest: [(string)?, (string)?, (Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>)?, (string[])?, (string)?]
347
675
  ): Promise<Document> {
348
- let params: { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] };
676
+ let params: { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string };
349
677
 
350
678
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
351
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[] };
679
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string };
352
680
  } else {
353
681
  params = {
354
682
  databaseId: paramsOrFirst as string,
355
683
  collectionId: rest[0] as string,
356
684
  documentId: rest[1] as string,
357
685
  data: rest[2] as Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>,
358
- permissions: rest[3] as string[]
686
+ permissions: rest[3] as string[],
687
+ transactionId: rest[4] as string
359
688
  };
360
689
  }
361
690
 
@@ -364,6 +693,7 @@ export class Databases extends Service {
364
693
  const documentId = params.documentId;
365
694
  const data = params.data;
366
695
  const permissions = params.permissions;
696
+ const transactionId = params.transactionId;
367
697
 
368
698
  if (typeof databaseId === 'undefined') {
369
699
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -388,6 +718,10 @@ export class Databases extends Service {
388
718
  payload['permissions'] = permissions;
389
719
  }
390
720
 
721
+ if (typeof transactionId !== 'undefined') {
722
+ payload['transactionId'] = transactionId;
723
+ }
724
+
391
725
  const uri = new URL(this.client.config.endpoint + apiPath);
392
726
  return this.client.call('patch', uri, {
393
727
  'content-type': 'application/json',
@@ -400,41 +734,45 @@ export class Databases extends Service {
400
734
  * @param {string} params.databaseId - Database ID.
401
735
  * @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
402
736
  * @param {string} params.documentId - Document ID.
737
+ * @param {string} params.transactionId - Transaction ID for staging the operation.
403
738
  * @throws {AppwriteException}
404
739
  * @returns {Promise}
405
740
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.deleteRow` instead.
406
741
  */
407
- deleteDocument(params: { databaseId: string, collectionId: string, documentId: string }): Promise<{}>;
742
+ deleteDocument(params: { databaseId: string, collectionId: string, documentId: string, transactionId?: string }): Promise<{}>;
408
743
  /**
409
744
  * Delete a document by its unique ID.
410
745
  *
411
746
  * @param {string} databaseId - Database ID.
412
747
  * @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
413
748
  * @param {string} documentId - Document ID.
749
+ * @param {string} transactionId - Transaction ID for staging the operation.
414
750
  * @throws {AppwriteException}
415
751
  * @returns {Promise<{}>}
416
752
  * @deprecated Use the object parameter style method for a better developer experience.
417
753
  */
418
- deleteDocument(databaseId: string, collectionId: string, documentId: string): Promise<{}>;
754
+ deleteDocument(databaseId: string, collectionId: string, documentId: string, transactionId?: string): Promise<{}>;
419
755
  deleteDocument(
420
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string } | string,
421
- ...rest: [(string)?, (string)?]
756
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, transactionId?: string } | string,
757
+ ...rest: [(string)?, (string)?, (string)?]
422
758
  ): Promise<{}> {
423
- let params: { databaseId: string, collectionId: string, documentId: string };
759
+ let params: { databaseId: string, collectionId: string, documentId: string, transactionId?: string };
424
760
 
425
761
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
426
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string };
762
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, transactionId?: string };
427
763
  } else {
428
764
  params = {
429
765
  databaseId: paramsOrFirst as string,
430
766
  collectionId: rest[0] as string,
431
- documentId: rest[1] as string
767
+ documentId: rest[1] as string,
768
+ transactionId: rest[2] as string
432
769
  };
433
770
  }
434
771
 
435
772
  const databaseId = params.databaseId;
436
773
  const collectionId = params.collectionId;
437
774
  const documentId = params.documentId;
775
+ const transactionId = params.transactionId;
438
776
 
439
777
  if (typeof databaseId === 'undefined') {
440
778
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -451,6 +789,10 @@ export class Databases extends Service {
451
789
  const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);
452
790
  const payload: Payload = {};
453
791
 
792
+ if (typeof transactionId !== 'undefined') {
793
+ payload['transactionId'] = transactionId;
794
+ }
795
+
454
796
  const uri = new URL(this.client.config.endpoint + apiPath);
455
797
  return this.client.call('delete', uri, {
456
798
  'content-type': 'application/json',
@@ -466,11 +808,12 @@ export class Databases extends Service {
466
808
  * @param {string} params.attribute - Attribute key.
467
809
  * @param {number} params.value - Value to increment the attribute by. The value must be a number.
468
810
  * @param {number} params.min - Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.
811
+ * @param {string} params.transactionId - Transaction ID for staging the operation.
469
812
  * @throws {AppwriteException}
470
813
  * @returns {Promise}
471
814
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.decrementRowColumn` instead.
472
815
  */
473
- decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number }): Promise<Document>;
816
+ decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number, transactionId?: string }): Promise<Document>;
474
817
  /**
475
818
  * Decrement a specific attribute of a document by a given value.
476
819
  *
@@ -480,19 +823,20 @@ export class Databases extends Service {
480
823
  * @param {string} attribute - Attribute key.
481
824
  * @param {number} value - Value to increment the attribute by. The value must be a number.
482
825
  * @param {number} min - Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.
826
+ * @param {string} transactionId - Transaction ID for staging the operation.
483
827
  * @throws {AppwriteException}
484
828
  * @returns {Promise<Document>}
485
829
  * @deprecated Use the object parameter style method for a better developer experience.
486
830
  */
487
- decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number): Promise<Document>;
831
+ decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number, transactionId?: string): Promise<Document>;
488
832
  decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(
489
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number } | string,
490
- ...rest: [(string)?, (string)?, (string)?, (number)?, (number)?]
833
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number, transactionId?: string } | string,
834
+ ...rest: [(string)?, (string)?, (string)?, (number)?, (number)?, (string)?]
491
835
  ): Promise<Document> {
492
- let params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number };
836
+ let params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number, transactionId?: string };
493
837
 
494
838
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
495
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number };
839
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number, transactionId?: string };
496
840
  } else {
497
841
  params = {
498
842
  databaseId: paramsOrFirst as string,
@@ -500,7 +844,8 @@ export class Databases extends Service {
500
844
  documentId: rest[1] as string,
501
845
  attribute: rest[2] as string,
502
846
  value: rest[3] as number,
503
- min: rest[4] as number
847
+ min: rest[4] as number,
848
+ transactionId: rest[5] as string
504
849
  };
505
850
  }
506
851
 
@@ -510,6 +855,7 @@ export class Databases extends Service {
510
855
  const attribute = params.attribute;
511
856
  const value = params.value;
512
857
  const min = params.min;
858
+ const transactionId = params.transactionId;
513
859
 
514
860
  if (typeof databaseId === 'undefined') {
515
861
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -538,6 +884,10 @@ export class Databases extends Service {
538
884
  payload['min'] = min;
539
885
  }
540
886
 
887
+ if (typeof transactionId !== 'undefined') {
888
+ payload['transactionId'] = transactionId;
889
+ }
890
+
541
891
  const uri = new URL(this.client.config.endpoint + apiPath);
542
892
  return this.client.call('patch', uri, {
543
893
  'content-type': 'application/json',
@@ -553,11 +903,12 @@ export class Databases extends Service {
553
903
  * @param {string} params.attribute - Attribute key.
554
904
  * @param {number} params.value - Value to increment the attribute by. The value must be a number.
555
905
  * @param {number} params.max - Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.
906
+ * @param {string} params.transactionId - Transaction ID for staging the operation.
556
907
  * @throws {AppwriteException}
557
908
  * @returns {Promise}
558
909
  * @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.incrementRowColumn` instead.
559
910
  */
560
- incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number }): Promise<Document>;
911
+ incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number, transactionId?: string }): Promise<Document>;
561
912
  /**
562
913
  * Increment a specific attribute of a document by a given value.
563
914
  *
@@ -567,19 +918,20 @@ export class Databases extends Service {
567
918
  * @param {string} attribute - Attribute key.
568
919
  * @param {number} value - Value to increment the attribute by. The value must be a number.
569
920
  * @param {number} max - Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.
921
+ * @param {string} transactionId - Transaction ID for staging the operation.
570
922
  * @throws {AppwriteException}
571
923
  * @returns {Promise<Document>}
572
924
  * @deprecated Use the object parameter style method for a better developer experience.
573
925
  */
574
- incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number): Promise<Document>;
926
+ incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number, transactionId?: string): Promise<Document>;
575
927
  incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(
576
- paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number } | string,
577
- ...rest: [(string)?, (string)?, (string)?, (number)?, (number)?]
928
+ paramsOrFirst: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number, transactionId?: string } | string,
929
+ ...rest: [(string)?, (string)?, (string)?, (number)?, (number)?, (string)?]
578
930
  ): Promise<Document> {
579
- let params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number };
931
+ let params: { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number, transactionId?: string };
580
932
 
581
933
  if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
582
- params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number };
934
+ params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number, transactionId?: string };
583
935
  } else {
584
936
  params = {
585
937
  databaseId: paramsOrFirst as string,
@@ -587,7 +939,8 @@ export class Databases extends Service {
587
939
  documentId: rest[1] as string,
588
940
  attribute: rest[2] as string,
589
941
  value: rest[3] as number,
590
- max: rest[4] as number
942
+ max: rest[4] as number,
943
+ transactionId: rest[5] as string
591
944
  };
592
945
  }
593
946
 
@@ -597,6 +950,7 @@ export class Databases extends Service {
597
950
  const attribute = params.attribute;
598
951
  const value = params.value;
599
952
  const max = params.max;
953
+ const transactionId = params.transactionId;
600
954
 
601
955
  if (typeof databaseId === 'undefined') {
602
956
  throw new AppwriteException('Missing required parameter: "databaseId"');
@@ -625,6 +979,10 @@ export class Databases extends Service {
625
979
  payload['max'] = max;
626
980
  }
627
981
 
982
+ if (typeof transactionId !== 'undefined') {
983
+ payload['transactionId'] = transactionId;
984
+ }
985
+
628
986
  const uri = new URL(this.client.config.endpoint + apiPath);
629
987
  return this.client.call('patch', uri, {
630
988
  'content-type': 'application/json',