@jbrowse/core 5.0.0-beta.8 → 5.0.0-beta.9
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.
- package/README.md +427 -130
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +8 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +8 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +1 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +53 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -16
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +46 -79
- package/esm/BaseFeatureWidget/index.d.ts +1 -0
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +35 -28
- package/esm/BaseFeatureWidget/stateModelFactory.js +94 -102
- package/esm/BaseFeatureWidget/types.d.ts +3 -0
- package/esm/BaseFeatureWidget/util.d.ts +0 -3
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/PluginLoader.d.ts +14 -9
- package/esm/PluginLoader.js +34 -26
- package/esm/PluginManager.d.ts +4 -4
- package/esm/PluginManager.js +1 -1
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +492 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +453 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +67 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +493 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -87
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +2 -1
- package/esm/ReExports/uiStub.js +24 -2
- package/esm/ReExports/workerModules.js +8 -12
- package/esm/TextSearch/TextSearchManager.d.ts +3 -12
- package/esm/TextSearch/TextSearchManager.js +22 -10
- package/esm/assemblyManager/assembly.d.ts +10 -14
- package/esm/assemblyManager/assembly.js +10 -14
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +23 -81
- package/esm/assemblyManager/assemblyManager.d.ts +10 -16
- package/esm/assemblyManager/assemblyManager.js +7 -10
- package/esm/assemblyManager/loadRefNameMap.js +3 -3
- package/esm/configuration/configurationSchema.d.ts +75 -31
- package/esm/configuration/configurationSchema.js +74 -40
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +59 -0
- package/esm/configuration/configurationSlot.d.ts +37 -12
- package/esm/configuration/configurationSlot.js +83 -22
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/getConf.d.ts +17 -9
- package/esm/configuration/getConf.js +52 -7
- package/esm/configuration/index.d.ts +11 -4
- package/esm/configuration/index.js +7 -4
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/readConfObject.d.ts +2 -22
- package/esm/configuration/readConfObject.js +15 -49
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +21 -1
- package/esm/configuration/schemaRegistry.js +11 -0
- package/esm/configuration/schemaTypes.d.ts +3 -0
- package/esm/configuration/schemaTypes.js +10 -0
- package/esm/configuration/slotFacade.d.ts +35 -4
- package/esm/configuration/slotFacade.js +96 -9
- package/esm/configuration/snapshotPreprocess.d.ts +27 -0
- package/esm/configuration/snapshotPreprocess.js +102 -0
- package/esm/configuration/types.d.ts +161 -22
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +2 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +11 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +12 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +2 -3
- package/esm/data_adapters/BaseAdapter/featureDensity.js +2 -3
- package/esm/data_adapters/BaseAdapter/index.d.ts +22 -3
- package/esm/data_adapters/BaseAdapter/types.d.ts +3 -4
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/BaseAdapter/zoomRange.js +1 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +9 -11
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +1 -3
- package/esm/data_adapters/getSequenceSubAdapter.js +1 -3
- package/esm/pluggableElementTypes/AdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +1 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +3 -8
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/index.d.ts +1 -1
- package/esm/pluggableElementTypes/index.js +1 -1
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +17 -7
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +45 -48
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +40 -36
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +10 -13
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +6 -6
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +37 -17
- package/esm/pluggableElementTypes/models/BaseViewModel.js +25 -10
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +1 -1
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +57 -141
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +22 -26
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +15 -7
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +38 -29
- package/esm/pluggableElementTypes/models/index.d.ts +1 -2
- package/esm/pluggableElementTypes/models/index.js +1 -2
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +3 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +4 -4
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/rpc/BaseRpcDriver.d.ts +1 -2
- package/esm/rpc/BaseRpcDriver.js +23 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +17 -6
- package/esm/rpc/RpcClient.js +42 -12
- package/esm/rpc/RpcManager.d.ts +8 -10
- package/esm/rpc/RpcManager.js +1 -1
- package/esm/rpc/RpcRegistry.d.ts +8 -2
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +3 -3
- package/esm/rpc/WebWorkerRpcDriver.js +9 -47
- package/esm/rpc/byteBudget.d.ts +3 -5
- package/esm/rpc/byteBudget.js +4 -4
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +1 -0
- package/esm/rpc/coreRpcMethods.js +1 -0
- package/esm/rpc/methods/CoreEncodeFeatures.d.ts +6 -5
- package/esm/rpc/methods/CoreEncodeFeatures.js +26 -31
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +31 -0
- package/esm/rpc/methods/CoreGetExportData.js +2 -2
- package/esm/rpc/methods/CoreGetFeatureDensity.js +2 -2
- package/esm/rpc/methods/CoreGetFeatures.js +2 -2
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/layerFeatures.d.ts +26 -0
- package/esm/rpc/methods/layerFeatures.js +40 -0
- package/esm/svg/SvgExport.js +3 -4
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +32 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgReady.d.ts +8 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +5 -5
- package/esm/svg/trackNames.js +6 -6
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/CascadingMenu.js +83 -86
- package/esm/ui/ErrorMessageStackTraceDialog.js +0 -5
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -49
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LoadingOverlay.js +3 -1
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +21 -19
- package/esm/ui/PaletteContext.d.ts +7 -9
- package/esm/ui/PaletteContext.js +24 -10
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +1 -1
- package/esm/ui/ScrollChrome.d.ts +6 -9
- package/esm/ui/ScrollChrome.js +5 -6
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +9 -24
- package/esm/ui/SettingsChangesTable.js +3 -3
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +2 -2
- package/esm/ui/ViewLoadingScreen.js +3 -3
- package/esm/ui/colorScale.d.ts +26 -1
- package/esm/ui/colorScale.js +28 -5
- package/esm/ui/colors.d.ts +49 -1
- package/esm/ui/colors.js +139 -4
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +5 -3
- package/esm/ui/index.js +9 -7
- package/esm/ui/launchViewMenu.js +3 -3
- package/esm/ui/legendSpec.d.ts +2 -0
- package/esm/ui/legendSpec.js +3 -0
- package/esm/ui/palette.d.ts +0 -1
- package/esm/ui/palette.js +3 -27
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +1 -1
- package/esm/ui/theme.js +6 -40
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +1 -1
- package/esm/util/Base1DUtils.js +2 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +72 -53
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +84 -0
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -6
- package/esm/util/addAndShowTrack.d.ts +1 -4
- package/esm/util/addRelativeUris.d.ts +10 -2
- package/esm/util/addRelativeUris.js +22 -7
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/bezierConnector.js +5 -4
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/cachedSetup.d.ts +1 -1
- package/esm/util/cachedSetup.js +2 -2
- package/esm/util/categoricalField.d.ts +37 -0
- package/esm/util/categoricalField.js +52 -0
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +1 -2
- package/esm/util/colorBits.js +17 -39
- package/esm/util/colorRamp.d.ts +27 -1
- package/esm/util/colorRamp.js +56 -2
- package/esm/util/colorSchemes.d.ts +9 -0
- package/esm/util/colorSchemes.js +7 -0
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +11 -14
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +14 -26
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +7 -12
- package/esm/util/expandLooseSearchIndex.d.ts +7 -0
- package/esm/util/expandLooseSearchIndex.js +25 -0
- package/esm/util/featureTransforms.d.ts +30 -3
- package/esm/util/featureTransforms.js +233 -36
- package/esm/util/fetchAndMaybeUnzip.js +5 -6
- package/esm/util/fetchContext.d.ts +5 -6
- package/esm/util/fetchContext.js +1 -1
- package/esm/util/fetchHub.d.ts +3 -1
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/groupKeys.d.ts +75 -0
- package/esm/util/groupKeys.js +152 -0
- package/esm/util/highlights.d.ts +6 -4
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +1 -2
- package/esm/util/hooks.js +1 -2
- package/esm/util/index.d.ts +3 -3
- package/esm/util/index.js +4 -3
- package/esm/util/indexCandidates.js +1 -1
- package/esm/util/installFetch.d.ts +13 -10
- package/esm/util/installFetch.js +11 -10
- package/esm/util/installPrerequisiteFetch.d.ts +5 -3
- package/esm/util/installPrerequisiteFetch.js +3 -4
- package/esm/util/io/index.js +12 -12
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +7 -5
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/legendCandidates.d.ts +31 -27
- package/esm/util/legendCandidates.js +79 -53
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +32 -16
- package/esm/util/markEncoding.js +177 -150
- package/esm/util/markEncodingTypes.d.ts +137 -66
- package/esm/util/mstUtils.d.ts +19 -22
- package/esm/util/mstUtils.js +19 -22
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.js +1 -2
- package/esm/util/openViews.d.ts +1 -0
- package/esm/util/openViews.js +3 -3
- package/esm/util/parseLineByLine.d.ts +3 -4
- package/esm/util/parseLineByLine.js +7 -13
- package/esm/util/progress.d.ts +21 -21
- package/esm/util/progress.js +27 -26
- package/esm/util/renameRegions.d.ts +1 -2
- package/esm/util/renderToStaticMarkup.js +16 -16
- package/esm/util/rxjs.d.ts +7 -8
- package/esm/util/rxjs.js +12 -15
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/tabix.d.ts +3 -4
- package/esm/util/tabix.js +6 -7
- package/esm/util/thresholdScale.d.ts +54 -0
- package/esm/util/thresholdScale.js +112 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +22 -18
- package/esm/util/trackConfigDelta.js +40 -38
- package/esm/util/tracks.d.ts +27 -4
- package/esm/util/tracks.js +116 -43
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/index.d.ts +19 -7
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +15 -0
- package/esm/util/unknownSnapshotKeys.js +13 -0
- package/esm/util/useFeatureSequence.js +4 -4
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +5 -6
- package/esm/util/usePanelVirtualScroll.d.ts +7 -39
- package/esm/util/usePanelVirtualScroll.js +9 -40
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -84
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +24 -15
- package/esm/util/viewStatus.js +17 -0
- package/esm/util/withLaunchInput.d.ts +1 -1
- package/esm/util/withLaunchInput.js +0 -4
- package/package.json +26 -12
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/barrelOnlyNames.d.ts +0 -5
- package/esm/ReExports/barrelOnlyNames.js +0 -63
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicTracks.d.ts +0 -1
- package/esm/ReExports/publicTracks.js +0 -14
- package/esm/ReExports/publicUi.d.ts +0 -4
- package/esm/ReExports/publicUi.js +0 -33
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -32
- package/esm/ReExports/sharedModules.d.ts +0 -96
- package/esm/ReExports/sharedModules.js +0 -66
- package/esm/ReExports/workerNamespaceNames.d.ts +0 -11
- package/esm/ReExports/workerNamespaceNames.js +0 -275
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/util/adapterConfigKey.d.ts +0 -12
- package/esm/util/adapterConfigKey.js +0 -14
- package/esm/util/stopToken.d.ts +0 -212
- package/esm/util/stopToken.js +0 -438
package/esm/ReExports/modules.js
CHANGED
|
@@ -1,90 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import { DataGridEntries } from './MuiDataGridReExports.js';
|
|
10
|
-
import { Entries } from './MuiReExports.js';
|
|
11
|
-
import { MUIStyles } from './MuiStylesReExports.js';
|
|
12
|
-
import { lazyMap } from './lazify.js';
|
|
13
|
-
import * as coreUi from './publicUi.js';
|
|
14
|
-
import { sharedModules } from './sharedModules.js';
|
|
15
|
-
function makeLegacyMakeStyles() {
|
|
16
|
-
return (args) => {
|
|
17
|
-
const useStyles = makeStyles()(args);
|
|
18
|
-
return () => useStyles().classes;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
const tssReact = { cx, keyframes, makeStyles };
|
|
22
|
-
const legacyMakeStyles = makeLegacyMakeStyles();
|
|
23
|
-
const materialUiCoreLib = {
|
|
24
|
-
...lazyMap(Entries),
|
|
25
|
-
useTheme,
|
|
26
|
-
alpha,
|
|
27
|
-
makeStyles: legacyMakeStyles,
|
|
28
|
-
};
|
|
29
|
-
const muiMaterialLib = {
|
|
30
|
-
...lazyMap(Entries),
|
|
31
|
-
alpha,
|
|
32
|
-
useTheme,
|
|
33
|
-
createTheme,
|
|
34
|
-
};
|
|
35
|
-
const materialUiLabLib = {
|
|
36
|
-
Alert: Entries.Alert,
|
|
37
|
-
Autocomplete: Entries.Autocomplete,
|
|
38
|
-
ToggleButton: Entries.ToggleButton,
|
|
39
|
-
ToggleButtonGroup: Entries.ToggleButtonGroup,
|
|
40
|
-
};
|
|
41
|
-
const muiStylesLib = { ...MUIStyles, makeStyles: legacyMakeStyles };
|
|
1
|
+
// The runtime plugin ABI @jbrowse/core alone can serve, on the main thread: the
|
|
2
|
+
// framework singletons and Material UI from frameworkModules.ts, and every
|
|
3
|
+
// subpath core's exports map publishes from the generated half. A product
|
|
4
|
+
// spreads this under the packages it bundles beyond core — see each
|
|
5
|
+
// product's reExports.generated.ts, and scripts/generateReExports.ts for how
|
|
6
|
+
// both halves and list.ts are derived.
|
|
7
|
+
import coreModules from './coreModules.generated.js';
|
|
8
|
+
import frameworkModules from './frameworkModules.js';
|
|
42
9
|
const libs = {
|
|
43
|
-
...
|
|
44
|
-
|
|
45
|
-
'react-dom': ReactDom,
|
|
46
|
-
'react-dom/client': ReactDomClient,
|
|
47
|
-
// Only lazy component entries are re-exported. The grid *hooks*
|
|
48
|
-
// (useGridApiContext/useGridApiRef/useGridRootProps) are intentionally left
|
|
49
|
-
// out: statically importing them here pulled the entire ~1.2 MB
|
|
50
|
-
// @mui/x-data-grid package into the eager first-paint graph, defeating the
|
|
51
|
-
// lazy import('@mui/x-data-grid') in MuiDataGridReExports. First-party code
|
|
52
|
-
// that needs the hooks imports them directly from '@mui/x-data-grid'.
|
|
53
|
-
'@mui/x-data-grid': {
|
|
54
|
-
...lazyMap(DataGridEntries),
|
|
55
|
-
},
|
|
56
|
-
'@mui/material/utils': MUIUtils,
|
|
57
|
-
'@material-ui/core/utils': MUIUtils,
|
|
58
|
-
'tss-react': tssReact,
|
|
59
|
-
'tss-react/mui': tssReact,
|
|
60
|
-
'@material-ui/core': materialUiCoreLib,
|
|
61
|
-
'@mui/material': muiMaterialLib,
|
|
62
|
-
...lazyMap(Entries, '@mui/material/'),
|
|
63
|
-
...lazyMap(Entries, '@material-ui/core/'),
|
|
64
|
-
// @mui/icons-material — bundled into external plugins — reads the
|
|
65
|
-
// `createSvgIcon` *named* export from @mui/material/SvgIcon, but lazyMap
|
|
66
|
-
// exposes only the component (its default). SvgIcon is a primitive that's
|
|
67
|
-
// eagerly loaded in practice, so expose it directly with createSvgIcon
|
|
68
|
-
// attached: a default import still lands on a usable component (rollup-plugin-
|
|
69
|
-
// external-globals substitutes the value itself, esbuild's globalExternals
|
|
70
|
-
// reads `.default`), while the named import and icons-material's CJS
|
|
71
|
-
// `require(...).createSvgIcon` both find the util. A shallow copy carries the
|
|
72
|
-
// forwardRef's $$typeof/render so the shared SvgIcon export isn't mutated.
|
|
73
|
-
// Overrides the lazy entry above; verified against both bundlers.
|
|
74
|
-
// GMOD/jbrowse-components#5606.
|
|
75
|
-
'@mui/material/SvgIcon': Object.assign({}, SvgIcon, { createSvgIcon }),
|
|
76
|
-
'@mui/material/styles': muiStylesLib,
|
|
77
|
-
'@material-ui/core/styles': muiStylesLib,
|
|
78
|
-
// these are core in @mui/material, but used to be in @material-ui/lab
|
|
79
|
-
'@material-ui/lab/ToggleButton': Entries.ToggleButton,
|
|
80
|
-
'@material-ui/lab/ToggleButtonGroup': Entries.ToggleButtonGroup,
|
|
81
|
-
'@material-ui/lab/Autocomplete': Entries.Autocomplete,
|
|
82
|
-
'@material-ui/lab/Alert': Entries.Alert,
|
|
83
|
-
'@material-ui/lab': materialUiLabLib,
|
|
84
|
-
'@jbrowse/core/ui': coreUi,
|
|
85
|
-
// the same lazy component publicUi.tsx puts on the namespace; published
|
|
86
|
-
// react-msaview deep-imports this path, apollo reads the namespace
|
|
87
|
-
'@jbrowse/core/ui/BaseTooltip': coreUi.BaseTooltip,
|
|
88
|
-
'@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': BaseFeatureDetail,
|
|
10
|
+
...frameworkModules,
|
|
11
|
+
...coreModules,
|
|
89
12
|
};
|
|
90
13
|
export default libs;
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* a runtime plugin.
|
|
4
4
|
*
|
|
5
5
|
* `ReExports/modules.ts` is the ABI external plugins link against, and it
|
|
6
|
-
* reaches it by spreading `import * as` namespaces of
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* reaches it by spreading `import * as` namespaces of every subpath core
|
|
7
|
+
* publishes into one object, as each product's `reExports.generated.ts` does
|
|
8
|
+
* for every package it bundles. A namespace spread *names every export*, so
|
|
9
|
+
* nothing downstream of those modules can be tree-shaken. `PluginManager` used
|
|
10
|
+
* to import it
|
|
11
11
|
* statically for `jbrequire`, which put the whole surface — most of
|
|
12
12
|
* `@jbrowse/core/ui` and, behind it, ~400 KB of Material UI — into the eager
|
|
13
13
|
* first-paint graph of **every** host, including embedded ones that load no
|
|
@@ -26,3 +26,21 @@ export function setReExportRegistry(libs) {
|
|
|
26
26
|
export function getReExportRegistry() {
|
|
27
27
|
return registry;
|
|
28
28
|
}
|
|
29
|
+
// A bundle built against another @jbrowse/core, or against a package this host
|
|
30
|
+
// does not bundle, reads a key the map lacks — at module scope, so what it then
|
|
31
|
+
// throws is `Cannot read properties of undefined` with no module named. A
|
|
32
|
+
// plugin's own build tool only ever externalizes a key `ReExports/list.ts`
|
|
33
|
+
// names, so every scoped-or-slashed read that misses is that case, and this
|
|
34
|
+
// names it. Anything else missing reads `undefined` as it always did.
|
|
35
|
+
export function loudOnMissingModule(libs) {
|
|
36
|
+
return new Proxy(libs, {
|
|
37
|
+
get(target, key, receiver) {
|
|
38
|
+
if (typeof key === 'string' &&
|
|
39
|
+
!(key in target) &&
|
|
40
|
+
(key.startsWith('@') || key.includes('/'))) {
|
|
41
|
+
throw new Error(`This JBrowse does not serve '${key}' to plugins: the plugin was built against an older or newer @jbrowse/core, or against a package this host does not bundle`);
|
|
42
|
+
}
|
|
43
|
+
return Reflect.get(target, key, receiver);
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export declare const uiStub: unknown;
|
|
2
|
-
export declare function uiNamespace(names: readonly string[]): Record<string, unknown>;
|
|
2
|
+
export declare function uiNamespace(names: readonly string[], esModule?: boolean): Record<string, unknown>;
|
|
3
|
+
export declare const REACT_INTERNAL_KEYS: Set<string>;
|
package/esm/ReExports/uiStub.js
CHANGED
|
@@ -6,6 +6,28 @@ export const uiStub = new Proxy(function stubTarget() { }, {
|
|
|
6
6
|
apply: () => uiStub,
|
|
7
7
|
construct: () => uiStub,
|
|
8
8
|
});
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
// `esModule` mirrors the `__esModule` the main thread sets on a namespace that
|
|
10
|
+
// carries a default export beside named ones, so a bundler's interop reads the
|
|
11
|
+
// stub's `default` the same way in both realms.
|
|
12
|
+
export function uiNamespace(names, esModule = false) {
|
|
13
|
+
return {
|
|
14
|
+
...(esModule ? { __esModule: true } : {}),
|
|
15
|
+
...Object.fromEntries(names.map(name => [name, uiStub])),
|
|
16
|
+
};
|
|
11
17
|
}
|
|
18
|
+
// Own keys React puts on a component object, which are not export names and
|
|
19
|
+
// so do not survive into a stub or the manifest.
|
|
20
|
+
export const REACT_INTERNAL_KEYS = new Set([
|
|
21
|
+
'$$typeof',
|
|
22
|
+
'_debugInfo',
|
|
23
|
+
'_init',
|
|
24
|
+
'_payload',
|
|
25
|
+
'compare',
|
|
26
|
+
'contextTypes',
|
|
27
|
+
'defaultProps',
|
|
28
|
+
'displayName',
|
|
29
|
+
'muiName',
|
|
30
|
+
'propTypes',
|
|
31
|
+
'render',
|
|
32
|
+
'type',
|
|
33
|
+
]);
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
// Same keys as modules.ts, as the RPC worker serves them: a module a plugin
|
|
2
|
+
// reads only to render is a stub carrying the main thread's export names, so
|
|
3
|
+
// the one bundle a plugin ships evaluates in both realms without the worker
|
|
4
|
+
// fetching the UI graph. agent-docs/reference/EAGER_BUNDLE.md
|
|
5
|
+
import coreWorkerModules from './coreWorkerModules.generated.js';
|
|
6
|
+
import frameworkWorkerModules from './frameworkWorkerModules.generated.js';
|
|
6
7
|
const libs = {
|
|
7
|
-
...
|
|
8
|
-
|
|
9
|
-
name in WORKER_NAMESPACE_NAMES
|
|
10
|
-
? uiNamespace(WORKER_NAMESPACE_NAMES[name])
|
|
11
|
-
: uiStub,
|
|
12
|
-
])),
|
|
13
|
-
...sharedModules,
|
|
8
|
+
...frameworkWorkerModules,
|
|
9
|
+
...coreWorkerModules,
|
|
14
10
|
};
|
|
15
11
|
export default libs;
|
|
@@ -9,18 +9,9 @@ export default class TextSearchManager {
|
|
|
9
9
|
constructor(pluginManager: PluginManager);
|
|
10
10
|
clearCache(): void;
|
|
11
11
|
loadTextSearchAdapters(assemblyName: string): Promise<BaseTextSearchAdapter[]>;
|
|
12
|
-
relevantAdapters(assemblyName: string):
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("../configuration/types.ts").AnyConfigurationSchemaType>)[];
|
|
16
|
-
getAdaptersWithAssembly(matches: (names: string[] | undefined) => boolean, confs: AnyConfigurationModel[]): (import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
|
|
17
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
18
|
-
setSlot(slotName: string, value: unknown): void;
|
|
19
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("../configuration/types.ts").AnyConfigurationSchemaType>)[];
|
|
20
|
-
getTrackAdaptersWithAssembly(matches: (names: string[] | undefined) => boolean, confs: AnyConfigurationModel[]): (import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
|
|
21
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
22
|
-
setSlot(slotName: string, value: unknown): void;
|
|
23
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("../configuration/types.ts").AnyConfigurationSchemaType>)[];
|
|
12
|
+
relevantAdapters(assemblyName: string): AnyConfigurationModel[];
|
|
13
|
+
getAdaptersWithAssembly(matches: (names: string[] | undefined) => boolean, confs: AnyConfigurationModel[]): AnyConfigurationModel[];
|
|
14
|
+
getTrackAdaptersWithAssembly(matches: (names: string[] | undefined) => boolean, confs: AnyConfigurationModel[]): AnyConfigurationModel[];
|
|
24
15
|
search(args: BaseTextSearchArgs, assemblyName: string): Promise<BaseResult[]>;
|
|
25
16
|
sortResults({ results, args, }: {
|
|
26
17
|
results: BaseResult[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { hydrateTrackConfig, readConfObject } from '../configuration/index.js';
|
|
2
3
|
import QuickLRU from '../util/QuickLRU/index.js';
|
|
3
|
-
import { isAbortException } from '../util/aborting.js';
|
|
4
|
-
import { checkStopToken } from '../util/stopToken.js';
|
|
4
|
+
import { checkAbortSignal, isAbortException } from '../util/aborting.js';
|
|
5
5
|
import { canonicalAssemblyNames } from '../util/tracks.js';
|
|
6
6
|
// A misconfigured or unreachable index (a 404 .ix, a config missing
|
|
7
7
|
// ixFilePath) must not take down search as a whole: the remaining indexes, and
|
|
@@ -75,12 +75,24 @@ export default class TextSearchManager {
|
|
|
75
75
|
}
|
|
76
76
|
getTrackAdaptersWithAssembly(matches, confs) {
|
|
77
77
|
return confs
|
|
78
|
-
.filter(conf =>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
.filter(conf => {
|
|
79
|
+
const indexNames = readConfObject(conf, [
|
|
80
|
+
'textSearching',
|
|
81
|
+
'textSearchAdapter',
|
|
82
|
+
'assemblyNames',
|
|
83
|
+
]);
|
|
84
|
+
return (!!readConfObject(conf, ['textSearching', 'textSearchAdapter']) &&
|
|
85
|
+
matches(indexNames?.length
|
|
86
|
+
? indexNames
|
|
87
|
+
: readConfObject(conf, 'assemblyNames')));
|
|
88
|
+
})
|
|
89
|
+
.map(conf => {
|
|
90
|
+
const live = isStateTreeNode(conf)
|
|
91
|
+
? conf
|
|
92
|
+
: hydrateTrackConfig(this.pluginManager, conf);
|
|
93
|
+
return live?.textSearching.textSearchAdapter;
|
|
94
|
+
})
|
|
95
|
+
.filter(conf => conf !== undefined);
|
|
84
96
|
}
|
|
85
97
|
async search(args, assemblyName) {
|
|
86
98
|
const adapters = await this.loadTextSearchAdapters(assemblyName);
|
|
@@ -91,7 +103,7 @@ export default class TextSearchManager {
|
|
|
91
103
|
// deliberately drops a failing adapter and carries on, so an abort thrown
|
|
92
104
|
// by one of them would otherwise still land here as "no results from that
|
|
93
105
|
// index" and rank the rest
|
|
94
|
-
|
|
106
|
+
checkAbortSignal(args.signal);
|
|
95
107
|
return await this.sortResults({ args, results: results.flat() });
|
|
96
108
|
}
|
|
97
109
|
// Ranks, never filters: the adapters have already decided what matches, and
|
|
@@ -316,21 +316,17 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
|
|
|
316
316
|
*
|
|
317
317
|
* The load reports progress (the adapter's index download, or for an
|
|
318
318
|
* in-memory adapter the whole file) through the `statusCallback` of
|
|
319
|
-
* whichever caller started it. The
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
* no-op rather than a hazard because the callbacks are `isAlive`-guarded
|
|
328
|
-
* at the display end.
|
|
319
|
+
* whichever caller started it. The other callers get no progress
|
|
320
|
+
* updates. The callers sharing an entry are almost always the N
|
|
321
|
+
* displayed regions of one display, so their callbacks all write into
|
|
322
|
+
* that display's aggregated status bar, where the first caller already
|
|
323
|
+
* reports for the rest. A listener set per key, with registration and
|
|
324
|
+
* deregistration on settle, would add progress only for a second display
|
|
325
|
+
* on the same file and for a first caller torn down mid-load. The latter
|
|
326
|
+
* is a no-op because the display guards its callbacks with `isAlive`.
|
|
329
327
|
*
|
|
330
|
-
* If
|
|
331
|
-
*
|
|
332
|
-
* observable state that consumers read, which is what this model is
|
|
333
|
-
* already made of.
|
|
328
|
+
* If per-caller progress is ever needed, the assembly should hold the
|
|
329
|
+
* in-flight status as observable state that consumers read.
|
|
334
330
|
*/
|
|
335
331
|
getRefNameMapForAdapter(adapterConf: AdapterConf, options: BaseOptions): Promise<RefNameAliases>;
|
|
336
332
|
/**
|
|
@@ -569,21 +569,17 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
569
569
|
*
|
|
570
570
|
* The load reports progress (the adapter's index download, or for an
|
|
571
571
|
* in-memory adapter the whole file) through the `statusCallback` of
|
|
572
|
-
* whichever caller started it. The
|
|
573
|
-
*
|
|
574
|
-
*
|
|
575
|
-
*
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
* no-op rather than a hazard because the callbacks are `isAlive`-guarded
|
|
581
|
-
* at the display end.
|
|
572
|
+
* whichever caller started it. The other callers get no progress
|
|
573
|
+
* updates. The callers sharing an entry are almost always the N
|
|
574
|
+
* displayed regions of one display, so their callbacks all write into
|
|
575
|
+
* that display's aggregated status bar, where the first caller already
|
|
576
|
+
* reports for the rest. A listener set per key, with registration and
|
|
577
|
+
* deregistration on settle, would add progress only for a second display
|
|
578
|
+
* on the same file and for a first caller torn down mid-load. The latter
|
|
579
|
+
* is a no-op because the display guards its callbacks with `isAlive`.
|
|
582
580
|
*
|
|
583
|
-
* If
|
|
584
|
-
*
|
|
585
|
-
* observable state that consumers read, which is what this model is
|
|
586
|
-
* already made of.
|
|
581
|
+
* If per-caller progress is ever needed, the assembly should hold the
|
|
582
|
+
* in-flight status as observable state that consumers read.
|
|
587
583
|
*/
|
|
588
584
|
getRefNameMapForAdapter(adapterConf, options) {
|
|
589
585
|
if (!options.sessionId) {
|
|
@@ -100,102 +100,44 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
|
|
|
100
100
|
* ```
|
|
101
101
|
*/
|
|
102
102
|
declare function assemblyConfigSchema(pluginManager: PluginManager): import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
103
|
-
/**
|
|
104
|
-
* #slot
|
|
105
|
-
* aliases are "reference name aliases" e.g. aliases for hg38 might be
|
|
106
|
-
* "GRCh38"
|
|
107
|
-
*/
|
|
108
103
|
readonly aliases: {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
104
|
+
type: "stringArray";
|
|
105
|
+
} & {
|
|
106
|
+
defaultValue: unknown;
|
|
112
107
|
};
|
|
113
|
-
/**
|
|
114
|
-
* #slot
|
|
115
|
-
* sequence refers to a reference sequence track that has an adapter
|
|
116
|
-
* containing, importantly, a sequence adapter such as
|
|
117
|
-
* IndexedFastaAdapter
|
|
118
|
-
*/
|
|
119
108
|
readonly sequence: import("../configuration/types.ts").AnyConfigurationSchemaType;
|
|
120
|
-
/**
|
|
121
|
-
* #slot
|
|
122
|
-
*/
|
|
123
109
|
readonly refNameColors: {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
110
|
+
type: "stringArray";
|
|
111
|
+
} & {
|
|
112
|
+
defaultValue: unknown;
|
|
127
113
|
};
|
|
128
|
-
/**
|
|
129
|
-
* #slot
|
|
130
|
-
* Maps a reference sequence name to an NCBI genetic-code (translation
|
|
131
|
-
* table) id for sequences that don't use the standard code, e.g.
|
|
132
|
-
* `{ "chrM": 2 }` for the vertebrate mitochondrial code or
|
|
133
|
-
* `{ "chrPltd": 11 }` for a plastid. Drives the reference sequence track's
|
|
134
|
-
* translation rows; unlisted refNames use the standard code (1). CDS-level
|
|
135
|
-
* translation reads the GFF `transl_table` attribute directly and ignores
|
|
136
|
-
* this.
|
|
137
|
-
*
|
|
138
|
-
* #example
|
|
139
|
-
* Mitochondrial contig translated with the vertebrate mitochondrial code
|
|
140
|
-
* (NCBI table 2), a plastid contig with table 11; keys are matched through
|
|
141
|
-
* refName aliasing:
|
|
142
|
-
* ```js
|
|
143
|
-
* { chrM: 2, chrPltd: 11 }
|
|
144
|
-
* ```
|
|
145
|
-
*/
|
|
146
114
|
readonly geneticCodes: {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
115
|
+
type: "frozen";
|
|
116
|
+
} & {
|
|
117
|
+
defaultValue: unknown;
|
|
150
118
|
};
|
|
151
|
-
/**
|
|
152
|
-
* #slot
|
|
153
|
-
* Optional file (tab-separated `refName<TAB>geneticCodeId`, `#` comments
|
|
154
|
-
* allowed) to load the same refName-to-genetic-code mapping from, instead
|
|
155
|
-
* of inlining it — useful when a config generator emits a sidecar rather
|
|
156
|
-
* than inlining per assembly. Entries in the inline `geneticCodes` slot
|
|
157
|
-
* take precedence over the file.
|
|
158
|
-
*
|
|
159
|
-
* #example
|
|
160
|
-
* The TSV is `refName<TAB>geneticCodeId` with optional `#` comment lines:
|
|
161
|
-
* ```js
|
|
162
|
-
* { uri: 'https://example.com/hg38.genetic_codes.tsv' }
|
|
163
|
-
* ```
|
|
164
|
-
*/
|
|
165
119
|
readonly geneticCodesLocation: {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
readonly locationType: "UriLocation";
|
|
170
|
-
};
|
|
171
|
-
readonly description: "Optional TSV file of refName<TAB>geneticCodeId, an alternative to inlining the geneticCodes map";
|
|
120
|
+
type: "fileLocation";
|
|
121
|
+
} & {
|
|
122
|
+
defaultValue: unknown;
|
|
172
123
|
};
|
|
173
124
|
readonly refNameAliases: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
174
|
-
/**
|
|
175
|
-
* #slot refNameAliases.adapter
|
|
176
|
-
* refNameAliases help resolve e.g. chr1 and 1 as the same entity the
|
|
177
|
-
* data for refNameAliases are fetched from an adapter, that is
|
|
178
|
-
* commonly a tsv like chromAliases.txt from UCSC or similar
|
|
179
|
-
*/
|
|
180
125
|
readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
181
|
-
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined
|
|
126
|
+
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
182
127
|
readonly cytobands: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
183
|
-
/**
|
|
184
|
-
* #slot cytobands.adapter
|
|
185
|
-
* cytoband data is fetched from an adapter, and can be displayed by
|
|
186
|
-
* a view type as ideograms
|
|
187
|
-
*/
|
|
188
128
|
readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
189
|
-
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined
|
|
190
|
-
/**
|
|
191
|
-
* #slot
|
|
192
|
-
*/
|
|
129
|
+
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
193
130
|
readonly displayName: {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
131
|
+
type: "string";
|
|
132
|
+
} & {
|
|
133
|
+
defaultValue: string;
|
|
197
134
|
};
|
|
198
|
-
|
|
135
|
+
name: {
|
|
136
|
+
type: "string";
|
|
137
|
+
} & {
|
|
138
|
+
defaultValue: string;
|
|
139
|
+
};
|
|
140
|
+
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "name", undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
199
141
|
export default assemblyConfigSchema;
|
|
200
142
|
/** the assembly config schema IType (use with `getConf`, `ConfigurationReference`, etc.) */
|
|
201
143
|
export type BaseAssemblyConfigSchema = ReturnType<typeof assemblyConfigSchema>;
|
|
@@ -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
|
-
|
|
9
|
+
signal?: AbortSignal;
|
|
10
10
|
sessionId: string;
|
|
11
11
|
statusCallback?: StatusCallback;
|
|
12
12
|
}
|
|
@@ -578,10 +578,7 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
|
|
|
578
578
|
* combined jbrowse.assemblies, session.sessionAssemblies, and
|
|
579
579
|
* session.temporaryAssemblies
|
|
580
580
|
*/
|
|
581
|
-
readonly assemblyList:
|
|
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>)[];
|
|
581
|
+
readonly assemblyList: AnyConfigurationModel[];
|
|
585
582
|
readonly rpcManager: RpcManager;
|
|
586
583
|
} & {
|
|
587
584
|
/**
|
|
@@ -753,18 +750,15 @@ declare function assemblyManagerFactory(conf: IAnyType, pm: PluginManager): impo
|
|
|
753
750
|
* {@link waitForAssembly}, but a name that cannot be resolved is an error
|
|
754
751
|
* rather than an `undefined` for the caller to interpret.
|
|
755
752
|
*
|
|
756
|
-
*
|
|
757
|
-
*
|
|
758
|
-
*
|
|
759
|
-
*
|
|
760
|
-
* puts the name in front of the user, who is the only one who can add the
|
|
753
|
+
* Use it where a missing assembly produces a wrong result with no error.
|
|
754
|
+
* A refName map is one case: an empty map means an adapter gets queried
|
|
755
|
+
* with un-renamed refNames, finds nothing, and the track draws blank.
|
|
756
|
+
* Throwing here shows the assembly name to the user, who can add the
|
|
761
757
|
* assembly or fix the track.
|
|
762
758
|
*
|
|
763
|
-
*
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
* only once every handler and connection that could supply the name has
|
|
767
|
-
* finished, so there is a real answer to report.
|
|
759
|
+
* `waitForAssembly` returns only once every handler and connection that
|
|
760
|
+
* could supply the name has finished, so an unresolved name here is
|
|
761
|
+
* final and throwing does not race a late load.
|
|
768
762
|
*/
|
|
769
763
|
requireAssembly(assemblyName: string): Promise<import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<{
|
|
770
764
|
configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
|
|
@@ -343,18 +343,15 @@ function assemblyManagerFactory(conf, pm) {
|
|
|
343
343
|
* {@link waitForAssembly}, but a name that cannot be resolved is an error
|
|
344
344
|
* rather than an `undefined` for the caller to interpret.
|
|
345
345
|
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
* puts the name in front of the user, who is the only one who can add the
|
|
346
|
+
* Use it where a missing assembly produces a wrong result with no error.
|
|
347
|
+
* A refName map is one case: an empty map means an adapter gets queried
|
|
348
|
+
* with un-renamed refNames, finds nothing, and the track draws blank.
|
|
349
|
+
* Throwing here shows the assembly name to the user, who can add the
|
|
351
350
|
* assembly or fix the track.
|
|
352
351
|
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
* only once every handler and connection that could supply the name has
|
|
357
|
-
* finished, so there is a real answer to report.
|
|
352
|
+
* `waitForAssembly` returns only once every handler and connection that
|
|
353
|
+
* could supply the name has finished, so an unresolved name here is
|
|
354
|
+
* final and throwing does not race a late load.
|
|
358
355
|
*/
|
|
359
356
|
async requireAssembly(assemblyName) {
|
|
360
357
|
const assembly = await this.waitForAssembly(assemblyName);
|
|
@@ -27,10 +27,10 @@ export async function loadRefNameMap(assembly, adapterConfig, options) {
|
|
|
27
27
|
adapterConfig: adapterConfig,
|
|
28
28
|
assemblyName: assembly.name,
|
|
29
29
|
sequenceAdapter,
|
|
30
|
-
//
|
|
30
|
+
// signal intentionally not passed, fixes issues like #2221.
|
|
31
31
|
// alternative fix #2540 was proposed but non-working currently
|
|
32
|
-
|
|
33
|
-
// Forwarded rather than dropped (unlike
|
|
32
|
+
signal: undefined,
|
|
33
|
+
// Forwarded rather than dropped (unlike signal above), because the
|
|
34
34
|
// adapter's index download happens here during refname mapping
|
|
35
35
|
// (getRefNames -> setup) and this is the only place its "Downloading
|
|
36
36
|
// index" progress can surface. For an in-memory adapter it is not an
|