react-native-appwrite 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change log
2
2
 
3
+ ## 0.21.0
4
+
5
+ * Add `queries` parameter to `client.subscribe()` for filtering Realtime events
6
+ * Fix `Roles` enum removed from Teams service; `roles` parameter now accepts `string[]`
7
+ * Fix parameter detection in overloaded methods to check for optional params (Account, Avatars, Graphql)
8
+
3
9
  ## 0.20.0
4
10
 
5
11
  * Add array-based enum parameters (e.g., `permissions: BrowserPermission[]`).
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
7
7
  [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)
8
8
 
9
- **This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-react-native/releases).**
9
+ **This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-react-native/releases).**
10
10
 
11
11
  Appwrite is an open-source backend as a service server that abstracts and simplifies complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way. Use the React Native SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
12
12
 
package/dist/cjs/sdk.js CHANGED
@@ -128,7 +128,7 @@ class Client {
128
128
  'x-sdk-name': 'React Native',
129
129
  'x-sdk-platform': 'client',
130
130
  'x-sdk-language': 'reactnative',
131
- 'x-sdk-version': '0.20.0',
131
+ 'x-sdk-version': '0.21.0',
132
132
  'X-Appwrite-Response-Format': '1.8.0',
133
133
  };
134
134
  this.realtime = {
@@ -137,6 +137,7 @@ class Client {
137
137
  heartbeat: undefined,
138
138
  url: '',
139
139
  channels: new Set(),
140
+ queries: new Set(),
140
141
  subscriptions: new Map(),
141
142
  subscriptionsCounter: 0,
142
143
  reconnect: true,
@@ -183,6 +184,9 @@ class Client {
183
184
  this.realtime.channels.forEach(channel => {
184
185
  channels.append('channels[]', channel);
185
186
  });
187
+ this.realtime.queries.forEach(query => {
188
+ channels.append('queries[]', query);
189
+ });
186
190
  const url = this.config.endpointRealtime + '/realtime?' + channels.toString();
187
191
  if (url !== this.realtime.url || // Check if URL is present
188
192
  !this.realtime.socket || // Check if WebSocket has not been created
@@ -254,7 +258,7 @@ class Client {
254
258
  console.error(e);
255
259
  }
256
260
  },
257
- cleanUp: channels => {
261
+ cleanUp: (channels, queries) => {
258
262
  this.realtime.channels.forEach(channel => {
259
263
  if (channels.includes(channel)) {
260
264
  let found = Array.from(this.realtime.subscriptions).some(([_key, subscription]) => {
@@ -265,6 +269,17 @@ class Client {
265
269
  }
266
270
  }
267
271
  });
272
+ this.realtime.queries.forEach(query => {
273
+ if (queries.includes(query)) {
274
+ let found = Array.from(this.realtime.subscriptions).some(([_key, subscription]) => {
275
+ var _a;
276
+ return (_a = subscription.queries) === null || _a === void 0 ? void 0 : _a.includes(query);
277
+ });
278
+ if (!found) {
279
+ this.realtime.queries.delete(query);
280
+ }
281
+ }
282
+ });
268
283
  }
269
284
  };
270
285
  }
@@ -410,18 +425,21 @@ class Client {
410
425
  * @param {(payload: RealtimeMessage) => void} callback Is called on every realtime update.
411
426
  * @returns {() => void} Unsubscribes from events.
412
427
  */
413
- subscribe(channels, callback) {
428
+ subscribe(channels, callback, queries = []) {
414
429
  let channelArray = typeof channels === 'string' ? [channels] : channels;
415
430
  channelArray.forEach(channel => this.realtime.channels.add(channel));
431
+ const queryStrings = (queries !== null && queries !== void 0 ? queries : []).map(q => typeof q === 'string' ? q : q.toString());
432
+ queryStrings.forEach(query => this.realtime.queries.add(query));
416
433
  const counter = this.realtime.subscriptionsCounter++;
417
434
  this.realtime.subscriptions.set(counter, {
418
435
  channels: channelArray,
436
+ queries: queryStrings,
419
437
  callback
420
438
  });
421
439
  this.realtime.connect();
422
440
  return () => {
423
441
  this.realtime.subscriptions.delete(counter);
424
- this.realtime.cleanUp(channelArray);
442
+ this.realtime.cleanUp(channelArray, queryStrings);
425
443
  this.realtime.connect();
426
444
  };
427
445
  }
@@ -719,7 +737,7 @@ class Account extends Service {
719
737
  }
720
738
  createMfaAuthenticator(paramsOrFirst) {
721
739
  let params;
722
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'type' in paramsOrFirst)) {
740
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('type' in paramsOrFirst))) {
723
741
  params = (paramsOrFirst || {});
724
742
  }
725
743
  else {
@@ -740,7 +758,7 @@ class Account extends Service {
740
758
  }
741
759
  createMFAAuthenticator(paramsOrFirst) {
742
760
  let params;
743
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'type' in paramsOrFirst)) {
761
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('type' in paramsOrFirst))) {
744
762
  params = (paramsOrFirst || {});
745
763
  }
746
764
  else {
@@ -761,7 +779,7 @@ class Account extends Service {
761
779
  }
762
780
  updateMfaAuthenticator(paramsOrFirst, ...rest) {
763
781
  let params;
764
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'type' in paramsOrFirst)) {
782
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('type' in paramsOrFirst || 'otp' in paramsOrFirst))) {
765
783
  params = (paramsOrFirst || {});
766
784
  }
767
785
  else {
@@ -790,7 +808,7 @@ class Account extends Service {
790
808
  }
791
809
  updateMFAAuthenticator(paramsOrFirst, ...rest) {
792
810
  let params;
793
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'type' in paramsOrFirst)) {
811
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('type' in paramsOrFirst || 'otp' in paramsOrFirst))) {
794
812
  params = (paramsOrFirst || {});
795
813
  }
796
814
  else {
@@ -819,7 +837,7 @@ class Account extends Service {
819
837
  }
820
838
  deleteMfaAuthenticator(paramsOrFirst) {
821
839
  let params;
822
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'type' in paramsOrFirst)) {
840
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('type' in paramsOrFirst))) {
823
841
  params = (paramsOrFirst || {});
824
842
  }
825
843
  else {
@@ -840,7 +858,7 @@ class Account extends Service {
840
858
  }
841
859
  deleteMFAAuthenticator(paramsOrFirst) {
842
860
  let params;
843
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'type' in paramsOrFirst)) {
861
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('type' in paramsOrFirst))) {
844
862
  params = (paramsOrFirst || {});
845
863
  }
846
864
  else {
@@ -861,7 +879,7 @@ class Account extends Service {
861
879
  }
862
880
  createMfaChallenge(paramsOrFirst) {
863
881
  let params;
864
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'factor' in paramsOrFirst)) {
882
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('factor' in paramsOrFirst))) {
865
883
  params = (paramsOrFirst || {});
866
884
  }
867
885
  else {
@@ -885,7 +903,7 @@ class Account extends Service {
885
903
  }
886
904
  createMFAChallenge(paramsOrFirst) {
887
905
  let params;
888
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'factor' in paramsOrFirst)) {
906
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('factor' in paramsOrFirst))) {
889
907
  params = (paramsOrFirst || {});
890
908
  }
891
909
  else {
@@ -1178,7 +1196,7 @@ class Account extends Service {
1178
1196
  }
1179
1197
  updatePrefs(paramsOrFirst) {
1180
1198
  let params;
1181
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'prefs' in paramsOrFirst)) {
1199
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('prefs' in paramsOrFirst))) {
1182
1200
  params = (paramsOrFirst || {});
1183
1201
  }
1184
1202
  else {
@@ -1378,7 +1396,7 @@ class Account extends Service {
1378
1396
  }
1379
1397
  createOAuth2Session(paramsOrFirst, ...rest) {
1380
1398
  let params;
1381
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'provider' in paramsOrFirst)) {
1399
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('provider' in paramsOrFirst || 'success' in paramsOrFirst || 'failure' in paramsOrFirst || 'scopes' in paramsOrFirst))) {
1382
1400
  params = (paramsOrFirst || {});
1383
1401
  }
1384
1402
  else {
@@ -1721,7 +1739,7 @@ class Account extends Service {
1721
1739
  }
1722
1740
  createOAuth2Token(paramsOrFirst, ...rest) {
1723
1741
  let params;
1724
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'provider' in paramsOrFirst)) {
1742
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('provider' in paramsOrFirst || 'success' in paramsOrFirst || 'failure' in paramsOrFirst || 'scopes' in paramsOrFirst))) {
1725
1743
  params = (paramsOrFirst || {});
1726
1744
  }
1727
1745
  else {
@@ -1955,7 +1973,7 @@ class Avatars extends Service {
1955
1973
  }
1956
1974
  getBrowser(paramsOrFirst, ...rest) {
1957
1975
  let params;
1958
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'code' in paramsOrFirst)) {
1976
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('code' in paramsOrFirst || 'width' in paramsOrFirst || 'height' in paramsOrFirst || 'quality' in paramsOrFirst))) {
1959
1977
  params = (paramsOrFirst || {});
1960
1978
  }
1961
1979
  else {
@@ -1993,7 +2011,7 @@ class Avatars extends Service {
1993
2011
  }
1994
2012
  getCreditCard(paramsOrFirst, ...rest) {
1995
2013
  let params;
1996
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'code' in paramsOrFirst)) {
2014
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('code' in paramsOrFirst || 'width' in paramsOrFirst || 'height' in paramsOrFirst || 'quality' in paramsOrFirst))) {
1997
2015
  params = (paramsOrFirst || {});
1998
2016
  }
1999
2017
  else {
@@ -2057,7 +2075,7 @@ class Avatars extends Service {
2057
2075
  }
2058
2076
  getFlag(paramsOrFirst, ...rest) {
2059
2077
  let params;
2060
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'code' in paramsOrFirst)) {
2078
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('code' in paramsOrFirst || 'width' in paramsOrFirst || 'height' in paramsOrFirst || 'quality' in paramsOrFirst))) {
2061
2079
  params = (paramsOrFirst || {});
2062
2080
  }
2063
2081
  else {
@@ -3310,7 +3328,7 @@ class Graphql extends Service {
3310
3328
  }
3311
3329
  query(paramsOrFirst) {
3312
3330
  let params;
3313
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'query' in paramsOrFirst)) {
3331
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('query' in paramsOrFirst))) {
3314
3332
  params = (paramsOrFirst || {});
3315
3333
  }
3316
3334
  else {
@@ -3335,7 +3353,7 @@ class Graphql extends Service {
3335
3353
  }
3336
3354
  mutation(paramsOrFirst) {
3337
3355
  let params;
3338
- if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && 'query' in paramsOrFirst)) {
3356
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('query' in paramsOrFirst))) {
3339
3357
  params = (paramsOrFirst || {});
3340
3358
  }
3341
3359
  else {
@@ -5376,10 +5394,6 @@ class Channel {
5376
5394
  file(id = "*") {
5377
5395
  return this.next("files", id);
5378
5396
  }
5379
- // --- FUNCTION ROUTE ---
5380
- execution(id = "*") {
5381
- return this.next("executions", id);
5382
- }
5383
5397
  // --- TERMINAL ACTIONS ---
5384
5398
  // Restricted to the Actionable union
5385
5399
  create() {
@@ -5404,15 +5418,17 @@ class Channel {
5404
5418
  static function(id = "*") {
5405
5419
  return new Channel(["functions", normalize(id)]);
5406
5420
  }
5421
+ static execution(id = "*") {
5422
+ return new Channel(["executions", normalize(id)]);
5423
+ }
5407
5424
  static team(id = "*") {
5408
5425
  return new Channel(["teams", normalize(id)]);
5409
5426
  }
5410
5427
  static membership(id = "*") {
5411
5428
  return new Channel(["memberships", normalize(id)]);
5412
5429
  }
5413
- static account(userId = "") {
5414
- const id = normalize(userId);
5415
- return id === "*" ? "account" : `account.${id}`;
5430
+ static account() {
5431
+ return "account";
5416
5432
  }
5417
5433
  // Global events
5418
5434
  static get documents() {
@@ -5748,6 +5764,8 @@ exports.OAuthProvider = void 0;
5748
5764
  OAuthProvider["Yandex"] = "yandex";
5749
5765
  OAuthProvider["Zoho"] = "zoho";
5750
5766
  OAuthProvider["Zoom"] = "zoom";
5767
+ OAuthProvider["GithubImagine"] = "githubImagine";
5768
+ OAuthProvider["GoogleImagine"] = "googleImagine";
5751
5769
  })(exports.OAuthProvider || (exports.OAuthProvider = {}));
5752
5770
 
5753
5771
  exports.Browser = void 0;
@@ -6476,13 +6494,6 @@ exports.ImageGravity = void 0;
6476
6494
  ImageGravity["BottomRight"] = "bottom-right";
6477
6495
  })(exports.ImageGravity || (exports.ImageGravity = {}));
6478
6496
 
6479
- exports.Roles = void 0;
6480
- (function (Roles) {
6481
- Roles["Admin"] = "admin";
6482
- Roles["Developer"] = "developer";
6483
- Roles["Owner"] = "owner";
6484
- })(exports.Roles || (exports.Roles = {}));
6485
-
6486
6497
  exports.ExecutionTrigger = void 0;
6487
6498
  (function (ExecutionTrigger) {
6488
6499
  ExecutionTrigger["Http"] = "http";