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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +112 -43
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -3
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +4 -3
  6. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  7. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +2 -2
  8. package/esm/BaseFeatureWidget/index.d.ts +1 -1
  9. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +8 -1
  10. package/esm/BaseFeatureWidget/stateModelFactory.js +6 -0
  11. package/esm/BaseFeatureWidget/types.d.ts +10 -2
  12. package/esm/PluginLoader.d.ts +1 -0
  13. package/esm/PluginLoader.js +52 -8
  14. package/esm/PluginManager.d.ts +99 -17
  15. package/esm/PluginManager.js +194 -26
  16. package/esm/ReExports/BaseFeatureDetails.js +1 -1
  17. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  18. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  19. package/esm/ReExports/barrelOnlyNames.d.ts +5 -0
  20. package/esm/ReExports/barrelOnlyNames.js +63 -0
  21. package/esm/ReExports/modules.js +31 -109
  22. package/esm/ReExports/publicTracks.d.ts +1 -0
  23. package/esm/ReExports/publicTracks.js +14 -0
  24. package/esm/ReExports/publicUi.d.ts +4 -0
  25. package/esm/ReExports/publicUi.js +33 -0
  26. package/esm/ReExports/publicUtil.d.ts +1 -1
  27. package/esm/ReExports/publicUtil.js +8 -4
  28. package/esm/ReExports/sharedModules.d.ts +96 -0
  29. package/esm/ReExports/sharedModules.js +66 -0
  30. package/esm/ReExports/uiStub.d.ts +2 -0
  31. package/esm/ReExports/uiStub.js +11 -0
  32. package/esm/ReExports/workerModules.d.ts +2 -0
  33. package/esm/ReExports/workerModules.js +15 -0
  34. package/esm/ReExports/workerNamespaceNames.d.ts +11 -0
  35. package/esm/ReExports/workerNamespaceNames.js +281 -0
  36. package/esm/configuration/configurationSchema.d.ts +5 -38
  37. package/esm/configuration/configurationSchema.js +64 -40
  38. package/esm/configuration/index.d.ts +2 -2
  39. package/esm/configuration/index.js +1 -1
  40. package/esm/configuration/promotableDefaults.d.ts +54 -19
  41. package/esm/configuration/promotableDefaults.js +117 -48
  42. package/esm/configuration/promotablePin.d.ts +50 -40
  43. package/esm/configuration/promotableResolve.d.ts +1 -1
  44. package/esm/configuration/promotableResolve.js +1 -1
  45. package/esm/configuration/tabixIndexFields.d.ts +2 -2
  46. package/esm/configuration/tabixIndexFields.js +2 -2
  47. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +12 -0
  48. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +35 -4
  49. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +41 -0
  50. package/esm/data_adapters/BaseAdapter/featureDensity.js +32 -0
  51. package/esm/data_adapters/BaseAdapter/index.d.ts +2 -1
  52. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  53. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  54. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  55. package/esm/data_adapters/BaseAdapter/types.d.ts +3 -8
  56. package/esm/pluggableElementTypes/AdapterType.d.ts +2 -1
  57. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  58. package/esm/pluggableElementTypes/DisplayType.d.ts +4 -12
  59. package/esm/pluggableElementTypes/DisplayType.js +3 -10
  60. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +27 -0
  61. package/esm/pluggableElementTypes/LazyStateModelElement.js +71 -0
  62. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  63. package/esm/pluggableElementTypes/ViewType.js +32 -4
  64. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  65. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  66. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +44 -3
  67. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +75 -2
  68. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +21 -0
  69. package/esm/pluggableElementTypes/models/BaseTrackModel.js +34 -2
  70. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +49 -0
  71. package/esm/pluggableElementTypes/models/BaseViewModel.js +28 -0
  72. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +14 -10
  73. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  74. package/esm/pluggableElementTypes/models/baseTrackConfig.js +7 -1
  75. package/esm/rpc/RpcRegistry.d.ts +10 -0
  76. package/esm/rpc/byteBudget.d.ts +9 -0
  77. package/esm/rpc/coreRpcMethods.d.ts +1 -0
  78. package/esm/rpc/coreRpcMethods.js +1 -0
  79. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  80. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  81. package/esm/svg/svgReady.d.ts +1 -0
  82. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  83. package/esm/ui/CascadingMenu.js +30 -8
  84. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -6
  85. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  86. package/esm/ui/LoadingOverlay.d.ts +14 -0
  87. package/esm/ui/LoadingOverlay.js +1 -1
  88. package/esm/ui/MenuTypes.d.ts +14 -5
  89. package/esm/ui/MenuTypes.js +3 -0
  90. package/esm/ui/PaletteContext.d.ts +11 -4
  91. package/esm/ui/PaletteContext.js +34 -5
  92. package/esm/ui/PinAdornment.js +31 -43
  93. package/esm/ui/ScrollChrome.d.ts +16 -0
  94. package/esm/ui/ScrollChrome.js +12 -0
  95. package/esm/ui/ScrollZoomToggle.d.ts +4 -3
  96. package/esm/ui/ScrollZoomToggle.js +4 -3
  97. package/esm/ui/SizeSliderRow.js +1 -1
  98. package/esm/ui/index.d.ts +3 -3
  99. package/esm/ui/index.js +4 -4
  100. package/esm/ui/launchViewMenu.js +7 -1
  101. package/esm/ui/legendMenuItem.d.ts +10 -16
  102. package/esm/ui/legendMenuItem.js +9 -20
  103. package/esm/ui/makeSizeMenu.js +1 -1
  104. package/esm/ui/menuItemAdornment.d.ts +2 -3
  105. package/esm/ui/menuItemAdornment.js +2 -3
  106. package/esm/ui/menuItems.d.ts +2 -3
  107. package/esm/ui/menuItems.js +1 -2
  108. package/esm/ui/palette.d.ts +11 -11
  109. package/esm/ui/palette.js +11 -11
  110. package/esm/ui/promotablePinCoverage.d.ts +16 -2
  111. package/esm/ui/promotablePinCoverage.js +40 -3
  112. package/esm/ui/theme.js +5 -0
  113. package/esm/ui/toggleMenuItems.d.ts +14 -9
  114. package/esm/ui/toggleMenuItems.js +32 -15
  115. package/esm/util/Base1DUtils.d.ts +4 -2
  116. package/esm/util/Base1DUtils.js +12 -4
  117. package/esm/util/SvgCanvas.js +4 -3
  118. package/esm/util/adapterConfigKey.d.ts +12 -0
  119. package/esm/util/adapterConfigKey.js +14 -0
  120. package/esm/util/adapterMetadata.js +2 -1
  121. package/esm/util/addAndShowTrack.d.ts +1 -1
  122. package/esm/util/addAndShowTrack.js +5 -1
  123. package/esm/util/addTrackFromWidget.js +2 -2
  124. package/esm/util/analytics.js +4 -5
  125. package/esm/util/cacheBudgets.d.ts +22 -19
  126. package/esm/util/cacheBudgets.js +22 -19
  127. package/esm/util/clampToContig.d.ts +17 -0
  128. package/esm/util/clampToContig.js +19 -0
  129. package/esm/util/colorBits.d.ts +2 -1
  130. package/esm/util/colorBits.js +2 -5
  131. package/esm/util/createStopTokenRotation.d.ts +9 -7
  132. package/esm/util/createStopTokenRotation.js +7 -27
  133. package/esm/util/featureTypes.d.ts +24 -0
  134. package/esm/util/featureTypes.js +35 -0
  135. package/esm/util/fetchContext.d.ts +2 -2
  136. package/esm/util/fetchContext.js +2 -2
  137. package/esm/util/fetchPhases.d.ts +10 -10
  138. package/esm/util/hooks.d.ts +8 -0
  139. package/esm/util/hooks.js +27 -0
  140. package/esm/util/index.d.ts +6 -5
  141. package/esm/util/index.js +5 -4
  142. package/esm/util/installFetch.d.ts +71 -34
  143. package/esm/util/installFetch.js +57 -29
  144. package/esm/util/installInitAutorun.d.ts +14 -13
  145. package/esm/util/installInitAutorun.js +17 -17
  146. package/esm/util/installPrerequisiteFetch.d.ts +86 -0
  147. package/esm/util/installPrerequisiteFetch.js +73 -0
  148. package/esm/util/lazyAfterAttach.d.ts +13 -0
  149. package/esm/util/lazyAfterAttach.js +31 -0
  150. package/esm/util/legendCandidates.d.ts +50 -0
  151. package/esm/util/legendCandidates.js +87 -0
  152. package/esm/util/mstUtils.d.ts +12 -1
  153. package/esm/util/mstUtils.js +20 -2
  154. package/esm/util/openFeatureWidget.d.ts +5 -0
  155. package/esm/util/openFeatureWidget.js +1 -0
  156. package/esm/util/openViews.d.ts +16 -0
  157. package/esm/util/openViews.js +22 -0
  158. package/esm/util/parentWalk.d.ts +1 -1
  159. package/esm/util/parentWalk.js +1 -1
  160. package/esm/util/pluginStore.d.ts +1 -0
  161. package/esm/util/pluginStore.js +8 -1
  162. package/esm/util/range.d.ts +13 -9
  163. package/esm/util/range.js +17 -8
  164. package/esm/util/renderToStaticMarkup.js +10 -0
  165. package/esm/util/rxjs.d.ts +16 -0
  166. package/esm/util/rxjs.js +49 -0
  167. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  168. package/esm/util/scheduleDetachedDestroy.js +24 -0
  169. package/esm/util/scrollLatch.d.ts +1 -0
  170. package/esm/util/scrollLatch.js +8 -0
  171. package/esm/util/stopToken.d.ts +6 -5
  172. package/esm/util/tabix.d.ts +10 -4
  173. package/esm/util/tabix.js +11 -5
  174. package/esm/util/trackConfigDelta.d.ts +6 -6
  175. package/esm/util/trackConfigDelta.js +3 -3
  176. package/esm/util/tracks.d.ts +48 -0
  177. package/esm/util/tracks.js +192 -66
  178. package/esm/util/types/index.d.ts +58 -10
  179. package/esm/util/types/index.js +3 -0
  180. package/esm/util/unknownSnapshotKeys.d.ts +36 -0
  181. package/esm/util/unknownSnapshotKeys.js +69 -0
  182. package/esm/util/usePanelVirtualScroll.d.ts +6 -2
  183. package/esm/util/usePanelVirtualScroll.js +6 -2
  184. package/esm/util/useRowVirtualScroll.d.ts +1 -1
  185. package/esm/util/useRowVirtualScroll.js +1 -1
  186. package/esm/util/useVirtualScrollWheel.js +11 -1
  187. package/esm/util/viewStatus.d.ts +23 -0
  188. package/esm/util/viewStatus.js +17 -0
  189. package/esm/util/wheelZoom.d.ts +3 -1
  190. package/esm/util/wheelZoom.js +39 -14
  191. package/esm/util/whenViewSettled.d.ts +17 -4
  192. package/esm/util/whenViewSettled.js +19 -6
  193. package/esm/util/withLaunchInput.d.ts +168 -0
  194. package/esm/util/withLaunchInput.js +273 -0
  195. package/package.json +19 -11
  196. package/esm/ui/promotableMenuItems.d.ts +0 -19
  197. package/esm/ui/promotableMenuItems.js +0 -89
  198. package/esm/util/applyInitSettings.d.ts +0 -79
  199. package/esm/util/applyInitSettings.js +0 -91
@@ -1,44 +1,17 @@
1
- // eslint-disable-next-line no-restricted-imports
2
- import * as React from 'react';
3
- import * as mst from '@jbrowse/mobx-state-tree';
4
1
  import { alpha, createTheme, useTheme } from '@mui/material';
5
2
  import SvgIcon, { createSvgIcon } from '@mui/material/SvgIcon';
6
3
  import * as MUIUtils from '@mui/material/utils';
7
- import * as mobx from 'mobx';
8
4
  import * as mxreact from 'mobx-react';
9
5
  import * as ReactDom from 'react-dom';
10
6
  import * as ReactDomClient from 'react-dom/client';
11
- import * as ReactJSXRuntime from 'react/jsx-runtime';
12
- import Plugin from '../Plugin.js';
13
- import * as Configuration from '../configuration/index.js';
14
- import * as BaseAdapterExports from '../data_adapters/BaseAdapter/index.js';
15
- import * as dataAdapterCache from '../data_adapters/dataAdapterCache.js';
16
- import AdapterType from '../pluggableElementTypes/AdapterType.js';
17
- import DisplayType from '../pluggableElementTypes/DisplayType.js';
18
- import TrackType from '../pluggableElementTypes/TrackType.js';
19
- import ViewType from '../pluggableElementTypes/ViewType.js';
20
- import WidgetType from '../pluggableElementTypes/WidgetType.js';
21
- import * as pluggableElementTypes from '../pluggableElementTypes/index.js';
22
- import * as pluggableElementTypeModels from '../pluggableElementTypes/models/index.js';
23
- import * as coreUi from '../ui/index.js';
24
- import * as corePalette from '../ui/palette.js';
25
- import * as coreTheme from '../ui/theme.js';
26
- import Base1DView from '../util/Base1DViewModel.js';
27
- import * as coreColor from '../util/color/index.js';
28
- import * as coreIo from '../util/io/index.js';
29
- import * as coreLayouts from '../util/layouts/index.js';
30
- import * as coreMstReflection from '../util/mst-reflection.js';
31
- import * as rxjs from '../util/rxjs.js';
32
- import * as trackUtils from '../util/tracks.js';
33
7
  import { cx, keyframes, makeStyles } from '../util/tss-react/index.js';
34
- import * as mstTypes from '../util/types/mst.js';
35
8
  import { BaseFeatureDetail } from './BaseFeatureDetails.js';
36
9
  import { DataGridEntries } from './MuiDataGridReExports.js';
37
10
  import { Entries } from './MuiReExports.js';
38
11
  import { MUIStyles } from './MuiStylesReExports.js';
39
12
  import { lazyMap } from './lazify.js';
40
- import reExportsList from './list.js';
41
- import * as coreUtil from './publicUtil.js';
13
+ import * as coreUi from './publicUi.js';
14
+ import { sharedModules } from './sharedModules.js';
42
15
  function makeLegacyMakeStyles() {
43
16
  return (args) => {
44
17
  const useStyles = makeStyles()(args);
@@ -47,15 +20,30 @@ function makeLegacyMakeStyles() {
47
20
  }
48
21
  const tssReact = { cx, keyframes, makeStyles };
49
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 };
50
42
  const libs = {
51
- mobx,
52
- '@jbrowse/mobx-state-tree': mst,
53
- 'mobx-state-tree': mst,
54
- react: React,
55
- 'react/jsx-runtime': ReactJSXRuntime,
43
+ ...sharedModules,
44
+ 'mobx-react': mxreact,
56
45
  'react-dom': ReactDom,
57
46
  'react-dom/client': ReactDomClient,
58
- 'mobx-react': mxreact,
59
47
  // Only lazy component entries are re-exported. The grid *hooks*
60
48
  // (useGridApiContext/useGridApiRef/useGridRootProps) are intentionally left
61
49
  // out: statically importing them here pulled the entire ~1.2 MB
@@ -69,18 +57,8 @@ const libs = {
69
57
  '@material-ui/core/utils': MUIUtils,
70
58
  'tss-react': tssReact,
71
59
  'tss-react/mui': tssReact,
72
- '@material-ui/core': {
73
- ...lazyMap(Entries),
74
- useTheme,
75
- alpha,
76
- makeStyles: legacyMakeStyles,
77
- },
78
- '@mui/material': {
79
- ...lazyMap(Entries),
80
- alpha,
81
- useTheme,
82
- createTheme,
83
- },
60
+ '@material-ui/core': materialUiCoreLib,
61
+ '@mui/material': muiMaterialLib,
84
62
  ...lazyMap(Entries, '@mui/material/'),
85
63
  ...lazyMap(Entries, '@material-ui/core/'),
86
64
  // @mui/icons-material — bundled into external plugins — reads the
@@ -95,74 +73,18 @@ const libs = {
95
73
  // Overrides the lazy entry above; verified against both bundlers.
96
74
  // GMOD/jbrowse-components#5606.
97
75
  '@mui/material/SvgIcon': Object.assign({}, SvgIcon, { createSvgIcon }),
98
- '@mui/material/styles': {
99
- ...MUIStyles,
100
- makeStyles: legacyMakeStyles,
101
- },
102
- '@material-ui/core/styles': {
103
- ...MUIStyles,
104
- makeStyles: legacyMakeStyles,
105
- },
76
+ '@mui/material/styles': muiStylesLib,
77
+ '@material-ui/core/styles': muiStylesLib,
106
78
  // these are core in @mui/material, but used to be in @material-ui/lab
107
79
  '@material-ui/lab/ToggleButton': Entries.ToggleButton,
108
80
  '@material-ui/lab/ToggleButtonGroup': Entries.ToggleButtonGroup,
109
81
  '@material-ui/lab/Autocomplete': Entries.Autocomplete,
110
82
  '@material-ui/lab/Alert': Entries.Alert,
111
- '@material-ui/lab': {
112
- Alert: Entries.Alert,
113
- Autocomplete: Entries.Autocomplete,
114
- ToggleButton: Entries.ToggleButton,
115
- ToggleButtonGroup: Entries.ToggleButtonGroup,
116
- },
117
- '@jbrowse/core/Plugin': Plugin,
118
- '@jbrowse/core/configuration': Configuration,
119
- '@jbrowse/core/util/types/mst': mstTypes,
83
+ '@material-ui/lab': materialUiLabLib,
120
84
  '@jbrowse/core/ui': coreUi,
121
- '@jbrowse/core/ui/theme': coreTheme,
122
- '@jbrowse/core/ui/palette': corePalette,
123
- // BaseTooltip is deliberately absent from the '@jbrowse/core/ui' barrel: the
124
- // re-export alone held @floating-ui (~266KB) on the startup path, since eager
125
- // plugin entries import that barrel. Serving it as its own module behind
126
- // React.lazy keeps it off that path while leaving external plugins a way to
127
- // reach it -- published apollo deep-imports this exact path, and react-msaview
128
- // (bundled by tview and msaview) reads it too, so dropping it from the barrel
129
- // with no ABI home is what broke them.
130
- ...lazyMap({ BaseTooltip: React.lazy(() => import('../ui/BaseTooltip.js')) }, '@jbrowse/core/ui/'),
131
- '@jbrowse/core/util': coreUtil,
132
- '@jbrowse/core/util/color': coreColor,
133
- '@jbrowse/core/util/layouts': coreLayouts,
134
- '@jbrowse/core/util/tracks': trackUtils,
135
- '@jbrowse/core/util/Base1DViewModel': Base1DView,
136
- '@jbrowse/core/util/io': coreIo,
137
- '@jbrowse/core/util/mst-reflection': coreMstReflection,
138
- '@jbrowse/core/util/rxjs': rxjs,
139
- '@jbrowse/core/pluggableElementTypes': pluggableElementTypes,
140
- '@jbrowse/core/pluggableElementTypes/ViewType': ViewType,
141
- '@jbrowse/core/pluggableElementTypes/AdapterType': AdapterType,
142
- '@jbrowse/core/pluggableElementTypes/DisplayType': DisplayType,
143
- '@jbrowse/core/pluggableElementTypes/TrackType': TrackType,
144
- '@jbrowse/core/pluggableElementTypes/WidgetType': WidgetType,
145
- '@jbrowse/core/pluggableElementTypes/models': pluggableElementTypeModels,
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,
146
88
  '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': BaseFeatureDetail,
147
- '@jbrowse/core/data_adapters/BaseAdapter': BaseAdapterExports,
148
- // `adapterCache` is module-level state, so a plugin that bundles its own copy
149
- // of this file gets a second cache in the RPC worker — and `freeAdapterResources`,
150
- // which CoreFreeResources calls on the host's copy when the last track using
151
- // an adapter config closes, never sees it. The cache is the only strong
152
- // reference to an adapter (see the comment on that function), so those
153
- // adapters and everything they hold live as long as the worker. Serving the
154
- // module is what makes an external RPC method share the host's cache.
155
- '@jbrowse/core/data_adapters/dataAdapterCache': dataAdapterCache,
156
89
  };
157
- const libsList = Object.keys(libs);
158
- // make sure that all the items in the ReExports/list array (used by build
159
- // systems and such) are included here, and vice versa
160
- const inLibsOnly = libsList.filter(mod => !reExportsList.includes(mod));
161
- if (inLibsOnly.length > 0) {
162
- throw new Error(`The following modules are in the modules libs, but not the re-exports list: ${inLibsOnly.join(', ')}`);
163
- }
164
- const inReExportsOnly = reExportsList.filter(mod => !libsList.includes(mod));
165
- if (inReExportsOnly.length) {
166
- throw new Error(`The following modules are in the re-exports list, but not the modules libs: ${inReExportsOnly.join(', ')}`);
167
- }
168
90
  export default libs;
@@ -0,0 +1 @@
1
+ export { UNKNOWN, UNSUPPORTED, addAdapterGuesser, addTrackTypeGuesser, allSessionTracks, annotationTrackIds, canonicalAssemblyNames, clearFileFromCache, ensureFileHandleReady, expandLooseTrackConfig, findFileHandleIds, generateUnknownTrackConf, generateUnsupportedTrackConf, getBlob, getBlobMap, getConfAssemblyNames, getConfAssemblyNamesOrNone, getFileFromCache, getFileName, getRpcSessionId, getTrackAssemblyNames, getTrackName, guessAdapter, guessTabixIndex, guessTrackConf, guessTrackConfForLocation, guessTrackType, hasFileHandlesInCache, hideTrackGeneric, isLooseTrackConfig, isSameAssemblyName, launchToggleTrackGeneric, launchTrackGeneric, makeIndex, makeIndexType, normalizeTrackInit, openAssemblyInLinearView, openMateLabel, pickDisplayForView, restoreFileHandles, restoreFileHandlesFromSnapshot, setBlobMap, setFileInCache, showTrackGeneric, storeBlobLocation, storeFileHandleLocation, stripFileExtension, stripTrackIds, toggleTrackGeneric, viewCanDisplayTrack, viewDisplayNames, } from '../util/tracks.ts';
@@ -0,0 +1,14 @@
1
+ // The published `@jbrowse/core/util/tracks` module, listed by name. Same split,
2
+ // and the same reasons, as publicUtil.ts: serving `import * as trackUtils from
3
+ // '../util/tracks.ts'` made the external ABI a side effect of an internal
4
+ // module, so moving a helper out of tracks.ts silently edited what plugins get.
5
+ // `getParentRenderProps` left that way -- deleted as dead in-tree code, which it
6
+ // was, while published apollo called it on three display models.
7
+ //
8
+ // Unlike publicUi.tsx this one is served in the RPC worker too (sharedModules.ts),
9
+ // so it stays React-free; sharedModules.purity.test.ts fails on the graph, not
10
+ // on this list.
11
+ //
12
+ // So: adding a line is how a helper becomes public, and it is a decision rather
13
+ // than a side effect of where the code happens to live.
14
+ export { UNKNOWN, UNSUPPORTED, addAdapterGuesser, addTrackTypeGuesser, allSessionTracks, annotationTrackIds, canonicalAssemblyNames, clearFileFromCache, ensureFileHandleReady, expandLooseTrackConfig, findFileHandleIds, generateUnknownTrackConf, generateUnsupportedTrackConf, getBlob, getBlobMap, getConfAssemblyNames, getConfAssemblyNamesOrNone, getFileFromCache, getFileName, getRpcSessionId, getTrackAssemblyNames, getTrackName, guessAdapter, guessTabixIndex, guessTrackConf, guessTrackConfForLocation, guessTrackType, hasFileHandlesInCache, hideTrackGeneric, isLooseTrackConfig, isSameAssemblyName, launchToggleTrackGeneric, launchTrackGeneric, makeIndex, makeIndexType, normalizeTrackInit, openAssemblyInLinearView, openMateLabel, pickDisplayForView, restoreFileHandles, restoreFileHandlesFromSnapshot, setBlobMap, setFileInCache, showTrackGeneric, storeBlobLocation, storeFileHandleLocation, stripFileExtension, stripTrackIds, toggleTrackGeneric, viewCanDisplayTrack, viewDisplayNames, } from '../util/tracks.js';
@@ -0,0 +1,4 @@
1
+ import type { ComponentProps } from 'react';
2
+ declare const LazyBaseTooltip: import("react").LazyExoticComponent<typeof import("../ui/BaseTooltip.tsx").default>;
3
+ export declare function BaseTooltip(props: ComponentProps<typeof LazyBaseTooltip>): import("react").JSX.Element;
4
+ export { ActionLink, AssemblySelector, BaseExportSvgDialog, CONTEXT_MENU_Z_INDEX, CascadingMenu, CascadingMenuButton, ConfirmDialog, ContextMenu, CopyToClipboardButton, Crosshairs, Dialog, EditableTypography, ErrorBanner, ErrorBar, ErrorMessage, ErrorOverlay, ExportSvgDialog, ExternalLink, FatalErrorDialog, FileDropZone, FileSelector, GRADIENT_LEGEND_HEIGHT, GRADIENT_LEGEND_SVG_AREA_WIDTH, GRADIENT_LEGEND_WIDTH, GpuFallbackButton, INLINE_MENU_ROW_WIDTH, InfoDialog, JexlFilterDialog, LAUNCH_LABEL, LEGEND_ROW_HEIGHT, LEGEND_SWATCH, LabeledCheckbox, LegendSwatchGlyph, LoadingEllipses, LoadingOverlay, LoadingProgress, LogoFull, Logomark, MAX_LEGEND_ITEMS, Menu, MonospaceTextField, NumberTextField, PinAdornment, PluggableComponent, PluggableComponents, PluggableElements, PrerenderedCanvas, ProgressChip, RefNameAutocomplete, RefNameAutocompleteEndAdornment, ReplaceCurrentViewButton, ResetToDefaultButton, ResizeHandle, SanitizedHTML, ScrollChrome, ScrollEdgeShadow, SettingsChangesTable, ShareLinkField, SingleSlider, SliderTooltip, StatusProgressBar, SubmitDialog, SubmitForm, SvgColorLegend, SvgGradientLegend, TOOLTIP_Z_INDEX, TagTextField, VIEW_HEADER_HEIGHT, VerticalScrollbar, ViewLoadingScreen, addExtensionElement, adornmentReservePx, checkboxItem, colorFwdStrand, colorInterchrom, colorLongInsert, colorLongreadInv, colorNeutralRead, colorPairLL, colorPairLR, colorPairLRDark, colorPairRL, colorPairRR, colorRevStrand, colorShortInsert, colorSplitReadInversion, colorSupplementary, colorUnmappedMate, colorUnmappedMateDark, createJBrowseBaseTheme, createJBrowseTheme, createJBrowseThemeFromArgs, defaultThemes, displayTypesWithPromotableSlots, getInputWidth, hoverBoxStyle, launchTargetsMenuItem, legendEntries, legendIsReadable, legendSwatches, makePromotableSizeMenu, makeSizeMenu, makeSizeSubMenu, matchesTrackSelector, measureLegendText, methylated5hmC, methylated5mC, misKindedPins, nonEmptyLegendSections, promotableSlotsWithoutPin, pushIntoSubMenu, pushLaunchViewMenuItem, radioItems, replaceViewAction, resolveSubMenu, sliderScale, staysOpenOnClick, tagColorPalette, unmethylated5mC, useAssemblySelection, useCopyToClipboard, useExportSvgPreference, useMouseState, useMouseTracking, useRecentLocations, wrapComponent, } from '../ui/index.ts';
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // The published `@jbrowse/core/ui` module, listed by name. Same split, and the
3
+ // same reasons, as publicUtil.ts: an internal barrel and an external ABI want
4
+ // opposite things, and serving `import * as coreUi from '../ui/index.ts'` made
5
+ // the second a side effect of the first.
6
+ //
7
+ // That coupling has a second cost here that util does not have, and it is the
8
+ // one that keeps biting: **removing a component from ui/index.ts is how this
9
+ // codebase does lazy loading.** The barrel is imported by eagerly-evaluated
10
+ // plugin entries, so a re-export of a heavy component holds it on the startup
11
+ // path -- that is why BaseTooltip left (the line alone held ~266KB of
12
+ // @floating-ui). With the ABI derived from the barrel, every such fix was also a
13
+ // silent ABI removal. BaseTooltip's spent two releases missing from the served
14
+ // namespace while apollo read it there.
15
+ //
16
+ // Splitting them makes those independent. Deleting an `export … from` line in
17
+ // ui/index.ts now stops compiling here, so the ABI question is asked; and the
18
+ // answer can be `lazy()`, since **this file may serve a component the barrel
19
+ // does not export** -- see BaseTooltip below, which is exactly that. The eager
20
+ // win and the plugin surface stop being the same edit.
21
+ //
22
+ // So: adding a line is how a component becomes public, and it is a decision
23
+ // rather than a side effect of where the code happens to live.
24
+ import { Suspense, lazy } from 'react';
25
+ // Deliberately not re-exported by ui/index.ts -- see above. Served from its own
26
+ // path too ('@jbrowse/core/ui/BaseTooltip', which published react-msaview uses),
27
+ // and read off this namespace by published apollo; both spellings are this one
28
+ // component, and neither puts @floating-ui on the startup path.
29
+ const LazyBaseTooltip = lazy(() => import('../ui/BaseTooltip.js'));
30
+ export function BaseTooltip(props) {
31
+ return (_jsx(Suspense, { fallback: null, children: _jsx(LazyBaseTooltip, { ...props }) }));
32
+ }
33
+ export { ActionLink, AssemblySelector, BaseExportSvgDialog, CONTEXT_MENU_Z_INDEX, CascadingMenu, CascadingMenuButton, ConfirmDialog, ContextMenu, CopyToClipboardButton, Crosshairs, Dialog, EditableTypography, ErrorBanner, ErrorBar, ErrorMessage, ErrorOverlay, ExportSvgDialog, ExternalLink, FatalErrorDialog, FileDropZone, FileSelector, GRADIENT_LEGEND_HEIGHT, GRADIENT_LEGEND_SVG_AREA_WIDTH, GRADIENT_LEGEND_WIDTH, GpuFallbackButton, INLINE_MENU_ROW_WIDTH, InfoDialog, JexlFilterDialog, LAUNCH_LABEL, LEGEND_ROW_HEIGHT, LEGEND_SWATCH, LabeledCheckbox, LegendSwatchGlyph, LoadingEllipses, LoadingOverlay, LoadingProgress, LogoFull, Logomark, MAX_LEGEND_ITEMS, Menu, MonospaceTextField, NumberTextField, PinAdornment, PluggableComponent, PluggableComponents, PluggableElements, PrerenderedCanvas, ProgressChip, RefNameAutocomplete, RefNameAutocompleteEndAdornment, ReplaceCurrentViewButton, ResetToDefaultButton, ResizeHandle, SanitizedHTML, ScrollChrome, ScrollEdgeShadow, SettingsChangesTable, ShareLinkField, SingleSlider, SliderTooltip, StatusProgressBar, SubmitDialog, SubmitForm, SvgColorLegend, SvgGradientLegend, TOOLTIP_Z_INDEX, TagTextField, VIEW_HEADER_HEIGHT, VerticalScrollbar, ViewLoadingScreen, addExtensionElement, adornmentReservePx, checkboxItem, colorFwdStrand, colorInterchrom, colorLongInsert, colorLongreadInv, colorNeutralRead, colorPairLL, colorPairLR, colorPairLRDark, colorPairRL, colorPairRR, colorRevStrand, colorShortInsert, colorSplitReadInversion, colorSupplementary, colorUnmappedMate, colorUnmappedMateDark, createJBrowseBaseTheme, createJBrowseTheme, createJBrowseThemeFromArgs, defaultThemes, displayTypesWithPromotableSlots, getInputWidth, hoverBoxStyle, launchTargetsMenuItem, legendEntries, legendIsReadable, legendSwatches, makePromotableSizeMenu, makeSizeMenu, makeSizeSubMenu, matchesTrackSelector, measureLegendText, methylated5hmC, methylated5mC, misKindedPins, nonEmptyLegendSections, promotableSlotsWithoutPin, pushIntoSubMenu, pushLaunchViewMenuItem, radioItems, replaceViewAction, resolveSubMenu, sliderScale, staysOpenOnClick, tagColorPalette, unmethylated5mC, useAssemblySelection, useCopyToClipboard, useExportSvgPreference, useMouseState, useMouseTracking, useRecentLocations, wrapComponent, } from '../ui/index.js';
@@ -1 +1 @@
1
- export { AuthNeededError, BEZIER_CONNECTOR_MAX_REACH_PX, ENCODED_PREFIX, IUPAC_MOTIF_REGEX, IntervalTree, JSON_PREFIX, MAX_ZOOM_RATE_PER_MS, SCROLL_ZOOM_FACTOR_DIVISOR, SHARE_PREFIX, SimpleFeature, UNKNOWN, UNSUPPORTED, UnknownRefNameError, ZOOM_ACTIVE_WINDOW_MS, accumulateScroll, adapterConfigFromSpec, addAdapterGuesser, addAddTrackComponent, addAndShowTrack, addOrReplaceView, addTrackFromWidget, addTrackTypeGuesser, aesDecrypt, aesEncrypt, animationAllowed, applyOrderWithin, applyZoomAccum, assembleLocString, assembleLocStringRaw, avg, b64PadSuffix, bezierConnectorPath, bpSpanPx, bpToPx, bytesForRegions, calculateRedispatchRange, canReplaceView, capitalizeFirst, checkStopToken, checkStopTokenThrottled, clamp, clearFileFromCache, cmpStr, coarseStripHTML, codonTable, compareLocStrings, compareLocs, complement, complementTable, createProgressReporter, createScrollLatch, createSharedSetup, createStatusChannel, createStatusFanOut, createStatusWindow, createStopToken, createStopTokenChecker, createStopTokenRotation, dedupe, defaultCodonTable, defaultStarts, diagonalizeRegions, diffTrackConfig, doesIntersect2, downloadStatus, drawImageOntoCanvasContext, encodeSessionParam, ensureFileHandleReady, expandLooseTrackConfig, featureSpanPx, fetchAndMaybeUnzip, fetchAndMaybeUnzipText, fetchJson, fileToLocation, findFileHandleIds, findParentThat, findParentThatIs, flattenTrackConfigDelta, formatRelativeTime, fromUrlSafeB64, gatherOverlaps, generateCodonTable, generateUnknownTrackConf, generateUnsupportedTrackConf, getAssemblyHost, getBlob, getBlobMap, getBpDisplayStr, getConfAssemblyNames, getContainingDisplay, getContainingTrack, getContainingView, getDialogHost, getEnv, getFileFromCache, getFileHandle, getFileName, getFillProps, getFrame, getNotificationSink, getNumberGrouping, getPaletteHost, getPluginUpdate, getRenderingServices, getRpcHost, getRpcSessionId, getSession, getSessionServices, getStr, getStrokeProps, getTickDisplayStr, getTrackAssemblyNames, getTrackName, getZoomNormalizer, groupBy, guessAdapter, guessTrackConf, guessTrackType, hasFileHandlesInCache, hasSharedArrayBuffer, hashCode, hideTrackGeneric, installedVersionFromUrl, intersection2, isAbortException, isAbstractMenuManager, isActivelyZooming, isAppRootModel, isAuthNeededException, isBlobLocation, isDataCurrent, isDisplayModel, isElectron, isFeature, isFileHandleLocation, isFileSystemAccessSupported, isGzip, isLocalPathLocation, isLooseTrackConfig, isNode, isObject, isPalindromic, isPluginInstalled, isRootModelWithInternetAccounts, isRpcResult, isSelectionContainer, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isStopToken, isStopped, isSupportedIndexingAdapter, isTrackModel, isTrackViewModel, isUriLocation, isValidTag, isViewContainer, isViewModel, iupacToRegex, linkify, locStringsToRegions, localStorageGetBoolean, localStorageGetItem, localStorageGetJSON, localStorageGetNumber, localStorageRemoveItem, localStorageSetBoolean, localStorageSetItem, localStorageSetJSON, localStorageSetNumber, makeAbortError, makeIndex, makeIndexType, makeTrackId, markStopTokenStopped, matchTrackId, max, maxFinite, measureGridWidth, measureText, mergeIntervals, mergeTrackConfig, min, minmax, normalizeWheelDelta, notEmpty, objectHash, openFeatureWidget, openPromotableDisplays, parseLocString, parseLocStringOneBased, parseMotifList, pluralize, polarToCartesian, progressLabel, rIC, radToDeg, readSessionFromDynamo, reducePrecision, registerStopTokenBroadcaster, renameRegionIfNeeded, renameRegionsIfNeeded, renderToStaticMarkup, reorder, reorderWithin, resolvePlugin, resolveSelectedIds, restoreFileHandles, restoreFileHandlesFromSnapshot, revcom, reverse, reverseComplementIupac, revlist, saveAs, saveSvgAsImage, selectNamedRegions, setBlobMap, setFileInCache, setNumberGrouping, sha256, sha256Base64, sha256Base64Url, shareEndpoint, shorten, shorten2, showTrackGeneric, springAnimate, statusFraction, statusMessageText, statusProgressLabel, statusReading, stitch, stopStopToken, stopTokenSignal, storeBlobLocation, storeFileHandle, storeFileHandleLocation, stringify, stripAlpha, stripFileExtension, stripTrackIds, sum, svgHtmlToPngBlob, tagRegex, testAdapter, toBase64, toBase64Url, toLocale, toUrlSafeB64, toggleTrackGeneric, truncateMiddle, updateStatus, useDebounce, useLocalStorage, useWidthSetter, verifyPermission, wheelFrameElapsedMs, wheelZoomAccum, withProgress, withStopTokenCheck, withStopTokenSignal, } from '../util/index.ts';
1
+ export { AuthNeededError, BEZIER_CONNECTOR_MAX_REACH_PX, ENCODED_PREFIX, IUPAC_MOTIF_REGEX, IntervalTree, JSON_PREFIX, MAX_ZOOM_RATE_PER_MS, SCROLL_ZOOM_FACTOR_DIVISOR, SHARE_PREFIX, SimpleFeature, UNKNOWN, UNSUPPORTED, UnknownRefNameError, ZOOM_ACTIVE_WINDOW_MS, accumulateScroll, adapterConfigFromSpec, addAdapterGuesser, addAddTrackComponent, addAndShowTrack, addOrReplaceView, addTrackFromWidget, addTrackTypeGuesser, aesDecrypt, aesEncrypt, animationAllowed, applyOrderWithin, applyZoomAccum, assembleLocString, assembleLocStringRaw, avg, b64PadSuffix, bezierConnectorPath, bpSpanPx, bpToPx, bytesForRegions, calculateRedispatchRange, canReplaceView, capitalizeFirst, checkStopToken, checkStopTokenThrottled, clamp, clearFileFromCache, cmpStr, coarseStripHTML, codonTable, compareLocStrings, compareLocs, complement, complementTable, createProgressReporter, createScrollLatch, createSharedSetup, createStatusChannel, createStatusFanOut, createStatusWindow, createStopToken, createStopTokenChecker, createStopTokenRotation, dedupe, defaultCodonTable, defaultStarts, diagonalizeRegions, diffTrackConfig, doesIntersect2, downloadStatus, drawImageOntoCanvasContext, encodeSessionParam, ensureFileHandleReady, expandLooseTrackConfig, featureSpanPx, fetchAndMaybeUnzip, fetchAndMaybeUnzipText, fetchJson, fileToLocation, findFileHandleIds, findParentThat, findParentThatIs, flattenTrackConfigDelta, formatRelativeTime, fromUrlSafeB64, gatherOverlaps, generateCodonTable, generateUnknownTrackConf, generateUnsupportedTrackConf, getAssemblyHost, getBlob, getBlobMap, getBpDisplayStr, getConfAssemblyNames, getContainingDisplay, getContainingTrack, getContainingView, getDialogHost, getEnv, launchOrReplaceView, getFileFromCache, getFileHandle, getFileName, getFillProps, getFrame, getNotificationSink, getNumberGrouping, getPaletteHost, getPluginUpdate, getRenderingServices, getRpcHost, getRpcSessionId, getSession, getSessionServices, getStr, getStrokeProps, getTickDisplayStr, getTrackAssemblyNames, getTrackName, getZoomNormalizer, groupBy, guessAdapter, guessTrackConf, guessTrackType, hasFileHandlesInCache, hasSharedArrayBuffer, hashCode, hideTrackGeneric, installedVersionFromUrl, intersection2, isAbortException, isAbstractMenuManager, isActivelyZooming, isAppRootModel, isAuthNeededException, isBlobLocation, isDataCurrent, isDisplayModel, isElectron, isFeature, isFileHandleLocation, isFileSystemAccessSupported, isGeneLikeType, isGzip, isLocalPathLocation, isLooseTrackConfig, isNode, isObject, isPalindromic, isPluginInstalled, isRootModelWithInternetAccounts, isRpcResult, isSelectionContainer, isSequenceMatchType, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isStopToken, isStopped, isSupportedIndexingAdapter, isTrackModel, isTrackViewModel, isUriLocation, isValidTag, isViewContainer, isViewModel, iupacToRegex, linkify, locStringsToRegions, localStorageGetBoolean, localStorageGetItem, localStorageGetJSON, localStorageGetNumber, localStorageRemoveItem, localStorageSetBoolean, localStorageSetItem, localStorageSetJSON, localStorageSetNumber, makeAbortError, makeIndex, makeIndexType, makeTrackId, markStopTokenStopped, matchTrackId, max, maxFinite, measureGridWidth, measureText, mergeIntervals, mergeTrackConfig, min, minmax, normalizeWheelDelta, notEmpty, objectHash, openFeatureWidget, openPromotableDisplays, parseLocString, parseLocStringOneBased, parseMotifList, pluralize, polarToCartesian, progressLabel, rIC, radToDeg, readSessionFromDynamo, reducePrecision, registerStopTokenBroadcaster, renameRegionIfNeeded, renameRegionsIfNeeded, reorder, reorderWithin, resolvePlugin, resolveSelectedIds, restoreFileHandles, restoreFileHandlesFromSnapshot, revcom, reverse, reverseComplementIupac, revlist, saveAs, scheduleDetachedDestroy, saveSvgAsImage, selectNamedRegions, setBlobMap, setFileInCache, setNumberGrouping, sha256, sha256Base64, sha256Base64Url, shareEndpoint, shorten, shorten2, showTrackGeneric, springAnimate, statusFraction, statusMessageText, statusProgressLabel, statusReading, stitch, stopStopToken, stopTokenSignal, storeBlobLocation, storeFileHandle, storeFileHandleLocation, stringify, stripAlpha, stripFileExtension, stripTrackIds, sum, svgHtmlToPngBlob, tagRegex, testAdapter, toBase64, toBase64Url, toLocale, toUrlSafeB64, toggleTrackGeneric, truncateMiddle, updateStatus, useDebounce, useLocalStorage, useWidthSetter, verifyPermission, wheelFrameElapsedMs, wheelZoomAccum, withProgress, withStopTokenCheck, withStopTokenSignal, } from '../util/index.ts';
@@ -22,7 +22,11 @@
22
22
  // by the time this was written. A list that has to be edited by hand cannot
23
23
  // drift that way.
24
24
  //
25
- // The same split is worth making for '@jbrowse/core/ui' (115 pinned names) and
26
- // '@jbrowse/core/util/tracks' (36), which have the same shape and the same
27
- // history: BaseTooltip and getParentRenderProps each left this way.
28
- export { AuthNeededError, BEZIER_CONNECTOR_MAX_REACH_PX, ENCODED_PREFIX, IUPAC_MOTIF_REGEX, IntervalTree, JSON_PREFIX, MAX_ZOOM_RATE_PER_MS, SCROLL_ZOOM_FACTOR_DIVISOR, SHARE_PREFIX, SimpleFeature, UNKNOWN, UNSUPPORTED, UnknownRefNameError, ZOOM_ACTIVE_WINDOW_MS, accumulateScroll, adapterConfigFromSpec, addAdapterGuesser, addAddTrackComponent, addAndShowTrack, addOrReplaceView, addTrackFromWidget, addTrackTypeGuesser, aesDecrypt, aesEncrypt, animationAllowed, applyOrderWithin, applyZoomAccum, assembleLocString, assembleLocStringRaw, avg, b64PadSuffix, bezierConnectorPath, bpSpanPx, bpToPx, bytesForRegions, calculateRedispatchRange, canReplaceView, capitalizeFirst, checkStopToken, checkStopTokenThrottled, clamp, clearFileFromCache, cmpStr, coarseStripHTML, codonTable, compareLocStrings, compareLocs, complement, complementTable, createProgressReporter, createScrollLatch, createSharedSetup, createStatusChannel, createStatusFanOut, createStatusWindow, createStopToken, createStopTokenChecker, createStopTokenRotation, dedupe, defaultCodonTable, defaultStarts, diagonalizeRegions, diffTrackConfig, doesIntersect2, downloadStatus, drawImageOntoCanvasContext, encodeSessionParam, ensureFileHandleReady, expandLooseTrackConfig, featureSpanPx, fetchAndMaybeUnzip, fetchAndMaybeUnzipText, fetchJson, fileToLocation, findFileHandleIds, findParentThat, findParentThatIs, flattenTrackConfigDelta, formatRelativeTime, fromUrlSafeB64, gatherOverlaps, generateCodonTable, generateUnknownTrackConf, generateUnsupportedTrackConf, getAssemblyHost, getBlob, getBlobMap, getBpDisplayStr, getConfAssemblyNames, getContainingDisplay, getContainingTrack, getContainingView, getDialogHost, getEnv, getFileFromCache, getFileHandle, getFileName, getFillProps, getFrame, getNotificationSink, getNumberGrouping, getPaletteHost, getPluginUpdate, getRenderingServices, getRpcHost, getRpcSessionId, getSession, getSessionServices, getStr, getStrokeProps, getTickDisplayStr, getTrackAssemblyNames, getTrackName, getZoomNormalizer, groupBy, guessAdapter, guessTrackConf, guessTrackType, hasFileHandlesInCache, hasSharedArrayBuffer, hashCode, hideTrackGeneric, installedVersionFromUrl, intersection2, isAbortException, isAbstractMenuManager, isActivelyZooming, isAppRootModel, isAuthNeededException, isBlobLocation, isDataCurrent, isDisplayModel, isElectron, isFeature, isFileHandleLocation, isFileSystemAccessSupported, isGzip, isLocalPathLocation, isLooseTrackConfig, isNode, isObject, isPalindromic, isPluginInstalled, isRootModelWithInternetAccounts, isRpcResult, isSelectionContainer, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isStopToken, isStopped, isSupportedIndexingAdapter, isTrackModel, isTrackViewModel, isUriLocation, isValidTag, isViewContainer, isViewModel, iupacToRegex, linkify, locStringsToRegions, localStorageGetBoolean, localStorageGetItem, localStorageGetJSON, localStorageGetNumber, localStorageRemoveItem, localStorageSetBoolean, localStorageSetItem, localStorageSetJSON, localStorageSetNumber, makeAbortError, makeIndex, makeIndexType, makeTrackId, markStopTokenStopped, matchTrackId, max, maxFinite, measureGridWidth, measureText, mergeIntervals, mergeTrackConfig, min, minmax, normalizeWheelDelta, notEmpty, objectHash, openFeatureWidget, openPromotableDisplays, parseLocString, parseLocStringOneBased, parseMotifList, pluralize, polarToCartesian, progressLabel, rIC, radToDeg, readSessionFromDynamo, reducePrecision, registerStopTokenBroadcaster, renameRegionIfNeeded, renameRegionsIfNeeded, renderToStaticMarkup, reorder, reorderWithin, resolvePlugin, resolveSelectedIds, restoreFileHandles, restoreFileHandlesFromSnapshot, revcom, reverse, reverseComplementIupac, revlist, saveAs, saveSvgAsImage, selectNamedRegions, setBlobMap, setFileInCache, setNumberGrouping, sha256, sha256Base64, sha256Base64Url, shareEndpoint, shorten, shorten2, showTrackGeneric, springAnimate, statusFraction, statusMessageText, statusProgressLabel, statusReading, stitch, stopStopToken, stopTokenSignal, storeBlobLocation, storeFileHandle, storeFileHandleLocation, stringify, stripAlpha, stripFileExtension, stripTrackIds, sum, svgHtmlToPngBlob, tagRegex, testAdapter, toBase64, toBase64Url, toLocale, toUrlSafeB64, toggleTrackGeneric, truncateMiddle, updateStatus, useDebounce, useLocalStorage, useWidthSetter, verifyPermission, wheelFrameElapsedMs, wheelZoomAccum, withProgress, withStopTokenCheck, withStopTokenSignal, } from '../util/index.js';
25
+ // '@jbrowse/core/ui' (publicUi.tsx, 128) and '@jbrowse/core/util/tracks'
26
+ // (publicTracks.ts, 51) are split the same way now, and each had already lost a
27
+ // name to the coupling: BaseTooltip and getParentRenderProps. publicUi.tsx also
28
+ // carries the part this file has no use for -- an ABI file may serve a component
29
+ // its barrel does not export, behind lazy(). That is what makes "take it out of
30
+ // the barrel so it leaves the startup path" a different edit from "stop serving
31
+ // it to plugins", which here they were not.
32
+ export { AuthNeededError, BEZIER_CONNECTOR_MAX_REACH_PX, ENCODED_PREFIX, IUPAC_MOTIF_REGEX, IntervalTree, JSON_PREFIX, MAX_ZOOM_RATE_PER_MS, SCROLL_ZOOM_FACTOR_DIVISOR, SHARE_PREFIX, SimpleFeature, UNKNOWN, UNSUPPORTED, UnknownRefNameError, ZOOM_ACTIVE_WINDOW_MS, accumulateScroll, adapterConfigFromSpec, addAdapterGuesser, addAddTrackComponent, addAndShowTrack, addOrReplaceView, addTrackFromWidget, addTrackTypeGuesser, aesDecrypt, aesEncrypt, animationAllowed, applyOrderWithin, applyZoomAccum, assembleLocString, assembleLocStringRaw, avg, b64PadSuffix, bezierConnectorPath, bpSpanPx, bpToPx, bytesForRegions, calculateRedispatchRange, canReplaceView, capitalizeFirst, checkStopToken, checkStopTokenThrottled, clamp, clearFileFromCache, cmpStr, coarseStripHTML, codonTable, compareLocStrings, compareLocs, complement, complementTable, createProgressReporter, createScrollLatch, createSharedSetup, createStatusChannel, createStatusFanOut, createStatusWindow, createStopToken, createStopTokenChecker, createStopTokenRotation, dedupe, defaultCodonTable, defaultStarts, diagonalizeRegions, diffTrackConfig, doesIntersect2, downloadStatus, drawImageOntoCanvasContext, encodeSessionParam, ensureFileHandleReady, expandLooseTrackConfig, featureSpanPx, fetchAndMaybeUnzip, fetchAndMaybeUnzipText, fetchJson, fileToLocation, findFileHandleIds, findParentThat, findParentThatIs, flattenTrackConfigDelta, formatRelativeTime, fromUrlSafeB64, gatherOverlaps, generateCodonTable, generateUnknownTrackConf, generateUnsupportedTrackConf, getAssemblyHost, getBlob, getBlobMap, getBpDisplayStr, getConfAssemblyNames, getContainingDisplay, getContainingTrack, getContainingView, getDialogHost, getEnv, launchOrReplaceView, getFileFromCache, getFileHandle, getFileName, getFillProps, getFrame, getNotificationSink, getNumberGrouping, getPaletteHost, getPluginUpdate, getRenderingServices, getRpcHost, getRpcSessionId, getSession, getSessionServices, getStr, getStrokeProps, getTickDisplayStr, getTrackAssemblyNames, getTrackName, getZoomNormalizer, groupBy, guessAdapter, guessTrackConf, guessTrackType, hasFileHandlesInCache, hasSharedArrayBuffer, hashCode, hideTrackGeneric, installedVersionFromUrl, intersection2, isAbortException, isAbstractMenuManager, isActivelyZooming, isAppRootModel, isAuthNeededException, isBlobLocation, isDataCurrent, isDisplayModel, isElectron, isFeature, isFileHandleLocation, isFileSystemAccessSupported, isGeneLikeType, isGzip, isLocalPathLocation, isLooseTrackConfig, isNode, isObject, isPalindromic, isPluginInstalled, isRootModelWithInternetAccounts, isRpcResult, isSelectionContainer, isSequenceMatchType, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isStopToken, isStopped, isSupportedIndexingAdapter, isTrackModel, isTrackViewModel, isUriLocation, isValidTag, isViewContainer, isViewModel, iupacToRegex, linkify, locStringsToRegions, localStorageGetBoolean, localStorageGetItem, localStorageGetJSON, localStorageGetNumber, localStorageRemoveItem, localStorageSetBoolean, localStorageSetItem, localStorageSetJSON, localStorageSetNumber, makeAbortError, makeIndex, makeIndexType, makeTrackId, markStopTokenStopped, matchTrackId, max, maxFinite, measureGridWidth, measureText, mergeIntervals, mergeTrackConfig, min, minmax, normalizeWheelDelta, notEmpty, objectHash, openFeatureWidget, openPromotableDisplays, parseLocString, parseLocStringOneBased, parseMotifList, pluralize, polarToCartesian, progressLabel, rIC, radToDeg, readSessionFromDynamo, reducePrecision, registerStopTokenBroadcaster, renameRegionIfNeeded, renameRegionsIfNeeded, reorder, reorderWithin, resolvePlugin, resolveSelectedIds, restoreFileHandles, restoreFileHandlesFromSnapshot, revcom, reverse, reverseComplementIupac, revlist, saveAs, scheduleDetachedDestroy, saveSvgAsImage, selectNamedRegions, setBlobMap, setFileInCache, setNumberGrouping, sha256, sha256Base64, sha256Base64Url, shareEndpoint, shorten, shorten2, showTrackGeneric, springAnimate, statusFraction, statusMessageText, statusProgressLabel, statusReading, stitch, stopStopToken, stopTokenSignal, storeBlobLocation, storeFileHandle, storeFileHandleLocation, stringify, stripAlpha, stripFileExtension, stripTrackIds, sum, svgHtmlToPngBlob, tagRegex, testAdapter, toBase64, toBase64Url, toLocale, toUrlSafeB64, toggleTrackGeneric, truncateMiddle, updateStatus, useDebounce, useLocalStorage, useWidthSetter, verifyPermission, wheelFrameElapsedMs, wheelZoomAccum, withProgress, withStopTokenCheck, withStopTokenSignal, } from '../util/index.js';
@@ -0,0 +1,96 @@
1
+ import * as React from 'react';
2
+ import * as mst from '@jbrowse/mobx-state-tree';
3
+ import * as mobx from 'mobx';
4
+ import * as ReactJSXRuntime from 'react/jsx-runtime';
5
+ import Plugin from '../Plugin.ts';
6
+ import * as Configuration from '../configuration/index.ts';
7
+ import * as BaseAdapterExports from '../data_adapters/BaseAdapter/index.ts';
8
+ import * as dataAdapterCache from '../data_adapters/dataAdapterCache.ts';
9
+ import AdapterType from '../pluggableElementTypes/AdapterType.ts';
10
+ import DisplayType from '../pluggableElementTypes/DisplayType.ts';
11
+ import TrackType from '../pluggableElementTypes/TrackType.ts';
12
+ import ViewType from '../pluggableElementTypes/ViewType.ts';
13
+ import WidgetType from '../pluggableElementTypes/WidgetType.ts';
14
+ import * as pluggableElementTypes from '../pluggableElementTypes/index.ts';
15
+ import * as pluggableElementTypeModels from '../pluggableElementTypes/models/index.ts';
16
+ import * as corePalette from '../ui/palette.ts';
17
+ import * as coreTheme from '../ui/theme.ts';
18
+ import * as coreColor from '../util/color/index.ts';
19
+ import * as coreIo from '../util/io/index.ts';
20
+ import * as coreLayouts from '../util/layouts/index.ts';
21
+ import * as coreMstReflection from '../util/mst-reflection.ts';
22
+ import * as rxjs from '../util/rxjs.ts';
23
+ import * as mstTypes from '../util/types/mst.ts';
24
+ import * as trackUtils from './publicTracks.ts';
25
+ import * as coreUtil from './publicUtil.ts';
26
+ export declare const sharedModules: {
27
+ mobx: typeof mobx;
28
+ '@jbrowse/mobx-state-tree': typeof mst;
29
+ 'mobx-state-tree': typeof mst;
30
+ react: typeof React;
31
+ 'react/jsx-runtime': typeof ReactJSXRuntime;
32
+ '@jbrowse/core/Plugin': typeof Plugin;
33
+ '@jbrowse/core/configuration': typeof Configuration;
34
+ '@jbrowse/core/util/types/mst': typeof mstTypes;
35
+ '@jbrowse/core/ui/theme': typeof coreTheme;
36
+ '@jbrowse/core/ui/palette': typeof corePalette;
37
+ '@jbrowse/core/util': typeof coreUtil;
38
+ '@jbrowse/core/util/color': typeof coreColor;
39
+ '@jbrowse/core/util/layouts': typeof coreLayouts;
40
+ '@jbrowse/core/util/tracks': typeof trackUtils;
41
+ '@jbrowse/core/util/Base1DViewModel': mst.IModelType<{
42
+ id: mst.IOptionalIType<mst.ISimpleType<string>, [undefined]>;
43
+ displayedRegions: mst.IOptionalIType<mst.IType<import("../util/index.ts").Region[], import("../util/index.ts").Region[], import("../util/index.ts").Region[]>, [undefined]>;
44
+ bpPerPx: mst.IType<number | undefined, number, number>;
45
+ offsetPx: mst.IType<number | undefined, number, number>;
46
+ minimumBlockWidth: mst.IOptionalIType<mst.ISimpleType<number>, [undefined]>;
47
+ }, {
48
+ volatileWidth: number;
49
+ } & {
50
+ setDisplayedRegions(regions: import("../util/index.ts").Region[]): void;
51
+ setBpPerPx(val: number): void;
52
+ setVolatileWidth(width: number): void;
53
+ } & {
54
+ readonly width: number;
55
+ readonly minBpPerPx: number;
56
+ readonly maxBpPerPx: number;
57
+ readonly assemblyNames: string[];
58
+ readonly displayedRegionsTotalPx: number;
59
+ readonly maxOffset: number;
60
+ readonly minOffset: number;
61
+ readonly totalBp: number;
62
+ } & {
63
+ readonly dynamicBlocks: import("../util/blockTypes.ts").BlockSet;
64
+ readonly staticBlocks: import("../util/blockTypes.ts").BlockSet;
65
+ readonly currBp: number;
66
+ } & {
67
+ pxToBp(px: number): import("../util/Base1DUtils.ts").PxToBpResult;
68
+ bpToPx(args: {
69
+ refName: string;
70
+ coord: number;
71
+ displayedRegionIndex?: number;
72
+ }): number | undefined;
73
+ } & {
74
+ showAllRegions(): void;
75
+ zoomOut(): void;
76
+ zoomIn(): void;
77
+ zoomTo(bpPerPx: number, offset?: any): number;
78
+ scrollTo(offsetPx: number): number;
79
+ centerAt(coord: number, refName: string | undefined, displayedRegionIndex: number): void;
80
+ scroll(distance: number): number;
81
+ } & {
82
+ moveTo(start?: import("../util/Base1DUtils.ts").BpOffset, end?: import("../util/Base1DUtils.ts").BpOffset): void;
83
+ }, mst._NotCustomized, mst._NotCustomized>;
84
+ '@jbrowse/core/util/io': typeof coreIo;
85
+ '@jbrowse/core/util/mst-reflection': typeof coreMstReflection;
86
+ '@jbrowse/core/util/rxjs': typeof rxjs;
87
+ '@jbrowse/core/pluggableElementTypes': typeof pluggableElementTypes;
88
+ '@jbrowse/core/pluggableElementTypes/ViewType': typeof ViewType;
89
+ '@jbrowse/core/pluggableElementTypes/AdapterType': typeof AdapterType;
90
+ '@jbrowse/core/pluggableElementTypes/DisplayType': typeof DisplayType;
91
+ '@jbrowse/core/pluggableElementTypes/TrackType': typeof TrackType;
92
+ '@jbrowse/core/pluggableElementTypes/WidgetType': typeof WidgetType;
93
+ '@jbrowse/core/pluggableElementTypes/models': typeof pluggableElementTypeModels;
94
+ '@jbrowse/core/data_adapters/BaseAdapter': typeof BaseAdapterExports;
95
+ '@jbrowse/core/data_adapters/dataAdapterCache': typeof dataAdapterCache;
96
+ };
@@ -0,0 +1,66 @@
1
+ // eslint-disable-next-line no-restricted-imports
2
+ import * as React from 'react';
3
+ import * as mst from '@jbrowse/mobx-state-tree';
4
+ import * as mobx from 'mobx';
5
+ import * as ReactJSXRuntime from 'react/jsx-runtime';
6
+ import Plugin from '../Plugin.js';
7
+ import * as Configuration from '../configuration/index.js';
8
+ import * as BaseAdapterExports from '../data_adapters/BaseAdapter/index.js';
9
+ import * as dataAdapterCache from '../data_adapters/dataAdapterCache.js';
10
+ import AdapterType from '../pluggableElementTypes/AdapterType.js';
11
+ import DisplayType from '../pluggableElementTypes/DisplayType.js';
12
+ import TrackType from '../pluggableElementTypes/TrackType.js';
13
+ import ViewType from '../pluggableElementTypes/ViewType.js';
14
+ import WidgetType from '../pluggableElementTypes/WidgetType.js';
15
+ import * as pluggableElementTypes from '../pluggableElementTypes/index.js';
16
+ import * as pluggableElementTypeModels from '../pluggableElementTypes/models/index.js';
17
+ import * as corePalette from '../ui/palette.js';
18
+ import * as coreTheme from '../ui/theme.js';
19
+ import Base1DView from '../util/Base1DViewModel.js';
20
+ import * as coreColor from '../util/color/index.js';
21
+ import * as coreIo from '../util/io/index.js';
22
+ import * as coreLayouts from '../util/layouts/index.js';
23
+ import * as coreMstReflection from '../util/mst-reflection.js';
24
+ import * as rxjs from '../util/rxjs.js';
25
+ import * as mstTypes from '../util/types/mst.js';
26
+ import * as trackUtils from './publicTracks.js';
27
+ import * as coreUtil from './publicUtil.js';
28
+ // The part of the runtime plugin ABI that is not UI: what a plugin evaluated in
29
+ // the RPC worker can actually use. modules.ts adds the UI on top of it for the
30
+ // main thread; workerModules.ts fills the same keys with a stub instead.
31
+ export const sharedModules = {
32
+ mobx,
33
+ '@jbrowse/mobx-state-tree': mst,
34
+ 'mobx-state-tree': mst,
35
+ react: React,
36
+ 'react/jsx-runtime': ReactJSXRuntime,
37
+ '@jbrowse/core/Plugin': Plugin,
38
+ '@jbrowse/core/configuration': Configuration,
39
+ '@jbrowse/core/util/types/mst': mstTypes,
40
+ '@jbrowse/core/ui/theme': coreTheme,
41
+ '@jbrowse/core/ui/palette': corePalette,
42
+ '@jbrowse/core/util': coreUtil,
43
+ '@jbrowse/core/util/color': coreColor,
44
+ '@jbrowse/core/util/layouts': coreLayouts,
45
+ '@jbrowse/core/util/tracks': trackUtils,
46
+ '@jbrowse/core/util/Base1DViewModel': Base1DView,
47
+ '@jbrowse/core/util/io': coreIo,
48
+ '@jbrowse/core/util/mst-reflection': coreMstReflection,
49
+ '@jbrowse/core/util/rxjs': rxjs,
50
+ '@jbrowse/core/pluggableElementTypes': pluggableElementTypes,
51
+ '@jbrowse/core/pluggableElementTypes/ViewType': ViewType,
52
+ '@jbrowse/core/pluggableElementTypes/AdapterType': AdapterType,
53
+ '@jbrowse/core/pluggableElementTypes/DisplayType': DisplayType,
54
+ '@jbrowse/core/pluggableElementTypes/TrackType': TrackType,
55
+ '@jbrowse/core/pluggableElementTypes/WidgetType': WidgetType,
56
+ '@jbrowse/core/pluggableElementTypes/models': pluggableElementTypeModels,
57
+ '@jbrowse/core/data_adapters/BaseAdapter': BaseAdapterExports,
58
+ // `adapterCache` is module-level state, so a plugin that bundles its own copy
59
+ // of this file gets a second cache in the RPC worker — and
60
+ // `freeAdapterResources`, which CoreFreeResources calls on the host's copy
61
+ // when the last track using an adapter config closes, never sees it. The
62
+ // cache is the only strong reference to an adapter, so those adapters and
63
+ // everything they hold live as long as the worker. Serving the module is what
64
+ // makes an external RPC method share the host's cache.
65
+ '@jbrowse/core/data_adapters/dataAdapterCache': dataAdapterCache,
66
+ };
@@ -0,0 +1,2 @@
1
+ export declare const uiStub: unknown;
2
+ export declare function uiNamespace(names: readonly string[]): Record<string, unknown>;
@@ -0,0 +1,11 @@
1
+ // The RPC worker's stand-in for a UI entry of the plugin ABI; why, and why a
2
+ // namespace gets real own keys: agent-docs/reference/EAGER_BUNDLE.md.
3
+ export const uiStub = new Proxy(function stubTarget() { }, {
4
+ get: (_, key) => key === 'then' ? undefined : key === Symbol.toPrimitive ? () => '' : uiStub,
5
+ has: () => true,
6
+ apply: () => uiStub,
7
+ construct: () => uiStub,
8
+ });
9
+ export function uiNamespace(names) {
10
+ return Object.fromEntries(names.map(name => [name, uiStub]));
11
+ }
@@ -0,0 +1,2 @@
1
+ declare const libs: Record<string, unknown>;
2
+ export default libs;
@@ -0,0 +1,15 @@
1
+ import reExportsList from './list.js';
2
+ import { sharedModules } from './sharedModules.js';
3
+ import { uiNamespace, uiStub } from './uiStub.js';
4
+ import { WORKER_NAMESPACE_NAMES } from './workerNamespaceNames.js';
5
+ // Same keys as modules.ts; UI entries stubbed. agent-docs/reference/EAGER_BUNDLE.md
6
+ const libs = {
7
+ ...Object.fromEntries(reExportsList.map(name => [
8
+ name,
9
+ name in WORKER_NAMESPACE_NAMES
10
+ ? uiNamespace(WORKER_NAMESPACE_NAMES[name])
11
+ : uiStub,
12
+ ])),
13
+ ...sharedModules,
14
+ };
15
+ export default libs;
@@ -0,0 +1,11 @@
1
+ export declare const REACT_DOM_NAMES: string[];
2
+ export declare const REACT_DOM_CLIENT_NAMES: string[];
3
+ export declare const MOBX_REACT_NAMES: string[];
4
+ export declare const MUI_UTILS_NAMES: string[];
5
+ export declare const MUI_STYLES_NAMES: string[];
6
+ export declare const TSS_REACT_NAMES: string[];
7
+ export declare const MATERIAL_UI_LAB_NAMES: string[];
8
+ export declare const MUI_MATERIAL_NAMES: string[];
9
+ export declare const MATERIAL_UI_CORE_NAMES: string[];
10
+ export declare const CORE_UI_NAMES: string[];
11
+ export declare const WORKER_NAMESPACE_NAMES: Record<string, readonly string[]>;