@jbrowse/core 4.3.0 → 5.0.0-beta.2
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 +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +390 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -1,20 +1,140 @@
|
|
|
1
1
|
import PluggableElementBase from './PluggableElementBase.ts';
|
|
2
2
|
import type PluginManager from '../PluginManager.ts';
|
|
3
|
+
import type { RpcCallContext, RpcCallReturn, RpcExecuteArgs, RpcSession, RpcWireReturn } from '../rpc/RpcRegistry.ts';
|
|
4
|
+
import type { Region } from '../util/index.ts';
|
|
3
5
|
import type { UriLocation } from '../util/types/index.ts';
|
|
4
6
|
export type RpcMethodConstructor = new (pm: PluginManager) => RpcMethodType;
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
+
export type RenameRegionsArgs = RpcCallContext & {
|
|
8
|
+
assemblyName?: string;
|
|
9
|
+
regions?: Region[];
|
|
10
|
+
adapterConfig: Record<string, unknown>;
|
|
11
|
+
};
|
|
12
|
+
export type RenameRegionArgs = RpcSession & {
|
|
13
|
+
region: Region;
|
|
14
|
+
adapterConfig: Record<string, unknown>;
|
|
15
|
+
};
|
|
16
|
+
export declare function convertFileHandleLocations(obj: unknown, blobMap: Record<string, File>): void;
|
|
17
|
+
/**
|
|
18
|
+
* Base for an RPC method. Parameterize with the method's own registry name —
|
|
19
|
+
* `class CoreGetRegions extends RpcMethodType<'CoreGetRegions'>` — and `execute`
|
|
20
|
+
* is then checked against that entry's declared `return` (bare or wrapped in
|
|
21
|
+
* rpcResult), so the registry stays an assertion about the worker rather than a
|
|
22
|
+
* hand-maintained guess. Left unparameterized, `execute` resolves to `unknown`
|
|
23
|
+
* as before; that's the escape hatch, and it should be rare.
|
|
24
|
+
*
|
|
25
|
+
* The name is checked twice over, because parameterizing used to be a claim
|
|
26
|
+
* rather than a fact: it must be a key of the registry (a miss lands on
|
|
27
|
+
* {@link NotInRpcRegistry} instead of quietly on `unknown`), and it must be the
|
|
28
|
+
* key this class sets as its {@link name}. Both are compile errors, so the
|
|
29
|
+
* escape hatch is the only way to end up unchecked, and taking it is visible.
|
|
30
|
+
*
|
|
31
|
+
* A method whose worker sends something other than the registry `return` — a
|
|
32
|
+
* result wrapped in `rpcResult` to hand its buffers to postMessage, or one
|
|
33
|
+
* `deserializeReturn` rebuilds — says so in the registry entry, beside the
|
|
34
|
+
* `return` it has to be read against. There is deliberately no second type
|
|
35
|
+
* parameter for it. As one it was a copy of the registry rather than a
|
|
36
|
+
* reference to it, and fifteen classes kept the copy in step by hand.
|
|
37
|
+
*
|
|
38
|
+
* The name is the ONLY parameter, and that is what makes this shape uniform:
|
|
39
|
+
* a second one survives only where a base is still GENERIC over its name, since
|
|
40
|
+
* `RpcWireReturn<MethodName>` is then a conditional TypeScript will not resolve
|
|
41
|
+
* and the shared body has nothing to check against. Such a base has to pin the
|
|
42
|
+
* wire return by hand and constrain `MethodName` to keep the pin honest — which
|
|
43
|
+
* is a mechanism, and the last one that needed it was sharing a three-line
|
|
44
|
+
* delegation two subclasses could each just write (see `runDiagonalize` in
|
|
45
|
+
* @jbrowse/synteny-core). Share an RPC body as a FUNCTION, not as a base
|
|
46
|
+
* generic over the key.
|
|
47
|
+
*
|
|
48
|
+
* The way back is {@link deserializeReturn}, checked against the same entry's
|
|
49
|
+
* `return`.
|
|
50
|
+
*/
|
|
51
|
+
export default abstract class RpcMethodType<MethodName extends string = string> extends PluggableElementBase {
|
|
52
|
+
/**
|
|
53
|
+
* The key this method is registered under, and the same one the class is
|
|
54
|
+
* parameterized with — `pluginManager.getRpcMethodType` looks it up by this
|
|
55
|
+
* string, so it is what a caller's `rpcManager.call` names.
|
|
56
|
+
*
|
|
57
|
+
* Narrowed to `MethodName` because the parameter was otherwise a claim about
|
|
58
|
+
* a method that nothing checked was this one: `RpcMethodType<'A'>` with
|
|
59
|
+
* `name = 'B'` type-checked, and then `execute` was checked against B's
|
|
60
|
+
* registry entry while the worker ran it for A. Not hypothetical here —
|
|
61
|
+
* `GetPileupFeatureDetails` and `GetCanvasFeatureDetails` are two registry
|
|
62
|
+
* keys held by two same-bodied classes both called `GetFeatureDetails`.
|
|
63
|
+
*
|
|
64
|
+
* A class field initializer is not contextually typed by the base property,
|
|
65
|
+
* so a parameterized subclass writes `name = 'CoreGetRegions' as const`.
|
|
66
|
+
* Omitting the `as const` is a compile error on `name`, which is the point:
|
|
67
|
+
* the tie is either made or reported, never silently absent. Unparameterized
|
|
68
|
+
* subclasses keep plain `string` and need nothing.
|
|
69
|
+
*/
|
|
70
|
+
name: MethodName;
|
|
7
71
|
pluginManager: PluginManager;
|
|
8
72
|
constructor(pluginManager: PluginManager);
|
|
9
|
-
serializeArguments(args:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
73
|
+
serializeArguments(args: object): Promise<Record<string, unknown>>;
|
|
74
|
+
protected renameRegions<T extends RenameRegionsArgs>(args: T): Promise<T>;
|
|
75
|
+
/**
|
|
76
|
+
* The root model to resolve internet accounts against, but only while it is
|
|
77
|
+
* still attached to its tree. An RPC's promise can settle after the session it
|
|
78
|
+
* belongs to is gone — jbrowse-web loading a new session, or a headless
|
|
79
|
+
* renderer (jbrowse-img) destroying its model once the SVG is out — and
|
|
80
|
+
* reading `internetAccounts` off a destroyed node logs an MST dead-node
|
|
81
|
+
* warning for work whose result is already discarded. A torn-down root has no
|
|
82
|
+
* accounts to consult, so it reads as "none" rather than as an error.
|
|
83
|
+
*/
|
|
84
|
+
private get authRootModel();
|
|
85
|
+
serializeNewAuthArguments(loc: UriLocation): Promise<UriLocation>;
|
|
86
|
+
/**
|
|
87
|
+
* What both drivers call: deserialize, then `execute`.
|
|
88
|
+
*
|
|
89
|
+
* Each `execute` used to open with the deserialize call itself, and eleven
|
|
90
|
+
* methods across seven plugins had silently drifted off it. `RpcExecuteArgs`
|
|
91
|
+
* describes the DESERIALIZED shape — an entry declares `filters?:
|
|
92
|
+
* SerializableFilterChain` where the wire carries a `string[]` — so skipping
|
|
93
|
+
* it made the declared type false rather than erroring. Here it is true by
|
|
94
|
+
* construction.
|
|
95
|
+
*/
|
|
96
|
+
invoke(serializedArgs: RpcExecuteArgs<MethodName>): Promise<RpcWireReturn<MethodName>>;
|
|
97
|
+
/**
|
|
98
|
+
* The far side of `serializeArguments`; {@link invoke} calls it. Override to
|
|
99
|
+
* add to the step, not to call it — and **an override must tolerate running
|
|
100
|
+
* twice on the same object**, since an external plugin written against the
|
|
101
|
+
* older contract still calls it from its own `execute`.
|
|
102
|
+
*/
|
|
103
|
+
deserializeArguments<T>(args: T): Promise<T>;
|
|
104
|
+
/**
|
|
105
|
+
* The args are {@link RpcExecuteArgs} rather than `unknown` so that a method
|
|
106
|
+
* parameterized with its own name has BOTH ends checked against the registry.
|
|
107
|
+
* The return has been checked for a while; the args were hand-written in each
|
|
108
|
+
* of 45 subclasses, which is the asymmetry that let them drift — and the drift
|
|
109
|
+
* is not cosmetic, because the two handles every method receives are the two
|
|
110
|
+
* an author who did not write them down never forwards.
|
|
111
|
+
*
|
|
112
|
+
* `CoreGetExportData` is the worked example: the stop token and status
|
|
113
|
+
* callback arrived on every call and its `execute` destructured neither, so
|
|
114
|
+
* the Save-track-data dialog's cancel did nothing and its progress never moved
|
|
115
|
+
* on the adapter-export branch. Nothing was mistyped — the fields simply were
|
|
116
|
+
* not in a signature anyone read.
|
|
117
|
+
*/
|
|
118
|
+
abstract execute(serializedArgs: RpcExecuteArgs<MethodName>): Promise<RpcWireReturn<MethodName>>;
|
|
119
|
+
/**
|
|
120
|
+
* The wire shape, rebuilt into what the caller of `rpcManager.call` holds —
|
|
121
|
+
* the registry entry's `return`. Overridden by the three methods whose two
|
|
122
|
+
* differ (features travel serialized and arrive as `SimpleFeature`s); for
|
|
123
|
+
* everyone else the whole job is taking off the `rpcResult` envelope, which
|
|
124
|
+
* MainThreadRpcDriver needs because nothing stripped it on that path.
|
|
125
|
+
*
|
|
126
|
+
* The registry `return` is checked against `execute` on the way in (through
|
|
127
|
+
* {@link RpcWireReturn}) and this is what checks it on the way back out. It
|
|
128
|
+
* checks covariantly, so unlike the arguments it cannot be widened past.
|
|
129
|
+
*
|
|
130
|
+
* An override calls {@link unwrapRpcResult} rather than `super`, because the
|
|
131
|
+
* envelope is all it wants and `super` now promises the rebuilt value it is
|
|
132
|
+
* the one rebuilding. The cast below is the claim that stands for every
|
|
133
|
+
* method that does NOT override: unwrapped wire is the declared `return`.
|
|
134
|
+
* True by construction for a `transferables: true` or bare entry, since both
|
|
135
|
+
* derive their wire from that `return`; an explicit `wire:` restates, so it
|
|
136
|
+
* is the one that has to override or agree.
|
|
137
|
+
*/
|
|
138
|
+
deserializeReturn(serializedReturn: RpcWireReturn<MethodName>, _args: unknown): Promise<RpcCallReturn<MethodName>>;
|
|
19
139
|
private augmentLocationObjects;
|
|
20
140
|
}
|
|
@@ -1,132 +1,297 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import { isAlive, isStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { renameRegionsIfNeeded } from '../util/index.js';
|
|
3
|
+
import { resolveUriLocation } from '../util/io/index.js';
|
|
4
|
+
import { unwrapRpcResult } from '../util/rpc.js';
|
|
5
|
+
import { getBlobMap, getFileFromCache, hasFileHandlesInCache, setBlobMap, } from '../util/tracks.js';
|
|
6
|
+
import { isAppRootModel, isFileHandleLocation, isUriLocation, } from '../util/types/index.js';
|
|
7
|
+
import PluggableElementBase from './PluggableElementBase.js';
|
|
8
|
+
function convertFileHandleToBlob(loc, blobMap) {
|
|
9
|
+
const file = getFileFromCache(loc.handleId);
|
|
10
|
+
if (!file) {
|
|
11
|
+
throw new Error(`File not in cache for handleId: ${loc.handleId}. ` +
|
|
12
|
+
`The file "${loc.name}" may need to be reopened.`);
|
|
13
|
+
}
|
|
14
|
+
// Deterministic blobId from handleId so the same FileHandleLocation always
|
|
15
|
+
// produces the same BlobLocation — keeps adapter config hashes stable.
|
|
16
|
+
const blobId = `fh-blob-${loc.handleId}`;
|
|
17
|
+
blobMap[blobId] = file;
|
|
18
|
+
return { locationType: 'BlobLocation', name: loc.name, blobId };
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Single recursive walker that handles both FileHandleLocation → BlobLocation
|
|
22
|
+
* conversion and UriLocation collection for auth augmentation. Either side can
|
|
23
|
+
* be disabled by omitting the corresponding option; if both are omitted the
|
|
24
|
+
* walk is a no-op and the caller should skip it entirely.
|
|
25
|
+
*/
|
|
26
|
+
function walkLocationObjects(obj, opts, seen = new WeakSet()) {
|
|
27
|
+
if (!obj || typeof obj !== 'object' || seen.has(obj)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
seen.add(obj);
|
|
31
|
+
const visit = (val, write) => {
|
|
32
|
+
if (opts.blobMap && isFileHandleLocation(val)) {
|
|
33
|
+
write(convertFileHandleToBlob(val, opts.blobMap));
|
|
32
34
|
}
|
|
33
35
|
else {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const val = record[key];
|
|
37
|
-
if (isFileHandleLocation(val)) {
|
|
38
|
-
record[key] = convertLocation(val);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
convert(val);
|
|
42
|
-
}
|
|
36
|
+
if (opts.uris && isUriLocation(val)) {
|
|
37
|
+
opts.uris.push(val);
|
|
43
38
|
}
|
|
39
|
+
walkLocationObjects(val, opts, seen);
|
|
44
40
|
}
|
|
45
41
|
};
|
|
46
|
-
|
|
42
|
+
if (Array.isArray(obj)) {
|
|
43
|
+
for (let i = 0; i < obj.length; i++) {
|
|
44
|
+
visit(obj[i], next => {
|
|
45
|
+
obj[i] = next;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const record = obj;
|
|
51
|
+
for (const key of Object.keys(record)) {
|
|
52
|
+
visit(record[key], next => {
|
|
53
|
+
record[key] = next;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Whether structuredClone (and the worker postMessage boundary) can carry this
|
|
59
|
+
// value. Functions and Errors cannot; ownArgs passes them through by reference
|
|
60
|
+
// rather than recursing, and a genuine one leaking through surfaces at the
|
|
61
|
+
// worker postMessage boundary in production.
|
|
62
|
+
function isCloneable(thing) {
|
|
63
|
+
return !(typeof thing === 'function') && !(thing instanceof Error);
|
|
64
|
+
}
|
|
65
|
+
// Values that structuredClone handles natively and that must pass through
|
|
66
|
+
// ownArgs unchanged: `Object.entries` on them yields `[]`, so naive cloning
|
|
67
|
+
// would collapse them to plain `{}` (e.g. a SharedArrayBuffer-backed stop token
|
|
68
|
+
// would silently stop working, a typed array would lose its data).
|
|
69
|
+
function isStructuredClonePassthrough(thing) {
|
|
70
|
+
return (thing instanceof File ||
|
|
71
|
+
thing instanceof Blob ||
|
|
72
|
+
thing instanceof ArrayBuffer ||
|
|
73
|
+
// SharedArrayBuffer is not an ArrayBuffer subclass; without this it
|
|
74
|
+
// collapses to {} and SAB-based stop tokens silently stop working. Nothing
|
|
75
|
+
// we ship mints one (see `stopToken.ts`, "Which path runs where"), so this
|
|
76
|
+
// arm is correctness for an isolated embedding host and nothing else —
|
|
77
|
+
// keep it, but it is not a hot path and never was.
|
|
78
|
+
(typeof SharedArrayBuffer !== 'undefined' &&
|
|
79
|
+
thing instanceof SharedArrayBuffer) ||
|
|
80
|
+
ArrayBuffer.isView(thing) ||
|
|
81
|
+
thing instanceof Date ||
|
|
82
|
+
thing instanceof Map ||
|
|
83
|
+
thing instanceof Set ||
|
|
84
|
+
thing instanceof RegExp);
|
|
85
|
+
}
|
|
86
|
+
// Deep-clone the object/array spine of the RPC args so blob conversion and auth
|
|
87
|
+
// augmentation mutate owned data, never the read-only config snapshots that flow
|
|
88
|
+
// in via readConfObject.
|
|
89
|
+
//
|
|
90
|
+
// **`structuredClone` is not the simplification it looks like, and the reason is
|
|
91
|
+
// production rather than the test realm.** These args still carry the
|
|
92
|
+
// `statusCallback`: `BaseRpcDriver.call` strips it from serialization's OUTPUT,
|
|
93
|
+
// deliberately and with its own comment saying so, because resolving a refName
|
|
94
|
+
// map downloads an index and that download has to have somewhere to report. A
|
|
95
|
+
// function is not cloneable, so a real structuredClone would throw
|
|
96
|
+
// DataCloneError on every call a display makes.
|
|
97
|
+
//
|
|
98
|
+
// So: non-cloneable leaves (functions, Errors) and structured-clone natives
|
|
99
|
+
// (typed arrays, Blobs, the SAB stop token...) pass through by reference
|
|
100
|
+
// unchanged. A genuinely non-cloneable value that leaked in by mistake is still
|
|
101
|
+
// caught — at the worker postMessage boundary, which is a real structuredClone.
|
|
102
|
+
function ownArgs(thing, seen = new WeakMap()) {
|
|
103
|
+
if (!thing || typeof thing !== 'object') {
|
|
104
|
+
return thing;
|
|
105
|
+
}
|
|
106
|
+
if (isStructuredClonePassthrough(thing) || !isCloneable(thing)) {
|
|
107
|
+
return thing;
|
|
108
|
+
}
|
|
109
|
+
const existing = seen.get(thing);
|
|
110
|
+
if (existing) {
|
|
111
|
+
return existing;
|
|
112
|
+
}
|
|
113
|
+
if (Array.isArray(thing)) {
|
|
114
|
+
const clone = [];
|
|
115
|
+
seen.set(thing, clone);
|
|
116
|
+
for (const item of thing) {
|
|
117
|
+
clone.push(ownArgs(item, seen));
|
|
118
|
+
}
|
|
119
|
+
return clone;
|
|
120
|
+
}
|
|
121
|
+
const clone = {};
|
|
122
|
+
seen.set(thing, clone);
|
|
123
|
+
for (const [key, value] of Object.entries(thing)) {
|
|
124
|
+
clone[key] = ownArgs(value, seen);
|
|
125
|
+
}
|
|
126
|
+
return clone;
|
|
127
|
+
}
|
|
128
|
+
// Back-compat wrapper around the combined walker; some tests and external
|
|
129
|
+
// callers import this directly.
|
|
130
|
+
export function convertFileHandleLocations(obj, blobMap) {
|
|
131
|
+
walkLocationObjects(obj, { blobMap });
|
|
47
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Base for an RPC method. Parameterize with the method's own registry name —
|
|
135
|
+
* `class CoreGetRegions extends RpcMethodType<'CoreGetRegions'>` — and `execute`
|
|
136
|
+
* is then checked against that entry's declared `return` (bare or wrapped in
|
|
137
|
+
* rpcResult), so the registry stays an assertion about the worker rather than a
|
|
138
|
+
* hand-maintained guess. Left unparameterized, `execute` resolves to `unknown`
|
|
139
|
+
* as before; that's the escape hatch, and it should be rare.
|
|
140
|
+
*
|
|
141
|
+
* The name is checked twice over, because parameterizing used to be a claim
|
|
142
|
+
* rather than a fact: it must be a key of the registry (a miss lands on
|
|
143
|
+
* {@link NotInRpcRegistry} instead of quietly on `unknown`), and it must be the
|
|
144
|
+
* key this class sets as its {@link name}. Both are compile errors, so the
|
|
145
|
+
* escape hatch is the only way to end up unchecked, and taking it is visible.
|
|
146
|
+
*
|
|
147
|
+
* A method whose worker sends something other than the registry `return` — a
|
|
148
|
+
* result wrapped in `rpcResult` to hand its buffers to postMessage, or one
|
|
149
|
+
* `deserializeReturn` rebuilds — says so in the registry entry, beside the
|
|
150
|
+
* `return` it has to be read against. There is deliberately no second type
|
|
151
|
+
* parameter for it. As one it was a copy of the registry rather than a
|
|
152
|
+
* reference to it, and fifteen classes kept the copy in step by hand.
|
|
153
|
+
*
|
|
154
|
+
* The name is the ONLY parameter, and that is what makes this shape uniform:
|
|
155
|
+
* a second one survives only where a base is still GENERIC over its name, since
|
|
156
|
+
* `RpcWireReturn<MethodName>` is then a conditional TypeScript will not resolve
|
|
157
|
+
* and the shared body has nothing to check against. Such a base has to pin the
|
|
158
|
+
* wire return by hand and constrain `MethodName` to keep the pin honest — which
|
|
159
|
+
* is a mechanism, and the last one that needed it was sharing a three-line
|
|
160
|
+
* delegation two subclasses could each just write (see `runDiagonalize` in
|
|
161
|
+
* @jbrowse/synteny-core). Share an RPC body as a FUNCTION, not as a base
|
|
162
|
+
* generic over the key.
|
|
163
|
+
*
|
|
164
|
+
* The way back is {@link deserializeReturn}, checked against the same entry's
|
|
165
|
+
* `return`.
|
|
166
|
+
*/
|
|
48
167
|
export default class RpcMethodType extends PluggableElementBase {
|
|
49
168
|
pluginManager;
|
|
50
169
|
constructor(pluginManager) {
|
|
51
170
|
super();
|
|
52
171
|
this.pluginManager = pluginManager;
|
|
53
172
|
}
|
|
54
|
-
async serializeArguments(args
|
|
55
|
-
await this.augmentLocationObjects(args
|
|
173
|
+
async serializeArguments(args) {
|
|
174
|
+
const augmented = await this.augmentLocationObjects(args);
|
|
56
175
|
return {
|
|
57
|
-
...
|
|
176
|
+
...augmented,
|
|
58
177
|
blobMap: getBlobMap(),
|
|
59
178
|
};
|
|
60
179
|
}
|
|
61
|
-
async
|
|
180
|
+
async renameRegions(args) {
|
|
181
|
+
const { rootModel } = this.pluginManager;
|
|
182
|
+
return renameRegionsIfNeeded(rootModel.session.assemblyManager, args);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The root model to resolve internet accounts against, but only while it is
|
|
186
|
+
* still attached to its tree. An RPC's promise can settle after the session it
|
|
187
|
+
* belongs to is gone — jbrowse-web loading a new session, or a headless
|
|
188
|
+
* renderer (jbrowse-img) destroying its model once the SVG is out — and
|
|
189
|
+
* reading `internetAccounts` off a destroyed node logs an MST dead-node
|
|
190
|
+
* warning for work whose result is already discarded. A torn-down root has no
|
|
191
|
+
* accounts to consult, so it reads as "none" rather than as an error.
|
|
192
|
+
*/
|
|
193
|
+
get authRootModel() {
|
|
62
194
|
const rootModel = this.pluginManager.rootModel;
|
|
63
|
-
|
|
195
|
+
// a non-node root (an embedded host's duck-typed object, a test fake) can't
|
|
196
|
+
// be dead, so only real nodes get the liveness check
|
|
197
|
+
const alive = !isStateTreeNode(rootModel) || isAlive(rootModel);
|
|
198
|
+
return isAppRootModel(rootModel) && alive ? rootModel : undefined;
|
|
199
|
+
}
|
|
200
|
+
async serializeNewAuthArguments(loc) {
|
|
201
|
+
const rootModel = this.authRootModel;
|
|
202
|
+
// args dont need auth or already have auth
|
|
203
|
+
if (!rootModel || loc.internetAccountPreAuthorization) {
|
|
64
204
|
return loc;
|
|
65
205
|
}
|
|
66
|
-
|
|
206
|
+
// Resolved, because both halves below read the uri as a URL: the account is
|
|
207
|
+
// matched on host or URL prefix, and validating the token means probing the
|
|
208
|
+
// resource. A uri relative to a baseUri is neither until it is resolved.
|
|
209
|
+
// The pre-authorization still lands on `loc` as it stands — the worker
|
|
210
|
+
// resolves against the same baseUri when it opens the location.
|
|
211
|
+
const resolved = resolveUriLocation(loc);
|
|
212
|
+
const account = rootModel.findAppropriateInternetAccount(resolved);
|
|
67
213
|
if (account) {
|
|
68
214
|
loc.internetAccountPreAuthorization =
|
|
69
|
-
await account.getPreAuthorizationInformation(
|
|
215
|
+
await account.getPreAuthorizationInformation(resolved);
|
|
70
216
|
}
|
|
71
217
|
return loc;
|
|
72
218
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
219
|
+
/**
|
|
220
|
+
* What both drivers call: deserialize, then `execute`.
|
|
221
|
+
*
|
|
222
|
+
* Each `execute` used to open with the deserialize call itself, and eleven
|
|
223
|
+
* methods across seven plugins had silently drifted off it. `RpcExecuteArgs`
|
|
224
|
+
* describes the DESERIALIZED shape — an entry declares `filters?:
|
|
225
|
+
* SerializableFilterChain` where the wire carries a `string[]` — so skipping
|
|
226
|
+
* it made the declared type false rather than erroring. Here it is true by
|
|
227
|
+
* construction.
|
|
228
|
+
*/
|
|
229
|
+
async invoke(serializedArgs) {
|
|
230
|
+
return this.execute(await this.deserializeArguments(serializedArgs));
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The far side of `serializeArguments`; {@link invoke} calls it. Override to
|
|
234
|
+
* add to the step, not to call it — and **an override must tolerate running
|
|
235
|
+
* twice on the same object**, since an external plugin written against the
|
|
236
|
+
* older contract still calls it from its own `execute`.
|
|
237
|
+
*/
|
|
238
|
+
async deserializeArguments(args) {
|
|
239
|
+
// read off rather than named in the parameter type: for a driver holding an
|
|
240
|
+
// unparameterized RpcMethodType, RpcExecuteArgs<string> is `unknown`, and
|
|
241
|
+
// intersecting a blobMap into that rejects everything else
|
|
242
|
+
const { blobMap } = args;
|
|
243
|
+
if (blobMap) {
|
|
244
|
+
setBlobMap(blobMap);
|
|
76
245
|
}
|
|
77
246
|
return args;
|
|
78
247
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
248
|
+
/**
|
|
249
|
+
* The wire shape, rebuilt into what the caller of `rpcManager.call` holds —
|
|
250
|
+
* the registry entry's `return`. Overridden by the three methods whose two
|
|
251
|
+
* differ (features travel serialized and arrive as `SimpleFeature`s); for
|
|
252
|
+
* everyone else the whole job is taking off the `rpcResult` envelope, which
|
|
253
|
+
* MainThreadRpcDriver needs because nothing stripped it on that path.
|
|
254
|
+
*
|
|
255
|
+
* The registry `return` is checked against `execute` on the way in (through
|
|
256
|
+
* {@link RpcWireReturn}) and this is what checks it on the way back out. It
|
|
257
|
+
* checks covariantly, so unlike the arguments it cannot be widened past.
|
|
258
|
+
*
|
|
259
|
+
* An override calls {@link unwrapRpcResult} rather than `super`, because the
|
|
260
|
+
* envelope is all it wants and `super` now promises the rebuilt value it is
|
|
261
|
+
* the one rebuilding. The cast below is the claim that stands for every
|
|
262
|
+
* method that does NOT override: unwrapped wire is the declared `return`.
|
|
263
|
+
* True by construction for a `transferables: true` or bare entry, since both
|
|
264
|
+
* derive their wire from that `return`; an explicit `wire:` restates, so it
|
|
265
|
+
* is the one that has to override or agree.
|
|
266
|
+
*/
|
|
267
|
+
async deserializeReturn(serializedReturn, _args) {
|
|
268
|
+
return unwrapRpcResult(serializedReturn);
|
|
84
269
|
}
|
|
85
|
-
async
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
r = await serializedReturn;
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
if (isAuthNeededException(error)) {
|
|
95
|
-
const retryAccount = this.pluginManager.rootModel?.createEphemeralInternetAccount(`HTTPBasicInternetAccount-${new URL(error.url).origin}`, {}, error.url);
|
|
96
|
-
throw new RetryError('Retrying with created internet account', retryAccount.internetAccountId);
|
|
97
|
-
}
|
|
98
|
-
throw error;
|
|
99
|
-
}
|
|
100
|
-
if (isRpcResult(r)) {
|
|
101
|
-
return r.value;
|
|
102
|
-
}
|
|
103
|
-
return r;
|
|
104
|
-
}
|
|
105
|
-
async augmentLocationObjects(thing, rpcDriverClassName) {
|
|
106
|
-
const rootModel = this.pluginManager.rootModel;
|
|
107
|
-
const uris = [];
|
|
108
|
-
const blobMap = getBlobMap();
|
|
109
|
-
const { renderingProps, ...rest } = thing;
|
|
110
|
-
convertFileHandleLocations(rest, blobMap);
|
|
111
|
-
mapObject(rest, (key, val) => {
|
|
112
|
-
if (isUriLocation(val)) {
|
|
113
|
-
uris.push(val);
|
|
114
|
-
}
|
|
115
|
-
if (Array.isArray(val)) {
|
|
116
|
-
for (const item of val) {
|
|
117
|
-
if (isUriLocation(item)) {
|
|
118
|
-
uris.push(item);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return [key, val];
|
|
123
|
-
}, { deep: true });
|
|
124
|
-
if (isAppRootModel(rootModel) && rootModel.internetAccounts.length === 0) {
|
|
270
|
+
async augmentLocationObjects(thing) {
|
|
271
|
+
const needsFileHandles = hasFileHandlesInCache();
|
|
272
|
+
const needsUris = !!this.authRootModel?.internetAccounts.length;
|
|
273
|
+
// Common case (web users with no internet accounts and no desktop file
|
|
274
|
+
// handles): nothing to do, skip the tree walk entirely.
|
|
275
|
+
if (!needsFileHandles && !needsUris) {
|
|
125
276
|
return thing;
|
|
126
277
|
}
|
|
278
|
+
// Skip renderingProps — it may contain circular references and never has
|
|
279
|
+
// FileHandleLocations or UriLocations inside. Own the rest of the tree (see
|
|
280
|
+
// ownArgs) so blob conversion and auth augmentation mutate owned data, never
|
|
281
|
+
// the read-only config snapshots that flow in through readConfObject.
|
|
282
|
+
const { renderingProps, ...rest } = thing;
|
|
283
|
+
const owned = ownArgs(rest);
|
|
284
|
+
const uris = [];
|
|
285
|
+
walkLocationObjects(owned, {
|
|
286
|
+
blobMap: needsFileHandles ? getBlobMap() : undefined,
|
|
287
|
+
uris: needsUris ? uris : undefined,
|
|
288
|
+
});
|
|
127
289
|
for (const uri of uris) {
|
|
128
|
-
await this.serializeNewAuthArguments(uri
|
|
290
|
+
await this.serializeNewAuthArguments(uri);
|
|
129
291
|
}
|
|
130
|
-
|
|
292
|
+
if ('renderingProps' in thing) {
|
|
293
|
+
owned.renderingProps = renderingProps;
|
|
294
|
+
}
|
|
295
|
+
return owned;
|
|
131
296
|
}
|
|
132
297
|
}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import RpcMethodTypeWithRenameRegions from './RpcMethodTypeWithRenameRegions.ts';
|
|
2
|
+
import SerializableFilterChain from './renderers/util/serializableFilterChain.ts';
|
|
3
|
+
import type { Region } from '../util/index.ts';
|
|
4
|
+
import type { StatusCallback } from '../util/progress.ts';
|
|
5
|
+
import type { StopToken } from '../util/stopToken.ts';
|
|
6
|
+
interface FilterRenameArgs {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
regions?: Region[];
|
|
9
|
+
adapterConfig: Record<string, unknown>;
|
|
10
|
+
filters?: SerializableFilterChain;
|
|
11
|
+
}
|
|
12
|
+
export default abstract class RpcMethodTypeWithFiltersAndRenameRegions<MethodName extends string = string> extends RpcMethodTypeWithRenameRegions<MethodName> {
|
|
4
13
|
deserializeArguments<T>(args: T & {
|
|
5
|
-
filters?:
|
|
6
|
-
}
|
|
7
|
-
serializeArguments(args:
|
|
8
|
-
stopToken?:
|
|
9
|
-
statusCallback?:
|
|
10
|
-
}
|
|
14
|
+
filters?: unknown;
|
|
15
|
+
}): Promise<T>;
|
|
16
|
+
serializeArguments(args: FilterRenameArgs & {
|
|
17
|
+
stopToken?: StopToken;
|
|
18
|
+
statusCallback?: StatusCallback;
|
|
19
|
+
}): Promise<Record<string, unknown>>;
|
|
11
20
|
}
|
|
21
|
+
export {};
|
|
@@ -1,29 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import RpcMethodTypeWithRenameRegions from './RpcMethodTypeWithRenameRegions.js';
|
|
2
|
+
import SerializableFilterChain from './renderers/util/serializableFilterChain.js';
|
|
3
|
+
export default class RpcMethodTypeWithFiltersAndRenameRegions extends RpcMethodTypeWithRenameRegions {
|
|
4
|
+
async deserializeArguments(
|
|
5
|
+
// filters is `unknown` rather than SerializedFilterChain: callers' T types
|
|
6
|
+
// it as the deserialized SerializableFilterChain, so a string[] intersection
|
|
7
|
+
// would collapse to `never` and reject every call
|
|
8
|
+
args) {
|
|
9
|
+
const l = await super.deserializeArguments(args);
|
|
7
10
|
return {
|
|
8
11
|
...l,
|
|
9
|
-
filters
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
// on the wire filters is the serialized string[] (see serializeArguments),
|
|
13
|
+
// even though T statically types it as the deserialized chain
|
|
14
|
+
//
|
|
15
|
+
// instanceof so a second pass is a no-op rather than reaching
|
|
16
|
+
// `filters.map` on a chain — see deserializeArguments on the base
|
|
17
|
+
filters: args.filters instanceof SerializableFilterChain
|
|
18
|
+
? args.filters
|
|
19
|
+
: args.filters
|
|
20
|
+
? new SerializableFilterChain({
|
|
21
|
+
filters: args.filters,
|
|
22
|
+
jexl: this.pluginManager.jexl,
|
|
23
|
+
})
|
|
24
|
+
: undefined,
|
|
15
25
|
};
|
|
16
26
|
}
|
|
17
|
-
async serializeArguments(args
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
throw new Error('no assembly manager');
|
|
22
|
-
}
|
|
23
|
-
const renamedArgs = await renameRegionsIfNeeded(assemblyManager, {
|
|
27
|
+
async serializeArguments(args) {
|
|
28
|
+
// serialize the filter chain to its on-wire string[] form, then let the
|
|
29
|
+
// base class rename region refNames and finish serialization
|
|
30
|
+
return super.serializeArguments({
|
|
24
31
|
...args,
|
|
25
32
|
filters: args.filters?.toJSON().filters,
|
|
26
33
|
});
|
|
27
|
-
return super.serializeArguments(renamedArgs, rpcDriverClassName);
|
|
28
34
|
}
|
|
29
35
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import RpcMethodType from './RpcMethodType.ts';
|
|
2
|
+
import type { RenameRegionArgs } from './RpcMethodType.ts';
|
|
3
|
+
export default abstract class RpcMethodTypeWithRenameRegion<MethodName extends string = string> extends RpcMethodType<MethodName> {
|
|
4
|
+
serializeArguments<T extends RenameRegionArgs>(args: T): Promise<Record<string, unknown>>;
|
|
5
|
+
}
|