@jbrowse/core 2.9.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -60,7 +60,26 @@ export interface RuntimePluginLoadRecord extends PluginLoadRecord {
60
60
  }
61
61
  export default class PluginManager {
62
62
  plugins: Plugin[];
63
- jexl: any;
63
+ jexl: {
64
+ addBinaryOp: (operator: string, precedence: number, fn: (left: any, right: any) => any) => void;
65
+ addUnaryOp: (operator: string, fn: (right: any) => any) => void;
66
+ addTransform: (name: string, fn: (value: any, ...args: any[]) => any) => void;
67
+ addTransforms: (map: {
68
+ [key: string]: (value: any, ...args: any[]) => any;
69
+ }) => void;
70
+ getTransform: (name: string) => (value: any, ...args: any[]) => any;
71
+ addFunction: (name: string, fn: (value: any, ...args: any[]) => any) => void;
72
+ addFunctions: (map: {
73
+ [key: string]: (value: any, ...args: any[]) => any;
74
+ }) => void;
75
+ getFunction: (name: string) => (value: any, ...args: any[]) => any;
76
+ eval: (expression: string, context?: import("jexl/Expression").Context | undefined) => Promise<any>;
77
+ evalSync: (expression: string, context?: import("jexl/Expression").Context | undefined) => any;
78
+ compile: (expression: string) => import("jexl/Expression").default;
79
+ createExpression: (expression: string) => import("jexl/Expression").default;
80
+ removeOp: (operator: string) => void;
81
+ _grammar: import("jexl/Grammar").default;
82
+ };
64
83
  pluginMetadata: Record<string, PluginMetadata>;
65
84
  runtimePluginDefinitions: PluginDefinition[];
66
85
  elementCreationSchedule: PhasedScheduler<PluggableElementTypeGroup> | undefined;
package/PluginManager.js CHANGED
@@ -71,7 +71,6 @@ class TypeRecord {
71
71
  class PluginManager {
72
72
  constructor(initialPlugins = []) {
73
73
  this.plugins = [];
74
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
74
  this.jexl = (0, jexl_1.default)();
76
75
  this.pluginMetadata = {};
77
76
  this.runtimePluginDefinitions = [];
@@ -3,6 +3,7 @@ import { BaseOptions } from '../data_adapters/BaseAdapter';
3
3
  import PluginManager from '../PluginManager';
4
4
  import { Region, Feature } from '../util';
5
5
  import RpcManager from '../rpc/RpcManager';
6
+ type AdapterConf = Record<string, unknown>;
6
7
  type RefNameAliases = Record<string, string | undefined>;
7
8
  export interface RefNameMap {
8
9
  forwardMap: RefNameAliases;
@@ -145,17 +146,17 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pm: Plugin
145
146
  /**
146
147
  * #method
147
148
  */
148
- getAdapterMapEntry(adapterConf: unknown, options: BaseOptions): Promise<RefNameMap>;
149
+ getAdapterMapEntry(adapterConf: AdapterConf, options: BaseOptions): Promise<RefNameMap>;
149
150
  /**
150
151
  * #method
151
152
  * get Map of `canonical-name -> adapter-specific-name`
152
153
  */
153
- getRefNameMapForAdapter(adapterConf: unknown, opts: BaseOptions): Promise<RefNameAliases>;
154
+ getRefNameMapForAdapter(adapterConf: AdapterConf, opts: BaseOptions): Promise<RefNameAliases>;
154
155
  /**
155
156
  * #method
156
157
  * get Map of `adapter-specific-name -> canonical-name`
157
158
  */
158
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: BaseOptions): Promise<RefNameAliases>;
159
+ getReverseRefNameMapForAdapter(adapterConf: AdapterConf, opts: BaseOptions): Promise<RefNameAliases>;
159
160
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
160
161
  export type AssemblyModel = ReturnType<typeof assemblyFactory>;
161
162
  export type Assembly = Instance<AssemblyModel>;
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const mobx_state_tree_1 = require("mobx-state-tree");
7
- const json_stable_stringify_1 = __importDefault(require("json-stable-stringify"));
8
7
  const abortable_promise_cache_1 = __importDefault(require("abortable-promise-cache"));
9
8
  // locals
10
9
  const configuration_1 = require("../configuration");
11
10
  const util_1 = require("../util");
12
11
  const QuickLRU_1 = __importDefault(require("../util/QuickLRU"));
12
+ const dataAdapterCache_1 = require("../data_adapters/dataAdapterCache");
13
13
  const refNameRegex = new RegExp('[0-9A-Za-z!#$%&+./:;?@^_|~-][0-9A-Za-z!#$%&*+./:;=?@^_|~-]*');
14
14
  // Based on the UCSC Genome Browser chromosome color palette:
15
15
  // https://github.com/ucscGenomeBrowser/kent/blob/a50ed53aff81d6fb3e34e6913ce18578292bc24e/src/hg/inc/chromColors.h
@@ -78,9 +78,6 @@ function checkRefName(refName) {
78
78
  throw new Error(`Encountered invalid refName: "${refName}"`);
79
79
  }
80
80
  }
81
- function getAdapterId(adapterConf) {
82
- return (0, json_stable_stringify_1.default)(adapterConf);
83
- }
84
81
  /**
85
82
  * #stateModel Assembly
86
83
  */
@@ -348,8 +345,7 @@ function assemblyFactory(assemblyConfigType, pm) {
348
345
  if (!options.sessionId) {
349
346
  throw new Error('sessionId is required');
350
347
  }
351
- const adapterId = getAdapterId(adapterConf);
352
- return adapterLoads.get(adapterId, {
348
+ return adapterLoads.get((0, dataAdapterCache_1.adapterConfigCacheKey)(adapterConf), {
353
349
  adapterConf,
354
350
  self: self,
355
351
  options: rest,
@@ -2,6 +2,7 @@ import { IAnyType } from 'mobx-state-tree';
2
2
  import { Assembly } from './assembly';
3
3
  import PluginManager from '../PluginManager';
4
4
  import RpcManager from '../rpc/RpcManager';
5
+ type AdapterConf = Record<string, unknown>;
5
6
  /**
6
7
  * #stateModel AssemblyManager
7
8
  */
@@ -32,6 +33,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
32
33
  readonly initialized: boolean;
33
34
  readonly name: string;
34
35
  readonly regions: import("./assembly").BasicRegion[] | undefined;
36
+ /**
37
+ * #action
38
+ * private: you would generally want to add to manipulate
39
+ * jbrowse.assemblies, session.sessionAssemblies, or
40
+ * session.temporaryAssemblies instead of using this directly
41
+ *
42
+ * this can take an active instance of an assembly, in which case it is
43
+ * referred to, or it can take an identifier e.g. assembly name, which is
44
+ * used as a reference. snapshots cannot be used
45
+ */
35
46
  readonly aliases: string[];
36
47
  readonly displayName: string | undefined;
37
48
  hasName(name: string): boolean;
@@ -61,11 +72,17 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
61
72
  load(): Promise<void>;
62
73
  loadPre(): Promise<void>;
63
74
  } & {
64
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
65
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
75
+ getAdapterMapEntry(adapterConf: {
76
+ [x: string]: unknown;
77
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
78
+ getRefNameMapForAdapter(adapterConf: {
79
+ [x: string]: unknown;
80
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
66
81
  [x: string]: string | undefined;
67
82
  }>;
68
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
83
+ getReverseRefNameMapForAdapter(adapterConf: {
84
+ [x: string]: unknown;
85
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
69
86
  [x: string]: string | undefined;
70
87
  }>;
71
88
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
@@ -90,6 +107,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
90
107
  readonly initialized: boolean;
91
108
  readonly name: string;
92
109
  readonly regions: import("./assembly").BasicRegion[] | undefined;
110
+ /**
111
+ * #action
112
+ * private: you would generally want to add to manipulate
113
+ * jbrowse.assemblies, session.sessionAssemblies, or
114
+ * session.temporaryAssemblies instead of using this directly
115
+ *
116
+ * this can take an active instance of an assembly, in which case it is
117
+ * referred to, or it can take an identifier e.g. assembly name, which is
118
+ * used as a reference. snapshots cannot be used
119
+ */
93
120
  readonly aliases: string[];
94
121
  readonly displayName: string | undefined;
95
122
  hasName(name: string): boolean;
@@ -119,11 +146,17 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
119
146
  load(): Promise<void>;
120
147
  loadPre(): Promise<void>;
121
148
  } & {
122
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
123
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
149
+ getAdapterMapEntry(adapterConf: {
150
+ [x: string]: unknown;
151
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
152
+ getRefNameMapForAdapter(adapterConf: {
153
+ [x: string]: unknown;
154
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
124
155
  [x: string]: string | undefined;
125
156
  }>;
126
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
157
+ getReverseRefNameMapForAdapter(adapterConf: {
158
+ [x: string]: unknown;
159
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
127
160
  [x: string]: string | undefined;
128
161
  }>;
129
162
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
@@ -146,6 +179,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
146
179
  readonly initialized: boolean;
147
180
  readonly name: string;
148
181
  readonly regions: import("./assembly").BasicRegion[] | undefined;
182
+ /**
183
+ * #action
184
+ * private: you would generally want to add to manipulate
185
+ * jbrowse.assemblies, session.sessionAssemblies, or
186
+ * session.temporaryAssemblies instead of using this directly
187
+ *
188
+ * this can take an active instance of an assembly, in which case it is
189
+ * referred to, or it can take an identifier e.g. assembly name, which is
190
+ * used as a reference. snapshots cannot be used
191
+ */
149
192
  readonly aliases: string[];
150
193
  readonly displayName: string | undefined;
151
194
  hasName(name: string): boolean;
@@ -175,11 +218,17 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
175
218
  load(): Promise<void>;
176
219
  loadPre(): Promise<void>;
177
220
  } & {
178
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
179
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
221
+ getAdapterMapEntry(adapterConf: {
222
+ [x: string]: unknown;
223
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
224
+ getRefNameMapForAdapter(adapterConf: {
225
+ [x: string]: unknown;
226
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
180
227
  [x: string]: string | undefined;
181
228
  }>;
182
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
229
+ getReverseRefNameMapForAdapter(adapterConf: {
230
+ [x: string]: unknown;
231
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
183
232
  [x: string]: string | undefined;
184
233
  }>;
185
234
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined>;
@@ -207,6 +256,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
207
256
  readonly initialized: boolean;
208
257
  readonly name: string;
209
258
  readonly regions: import("./assembly").BasicRegion[] | undefined;
259
+ /**
260
+ * #action
261
+ * private: you would generally want to add to manipulate
262
+ * jbrowse.assemblies, session.sessionAssemblies, or
263
+ * session.temporaryAssemblies instead of using this directly
264
+ *
265
+ * this can take an active instance of an assembly, in which case it is
266
+ * referred to, or it can take an identifier e.g. assembly name, which is
267
+ * used as a reference. snapshots cannot be used
268
+ */
210
269
  readonly aliases: string[];
211
270
  readonly displayName: string | undefined;
212
271
  hasName(name: string): boolean;
@@ -236,11 +295,17 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
236
295
  load(): Promise<void>;
237
296
  loadPre(): Promise<void>;
238
297
  } & {
239
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
240
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
298
+ getAdapterMapEntry(adapterConf: {
299
+ [x: string]: unknown;
300
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
301
+ getRefNameMapForAdapter(adapterConf: {
302
+ [x: string]: unknown;
303
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
241
304
  [x: string]: string | undefined;
242
305
  }>;
243
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
306
+ getReverseRefNameMapForAdapter(adapterConf: {
307
+ [x: string]: unknown;
308
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
244
309
  [x: string]: string | undefined;
245
310
  }>;
246
311
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
@@ -263,6 +328,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
263
328
  readonly initialized: boolean;
264
329
  readonly name: string;
265
330
  readonly regions: import("./assembly").BasicRegion[] | undefined;
331
+ /**
332
+ * #action
333
+ * private: you would generally want to add to manipulate
334
+ * jbrowse.assemblies, session.sessionAssemblies, or
335
+ * session.temporaryAssemblies instead of using this directly
336
+ *
337
+ * this can take an active instance of an assembly, in which case it is
338
+ * referred to, or it can take an identifier e.g. assembly name, which is
339
+ * used as a reference. snapshots cannot be used
340
+ */
266
341
  readonly aliases: string[];
267
342
  readonly displayName: string | undefined;
268
343
  hasName(name: string): boolean;
@@ -292,11 +367,17 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
292
367
  load(): Promise<void>;
293
368
  loadPre(): Promise<void>;
294
369
  } & {
295
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
296
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
370
+ getAdapterMapEntry(adapterConf: {
371
+ [x: string]: unknown;
372
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
373
+ getRefNameMapForAdapter(adapterConf: {
374
+ [x: string]: unknown;
375
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
297
376
  [x: string]: string | undefined;
298
377
  }>;
299
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
378
+ getReverseRefNameMapForAdapter(adapterConf: {
379
+ [x: string]: unknown;
380
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
300
381
  [x: string]: string | undefined;
301
382
  }>;
302
383
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined;
@@ -341,6 +422,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
341
422
  readonly initialized: boolean;
342
423
  readonly name: string;
343
424
  readonly regions: import("./assembly").BasicRegion[] | undefined;
425
+ /**
426
+ * #action
427
+ * private: you would generally want to add to manipulate
428
+ * jbrowse.assemblies, session.sessionAssemblies, or
429
+ * session.temporaryAssemblies instead of using this directly
430
+ *
431
+ * this can take an active instance of an assembly, in which case it is
432
+ * referred to, or it can take an identifier e.g. assembly name, which is
433
+ * used as a reference. snapshots cannot be used
434
+ */
344
435
  readonly aliases: string[];
345
436
  readonly displayName: string | undefined;
346
437
  hasName(name: string): boolean;
@@ -370,11 +461,17 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
370
461
  load(): Promise<void>;
371
462
  loadPre(): Promise<void>;
372
463
  } & {
373
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
374
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
464
+ getAdapterMapEntry(adapterConf: {
465
+ [x: string]: unknown;
466
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
467
+ getRefNameMapForAdapter(adapterConf: {
468
+ [x: string]: unknown;
469
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
375
470
  [x: string]: string | undefined;
376
471
  }>;
377
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
472
+ getReverseRefNameMapForAdapter(adapterConf: {
473
+ [x: string]: unknown;
474
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
378
475
  [x: string]: string | undefined;
379
476
  }>;
380
477
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
@@ -397,6 +494,16 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
397
494
  readonly initialized: boolean;
398
495
  readonly name: string;
399
496
  readonly regions: import("./assembly").BasicRegion[] | undefined;
497
+ /**
498
+ * #action
499
+ * private: you would generally want to add to manipulate
500
+ * jbrowse.assemblies, session.sessionAssemblies, or
501
+ * session.temporaryAssemblies instead of using this directly
502
+ *
503
+ * this can take an active instance of an assembly, in which case it is
504
+ * referred to, or it can take an identifier e.g. assembly name, which is
505
+ * used as a reference. snapshots cannot be used
506
+ */
400
507
  readonly aliases: string[];
401
508
  readonly displayName: string | undefined;
402
509
  hasName(name: string): boolean;
@@ -426,18 +533,24 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
426
533
  load(): Promise<void>;
427
534
  loadPre(): Promise<void>;
428
535
  } & {
429
- getAdapterMapEntry(adapterConf: unknown, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
430
- getRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
536
+ getAdapterMapEntry(adapterConf: {
537
+ [x: string]: unknown;
538
+ }, options: import("../data_adapters/BaseAdapter").BaseOptions): Promise<import("./assembly").RefNameMap>;
539
+ getRefNameMapForAdapter(adapterConf: {
540
+ [x: string]: unknown;
541
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
431
542
  [x: string]: string | undefined;
432
543
  }>;
433
- getReverseRefNameMapForAdapter(adapterConf: unknown, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
544
+ getReverseRefNameMapForAdapter(adapterConf: {
545
+ [x: string]: unknown;
546
+ }, opts: import("../data_adapters/BaseAdapter").BaseOptions): Promise<{
434
547
  [x: string]: string | undefined;
435
548
  }>;
436
549
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined>;
437
550
  /**
438
551
  * #method
439
552
  */
440
- getRefNameMapForAdapter(adapterConf: unknown, assemblyName: string | undefined, opts: {
553
+ getRefNameMapForAdapter(adapterConf: AdapterConf, assemblyName: string | undefined, opts: {
441
554
  signal?: AbortSignal;
442
555
  sessionId: string;
443
556
  }): Promise<{
@@ -446,7 +559,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
446
559
  /**
447
560
  * #method
448
561
  */
449
- getReverseRefNameMapForAdapter(adapterConf: unknown, assemblyName: string | undefined, opts: {
562
+ getReverseRefNameMapForAdapter(adapterConf: AdapterConf, assemblyName: string | undefined, opts: {
450
563
  signal?: AbortSignal;
451
564
  sessionId: string;
452
565
  }): Promise<{
@@ -92,7 +92,7 @@ function assemblyManagerFactory(conf, pm) {
92
92
  return undefined;
93
93
  }
94
94
  await assembly.load();
95
- await (0, util_1.when)(() => Boolean((assembly === null || assembly === void 0 ? void 0 : assembly.regions) && assembly.refNameAliases) ||
95
+ await (0, util_1.when)(() => !!((assembly === null || assembly === void 0 ? void 0 : assembly.regions) && assembly.refNameAliases) ||
96
96
  !!(assembly === null || assembly === void 0 ? void 0 : assembly.error));
97
97
  if (assembly.error) {
98
98
  throw assembly.error;
@@ -3,6 +3,7 @@ import PluginManager from '../PluginManager';
3
3
  import { AnyConfigurationSchemaType } from '../configuration';
4
4
  import { AnyDataAdapter } from './BaseAdapter';
5
5
  type ConfigSnap = SnapshotIn<AnyConfigurationSchemaType>;
6
+ export declare function adapterConfigCacheKey(conf?: Record<string, unknown>): string;
6
7
  interface AdapterCacheEntry {
7
8
  dataAdapter: AnyDataAdapter;
8
9
  sessionIds: Set<string>;
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.clearAdapterCache = exports.freeAdapterResources = exports.getAdapter = void 0;
6
+ exports.clearAdapterCache = exports.freeAdapterResources = exports.getAdapter = exports.adapterConfigCacheKey = void 0;
7
7
  const idMaker_1 = __importDefault(require("../util/idMaker"));
8
- function adapterConfigCacheKey(adapterConfig) {
9
- return `${(0, idMaker_1.default)(adapterConfig)}`;
8
+ function adapterConfigCacheKey(conf = {}) {
9
+ return `${(0, idMaker_1.default)(conf)}`;
10
10
  }
11
+ exports.adapterConfigCacheKey = adapterConfigCacheKey;
11
12
  let adapterCache = {};
12
13
  /**
13
14
  * instantiate a data adapter, or return an already-instantiated one if we have one with the same
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/core",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "JBrowse 2 core libraries used by plugins",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -36,7 +36,6 @@
36
36
  "canvas-sequencer": "^3.1.0",
37
37
  "canvas2svg": "^1.0.16",
38
38
  "clone": "^2.1.2",
39
- "clsx": "^2.0.0",
40
39
  "colord": "^2.9.3",
41
40
  "copy-to-clipboard": "^3.3.1",
42
41
  "deepmerge": "^4.2.2",
@@ -48,7 +47,6 @@
48
47
  "http-range-fetcher": "^2.0.0",
49
48
  "is-object": "^1.0.1",
50
49
  "jexl": "^2.3.0",
51
- "json-stable-stringify": "^1.0.1",
52
50
  "librpc-web-mod": "^1.1.5",
53
51
  "load-script": "^2.0.0",
54
52
  "material-ui-popup-state": "^5.0.0",
@@ -73,5 +71,5 @@
73
71
  "access": "public",
74
72
  "directory": "dist"
75
73
  },
76
- "gitHead": "a50b6f67cf8c8f3c65a7b8cd858de2fcca1f2909"
74
+ "gitHead": "223d8bfb68fd1bacaf22852639ad5920f1b7f43b"
77
75
  }