roboto-js 1.3.2 → 1.3.4

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.
@@ -38,7 +38,8 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
38
38
  var Roboto = exports["default"] = /*#__PURE__*/function () {
39
39
  function Roboto(_ref) {
40
40
  var host = _ref.host,
41
- apiKey = _ref.apiKey;
41
+ apiKey = _ref.apiKey,
42
+ localStorageAdaptor = _ref.localStorageAdaptor;
42
43
  var proxyReq = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
43
44
  _classCallCheck(this, Roboto);
44
45
  if (Roboto.instance && !proxyReq) {
@@ -50,7 +51,9 @@ var Roboto = exports["default"] = /*#__PURE__*/function () {
50
51
  this.config = {
51
52
  apiKey: apiKey,
52
53
  // Use passed apiKey
53
- baseUrl: "https://".concat(host) // Use passed host
54
+ baseUrl: "https://".concat(host),
55
+ // Use passed host
56
+ localStorageAdaptor: localStorageAdaptor
54
57
  };
55
58
 
56
59
  // DEVELOPMENT
@@ -28,31 +28,78 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
28
28
  function RbtApi(_ref) {
29
29
  var apiKey = _ref.apiKey,
30
30
  baseUrl = _ref.baseUrl,
31
- authtoken = _ref.authtoken,
32
- accesskey = _ref.accesskey;
31
+ _ref$authtoken = _ref.authtoken,
32
+ authtoken = _ref$authtoken === void 0 ? null : _ref$authtoken,
33
+ _ref$accesskey = _ref.accesskey,
34
+ accesskey = _ref$accesskey === void 0 ? null : _ref$accesskey,
35
+ _ref$localStorageAdap = _ref.localStorageAdaptor,
36
+ localStorageAdaptor = _ref$localStorageAdap === void 0 ? null : _ref$localStorageAdap;
33
37
  _classCallCheck(this, RbtApi);
34
- var isClient = typeof window !== 'undefined';
35
- var authTokenToUse = isClient && !authtoken ? localStorage.getItem('authtoken') : authtoken;
36
38
  this.axios = _axios["default"].create({
37
39
  baseURL: baseUrl,
38
40
  headers: {
39
- 'accesskey': accesskey || apiKey,
40
- 'authtoken': authTokenToUse
41
+ 'accesskey': accesskey || apiKey
42
+ //'authtoken': authTokenToUse
41
43
  }
42
44
  });
45
+ if (localStorageAdaptor) {
46
+ // must implement getItem, setItem interface
47
+ this.localStorageAdaptor = localStorageAdaptor;
48
+ } else if (typeof localStorage != 'undefined') {
49
+ // browser based local storage
50
+ this.localStorageAdaptor = {
51
+ getItem: function getItem(key) {
52
+ return Promise.resolve(localStorage.getItem(key));
53
+ },
54
+ setItem: function setItem(key, value) {
55
+ return Promise.resolve(localStorage.setItem(key, value));
56
+ }
57
+ };
58
+ }
43
59
  this.localDb = null;
44
60
  this.iac_session = null;
45
- this.authtoken = authTokenToUse;
46
61
  this.appServiceHost = null;
62
+
63
+ // Use the storageAdaptor to get the authToken, if available
64
+ this.initAuthToken(authtoken);
47
65
  }
48
66
  _createClass(RbtApi, [{
49
- key: "initLocalDb",
67
+ key: "initAuthToken",
50
68
  value: function () {
51
- var _initLocalDb = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
69
+ var _initAuthToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(authtoken) {
52
70
  return _regeneratorRuntime().wrap(function _callee$(_context) {
53
71
  while (1) switch (_context.prev = _context.next) {
54
72
  case 0:
55
- _context.next = 2;
73
+ if (!(!authtoken && this.localStorageAdaptor)) {
74
+ _context.next = 4;
75
+ break;
76
+ }
77
+ _context.next = 3;
78
+ return this.localStorageAdaptor.getItem('authtoken');
79
+ case 3:
80
+ authtoken = _context.sent;
81
+ case 4:
82
+ this.authtoken = authtoken;
83
+ this.axios.defaults.headers.common['authtoken'] = this.authtoken;
84
+ case 6:
85
+ case "end":
86
+ return _context.stop();
87
+ }
88
+ }, _callee, this);
89
+ }));
90
+ function initAuthToken(_x) {
91
+ return _initAuthToken.apply(this, arguments);
92
+ }
93
+ return initAuthToken;
94
+ }()
95
+ }, {
96
+ key: "initLocalDb",
97
+ value: function () {
98
+ var _initLocalDb = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
99
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
100
+ while (1) switch (_context2.prev = _context2.next) {
101
+ case 0:
102
+ _context2.next = 2;
56
103
  return (0, _idb.openDB)('RBTFileDatabase', 1, {
57
104
  upgrade: function upgrade(db) {
58
105
  if (!db.objectStoreNames.contains('files')) {
@@ -63,12 +110,12 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
63
110
  }
64
111
  });
65
112
  case 2:
66
- this.localDb = _context.sent;
113
+ this.localDb = _context2.sent;
67
114
  case 3:
68
115
  case "end":
69
- return _context.stop();
116
+ return _context2.stop();
70
117
  }
71
- }, _callee, this);
118
+ }, _callee2, this);
72
119
  }));
73
120
  function initLocalDb() {
74
121
  return _initLocalDb.apply(this, arguments);
@@ -93,26 +140,26 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
93
140
  }, {
94
141
  key: "login",
95
142
  value: (function () {
96
- var _login = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params) {
143
+ var _login = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(params) {
97
144
  var hash_password, response;
98
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
99
- while (1) switch (_context2.prev = _context2.next) {
145
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
146
+ while (1) switch (_context3.prev = _context3.next) {
100
147
  case 0:
101
- _context2.prev = 0;
148
+ _context3.prev = 0;
102
149
  // create a md5 hash of the password using crypto-js
103
150
  hash_password = _cryptoJs["default"].MD5(params.password).toString(_cryptoJs["default"].enc.Hex);
104
- _context2.next = 4;
151
+ _context3.next = 4;
105
152
  return this.axios.post('/user_service/loginUser', [{
106
153
  email: params.email,
107
154
  password: hash_password
108
155
  }]);
109
156
  case 4:
110
- response = _context2.sent;
157
+ response = _context3.sent;
111
158
  if (!(response.data.ok === false)) {
112
- _context2.next = 7;
159
+ _context3.next = 7;
113
160
  break;
114
161
  }
115
- return _context2.abrupt("return", this._handleError(response));
162
+ return _context3.abrupt("return", this._handleError(response));
116
163
  case 7:
117
164
  this.iac_session = response.data;
118
165
  this.currentUser = this.iac_session ? new _rbt_user["default"](this.iac_session.user, this.axios) : null;
@@ -121,18 +168,18 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
121
168
  if (typeof localStorage != 'undefined') {
122
169
  localStorage.setItem('authtoken', response.data.authToken);
123
170
  }
124
- return _context2.abrupt("return", response.data);
171
+ return _context3.abrupt("return", response.data);
125
172
  case 14:
126
- _context2.prev = 14;
127
- _context2.t0 = _context2["catch"](0);
128
- this._handleError(_context2.t0);
173
+ _context3.prev = 14;
174
+ _context3.t0 = _context3["catch"](0);
175
+ this._handleError(_context3.t0);
129
176
  case 17:
130
177
  case "end":
131
- return _context2.stop();
178
+ return _context3.stop();
132
179
  }
133
- }, _callee2, this, [[0, 14]]);
180
+ }, _callee3, this, [[0, 14]]);
134
181
  }));
135
- function login(_x) {
182
+ function login(_x2) {
136
183
  return _login.apply(this, arguments);
137
184
  }
138
185
  return login;
@@ -140,21 +187,21 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
140
187
  }, {
141
188
  key: "logout",
142
189
  value: function () {
143
- var _logout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
190
+ var _logout = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
144
191
  var response;
145
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
146
- while (1) switch (_context3.prev = _context3.next) {
192
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
193
+ while (1) switch (_context4.prev = _context4.next) {
147
194
  case 0:
148
- _context3.prev = 0;
149
- _context3.next = 3;
195
+ _context4.prev = 0;
196
+ _context4.next = 3;
150
197
  return this.axios.post('/user_service/logoutUser');
151
198
  case 3:
152
- response = _context3.sent;
199
+ response = _context4.sent;
153
200
  if (!(response.data.ok === false)) {
154
- _context3.next = 6;
201
+ _context4.next = 6;
155
202
  break;
156
203
  }
157
- return _context3.abrupt("return", this._handleError(response));
204
+ return _context4.abrupt("return", this._handleError(response));
158
205
  case 6:
159
206
  // Clear the iac_session and remove the auth token from axios headers
160
207
  this.iac_session = null;
@@ -169,16 +216,16 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
169
216
  }
170
217
 
171
218
  // Return some kind of success response or the response from the server
172
- return _context3.abrupt("return", response.data);
219
+ return _context4.abrupt("return", response.data);
173
220
  case 13:
174
- _context3.prev = 13;
175
- _context3.t0 = _context3["catch"](0);
176
- this._handleError(_context3.t0);
221
+ _context4.prev = 13;
222
+ _context4.t0 = _context4["catch"](0);
223
+ this._handleError(_context4.t0);
177
224
  case 16:
178
225
  case "end":
179
- return _context3.stop();
226
+ return _context4.stop();
180
227
  }
181
- }, _callee3, this, [[0, 13]]);
228
+ }, _callee4, this, [[0, 13]]);
182
229
  }));
183
230
  function logout() {
184
231
  return _logout.apply(this, arguments);
@@ -188,43 +235,43 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
188
235
  }, {
189
236
  key: "loadCurrentUser",
190
237
  value: function () {
191
- var _loadCurrentUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
238
+ var _loadCurrentUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
192
239
  var response;
193
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
194
- while (1) switch (_context4.prev = _context4.next) {
240
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
241
+ while (1) switch (_context5.prev = _context5.next) {
195
242
  case 0:
196
- _context4.prev = 0;
243
+ _context5.prev = 0;
197
244
  if (!this.currentUser) {
198
- _context4.next = 3;
245
+ _context5.next = 3;
199
246
  break;
200
247
  }
201
- return _context4.abrupt("return", this.currentUser);
248
+ return _context5.abrupt("return", this.currentUser);
202
249
  case 3:
203
250
  if (!this.authtoken) {
204
- _context4.next = 10;
251
+ _context5.next = 10;
205
252
  break;
206
253
  }
207
- _context4.next = 6;
254
+ _context5.next = 6;
208
255
  return this.refreshAuthToken(this.authtoken);
209
256
  case 6:
210
- response = _context4.sent;
257
+ response = _context5.sent;
211
258
  this.currentUser = new _rbt_user["default"]({
212
259
  id: response.user.id
213
260
  }, this.axios);
214
261
  this.currentUser.setData(response.user);
215
- return _context4.abrupt("return", this.currentUser);
262
+ return _context5.abrupt("return", this.currentUser);
216
263
  case 10:
217
264
  this.currentUser = null;
218
- return _context4.abrupt("return", null);
265
+ return _context5.abrupt("return", null);
219
266
  case 14:
220
- _context4.prev = 14;
221
- _context4.t0 = _context4["catch"](0);
222
- return _context4.abrupt("return", this._handleError(_context4.t0));
267
+ _context5.prev = 14;
268
+ _context5.t0 = _context5["catch"](0);
269
+ return _context5.abrupt("return", this._handleError(_context5.t0));
223
270
  case 17:
224
271
  case "end":
225
- return _context4.stop();
272
+ return _context5.stop();
226
273
  }
227
- }, _callee4, this, [[0, 14]]);
274
+ }, _callee5, this, [[0, 14]]);
228
275
  }));
229
276
  function loadCurrentUser() {
230
277
  return _loadCurrentUser.apply(this, arguments);
@@ -234,37 +281,37 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
234
281
  }, {
235
282
  key: "confirmUserEmail",
236
283
  value: function () {
237
- var _confirmUserEmail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(confirmCode) {
284
+ var _confirmUserEmail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(confirmCode) {
238
285
  var params, response;
239
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
240
- while (1) switch (_context5.prev = _context5.next) {
286
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
287
+ while (1) switch (_context6.prev = _context6.next) {
241
288
  case 0:
242
289
  params = {
243
290
  emailConfirmCode: confirmCode
244
291
  };
245
- _context5.prev = 1;
246
- _context5.next = 4;
292
+ _context6.prev = 1;
293
+ _context6.next = 4;
247
294
  return this.axios.post('/user_service/confirmUserEmail', [params]);
248
295
  case 4:
249
- response = _context5.sent;
296
+ response = _context6.sent;
250
297
  if (!(response.data.ok === false)) {
251
- _context5.next = 7;
298
+ _context6.next = 7;
252
299
  break;
253
300
  }
254
- return _context5.abrupt("return", this._handleError(response));
301
+ return _context6.abrupt("return", this._handleError(response));
255
302
  case 7:
256
- return _context5.abrupt("return", response.data);
303
+ return _context6.abrupt("return", response.data);
257
304
  case 10:
258
- _context5.prev = 10;
259
- _context5.t0 = _context5["catch"](1);
260
- return _context5.abrupt("return", this._handleError(_context5.t0));
305
+ _context6.prev = 10;
306
+ _context6.t0 = _context6["catch"](1);
307
+ return _context6.abrupt("return", this._handleError(_context6.t0));
261
308
  case 13:
262
309
  case "end":
263
- return _context5.stop();
310
+ return _context6.stop();
264
311
  }
265
- }, _callee5, this, [[1, 10]]);
312
+ }, _callee6, this, [[1, 10]]);
266
313
  }));
267
- function confirmUserEmail(_x2) {
314
+ function confirmUserEmail(_x3) {
268
315
  return _confirmUserEmail.apply(this, arguments);
269
316
  }
270
317
  return confirmUserEmail;
@@ -272,36 +319,36 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
272
319
  }, {
273
320
  key: "loadUser",
274
321
  value: function () {
275
- var _loadUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(userId) {
322
+ var _loadUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(userId) {
276
323
  var params, _response$data, response, userData, User;
277
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
278
- while (1) switch (_context6.prev = _context6.next) {
324
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
325
+ while (1) switch (_context7.prev = _context7.next) {
279
326
  case 0:
280
327
  params = {
281
328
  id: userId
282
329
  };
283
- _context6.prev = 1;
284
- _context6.next = 4;
330
+ _context7.prev = 1;
331
+ _context7.next = 4;
285
332
  return this.axios.post('/user_service/loadUser', [params]);
286
333
  case 4:
287
- response = _context6.sent;
334
+ response = _context7.sent;
288
335
  userData = response === null || response === void 0 || (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.user;
289
336
  User = new _rbt_user["default"]({
290
337
  id: userData.id
291
338
  }, this.axios);
292
339
  User.setData(userData);
293
- return _context6.abrupt("return", User);
340
+ return _context7.abrupt("return", User);
294
341
  case 11:
295
- _context6.prev = 11;
296
- _context6.t0 = _context6["catch"](1);
297
- return _context6.abrupt("return", this._handleError(_context6.t0));
342
+ _context7.prev = 11;
343
+ _context7.t0 = _context7["catch"](1);
344
+ return _context7.abrupt("return", this._handleError(_context7.t0));
298
345
  case 14:
299
346
  case "end":
300
- return _context6.stop();
347
+ return _context7.stop();
301
348
  }
302
- }, _callee6, this, [[1, 11]]);
349
+ }, _callee7, this, [[1, 11]]);
303
350
  }));
304
- function loadUser(_x3) {
351
+ function loadUser(_x4) {
305
352
  return _loadUser.apply(this, arguments);
306
353
  }
307
354
  return loadUser;
@@ -309,29 +356,29 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
309
356
  }, {
310
357
  key: "refreshAuthToken",
311
358
  value: function () {
312
- var _refreshAuthToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(authtoken) {
359
+ var _refreshAuthToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(authtoken) {
313
360
  var response;
314
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
315
- while (1) switch (_context7.prev = _context7.next) {
361
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
362
+ while (1) switch (_context8.prev = _context8.next) {
316
363
  case 0:
317
- _context7.prev = 0;
318
- _context7.next = 3;
364
+ _context8.prev = 0;
365
+ _context8.next = 3;
319
366
  return this.axios.post('/user_service/refreshAuthToken', [authtoken]);
320
367
  case 3:
321
- response = _context7.sent;
368
+ response = _context8.sent;
322
369
  debugger;
323
- return _context7.abrupt("return", response.data);
370
+ return _context8.abrupt("return", response.data);
324
371
  case 8:
325
- _context7.prev = 8;
326
- _context7.t0 = _context7["catch"](0);
327
- this._handleError(_context7.t0);
372
+ _context8.prev = 8;
373
+ _context8.t0 = _context8["catch"](0);
374
+ this._handleError(_context8.t0);
328
375
  case 11:
329
376
  case "end":
330
- return _context7.stop();
377
+ return _context8.stop();
331
378
  }
332
- }, _callee7, this, [[0, 8]]);
379
+ }, _callee8, this, [[0, 8]]);
333
380
  }));
334
- function refreshAuthToken(_x4) {
381
+ function refreshAuthToken(_x5) {
335
382
  return _refreshAuthToken.apply(this, arguments);
336
383
  }
337
384
  return refreshAuthToken;
@@ -346,32 +393,32 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
346
393
  }, {
347
394
  key: "registerUser",
348
395
  value: (function () {
349
- var _registerUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
396
+ var _registerUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
350
397
  var dataHash,
351
398
  response,
352
399
  record,
353
- _args8 = arguments;
354
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
355
- while (1) switch (_context8.prev = _context8.next) {
400
+ _args9 = arguments;
401
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
402
+ while (1) switch (_context9.prev = _context9.next) {
356
403
  case 0:
357
- dataHash = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {};
358
- _context8.prev = 1;
359
- _context8.next = 4;
404
+ dataHash = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {};
405
+ _context9.prev = 1;
406
+ _context9.next = 4;
360
407
  return this.axios.post('/user_service/registerUser', [dataHash]);
361
408
  case 4:
362
- response = _context8.sent;
409
+ response = _context9.sent;
363
410
  record = response.data;
364
- return _context8.abrupt("return", new _rbt_user["default"](record, this.axios));
411
+ return _context9.abrupt("return", new _rbt_user["default"](record, this.axios));
365
412
  case 9:
366
- _context8.prev = 9;
367
- _context8.t0 = _context8["catch"](1);
413
+ _context9.prev = 9;
414
+ _context9.t0 = _context9["catch"](1);
368
415
  debugger;
369
- return _context8.abrupt("return", this._handleError(_context8.t0));
416
+ return _context9.abrupt("return", this._handleError(_context9.t0));
370
417
  case 13:
371
418
  case "end":
372
- return _context8.stop();
419
+ return _context9.stop();
373
420
  }
374
- }, _callee8, this, [[1, 9]]);
421
+ }, _callee9, this, [[1, 9]]);
375
422
  }));
376
423
  function registerUser() {
377
424
  return _registerUser.apply(this, arguments);
@@ -389,32 +436,32 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
389
436
  }, {
390
437
  key: "createFile",
391
438
  value: (function () {
392
- var _createFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(dataHash) {
439
+ var _createFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(dataHash) {
393
440
  var response, record;
394
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
395
- while (1) switch (_context9.prev = _context9.next) {
441
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
442
+ while (1) switch (_context10.prev = _context10.next) {
396
443
  case 0:
397
- _context9.prev = 0;
398
- _context9.next = 3;
444
+ _context10.prev = 0;
445
+ _context10.next = 3;
399
446
  return this.axios.post('/object_service/createObject', ['<@filekit.file>', dataHash]);
400
447
  case 3:
401
- response = _context9.sent;
448
+ response = _context10.sent;
402
449
  record = response.data;
403
450
  if (dataHash) {
404
451
  record.data = dataHash;
405
452
  }
406
- return _context9.abrupt("return", new _rbt_file["default"](record, this.axios, this.localDb));
453
+ return _context10.abrupt("return", new _rbt_file["default"](record, this.axios, this.localDb));
407
454
  case 9:
408
- _context9.prev = 9;
409
- _context9.t0 = _context9["catch"](0);
410
- return _context9.abrupt("return", this._handleError(_context9.t0));
455
+ _context10.prev = 9;
456
+ _context10.t0 = _context10["catch"](0);
457
+ return _context10.abrupt("return", this._handleError(_context10.t0));
411
458
  case 12:
412
459
  case "end":
413
- return _context9.stop();
460
+ return _context10.stop();
414
461
  }
415
- }, _callee9, this, [[0, 9]]);
462
+ }, _callee10, this, [[0, 9]]);
416
463
  }));
417
- function createFile(_x5) {
464
+ function createFile(_x6) {
418
465
  return _createFile.apply(this, arguments);
419
466
  }
420
467
  return createFile;
@@ -430,38 +477,38 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
430
477
  }, {
431
478
  key: "create",
432
479
  value: (function () {
433
- var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(type) {
480
+ var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(type) {
434
481
  var dataHash,
435
482
  response,
436
483
  record,
437
- _args10 = arguments;
438
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
439
- while (1) switch (_context10.prev = _context10.next) {
484
+ _args11 = arguments;
485
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
486
+ while (1) switch (_context11.prev = _context11.next) {
440
487
  case 0:
441
- dataHash = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : {};
442
- _context10.prev = 1;
443
- _context10.next = 4;
488
+ dataHash = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {};
489
+ _context11.prev = 1;
490
+ _context11.next = 4;
444
491
  return this.axios.post('/object_service/createObject', [type, dataHash]);
445
492
  case 4:
446
- response = _context10.sent;
493
+ response = _context11.sent;
447
494
  record = response.data;
448
495
  if (dataHash) {
449
496
  record.data = dataHash;
450
497
  }
451
- return _context10.abrupt("return", new _rbt_object["default"](record, this.axios, {
498
+ return _context11.abrupt("return", new _rbt_object["default"](record, this.axios, {
452
499
  isNew: true
453
500
  }));
454
501
  case 10:
455
- _context10.prev = 10;
456
- _context10.t0 = _context10["catch"](1);
457
- return _context10.abrupt("return", this._handleError(_context10.t0));
502
+ _context11.prev = 10;
503
+ _context11.t0 = _context11["catch"](1);
504
+ return _context11.abrupt("return", this._handleError(_context11.t0));
458
505
  case 13:
459
506
  case "end":
460
- return _context10.stop();
507
+ return _context11.stop();
461
508
  }
462
- }, _callee10, this, [[1, 10]]);
509
+ }, _callee11, this, [[1, 10]]);
463
510
  }));
464
- function create(_x6) {
511
+ function create(_x7) {
465
512
  return _create.apply(this, arguments);
466
513
  }
467
514
  return create;
@@ -498,19 +545,19 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
498
545
  }, {
499
546
  key: "query",
500
547
  value: (function () {
501
- var _query = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(type) {
548
+ var _query = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(type) {
502
549
  var _this = this;
503
550
  var params,
504
551
  defaultOrderBy,
505
552
  defaultLimit,
506
553
  mergedParams,
507
554
  response,
508
- _args11 = arguments;
509
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
510
- while (1) switch (_context11.prev = _context11.next) {
555
+ _args12 = arguments;
556
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
557
+ while (1) switch (_context12.prev = _context12.next) {
511
558
  case 0:
512
- params = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : {};
513
- _context11.prev = 1;
559
+ params = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : {};
560
+ _context12.prev = 1;
514
561
  params.type = type;
515
562
 
516
563
  // Default ordering and pagination
@@ -527,15 +574,15 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
527
574
  }
528
575
  }; // Merge defaults with provided params
529
576
  mergedParams = _objectSpread(_objectSpread(_objectSpread({}, defaultOrderBy), defaultLimit), params);
530
- _context11.next = 8;
577
+ _context12.next = 8;
531
578
  return this.axios.post('/object_service/queryObjects', [mergedParams]);
532
579
  case 8:
533
- response = _context11.sent;
580
+ response = _context12.sent;
534
581
  if (!(response.data.ok === false)) {
535
- _context11.next = 11;
582
+ _context12.next = 11;
536
583
  break;
537
584
  }
538
- return _context11.abrupt("return", this._handleError(response));
585
+ return _context12.abrupt("return", this._handleError(response));
539
586
  case 11:
540
587
  // Process items into RbtObject instances
541
588
  if (Array.isArray(response.data.items)) {
@@ -545,18 +592,18 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
545
592
  });
546
593
  });
547
594
  }
548
- return _context11.abrupt("return", response.data.items);
595
+ return _context12.abrupt("return", response.data.items);
549
596
  case 15:
550
- _context11.prev = 15;
551
- _context11.t0 = _context11["catch"](1);
552
- return _context11.abrupt("return", this._handleError(_context11.t0));
597
+ _context12.prev = 15;
598
+ _context12.t0 = _context12["catch"](1);
599
+ return _context12.abrupt("return", this._handleError(_context12.t0));
553
600
  case 18:
554
601
  case "end":
555
- return _context11.stop();
602
+ return _context12.stop();
556
603
  }
557
- }, _callee11, this, [[1, 15]]);
604
+ }, _callee12, this, [[1, 15]]);
558
605
  }));
559
- function query(_x7) {
606
+ function query(_x8) {
560
607
  return _query.apply(this, arguments);
561
608
  }
562
609
  return query;
@@ -573,47 +620,47 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
573
620
  }, {
574
621
  key: "load",
575
622
  value: (function () {
576
- var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(type, ids) {
623
+ var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(type, ids) {
577
624
  var params,
578
625
  mergedParams,
579
626
  res,
580
- _args12 = arguments;
581
- return _regeneratorRuntime().wrap(function _callee12$(_context12) {
582
- while (1) switch (_context12.prev = _context12.next) {
627
+ _args13 = arguments;
628
+ return _regeneratorRuntime().wrap(function _callee13$(_context13) {
629
+ while (1) switch (_context13.prev = _context13.next) {
583
630
  case 0:
584
- params = _args12.length > 2 && _args12[2] !== undefined ? _args12[2] : {};
585
- _context12.prev = 1;
631
+ params = _args13.length > 2 && _args13[2] !== undefined ? _args13[2] : {};
632
+ _context13.prev = 1;
586
633
  if (!Array.isArray(ids)) {
587
- _context12.next = 7;
634
+ _context13.next = 7;
588
635
  break;
589
636
  }
590
637
  mergedParams = _objectSpread(_objectSpread({}, params), {}, {
591
638
  where: "id IN (" + ids.join(',') + ")"
592
639
  });
593
- return _context12.abrupt("return", this.query(type, mergedParams));
640
+ return _context13.abrupt("return", this.query(type, mergedParams));
594
641
  case 7:
595
642
  mergedParams = _objectSpread(_objectSpread({}, params), {}, {
596
643
  where: "id=" + ids
597
644
  });
598
- _context12.next = 10;
645
+ _context13.next = 10;
599
646
  return this.query(type, mergedParams);
600
647
  case 10:
601
- res = _context12.sent;
602
- return _context12.abrupt("return", res[0]);
648
+ res = _context13.sent;
649
+ return _context13.abrupt("return", res[0]);
603
650
  case 12:
604
- _context12.next = 17;
651
+ _context13.next = 17;
605
652
  break;
606
653
  case 14:
607
- _context12.prev = 14;
608
- _context12.t0 = _context12["catch"](1);
609
- return _context12.abrupt("return", this._handleError(_context12.t0));
654
+ _context13.prev = 14;
655
+ _context13.t0 = _context13["catch"](1);
656
+ return _context13.abrupt("return", this._handleError(_context13.t0));
610
657
  case 17:
611
658
  case "end":
612
- return _context12.stop();
659
+ return _context13.stop();
613
660
  }
614
- }, _callee12, this, [[1, 14]]);
661
+ }, _callee13, this, [[1, 14]]);
615
662
  }));
616
- function load(_x8, _x9) {
663
+ function load(_x9, _x10) {
617
664
  return _load.apply(this, arguments);
618
665
  }
619
666
  return load;
@@ -635,7 +682,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
635
682
  }, {
636
683
  key: "runTask",
637
684
  value: (function () {
638
- var _runTask = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13() {
685
+ var _runTask = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
639
686
  var params,
640
687
  callbacks,
641
688
  onProgress,
@@ -647,20 +694,20 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
647
694
  status,
648
695
  message,
649
696
  output,
650
- _args13 = arguments;
651
- return _regeneratorRuntime().wrap(function _callee13$(_context13) {
652
- while (1) switch (_context13.prev = _context13.next) {
697
+ _args14 = arguments;
698
+ return _regeneratorRuntime().wrap(function _callee14$(_context14) {
699
+ while (1) switch (_context14.prev = _context14.next) {
653
700
  case 0:
654
- params = _args13.length > 0 && _args13[0] !== undefined ? _args13[0] : {};
655
- callbacks = _args13.length > 1 && _args13[1] !== undefined ? _args13[1] : {};
701
+ params = _args14.length > 0 && _args14[0] !== undefined ? _args14[0] : {};
702
+ callbacks = _args14.length > 1 && _args14[1] !== undefined ? _args14[1] : {};
656
703
  onProgress = callbacks.onProgress, onError = callbacks.onError, onFinish = callbacks.onFinish;
657
- _context13.prev = 3;
658
- _context13.next = 6;
704
+ _context14.prev = 3;
705
+ _context14.next = 6;
659
706
  return this.post('/task_service/runChain', params);
660
707
  case 6:
661
- response = _context13.sent;
708
+ response = _context14.sent;
662
709
  if (response) {
663
- _context13.next = 9;
710
+ _context14.next = 9;
664
711
  break;
665
712
  }
666
713
  throw new Error('Invalid server response');
@@ -668,7 +715,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
668
715
  // Validate response structure
669
716
  ok = response.ok, jobId = response.jobId, status = response.status, message = response.message, output = response.output;
670
717
  if (!(!ok || typeof jobId !== 'string' || typeof status !== 'string')) {
671
- _context13.next = 12;
718
+ _context14.next = 12;
672
719
  break;
673
720
  }
674
721
  throw new Error('Invalid response structure');
@@ -686,7 +733,7 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
686
733
  console.log('Finish (request) ', response);
687
734
  onFinish(response);
688
735
  }
689
- return _context13.abrupt("return", {
736
+ return _context14.abrupt("return", {
690
737
  ok: ok,
691
738
  jobId: jobId,
692
739
  status: status,
@@ -694,24 +741,24 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
694
741
  output: output
695
742
  });
696
743
  case 18:
697
- _context13.prev = 18;
698
- _context13.t0 = _context13["catch"](3);
744
+ _context14.prev = 18;
745
+ _context14.t0 = _context14["catch"](3);
699
746
  if (typeof onError === 'function') {
700
- onError(_context13.t0);
747
+ onError(_context14.t0);
701
748
  } else {
702
- console.error('Error in runTask:', _context13.t0);
749
+ console.error('Error in runTask:', _context14.t0);
703
750
  }
704
- return _context13.abrupt("return", {
751
+ return _context14.abrupt("return", {
705
752
  ok: false,
706
753
  jobId: null,
707
754
  status: 'ERROR',
708
- error: _context13.t0.message
755
+ error: _context14.t0.message
709
756
  });
710
757
  case 22:
711
758
  case "end":
712
- return _context13.stop();
759
+ return _context14.stop();
713
760
  }
714
- }, _callee13, this, [[3, 18]]);
761
+ }, _callee14, this, [[3, 18]]);
715
762
  }));
716
763
  function runTask() {
717
764
  return _runTask.apply(this, arguments);
@@ -732,26 +779,26 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
732
779
  }, {
733
780
  key: "pollTaskProgress",
734
781
  value: (function () {
735
- var _pollTaskProgress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15(jobId, callbacks) {
782
+ var _pollTaskProgress = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(jobId, callbacks) {
736
783
  var _this2 = this;
737
784
  var onProgress, onError, onFinish, checkProgress;
738
- return _regeneratorRuntime().wrap(function _callee15$(_context15) {
739
- while (1) switch (_context15.prev = _context15.next) {
785
+ return _regeneratorRuntime().wrap(function _callee16$(_context16) {
786
+ while (1) switch (_context16.prev = _context16.next) {
740
787
  case 0:
741
788
  onProgress = callbacks.onProgress, onError = callbacks.onError, onFinish = callbacks.onFinish;
742
- _context15.prev = 1;
789
+ _context16.prev = 1;
743
790
  checkProgress = /*#__PURE__*/function () {
744
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14() {
791
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {
745
792
  var response;
746
- return _regeneratorRuntime().wrap(function _callee14$(_context14) {
747
- while (1) switch (_context14.prev = _context14.next) {
793
+ return _regeneratorRuntime().wrap(function _callee15$(_context15) {
794
+ while (1) switch (_context15.prev = _context15.next) {
748
795
  case 0:
749
- _context14.next = 2;
796
+ _context15.next = 2;
750
797
  return _this2.get("/task_service/pollChainProgress", {
751
798
  jobId: jobId
752
799
  });
753
800
  case 2:
754
- response = _context14.sent;
801
+ response = _context15.sent;
755
802
  // If the task is still in progress, start polling for updates
756
803
  if (response.status === 'DONE' && onFinish) {
757
804
  // Provide the current progress to the callback function
@@ -774,28 +821,28 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
774
821
  }
775
822
  case 7:
776
823
  case "end":
777
- return _context14.stop();
824
+ return _context15.stop();
778
825
  }
779
- }, _callee14);
826
+ }, _callee15);
780
827
  }));
781
828
  return function checkProgress() {
782
829
  return _ref2.apply(this, arguments);
783
830
  };
784
831
  }();
785
832
  checkProgress();
786
- _context15.next = 9;
833
+ _context16.next = 9;
787
834
  break;
788
835
  case 6:
789
- _context15.prev = 6;
790
- _context15.t0 = _context15["catch"](1);
791
- return _context15.abrupt("return", this._handleError(_context15.t0));
836
+ _context16.prev = 6;
837
+ _context16.t0 = _context16["catch"](1);
838
+ return _context16.abrupt("return", this._handleError(_context16.t0));
792
839
  case 9:
793
840
  case "end":
794
- return _context15.stop();
841
+ return _context16.stop();
795
842
  }
796
- }, _callee15, this, [[1, 6]]);
843
+ }, _callee16, this, [[1, 6]]);
797
844
  }));
798
- function pollTaskProgress(_x10, _x11) {
845
+ function pollTaskProgress(_x11, _x12) {
799
846
  return _pollTaskProgress.apply(this, arguments);
800
847
  }
801
848
  return pollTaskProgress;
@@ -815,46 +862,46 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
815
862
  }, {
816
863
  key: "get",
817
864
  value: (function () {
818
- var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee16(endpoint) {
865
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17(endpoint) {
819
866
  var params,
820
867
  headers,
821
868
  response,
822
- _args16 = arguments;
823
- return _regeneratorRuntime().wrap(function _callee16$(_context16) {
824
- while (1) switch (_context16.prev = _context16.next) {
869
+ _args17 = arguments;
870
+ return _regeneratorRuntime().wrap(function _callee17$(_context17) {
871
+ while (1) switch (_context17.prev = _context17.next) {
825
872
  case 0:
826
- params = _args16.length > 1 && _args16[1] !== undefined ? _args16[1] : {};
873
+ params = _args17.length > 1 && _args17[1] !== undefined ? _args17[1] : {};
827
874
  debugger;
828
- _context16.prev = 2;
875
+ _context17.prev = 2;
829
876
  // Add the authToken to the headers
830
877
  headers = {
831
878
  authtoken: this.authtoken
832
879
  }; // Make the GET request using Axios
833
- _context16.next = 6;
880
+ _context17.next = 6;
834
881
  return this.axios.get(endpoint, {
835
882
  params: params,
836
883
  headers: headers
837
884
  });
838
885
  case 6:
839
- response = _context16.sent;
886
+ response = _context17.sent;
840
887
  if (!(response.data.ok === false)) {
841
- _context16.next = 9;
888
+ _context17.next = 9;
842
889
  break;
843
890
  }
844
- return _context16.abrupt("return", this._handleError(response));
891
+ return _context17.abrupt("return", this._handleError(response));
845
892
  case 9:
846
- return _context16.abrupt("return", response.data);
893
+ return _context17.abrupt("return", response.data);
847
894
  case 12:
848
- _context16.prev = 12;
849
- _context16.t0 = _context16["catch"](2);
850
- return _context16.abrupt("return", this._handleError(_context16.t0));
895
+ _context17.prev = 12;
896
+ _context17.t0 = _context17["catch"](2);
897
+ return _context17.abrupt("return", this._handleError(_context17.t0));
851
898
  case 15:
852
899
  case "end":
853
- return _context16.stop();
900
+ return _context17.stop();
854
901
  }
855
- }, _callee16, this, [[2, 12]]);
902
+ }, _callee17, this, [[2, 12]]);
856
903
  }));
857
- function get(_x12) {
904
+ function get(_x13) {
858
905
  return _get.apply(this, arguments);
859
906
  }
860
907
  return get;
@@ -875,44 +922,44 @@ var RbtApi = exports["default"] = /*#__PURE__*/function () {
875
922
  }, {
876
923
  key: "post",
877
924
  value: (function () {
878
- var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee17(endpoint) {
925
+ var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee18(endpoint) {
879
926
  var data,
880
927
  headers,
881
928
  response,
882
- _args17 = arguments;
883
- return _regeneratorRuntime().wrap(function _callee17$(_context17) {
884
- while (1) switch (_context17.prev = _context17.next) {
929
+ _args18 = arguments;
930
+ return _regeneratorRuntime().wrap(function _callee18$(_context18) {
931
+ while (1) switch (_context18.prev = _context18.next) {
885
932
  case 0:
886
- data = _args17.length > 1 && _args17[1] !== undefined ? _args17[1] : {};
887
- _context17.prev = 1;
933
+ data = _args18.length > 1 && _args18[1] !== undefined ? _args18[1] : {};
934
+ _context18.prev = 1;
888
935
  // Add the authToken to the headers
889
936
  headers = {
890
937
  authtoken: this.authtoken
891
938
  }; // Make the POST request using Axios
892
- _context17.next = 5;
939
+ _context18.next = 5;
893
940
  return this.axios.post(endpoint, data, {
894
941
  headers: headers
895
942
  });
896
943
  case 5:
897
- response = _context17.sent;
944
+ response = _context18.sent;
898
945
  if (!(response.data.ok === false)) {
899
- _context17.next = 8;
946
+ _context18.next = 8;
900
947
  break;
901
948
  }
902
- return _context17.abrupt("return", this._handleError(response));
949
+ return _context18.abrupt("return", this._handleError(response));
903
950
  case 8:
904
- return _context17.abrupt("return", response.data);
951
+ return _context18.abrupt("return", response.data);
905
952
  case 11:
906
- _context17.prev = 11;
907
- _context17.t0 = _context17["catch"](1);
908
- return _context17.abrupt("return", this._handleError(_context17.t0));
953
+ _context18.prev = 11;
954
+ _context18.t0 = _context18["catch"](1);
955
+ return _context18.abrupt("return", this._handleError(_context18.t0));
909
956
  case 14:
910
957
  case "end":
911
- return _context17.stop();
958
+ return _context18.stop();
912
959
  }
913
- }, _callee17, this, [[1, 11]]);
960
+ }, _callee18, this, [[1, 11]]);
914
961
  }));
915
- function post(_x13) {
962
+ function post(_x14) {
916
963
  return _post.apply(this, arguments);
917
964
  }
918
965
  return post;
package/dist/esm/index.js CHANGED
@@ -8,7 +8,8 @@ export { RbtApi, RbtObject, RbtFile
8
8
  export default class Roboto {
9
9
  constructor({
10
10
  host,
11
- apiKey
11
+ apiKey,
12
+ localStorageAdaptor
12
13
  }, proxyReq = null) {
13
14
  if (Roboto.instance && !proxyReq) {
14
15
  // if on client, there can only be one instance
@@ -19,7 +20,9 @@ export default class Roboto {
19
20
  this.config = {
20
21
  apiKey: apiKey,
21
22
  // Use passed apiKey
22
- baseUrl: `https://${host}` // Use passed host
23
+ baseUrl: `https://${host}`,
24
+ // Use passed host
25
+ localStorageAdaptor: localStorageAdaptor
23
26
  };
24
27
 
25
28
  // DEVELOPMENT
@@ -9,22 +9,40 @@ export default class RbtApi {
9
9
  constructor({
10
10
  apiKey,
11
11
  baseUrl,
12
- authtoken,
13
- accesskey
12
+ authtoken = null,
13
+ accesskey = null,
14
+ localStorageAdaptor = null
14
15
  }) {
15
- const isClient = typeof window !== 'undefined';
16
- const authTokenToUse = isClient && !authtoken ? localStorage.getItem('authtoken') : authtoken;
17
16
  this.axios = axios.create({
18
17
  baseURL: baseUrl,
19
18
  headers: {
20
- 'accesskey': accesskey || apiKey,
21
- 'authtoken': authTokenToUse
19
+ 'accesskey': accesskey || apiKey
20
+ //'authtoken': authTokenToUse
22
21
  }
23
22
  });
23
+ if (localStorageAdaptor) {
24
+ // must implement getItem, setItem interface
25
+ this.localStorageAdaptor = localStorageAdaptor;
26
+ } else if (typeof localStorage != 'undefined') {
27
+ // browser based local storage
28
+ this.localStorageAdaptor = {
29
+ getItem: key => Promise.resolve(localStorage.getItem(key)),
30
+ setItem: (key, value) => Promise.resolve(localStorage.setItem(key, value))
31
+ };
32
+ }
24
33
  this.localDb = null;
25
34
  this.iac_session = null;
26
- this.authtoken = authTokenToUse;
27
35
  this.appServiceHost = null;
36
+
37
+ // Use the storageAdaptor to get the authToken, if available
38
+ this.initAuthToken(authtoken);
39
+ }
40
+ async initAuthToken(authtoken) {
41
+ if (!authtoken && this.localStorageAdaptor) {
42
+ authtoken = await this.localStorageAdaptor.getItem('authtoken');
43
+ }
44
+ this.authtoken = authtoken;
45
+ this.axios.defaults.headers.common['authtoken'] = this.authtoken;
28
46
  }
29
47
  async initLocalDb() {
30
48
  this.localDb = await openDB('RBTFileDatabase', 1, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roboto-js",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "dist/cjs/index.cjs",
package/src/index.js CHANGED
@@ -13,7 +13,7 @@ export {
13
13
 
14
14
  export default class Roboto{
15
15
 
16
- constructor({ host, apiKey }, proxyReq = null) {
16
+ constructor({ host, apiKey, localStorageAdaptor }, proxyReq = null) {
17
17
 
18
18
  if (Roboto.instance && !proxyReq) {
19
19
  // if on client, there can only be one instance
@@ -25,7 +25,8 @@ export default class Roboto{
25
25
 
26
26
  this.config = {
27
27
  apiKey: apiKey, // Use passed apiKey
28
- baseUrl: `https://${host}` // Use passed host
28
+ baseUrl: `https://${host}`, // Use passed host
29
+ localStorageAdaptor: localStorageAdaptor
29
30
  };
30
31
 
31
32
  // DEVELOPMENT
package/src/rbt_api.js CHANGED
@@ -8,23 +8,45 @@ import { openDB } from 'idb';
8
8
 
9
9
  export default class RbtApi {
10
10
 
11
- constructor({ apiKey, baseUrl, authtoken, accesskey }) {
12
-
13
- const isClient = typeof window !== 'undefined';
14
- const authTokenToUse = isClient && !authtoken ? localStorage.getItem('authtoken') : authtoken;
11
+ constructor({ apiKey, baseUrl, authtoken=null, accesskey=null, localStorageAdaptor=null }) {
15
12
 
16
13
  this.axios = axios.create({
17
14
  baseURL: baseUrl,
18
15
  headers: {
19
16
  'accesskey': accesskey || apiKey,
20
- 'authtoken': authTokenToUse
17
+ //'authtoken': authTokenToUse
21
18
  }
22
19
  });
20
+
21
+ if(localStorageAdaptor){
22
+ // must implement getItem, setItem interface
23
+ this.localStorageAdaptor = localStorageAdaptor;
24
+ }
25
+ else if(typeof localStorage != 'undefined'){
26
+ // browser based local storage
27
+ this.localStorageAdaptor = {
28
+ getItem: (key) => Promise.resolve(localStorage.getItem(key)),
29
+ setItem: (key, value) => Promise.resolve(localStorage.setItem(key, value)),
30
+ };
31
+ }
23
32
  this.localDb = null;
24
33
  this.iac_session = null;
25
- this.authtoken = authTokenToUse;
26
34
  this.appServiceHost = null;
27
35
 
36
+ // Use the storageAdaptor to get the authToken, if available
37
+ this.initAuthToken(authtoken);
38
+
39
+ }
40
+
41
+ async initAuthToken(authtoken) {
42
+
43
+ if(!authtoken && this.localStorageAdaptor){
44
+ authtoken = await this.localStorageAdaptor.getItem('authtoken');
45
+ }
46
+
47
+ this.authtoken = authtoken;
48
+ this.axios.defaults.headers.common['authtoken'] = this.authtoken;
49
+
28
50
  }
29
51
 
30
52
  async initLocalDb(){