@knocklabs/client 0.8.15 → 0.8.17

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 (71) hide show
  1. package/README.md +9 -27
  2. package/dist/cjs/api.js +47 -56
  3. package/dist/cjs/api.js.map +1 -1
  4. package/dist/cjs/clients/feed/feed.js +531 -624
  5. package/dist/cjs/clients/feed/feed.js.map +1 -1
  6. package/dist/cjs/clients/feed/index.js +1 -10
  7. package/dist/cjs/clients/feed/index.js.map +1 -1
  8. package/dist/cjs/clients/feed/interfaces.js.map +1 -1
  9. package/dist/cjs/clients/feed/store.js +4 -15
  10. package/dist/cjs/clients/feed/store.js.map +1 -1
  11. package/dist/cjs/clients/feed/types.js.map +1 -1
  12. package/dist/cjs/clients/feed/utils.js +0 -5
  13. package/dist/cjs/clients/feed/utils.js.map +1 -1
  14. package/dist/cjs/clients/preferences/index.js +216 -249
  15. package/dist/cjs/clients/preferences/index.js.map +1 -1
  16. package/dist/cjs/clients/preferences/interfaces.js.map +1 -1
  17. package/dist/cjs/clients/users/index.js +134 -61
  18. package/dist/cjs/clients/users/index.js.map +1 -1
  19. package/dist/cjs/clients/users/interfaces.js +6 -0
  20. package/dist/cjs/clients/users/interfaces.js.map +1 -0
  21. package/dist/cjs/index.js +3 -23
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/interfaces.js.map +1 -1
  24. package/dist/cjs/knock.js +9 -22
  25. package/dist/cjs/knock.js.map +1 -1
  26. package/dist/cjs/networkStatus.js +3 -6
  27. package/dist/cjs/networkStatus.js.map +1 -1
  28. package/dist/esm/api.js +19 -21
  29. package/dist/esm/api.js.map +1 -1
  30. package/dist/esm/clients/feed/feed.js +104 -148
  31. package/dist/esm/clients/feed/feed.js.map +1 -1
  32. package/dist/esm/clients/feed/index.js +0 -5
  33. package/dist/esm/clients/feed/index.js.map +1 -1
  34. package/dist/esm/clients/feed/interfaces.js.map +1 -1
  35. package/dist/esm/clients/feed/store.js +2 -8
  36. package/dist/esm/clients/feed/store.js.map +1 -1
  37. package/dist/esm/clients/feed/types.js.map +1 -1
  38. package/dist/esm/clients/feed/utils.js +0 -1
  39. package/dist/esm/clients/feed/utils.js.map +1 -1
  40. package/dist/esm/clients/preferences/index.js +35 -25
  41. package/dist/esm/clients/preferences/index.js.map +1 -1
  42. package/dist/esm/clients/preferences/interfaces.js.map +1 -1
  43. package/dist/esm/clients/users/index.js +47 -16
  44. package/dist/esm/clients/users/index.js.map +1 -1
  45. package/dist/esm/clients/users/interfaces.js +2 -0
  46. package/dist/esm/clients/users/interfaces.js.map +1 -0
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/interfaces.js.map +1 -1
  49. package/dist/esm/knock.js +8 -23
  50. package/dist/esm/knock.js.map +1 -1
  51. package/dist/esm/networkStatus.js +3 -5
  52. package/dist/esm/networkStatus.js.map +1 -1
  53. package/dist/types/api.d.ts +3 -1
  54. package/dist/types/api.d.ts.map +1 -1
  55. package/dist/types/clients/feed/feed.d.ts +7 -1
  56. package/dist/types/clients/feed/feed.d.ts.map +1 -1
  57. package/dist/types/clients/feed/interfaces.d.ts +4 -1
  58. package/dist/types/clients/feed/interfaces.d.ts.map +1 -1
  59. package/dist/types/clients/feed/types.d.ts +10 -10
  60. package/dist/types/clients/feed/types.d.ts.map +1 -1
  61. package/dist/types/clients/preferences/index.d.ts +27 -0
  62. package/dist/types/clients/preferences/index.d.ts.map +1 -1
  63. package/dist/types/clients/preferences/interfaces.d.ts +7 -4
  64. package/dist/types/clients/preferences/interfaces.d.ts.map +1 -1
  65. package/dist/types/clients/users/index.d.ts +8 -9
  66. package/dist/types/clients/users/index.d.ts.map +1 -1
  67. package/dist/types/clients/users/interfaces.d.ts +8 -0
  68. package/dist/types/clients/users/interfaces.d.ts.map +1 -0
  69. package/dist/types/interfaces.d.ts +6 -2
  70. package/dist/types/interfaces.d.ts.map +1 -1
  71. package/package.json +16 -11
package/README.md CHANGED
@@ -43,10 +43,6 @@ knockClient.authenticate(
43
43
  );
44
44
  ```
45
45
 
46
- ## Usage
47
-
48
- You can find an example usage in a React application in the [example/App.js](https://github.com/knocklabs/client-js/blob/main/example/src/App.js) file, which is a plain-old Create React App.
49
-
50
46
  ### Retrieving new items from the feed
51
47
 
52
48
  ```typescript
@@ -159,7 +155,7 @@ feedClient.markAsUnarchived(feedItemOrItems);
159
155
 
160
156
  ```typescript
161
157
  // Set an entire preference set
162
- await knockClient.preferences.set({
158
+ await knockClient.user.setPreferences({
163
159
  channel_types: { email: true, sms: false },
164
160
  workflows: {
165
161
  "dinosaurs-loose": {
@@ -169,43 +165,29 @@ await knockClient.preferences.set({
169
165
  });
170
166
 
171
167
  // Retrieve a whole preference set
172
- const preferences = await knockClient.preferences.get();
168
+ const preferences = await knockClient.user.getPreferences();
173
169
 
174
- // Granular preference setting for channel types
175
- await knockClient.preferences.setChannelType("email", false);
176
-
177
- // Granular preference setting for workflows
178
- await knockClient.preferences.setWorkflow("dinosaurs-loose", {
179
- channel_types: {
180
- email: true,
181
- in_app_feed: false,
182
- },
183
- });
170
+ // Retrieve all preference sets for the user
171
+ const preferenceSets = await knockClient.user.getAllPreferences();
184
172
  ```
185
173
 
186
-
187
174
  ### Managing the current user's channel data
188
175
 
189
176
  ```typescript
190
177
  // Get user channel data
191
- await knockClient.user.getChannelData({
192
- userId: "user-id",
193
- channelId: "channel-id"
178
+ const channelData = await knockClient.user.getChannelData({
179
+ channelId: "uuid-knock-channel-id",
194
180
  });
195
181
  ```
196
182
 
197
183
  ```typescript
198
184
  // Set push channel data for a user
199
185
  await knockClient.user.setChannelData({
200
- userId: "user-id",
201
- channelId: "channel-id",
186
+ channelId: "uuid-knock-channel-id",
202
187
  channelData: {
203
- tokens: [
204
- "apns-user-push-token"
205
- ]
206
- }
188
+ tokens: ["apns-user-push-token"],
189
+ },
207
190
  });
208
191
  ```
209
192
 
210
193
  See provider requirements for setting channel data [here]("https://docs.knock.app/managing-recipients/setting-channel-data#provider-data-requirements").
211
-
package/dist/cjs/api.js CHANGED
@@ -1,28 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
-
20
13
  var _axios = _interopRequireDefault(require("axios"));
21
-
22
14
  var _axiosRetry = _interopRequireDefault(require("axios-retry"));
23
-
24
15
  var _phoenix = require("phoenix");
25
-
26
16
  var ApiClient = /*#__PURE__*/function () {
27
17
  function ApiClient(options) {
28
18
  (0, _classCallCheck2["default"])(this, ApiClient);
@@ -33,8 +23,9 @@ var ApiClient = /*#__PURE__*/function () {
33
23
  (0, _defineProperty2["default"])(this, "socket", void 0);
34
24
  this.host = options.host;
35
25
  this.apiKey = options.apiKey;
36
- this.userToken = options.userToken || null; // Create a retryable axios client
26
+ this.userToken = options.userToken || null;
37
27
 
28
+ // Create a retryable axios client
38
29
  this.axiosClient = _axios["default"].create({
39
30
  baseURL: this.host,
40
31
  headers: {
@@ -44,7 +35,6 @@ var ApiClient = /*#__PURE__*/function () {
44
35
  "X-Knock-User-Token": this.userToken
45
36
  }
46
37
  });
47
-
48
38
  if (typeof window !== "undefined") {
49
39
  this.socket = new _phoenix.Socket("".concat(this.host.replace("http", "ws"), "/ws/v1"), {
50
40
  params: {
@@ -53,61 +43,66 @@ var ApiClient = /*#__PURE__*/function () {
53
43
  }
54
44
  });
55
45
  }
56
-
57
46
  (0, _axiosRetry["default"])(this.axiosClient, {
58
47
  retries: 3,
59
48
  retryCondition: this.canRetryRequest,
60
49
  retryDelay: _axiosRetry["default"].exponentialDelay
61
50
  });
62
51
  }
63
-
64
52
  (0, _createClass2["default"])(ApiClient, [{
65
53
  key: "makeRequest",
66
54
  value: function () {
67
55
  var _makeRequest = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req) {
68
56
  var result;
69
57
  return _regenerator["default"].wrap(function _callee$(_context) {
70
- while (1) {
71
- switch (_context.prev = _context.next) {
72
- case 0:
73
- _context.prev = 0;
74
- _context.next = 3;
75
- return this.axiosClient(req);
76
-
77
- case 3:
78
- result = _context.sent;
79
- return _context.abrupt("return", {
80
- statusCode: result.status < 300 ? "ok" : "error",
81
- body: result.data,
82
- error: undefined,
83
- status: result.status
84
- });
85
-
86
- case 7:
87
- _context.prev = 7;
88
- _context.t0 = _context["catch"](0);
89
- console.error(_context.t0);
90
- return _context.abrupt("return", {
91
- statusCode: "error",
92
- status: 500,
93
- body: undefined,
94
- error: _context.t0
95
- });
96
-
97
- case 11:
98
- case "end":
99
- return _context.stop();
100
- }
58
+ while (1) switch (_context.prev = _context.next) {
59
+ case 0:
60
+ _context.prev = 0;
61
+ _context.next = 3;
62
+ return this.axiosClient(req);
63
+ case 3:
64
+ result = _context.sent;
65
+ return _context.abrupt("return", {
66
+ statusCode: result.status < 300 ? "ok" : "error",
67
+ body: result.data,
68
+ error: undefined,
69
+ status: result.status
70
+ });
71
+ case 7:
72
+ _context.prev = 7;
73
+ _context.t0 = _context["catch"](0);
74
+ console.error(_context.t0);
75
+ return _context.abrupt("return", {
76
+ statusCode: "error",
77
+ status: 500,
78
+ body: undefined,
79
+ error: _context.t0
80
+ });
81
+ case 11:
82
+ case "end":
83
+ return _context.stop();
101
84
  }
102
85
  }, _callee, this, [[0, 7]]);
103
86
  }));
104
-
105
87
  function makeRequest(_x) {
106
88
  return _makeRequest.apply(this, arguments);
107
89
  }
108
-
109
90
  return makeRequest;
110
91
  }()
92
+ }, {
93
+ key: "reconnectSocket",
94
+ value: function reconnectSocket() {
95
+ if (this.socket && !this.socket.isConnected()) {
96
+ this.socket.connect();
97
+ }
98
+ }
99
+ }, {
100
+ key: "disconnectSocket",
101
+ value: function disconnectSocket() {
102
+ if (this.socket) {
103
+ this.socket.disconnect();
104
+ }
105
+ }
111
106
  }, {
112
107
  key: "canRetryRequest",
113
108
  value: function canRetryRequest(error) {
@@ -115,28 +110,24 @@ var ApiClient = /*#__PURE__*/function () {
115
110
  if (_axiosRetry["default"].isNetworkError(error)) {
116
111
  return true;
117
112
  }
118
-
119
113
  if (!error.response) {
120
114
  // Cannot determine if the request can be retried
121
115
  return false;
122
- } // Retry Server Errors (5xx).
123
-
116
+ }
124
117
 
118
+ // Retry Server Errors (5xx).
125
119
  if (error.response.status >= 500 && error.response.status <= 599) {
126
120
  return true;
127
- } // Retry if rate limited.
128
-
121
+ }
129
122
 
123
+ // Retry if rate limited.
130
124
  if (error.response.status === 429) {
131
125
  return true;
132
126
  }
133
-
134
127
  return false;
135
128
  }
136
129
  }]);
137
130
  return ApiClient;
138
131
  }();
139
-
140
- var _default = ApiClient;
141
- exports["default"] = _default;
132
+ var _default = exports["default"] = ApiClient;
142
133
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api.ts"],"names":["ApiClient","options","host","apiKey","userToken","axiosClient","axios","create","baseURL","headers","Accept","Authorization","window","socket","Socket","replace","params","user_token","api_key","retries","retryCondition","canRetryRequest","retryDelay","axiosRetry","exponentialDelay","req","result","statusCode","status","body","data","error","undefined","console","isNetworkError","response"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;IAkBMA,S;AAQJ,qBAAYC,OAAZ,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACrC,SAAKC,IAAL,GAAYD,OAAO,CAACC,IAApB;AACA,SAAKC,MAAL,GAAcF,OAAO,CAACE,MAAtB;AACA,SAAKC,SAAL,GAAiBH,OAAO,CAACG,SAAR,IAAqB,IAAtC,CAHqC,CAKrC;;AACA,SAAKC,WAAL,GAAmBC,kBAAMC,MAAN,CAAa;AAC9BC,MAAAA,OAAO,EAAE,KAAKN,IADgB;AAE9BO,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE,kBADD;AAEP,wBAAgB,kBAFT;AAGPC,QAAAA,aAAa,mBAAY,KAAKR,MAAjB,CAHN;AAIP,8BAAsB,KAAKC;AAJpB;AAFqB,KAAb,CAAnB;;AAUA,QAAI,OAAOQ,MAAP,KAAkB,WAAtB,EAAmC;AACjC,WAAKC,MAAL,GAAc,IAAIC,eAAJ,WAAc,KAAKZ,IAAL,CAAUa,OAAV,CAAkB,MAAlB,EAA0B,IAA1B,CAAd,aAAuD;AACnEC,QAAAA,MAAM,EAAE;AACNC,UAAAA,UAAU,EAAE,KAAKb,SADX;AAENc,UAAAA,OAAO,EAAE,KAAKf;AAFR;AAD2D,OAAvD,CAAd;AAMD;;AAED,gCAAW,KAAKE,WAAhB,EAA6B;AAC3Bc,MAAAA,OAAO,EAAE,CADkB;AAE3BC,MAAAA,cAAc,EAAE,KAAKC,eAFM;AAG3BC,MAAAA,UAAU,EAAEC,uBAAWC;AAHI,KAA7B;AAKD;;;;;uGAED,iBAAkBC,GAAlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEyB,KAAKpB,WAAL,CAAiBoB,GAAjB,CAFzB;;AAAA;AAEUC,gBAAAA,MAFV;AAAA,iDAIW;AACLC,kBAAAA,UAAU,EAAED,MAAM,CAACE,MAAP,GAAgB,GAAhB,GAAsB,IAAtB,GAA6B,OADpC;AAELC,kBAAAA,IAAI,EAAEH,MAAM,CAACI,IAFR;AAGLC,kBAAAA,KAAK,EAAEC,SAHF;AAILJ,kBAAAA,MAAM,EAAEF,MAAM,CAACE;AAJV,iBAJX;;AAAA;AAAA;AAAA;AAaIK,gBAAAA,OAAO,CAACF,KAAR;AAbJ,iDAeW;AACLJ,kBAAAA,UAAU,EAAE,OADP;AAELC,kBAAAA,MAAM,EAAE,GAFH;AAGLC,kBAAAA,IAAI,EAAEG,SAHD;AAILD,kBAAAA,KAAK;AAJA,iBAfX;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAwBA,yBAAwBA,KAAxB,EAA2C;AACzC;AACA,UAAIR,uBAAWW,cAAX,CAA0BH,KAA1B,CAAJ,EAAsC;AACpC,eAAO,IAAP;AACD;;AAED,UAAI,CAACA,KAAK,CAACI,QAAX,EAAqB;AACnB;AACA,eAAO,KAAP;AACD,OATwC,CAWzC;;;AACA,UAAIJ,KAAK,CAACI,QAAN,CAAeP,MAAf,IAAyB,GAAzB,IAAgCG,KAAK,CAACI,QAAN,CAAeP,MAAf,IAAyB,GAA7D,EAAkE;AAChE,eAAO,IAAP;AACD,OAdwC,CAgBzC;;;AACA,UAAIG,KAAK,CAACI,QAAN,CAAeP,MAAf,KAA0B,GAA9B,EAAmC;AACjC,eAAO,IAAP;AACD;;AAED,aAAO,KAAP;AACD;;;;;eAGY5B,S","sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig } from \"axios\";\nimport axiosRetry from \"axios-retry\";\nimport { Socket } from \"phoenix\";\nimport { AxiosError } from \"axios\";\n\ntype ApiClientOptions = {\n host: string;\n apiKey: string;\n userToken: string | undefined;\n};\n\nexport interface ApiResponse {\n // eslint-disable-next-line\n error?: any;\n // eslint-disable-next-line\n body?: any;\n statusCode: \"ok\" | \"error\";\n status: number;\n}\n\nclass ApiClient {\n private host: string;\n private apiKey: string;\n private userToken: string | null;\n private axiosClient: AxiosInstance;\n\n public socket: Socket | undefined;\n\n constructor(options: ApiClientOptions) {\n this.host = options.host;\n this.apiKey = options.apiKey;\n this.userToken = options.userToken || null;\n\n // Create a retryable axios client\n this.axiosClient = axios.create({\n baseURL: this.host,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n \"X-Knock-User-Token\": this.userToken,\n },\n });\n\n if (typeof window !== \"undefined\") {\n this.socket = new Socket(`${this.host.replace(\"http\", \"ws\")}/ws/v1`, {\n params: {\n user_token: this.userToken,\n api_key: this.apiKey,\n },\n });\n }\n\n axiosRetry(this.axiosClient, {\n retries: 3,\n retryCondition: this.canRetryRequest,\n retryDelay: axiosRetry.exponentialDelay,\n });\n }\n\n async makeRequest(req: AxiosRequestConfig): Promise<ApiResponse> {\n try {\n const result = await this.axiosClient(req);\n\n return {\n statusCode: result.status < 300 ? \"ok\" : \"error\",\n body: result.data,\n error: undefined,\n status: result.status,\n };\n\n // eslint:disable-next-line\n } catch (e: unknown) {\n console.error(e);\n\n return {\n statusCode: \"error\",\n status: 500,\n body: undefined,\n error: e,\n };\n }\n }\n\n private canRetryRequest(error: AxiosError) {\n // Retry Network Errors.\n if (axiosRetry.isNetworkError(error)) {\n return true;\n }\n\n if (!error.response) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n // Retry Server Errors (5xx).\n if (error.response.status >= 500 && error.response.status <= 599) {\n return true;\n }\n\n // Retry if rate limited.\n if (error.response.status === 429) {\n return true;\n }\n\n return false;\n }\n}\n\nexport default ApiClient;\n"],"file":"api.js"}
1
+ {"version":3,"file":"api.js","names":["_axios","_interopRequireDefault","require","_axiosRetry","_phoenix","ApiClient","options","_classCallCheck2","_defineProperty2","host","apiKey","userToken","axiosClient","axios","create","baseURL","headers","Accept","Authorization","concat","window","socket","Socket","replace","params","user_token","api_key","axiosRetry","retries","retryCondition","canRetryRequest","retryDelay","exponentialDelay","_createClass2","key","value","_makeRequest","_asyncToGenerator2","_regenerator","mark","_callee","req","result","wrap","_callee$","_context","prev","next","sent","abrupt","statusCode","status","body","data","error","undefined","t0","console","stop","makeRequest","_x","apply","arguments","reconnectSocket","isConnected","connect","disconnectSocket","disconnect","isNetworkError","response","_default","exports"],"sources":["../../src/api.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig } from \"axios\";\nimport axiosRetry from \"axios-retry\";\nimport { Socket } from \"phoenix\";\nimport { AxiosError } from \"axios\";\n\ntype ApiClientOptions = {\n host: string;\n apiKey: string;\n userToken: string | undefined;\n};\n\nexport interface ApiResponse {\n // eslint-disable-next-line\n error?: any;\n // eslint-disable-next-line\n body?: any;\n statusCode: \"ok\" | \"error\";\n status: number;\n}\n\nclass ApiClient {\n private host: string;\n private apiKey: string;\n private userToken: string | null;\n private axiosClient: AxiosInstance;\n\n public socket: Socket | undefined;\n\n constructor(options: ApiClientOptions) {\n this.host = options.host;\n this.apiKey = options.apiKey;\n this.userToken = options.userToken || null;\n\n // Create a retryable axios client\n this.axiosClient = axios.create({\n baseURL: this.host,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n \"X-Knock-User-Token\": this.userToken,\n },\n });\n\n if (typeof window !== \"undefined\") {\n this.socket = new Socket(`${this.host.replace(\"http\", \"ws\")}/ws/v1`, {\n params: {\n user_token: this.userToken,\n api_key: this.apiKey,\n },\n });\n }\n\n axiosRetry(this.axiosClient, {\n retries: 3,\n retryCondition: this.canRetryRequest,\n retryDelay: axiosRetry.exponentialDelay,\n });\n }\n\n async makeRequest(req: AxiosRequestConfig): Promise<ApiResponse> {\n try {\n const result = await this.axiosClient(req);\n\n return {\n statusCode: result.status < 300 ? \"ok\" : \"error\",\n body: result.data,\n error: undefined,\n status: result.status,\n };\n\n // eslint:disable-next-line\n } catch (e: unknown) {\n console.error(e);\n\n return {\n statusCode: \"error\",\n status: 500,\n body: undefined,\n error: e,\n };\n }\n }\n\n reconnectSocket() {\n if (this.socket && !this.socket.isConnected()) {\n this.socket.connect();\n }\n }\n\n disconnectSocket() {\n if (this.socket) {\n this.socket.disconnect();\n }\n }\n\n private canRetryRequest(error: AxiosError) {\n // Retry Network Errors.\n if (axiosRetry.isNetworkError(error)) {\n return true;\n }\n\n if (!error.response) {\n // Cannot determine if the request can be retried\n return false;\n }\n\n // Retry Server Errors (5xx).\n if (error.response.status >= 500 && error.response.status <= 599) {\n return true;\n }\n\n // Retry if rate limited.\n if (error.response.status === 429) {\n return true;\n }\n\n return false;\n }\n}\n\nexport default ApiClient;\n"],"mappings":"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"}