@jbrowse/core 2.17.0 → 3.0.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 (354) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +1 -2
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +7 -13
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +1 -2
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +20 -25
  5. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +2 -3
  6. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +3 -7
  7. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -2
  8. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +5 -8
  9. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +2 -3
  10. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +7 -10
  11. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -2
  12. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +25 -55
  13. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +3 -4
  14. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +16 -34
  15. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -2
  16. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -6
  17. package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +2 -3
  18. package/BaseFeatureWidget/BaseFeatureDetail/Position.js +2 -5
  19. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +1 -2
  20. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -5
  21. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +1 -2
  22. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +3 -5
  23. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +4 -5
  24. package/BaseFeatureWidget/BaseFeatureDetail/index.js +6 -14
  25. package/BaseFeatureWidget/BaseFeatureDetail/util.js +4 -13
  26. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +10 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +48 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +3 -4
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +33 -41
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +3 -4
  31. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +30 -29
  32. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +8 -0
  33. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +28 -0
  34. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +2 -10
  35. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +11 -85
  36. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -2
  37. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +6 -25
  38. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +3 -4
  39. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -46
  40. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +3 -4
  41. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +101 -96
  42. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +2 -3
  43. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +49 -53
  44. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +2 -3
  45. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +20 -55
  46. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +2 -2
  47. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +1 -2
  48. package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +2 -56
  49. package/BaseFeatureWidget/SequenceFeatureDetails/model.js +4 -66
  50. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +4 -5
  51. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +6 -9
  52. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +3 -4
  53. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +6 -7
  54. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +3 -4
  55. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +5 -9
  56. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +3 -4
  57. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +2 -4
  58. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +2 -3
  59. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +3 -10
  60. package/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -0
  61. package/BaseFeatureWidget/SequenceFeatureDetails/types.js +2 -0
  62. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +1 -5
  63. package/BaseFeatureWidget/stateModelFactory.d.ts +2 -93
  64. package/BaseFeatureWidget/stateModelFactory.js +3 -73
  65. package/BaseFeatureWidget/types.d.ts +3 -3
  66. package/BaseFeatureWidget/util.js +0 -4
  67. package/CorePlugin.d.ts +1 -1
  68. package/CorePlugin.js +19 -12
  69. package/Plugin.d.ts +2 -5
  70. package/Plugin.js +0 -3
  71. package/PluginLoader.d.ts +1 -1
  72. package/PluginLoader.js +2 -19
  73. package/PluginManager.d.ts +17 -32
  74. package/PluginManager.js +15 -41
  75. package/ReExports/DataGrid.js +0 -1
  76. package/ReExports/list.d.ts +0 -5
  77. package/ReExports/list.js +3 -5
  78. package/ReExports/modules.d.ts +26 -22
  79. package/ReExports/modules.js +45 -44
  80. package/TextSearch/BaseResults.d.ts +4 -4
  81. package/TextSearch/TextSearchManager.d.ts +4 -16
  82. package/TextSearch/TextSearchManager.js +1 -13
  83. package/assemblyManager/assembly.d.ts +5 -100
  84. package/assemblyManager/assembly.js +30 -146
  85. package/assemblyManager/assemblyConfigSchema.d.ts +1 -34
  86. package/assemblyManager/assemblyConfigSchema.js +12 -46
  87. package/assemblyManager/assemblyManager.d.ts +7 -57
  88. package/assemblyManager/assemblyManager.js +2 -57
  89. package/configuration/configurationSchema.d.ts +4 -4
  90. package/configuration/configurationSchema.js +2 -14
  91. package/configuration/configurationSlot.d.ts +2 -13
  92. package/configuration/configurationSlot.js +2 -32
  93. package/configuration/index.d.ts +2 -2
  94. package/configuration/index.js +2 -2
  95. package/configuration/types.d.ts +2 -3
  96. package/configuration/util.d.ts +1 -25
  97. package/configuration/util.js +19 -56
  98. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +4 -14
  99. package/data_adapters/BaseAdapter/BaseAdapter.js +1 -10
  100. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +5 -114
  101. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +3 -79
  102. package/data_adapters/BaseAdapter/BaseOptions.d.ts +2 -2
  103. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +2 -2
  104. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +3 -6
  105. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +3 -3
  106. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +3 -3
  107. package/data_adapters/BaseAdapter/index.d.ts +4 -4
  108. package/data_adapters/BaseAdapter/types.d.ts +2 -2
  109. package/data_adapters/BaseAdapter/util.d.ts +6 -6
  110. package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  111. package/data_adapters/CytobandAdapter/CytobandAdapter.js +2 -6
  112. package/data_adapters/CytobandAdapter/configSchema.d.ts +0 -3
  113. package/data_adapters/CytobandAdapter/configSchema.js +1 -7
  114. package/data_adapters/CytobandAdapter/index.d.ts +1 -1
  115. package/data_adapters/CytobandAdapter/index.js +21 -8
  116. package/data_adapters/dataAdapterCache.d.ts +4 -22
  117. package/data_adapters/dataAdapterCache.js +2 -28
  118. package/data_adapters/util.d.ts +1 -0
  119. package/data_adapters/util.js +10 -0
  120. package/package.json +8 -11
  121. package/pluggableElementTypes/AdapterType.d.ts +2 -2
  122. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +2 -2
  123. package/pluggableElementTypes/ConnectionType.d.ts +3 -3
  124. package/pluggableElementTypes/DisplayType.d.ts +3 -9
  125. package/pluggableElementTypes/InternetAccountType.d.ts +2 -2
  126. package/pluggableElementTypes/PluggableElementBase.d.ts +1 -1
  127. package/pluggableElementTypes/PluggableElementBase.js +2 -2
  128. package/pluggableElementTypes/RpcMethodType.d.ts +5 -11
  129. package/pluggableElementTypes/RpcMethodType.js +7 -19
  130. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +9 -0
  131. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +35 -0
  132. package/pluggableElementTypes/TextSearchAdapterType.d.ts +2 -2
  133. package/pluggableElementTypes/TrackType.d.ts +3 -3
  134. package/pluggableElementTypes/ViewType.d.ts +3 -3
  135. package/pluggableElementTypes/WidgetType.d.ts +4 -3
  136. package/pluggableElementTypes/index.d.ts +11 -11
  137. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -29
  138. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +1 -28
  139. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +3 -83
  140. package/pluggableElementTypes/models/BaseDisplayModel.js +2 -69
  141. package/pluggableElementTypes/models/BaseTrackModel.d.ts +4 -46
  142. package/pluggableElementTypes/models/BaseTrackModel.js +9 -63
  143. package/pluggableElementTypes/models/BaseViewModel.d.ts +2 -42
  144. package/pluggableElementTypes/models/BaseViewModel.js +2 -38
  145. package/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -119
  146. package/pluggableElementTypes/models/InternetAccountModel.js +3 -123
  147. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +0 -6
  148. package/pluggableElementTypes/models/baseConnectionConfig.js +1 -13
  149. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -15
  150. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -23
  151. package/pluggableElementTypes/models/baseTrackConfig.d.ts +2 -53
  152. package/pluggableElementTypes/models/baseTrackConfig.js +1 -58
  153. package/pluggableElementTypes/renderers/BoxRendererType.d.ts +7 -15
  154. package/pluggableElementTypes/renderers/BoxRendererType.js +3 -14
  155. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +4 -4
  156. package/pluggableElementTypes/renderers/CircularChordRendererType.js +3 -8
  157. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +6 -21
  158. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +2 -25
  159. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +5 -47
  160. package/pluggableElementTypes/renderers/FeatureRendererType.js +15 -68
  161. package/pluggableElementTypes/renderers/RendererType.d.ts +5 -9
  162. package/pluggableElementTypes/renderers/RendererType.js +3 -7
  163. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +3 -4
  164. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +11 -76
  165. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +2 -3
  166. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +10 -74
  167. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +9 -49
  168. package/pluggableElementTypes/renderers/ServerSideRendererType.js +10 -60
  169. package/pluggableElementTypes/renderers/index.d.ts +1 -1
  170. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +1 -3
  171. package/rpc/BaseRpcDriver.d.ts +3 -4
  172. package/rpc/BaseRpcDriver.js +20 -80
  173. package/rpc/MainThreadRpcDriver.d.ts +3 -7
  174. package/rpc/MainThreadRpcDriver.js +0 -5
  175. package/rpc/RpcManager.d.ts +3 -3
  176. package/rpc/RpcManager.js +2 -4
  177. package/rpc/WebWorkerRpcDriver.d.ts +3 -2
  178. package/rpc/WebWorkerRpcDriver.js +2 -13
  179. package/rpc/baseRpcConfig.d.ts +0 -3
  180. package/rpc/baseRpcConfig.js +1 -7
  181. package/rpc/configSchema.d.ts +0 -6
  182. package/rpc/configSchema.js +2 -11
  183. package/rpc/mainThreadRpcConfig.js +1 -7
  184. package/rpc/methods/CoreFreeResources.d.ts +0 -6
  185. package/rpc/methods/CoreFreeResources.js +2 -9
  186. package/rpc/methods/CoreGetFeatureDensityStats.d.ts +4 -5
  187. package/rpc/methods/CoreGetFeatureDensityStats.js +1 -1
  188. package/rpc/methods/CoreGetFeatureDetails.d.ts +2 -7
  189. package/rpc/methods/CoreGetFeatureDetails.js +0 -5
  190. package/rpc/methods/CoreGetFeatures.d.ts +5 -5
  191. package/rpc/methods/CoreGetFeatures.js +4 -5
  192. package/rpc/methods/CoreGetFileInfo.d.ts +1 -2
  193. package/rpc/methods/CoreGetFileInfo.js +1 -1
  194. package/rpc/methods/CoreGetMetadata.d.ts +1 -2
  195. package/rpc/methods/CoreGetMetadata.js +1 -1
  196. package/rpc/methods/CoreGetRefNames.d.ts +1 -2
  197. package/rpc/methods/CoreGetRefNames.js +1 -1
  198. package/rpc/methods/CoreRender.d.ts +2 -6
  199. package/rpc/methods/CoreRender.js +5 -7
  200. package/rpc/methods/util.d.ts +3 -3
  201. package/rpc/methods/util.js +0 -1
  202. package/rpc/webWorkerRpcConfig.js +1 -7
  203. package/stories/JBrowseCore.stories.d.ts +1 -1
  204. package/stories/JBrowseCore.stories.js +3 -3
  205. package/stories/examples/WithSequencePanel.d.ts +6 -7
  206. package/stories/examples/WithSequencePanel.js +9 -9
  207. package/tsconfig.build.tsbuildinfo +1 -1
  208. package/ui/AppLogo.d.ts +2 -3
  209. package/ui/AppLogo.js +2 -7
  210. package/ui/AssemblySelector.d.ts +5 -5
  211. package/ui/AssemblySelector.js +11 -36
  212. package/ui/BaseTooltip.d.ts +1 -2
  213. package/ui/BaseTooltip.js +10 -17
  214. package/ui/CascadingMenu.d.ts +3 -4
  215. package/ui/CascadingMenu.js +18 -57
  216. package/ui/CascadingMenuButton.d.ts +2 -3
  217. package/ui/CascadingMenuButton.js +18 -42
  218. package/ui/ColorPicker.d.ts +3 -4
  219. package/ui/ColorPicker.js +33 -37
  220. package/ui/Dialog.d.ts +2 -3
  221. package/ui/Dialog.js +15 -27
  222. package/ui/DraggableDialog.d.ts +5 -0
  223. package/ui/DraggableDialog.js +32 -0
  224. package/ui/DropDownMenu.d.ts +2 -3
  225. package/ui/DropDownMenu.js +10 -36
  226. package/ui/EditableTypography.d.ts +2 -3
  227. package/ui/EditableTypography.js +30 -59
  228. package/ui/ErrorBoundary.d.ts +3 -2
  229. package/ui/ErrorBoundary.js +3 -25
  230. package/ui/ErrorMessage.d.ts +1 -2
  231. package/ui/ErrorMessage.js +27 -34
  232. package/ui/ErrorMessageStackTraceDialog.d.ts +1 -2
  233. package/ui/ErrorMessageStackTraceDialog.js +13 -54
  234. package/ui/FactoryResetDialog.d.ts +1 -2
  235. package/ui/FactoryResetDialog.js +8 -13
  236. package/ui/FatalErrorDialog.d.ts +1 -2
  237. package/ui/FatalErrorDialog.js +11 -42
  238. package/ui/FileSelector/FileSelector.d.ts +5 -5
  239. package/ui/FileSelector/FileSelector.js +41 -80
  240. package/ui/FileSelector/LocalFileChooser.d.ts +2 -3
  241. package/ui/FileSelector/LocalFileChooser.js +17 -29
  242. package/ui/FileSelector/UrlChooser.d.ts +5 -5
  243. package/ui/FileSelector/UrlChooser.js +6 -7
  244. package/ui/Icons.d.ts +10 -11
  245. package/ui/Icons.js +10 -25
  246. package/ui/LoadingEllipses.d.ts +2 -3
  247. package/ui/LoadingEllipses.js +4 -7
  248. package/ui/Logo.d.ts +2 -3
  249. package/ui/Logo.js +5 -23
  250. package/ui/Menu.d.ts +3 -4
  251. package/ui/Menu.js +85 -122
  252. package/ui/MenuButton.d.ts +2 -3
  253. package/ui/MenuButton.js +11 -35
  254. package/ui/PrerenderedCanvas.d.ts +1 -2
  255. package/ui/PrerenderedCanvas.js +3 -25
  256. package/ui/RedErrorMessageBox.d.ts +1 -2
  257. package/ui/RedErrorMessageBox.js +2 -5
  258. package/ui/ResizeHandle.d.ts +1 -2
  259. package/ui/ResizeHandle.js +5 -27
  260. package/ui/ReturnToImportFormDialog.d.ts +1 -2
  261. package/ui/ReturnToImportFormDialog.js +8 -13
  262. package/ui/SanitizedHTML.d.ts +2 -3
  263. package/ui/SanitizedHTML.js +4 -24
  264. package/ui/Snackbar.d.ts +3 -4
  265. package/ui/Snackbar.js +41 -21
  266. package/ui/SnackbarContents.d.ts +5 -0
  267. package/ui/SnackbarContents.js +16 -0
  268. package/ui/SnackbarModel.d.ts +1 -26
  269. package/ui/SnackbarModel.js +22 -39
  270. package/ui/colors.d.ts +1 -1
  271. package/ui/colors.js +2 -2
  272. package/ui/index.d.ts +0 -2
  273. package/ui/index.js +1 -5
  274. package/ui/react-colorful.js +17 -10
  275. package/ui/theme.d.ts +1 -1
  276. package/ui/theme.js +7 -40
  277. package/util/Base1DUtils.d.ts +1 -1
  278. package/util/Base1DUtils.js +0 -12
  279. package/util/Base1DViewModel.d.ts +4 -81
  280. package/util/Base1DViewModel.js +4 -108
  281. package/util/QuickLRU.js +0 -9
  282. package/util/TimeTraveller.js +0 -4
  283. package/util/aborting.d.ts +0 -20
  284. package/util/aborting.js +0 -31
  285. package/util/analytics.js +1 -12
  286. package/util/blockTypes.d.ts +0 -11
  287. package/util/blockTypes.js +0 -13
  288. package/util/calculateDynamicBlocks.d.ts +1 -20
  289. package/util/calculateDynamicBlocks.js +1 -22
  290. package/util/calculateStaticBlocks.d.ts +2 -2
  291. package/util/calculateStaticBlocks.js +0 -2
  292. package/util/color/cssColorsLevel4.js +0 -1
  293. package/util/color/index.d.ts +0 -19
  294. package/util/color/index.js +0 -30
  295. package/util/compositeMap.js +0 -2
  296. package/util/dedupe.js +0 -1
  297. package/util/formatFastaStrings.d.ts +0 -13
  298. package/util/formatFastaStrings.js +0 -13
  299. package/util/idMaker.d.ts +1 -1
  300. package/util/idMaker.js +16 -12
  301. package/util/index.d.ts +27 -173
  302. package/util/index.js +53 -293
  303. package/util/io/RemoteFileWithRangeCache.d.ts +4 -5
  304. package/util/io/RemoteFileWithRangeCache.js +12 -14
  305. package/util/io/index.d.ts +3 -4
  306. package/util/io/index.js +5 -19
  307. package/util/jexl.js +3 -13
  308. package/util/jexlStrings.d.ts +0 -6
  309. package/util/jexlStrings.js +0 -8
  310. package/util/layouts/BaseLayout.d.ts +1 -1
  311. package/util/layouts/GranularRectLayout.d.ts +1 -17
  312. package/util/layouts/GranularRectLayout.js +4 -81
  313. package/util/layouts/MultiLayout.d.ts +1 -6
  314. package/util/layouts/MultiLayout.js +0 -6
  315. package/util/layouts/PrecomputedLayout.d.ts +1 -4
  316. package/util/layouts/PrecomputedLayout.js +0 -5
  317. package/util/layouts/PrecomputedMultiLayout.js +0 -2
  318. package/util/layouts/SceneGraph.d.ts +0 -12
  319. package/util/layouts/SceneGraph.js +0 -13
  320. package/util/makeAbortableReaction.d.ts +2 -0
  321. package/util/makeAbortableReaction.js +50 -0
  322. package/util/map-obj.js +0 -4
  323. package/util/mst-reflection.d.ts +1 -14
  324. package/util/mst-reflection.js +1 -28
  325. package/util/nanoid.d.ts +1 -1
  326. package/util/nanoid.js +0 -31
  327. package/util/nextTick.d.ts +1 -0
  328. package/util/nextTick.js +6 -0
  329. package/util/offscreenCanvasPonyfill.d.ts +0 -1
  330. package/util/offscreenCanvasPonyfill.js +1 -9
  331. package/util/offscreenCanvasUtils.d.ts +2 -3
  332. package/util/offscreenCanvasUtils.js +22 -21
  333. package/util/range.d.ts +0 -25
  334. package/util/range.js +0 -34
  335. package/util/rxjs.d.ts +3 -7
  336. package/util/rxjs.js +2 -9
  337. package/util/simpleFeature.d.ts +0 -50
  338. package/util/simpleFeature.js +0 -35
  339. package/util/stats.d.ts +3 -26
  340. package/util/stats.js +0 -25
  341. package/util/stopToken.d.ts +3 -0
  342. package/util/stopToken.js +29 -0
  343. package/util/tracks.d.ts +4 -26
  344. package/util/tracks.js +8 -33
  345. package/util/types/index.d.ts +14 -30
  346. package/util/types/index.js +5 -14
  347. package/util/types/mst.js +0 -9
  348. package/util/types/util.d.ts +2 -9
  349. package/util/useMeasure.d.ts +1 -1
  350. package/util/useMeasure.js +0 -1
  351. package/util/when.d.ts +1 -15
  352. package/util/when.js +3 -70
  353. package/rpc/remoteAbortSignals.d.ts +0 -36
  354. package/rpc/remoteAbortSignals.js +0 -79
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.stateModelFactory = stateModelFactory;
7
- const mobx_state_tree_1 = require("mobx-state-tree");
8
4
  const mobx_1 = require("mobx");
9
- const clone_1 = __importDefault(require("clone"));
5
+ const mobx_state_tree_1 = require("mobx-state-tree");
10
6
  const configuration_1 = require("../configuration");
11
7
  const util_1 = require("../util");
12
- const mst_1 = require("../util/types/mst");
13
8
  const model_1 = require("./SequenceFeatureDetails/model");
14
9
  const util_2 = require("./util");
10
+ const mst_1 = require("../util/types/mst");
15
11
  function formatSubfeatures(obj, depth, parse, currentDepth = 0, returnObj = {}) {
16
12
  var _a;
17
13
  if (depth <= currentDepth) {
@@ -22,97 +18,39 @@ function formatSubfeatures(obj, depth, parse, currentDepth = 0, returnObj = {})
22
18
  parse(sub);
23
19
  });
24
20
  }
25
- /**
26
- * #stateModel BaseFeatureWidget
27
- * displays data about features, allowing configuration callbacks to modify the
28
- * contents of what is displayed
29
- *
30
- * see: formatDetails-\>feature,formatDetails-\>subfeatures
31
- */
32
21
  function stateModelFactory(pluginManager) {
33
22
  return mobx_state_tree_1.types
34
23
  .model('BaseFeatureWidget', {
35
- /**
36
- * #property
37
- */
38
24
  id: mst_1.ElementId,
39
- /**
40
- * #property
41
- */
42
25
  type: mobx_state_tree_1.types.literal('BaseFeatureWidget'),
43
- /**
44
- * #property
45
- */
46
26
  featureData: mobx_state_tree_1.types.frozen(),
47
- /**
48
- * #property
49
- */
50
27
  formattedFields: mobx_state_tree_1.types.frozen(),
51
- /**
52
- * #property
53
- */
54
28
  unformattedFeatureData: mobx_state_tree_1.types.frozen(),
55
- /**
56
- * #property
57
- */
58
29
  view: mobx_state_tree_1.types.safeReference(pluginManager.pluggableMstType('view', 'stateModel')),
59
- /**
60
- * #property
61
- */
62
30
  track: mobx_state_tree_1.types.safeReference(pluginManager.pluggableMstType('track', 'stateModel')),
63
- /**
64
- * #property
65
- */
66
31
  trackId: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
67
- /**
68
- * #property
69
- */
70
32
  trackType: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
71
- /**
72
- * #property
73
- */
74
33
  maxDepth: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
75
- /**
76
- * #property
77
- */
78
34
  sequenceFeatureDetails: mobx_state_tree_1.types.optional((0, model_1.SequenceFeatureDetailsF)(), {}),
79
35
  })
80
36
  .volatile(() => ({
81
- /**
82
- * #volatile
83
- */
84
37
  error: undefined,
85
38
  }))
86
39
  .actions(self => ({
87
- /**
88
- * #action
89
- */
90
40
  setFeatureData(featureData) {
91
41
  self.unformattedFeatureData = featureData;
92
42
  },
93
- /**
94
- * #action
95
- */
96
43
  clearFeatureData() {
97
44
  self.featureData = undefined;
98
45
  },
99
- /**
100
- * #action
101
- */
102
46
  setFormattedData(feat) {
103
47
  self.featureData = feat;
104
48
  },
105
- /**
106
- * #action
107
- */
108
49
  setExtra(type, trackId, maxDepth) {
109
50
  self.trackId = trackId;
110
51
  self.trackType = type;
111
52
  self.maxDepth = maxDepth;
112
53
  },
113
- /**
114
- * #action
115
- */
116
54
  setError(e) {
117
55
  self.error = e;
118
56
  },
@@ -127,7 +65,7 @@ function stateModelFactory(pluginManager) {
127
65
  self.setExtra(track.type, track.configuration.trackId, (0, configuration_1.getConf)(track, ['formatDetails', 'maxDepth']));
128
66
  }
129
67
  if (unformattedFeatureData) {
130
- const feature = (0, clone_1.default)(unformattedFeatureData);
68
+ const feature = structuredClone(unformattedFeatureData);
131
69
  const combine = (arg2, feature) => ({
132
70
  ...(0, configuration_1.getConf)(session, ['formatDetails', arg2], { feature }),
133
71
  ...(0, configuration_1.getConf)(track, ['formatDetails', arg2], { feature }),
@@ -149,7 +87,6 @@ function stateModelFactory(pluginManager) {
149
87
  },
150
88
  }))
151
89
  .preProcessSnapshot(snap => {
152
- // @ts-expect-error
153
90
  const { featureData, finalizedFeatureData, ...rest } = snap;
154
91
  return {
155
92
  unformattedFeatureData: featureData,
@@ -158,15 +95,8 @@ function stateModelFactory(pluginManager) {
158
95
  };
159
96
  })
160
97
  .postProcessSnapshot(snap => {
161
- // xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit
162
98
  const { unformattedFeatureData, featureData, ...rest } = snap;
163
- // finalizedFeatureData avoids running formatter twice if loading from
164
- // snapshot
165
99
  return {
166
- // replacing undefined with null helps with allowing fields to be
167
- // hidden, setting null is not allowed by jexl so we set it to
168
- // undefined to hide. see config guide. this replacement happens both
169
- // here and when displaying the featureData in base feature widget
170
100
  finalizedFeatureData: (0, util_2.replaceUndefinedWithNull)(featureData),
171
101
  ...rest,
172
102
  };
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- import { SimpleFeatureSerialized } from '../util/simpleFeature';
3
- import { BaseFeatureWidgetModel } from './stateModelFactory';
1
+ import type React from 'react';
2
+ import type { BaseFeatureWidgetModel } from './stateModelFactory';
3
+ import type { SimpleFeatureSerialized } from '../util/simpleFeature';
4
4
  export interface BaseProps extends BaseCardProps {
5
5
  feature: SimpleFeatureSerialized;
6
6
  formatter?: (val: unknown, key: string) => React.ReactNode;
@@ -10,11 +10,9 @@ exports.replaceUndefinedWithNull = replaceUndefinedWithNull;
10
10
  function stitch(subfeats, sequence) {
11
11
  return subfeats.map(sub => sequence.slice(sub.start, sub.end)).join('');
12
12
  }
13
- // filter items if they have the same "ID" or location
14
13
  function getItemId(feat) {
15
14
  return `${feat.start}-${feat.end}`;
16
15
  }
17
- // filters if successive elements share same start/end
18
16
  function dedupe(list) {
19
17
  return list.filter((item, pos, ary) => !pos || getItemId(item) !== getItemId(ary[pos - 1]));
20
18
  }
@@ -28,7 +26,6 @@ function revlist(list, seqlen) {
28
26
  .sort((a, b) => a.start - b.start);
29
27
  }
30
28
  function calculateUTRs(cds, exons) {
31
- // checking length ensures the .at below are valid
32
29
  if (!cds.length) {
33
30
  return [];
34
31
  }
@@ -48,7 +45,6 @@ function calculateUTRs(cds, exons) {
48
45
  ].map(elt => ({ ...elt, type: 'three_prime_UTR' }));
49
46
  return [...fiveUTRs, ...threeUTRs];
50
47
  }
51
- // calculates UTRs using impliedUTRs logic, but there are no exon subfeatures
52
48
  function calculateUTRs2(cds, parentFeat) {
53
49
  if (!cds.length) {
54
50
  return [];
package/CorePlugin.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Plugin from './Plugin';
2
- import PluginManager from './PluginManager';
2
+ import type PluginManager from './PluginManager';
3
3
  export default class CorePlugin extends Plugin {
4
4
  name: string;
5
5
  install(pluginManager: PluginManager): void;
package/CorePlugin.js CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -29,18 +39,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
39
  const react_1 = require("react");
30
40
  const BaseFeatureWidget_1 = require("./BaseFeatureWidget");
31
41
  const Plugin_1 = __importDefault(require("./Plugin"));
32
- const coreRpcMethods = __importStar(require("./rpc/coreRpcMethods"));
33
- const WidgetType_1 = __importDefault(require("./pluggableElementTypes/WidgetType"));
34
42
  const CytobandAdapter_1 = __importDefault(require("./data_adapters/CytobandAdapter"));
35
- // the core plugin, which registers types that ALL JBrowse applications are
36
- // expected to need.
43
+ const WidgetType_1 = __importDefault(require("./pluggableElementTypes/WidgetType"));
44
+ const coreRpcMethods = __importStar(require("./rpc/coreRpcMethods"));
37
45
  class CorePlugin extends Plugin_1.default {
38
46
  constructor() {
39
47
  super(...arguments);
40
48
  this.name = 'CorePlugin';
41
49
  }
42
50
  install(pluginManager) {
43
- // register all our core rpc methods
44
51
  Object.values(coreRpcMethods).forEach(RpcMethod => {
45
52
  pluginManager.addRpcMethod(() => new RpcMethod(pluginManager));
46
53
  });
package/Plugin.d.ts CHANGED
@@ -1,8 +1,5 @@
1
- import PluginManager from './PluginManager';
2
- import { AnyConfigurationSchemaType } from './configuration';
3
- /**
4
- * base class for a JBrowse plugin
5
- */
1
+ import type PluginManager from './PluginManager';
2
+ import type { AnyConfigurationSchemaType } from './configuration';
6
3
  export default abstract class Plugin {
7
4
  abstract name: string;
8
5
  url?: string;
package/Plugin.js CHANGED
@@ -1,8 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * base class for a JBrowse plugin
5
- */
6
3
  class Plugin {
7
4
  install(_pluginManager) { }
8
5
  configure(_pluginManager) { }
package/PluginLoader.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PluginConstructor } from './Plugin';
1
+ import type { PluginConstructor } from './Plugin';
2
2
  export interface UMDLocPluginDefinition {
3
3
  umdLoc: {
4
4
  uri: string;
package/PluginLoader.js CHANGED
@@ -8,26 +8,17 @@ exports.isESMPluginDefinition = isESMPluginDefinition;
8
8
  exports.isCJSPluginDefinition = isCJSPluginDefinition;
9
9
  exports.pluginDescriptionString = pluginDescriptionString;
10
10
  const load_script_1 = __importDefault(require("load-script"));
11
- // locals
12
11
  const Plugin_1 = __importDefault(require("./Plugin"));
13
12
  const ReExports_1 = __importDefault(require("./ReExports"));
14
13
  const util_1 = require("./util");
15
14
  function isUMDPluginDefinition(def) {
16
- return (
17
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18
- (def.umdUrl !== undefined ||
19
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
15
+ return ((def.umdUrl !== undefined ||
20
16
  def.url !== undefined ||
21
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
22
17
  def.umdLoc !== undefined) &&
23
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
24
18
  def.name !== undefined);
25
19
  }
26
20
  function isESMPluginDefinition(def) {
27
- return (
28
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
29
- def.esmUrl !== undefined ||
30
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
21
+ return (def.esmUrl !== undefined ||
31
22
  def.esmLoc !== undefined);
32
23
  }
33
24
  function promisifiedLoadScript(src) {
@@ -46,16 +37,13 @@ async function loadScript(scriptUrl) {
46
37
  if (!isInWebWorker()) {
47
38
  return promisifiedLoadScript(scriptUrl);
48
39
  }
49
- // @ts-expect-error
50
40
  if (globalThis.importScripts) {
51
- // @ts-expect-error
52
41
  await globalThis.importScripts(scriptUrl);
53
42
  return;
54
43
  }
55
44
  throw new Error('cannot figure out how to load external JS scripts in this environment');
56
45
  }
57
46
  function isCJSPluginDefinition(def) {
58
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
59
47
  return def.cjsUrl !== undefined;
60
48
  }
61
49
  function pluginDescriptionString(pluginDefinition) {
@@ -102,7 +90,6 @@ class PluginLoader {
102
90
  throw new Error('No ESM fetcher installed');
103
91
  }
104
92
  const plugin = await this.fetchESM(parsedUrl.href);
105
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
106
93
  if (!plugin) {
107
94
  throw new Error(`Could not load ESM plugin: ${parsedUrl}`);
108
95
  }
@@ -123,10 +110,8 @@ class PluginLoader {
123
110
  await loadScript(parsedUrl.href);
124
111
  }
125
112
  else {
126
- // @ts-expect-error
127
113
  globalThis[umdName] = { default: Plugin_1.default };
128
114
  }
129
- // @ts-expect-error
130
115
  const plugin = globalThis[umdName];
131
116
  if (!plugin) {
132
117
  throw new Error(`Failed to load UMD bundle for ${moduleName}, ${umdName} is undefined`);
@@ -150,14 +135,12 @@ class PluginLoader {
150
135
  else {
151
136
  throw new Error(`Could not determine plugin type: ${JSON.stringify(def)}`);
152
137
  }
153
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
154
138
  if (!plugin.default) {
155
139
  throw new Error(`${pluginDescriptionString(def)} does not have a default export, cannot load`);
156
140
  }
157
141
  return plugin.default;
158
142
  }
159
143
  installGlobalReExports(target) {
160
- // @ts-expect-error
161
144
  target.JBrowseExports = Object.fromEntries(Object.entries(ReExports_1.default).map(([moduleName, module]) => {
162
145
  return [moduleName, module];
163
146
  }));
@@ -1,21 +1,21 @@
1
- import { IAnyType, IAnyModelType } from 'mobx-state-tree';
2
- import PluggableElementBase from './pluggableElementTypes/PluggableElementBase';
3
- import RendererType from './pluggableElementTypes/renderers/RendererType';
1
+ import ReExports from './ReExports';
4
2
  import AdapterType from './pluggableElementTypes/AdapterType';
5
- import TrackType from './pluggableElementTypes/TrackType';
6
- import DisplayType from './pluggableElementTypes/DisplayType';
7
- import ViewType from './pluggableElementTypes/ViewType';
8
- import WidgetType from './pluggableElementTypes/WidgetType';
3
+ import AddTrackWorkflowType from './pluggableElementTypes/AddTrackWorkflowType';
9
4
  import ConnectionType from './pluggableElementTypes/ConnectionType';
10
- import RpcMethodType from './pluggableElementTypes/RpcMethodType';
5
+ import DisplayType from './pluggableElementTypes/DisplayType';
11
6
  import InternetAccountType from './pluggableElementTypes/InternetAccountType';
7
+ import RpcMethodType from './pluggableElementTypes/RpcMethodType';
12
8
  import TextSearchAdapterType from './pluggableElementTypes/TextSearchAdapterType';
13
- import AddTrackWorkflowType from './pluggableElementTypes/AddTrackWorkflowType';
14
- import Plugin from './Plugin';
15
- import ReExports from './ReExports';
16
- import { PluggableElementType, PluggableElementMember } from './pluggableElementTypes';
17
- import { AbstractRootModel } from './util';
18
- import { PluginDefinition } from './PluginLoader';
9
+ import TrackType from './pluggableElementTypes/TrackType';
10
+ import ViewType from './pluggableElementTypes/ViewType';
11
+ import WidgetType from './pluggableElementTypes/WidgetType';
12
+ import RendererType from './pluggableElementTypes/renderers/RendererType';
13
+ import type Plugin from './Plugin';
14
+ import type { PluginDefinition } from './PluginLoader';
15
+ import type { PluggableElementMember, PluggableElementType } from './pluggableElementTypes';
16
+ import type PluggableElementBase from './pluggableElementTypes/PluggableElementBase';
17
+ import type { AbstractRootModel } from './util';
18
+ import type { IAnyModelType, IAnyType } from 'mobx-state-tree';
19
19
  declare class PhasedScheduler<PhaseName extends string> {
20
20
  phaseCallbacks: Map<PhaseName, Function[]>;
21
21
  phaseOrder: PhaseName[];
@@ -24,7 +24,6 @@ declare class PhasedScheduler<PhaseName extends string> {
24
24
  run(): void;
25
25
  }
26
26
  type PluggableElementTypeGroup = 'renderer' | 'adapter' | 'display' | 'track' | 'connection' | 'view' | 'widget' | 'rpc method' | 'internet account' | 'text search adapter' | 'add track workflow';
27
- /** internal class that holds the info for a certain element type */
28
27
  declare class TypeRecord<ElementClass extends PluggableElementBase> {
29
28
  typeName: string;
30
29
  baseClass: (new (...args: unknown[]) => ElementClass) | (Function & {
@@ -40,13 +39,6 @@ declare class TypeRecord<ElementClass extends PluggableElementBase> {
40
39
  all(): ElementClass[];
41
40
  }
42
41
  type AnyFunction = (...args: any) => any;
43
- /**
44
- * free-form string-to-unknown mapping of metadata related to the instance of
45
- * this plugin. `isCore` is typically set to `Boolean(true)` if the plugin was
46
- * loaded as part of the "core" set of plugins for this application. Can also
47
- * use this metadata to stash other things about why the plugin is loaded, such
48
- * as where it came from, what plugin depends on it, etc.
49
- */
50
42
  export type PluginMetadata = Record<string, unknown>;
51
43
  export interface PluginLoadRecord {
52
44
  metadata?: PluginMetadata;
@@ -100,7 +92,7 @@ export default class PluginManager {
100
92
  getPlugin(name: string): Plugin | undefined;
101
93
  hasPlugin(name: string): boolean;
102
94
  createPluggableElements(): this;
103
- setRootModel(rootModel: AbstractRootModel): void;
95
+ setRootModel(rootModel: AbstractRootModel): this;
104
96
  configure(): this;
105
97
  getElementTypeRecord(groupName: PluggableElementTypeGroup): TypeRecord<PluggableElementBase>;
106
98
  addElementType(groupName: PluggableElementTypeGroup, creationCallback: (pluginManager: PluginManager) => PluggableElementType): this;
@@ -113,9 +105,7 @@ export default class PluginManager {
113
105
  getRpcElements(): RpcMethodType[];
114
106
  getDisplayElements(): DisplayType[];
115
107
  getAdapterElements(): AdapterType[];
116
- /** get a MST type for the union of all specified pluggable MST types */
117
108
  pluggableMstType(groupName: PluggableElementTypeGroup, fieldName: PluggableElementMember, fallback?: IAnyType): IAnyType;
118
- /** get a MST type for the union of all specified pluggable config schemas */
119
109
  pluggableConfigSchemaType(typeGroup: PluggableElementTypeGroup, fieldName?: PluggableElementMember): IAnyModelType;
120
110
  jbrequireCache: Map<any, any>;
121
111
  lib: {
@@ -217,10 +207,11 @@ export default class PluginManager {
217
207
  react: typeof import("react");
218
208
  'react/jsx-runtime': typeof import("react/jsx-runtime");
219
209
  'react-dom': typeof import("react-dom");
210
+ 'react-dom/client': typeof import("react-dom/client");
220
211
  'mobx-react': typeof import("mobx-react");
221
212
  '@mui/x-data-grid': {
222
213
  useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext;
223
- useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/internals").GridApiCommunity>() => React.MutableRefObject<Api>;
214
+ useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("@mui/x-internals/types").RefObject<Api>;
224
215
  useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps;
225
216
  };
226
217
  '@mui/material/utils': typeof import("@mui/material/utils");
@@ -258,12 +249,6 @@ export default class PluginManager {
258
249
  };
259
250
  };
260
251
  load: <FTYPE extends AnyFunction>(lib: FTYPE) => ReturnType<FTYPE>;
261
- /**
262
- * Get the re-exported version of the given package name.
263
- * Throws an error if the package is not re-exported by the plugin manager.
264
- *
265
- * @returns the library's default export
266
- */
267
252
  jbrequire: (lib: keyof typeof ReExports | AnyFunction | {
268
253
  default: AnyFunction;
269
254
  }) => any;
package/PluginManager.js CHANGED
@@ -3,25 +3,22 @@ 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
- /* eslint-disable @typescript-eslint/no-unsafe-function-type */
7
6
  const mobx_state_tree_1 = require("mobx-state-tree");
8
- const RendererType_1 = __importDefault(require("./pluggableElementTypes/renderers/RendererType"));
7
+ const CorePlugin_1 = __importDefault(require("./CorePlugin"));
8
+ const ReExports_1 = __importDefault(require("./ReExports"));
9
+ const configuration_1 = require("./configuration");
9
10
  const AdapterType_1 = __importDefault(require("./pluggableElementTypes/AdapterType"));
10
- const TrackType_1 = __importDefault(require("./pluggableElementTypes/TrackType"));
11
- const DisplayType_1 = __importDefault(require("./pluggableElementTypes/DisplayType"));
12
- const ViewType_1 = __importDefault(require("./pluggableElementTypes/ViewType"));
13
- const WidgetType_1 = __importDefault(require("./pluggableElementTypes/WidgetType"));
11
+ const AddTrackWorkflowType_1 = __importDefault(require("./pluggableElementTypes/AddTrackWorkflowType"));
14
12
  const ConnectionType_1 = __importDefault(require("./pluggableElementTypes/ConnectionType"));
15
- const RpcMethodType_1 = __importDefault(require("./pluggableElementTypes/RpcMethodType"));
13
+ const DisplayType_1 = __importDefault(require("./pluggableElementTypes/DisplayType"));
16
14
  const InternetAccountType_1 = __importDefault(require("./pluggableElementTypes/InternetAccountType"));
15
+ const RpcMethodType_1 = __importDefault(require("./pluggableElementTypes/RpcMethodType"));
17
16
  const TextSearchAdapterType_1 = __importDefault(require("./pluggableElementTypes/TextSearchAdapterType"));
18
- const AddTrackWorkflowType_1 = __importDefault(require("./pluggableElementTypes/AddTrackWorkflowType"));
19
- const configuration_1 = require("./configuration");
20
- const ReExports_1 = __importDefault(require("./ReExports"));
21
- const CorePlugin_1 = __importDefault(require("./CorePlugin"));
17
+ const TrackType_1 = __importDefault(require("./pluggableElementTypes/TrackType"));
18
+ const ViewType_1 = __importDefault(require("./pluggableElementTypes/ViewType"));
19
+ const WidgetType_1 = __importDefault(require("./pluggableElementTypes/WidgetType"));
20
+ const RendererType_1 = __importDefault(require("./pluggableElementTypes/renderers/RendererType"));
22
21
  const jexl_1 = __importDefault(require("./util/jexl"));
23
- // helper class that keeps groups of callbacks that are then run in a specified
24
- // order by group
25
22
  class PhasedScheduler {
26
23
  constructor(...phaseOrder) {
27
24
  this.phaseCallbacks = new Map();
@@ -46,7 +43,6 @@ class PhasedScheduler {
46
43
  });
47
44
  }
48
45
  }
49
- /** internal class that holds the info for a certain element type */
50
46
  class TypeRecord {
51
47
  constructor(typeName, baseClass) {
52
48
  this.typeName = typeName;
@@ -97,16 +93,9 @@ class PluginManager {
97
93
  }
98
94
  return this.jbrequireCache.get(lib);
99
95
  };
100
- /**
101
- * Get the re-exported version of the given package name.
102
- * Throws an error if the package is not re-exported by the plugin manager.
103
- *
104
- * @returns the library's default export
105
- */
106
96
  this.jbrequire = (lib) => {
107
97
  if (typeof lib === 'string') {
108
98
  const pack = this.lib[lib];
109
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
110
99
  if (!pack) {
111
100
  throw new TypeError(`No jbrequire re-export defined for package '${lib}'. If this package must be shared between plugins, add it to ReExports.js. If it does not need to be shared, just import it normally.`);
112
101
  }
@@ -115,20 +104,17 @@ class PluginManager {
115
104
  if (typeof lib === 'function') {
116
105
  return this.load(lib);
117
106
  }
118
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
119
107
  if (lib.default) {
120
108
  return this.jbrequire(lib.default);
121
109
  }
122
110
  throw new TypeError('lib passed to jbrequire must be either a string or a function');
123
111
  };
124
- // add the core plugin
125
112
  this.addPlugin({
126
113
  plugin: new CorePlugin_1.default(),
127
114
  metadata: {
128
115
  isCore: true,
129
116
  },
130
117
  });
131
- // add all the initial plugins
132
118
  initialPlugins.forEach(plugin => {
133
119
  this.addPlugin(plugin);
134
120
  });
@@ -146,8 +132,6 @@ class PluginManager {
146
132
  if (this.configured) {
147
133
  throw new Error('JBrowse already configured, cannot add plugins');
148
134
  }
149
- // check for availability of 'install' and 'configure' as a proxy for being
150
- // an 'instanceof Plugin'
151
135
  const [plugin, metadata = {}] = 'install' in load && 'configure' in load
152
136
  ? [load, {}]
153
137
  : [load.plugin, load.metadata];
@@ -169,8 +153,6 @@ class PluginManager {
169
153
  return this.getPlugin(name) !== undefined;
170
154
  }
171
155
  createPluggableElements() {
172
- // run the creation callbacks for each element type in order.
173
- // see elementCreationSchedule above for the creation order
174
156
  if (this.elementCreationSchedule) {
175
157
  this.elementCreationSchedule.run();
176
158
  this.elementCreationSchedule = undefined;
@@ -179,6 +161,7 @@ class PluginManager {
179
161
  }
180
162
  setRootModel(rootModel) {
181
163
  this.rootModel = rootModel;
164
+ return this;
182
165
  }
183
166
  configure() {
184
167
  if (this.configured) {
@@ -230,9 +213,11 @@ class PluginManager {
230
213
  throw new Error(`cannot add a ${groupName} with no name`);
231
214
  }
232
215
  if (typeRecord.has(newElement.name)) {
233
- throw new Error(`${groupName} ${newElement.name} already registered, cannot register it again`);
216
+ console.warn(`${groupName} ${newElement.name} already registered, cannot register it again`);
217
+ }
218
+ else {
219
+ typeRecord.add(newElement.name, this.evaluateExtensionPoint('Core-extendPluggableElement', newElement));
234
220
  }
235
- typeRecord.add(newElement.name, this.evaluateExtensionPoint('Core-extendPluggableElement', newElement));
236
221
  });
237
222
  return this;
238
223
  }
@@ -263,26 +248,20 @@ class PluginManager {
263
248
  getAdapterElements() {
264
249
  return this.getElementTypesInGroup('adapter');
265
250
  }
266
- /** get a MST type for the union of all specified pluggable MST types */
267
251
  pluggableMstType(groupName, fieldName, fallback = mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.null)) {
268
252
  const pluggableTypes = this.getElementTypeRecord(groupName)
269
253
  .all()
270
- // @ts-expect-error
271
254
  .map(t => t[fieldName])
272
255
  .filter(t => (0, mobx_state_tree_1.isType)(t) && (0, mobx_state_tree_1.isModelType)(t));
273
- // try to smooth over the case when no types are registered, mostly
274
- // encountered in tests
275
256
  if (pluggableTypes.length === 0 && typeof jest === 'undefined') {
276
257
  console.warn(`No pluggable types found matching ('${groupName}','${fieldName}')`);
277
258
  return fallback;
278
259
  }
279
260
  return mobx_state_tree_1.types.union(...pluggableTypes);
280
261
  }
281
- /** get a MST type for the union of all specified pluggable config schemas */
282
262
  pluggableConfigSchemaType(typeGroup, fieldName = 'configSchema') {
283
263
  const pluggableTypes = this.getElementTypeRecord(typeGroup)
284
264
  .all()
285
- // @ts-expect-error
286
265
  .map(t => t[fieldName])
287
266
  .filter(t => (0, configuration_1.isBareConfigurationSchemaType)(t));
288
267
  if (pluggableTypes.length === 0) {
@@ -336,13 +315,10 @@ class PluginManager {
336
315
  return this.addElementType('text search adapter', cb);
337
316
  }
338
317
  addTrackType(cb) {
339
- // Goes through the already-created displays and registers the ones that
340
- // specify this track type
341
318
  const callback = () => {
342
319
  const track = cb(this);
343
320
  const displays = this.getElementTypesInGroup('display');
344
321
  displays.forEach(display => {
345
- // track may have already added the displayType in its cb
346
322
  if (display.trackType === track.name &&
347
323
  !track.displayTypes.includes(display)) {
348
324
  track.addDisplayType(display);
@@ -360,8 +336,6 @@ class PluginManager {
360
336
  const newView = cb(this);
361
337
  const displays = this.getElementTypesInGroup('display');
362
338
  displays.forEach(display => {
363
- // view may have already added the displayType in its callback
364
- // see ViewType for description of extendedName
365
339
  if ((display.viewType === newView.name ||
366
340
  display.viewType === newView.extendedName) &&
367
341
  !newView.displayTypes.includes(display)) {
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- // convert named export to default for lazy react
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.default = void 0;
5
4
  var x_data_grid_1 = require("@mui/x-data-grid");
@@ -1,7 +1,2 @@
1
- /**
2
- * Used by plugin build systems to determine if a module is provided by JBrowse
3
- * globally and thus doesn't need to be bundled. A check in ./modules.tsx makes
4
- * sure this is in sync with the re-exported modules.
5
- */
6
1
  declare const _default: string[];
7
2
  export default _default;