@jbrowse/core 1.6.3 → 1.6.6

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 (56) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.js +1 -3
  2. package/BaseFeatureWidget/index.d.ts +1 -1
  3. package/PluginLoader.d.ts +1 -1
  4. package/PluginManager.d.ts +2 -0
  5. package/ReExports/modules.d.ts +2 -0
  6. package/TextSearch/TextSearchManager.d.ts +2 -2
  7. package/assemblyManager/assemblyConfigSchema.d.ts +1 -1
  8. package/assemblyManager/assemblyManager.d.ts +1 -1
  9. package/configuration/index.d.ts +1 -1
  10. package/data_adapters/BaseAdapter.d.ts +2 -1
  11. package/data_adapters/BaseAdapter.js +29 -3
  12. package/data_adapters/CytobandAdapter.d.ts +1 -1
  13. package/package.json +4 -4
  14. package/pluggableElementTypes/RpcMethodType.js +1 -1
  15. package/pluggableElementTypes/models/InternetAccountModel.d.ts +103 -7
  16. package/pluggableElementTypes/models/InternetAccountModel.js +296 -10
  17. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +1 -1
  18. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +1 -1
  19. package/pluggableElementTypes/models/baseInternetAccountConfig.js +16 -1
  20. package/pluggableElementTypes/models/baseTrackConfig.d.ts +1 -1
  21. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +1 -0
  22. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +46 -22
  23. package/rpc/BaseRpcDriver.d.ts +4 -4
  24. package/rpc/BaseRpcDriver.js +152 -79
  25. package/rpc/BaseRpcDriver.test.js +64 -43
  26. package/rpc/MainThreadRpcDriver.d.ts +1 -1
  27. package/rpc/MainThreadRpcDriver.js +25 -16
  28. package/rpc/RpcManager.d.ts +1 -1
  29. package/rpc/WebWorkerRpcDriver.d.ts +1 -1
  30. package/rpc/WebWorkerRpcDriver.js +43 -11
  31. package/rpc/configSchema.d.ts +1 -1
  32. package/ui/ErrorMessage.js +23 -8
  33. package/ui/FileSelector/FileSelector.js +1 -1
  34. package/ui/ReturnToImportFormDialog.d.ts +9 -0
  35. package/ui/ReturnToImportFormDialog.js +63 -0
  36. package/ui/Tooltip.d.ts +1 -1
  37. package/ui/Tooltip.js +2 -2
  38. package/ui/index.d.ts +2 -0
  39. package/ui/index.js +18 -0
  40. package/ui/theme.d.ts +8 -0
  41. package/ui/theme.js +9 -0
  42. package/ui/theme.test.js +2 -2
  43. package/util/Base1DViewModel.d.ts +2 -0
  44. package/util/Base1DViewModel.js +9 -0
  45. package/util/index.d.ts +12 -1
  46. package/util/index.js +52 -17
  47. package/util/index.test.js +35 -14
  48. package/util/io/index.d.ts +2 -1
  49. package/util/io/index.js +95 -96
  50. package/util/offscreenCanvasPonyfill.d.ts +1 -0
  51. package/util/offscreenCanvasPonyfill.js +70 -58
  52. package/util/simpleFeature.d.ts +3 -0
  53. package/util/types/index.d.ts +2 -2
  54. package/util/types/index.js +3 -3
  55. package/babel.config.d.ts +0 -15
  56. package/babel.config.js +0 -19
@@ -9,6 +9,8 @@ exports.InternetAccount = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
15
 
14
16
  var _mobxStateTree = require("mobx-state-tree");
@@ -19,6 +21,12 @@ var _io = require("../../util/io");
19
21
 
20
22
  var _mst = require("../../util/types/mst");
21
23
 
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
+
28
+ var inWebWorker = typeof sessionStorage === 'undefined';
29
+
22
30
  var InternetAccount = _mobxStateTree.types.model('InternetAccount', {
23
31
  id: _mst.ElementId,
24
32
  type: _mobxStateTree.types.string
@@ -28,48 +36,111 @@ var InternetAccount = _mobxStateTree.types.model('InternetAccount', {
28
36
  return (0, _configuration.getConf)(self, 'name');
29
37
  },
30
38
 
39
+ get description() {
40
+ return (0, _configuration.getConf)(self, 'description');
41
+ },
42
+
31
43
  get internetAccountId() {
32
44
  return (0, _configuration.getConf)(self, 'internetAccountId');
33
45
  },
34
46
 
47
+ get authHeader() {
48
+ return (0, _configuration.getConf)(self, 'authHeader');
49
+ },
50
+
35
51
  get tokenType() {
36
52
  return (0, _configuration.getConf)(self, 'tokenType');
37
53
  },
38
54
 
39
- get accountConfig() {
40
- return (0, _configuration.getConf)(self);
55
+ get domains() {
56
+ return (0, _configuration.getConf)(self, 'domains');
41
57
  },
42
58
 
59
+ /**
60
+ * Can use this to customize what is displayed in fileSelector's toggle box
61
+ */
43
62
  get toggleContents() {
44
63
  return null;
45
64
  },
46
65
 
66
+ /**
67
+ * Can use this to customize what the fileSelector. It takes a prop called
68
+ * `setLocation` that should be used to set a UriLocation
69
+ */
47
70
  get SelectorComponent() {
48
71
  return undefined;
49
72
  },
50
73
 
74
+ /**
75
+ * Can use this to add a label to the UrlChooser. Has no effect if a custom
76
+ * SelectorComponent is supplied
77
+ */
51
78
  get selectorLabel() {
52
79
  return undefined;
53
- },
80
+ }
54
81
 
82
+ };
83
+ }).views(function (self) {
84
+ return {
85
+ /**
86
+ * Determine whether this internetAccount provides credentials for a URL
87
+ * @param location - UriLocation of resource
88
+ * @returns true or false
89
+ */
55
90
  handlesLocation: function handlesLocation(location) {
56
- return false;
91
+ return self.domains.some(function (domain) {
92
+ return location === null || location === void 0 ? void 0 : location.uri.includes(domain);
93
+ });
94
+ },
95
+
96
+ /**
97
+ * The key used to store this internetAccount's token in sessionStorage
98
+ */
99
+ get tokenKey() {
100
+ return "".concat(self.internetAccountId, "-token");
57
101
  }
102
+
58
103
  };
59
104
  }).actions(function (self) {
60
105
  return {
61
- openLocation: function openLocation(location) {
62
- return new _io.RemoteFileWithRangeCache(String(location.uri));
106
+ /**
107
+ * Must be implemented by a model extending or composing this one. Pass the
108
+ * user's token to `resolve`.
109
+ * @param resolve - Pass the token to this function
110
+ * @param reject - If there is an error getting the token, call this function
111
+ */
112
+ getTokenFromUser: function getTokenFromUser(resolve, reject) {
113
+ throw new Error('getTokenFromUser must be implemented by extending model');
63
114
  },
64
- getPreAuthorizationInformation: function getPreAuthorizationInformation(location) {
115
+ storeToken: function storeToken(token) {
116
+ sessionStorage.setItem(self.tokenKey, token);
117
+ },
118
+ removeToken: function removeToken() {
119
+ sessionStorage.removeItem(self.tokenKey);
120
+ },
121
+ retrieveToken: function retrieveToken() {
122
+ return sessionStorage.getItem(self.tokenKey);
123
+ },
124
+
125
+ /**
126
+ * This can be used by an internetAccount to validate a token works before
127
+ * it is used. This is run when preAuthorizationInformation is requested, so
128
+ * it can be used to check that a token is valid before sending it to a
129
+ * worker thread. It expects the token to be returned so that this action
130
+ * can also be used to generate a new token (e.g. by using a refresh token)
131
+ * if the original one was invalid. Should throw an error if a token is
132
+ * invalid.
133
+ * @param token - Auth token
134
+ * @param location - UriLocation of the resource
135
+ * @returns - Valid auth token
136
+ */
137
+ validateToken: function validateToken(token, location) {
65
138
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
66
139
  return _regenerator.default.wrap(function _callee$(_context) {
67
140
  while (1) {
68
141
  switch (_context.prev = _context.next) {
69
142
  case 0:
70
- return _context.abrupt("return", {
71
- internetAccountType: self.type
72
- });
143
+ return _context.abrupt("return", token);
73
144
 
74
145
  case 1:
75
146
  case "end":
@@ -80,6 +151,221 @@ var InternetAccount = _mobxStateTree.types.model('InternetAccount', {
80
151
  }))();
81
152
  }
82
153
  };
154
+ }).actions(function (self) {
155
+ var tokenPromise = undefined;
156
+ return {
157
+ /**
158
+ * Try to get the token from the location pre-auth, from local storage,
159
+ * or from a previously cached promise. If token is not available, uses
160
+ * `getTokenFromUser`.
161
+ * @param location - UriLocation of the resource
162
+ * @returns A promise for the token
163
+ */
164
+ getToken: function getToken(location) {
165
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
166
+ var _location$internetAcc, _location$internetAcc2;
167
+
168
+ var token;
169
+ return _regenerator.default.wrap(function _callee3$(_context3) {
170
+ while (1) {
171
+ switch (_context3.prev = _context3.next) {
172
+ case 0:
173
+ if (!tokenPromise) {
174
+ _context3.next = 2;
175
+ break;
176
+ }
177
+
178
+ return _context3.abrupt("return", tokenPromise);
179
+
180
+ case 2:
181
+ token = location === null || location === void 0 ? void 0 : (_location$internetAcc = location.internetAccountPreAuthorization) === null || _location$internetAcc === void 0 ? void 0 : (_location$internetAcc2 = _location$internetAcc.authInfo) === null || _location$internetAcc2 === void 0 ? void 0 : _location$internetAcc2.token;
182
+
183
+ if (!token) {
184
+ _context3.next = 6;
185
+ break;
186
+ }
187
+
188
+ tokenPromise = Promise.resolve(token);
189
+ return _context3.abrupt("return", tokenPromise);
190
+
191
+ case 6:
192
+ if (!inWebWorker) {
193
+ _context3.next = 8;
194
+ break;
195
+ }
196
+
197
+ throw new Error('Did not get internet account pre-authorization info in worker');
198
+
199
+ case 8:
200
+ token = self.retrieveToken();
201
+
202
+ if (!token) {
203
+ _context3.next = 12;
204
+ break;
205
+ }
206
+
207
+ tokenPromise = Promise.resolve(token);
208
+ return _context3.abrupt("return", tokenPromise);
209
+
210
+ case 12:
211
+ tokenPromise = new Promise( /*#__PURE__*/function () {
212
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(r, x) {
213
+ var resolve, reject;
214
+ return _regenerator.default.wrap(function _callee2$(_context2) {
215
+ while (1) {
216
+ switch (_context2.prev = _context2.next) {
217
+ case 0:
218
+ reject = function _reject(error) {
219
+ self.removeToken();
220
+ x(error);
221
+ };
222
+
223
+ resolve = function _resolve(token) {
224
+ self.storeToken(token);
225
+ r(token);
226
+ };
227
+
228
+ self.getTokenFromUser(resolve, reject);
229
+
230
+ case 3:
231
+ case "end":
232
+ return _context2.stop();
233
+ }
234
+ }
235
+ }, _callee2);
236
+ }));
237
+
238
+ return function (_x, _x2) {
239
+ return _ref.apply(this, arguments);
240
+ };
241
+ }());
242
+ return _context3.abrupt("return", tokenPromise);
243
+
244
+ case 14:
245
+ case "end":
246
+ return _context3.stop();
247
+ }
248
+ }
249
+ }, _callee3);
250
+ }))();
251
+ }
252
+ };
253
+ }).actions(function (self) {
254
+ return {
255
+ addAuthHeaderToInit: function addAuthHeaderToInit() {
256
+ var init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
257
+ var token = arguments.length > 1 ? arguments[1] : undefined;
258
+ var tokenInfoString = self.tokenType ? "".concat(self.tokenType, " ").concat(token) : token;
259
+ var newHeaders = new Headers(init.headers || {});
260
+ newHeaders.append(self.authHeader, tokenInfoString);
261
+ return _objectSpread(_objectSpread({}, init), {}, {
262
+ headers: newHeaders
263
+ });
264
+ },
265
+
266
+ /**
267
+ * Gets the token and returns it along with the information needed to
268
+ * create a new internetAccount.
269
+ * @param location - UriLocation of the resource
270
+ * @returns
271
+ */
272
+ getPreAuthorizationInformation: function getPreAuthorizationInformation(location) {
273
+ return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
274
+ var authToken, validatedToken;
275
+ return _regenerator.default.wrap(function _callee4$(_context4) {
276
+ while (1) {
277
+ switch (_context4.prev = _context4.next) {
278
+ case 0:
279
+ _context4.next = 2;
280
+ return self.getToken(location);
281
+
282
+ case 2:
283
+ authToken = _context4.sent;
284
+ _context4.prev = 3;
285
+ _context4.next = 6;
286
+ return self.validateToken(authToken, location);
287
+
288
+ case 6:
289
+ validatedToken = _context4.sent;
290
+ _context4.next = 13;
291
+ break;
292
+
293
+ case 9:
294
+ _context4.prev = 9;
295
+ _context4.t0 = _context4["catch"](3);
296
+ self.removeToken();
297
+ throw _context4.t0;
298
+
299
+ case 13:
300
+ return _context4.abrupt("return", {
301
+ internetAccountType: self.type,
302
+ authInfo: {
303
+ token: validatedToken,
304
+ configuration: (0, _configuration.getConf)(self)
305
+ }
306
+ });
307
+
308
+ case 14:
309
+ case "end":
310
+ return _context4.stop();
311
+ }
312
+ }
313
+ }, _callee4, null, [[3, 9]]);
314
+ }))();
315
+ }
316
+ };
317
+ }).actions(function (self) {
318
+ return {
319
+ /**
320
+ * Get a fetch method that will add any needed authentication headers to
321
+ * the request before sending it. If location is provided, it will be
322
+ * checked to see if it includes a token in it pre-auth information.
323
+ * @param location - UriLocation of the resource
324
+ * @returns A function that can be used to fetch
325
+ */
326
+ getFetcher: function getFetcher(location) {
327
+ return /*#__PURE__*/function () {
328
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(input, init) {
329
+ var authToken, newInit;
330
+ return _regenerator.default.wrap(function _callee5$(_context5) {
331
+ while (1) {
332
+ switch (_context5.prev = _context5.next) {
333
+ case 0:
334
+ _context5.next = 2;
335
+ return self.getToken(location);
336
+
337
+ case 2:
338
+ authToken = _context5.sent;
339
+ newInit = self.addAuthHeaderToInit(init, authToken);
340
+ return _context5.abrupt("return", fetch(input, newInit));
341
+
342
+ case 5:
343
+ case "end":
344
+ return _context5.stop();
345
+ }
346
+ }
347
+ }, _callee5);
348
+ }));
349
+
350
+ return function (_x3, _x4) {
351
+ return _ref2.apply(this, arguments);
352
+ };
353
+ }();
354
+ }
355
+ };
356
+ }).actions(function (self) {
357
+ return {
358
+ /**
359
+ * Gets a filehandle that uses a fetch that adds auth headers
360
+ * @param location - UriLocation of the resource
361
+ * @returns A filehandle
362
+ */
363
+ openLocation: function openLocation(location) {
364
+ return new _io.RemoteFileWithRangeCache(location.uri, {
365
+ fetch: self.getFetcher(location)
366
+ });
367
+ }
368
+ };
83
369
  });
84
370
 
85
371
  exports.InternetAccount = InternetAccount;
@@ -1,2 +1,2 @@
1
- declare const _default: import("../../configuration/configurationSchema").AnyConfigurationSchemaType;
1
+ declare const _default: import("../../configuration").AnyConfigurationSchemaType;
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
- export declare const BaseInternetAccountConfig: import("../../configuration/configurationSchema").AnyConfigurationSchemaType;
2
+ export declare const BaseInternetAccountConfig: import("../../configuration").AnyConfigurationSchemaType;
3
3
  export declare type BaseInternetAccountConfigModel = typeof BaseInternetAccountConfig;
4
4
  export declare type BaseInternetAccountConfig = Instance<BaseInternetAccountConfigModel>;
@@ -9,7 +9,7 @@ var _configuration = require("../../configuration");
9
9
 
10
10
  var BaseInternetAccountConfig = (0, _configuration.ConfigurationSchema)('InternetAccount', {
11
11
  name: {
12
- description: 'descriptive name of the internet acount',
12
+ description: 'descriptive name of the internet account',
13
13
  type: 'string',
14
14
  defaultValue: ''
15
15
  },
@@ -17,6 +17,21 @@ var BaseInternetAccountConfig = (0, _configuration.ConfigurationSchema)('Interne
17
17
  description: 'a description of the internet account',
18
18
  type: 'string',
19
19
  defaultValue: ''
20
+ },
21
+ authHeader: {
22
+ description: 'request header for credentials',
23
+ type: 'string',
24
+ defaultValue: 'Authorization'
25
+ },
26
+ tokenType: {
27
+ description: 'a custom name for a token to include in the header',
28
+ type: 'string',
29
+ defaultValue: ''
30
+ },
31
+ domains: {
32
+ description: 'array of valid domains the url can contain to use this account',
33
+ type: 'stringArray',
34
+ defaultValue: []
20
35
  }
21
36
  }, {
22
37
  explicitIdentifier: 'internetAccountId',
@@ -1,5 +1,5 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import PluginManager from '../../PluginManager';
3
- export declare function createBaseTrackConfig(pluginManager: PluginManager): import("../../configuration/configurationSchema").AnyConfigurationSchemaType;
3
+ export declare function createBaseTrackConfig(pluginManager: PluginManager): import("../../configuration").AnyConfigurationSchemaType;
4
4
  export declare type BaseTrackConfigModel = ReturnType<typeof createBaseTrackConfig>;
5
5
  export declare type BaseTrackConfig = Instance<BaseTrackConfigModel>;
@@ -32,6 +32,7 @@ export default class ComparativeServerSideRenderer extends ServerSideRenderer {
32
32
  * @param args - the arguments passed to render
33
33
  * @returns the same object
34
34
  */
35
+ renameRegionsIfNeeded(args: RenderArgs): Promise<RenderArgs>;
35
36
  serializeArgsInClient(args: RenderArgs): ServerSideRenderArgsSerialized;
36
37
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
37
38
  /**
@@ -9,10 +9,10 @@ exports.default = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
13
 
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
17
 
18
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -50,7 +50,7 @@ var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer)
50
50
  }
51
51
 
52
52
  (0, _createClass2.default)(ComparativeServerSideRenderer, [{
53
- key: "serializeArgsInClient",
53
+ key: "renameRegionsIfNeeded",
54
54
  value:
55
55
  /**
56
56
  * directly modifies the render arguments to prepare
@@ -65,7 +65,31 @@ var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer)
65
65
  * @param args - the arguments passed to render
66
66
  * @returns the same object
67
67
  */
68
- function serializeArgsInClient(args) {
68
+ function () {
69
+ var _renameRegionsIfNeeded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(args) {
70
+ return _regenerator.default.wrap(function _callee$(_context) {
71
+ while (1) {
72
+ switch (_context.prev = _context.next) {
73
+ case 0:
74
+ return _context.abrupt("return", args);
75
+
76
+ case 1:
77
+ case "end":
78
+ return _context.stop();
79
+ }
80
+ }
81
+ }, _callee);
82
+ }));
83
+
84
+ function renameRegionsIfNeeded(_x) {
85
+ return _renameRegionsIfNeeded.apply(this, arguments);
86
+ }
87
+
88
+ return renameRegionsIfNeeded;
89
+ }()
90
+ }, {
91
+ key: "serializeArgsInClient",
92
+ value: function serializeArgsInClient(args) {
69
93
  var deserializedArgs = _objectSpread(_objectSpread({}, args), {}, {
70
94
  displayModel: {}
71
95
  });
@@ -89,22 +113,22 @@ var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer)
89
113
  }, {
90
114
  key: "renderInClient",
91
115
  value: function () {
92
- var _renderInClient = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(rpcManager, args) {
93
- return _regenerator.default.wrap(function _callee$(_context) {
116
+ var _renderInClient = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(rpcManager, args) {
117
+ return _regenerator.default.wrap(function _callee2$(_context2) {
94
118
  while (1) {
95
- switch (_context.prev = _context.next) {
119
+ switch (_context2.prev = _context2.next) {
96
120
  case 0:
97
- return _context.abrupt("return", rpcManager.call(args.sessionId, 'ComparativeRender', args));
121
+ return _context2.abrupt("return", rpcManager.call(args.sessionId, 'ComparativeRender', args));
98
122
 
99
123
  case 1:
100
124
  case "end":
101
- return _context.stop();
125
+ return _context2.stop();
102
126
  }
103
127
  }
104
- }, _callee);
128
+ }, _callee2);
105
129
  }));
106
130
 
107
- function renderInClient(_x, _x2) {
131
+ function renderInClient(_x2, _x3) {
108
132
  return _renderInClient.apply(this, arguments);
109
133
  }
110
134
 
@@ -128,33 +152,33 @@ var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer)
128
152
  }, {
129
153
  key: "getFeatures",
130
154
  value: function () {
131
- var _getFeatures = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(renderArgs) {
155
+ var _getFeatures = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(renderArgs) {
132
156
  var _this = this;
133
157
 
134
158
  var signal, sessionId, adapterConfig, _yield$getAdapter, dataAdapter, regions, requestRegions, featureObservable;
135
159
 
136
- return _regenerator.default.wrap(function _callee2$(_context2) {
160
+ return _regenerator.default.wrap(function _callee3$(_context3) {
137
161
  while (1) {
138
- switch (_context2.prev = _context2.next) {
162
+ switch (_context3.prev = _context3.next) {
139
163
  case 0:
140
164
  signal = renderArgs.signal, sessionId = renderArgs.sessionId, adapterConfig = renderArgs.adapterConfig;
141
- _context2.next = 3;
165
+ _context3.next = 3;
142
166
  return (0, _dataAdapterCache.getAdapter)(this.pluginManager, sessionId, adapterConfig);
143
167
 
144
168
  case 3:
145
- _yield$getAdapter = _context2.sent;
169
+ _yield$getAdapter = _context3.sent;
146
170
  dataAdapter = _yield$getAdapter.dataAdapter;
147
171
  regions = []; // @ts-ignore this is instantiated by the getFeatures call
148
172
 
149
173
  regions = renderArgs.regions;
150
174
 
151
175
  if (!(!regions || regions.length === 0)) {
152
- _context2.next = 10;
176
+ _context3.next = 10;
153
177
  break;
154
178
  }
155
179
 
156
180
  console.warn('no regions supplied to comparative renderer');
157
- return _context2.abrupt("return", []);
181
+ return _context3.abrupt("return", []);
158
182
 
159
183
  case 10:
160
184
  requestRegions = regions.map(function (r) {
@@ -176,20 +200,20 @@ var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer)
176
200
  featureObservable = dataAdapter.getFeaturesInMultipleRegions(requestRegions, {
177
201
  signal: signal
178
202
  });
179
- return _context2.abrupt("return", featureObservable.pipe( // @ts-ignore
203
+ return _context3.abrupt("return", featureObservable.pipe( // @ts-ignore
180
204
  (0, _operators.filter)(function (feature) {
181
205
  return _this.featurePassesFilters(renderArgs, feature);
182
206
  }), (0, _operators.toArray)()).toPromise());
183
207
 
184
208
  case 13:
185
209
  case "end":
186
- return _context2.stop();
210
+ return _context3.stop();
187
211
  }
188
212
  }
189
- }, _callee2, this);
213
+ }, _callee3, this);
190
214
  }));
191
215
 
192
- function getFeatures(_x3) {
216
+ function getFeatures(_x4) {
193
217
  return _getFeatures.apply(this, arguments);
194
218
  }
195
219
 
@@ -20,24 +20,24 @@ declare class LazyWorker {
20
20
  driver: BaseRpcDriver;
21
21
  worker?: WorkerHandle;
22
22
  constructor(driver: BaseRpcDriver);
23
- getWorker(pluginManager: PluginManager, rpcDriverClassName: string): WorkerHandle;
23
+ getWorker(pluginManager: PluginManager, rpcDriverClassName: string): Promise<WorkerHandle>;
24
24
  }
25
25
  export default abstract class BaseRpcDriver {
26
26
  abstract name: string;
27
27
  private lastWorkerAssignment;
28
28
  private workerAssignments;
29
29
  private workerCount;
30
- abstract makeWorker(pluginManager: PluginManager): WorkerHandle;
30
+ abstract makeWorker(pluginManager: PluginManager): Promise<WorkerHandle>;
31
31
  private workerPool?;
32
32
  maxPingTime: number;
33
33
  workerCheckFrequency: number;
34
34
  config: AnyConfigurationModel;
35
35
  constructor(args: RpcDriverConstructorArgs);
36
36
  filterArgs<THING_TYPE>(thing: THING_TYPE, pluginManager: PluginManager, sessionId: string): THING_TYPE;
37
- remoteAbort(pluginManager: PluginManager, sessionId: string, functionName: string, signalId: number): void;
37
+ remoteAbort(pluginManager: PluginManager, sessionId: string, functionName: string, signalId: number): Promise<void>;
38
38
  createWorkerPool(): LazyWorker[];
39
39
  getWorkerPool(): LazyWorker[];
40
- getWorker(sessionId: string, pluginManager: PluginManager): WorkerHandle;
40
+ getWorker(sessionId: string, pluginManager: PluginManager): Promise<WorkerHandle>;
41
41
  call(pluginManager: PluginManager, sessionId: string, functionName: string, args: {
42
42
  statusCallback?: (message: string) => void;
43
43
  }, options?: {}): Promise<unknown>;