@jbrowse/core 2.0.1 → 2.1.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.
Files changed (179) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +6 -0
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +313 -592
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +213 -479
  4. package/BaseFeatureWidget/index.js +88 -126
  5. package/BaseFeatureWidget/types.js +1 -4
  6. package/BaseFeatureWidget/util.js +40 -75
  7. package/CorePlugin.js +55 -94
  8. package/Plugin.js +9 -34
  9. package/PluginLoader.js +153 -422
  10. package/PluginManager.d.ts +17 -14
  11. package/PluginManager.js +377 -666
  12. package/ReExports/Attributes.js +3 -10
  13. package/ReExports/BaseCard.js +3 -10
  14. package/ReExports/DataGrid.js +5 -12
  15. package/ReExports/FeatureDetails.js +3 -10
  16. package/ReExports/index.js +6 -12
  17. package/ReExports/list.d.ts +5 -0
  18. package/ReExports/list.js +271 -7
  19. package/ReExports/material-ui-colors.js +15 -16
  20. package/ReExports/modules.d.ts +0 -1
  21. package/ReExports/modules.js +453 -798
  22. package/TextSearch/BaseResults.js +51 -123
  23. package/TextSearch/TextSearchManager.js +66 -144
  24. package/assemblyManager/assembly.js +280 -555
  25. package/assemblyManager/assemblyConfigSchema.js +47 -64
  26. package/assemblyManager/assemblyManager.js +126 -272
  27. package/assemblyManager/index.js +9 -22
  28. package/configuration/configurationSchema.js +167 -203
  29. package/configuration/configurationSlot.js +248 -326
  30. package/configuration/index.js +19 -35
  31. package/configuration/util.js +131 -173
  32. package/data_adapters/BaseAdapter.d.ts +2 -2
  33. package/data_adapters/BaseAdapter.js +132 -521
  34. package/data_adapters/CytobandAdapter.js +40 -126
  35. package/data_adapters/dataAdapterCache.js +77 -158
  36. package/package.json +4 -5
  37. package/pluggableElementTypes/AdapterType.js +24 -79
  38. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +17 -0
  39. package/pluggableElementTypes/AddTrackWorkflowType.js +20 -0
  40. package/pluggableElementTypes/ConnectionType.js +22 -65
  41. package/pluggableElementTypes/DisplayType.js +35 -82
  42. package/pluggableElementTypes/InternetAccountType.js +23 -64
  43. package/pluggableElementTypes/PluggableElementBase.js +8 -20
  44. package/pluggableElementTypes/RpcMethodType.js +85 -427
  45. package/pluggableElementTypes/TextSearchAdapterType.js +16 -55
  46. package/pluggableElementTypes/TrackType.js +26 -70
  47. package/pluggableElementTypes/ViewType.js +21 -63
  48. package/pluggableElementTypes/WidgetType.js +21 -64
  49. package/pluggableElementTypes/index.d.ts +4 -3
  50. package/pluggableElementTypes/index.js +42 -125
  51. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +28 -43
  52. package/pluggableElementTypes/models/BaseDisplayModel.js +58 -95
  53. package/pluggableElementTypes/models/BaseTrackModel.js +139 -199
  54. package/pluggableElementTypes/models/BaseViewModel.js +24 -40
  55. package/pluggableElementTypes/models/InternetAccountModel.js +116 -263
  56. package/pluggableElementTypes/models/baseConnectionConfig.js +14 -25
  57. package/pluggableElementTypes/models/baseInternetAccountConfig.js +29 -38
  58. package/pluggableElementTypes/models/baseTrackConfig.js +106 -133
  59. package/pluggableElementTypes/models/index.js +21 -70
  60. package/pluggableElementTypes/renderers/BoxRendererType.js +132 -291
  61. package/pluggableElementTypes/renderers/CircularChordRendererType.js +8 -38
  62. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +60 -192
  63. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -2
  64. package/pluggableElementTypes/renderers/FeatureRendererType.js +89 -264
  65. package/pluggableElementTypes/renderers/RendererType.js +31 -105
  66. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +61 -72
  67. package/pluggableElementTypes/renderers/ServerSideRendererType.js +112 -265
  68. package/pluggableElementTypes/renderers/index.js +19 -62
  69. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +27 -65
  70. package/rpc/BaseRpcDriver.js +169 -405
  71. package/rpc/MainThreadRpcDriver.js +27 -150
  72. package/rpc/RpcManager.js +58 -159
  73. package/rpc/WebWorkerRpcDriver.js +54 -171
  74. package/rpc/configSchema.js +25 -49
  75. package/rpc/coreRpcMethods.js +221 -959
  76. package/rpc/remoteAbortSignals.js +46 -70
  77. package/tsconfig.build.tsbuildinfo +1 -1
  78. package/ui/AboutDialog.js +106 -162
  79. package/ui/App.js +157 -242
  80. package/ui/AssemblySelector.js +59 -120
  81. package/ui/CascadingMenu.js +101 -196
  82. package/ui/ColorPicker.d.ts +16 -0
  83. package/ui/ColorPicker.js +97 -0
  84. package/ui/Drawer.js +28 -61
  85. package/ui/DrawerWidget.js +108 -202
  86. package/ui/DropDownMenu.js +60 -91
  87. package/ui/EditableTypography.js +87 -149
  88. package/ui/ErrorMessage.js +41 -56
  89. package/ui/FactoryResetDialog.js +24 -57
  90. package/ui/FatalErrorDialog.js +59 -91
  91. package/ui/FileSelector/FileSelector.js +123 -189
  92. package/ui/FileSelector/LocalFileChooser.js +44 -75
  93. package/ui/FileSelector/UrlChooser.js +17 -38
  94. package/ui/FileSelector/index.js +6 -12
  95. package/ui/Icons.js +45 -69
  96. package/ui/Logo.js +57 -110
  97. package/ui/Menu.js +232 -354
  98. package/ui/PrerenderedCanvas.js +63 -87
  99. package/ui/ResizeHandle.js +87 -116
  100. package/ui/ReturnToImportFormDialog.js +32 -63
  101. package/ui/SanitizedHTML.js +64 -47
  102. package/ui/Snackbar.js +74 -101
  103. package/ui/SnackbarModel.js +37 -51
  104. package/ui/Tooltip.js +49 -76
  105. package/ui/ViewContainer.js +113 -196
  106. package/ui/colors.d.ts +10 -0
  107. package/ui/colors.js +78 -0
  108. package/ui/index.js +51 -181
  109. package/ui/react-colorful.d.ts +17 -0
  110. package/ui/react-colorful.js +455 -0
  111. package/ui/theme.js +199 -247
  112. package/util/Base1DUtils.js +163 -202
  113. package/util/Base1DViewModel.js +121 -168
  114. package/util/QuickLRU.js +84 -332
  115. package/util/TimeTraveller.d.ts +19 -0
  116. package/util/TimeTraveller.js +86 -0
  117. package/util/aborting.js +49 -127
  118. package/util/analytics.js +91 -154
  119. package/util/blockTypes.js +106 -240
  120. package/util/calculateDynamicBlocks.js +98 -128
  121. package/util/calculateStaticBlocks.js +105 -125
  122. package/util/color/cssColorsLevel4.js +156 -160
  123. package/util/color/index.js +33 -55
  124. package/util/compositeMap.js +49 -333
  125. package/util/formatFastaStrings.js +9 -14
  126. package/util/idMaker.js +18 -31
  127. package/util/index.d.ts +7 -20
  128. package/util/index.js +742 -1188
  129. package/util/io/RemoteFileWithRangeCache.js +88 -257
  130. package/util/io/index.js +95 -169
  131. package/util/jexl.js +60 -115
  132. package/util/jexlStrings.js +24 -29
  133. package/util/layouts/BaseLayout.js +1 -4
  134. package/util/layouts/GranularRectLayout.js +388 -555
  135. package/util/layouts/MultiLayout.js +41 -109
  136. package/util/layouts/PrecomputedLayout.js +56 -112
  137. package/util/layouts/PrecomputedMultiLayout.js +22 -59
  138. package/util/layouts/SceneGraph.js +127 -197
  139. package/util/layouts/index.js +29 -66
  140. package/util/mst-reflection.js +55 -71
  141. package/util/offscreenCanvasPonyfill.js +66 -134
  142. package/util/offscreenCanvasUtils.d.ts +2 -7
  143. package/util/offscreenCanvasUtils.js +49 -146
  144. package/util/range.js +29 -40
  145. package/util/rxjs.js +20 -27
  146. package/util/simpleFeature.js +88 -152
  147. package/util/stats.js +91 -151
  148. package/util/tracks.js +130 -173
  149. package/util/types/index.js +110 -179
  150. package/util/types/mst.js +91 -146
  151. package/util/types/util.js +1 -4
  152. package/util/when.js +54 -101
  153. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +0 -122
  154. package/BaseFeatureWidget/index.test.js +0 -69
  155. package/TextSearch/BaseResults.test.js +0 -42
  156. package/configuration/configurationSchema.test.js +0 -266
  157. package/configuration/configurationSlot.test.js +0 -69
  158. package/configuration/util.test.js +0 -39
  159. package/data_adapters/BaseAdapter.test.js +0 -200
  160. package/declare.d.js +0 -1
  161. package/pluggableElementTypes/RpcMethodType.test.js +0 -118
  162. package/pluggableElementTypes/renderers/declare.d.js +0 -1
  163. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +0 -20
  164. package/rpc/BaseRpcDriver.test.js +0 -540
  165. package/rpc/declaration.d.js +0 -1
  166. package/ui/FatalErrorDialog.test.js +0 -82
  167. package/ui/SanitizedHTML.test.js +0 -36
  168. package/ui/theme.test.js +0 -92
  169. package/util/Base1DViewModel.test.js +0 -130
  170. package/util/calculateDynamicBlocks.test.js +0 -74
  171. package/util/calculateStaticBlocks.test.js +0 -297
  172. package/util/declare.d.js +0 -1
  173. package/util/formatFastaStrings.test.js +0 -40
  174. package/util/index.test.js +0 -213
  175. package/util/jexlStrings.test.js +0 -48
  176. package/util/layouts/GranularRectLayout.test.js +0 -99
  177. package/util/range.test.js +0 -64
  178. package/util/simpleFeature.test.js +0 -34
  179. package/util/stats.test.js +0 -172
@@ -1,67 +1,50 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _configuration = require("../configuration");
9
-
10
- var _default = function _default(pluginManager) {
11
- return (0, _configuration.ConfigurationSchema)('BaseAssembly', {
12
- aliases: {
13
- type: 'stringArray',
14
- defaultValue: [],
15
- description: 'Other possible names for the assembly'
16
- },
17
- sequence: pluginManager.getTrackType('ReferenceSequenceTrack').configSchema,
18
- refNameColors: {
19
- type: 'stringArray',
20
- defaultValue: [],
21
- description: 'Define custom colors for each reference sequence. Will cycle through this list if there are not enough colors for every sequence.'
22
- },
23
- refNameAliases: (0, _configuration.ConfigurationSchema)('RefNameAliases', {
24
- adapter: pluginManager.pluggableConfigSchemaType('adapter')
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const configuration_1 = require("../configuration");
4
+ exports.default = (pluginManager) => {
5
+ return (0, configuration_1.ConfigurationSchema)('BaseAssembly', {
6
+ aliases: {
7
+ type: 'stringArray',
8
+ defaultValue: [],
9
+ description: 'Other possible names for the assembly',
10
+ },
11
+ sequence: pluginManager.getTrackType('ReferenceSequenceTrack')
12
+ .configSchema,
13
+ refNameColors: {
14
+ type: 'stringArray',
15
+ defaultValue: [],
16
+ description: 'Define custom colors for each reference sequence. Will cycle through this list if there are not enough colors for every sequence.',
17
+ },
18
+ refNameAliases: (0, configuration_1.ConfigurationSchema)('RefNameAliases', {
19
+ adapter: pluginManager.pluggableConfigSchemaType('adapter'),
20
+ }, {
21
+ preProcessSnapshot: snap => {
22
+ // allow refNameAliases to be unspecified
23
+ // @ts-ignore
24
+ if (!snap.adapter) {
25
+ return { adapter: { type: 'RefNameAliasAdapter' } };
26
+ }
27
+ return snap;
28
+ },
29
+ }),
30
+ cytobands: (0, configuration_1.ConfigurationSchema)('Cytoband', {
31
+ adapter: pluginManager.pluggableConfigSchemaType('adapter'),
32
+ }, {
33
+ preProcessSnapshot: snap => {
34
+ // allow cytoBand to be unspecified
35
+ // @ts-ignore
36
+ if (!snap.adapter) {
37
+ return { adapter: { type: 'CytobandAdapter' } };
38
+ }
39
+ return snap;
40
+ },
41
+ }),
42
+ displayName: {
43
+ type: 'string',
44
+ defaultValue: '',
45
+ description: 'A human readable display name for the assembly e.g. "Homo sapiens (hg38)" while the assembly name may just be "hg38"',
46
+ },
25
47
  }, {
26
- preProcessSnapshot: function preProcessSnapshot(snap) {
27
- // allow refNameAliases to be unspecified
28
- // @ts-ignore
29
- if (!snap.adapter) {
30
- return {
31
- adapter: {
32
- type: 'RefNameAliasAdapter'
33
- }
34
- };
35
- }
36
-
37
- return snap;
38
- }
39
- }),
40
- cytobands: (0, _configuration.ConfigurationSchema)('Cytoband', {
41
- adapter: pluginManager.pluggableConfigSchemaType('adapter')
42
- }, {
43
- preProcessSnapshot: function preProcessSnapshot(snap) {
44
- // allow cytoBand to be unspecified
45
- // @ts-ignore
46
- if (!snap.adapter) {
47
- return {
48
- adapter: {
49
- type: 'CytobandAdapter'
50
- }
51
- };
52
- }
53
-
54
- return snap;
55
- }
56
- }),
57
- displayName: {
58
- type: 'string',
59
- defaultValue: '',
60
- description: 'A human readable display name for the assembly e.g. "Homo sapiens (hg38)" while the assembly name may just be "hg38"'
61
- }
62
- }, {
63
- explicitIdentifier: 'name'
64
- });
48
+ explicitIdentifier: 'name',
49
+ });
65
50
  };
66
-
67
- exports.default = _default;
@@ -1,280 +1,134 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = assemblyManagerFactory;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _mobx = require("mobx");
17
-
18
- var _mobxStateTree = require("mobx-state-tree");
19
-
20
- var _util = require("../util");
21
-
22
- var _configuration = require("../configuration");
23
-
24
- var _assembly = _interopRequireDefault(require("./assembly"));
25
-
26
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
27
-
28
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
29
-
30
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mobx_1 = require("mobx");
7
+ const mobx_state_tree_1 = require("mobx-state-tree");
8
+ const util_1 = require("../util");
9
+ const configuration_1 = require("../configuration");
10
+ const assembly_1 = __importDefault(require("./assembly"));
32
11
  function assemblyManagerFactory(assemblyConfigType, pluginManager) {
33
- var Assembly = (0, _assembly.default)(assemblyConfigType, pluginManager);
34
- return _mobxStateTree.types.model({
35
- assemblies: _mobxStateTree.types.array(Assembly)
36
- }).views(function (self) {
37
- return {
38
- get: function get(assemblyName) {
39
- return self.assemblies.find(function (assembly) {
40
- return assembly.hasName(assemblyName);
41
- });
42
- },
43
-
44
- get assemblyNamesList() {
45
- return this.assemblyList.map(function (asm) {
46
- return asm.name;
47
- });
48
- },
49
-
50
- get assemblyList() {
51
- // name is the explicit identifier and can be accessed without getConf,
52
- // hence the union with {name:string}
53
- var _getParent = (0, _mobxStateTree.getParent)(self),
54
- assemblies = _getParent.jbrowse.assemblies,
55
- _getParent$session = _getParent.session;
56
-
57
- _getParent$session = _getParent$session === void 0 ? {} : _getParent$session;
58
- var _getParent$session$se = _getParent$session.sessionAssemblies,
59
- sessionAssemblies = _getParent$session$se === void 0 ? [] : _getParent$session$se;
60
- return [].concat((0, _toConsumableArray2.default)(assemblies), (0, _toConsumableArray2.default)(sessionAssemblies));
61
- },
62
-
63
- get rpcManager() {
64
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
- return (0, _mobxStateTree.getParent)(self).rpcManager;
66
- },
67
-
68
- get pluginManager() {
69
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
- return (0, _mobxStateTree.getParent)(self).pluginManager;
71
- },
72
-
73
- get allPossibleRefNames() {
74
- var refNames = [];
75
-
76
- var _iterator = _createForOfIteratorHelper(self.assemblies),
77
- _step;
78
-
79
- try {
80
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
81
- var assembly = _step.value;
82
-
83
- if (!assembly.allRefNames) {
84
- return undefined;
12
+ const Assembly = (0, assembly_1.default)(assemblyConfigType, pluginManager);
13
+ return mobx_state_tree_1.types
14
+ .model({
15
+ assemblies: mobx_state_tree_1.types.array(Assembly),
16
+ })
17
+ .views(self => ({
18
+ get(assemblyName) {
19
+ return self.assemblies.find(assembly => assembly.hasName(assemblyName));
20
+ },
21
+ get assemblyNamesList() {
22
+ return this.assemblyList.map(asm => asm.name);
23
+ },
24
+ get assemblyList() {
25
+ // name is the explicit identifier and can be accessed without getConf,
26
+ // hence the union with {name:string}
27
+ const { jbrowse: { assemblies }, session: { sessionAssemblies = [] } = {},
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ } = (0, mobx_state_tree_1.getParent)(self);
30
+ return [
31
+ ...assemblies,
32
+ ...sessionAssemblies,
33
+ ];
34
+ },
35
+ get rpcManager() {
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ return (0, mobx_state_tree_1.getParent)(self).rpcManager;
38
+ },
39
+ get pluginManager() {
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ return (0, mobx_state_tree_1.getParent)(self).pluginManager;
42
+ },
43
+ get allPossibleRefNames() {
44
+ let refNames = [];
45
+ for (const assembly of self.assemblies) {
46
+ if (!assembly.allRefNames) {
47
+ return undefined;
48
+ }
49
+ refNames = refNames.concat(assembly.allRefNames);
85
50
  }
86
-
87
- refNames = refNames.concat(assembly.allRefNames);
88
- }
89
- } catch (err) {
90
- _iterator.e(err);
91
- } finally {
92
- _iterator.f();
93
- }
94
-
95
- return refNames;
96
- }
97
-
98
- };
99
- }).views(function (self) {
100
- return {
101
- // use this method instead of assemblyManager.get(assemblyName)
102
- // get an assembly with regions loaded
103
- waitForAssembly: function waitForAssembly(assemblyName) {
104
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
105
- var assembly;
106
- return _regenerator.default.wrap(function _callee$(_context) {
107
- while (1) {
108
- switch (_context.prev = _context.next) {
109
- case 0:
110
- if (assemblyName) {
111
- _context.next = 2;
112
- break;
113
- }
114
-
115
- throw new Error('no assembly name supplied to waitForAssembly');
116
-
117
- case 2:
118
- assembly = self.get(assemblyName);
119
-
120
- if (assembly) {
121
- _context.next = 5;
122
- break;
123
- }
124
-
125
- return _context.abrupt("return", undefined);
126
-
127
- case 5:
128
- _context.next = 7;
129
- return (0, _util.when)(function () {
130
- return Boolean(assembly.regions && assembly.refNameAliases) || !!assembly.error;
131
- });
132
-
133
- case 7:
134
- if (!assembly.error) {
135
- _context.next = 9;
136
- break;
137
- }
138
-
139
- throw assembly.error;
140
-
141
- case 9:
142
- return _context.abrupt("return", assembly);
143
-
144
- case 10:
145
- case "end":
146
- return _context.stop();
147
- }
51
+ return refNames;
52
+ },
53
+ }))
54
+ .views(self => ({
55
+ // use this method instead of assemblyManager.get(assemblyName)
56
+ // get an assembly with regions loaded
57
+ async waitForAssembly(assemblyName) {
58
+ if (!assemblyName) {
59
+ throw new Error('no assembly name supplied to waitForAssembly');
148
60
  }
149
- }, _callee);
150
- }))();
151
- },
152
- getRefNameMapForAdapter: function getRefNameMapForAdapter(adapterConf, assemblyName, opts) {
153
- var _this = this;
154
-
155
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
156
- var asm;
157
- return _regenerator.default.wrap(function _callee2$(_context2) {
158
- while (1) {
159
- switch (_context2.prev = _context2.next) {
160
- case 0:
161
- if (!assemblyName) {
162
- _context2.next = 5;
163
- break;
164
- }
165
-
166
- _context2.next = 3;
167
- return _this.waitForAssembly(assemblyName);
168
-
169
- case 3:
170
- asm = _context2.sent;
171
- return _context2.abrupt("return", asm === null || asm === void 0 ? void 0 : asm.getRefNameMapForAdapter(adapterConf, opts));
172
-
173
- case 5:
174
- return _context2.abrupt("return", {});
175
-
176
- case 6:
177
- case "end":
178
- return _context2.stop();
179
- }
61
+ const assembly = self.get(assemblyName);
62
+ if (!assembly) {
63
+ return undefined;
180
64
  }
181
- }, _callee2);
182
- }))();
183
- },
184
- getReverseRefNameMapForAdapter: function getReverseRefNameMapForAdapter(adapterConf, assemblyName, opts) {
185
- var _this2 = this;
186
-
187
- return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
188
- var asm;
189
- return _regenerator.default.wrap(function _callee3$(_context3) {
190
- while (1) {
191
- switch (_context3.prev = _context3.next) {
192
- case 0:
193
- if (!assemblyName) {
194
- _context3.next = 5;
195
- break;
196
- }
197
-
198
- _context3.next = 3;
199
- return _this2.waitForAssembly(assemblyName);
200
-
201
- case 3:
202
- asm = _context3.sent;
203
- return _context3.abrupt("return", asm === null || asm === void 0 ? void 0 : asm.getReverseRefNameMapForAdapter(adapterConf, opts));
204
-
205
- case 5:
206
- return _context3.abrupt("return", {});
207
-
208
- case 6:
209
- case "end":
210
- return _context3.stop();
211
- }
65
+ await (0, util_1.when)(() => Boolean(assembly.regions && assembly.refNameAliases) ||
66
+ !!assembly.error);
67
+ if (assembly.error) {
68
+ throw assembly.error;
212
69
  }
213
- }, _callee3);
214
- }))();
215
- },
216
- isValidRefName: function isValidRefName(refName, assemblyName) {
217
- if (assemblyName) {
218
- var assembly = self.get(assemblyName);
219
-
220
- if (assembly) {
221
- return assembly.isValidRefName(refName);
222
- }
223
-
224
- throw new Error("isValidRefName for ".concat(assemblyName, " failed, assembly does not exist"));
225
- }
226
-
227
- if (!self.allPossibleRefNames) {
228
- throw new Error("isValidRefName not available, assemblyManager has not yet finished loading. If you are looking for a refname in a specific assembly, pass assembly argument");
229
- }
230
-
231
- return self.allPossibleRefNames.includes(refName);
232
- }
233
- };
234
- }).actions(function (self) {
235
- return {
236
- removeAssembly: function removeAssembly(asm) {
237
- self.assemblies.remove(asm);
238
- },
239
- afterAttach: function afterAttach() {
240
- var _this3 = this;
241
-
242
- (0, _mobxStateTree.addDisposer)(self, (0, _mobx.reaction)( // have to slice it to be properly reacted to
243
- function () {
244
- return self.assemblyList;
245
- }, function (assemblyConfigs) {
246
- self.assemblies.forEach(function (asm) {
247
- if (!asm.configuration) {
248
- _this3.removeAssembly(asm);
70
+ return assembly;
71
+ },
72
+ async getRefNameMapForAdapter(adapterConf, assemblyName, opts) {
73
+ if (assemblyName) {
74
+ const asm = await this.waitForAssembly(assemblyName);
75
+ return asm === null || asm === void 0 ? void 0 : asm.getRefNameMapForAdapter(adapterConf, opts);
249
76
  }
250
- });
251
- assemblyConfigs.forEach(function (assemblyConfig) {
252
- var existingAssemblyIdx = self.assemblies.findIndex(function (assembly) {
253
- return assembly.name === (0, _configuration.readConfObject)(assemblyConfig, 'name');
254
- });
255
-
256
- if (existingAssemblyIdx === -1) {
257
- _this3.addAssembly(assemblyConfig);
77
+ return {};
78
+ },
79
+ async getReverseRefNameMapForAdapter(adapterConf, assemblyName, opts) {
80
+ if (assemblyName) {
81
+ const asm = await this.waitForAssembly(assemblyName);
82
+ return asm === null || asm === void 0 ? void 0 : asm.getReverseRefNameMapForAdapter(adapterConf, opts);
83
+ }
84
+ return {};
85
+ },
86
+ isValidRefName(refName, assemblyName) {
87
+ if (assemblyName) {
88
+ const assembly = self.get(assemblyName);
89
+ if (assembly) {
90
+ return assembly.isValidRefName(refName);
91
+ }
92
+ throw new Error(`isValidRefName for ${assemblyName} failed, assembly does not exist`);
258
93
  }
259
- });
260
- }, {
261
- fireImmediately: true,
262
- name: 'assemblyManagerAfterAttach'
263
- }));
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
- addAssembly: function addAssembly(assemblyConfig) {
269
- self.assemblies.push({
270
- configuration: assemblyConfig
271
- });
272
- },
273
- replaceAssembly: function replaceAssembly(idx, assemblyConfig) {
274
- self.assemblies[idx] = (0, _mobxStateTree.cast)({
275
- configuration: assemblyConfig
276
- });
277
- }
278
- };
279
- });
280
- }
94
+ if (!self.allPossibleRefNames) {
95
+ throw new Error(`isValidRefName not available, assemblyManager has not yet finished loading. If you are looking for a refname in a specific assembly, pass assembly argument`);
96
+ }
97
+ return self.allPossibleRefNames.includes(refName);
98
+ },
99
+ }))
100
+ .actions(self => ({
101
+ removeAssembly(asm) {
102
+ self.assemblies.remove(asm);
103
+ },
104
+ afterAttach() {
105
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.reaction)(
106
+ // have to slice it to be properly reacted to
107
+ () => self.assemblyList, assemblyConfigs => {
108
+ self.assemblies.forEach(asm => {
109
+ if (!asm.configuration) {
110
+ this.removeAssembly(asm);
111
+ }
112
+ });
113
+ assemblyConfigs.forEach(assemblyConfig => {
114
+ const existingAssemblyIdx = self.assemblies.findIndex(assembly => assembly.name === (0, configuration_1.readConfObject)(assemblyConfig, 'name'));
115
+ if (existingAssemblyIdx === -1) {
116
+ this.addAssembly(assemblyConfig);
117
+ }
118
+ });
119
+ }, { fireImmediately: true, name: 'assemblyManagerAfterAttach' }));
120
+ },
121
+ // this can take an active instance of an assembly, in which case it is
122
+ // referred to, or it can take an identifier e.g. assembly name, which is
123
+ // used as a reference. snapshots cannot be used
124
+ addAssembly(assemblyConfig) {
125
+ self.assemblies.push({ configuration: assemblyConfig });
126
+ },
127
+ replaceAssembly(idx, assemblyConfig) {
128
+ self.assemblies[idx] = (0, mobx_state_tree_1.cast)({
129
+ configuration: assemblyConfig,
130
+ });
131
+ },
132
+ }));
133
+ }
134
+ exports.default = assemblyManagerFactory;
@@ -1,23 +1,10 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "assemblyConfigSchemaFactory", {
9
- enumerable: true,
10
- get: function get() {
11
- return _assemblyConfigSchema.default;
12
- }
13
- });
14
- Object.defineProperty(exports, "default", {
15
- enumerable: true,
16
- get: function get() {
17
- return _assemblyManager.default;
18
- }
19
- });
20
-
21
- var _assemblyManager = _interopRequireDefault(require("./assemblyManager"));
22
-
23
- var _assemblyConfigSchema = _interopRequireDefault(require("./assemblyConfigSchema"));
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.assemblyConfigSchemaFactory = exports.default = void 0;
7
+ var assemblyManager_1 = require("./assemblyManager");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(assemblyManager_1).default; } });
9
+ var assemblyConfigSchema_1 = require("./assemblyConfigSchema");
10
+ Object.defineProperty(exports, "assemblyConfigSchemaFactory", { enumerable: true, get: function () { return __importDefault(assemblyConfigSchema_1).default; } });