@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.11

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 (637) hide show
  1. package/README.md +1709 -390
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +37 -14
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +49 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
  28. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
  29. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  30. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
  31. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
  32. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
  33. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
  34. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +8 -5
  35. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  36. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  37. package/esm/BaseFeatureWidget/formatDetails.js +62 -83
  38. package/esm/BaseFeatureWidget/index.d.ts +2 -1
  39. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
  40. package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
  41. package/esm/BaseFeatureWidget/types.d.ts +12 -6
  42. package/esm/BaseFeatureWidget/util.d.ts +0 -10
  43. package/esm/BaseFeatureWidget/util.js +0 -17
  44. package/esm/CorePlugin.js +34 -3
  45. package/esm/PluginLoader.d.ts +24 -13
  46. package/esm/PluginLoader.js +167 -51
  47. package/esm/PluginManager.d.ts +130 -24
  48. package/esm/PluginManager.js +180 -32
  49. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  50. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  51. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  52. package/esm/ReExports/coreModules.generated.js +530 -0
  53. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  54. package/esm/ReExports/coreWorkerModules.generated.js +490 -0
  55. package/esm/ReExports/frameworkModules.d.ts +2 -0
  56. package/esm/ReExports/frameworkModules.js +68 -0
  57. package/esm/ReExports/frameworkShared.d.ts +12 -0
  58. package/esm/ReExports/frameworkShared.js +16 -0
  59. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  60. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  61. package/esm/ReExports/list.js +528 -79
  62. package/esm/ReExports/modules.d.ts +1 -1
  63. package/esm/ReExports/modules.js +10 -165
  64. package/esm/ReExports/registry.d.ts +1 -0
  65. package/esm/ReExports/registry.js +23 -5
  66. package/esm/ReExports/uiStub.d.ts +3 -0
  67. package/esm/ReExports/uiStub.js +33 -0
  68. package/esm/ReExports/workerModules.d.ts +2 -0
  69. package/esm/ReExports/workerModules.js +11 -0
  70. package/esm/TextSearch/TextSearchManager.d.ts +27 -13
  71. package/esm/TextSearch/TextSearchManager.js +77 -36
  72. package/esm/TextSearch/places.d.ts +12 -0
  73. package/esm/TextSearch/places.js +94 -0
  74. package/esm/assemblyManager/assembly.d.ts +21 -19
  75. package/esm/assemblyManager/assembly.js +28 -26
  76. package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
  77. package/esm/assemblyManager/assemblyAdapters.js +8 -2
  78. package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
  79. package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
  80. package/esm/assemblyManager/assemblyManager.d.ts +35 -180
  81. package/esm/assemblyManager/assemblyManager.js +47 -51
  82. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
  83. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
  84. package/esm/assemblyManager/geneticCodes.js +2 -5
  85. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
  86. package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
  87. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  88. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  89. package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
  90. package/esm/assemblyManager/loadRefNameMap.js +4 -9
  91. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  92. package/esm/assemblyManager/refNameMapKey.js +12 -0
  93. package/esm/checkPlugins.d.ts +2 -0
  94. package/esm/checkPlugins.js +38 -17
  95. package/esm/configuration/bamIndexFields.d.ts +49 -0
  96. package/esm/configuration/bamIndexFields.js +41 -0
  97. package/esm/configuration/configurationSchema.d.ts +101 -71
  98. package/esm/configuration/configurationSchema.js +207 -134
  99. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  100. package/esm/configuration/configurationSchemaUnion.js +56 -0
  101. package/esm/configuration/configurationSlot.d.ts +150 -60
  102. package/esm/configuration/configurationSlot.js +103 -75
  103. package/esm/configuration/fillLocations.d.ts +14 -0
  104. package/esm/configuration/fillLocations.js +14 -0
  105. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  106. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  107. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  108. package/esm/configuration/fullConfSnapshot.d.ts +4 -19
  109. package/esm/configuration/fullConfSnapshot.js +30 -52
  110. package/esm/configuration/getConf.d.ts +45 -41
  111. package/esm/configuration/getConf.js +111 -44
  112. package/esm/configuration/index.d.ts +26 -11
  113. package/esm/configuration/index.js +16 -7
  114. package/esm/configuration/indexType.d.ts +26 -0
  115. package/esm/configuration/indexType.js +38 -0
  116. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  117. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  118. package/esm/configuration/plot.d.ts +61 -0
  119. package/esm/configuration/plot.js +142 -0
  120. package/esm/configuration/readConfObject.d.ts +2 -24
  121. package/esm/configuration/readConfObject.js +20 -63
  122. package/esm/configuration/requirements.d.ts +37 -0
  123. package/esm/configuration/requirements.js +88 -0
  124. package/esm/configuration/schemaRegistry.d.ts +32 -15
  125. package/esm/configuration/schemaRegistry.js +33 -35
  126. package/esm/configuration/schemaTypes.d.ts +21 -5
  127. package/esm/configuration/schemaTypes.js +66 -55
  128. package/esm/configuration/slotFacade.d.ts +12 -29
  129. package/esm/configuration/slotFacade.js +44 -23
  130. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  131. package/esm/configuration/snapshotPreprocess.js +161 -0
  132. package/esm/configuration/tabixIndexFields.d.ts +30 -4
  133. package/esm/configuration/tabixIndexFields.js +21 -4
  134. package/esm/configuration/tabixShorthand.d.ts +34 -17
  135. package/esm/configuration/tabixShorthand.js +49 -22
  136. package/esm/configuration/types.d.ts +182 -43
  137. package/esm/configuration/uriShorthand.d.ts +9 -0
  138. package/esm/configuration/uriShorthand.js +16 -0
  139. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
  140. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
  141. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
  142. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
  143. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  144. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  145. package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
  146. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  147. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  148. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  149. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  150. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  151. package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
  152. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  153. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
  154. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
  155. package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
  156. package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
  157. package/esm/data_adapters/dataAdapterCache.js +44 -10
  158. package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
  159. package/esm/data_adapters/getFeatureAdapter.js +8 -8
  160. package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
  161. package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
  162. package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
  163. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  164. package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
  165. package/esm/pluggableElementTypes/DisplayType.js +28 -12
  166. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  167. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  168. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
  169. package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
  170. package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
  171. package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
  172. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  173. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  174. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  175. package/esm/pluggableElementTypes/ViewType.js +32 -4
  176. package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
  177. package/esm/pluggableElementTypes/WidgetType.js +6 -0
  178. package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
  179. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  180. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  181. package/esm/pluggableElementTypes/index.d.ts +2 -1
  182. package/esm/pluggableElementTypes/index.js +2 -9
  183. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
  184. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
  185. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
  186. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
  187. package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
  188. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
  189. package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
  190. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  191. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
  192. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  193. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  194. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  195. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  196. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
  197. package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
  198. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
  199. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  200. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  201. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
  202. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
  203. package/esm/pluggableElementTypes/models/index.d.ts +2 -3
  204. package/esm/pluggableElementTypes/models/index.js +2 -3
  205. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
  206. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
  207. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
  208. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
  209. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  210. package/esm/pluginDefinitions.d.ts +34 -7
  211. package/esm/pluginDefinitions.js +54 -20
  212. package/esm/rpc/BaseRpcDriver.d.ts +2 -2
  213. package/esm/rpc/BaseRpcDriver.js +25 -30
  214. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  215. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  216. package/esm/rpc/RpcClient.d.ts +18 -6
  217. package/esm/rpc/RpcClient.js +51 -16
  218. package/esm/rpc/RpcManager.d.ts +14 -10
  219. package/esm/rpc/RpcManager.js +11 -1
  220. package/esm/rpc/RpcRegistry.d.ts +40 -7
  221. package/esm/rpc/RpcServer.d.ts +3 -1
  222. package/esm/rpc/RpcServer.js +19 -12
  223. package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
  224. package/esm/rpc/WebWorkerRpcDriver.js +64 -68
  225. package/esm/rpc/byteBudget.d.ts +20 -5
  226. package/esm/rpc/byteBudget.js +16 -5
  227. package/esm/rpc/configSchema.d.ts +7 -21
  228. package/esm/rpc/coreRpcMethods.d.ts +4 -0
  229. package/esm/rpc/coreRpcMethods.js +4 -0
  230. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  231. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  232. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  233. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  234. package/esm/rpc/methods/CoreGetExportData.js +3 -4
  235. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  236. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  237. package/esm/rpc/methods/CoreGetFeatures.js +3 -5
  238. package/esm/rpc/methods/CoreGetRefNames.js +2 -12
  239. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
  240. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  241. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  242. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  243. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  244. package/esm/rpc/methods/layerFeatures.js +29 -0
  245. package/esm/svg/SvgExport.js +6 -7
  246. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  247. package/esm/svg/SvgThemeProviders.js +15 -0
  248. package/esm/svg/exportViewSvg.d.ts +28 -0
  249. package/esm/svg/exportViewSvg.js +13 -0
  250. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  251. package/esm/svg/normalizeSvgMarkup.js +99 -0
  252. package/esm/svg/serializeSvg.d.ts +7 -0
  253. package/esm/svg/serializeSvg.js +11 -0
  254. package/esm/svg/svgId.d.ts +1 -1
  255. package/esm/svg/svgId.js +1 -1
  256. package/esm/svg/svgReady.d.ts +9 -7
  257. package/esm/svg/svgReady.js +8 -7
  258. package/esm/svg/trackNames.d.ts +7 -5
  259. package/esm/svg/trackNames.js +12 -9
  260. package/esm/svg/wrapSvgExport.js +6 -74
  261. package/esm/ui/AddCustomPluginDialog.js +3 -8
  262. package/esm/ui/AppReadyMarker.d.ts +45 -0
  263. package/esm/ui/AppReadyMarker.js +89 -0
  264. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  265. package/esm/ui/CascadingMenu.js +181 -104
  266. package/esm/ui/DropDownMenu.js +2 -1
  267. package/esm/ui/ErrorBanner.js +1 -1
  268. package/esm/ui/ErrorBoundary.d.ts +2 -2
  269. package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
  270. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
  271. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  272. package/esm/ui/FileDropZone.js +2 -1
  273. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  274. package/esm/ui/HoverMenu.d.ts +1 -2
  275. package/esm/ui/HoverMenu.js +6 -3
  276. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  277. package/esm/ui/JexlFilterDialog.js +122 -50
  278. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  279. package/esm/ui/JexlFilterRowEditors.js +90 -0
  280. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  281. package/esm/ui/LazyBaseTooltip.js +9 -0
  282. package/esm/ui/LegendSwatchGlyph.js +26 -21
  283. package/esm/ui/LoadingOverlay.d.ts +14 -0
  284. package/esm/ui/LoadingOverlay.js +4 -2
  285. package/esm/ui/MenuTypes.d.ts +23 -53
  286. package/esm/ui/MenuTypes.js +3 -0
  287. package/esm/ui/MonospaceTextField.d.ts +2 -1
  288. package/esm/ui/MonospaceTextField.js +23 -20
  289. package/esm/ui/PaletteContext.d.ts +10 -5
  290. package/esm/ui/PaletteContext.js +44 -6
  291. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  292. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  293. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  294. package/esm/ui/RefNameAutocomplete/index.js +8 -2
  295. package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
  296. package/esm/ui/RefNameAutocomplete/util.js +42 -1
  297. package/esm/ui/ResizeHandle.d.ts +3 -1
  298. package/esm/ui/ResizeHandle.js +44 -11
  299. package/esm/ui/ScrollChrome.d.ts +13 -0
  300. package/esm/ui/ScrollChrome.js +11 -0
  301. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  302. package/esm/ui/ScrollEdgeShadow.js +14 -35
  303. package/esm/ui/ScrollZoomToggle.d.ts +4 -27
  304. package/esm/ui/ScrollZoomToggle.js +34 -51
  305. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  306. package/esm/ui/SessionJsonPanel.js +14 -0
  307. package/esm/ui/SettingsChangesTable.d.ts +1 -0
  308. package/esm/ui/SettingsChangesTable.js +49 -11
  309. package/esm/ui/ShareLinkField.d.ts +1 -3
  310. package/esm/ui/ShareLinkField.js +13 -40
  311. package/esm/ui/SizeSliderRow.d.ts +1 -3
  312. package/esm/ui/SizeSliderRow.js +4 -6
  313. package/esm/ui/SnackbarModel.js +79 -67
  314. package/esm/ui/StatusProgressBar.js +2 -2
  315. package/esm/ui/SvgColorLegend.d.ts +9 -4
  316. package/esm/ui/SvgColorLegend.js +82 -41
  317. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  318. package/esm/ui/VerticalScrollbar.js +29 -83
  319. package/esm/ui/ViewLoadingScreen.d.ts +5 -4
  320. package/esm/ui/ViewLoadingScreen.js +8 -32
  321. package/esm/ui/colorScale.d.ts +92 -0
  322. package/esm/ui/colorScale.js +72 -0
  323. package/esm/ui/colors.d.ts +64 -0
  324. package/esm/ui/colors.js +230 -1
  325. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  326. package/esm/ui/hoverBoxStyle.js +17 -2
  327. package/esm/ui/index.d.ts +12 -12
  328. package/esm/ui/index.js +14 -22
  329. package/esm/ui/launchViewMenu.js +15 -5
  330. package/esm/ui/legendMenuItem.d.ts +10 -32
  331. package/esm/ui/legendMenuItem.js +9 -36
  332. package/esm/ui/legendSpec.d.ts +15 -8
  333. package/esm/ui/legendSpec.js +14 -23
  334. package/esm/ui/makeSizeMenu.d.ts +0 -6
  335. package/esm/ui/makeSizeMenu.js +6 -30
  336. package/esm/ui/measureLegendText.js +1 -1
  337. package/esm/ui/menuItemAdornment.d.ts +9 -20
  338. package/esm/ui/menuItemAdornment.js +10 -32
  339. package/esm/ui/menuItems.d.ts +2 -7
  340. package/esm/ui/menuItems.js +1 -6
  341. package/esm/ui/multiTrackMenuItems.d.ts +6 -0
  342. package/esm/ui/palette.d.ts +118 -116
  343. package/esm/ui/palette.js +114 -75
  344. package/esm/ui/replaceViewAction.d.ts +1 -1
  345. package/esm/ui/replaceViewAction.js +1 -1
  346. package/esm/ui/theme.d.ts +43 -119
  347. package/esm/ui/theme.js +62 -78
  348. package/esm/ui/toggleMenuItems.d.ts +1 -3
  349. package/esm/ui/toggleMenuItems.js +6 -5
  350. package/esm/ui/useAssemblySelection.d.ts +4 -4
  351. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  352. package/esm/ui/viewHeaderHeight.js +1 -0
  353. package/esm/util/Base1DUtils.d.ts +5 -3
  354. package/esm/util/Base1DUtils.js +14 -6
  355. package/esm/util/Base1DViewModel.d.ts +2 -1
  356. package/esm/util/Base1DViewModel.js +3 -2
  357. package/esm/util/SvgCanvas.d.ts +15 -13
  358. package/esm/util/SvgCanvas.js +76 -56
  359. package/esm/util/TimeTraveller.d.ts +3 -0
  360. package/esm/util/TimeTraveller.js +34 -2
  361. package/esm/util/aborting.d.ts +39 -0
  362. package/esm/util/aborting.js +88 -6
  363. package/esm/util/adapterMetadata.d.ts +1 -1
  364. package/esm/util/adapterMetadata.js +6 -5
  365. package/esm/util/addAndShowTrack.d.ts +2 -5
  366. package/esm/util/addAndShowTrack.js +5 -1
  367. package/esm/util/addRelativeUris.d.ts +17 -5
  368. package/esm/util/addRelativeUris.js +46 -10
  369. package/esm/util/addTrackFromWidget.d.ts +2 -5
  370. package/esm/util/addTrackFromWidget.js +5 -4
  371. package/esm/util/aggregateFieldName.d.ts +10 -0
  372. package/esm/util/aggregateFieldName.js +8 -0
  373. package/esm/util/analytics.js +46 -13
  374. package/esm/util/animationAllowed.d.ts +9 -0
  375. package/esm/util/animationAllowed.js +13 -0
  376. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  377. package/esm/util/applyRowResizeWheel.js +10 -21
  378. package/esm/util/bandHeight.d.ts +10 -0
  379. package/esm/util/bandHeight.js +29 -0
  380. package/esm/util/bandLayout.d.ts +4 -4
  381. package/esm/util/bandLayout.js +4 -4
  382. package/esm/util/baseDisplayConfig.d.ts +8 -0
  383. package/esm/util/baseDisplayConfig.js +27 -0
  384. package/esm/util/bezierConnector.d.ts +4 -3
  385. package/esm/util/bezierConnector.js +38 -45
  386. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  387. package/esm/util/bgzfWorkerPool.js +20 -74
  388. package/esm/util/binnedAggregate.d.ts +17 -0
  389. package/esm/util/binnedAggregate.js +275 -0
  390. package/esm/util/cacheBudgets.d.ts +22 -19
  391. package/esm/util/cacheBudgets.js +22 -19
  392. package/esm/util/cachedSetup.d.ts +16 -6
  393. package/esm/util/cachedSetup.js +108 -38
  394. package/esm/util/categoricalField.d.ts +56 -0
  395. package/esm/util/categoricalField.js +73 -0
  396. package/esm/util/cellMatches.d.ts +23 -0
  397. package/esm/util/cellMatches.js +264 -0
  398. package/esm/util/cellsStep.d.ts +29 -0
  399. package/esm/util/cellsStep.js +437 -0
  400. package/esm/util/clampToContig.d.ts +17 -0
  401. package/esm/util/clampToContig.js +19 -0
  402. package/esm/util/coarseStripHTML.js +1 -2
  403. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  404. package/esm/util/color/cssColorsLevel4.js +1 -0
  405. package/esm/util/color/index.d.ts +5 -3
  406. package/esm/util/color/index.js +7 -4
  407. package/esm/util/colorBits.d.ts +3 -3
  408. package/esm/util/colorBits.js +19 -44
  409. package/esm/util/colorRamp.d.ts +49 -5
  410. package/esm/util/colorRamp.js +169 -18
  411. package/esm/util/colorScale.d.ts +156 -0
  412. package/esm/util/colorScale.js +243 -0
  413. package/esm/util/colorSchemes.d.ts +21 -0
  414. package/esm/util/colorSchemes.js +30 -0
  415. package/esm/util/copyToClipboard.js +8 -1
  416. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
  417. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
  418. package/esm/util/createSvgRasterCanvas.d.ts +10 -0
  419. package/esm/util/cssColorParse.d.ts +15 -0
  420. package/esm/util/cssColorParse.js +53 -0
  421. package/esm/util/diagonalizeRegions.d.ts +2 -3
  422. package/esm/util/diagonalizeRegions.js +8 -13
  423. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  424. package/esm/util/expandLooseSearchIndex.js +29 -0
  425. package/esm/util/featureTable.d.ts +224 -0
  426. package/esm/util/featureTable.js +366 -0
  427. package/esm/util/featureTransforms.d.ts +81 -0
  428. package/esm/util/featureTransforms.js +1231 -0
  429. package/esm/util/featureTypes.d.ts +24 -0
  430. package/esm/util/featureTypes.js +35 -0
  431. package/esm/util/fetchAndMaybeUnzip.js +16 -9
  432. package/esm/util/fetchContext.d.ts +7 -8
  433. package/esm/util/fetchContext.js +3 -3
  434. package/esm/util/fetchHub.d.ts +4 -2
  435. package/esm/util/fetchHub.js +2 -2
  436. package/esm/util/fetchPhases.d.ts +10 -10
  437. package/esm/util/fetchSeq.d.ts +2 -3
  438. package/esm/util/fetchSeq.js +2 -2
  439. package/esm/util/fieldReader.d.ts +17 -0
  440. package/esm/util/fieldReader.js +62 -0
  441. package/esm/util/formatBytes.js +1 -1
  442. package/esm/util/formatGuessers.d.ts +25 -14
  443. package/esm/util/formatGuessers.js +42 -27
  444. package/esm/util/formatRelativeTime.js +1 -1
  445. package/esm/util/freezeDeep.d.ts +8 -10
  446. package/esm/util/freezeDeep.js +8 -10
  447. package/esm/util/getLocationUri.d.ts +2 -1
  448. package/esm/util/getLocationUri.js +8 -2
  449. package/esm/util/groupKeys.d.ts +76 -0
  450. package/esm/util/groupKeys.js +156 -0
  451. package/esm/util/highlights.d.ts +10 -6
  452. package/esm/util/highlights.js +12 -25
  453. package/esm/util/hooks.d.ts +31 -2
  454. package/esm/util/hooks.js +72 -3
  455. package/esm/util/index.d.ts +11 -11
  456. package/esm/util/index.js +11 -10
  457. package/esm/util/indexCandidates.d.ts +1 -31
  458. package/esm/util/indexCandidates.js +5 -63
  459. package/esm/util/installFetch.d.ts +77 -37
  460. package/esm/util/installFetch.js +65 -38
  461. package/esm/util/installInitAutorun.d.ts +14 -13
  462. package/esm/util/installInitAutorun.js +17 -17
  463. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  464. package/esm/util/installPrerequisiteFetch.js +111 -0
  465. package/esm/util/intervals.js +9 -4
  466. package/esm/util/io/index.js +22 -15
  467. package/esm/util/isDataCurrent.d.ts +7 -5
  468. package/esm/util/isDataCurrent.js +9 -6
  469. package/esm/util/isTextEntryFocused.d.ts +7 -0
  470. package/esm/util/isTextEntryFocused.js +16 -0
  471. package/esm/util/jexl.js +24 -21
  472. package/esm/util/jexlFilterRows.d.ts +89 -0
  473. package/esm/util/jexlFilterRows.js +252 -0
  474. package/esm/util/jexlFilters.d.ts +32 -57
  475. package/esm/util/jexlFilters.js +31 -29
  476. package/esm/util/jexlStrings.d.ts +3 -4
  477. package/esm/util/jexlStrings.js +2 -3
  478. package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
  479. package/esm/util/layouts/GranularRectLayout.js +25 -8
  480. package/esm/util/lazyAfterAttach.d.ts +13 -0
  481. package/esm/util/lazyAfterAttach.js +31 -0
  482. package/esm/util/lazyWithPreload.d.ts +19 -0
  483. package/esm/util/lazyWithPreload.js +27 -0
  484. package/esm/util/legendCandidates.d.ts +72 -0
  485. package/esm/util/legendCandidates.js +138 -0
  486. package/esm/util/locString.js +5 -2
  487. package/esm/util/localStorage.js +4 -4
  488. package/esm/util/markEncoding.d.ts +150 -0
  489. package/esm/util/markEncoding.js +885 -0
  490. package/esm/util/markEncodingTypes.d.ts +595 -0
  491. package/esm/util/markEncodingTypes.js +8 -0
  492. package/esm/util/mst-reflection.d.ts +2 -20
  493. package/esm/util/mst-reflection.js +3 -53
  494. package/esm/util/mstUtils.d.ts +31 -23
  495. package/esm/util/mstUtils.js +39 -24
  496. package/esm/util/numericUtils.d.ts +7 -0
  497. package/esm/util/numericUtils.js +16 -0
  498. package/esm/util/numericValue.d.ts +14 -0
  499. package/esm/util/numericValue.js +34 -0
  500. package/esm/util/openFeatureWidget.d.ts +5 -0
  501. package/esm/util/openFeatureWidget.js +2 -2
  502. package/esm/util/openViews.d.ts +17 -0
  503. package/esm/util/openViews.js +22 -0
  504. package/esm/util/parentWalk.d.ts +1 -1
  505. package/esm/util/parentWalk.js +1 -1
  506. package/esm/util/parseLineByLine.d.ts +4 -5
  507. package/esm/util/parseLineByLine.js +8 -14
  508. package/esm/util/pluginStore.d.ts +6 -8
  509. package/esm/util/pluginStore.js +17 -16
  510. package/esm/util/preloadComponent.d.ts +5 -0
  511. package/esm/util/preloadComponent.js +11 -0
  512. package/esm/util/progress.d.ts +22 -22
  513. package/esm/util/progress.js +27 -26
  514. package/esm/util/quantileExtent.d.ts +49 -0
  515. package/esm/util/quantileExtent.js +162 -0
  516. package/esm/util/range.d.ts +13 -9
  517. package/esm/util/range.js +17 -8
  518. package/esm/util/renameRegions.d.ts +26 -6
  519. package/esm/util/renameRegions.js +68 -54
  520. package/esm/util/renderToStaticMarkup.js +24 -14
  521. package/esm/util/rxjs.d.ts +23 -8
  522. package/esm/util/rxjs.js +61 -15
  523. package/esm/util/samplesTsv.d.ts +49 -0
  524. package/esm/util/samplesTsv.js +86 -0
  525. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  526. package/esm/util/scheduleDetachedDestroy.js +24 -0
  527. package/esm/util/scrollLatch.d.ts +1 -0
  528. package/esm/util/scrollLatch.js +8 -0
  529. package/esm/util/selectEncodedFeature.d.ts +16 -0
  530. package/esm/util/selectEncodedFeature.js +34 -0
  531. package/esm/util/sessionSharing.d.ts +7 -5
  532. package/esm/util/sessionSharing.js +23 -23
  533. package/esm/util/shapeNameList.d.ts +2 -0
  534. package/esm/util/shapeNameList.js +6 -0
  535. package/esm/util/shapeNames.d.ts +7 -0
  536. package/esm/util/shapeNames.js +11 -0
  537. package/esm/util/simpleFeature.d.ts +0 -1
  538. package/esm/util/springAnimate.js +1 -1
  539. package/esm/util/starFusion.d.ts +26 -0
  540. package/esm/util/starFusion.js +37 -0
  541. package/esm/util/stepTables.d.ts +96 -0
  542. package/esm/util/stepTables.js +277 -0
  543. package/esm/util/svAlt.d.ts +145 -0
  544. package/esm/util/svAlt.js +364 -0
  545. package/esm/util/svgColorProps.d.ts +11 -0
  546. package/esm/util/svgColorProps.js +28 -1
  547. package/esm/util/systemColorScheme.d.ts +12 -0
  548. package/esm/util/systemColorScheme.js +27 -0
  549. package/esm/util/tabix.d.ts +19 -10
  550. package/esm/util/tabix.js +19 -14
  551. package/esm/util/thresholdScale.d.ts +91 -0
  552. package/esm/util/thresholdScale.js +166 -0
  553. package/esm/util/timeGate.d.ts +4 -5
  554. package/esm/util/timeGate.js +4 -5
  555. package/esm/util/trackConfigDelta.d.ts +26 -26
  556. package/esm/util/trackConfigDelta.js +63 -47
  557. package/esm/util/tracks.d.ts +120 -66
  558. package/esm/util/tracks.js +501 -151
  559. package/esm/util/translateTranscript.d.ts +44 -0
  560. package/esm/util/translateTranscript.js +102 -0
  561. package/esm/util/types/data.d.ts +0 -2
  562. package/esm/util/types/index.d.ts +121 -22
  563. package/esm/util/types/index.js +9 -0
  564. package/esm/util/types/mst.d.ts +3 -0
  565. package/esm/util/types/mst.js +4 -0
  566. package/esm/util/types/renameIds.d.ts +1 -0
  567. package/esm/util/types/renameIds.js +29 -0
  568. package/esm/util/types/services.d.ts +1 -1
  569. package/esm/util/unknownSnapshotKeys.d.ts +53 -0
  570. package/esm/util/unknownSnapshotKeys.js +76 -0
  571. package/esm/util/useFeatureSequence.js +5 -5
  572. package/esm/util/useFetch.d.ts +3 -4
  573. package/esm/util/useFetch.js +19 -10
  574. package/esm/util/useFetchPlugins.d.ts +6 -2
  575. package/esm/util/useFetchPlugins.js +7 -3
  576. package/esm/util/usePanZoom.js +10 -3
  577. package/esm/util/usePanelVirtualScroll.d.ts +7 -35
  578. package/esm/util/usePanelVirtualScroll.js +9 -36
  579. package/esm/util/useRafCommit.js +1 -0
  580. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  581. package/esm/util/useRowVirtualScroll.js +8 -49
  582. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  583. package/esm/util/useVirtualScrollWheel.js +40 -74
  584. package/esm/util/viewHighlights.d.ts +3 -0
  585. package/esm/util/viewHighlights.js +5 -0
  586. package/esm/util/viewStatus.d.ts +47 -15
  587. package/esm/util/viewStatus.js +34 -0
  588. package/esm/util/wheelZoom.d.ts +7 -1
  589. package/esm/util/wheelZoom.js +85 -19
  590. package/esm/util/whenViewSettled.d.ts +55 -8
  591. package/esm/util/whenViewSettled.js +56 -7
  592. package/esm/util/withFeatureDetails.js +4 -0
  593. package/esm/util/withLaunchInput.d.ts +174 -0
  594. package/esm/util/withLaunchInput.js +274 -0
  595. package/package.json +75 -24
  596. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  597. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
  598. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
  599. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  600. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  601. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  602. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  603. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  604. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  605. package/esm/ReExports/index.d.ts +0 -1
  606. package/esm/ReExports/index.js +0 -1
  607. package/esm/ReExports/publicUtil.d.ts +0 -1
  608. package/esm/ReExports/publicUtil.js +0 -28
  609. package/esm/configuration/promotableDefaults.d.ts +0 -199
  610. package/esm/configuration/promotableDefaults.js +0 -326
  611. package/esm/configuration/promotablePin.d.ts +0 -55
  612. package/esm/configuration/promotablePin.js +0 -1
  613. package/esm/configuration/promotableResolve.d.ts +0 -108
  614. package/esm/configuration/promotableResolve.js +0 -117
  615. package/esm/configuration/promotableSlots.d.ts +0 -12
  616. package/esm/configuration/promotableSlots.js +0 -45
  617. package/esm/configuration/slotShape.d.ts +0 -12
  618. package/esm/configuration/slotShape.js +0 -84
  619. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  620. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  621. package/esm/ui/PinAdornment.d.ts +0 -5
  622. package/esm/ui/PinAdornment.js +0 -79
  623. package/esm/ui/SvgGradientLegend.d.ts +0 -26
  624. package/esm/ui/SvgGradientLegend.js +0 -26
  625. package/esm/ui/highlightChipReveal.d.ts +0 -32
  626. package/esm/ui/highlightChipReveal.js +0 -39
  627. package/esm/ui/promotableMenuItems.d.ts +0 -19
  628. package/esm/ui/promotableMenuItems.js +0 -89
  629. package/esm/ui/promotablePinCoverage.d.ts +0 -44
  630. package/esm/ui/promotablePinCoverage.js +0 -87
  631. package/esm/util/applyInitSettings.d.ts +0 -79
  632. package/esm/util/applyInitSettings.js +0 -91
  633. package/esm/util/openDisplays.d.ts +0 -23
  634. package/esm/util/openDisplays.js +0 -79
  635. package/esm/util/stopToken.d.ts +0 -211
  636. package/esm/util/stopToken.js +0 -438
  637. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
@@ -1,12 +1,12 @@
1
1
  import type PluginManager from '../PluginManager.ts';
2
+ import type { AnyConfigurationModel } from '../configuration/index.ts';
2
3
  import type RpcManager from '../rpc/RpcManager.ts';
3
4
  import type { StatusCallback } from '../util/progress.ts';
4
- import type { StopToken } from '../util/stopToken.ts';
5
5
  import type { Assembly } from './assembly.ts';
6
6
  import type { IAnyType } from '@jbrowse/mobx-state-tree';
7
7
  type AdapterConf = Record<string, unknown>;
8
8
  export interface AssemblyBaseOpts {
9
- stopToken?: StopToken;
9
+ signal?: AbortSignal;
10
10
  sessionId: string;
11
11
  statusCallback?: StatusCallback;
12
12
  }
@@ -26,7 +26,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
26
26
  error: unknown;
27
27
  loadingP: Promise<void> | undefined;
28
28
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
29
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
29
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
30
30
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
31
31
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
32
32
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -64,7 +64,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
64
64
  afterAttach(): void;
65
65
  } & {
66
66
  readonly initialized: boolean;
67
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
68
67
  readonly allRefNames: string[] | undefined;
69
68
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
70
69
  readonly rpcManager: RpcManager;
@@ -82,6 +81,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
82
81
  getCanonicalRefName2(refName: string): string;
83
82
  isValidRefName(refName: string): boolean;
84
83
  } & {
84
+ getRefNamePosition(refName: string): number | undefined;
85
85
  getAliasesForRefName(refName: string): string[];
86
86
  getRefNameMapForAdapter(adapterConf: {
87
87
  [x: string]: unknown;
@@ -112,141 +112,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
112
112
  /**
113
113
  * #getter
114
114
  */
115
- readonly assemblyNameMap: Record<string, import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<{
116
- configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
117
- }> & {
118
- error: unknown;
119
- loadingP: Promise<void> | undefined;
120
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
121
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
122
- refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
123
- canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
124
- cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
125
- loadedGeneticCodes: Record<string, number> | undefined;
126
- lowerCaseRefNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
127
- statusMessage: string | undefined;
128
- statusProgress: number | undefined;
129
- statusSource: string | undefined;
130
- refNameMismatches: Map<string, import("./refNameMismatch.ts").RefNameMismatch>;
131
- } & {
132
- getConf(arg: string): any;
133
- } & {
134
- readonly name: string;
135
- readonly aliases: string[];
136
- readonly displayName: string;
137
- readonly refNameColors: string[];
138
- } & {
139
- readonly allAliases: string[];
140
- hasName(name: string): boolean;
141
- } & {
142
- setStatus(status?: import("../util/progress.ts").RpcStatus): void;
143
- setRefNameMismatch(adapterCacheKey: string, mismatch: import("./refNameMismatch.ts").RefNameMismatch): void;
144
- } & {
145
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("./refNameMaps.ts").RefNameMaps & {
146
- regions: import("../util/index.ts").Region[];
147
- cytobands: import("../util/simpleFeature.ts").Feature[];
148
- geneticCodes: Record<string, number>;
149
- }): void;
150
- setError(e: unknown): void;
151
- setLoadingP(p?: Promise<void>): void;
152
- loadPre(): Promise<void>;
153
- } & {
154
- load(): Promise<void>;
155
- } & {
156
- afterAttach(): void;
157
- } & {
158
- readonly initialized: boolean;
159
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
160
- readonly allRefNames: string[] | undefined;
161
- readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
162
- readonly rpcManager: RpcManager;
163
- } & {
164
- readonly refNames: string[] | undefined;
165
- } & {
166
- readonly refNameToIndex: Map<string, number> | undefined;
167
- } & {
168
- getCanonicalRefName(refName: string): string | undefined;
169
- getRefNameColor(refName: string): string | undefined;
170
- getRegionForRefName(refName: string): import("./assembly.ts").BasicRegion | undefined;
171
- getGeneticCodeId(refName: string): number;
172
- getSeqAdapterRefName(canonicalRefName: string): string;
173
- } & {
174
- getCanonicalRefName2(refName: string): string;
175
- isValidRefName(refName: string): boolean;
176
- } & {
177
- getAliasesForRefName(refName: string): string[];
178
- getRefNameMapForAdapter(adapterConf: {
179
- [x: string]: unknown;
180
- }, options: import("../data_adapters/BaseAdapter/types.ts").BaseOptions): Promise<import("./refNameMaps.ts").RefNameAliases>;
181
- getRefNameMismatch(adapterCacheKey: string): import("./refNameMismatch.ts").RefNameMismatch | undefined;
182
- } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
183
- configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
184
- }, {
185
- error: unknown;
186
- loadingP: Promise<void> | undefined;
187
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
188
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
189
- refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
190
- canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
191
- cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
192
- loadedGeneticCodes: Record<string, number> | undefined;
193
- lowerCaseRefNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
194
- statusMessage: string | undefined;
195
- statusProgress: number | undefined;
196
- statusSource: string | undefined;
197
- refNameMismatches: Map<string, import("./refNameMismatch.ts").RefNameMismatch>;
198
- } & {
199
- getConf(arg: string): any;
200
- } & {
201
- readonly name: string;
202
- readonly aliases: string[];
203
- readonly displayName: string;
204
- readonly refNameColors: string[];
205
- } & {
206
- readonly allAliases: string[];
207
- hasName(name: string): boolean;
208
- } & {
209
- setStatus(status?: import("../util/progress.ts").RpcStatus): void;
210
- setRefNameMismatch(adapterCacheKey: string, mismatch: import("./refNameMismatch.ts").RefNameMismatch): void;
211
- } & {
212
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("./refNameMaps.ts").RefNameMaps & {
213
- regions: import("../util/index.ts").Region[];
214
- cytobands: import("../util/simpleFeature.ts").Feature[];
215
- geneticCodes: Record<string, number>;
216
- }): void;
217
- setError(e: unknown): void;
218
- setLoadingP(p?: Promise<void>): void;
219
- loadPre(): Promise<void>;
220
- } & {
221
- load(): Promise<void>;
222
- } & {
223
- afterAttach(): void;
224
- } & {
225
- readonly initialized: boolean;
226
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
227
- readonly allRefNames: string[] | undefined;
228
- readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
229
- readonly rpcManager: RpcManager;
230
- } & {
231
- readonly refNames: string[] | undefined;
232
- } & {
233
- readonly refNameToIndex: Map<string, number> | undefined;
234
- } & {
235
- getCanonicalRefName(refName: string): string | undefined;
236
- getRefNameColor(refName: string): string | undefined;
237
- getRegionForRefName(refName: string): import("./assembly.ts").BasicRegion | undefined;
238
- getGeneticCodeId(refName: string): number;
239
- getSeqAdapterRefName(canonicalRefName: string): string;
240
- } & {
241
- getCanonicalRefName2(refName: string): string;
242
- isValidRefName(refName: string): boolean;
243
- } & {
244
- getAliasesForRefName(refName: string): string[];
245
- getRefNameMapForAdapter(adapterConf: {
246
- [x: string]: unknown;
247
- }, options: import("../data_adapters/BaseAdapter/types.ts").BaseOptions): Promise<import("./refNameMaps.ts").RefNameAliases>;
248
- getRefNameMismatch(adapterCacheKey: string): import("./refNameMismatch.ts").RefNameMismatch | undefined;
249
- }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>>;
115
+ readonly assemblyNameMap: Record<string, Assembly>;
250
116
  } & {
251
117
  /**
252
118
  * #method
@@ -271,7 +137,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
271
137
  error: unknown;
272
138
  loadingP: Promise<void> | undefined;
273
139
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
274
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
140
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
275
141
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
276
142
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
277
143
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -309,7 +175,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
309
175
  afterAttach(): void;
310
176
  } & {
311
177
  readonly initialized: boolean;
312
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
313
178
  readonly allRefNames: string[] | undefined;
314
179
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
315
180
  readonly rpcManager: RpcManager;
@@ -327,6 +192,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
327
192
  getCanonicalRefName2(refName: string): string;
328
193
  isValidRefName(refName: string): boolean;
329
194
  } & {
195
+ getRefNamePosition(refName: string): number | undefined;
330
196
  getAliasesForRefName(refName: string): string[];
331
197
  getRefNameMapForAdapter(adapterConf: {
332
198
  [x: string]: unknown;
@@ -338,7 +204,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
338
204
  error: unknown;
339
205
  loadingP: Promise<void> | undefined;
340
206
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
341
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
207
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
342
208
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
343
209
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
344
210
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -376,7 +242,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
376
242
  afterAttach(): void;
377
243
  } & {
378
244
  readonly initialized: boolean;
379
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
380
245
  readonly allRefNames: string[] | undefined;
381
246
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
382
247
  readonly rpcManager: RpcManager;
@@ -394,6 +259,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
394
259
  getCanonicalRefName2(refName: string): string;
395
260
  isValidRefName(refName: string): boolean;
396
261
  } & {
262
+ getRefNamePosition(refName: string): number | undefined;
397
263
  getAliasesForRefName(refName: string): string[];
398
264
  getRefNameMapForAdapter(adapterConf: {
399
265
  [x: string]: unknown;
@@ -425,7 +291,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
425
291
  error: unknown;
426
292
  loadingP: Promise<void> | undefined;
427
293
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
428
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
294
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
429
295
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
430
296
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
431
297
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -463,7 +329,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
463
329
  afterAttach(): void;
464
330
  } & {
465
331
  readonly initialized: boolean;
466
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
467
332
  readonly allRefNames: string[] | undefined;
468
333
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
469
334
  readonly rpcManager: RpcManager;
@@ -481,6 +346,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
481
346
  getCanonicalRefName2(refName: string): string;
482
347
  isValidRefName(refName: string): boolean;
483
348
  } & {
349
+ getRefNamePosition(refName: string): number | undefined;
484
350
  getAliasesForRefName(refName: string): string[];
485
351
  getRefNameMapForAdapter(adapterConf: {
486
352
  [x: string]: unknown;
@@ -492,7 +358,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
492
358
  error: unknown;
493
359
  loadingP: Promise<void> | undefined;
494
360
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
495
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
361
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
496
362
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
497
363
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
498
364
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -530,7 +396,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
530
396
  afterAttach(): void;
531
397
  } & {
532
398
  readonly initialized: boolean;
533
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
534
399
  readonly allRefNames: string[] | undefined;
535
400
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
536
401
  readonly rpcManager: RpcManager;
@@ -548,6 +413,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
548
413
  getCanonicalRefName2(refName: string): string;
549
414
  isValidRefName(refName: string): boolean;
550
415
  } & {
416
+ getRefNamePosition(refName: string): number | undefined;
551
417
  getAliasesForRefName(refName: string): string[];
552
418
  getRefNameMapForAdapter(adapterConf: {
553
419
  [x: string]: unknown;
@@ -556,32 +422,24 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
556
422
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
557
423
  /**
558
424
  * #getter
559
- * read via readConfObject, matching how the afterAttach autorun names the
560
- * assemblies it creates: get() treats a name found here as "a config
561
- * exists, its model is just not built yet", so the two must agree
425
+ * the canonical name of every configured assembly, read the way the
426
+ * afterAttach autorun names the models it builds
562
427
  */
563
428
  readonly assemblyNamesList: string[];
564
429
  /**
565
430
  * #getter
566
431
  * Every name the *configs* answer to — each assembly's `name` and its
567
- * `aliases`. What {@link has} knows before the models exist.
568
- *
569
- * Separate from assemblyNamesList rather than widening it: `get` treats a
570
- * name found in that list as "a config exists, its model is just not built
571
- * yet", which has to stay the canonical name the autorun will create the
572
- * assembly under. A Set because `has` is called per name by per-render
573
- * scans over every track in the session.
432
+ * `aliases` — mapped to its config, which exists before the assembly's
433
+ * model does. What {@link has} knows before the models exist, and
434
+ * resolved by the same precedence as `assemblyNameMap`.
574
435
  */
575
- readonly configuredAssemblyNames: Set<string>;
436
+ readonly confByName: Map<string, AnyConfigurationModel>;
576
437
  /**
577
438
  * #getter
578
439
  * combined jbrowse.assemblies, session.sessionAssemblies, and
579
440
  * session.temporaryAssemblies
580
441
  */
581
- readonly assemblyList: (import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
582
- setSubschema(slotName: string, data: Record<string, unknown>): any;
583
- setSlot(slotName: string, value: unknown): void;
584
- } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("../configuration/types.ts").AnyConfigurationSchemaType>)[];
442
+ readonly assemblyList: AnyConfigurationModel[];
585
443
  readonly rpcManager: RpcManager;
586
444
  } & {
587
445
  /**
@@ -619,7 +477,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
619
477
  error: unknown;
620
478
  loadingP: Promise<void> | undefined;
621
479
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
622
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
480
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
623
481
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
624
482
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
625
483
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -657,7 +515,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
657
515
  afterAttach(): void;
658
516
  } & {
659
517
  readonly initialized: boolean;
660
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
661
518
  readonly allRefNames: string[] | undefined;
662
519
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
663
520
  readonly rpcManager: RpcManager;
@@ -675,6 +532,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
675
532
  getCanonicalRefName2(refName: string): string;
676
533
  isValidRefName(refName: string): boolean;
677
534
  } & {
535
+ getRefNamePosition(refName: string): number | undefined;
678
536
  getAliasesForRefName(refName: string): string[];
679
537
  getRefNameMapForAdapter(adapterConf: {
680
538
  [x: string]: unknown;
@@ -686,7 +544,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
686
544
  error: unknown;
687
545
  loadingP: Promise<void> | undefined;
688
546
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
689
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
547
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
690
548
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
691
549
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
692
550
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -724,7 +582,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
724
582
  afterAttach(): void;
725
583
  } & {
726
584
  readonly initialized: boolean;
727
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
728
585
  readonly allRefNames: string[] | undefined;
729
586
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
730
587
  readonly rpcManager: RpcManager;
@@ -742,6 +599,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
742
599
  getCanonicalRefName2(refName: string): string;
743
600
  isValidRefName(refName: string): boolean;
744
601
  } & {
602
+ getRefNamePosition(refName: string): number | undefined;
745
603
  getAliasesForRefName(refName: string): string[];
746
604
  getRefNameMapForAdapter(adapterConf: {
747
605
  [x: string]: unknown;
@@ -753,18 +611,15 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
753
611
  * {@link waitForAssembly}, but a name that cannot be resolved is an error
754
612
  * rather than an `undefined` for the caller to interpret.
755
613
  *
756
- * For callers whose result is silently *wrong* without the assembly, not
757
- * merely absent: a refName map is the obvious one, since an empty map
758
- * means an adapter gets queried with un-renamed refNames, finds nothing,
759
- * and the track draws blank with nothing to say why. Failing here instead
760
- * puts the name in front of the user, who is the only one who can add the
614
+ * Use it where a missing assembly produces a wrong result with no error.
615
+ * A refName map is one case: an empty map means an adapter gets queried
616
+ * with un-renamed refNames, finds nothing, and the track draws blank.
617
+ * Throwing here shows the assembly name to the user, who can add the
761
618
  * assembly or fix the track.
762
619
  *
763
- * Worth using only because the wait is causal now. It used to give up
764
- * after a fixed ten seconds, where "not resolved" could equally mean "not
765
- * resolved yet" and throwing would have been a race; today it returns
766
- * only once every handler and connection that could supply the name has
767
- * finished, so there is a real answer to report.
620
+ * `waitForAssembly` returns only once every handler and connection that
621
+ * could supply the name has finished, so an unresolved name here is
622
+ * final and throwing does not race a late load.
768
623
  */
769
624
  requireAssembly(assemblyName: string): Promise<import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<{
770
625
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
@@ -772,7 +627,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
772
627
  error: unknown;
773
628
  loadingP: Promise<void> | undefined;
774
629
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
775
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
630
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
776
631
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
777
632
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
778
633
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -810,7 +665,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
810
665
  afterAttach(): void;
811
666
  } & {
812
667
  readonly initialized: boolean;
813
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
814
668
  readonly allRefNames: string[] | undefined;
815
669
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
816
670
  readonly rpcManager: RpcManager;
@@ -828,6 +682,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
828
682
  getCanonicalRefName2(refName: string): string;
829
683
  isValidRefName(refName: string): boolean;
830
684
  } & {
685
+ getRefNamePosition(refName: string): number | undefined;
831
686
  getAliasesForRefName(refName: string): string[];
832
687
  getRefNameMapForAdapter(adapterConf: {
833
688
  [x: string]: unknown;
@@ -839,7 +694,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
839
694
  error: unknown;
840
695
  loadingP: Promise<void> | undefined;
841
696
  adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("./refNameMaps.ts").RefNameAliases>>;
842
- volatileRegions: import("./assembly.ts").BasicRegion[] | undefined;
697
+ regions: import("./assembly.ts").BasicRegion[] | undefined;
843
698
  refNameAliases: import("./refNameMaps.ts").RefNameAliases | undefined;
844
699
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
845
700
  cytobands: import("../util/simpleFeature.ts").Feature[] | undefined;
@@ -877,7 +732,6 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
877
732
  afterAttach(): void;
878
733
  } & {
879
734
  readonly initialized: boolean;
880
- readonly regions: import("./assembly.ts").BasicRegion[] | undefined;
881
735
  readonly allRefNames: string[] | undefined;
882
736
  readonly namesByCanonicalRefName: Map<string, string[]> | undefined;
883
737
  readonly rpcManager: RpcManager;
@@ -895,6 +749,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
895
749
  getCanonicalRefName2(refName: string): string;
896
750
  isValidRefName(refName: string): boolean;
897
751
  } & {
752
+ getRefNamePosition(refName: string): number | undefined;
898
753
  getAliasesForRefName(refName: string): string[];
899
754
  getRefNameMapForAdapter(adapterConf: {
900
755
  [x: string]: unknown;
@@ -2,6 +2,7 @@ import { addDisposer, getParent, types } from '@jbrowse/mobx-state-tree';
2
2
  import { autorun, untracked, when } from 'mobx';
3
3
  import { readConfObject } from '../configuration/index.js';
4
4
  import assemblyFactory from './assembly.js';
5
+ import { indexAssemblyNames } from './indexAssemblyNames.js';
5
6
  // How long waitForAssembly gives a handler that did NOT return a promise.
6
7
  // Nothing about such a handler is observable — it was told a name and said
7
8
  // nothing back — so there is no event to wait on and the only choices are a
@@ -109,13 +110,10 @@ function assemblyManagerFactory(conf, pm) {
109
110
  * #getter
110
111
  */
111
112
  get assemblyNameMap() {
112
- const obj = {};
113
- for (const assembly of self.assemblies) {
114
- for (const name of assembly.allAliases) {
115
- obj[name] = assembly;
116
- }
117
- }
118
- return obj;
113
+ return Object.fromEntries(indexAssemblyNames(self.assemblies, a => ({
114
+ name: a.name,
115
+ aliases: a.aliases,
116
+ })));
119
117
  },
120
118
  }))
121
119
  .views(self => ({
@@ -186,7 +184,7 @@ function assemblyManagerFactory(conf, pm) {
186
184
  // Both lookups are load-bearing, and the config one has to cover aliases
187
185
  // as well: assemblyNameMap is keyed by allAliases ([name, ...aliases]) but
188
186
  // only exists once the afterAttach autorun has built the models, while
189
- // configuredAssemblyNames answers off the configs from the first render.
187
+ // confByName answers off the configs from the first render.
190
188
  // Screening on the canonical names alone left `vvx` unknown for the whole
191
189
  // startup window even though the config for `volvox` names it — a wrong
192
190
  // "no", which means the caller re-adds an assembly the session already
@@ -201,8 +199,7 @@ function assemblyManagerFactory(conf, pm) {
201
199
  // read is never undefined to the compiler, so `!!` on it infers the
202
200
  // literal `true` and `!has(name)` would be dead code at every call site.
203
201
  has(asmName) {
204
- return (!!self.assemblyNameMap[asmName] ||
205
- this.configuredAssemblyNames.has(asmName));
202
+ return !!self.assemblyNameMap[asmName] || this.confByName.has(asmName);
206
203
  },
207
204
  /**
208
205
  * #method
@@ -219,9 +216,8 @@ function assemblyManagerFactory(conf, pm) {
219
216
  },
220
217
  /**
221
218
  * #getter
222
- * read via readConfObject, matching how the afterAttach autorun names the
223
- * assemblies it creates: get() treats a name found here as "a config
224
- * exists, its model is just not built yet", so the two must agree
219
+ * the canonical name of every configured assembly, read the way the
220
+ * afterAttach autorun names the models it builds
225
221
  */
226
222
  get assemblyNamesList() {
227
223
  return this.assemblyList.map(asm => readConfObject(asm, 'name'));
@@ -229,19 +225,15 @@ function assemblyManagerFactory(conf, pm) {
229
225
  /**
230
226
  * #getter
231
227
  * Every name the *configs* answer to — each assembly's `name` and its
232
- * `aliases`. What {@link has} knows before the models exist.
233
- *
234
- * Separate from assemblyNamesList rather than widening it: `get` treats a
235
- * name found in that list as "a config exists, its model is just not built
236
- * yet", which has to stay the canonical name the autorun will create the
237
- * assembly under. A Set because `has` is called per name by per-render
238
- * scans over every track in the session.
228
+ * `aliases` — mapped to its config, which exists before the assembly's
229
+ * model does. What {@link has} knows before the models exist, and
230
+ * resolved by the same precedence as `assemblyNameMap`.
239
231
  */
240
- get configuredAssemblyNames() {
241
- return new Set(this.assemblyList.flatMap(asm => [
242
- readConfObject(asm, 'name'),
243
- ...(readConfObject(asm, 'aliases') ?? []),
244
- ]));
232
+ get confByName() {
233
+ return indexAssemblyNames(this.assemblyList, asm => ({
234
+ name: readConfObject(asm, 'name'),
235
+ aliases: readConfObject(asm, 'aliases') ?? [],
236
+ }));
245
237
  },
246
238
  /**
247
239
  * #getter
@@ -298,9 +290,10 @@ function assemblyManagerFactory(conf, pm) {
298
290
  // Nothing left that could still produce it. Both clauses are things
299
291
  // that end on their own, so this needs no bound of its own.
300
292
  const settled = () =>
301
- // a config carrying the name is already in the tree and the
302
- // afterAttach autorun is about to build its model
303
- !self.assemblyNamesList.includes(assemblyName) &&
293
+ // a config answering to the name, as its name or an alias, is
294
+ // already in the tree and the afterAttach autorun is about to build
295
+ // its model
296
+ !self.confByName.has(assemblyName) &&
304
297
  // a connection mid-fetch could be carrying it. Every loading
305
298
  // connection counts, not just one naming this assembly: a connection
306
299
  // config need not declare what it will turn out to provide, and
@@ -343,18 +336,15 @@ function assemblyManagerFactory(conf, pm) {
343
336
  * {@link waitForAssembly}, but a name that cannot be resolved is an error
344
337
  * rather than an `undefined` for the caller to interpret.
345
338
  *
346
- * For callers whose result is silently *wrong* without the assembly, not
347
- * merely absent: a refName map is the obvious one, since an empty map
348
- * means an adapter gets queried with un-renamed refNames, finds nothing,
349
- * and the track draws blank with nothing to say why. Failing here instead
350
- * puts the name in front of the user, who is the only one who can add the
339
+ * Use it where a missing assembly produces a wrong result with no error.
340
+ * A refName map is one case: an empty map means an adapter gets queried
341
+ * with un-renamed refNames, finds nothing, and the track draws blank.
342
+ * Throwing here shows the assembly name to the user, who can add the
351
343
  * assembly or fix the track.
352
344
  *
353
- * Worth using only because the wait is causal now. It used to give up
354
- * after a fixed ten seconds, where "not resolved" could equally mean "not
355
- * resolved yet" and throwing would have been a race; today it returns
356
- * only once every handler and connection that could supply the name has
357
- * finished, so there is a real answer to report.
345
+ * `waitForAssembly` returns only once every handler and connection that
346
+ * could supply the name has finished, so an unresolved name here is
347
+ * final and throwing does not race a late load.
358
348
  */
359
349
  async requireAssembly(assemblyName) {
360
350
  const assembly = await this.waitForAssembly(assemblyName);
@@ -389,23 +379,29 @@ function assemblyManagerFactory(conf, pm) {
389
379
  }))
390
380
  .actions(self => ({
391
381
  afterAttach() {
382
+ const reconcile = (assemblyConfs) => {
383
+ // filter() returns a new plain array, so removing from
384
+ // self.assemblies in the loop below does not skip elements
385
+ // (removeAssembly splices the live observable array)
386
+ const orphaned = self.assemblies.filter(a => !a.configuration);
387
+ for (const asm of orphaned) {
388
+ this.removeAssembly(asm);
389
+ }
390
+ const built = new Set(self.assemblies.map(a => a.name));
391
+ for (const conf of assemblyConfs) {
392
+ if (!built.has(readConfObject(conf, 'name'))) {
393
+ this.addAssembly(conf);
394
+ }
395
+ }
396
+ };
397
+ // also here, because an enclosing action defers the autorun's first
398
+ // run, and a load waiting on the model would wait for that
399
+ reconcile(self.assemblyList);
392
400
  addDisposer(self, autorun(() => {
393
401
  const assemblyConfs = self.assemblyList;
394
402
  // eslint-disable-next-line no-restricted-syntax -- self-write: removes from the assemblies it reads
395
403
  untracked(() => {
396
- // filter() returns a new plain array, so removing from
397
- // self.assemblies in the loop below does not skip elements
398
- // (removeAssembly splices the live observable array)
399
- const orphaned = self.assemblies.filter(a => !a.configuration);
400
- for (const asm of orphaned) {
401
- this.removeAssembly(asm);
402
- }
403
- for (const conf of assemblyConfs) {
404
- const name = readConfObject(conf, 'name');
405
- if (!self.assemblies.some(a => a.name === name)) {
406
- this.addAssembly(conf);
407
- }
408
- }
404
+ reconcile(assemblyConfs);
409
405
  });
410
406
  }, { name: 'assemblyManagerAfterAttach' }));
411
407
  },