@jbrowse/core 2.13.1 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +2 -2
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +1 -1
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +3 -1
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +23 -51
- package/BaseFeatureWidget/BaseFeatureDetail/util.js +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +11 -5
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +11 -7
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +6 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -5
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +15 -5
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +4 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +15 -5
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +5 -3
- package/BaseFeatureWidget/stateModelFactory.js +0 -2
- package/PluginLoader.d.ts +1 -2
- package/PluginLoader.js +16 -6
- package/PluginManager.d.ts +13 -13
- package/PluginManager.js +7 -2
- package/ReExports/modules.js +2 -11
- package/assemblyManager/assembly.d.ts +18 -12
- package/assemblyManager/assembly.js +75 -52
- package/assemblyManager/assemblyConfigSchema.d.ts +9 -7
- package/assemblyManager/assemblyConfigSchema.js +15 -16
- package/assemblyManager/assemblyManager.d.ts +109 -81
- package/assemblyManager/assemblyManager.js +3 -6
- package/configuration/configurationSchema.d.ts +1 -1
- package/configuration/configurationSchema.js +1 -2
- package/configuration/configurationSlot.js +7 -8
- package/configuration/util.js +0 -7
- package/data_adapters/BaseAdapter/BaseAdapter.d.ts +2 -1
- package/data_adapters/BaseAdapter/BaseAdapter.js +2 -1
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +6 -6
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +6 -6
- package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +0 -1
- package/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -8
- package/data_adapters/dataAdapterCache.d.ts +9 -6
- package/data_adapters/dataAdapterCache.js +16 -22
- package/package.json +5 -5
- package/pluggableElementTypes/AddTrackWorkflowType.js +0 -6
- package/pluggableElementTypes/ConnectionType.js +0 -6
- package/pluggableElementTypes/DisplayType.js +0 -20
- package/pluggableElementTypes/InternetAccountType.js +0 -11
- package/pluggableElementTypes/RpcMethodType.d.ts +1 -1
- package/pluggableElementTypes/TextSearchAdapterType.js +0 -3
- package/pluggableElementTypes/TrackType.js +0 -11
- package/pluggableElementTypes/ViewType.js +0 -6
- package/pluggableElementTypes/WidgetType.js +0 -6
- package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +4 -3
- package/pluggableElementTypes/models/BaseConnectionModelFactory.js +1 -3
- package/pluggableElementTypes/models/BaseDisplayModel.d.ts +4 -5
- package/pluggableElementTypes/models/BaseDisplayModel.js +6 -14
- package/pluggableElementTypes/models/BaseTrackModel.js +8 -5
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +1 -1
- package/pluggableElementTypes/models/InternetAccountModel.js +19 -13
- package/pluggableElementTypes/models/baseTrackConfig.js +2 -5
- package/pluggableElementTypes/renderers/BoxRendererType.d.ts +10 -4
- package/pluggableElementTypes/renderers/BoxRendererType.js +10 -26
- package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +1 -1
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +9 -12
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +12 -19
- package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +5 -5
- package/pluggableElementTypes/renderers/FeatureRendererType.js +6 -13
- package/pluggableElementTypes/renderers/RendererType.js +0 -10
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +1 -1
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +11 -9
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +14 -14
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +4 -4
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +7 -5
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +0 -1
- package/rpc/BaseRpcDriver.d.ts +1 -1
- package/rpc/BaseRpcDriver.js +12 -11
- package/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/rpc/MainThreadRpcDriver.js +3 -0
- package/rpc/RpcManager.d.ts +1 -1
- package/rpc/RpcManager.js +11 -8
- package/rpc/configSchema.js +0 -1
- package/rpc/methods/CoreFreeResources.d.ts +2 -2
- package/rpc/methods/CoreGetFeatureDensityStats.d.ts +2 -2
- package/rpc/methods/CoreGetFeatureDetails.d.ts +1 -1
- package/rpc/methods/CoreGetFeatureDetails.js +3 -3
- package/rpc/methods/CoreGetFeatures.d.ts +1 -1
- package/rpc/methods/CoreGetFileInfo.d.ts +1 -1
- package/rpc/methods/CoreGetMetadata.d.ts +1 -1
- package/rpc/methods/CoreGetRefNames.d.ts +1 -1
- package/rpc/methods/util.d.ts +2 -2
- package/rpc/methods/util.js +0 -3
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/AssemblySelector.js +3 -1
- package/ui/CascadingMenu.js +2 -1
- package/ui/CascadingMenuButton.js +3 -1
- package/ui/ColorPicker.js +14 -4
- package/ui/DropDownMenu.js +3 -1
- package/ui/EditableTypography.js +6 -2
- package/ui/ErrorMessage.d.ts +2 -2
- package/ui/ErrorMessage.js +37 -20
- package/ui/ErrorMessageStackTraceDialog.js +11 -9
- package/ui/FactoryResetDialog.d.ts +1 -1
- package/ui/FactoryResetDialog.js +9 -3
- package/ui/FatalErrorDialog.js +9 -3
- package/ui/FileSelector/FileSelector.js +8 -4
- package/ui/FileSelector/LocalFileChooser.js +7 -6
- package/ui/LoadingEllipses.js +1 -1
- package/ui/Menu.d.ts +4 -4
- package/ui/Menu.js +6 -4
- package/ui/MenuButton.js +6 -2
- package/ui/PrerenderedCanvas.js +8 -5
- package/ui/RedErrorMessageBox.js +13 -8
- package/ui/ResizeHandle.d.ts +1 -1
- package/ui/ReturnToImportFormDialog.js +3 -1
- package/ui/SanitizedHTML.js +1 -3
- package/ui/SnackbarModel.d.ts +12 -1
- package/ui/SnackbarModel.js +19 -3
- package/ui/theme.js +10 -7
- package/util/Base1DViewModel.js +3 -1
- package/util/QuickLRU.js +8 -8
- package/util/TimeTraveller.js +12 -4
- package/util/aborting.js +1 -1
- package/util/analytics.js +0 -1
- package/util/blockTypes.js +5 -9
- package/util/calculateStaticBlocks.d.ts +1 -1
- package/util/compositeMap.js +2 -2
- package/util/idMaker.js +0 -1
- package/util/index.d.ts +9 -8
- package/util/index.js +92 -51
- package/util/io/RemoteFileWithRangeCache.js +1 -3
- package/util/io/index.js +3 -5
- package/util/jexlStrings.js +5 -8
- package/util/layouts/GranularRectLayout.js +1 -4
- package/util/layouts/SceneGraph.d.ts +1 -1
- package/util/layouts/SceneGraph.js +2 -6
- package/util/map-obj.js +15 -7
- package/util/mst-reflection.js +1 -2
- package/util/nanoid.js +9 -8
- package/util/offscreenCanvasPonyfill.d.ts +1 -1
- package/util/offscreenCanvasPonyfill.js +7 -10
- package/util/offscreenCanvasUtils.d.ts +1 -1
- package/util/offscreenCanvasUtils.js +1 -3
- package/util/rxjs.js +5 -5
- package/util/simpleFeature.d.ts +2 -3
- package/util/simpleFeature.js +9 -12
- package/util/stats.js +3 -1
- package/util/tracks.d.ts +4 -2
- package/util/tracks.js +10 -11
- package/util/types/index.d.ts +5 -5
- package/util/types/index.js +8 -1
- package/util/types/mst.js +1 -0
- package/util/when.js +7 -2
package/rpc/RpcManager.js
CHANGED
|
@@ -7,6 +7,7 @@ const configuration_1 = require("../configuration");
|
|
|
7
7
|
const configSchema_1 = __importDefault(require("./configSchema"));
|
|
8
8
|
const WebWorkerRpcDriver_1 = __importDefault(require("./WebWorkerRpcDriver"));
|
|
9
9
|
const MainThreadRpcDriver_1 = __importDefault(require("./MainThreadRpcDriver"));
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
11
|
const DriverClasses = {
|
|
11
12
|
WebWorkerRpcDriver: WebWorkerRpcDriver_1.default,
|
|
12
13
|
MainThreadRpcDriver: MainThreadRpcDriver_1.default,
|
|
@@ -16,9 +17,6 @@ class RpcManager {
|
|
|
16
17
|
this.pluginManager = pluginManager;
|
|
17
18
|
this.mainConfiguration = mainConfiguration;
|
|
18
19
|
this.backendConfigurations = backendConfigurations;
|
|
19
|
-
if (!mainConfiguration) {
|
|
20
|
-
throw new Error('RpcManager requires at least a main configuration');
|
|
21
|
-
}
|
|
22
20
|
this.driverObjects = new Map();
|
|
23
21
|
}
|
|
24
22
|
getDriver(backendName) {
|
|
@@ -26,30 +24,35 @@ class RpcManager {
|
|
|
26
24
|
if (driver) {
|
|
27
25
|
return driver;
|
|
28
26
|
}
|
|
29
|
-
let newDriver;
|
|
30
27
|
const config = this.mainConfiguration.drivers.get('WebWorkerRpcDriver');
|
|
31
28
|
if (backendName === 'MainThreadRpcDriver') {
|
|
32
29
|
const backendConfiguration = this.backendConfigurations.MainThreadRpcDriver;
|
|
33
30
|
if (!backendConfiguration) {
|
|
34
31
|
throw new Error(`requested RPC driver "${backendName}" is missing config`);
|
|
35
32
|
}
|
|
36
|
-
newDriver = new MainThreadRpcDriver_1.default({
|
|
33
|
+
const newDriver = new MainThreadRpcDriver_1.default({
|
|
34
|
+
...backendConfiguration,
|
|
35
|
+
config,
|
|
36
|
+
});
|
|
37
|
+
this.driverObjects.set(backendName, newDriver);
|
|
38
|
+
return newDriver;
|
|
37
39
|
}
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
38
41
|
else if (backendName === 'WebWorkerRpcDriver') {
|
|
39
42
|
const backendConfiguration = this.backendConfigurations.WebWorkerRpcDriver;
|
|
40
43
|
if (!backendConfiguration) {
|
|
41
44
|
throw new Error(`requested RPC driver "${backendName}" is missing config`);
|
|
42
45
|
}
|
|
43
|
-
newDriver = new WebWorkerRpcDriver_1.default({ ...backendConfiguration, config }, {
|
|
46
|
+
const newDriver = new WebWorkerRpcDriver_1.default({ ...backendConfiguration, config }, {
|
|
44
47
|
plugins: this.pluginManager.runtimePluginDefinitions,
|
|
45
48
|
windowHref: window.location.href,
|
|
46
49
|
});
|
|
50
|
+
this.driverObjects.set(backendName, newDriver);
|
|
51
|
+
return newDriver;
|
|
47
52
|
}
|
|
48
53
|
else {
|
|
49
54
|
throw new Error(`requested RPC driver "${backendName}" is not installed`);
|
|
50
55
|
}
|
|
51
|
-
this.driverObjects.set(backendName, newDriver);
|
|
52
|
-
return newDriver;
|
|
53
56
|
}
|
|
54
57
|
async getDriverForCall(_sessionId, _functionName, args) {
|
|
55
58
|
const backendName = args.rpcDriverName ||
|
package/rpc/configSchema.js
CHANGED
|
@@ -28,7 +28,6 @@ exports.default = (0, configuration_1.ConfigurationSchema)('RpcOptions', {
|
|
|
28
28
|
WebWorkerRpcDriver: { type: 'WebWorkerRpcDriver' },
|
|
29
29
|
}),
|
|
30
30
|
}, {
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
31
|
actions: (self) => ({
|
|
33
32
|
addDriverConfig(configName, configSnapshot) {
|
|
34
33
|
self.drivers.set(configName, configSnapshot);
|
|
@@ -7,6 +7,6 @@ import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
|
7
7
|
*/
|
|
8
8
|
export default class CoreFreeResources extends RpcMethodType {
|
|
9
9
|
name: string;
|
|
10
|
-
execute(specification:
|
|
11
|
-
serializeArguments(args:
|
|
10
|
+
execute(specification: Record<string, unknown>): Promise<number>;
|
|
11
|
+
serializeArguments(args: Record<string, unknown>, _rpcDriver: string): Promise<Record<string, unknown>>;
|
|
12
12
|
}
|
|
@@ -7,9 +7,9 @@ export default class CoreGetFeatureDensityStats extends RpcMethodType {
|
|
|
7
7
|
serializeArguments(args: RenderArgs & {
|
|
8
8
|
signal?: AbortSignal;
|
|
9
9
|
statusCallback?: (arg: string) => void;
|
|
10
|
-
}, rpcDriver: string): Promise<
|
|
10
|
+
}, rpcDriver: string): Promise<Record<string, unknown>>;
|
|
11
11
|
execute(args: {
|
|
12
|
-
adapterConfig:
|
|
12
|
+
adapterConfig: Record<string, unknown>;
|
|
13
13
|
regions: Region[];
|
|
14
14
|
signal?: RemoteAbortSignal;
|
|
15
15
|
headers?: Record<string, string>;
|
|
@@ -7,7 +7,7 @@ import { RenderArgsSerialized } from './util';
|
|
|
7
7
|
*/
|
|
8
8
|
export default class CoreGetFeatureDetails extends RpcMethodType {
|
|
9
9
|
name: string;
|
|
10
|
-
serializeArguments(args: RenderArgs, rpcDriver: string): Promise<
|
|
10
|
+
serializeArguments(args: RenderArgs, rpcDriver: string): Promise<any>;
|
|
11
11
|
execute(args: RenderArgsSerialized & {
|
|
12
12
|
signal?: RemoteAbortSignal;
|
|
13
13
|
}, rpcDriver: string): Promise<{
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
7
7
|
const util_1 = require("../../util");
|
|
8
|
-
const util_2 = require("./util");
|
|
9
8
|
/**
|
|
10
9
|
* fetches features from an adapter and call a renderer with them
|
|
11
10
|
*/
|
|
@@ -23,7 +22,8 @@ class CoreGetFeatureDetails extends RpcMethodType_1.default {
|
|
|
23
22
|
return superArgs;
|
|
24
23
|
}
|
|
25
24
|
const { rendererType } = args;
|
|
26
|
-
const RendererType =
|
|
25
|
+
const RendererType = this.pluginManager.getRendererType(rendererType);
|
|
26
|
+
// @ts-expect-error
|
|
27
27
|
return RendererType.serializeArgsInClient(superArgs);
|
|
28
28
|
}
|
|
29
29
|
async execute(args, rpcDriver) {
|
|
@@ -33,7 +33,7 @@ class CoreGetFeatureDetails extends RpcMethodType_1.default {
|
|
|
33
33
|
deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
34
34
|
}
|
|
35
35
|
const { rendererType, featureId } = deserializedArgs;
|
|
36
|
-
const RendererType =
|
|
36
|
+
const RendererType = this.pluginManager.getRendererType(rendererType);
|
|
37
37
|
return {
|
|
38
38
|
// @ts-expect-error
|
|
39
39
|
feature: (_b = (_a = RendererType.sessions[(0, util_1.getLayoutId)(args)]) === null || _a === void 0 ? void 0 : _a.cachedLayout.layout.getDataByID(featureId)) === null || _b === void 0 ? void 0 : _b.toJSON(),
|
|
@@ -10,7 +10,7 @@ export default class CoreGetFeatures extends RpcMethodType {
|
|
|
10
10
|
execute(args: {
|
|
11
11
|
sessionId: string;
|
|
12
12
|
regions: Region[];
|
|
13
|
-
adapterConfig:
|
|
13
|
+
adapterConfig: Record<string, unknown>;
|
|
14
14
|
signal?: RemoteAbortSignal;
|
|
15
15
|
opts?: any;
|
|
16
16
|
}, rpcDriver: string): Promise<SimpleFeatureSerialized[]>;
|
package/rpc/methods/util.d.ts
CHANGED
|
@@ -2,13 +2,13 @@ import { ServerSideRendererType } from '../../pluggableElementTypes';
|
|
|
2
2
|
import { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized } from '../../pluggableElementTypes/renderers/ServerSideRendererType';
|
|
3
3
|
import { Region } from '../../util';
|
|
4
4
|
export interface RenderArgs extends ServerSideRenderArgs {
|
|
5
|
-
adapterConfig:
|
|
5
|
+
adapterConfig: Record<string, unknown>;
|
|
6
6
|
rendererType: string;
|
|
7
7
|
}
|
|
8
8
|
export interface RenderArgsSerialized extends ServerSideRenderArgsSerialized {
|
|
9
9
|
assemblyName: string;
|
|
10
10
|
regions: Region[];
|
|
11
|
-
adapterConfig:
|
|
11
|
+
adapterConfig: Record<string, unknown>;
|
|
12
12
|
rendererType: string;
|
|
13
13
|
}
|
|
14
14
|
export declare function validateRendererType<T>(rendererType: string, RendererType: T): ServerSideRendererType;
|
package/rpc/methods/util.js
CHANGED
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateRendererType = validateRendererType;
|
|
4
4
|
function validateRendererType(rendererType, RendererType) {
|
|
5
|
-
if (!RendererType) {
|
|
6
|
-
throw new Error(`renderer "${rendererType}" not found`);
|
|
7
|
-
}
|
|
8
5
|
// @ts-expect-error
|
|
9
6
|
if (!RendererType.ReactComponent) {
|
|
10
7
|
throw new Error(`renderer ${rendererType} has no ReactComponent, it may not be completely implemented yet`);
|