@jbrowse/core 2.2.1 → 2.3.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/SequenceFeatureDetails.js +1 -0
- package/BaseFeatureWidget/SequenceFeatureSettingsDialog.js +2 -17
- package/BaseFeatureWidget/SequenceHelpDialog.js +3 -19
- package/PluginManager.d.ts +4 -0
- package/PluginManager.js +12 -0
- package/README.md +6 -2
- package/data_adapters/BaseAdapter.d.ts +1 -1
- package/package.json +3 -3
- package/pluggableElementTypes/AdapterType.d.ts +4 -4
- package/pluggableElementTypes/AdapterType.js +0 -1
- package/pluggableElementTypes/AddTrackWorkflowType.d.ts +3 -3
- package/pluggableElementTypes/ConnectionType.d.ts +0 -1
- package/pluggableElementTypes/ConnectionType.js +0 -1
- package/pluggableElementTypes/DisplayType.d.ts +9 -0
- package/pluggableElementTypes/DisplayType.js +1 -0
- package/pluggableElementTypes/PluggableElementBase.d.ts +3 -0
- package/pluggableElementTypes/PluggableElementBase.js +4 -0
- package/pluggableElementTypes/TextSearchAdapterType.d.ts +1 -0
- package/pluggableElementTypes/TrackType.d.ts +2 -1
- package/pluggableElementTypes/ViewType.d.ts +4 -3
- package/pluggableElementTypes/WidgetType.d.ts +10 -9
- package/pluggableElementTypes/models/BaseDisplayModel.js +1 -0
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +19 -8
- package/pluggableElementTypes/models/BaseTrackModel.js +32 -26
- package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -3
- package/pluggableElementTypes/renderers/BoxRendererType.js +1 -14
- package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +9 -0
- package/pluggableElementTypes/renderers/CircularChordRendererType.js +23 -0
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +4 -1
- package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +4 -4
- package/pluggableElementTypes/renderers/FeatureRendererType.js +11 -13
- package/pluggableElementTypes/renderers/RendererType.d.ts +1 -0
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +8 -0
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +60 -0
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +2 -2
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +6 -6
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +5 -5
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +14 -13
- package/rpc/BaseRpcDriver.d.ts +1 -1
- package/rpc/BaseRpcDriver.js +8 -18
- package/rpc/coreRpcMethods.d.ts +11 -99
- package/rpc/coreRpcMethods.js +17 -241
- package/rpc/methods/CoreEstimateRegionStats.d.ts +18 -0
- package/rpc/methods/CoreEstimateRegionStats.js +37 -0
- package/rpc/methods/CoreFreeResources.d.ts +12 -0
- package/rpc/methods/CoreFreeResources.js +35 -0
- package/rpc/methods/CoreGetFeatureDetails.d.ts +16 -0
- package/rpc/methods/CoreGetFeatureDetails.js +44 -0
- package/rpc/methods/CoreGetFeatures.d.ts +17 -0
- package/rpc/methods/CoreGetFeatures.js +44 -0
- package/rpc/methods/CoreGetFileInfo.d.ts +10 -0
- package/rpc/methods/CoreGetFileInfo.js +24 -0
- package/rpc/methods/CoreGetMetadata.d.ts +10 -0
- package/rpc/methods/CoreGetMetadata.js +24 -0
- package/rpc/methods/CoreGetRefNames.d.ts +10 -0
- package/rpc/methods/CoreGetRefNames.js +25 -0
- package/rpc/methods/CoreRender.d.ts +14 -0
- package/rpc/methods/CoreRender.js +57 -0
- package/rpc/methods/util.d.ts +14 -0
- package/rpc/methods/util.js +21 -0
- package/rpc/remoteAbortSignals.d.ts +3 -1
- package/rpc/remoteAbortSignals.js +3 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/AboutDialog.d.ts +1 -1
- package/ui/AboutDialog.js +8 -18
- package/ui/App.js +9 -77
- package/ui/AppLogo.d.ts +8 -0
- package/ui/AppLogo.js +22 -0
- package/ui/AppToolbar.d.ts +19 -0
- package/ui/AppToolbar.js +56 -0
- package/ui/AssemblySelector.d.ts +5 -3
- package/ui/AssemblySelector.js +4 -4
- package/ui/Dialog.d.ts +7 -0
- package/ui/Dialog.js +35 -0
- package/ui/FactoryResetDialog.js +8 -13
- package/ui/PrerenderedCanvas.d.ts +3 -20
- package/ui/PrerenderedCanvas.js +1 -19
- package/ui/ReturnToImportFormDialog.js +2 -17
- package/ui/Snackbar.js +7 -53
- package/ui/ViewLauncher.d.ts +18 -0
- package/ui/ViewLauncher.js +50 -0
- package/ui/index.d.ts +9 -8
- package/ui/index.js +19 -17
- package/util/Base1DUtils.js +1 -1
- package/util/analytics.js +3 -0
- package/util/dedupe.d.ts +3 -0
- package/util/dedupe.js +18 -0
- package/util/formatFastaStrings.d.ts +1 -1
- package/util/formatFastaStrings.js +1 -1
- package/util/index.d.ts +1 -0
- package/util/index.js +1 -0
- package/util/offscreenCanvasUtils.js +1 -1
- package/util/stats.d.ts +7 -3
- package/util/stats.js +33 -24
- package/util/tracks.d.ts +1 -1
- package/util/tracks.js +1 -1
package/rpc/coreRpcMethods.js
CHANGED
|
@@ -3,244 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const { sessionId, adapterConfig } = deserializedArgs;
|
|
24
|
-
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
25
|
-
if ((0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
|
|
26
|
-
return dataAdapter.getRefNames(deserializedArgs);
|
|
27
|
-
}
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.CoreGetRefNames = CoreGetRefNames;
|
|
32
|
-
class CoreGetFileInfo extends RpcMethodType_1.default {
|
|
33
|
-
constructor() {
|
|
34
|
-
super(...arguments);
|
|
35
|
-
this.name = 'CoreGetInfo';
|
|
36
|
-
}
|
|
37
|
-
async execute(args, rpcDriver) {
|
|
38
|
-
const pm = this.pluginManager;
|
|
39
|
-
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
40
|
-
const { sessionId, adapterConfig } = deserializedArgs;
|
|
41
|
-
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
42
|
-
return (0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)
|
|
43
|
-
? dataAdapter.getHeader(deserializedArgs)
|
|
44
|
-
: null;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.CoreGetFileInfo = CoreGetFileInfo;
|
|
48
|
-
class CoreGetMetadata extends RpcMethodType_1.default {
|
|
49
|
-
constructor() {
|
|
50
|
-
super(...arguments);
|
|
51
|
-
this.name = 'CoreGetMetadata';
|
|
52
|
-
}
|
|
53
|
-
async execute(args, rpcDriver) {
|
|
54
|
-
const pm = this.pluginManager;
|
|
55
|
-
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
56
|
-
const { sessionId, adapterConfig } = deserializedArgs;
|
|
57
|
-
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
58
|
-
return (0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)
|
|
59
|
-
? dataAdapter.getMetadata(deserializedArgs)
|
|
60
|
-
: null;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.CoreGetMetadata = CoreGetMetadata;
|
|
64
|
-
class CoreGetFeatures extends RpcMethodType_1.default {
|
|
65
|
-
constructor() {
|
|
66
|
-
super(...arguments);
|
|
67
|
-
this.name = 'CoreGetFeatures';
|
|
68
|
-
}
|
|
69
|
-
async deserializeReturn(feats, args, rpcDriver) {
|
|
70
|
-
const superDeserialized = (await super.deserializeReturn(feats, args, rpcDriver));
|
|
71
|
-
return superDeserialized.map(feat => new simpleFeature_1.default(feat));
|
|
72
|
-
}
|
|
73
|
-
async serializeArguments(args, rpcDriver) {
|
|
74
|
-
const { rootModel } = this.pluginManager;
|
|
75
|
-
const assemblyManager = rootModel.session.assemblyManager;
|
|
76
|
-
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, args);
|
|
77
|
-
return super.serializeArguments(renamedArgs, rpcDriver);
|
|
78
|
-
}
|
|
79
|
-
async execute(args, rpcDriver) {
|
|
80
|
-
const pm = this.pluginManager;
|
|
81
|
-
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
82
|
-
const { signal, sessionId, adapterConfig, regions, opts } = deserializedArgs;
|
|
83
|
-
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
84
|
-
if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
|
|
85
|
-
throw new Error('Adapter does not support retrieving features');
|
|
86
|
-
}
|
|
87
|
-
const ret = dataAdapter.getFeaturesInMultipleRegions(regions, {
|
|
88
|
-
...opts,
|
|
89
|
-
signal,
|
|
90
|
-
});
|
|
91
|
-
const r = await ret.pipe((0, operators_1.toArray)()).toPromise();
|
|
92
|
-
return r.map(f => f.toJSON());
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
exports.CoreGetFeatures = CoreGetFeatures;
|
|
96
|
-
/**
|
|
97
|
-
* free up any resources (e.g. cached adapter objects)
|
|
98
|
-
* that are only associated with the given track ID.
|
|
99
|
-
*
|
|
100
|
-
* returns number of objects deleted
|
|
101
|
-
*/
|
|
102
|
-
class CoreFreeResources extends RpcMethodType_1.default {
|
|
103
|
-
constructor() {
|
|
104
|
-
super(...arguments);
|
|
105
|
-
this.name = 'CoreFreeResources';
|
|
106
|
-
}
|
|
107
|
-
async execute(specification) {
|
|
108
|
-
let deleteCount = 0;
|
|
109
|
-
deleteCount += (0, dataAdapterCache_1.freeAdapterResources)(specification);
|
|
110
|
-
// pass the freeResources hint along to all the renderers as well
|
|
111
|
-
this.pluginManager.getRendererTypes().forEach(renderer => {
|
|
112
|
-
const count = renderer.freeResources( /* specification */);
|
|
113
|
-
if (count) {
|
|
114
|
-
deleteCount += count;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
return deleteCount;
|
|
118
|
-
}
|
|
119
|
-
async serializeArguments(args, _rpcDriver) {
|
|
120
|
-
return args;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
exports.CoreFreeResources = CoreFreeResources;
|
|
124
|
-
class CoreEstimateRegionStats extends RpcMethodType_1.default {
|
|
125
|
-
constructor() {
|
|
126
|
-
super(...arguments);
|
|
127
|
-
this.name = 'CoreEstimateRegionStats';
|
|
128
|
-
}
|
|
129
|
-
async serializeArguments(args, rpcDriver) {
|
|
130
|
-
var _a;
|
|
131
|
-
const { rootModel } = this.pluginManager;
|
|
132
|
-
const assemblyManager = rootModel.session.assemblyManager;
|
|
133
|
-
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, {
|
|
134
|
-
...args,
|
|
135
|
-
filters: (_a = args.filters) === null || _a === void 0 ? void 0 : _a.toJSON().filters,
|
|
136
|
-
});
|
|
137
|
-
return super.serializeArguments(renamedArgs, rpcDriver);
|
|
138
|
-
}
|
|
139
|
-
async execute(args, rpcDriver) {
|
|
140
|
-
const pm = this.pluginManager;
|
|
141
|
-
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
142
|
-
const { adapterConfig, sessionId, regions } = deserializedArgs;
|
|
143
|
-
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
144
|
-
if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
|
|
145
|
-
throw new Error('Adapter does not support retrieving features');
|
|
146
|
-
}
|
|
147
|
-
return dataAdapter.estimateRegionsStats(regions, deserializedArgs);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
exports.CoreEstimateRegionStats = CoreEstimateRegionStats;
|
|
151
|
-
/**
|
|
152
|
-
* fetches features from an adapter and call a renderer with them
|
|
153
|
-
*/
|
|
154
|
-
class CoreRender extends RpcMethodType_1.default {
|
|
155
|
-
constructor() {
|
|
156
|
-
super(...arguments);
|
|
157
|
-
this.name = 'CoreRender';
|
|
158
|
-
}
|
|
159
|
-
async serializeArguments(args, rpcDriver) {
|
|
160
|
-
const { rootModel } = this.pluginManager;
|
|
161
|
-
const assemblyManager = rootModel.session.assemblyManager;
|
|
162
|
-
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, args);
|
|
163
|
-
const superArgs = (await super.serializeArguments(renamedArgs, rpcDriver));
|
|
164
|
-
if (rpcDriver === 'MainThreadRpcDriver') {
|
|
165
|
-
return superArgs;
|
|
166
|
-
}
|
|
167
|
-
const { rendererType } = args;
|
|
168
|
-
const RendererType = validateRendererType(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
169
|
-
return RendererType.serializeArgsInClient(superArgs);
|
|
170
|
-
}
|
|
171
|
-
async execute(args, rpcDriver) {
|
|
172
|
-
let deserializedArgs = args;
|
|
173
|
-
if (rpcDriver !== 'MainThreadRpcDriver') {
|
|
174
|
-
deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
175
|
-
}
|
|
176
|
-
const { sessionId, rendererType, signal } = deserializedArgs;
|
|
177
|
-
if (!sessionId) {
|
|
178
|
-
throw new Error('must pass a unique session id');
|
|
179
|
-
}
|
|
180
|
-
(0, util_1.checkAbortSignal)(signal);
|
|
181
|
-
const RendererType = validateRendererType(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
182
|
-
const result = rpcDriver === 'MainThreadRpcDriver'
|
|
183
|
-
? await RendererType.render(deserializedArgs)
|
|
184
|
-
: await RendererType.renderInWorker(deserializedArgs);
|
|
185
|
-
(0, util_1.checkAbortSignal)(signal);
|
|
186
|
-
return result;
|
|
187
|
-
}
|
|
188
|
-
async deserializeReturn(serializedReturn, args, rpcDriver) {
|
|
189
|
-
const des = await super.deserializeReturn(serializedReturn, args, rpcDriver);
|
|
190
|
-
if (rpcDriver === 'MainThreadRpcDriver') {
|
|
191
|
-
return des;
|
|
192
|
-
}
|
|
193
|
-
const { rendererType } = args;
|
|
194
|
-
const RendererType = validateRendererType(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
195
|
-
return RendererType.deserializeResultsInClient(des, args);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
exports.CoreRender = CoreRender;
|
|
199
|
-
/**
|
|
200
|
-
* fetches features from an adapter and call a renderer with them
|
|
201
|
-
*/
|
|
202
|
-
class CoreGetFeatureDetails extends RpcMethodType_1.default {
|
|
203
|
-
constructor() {
|
|
204
|
-
super(...arguments);
|
|
205
|
-
this.name = 'CoreGetFeatureDetails';
|
|
206
|
-
}
|
|
207
|
-
async serializeArguments(args, rpcDriver) {
|
|
208
|
-
const { rootModel } = this.pluginManager;
|
|
209
|
-
const assemblyManager = rootModel.session.assemblyManager;
|
|
210
|
-
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, args);
|
|
211
|
-
const superArgs = (await super.serializeArguments(renamedArgs, rpcDriver));
|
|
212
|
-
if (rpcDriver === 'MainThreadRpcDriver') {
|
|
213
|
-
return superArgs;
|
|
214
|
-
}
|
|
215
|
-
const { rendererType } = args;
|
|
216
|
-
const RendererType = validateRendererType(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
217
|
-
return RendererType.serializeArgsInClient(superArgs);
|
|
218
|
-
}
|
|
219
|
-
async execute(args, rpcDriver) {
|
|
220
|
-
let deserializedArgs = args;
|
|
221
|
-
if (rpcDriver !== 'MainThreadRpcDriver') {
|
|
222
|
-
deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
223
|
-
}
|
|
224
|
-
const { rendererType, featureId } = deserializedArgs;
|
|
225
|
-
const RendererType = validateRendererType(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
226
|
-
// @ts-ignore
|
|
227
|
-
const sess = RendererType.sessions[(0, util_1.getLayoutId)(args)];
|
|
228
|
-
const { layout } = sess.cachedLayout;
|
|
229
|
-
const xref = layout.getDataByID(featureId);
|
|
230
|
-
return { feature: xref.toJSON() };
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
exports.CoreGetFeatureDetails = CoreGetFeatureDetails;
|
|
234
|
-
function validateRendererType(rendererType, RendererType) {
|
|
235
|
-
if (!RendererType) {
|
|
236
|
-
throw new Error(`renderer "${rendererType}" not found`);
|
|
237
|
-
}
|
|
238
|
-
// @ts-ignore
|
|
239
|
-
if (!RendererType.ReactComponent) {
|
|
240
|
-
throw new Error(`renderer ${rendererType} has no ReactComponent, it may not be completely implemented yet`);
|
|
241
|
-
}
|
|
242
|
-
if (!(RendererType instanceof ServerSideRendererType_1.default)) {
|
|
243
|
-
throw new Error('CoreRender requires a renderer that is a subclass of ServerSideRendererType');
|
|
244
|
-
}
|
|
245
|
-
return RendererType;
|
|
246
|
-
}
|
|
6
|
+
exports.CoreEstimateRegionStats = exports.CoreFreeResources = exports.CoreGetFeatureDetails = exports.CoreRender = exports.CoreGetFeatures = exports.CoreGetMetadata = exports.CoreGetFileInfo = exports.CoreGetRefNames = void 0;
|
|
7
|
+
const CoreGetRefNames_1 = __importDefault(require("./methods/CoreGetRefNames"));
|
|
8
|
+
exports.CoreGetRefNames = CoreGetRefNames_1.default;
|
|
9
|
+
const CoreGetMetadata_1 = __importDefault(require("./methods/CoreGetMetadata"));
|
|
10
|
+
exports.CoreGetMetadata = CoreGetMetadata_1.default;
|
|
11
|
+
const CoreGetFeatureDetails_1 = __importDefault(require("./methods/CoreGetFeatureDetails"));
|
|
12
|
+
exports.CoreGetFeatureDetails = CoreGetFeatureDetails_1.default;
|
|
13
|
+
const CoreGetFeatures_1 = __importDefault(require("./methods/CoreGetFeatures"));
|
|
14
|
+
exports.CoreGetFeatures = CoreGetFeatures_1.default;
|
|
15
|
+
const CoreGetFileInfo_1 = __importDefault(require("./methods/CoreGetFileInfo"));
|
|
16
|
+
exports.CoreGetFileInfo = CoreGetFileInfo_1.default;
|
|
17
|
+
const CoreFreeResources_1 = __importDefault(require("./methods/CoreFreeResources"));
|
|
18
|
+
exports.CoreFreeResources = CoreFreeResources_1.default;
|
|
19
|
+
const CoreRender_1 = __importDefault(require("./methods/CoreRender"));
|
|
20
|
+
exports.CoreRender = CoreRender_1.default;
|
|
21
|
+
const CoreEstimateRegionStats_1 = __importDefault(require("./methods/CoreEstimateRegionStats"));
|
|
22
|
+
exports.CoreEstimateRegionStats = CoreEstimateRegionStats_1.default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RenderArgs } from './util';
|
|
3
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
4
|
+
import { Region } from '../../util';
|
|
5
|
+
export default class CoreEstimateRegionStats extends RpcMethodType {
|
|
6
|
+
name: string;
|
|
7
|
+
serializeArguments(args: RenderArgs & {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
statusCallback?: (arg: string) => void;
|
|
10
|
+
}, rpcDriver: string): Promise<{}>;
|
|
11
|
+
execute(args: {
|
|
12
|
+
adapterConfig: {};
|
|
13
|
+
regions: Region[];
|
|
14
|
+
signal?: RemoteAbortSignal;
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
sessionId: string;
|
|
17
|
+
}, rpcDriver: string): Promise<import("../../data_adapters/BaseAdapter").Stats>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
7
|
+
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
8
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
9
|
+
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
|
|
10
|
+
const util_1 = require("../../util");
|
|
11
|
+
class CoreEstimateRegionStats extends RpcMethodType_1.default {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.name = 'CoreEstimateRegionStats';
|
|
15
|
+
}
|
|
16
|
+
async serializeArguments(args, rpcDriver) {
|
|
17
|
+
var _a;
|
|
18
|
+
const { rootModel } = this.pluginManager;
|
|
19
|
+
const assemblyManager = rootModel.session.assemblyManager;
|
|
20
|
+
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, {
|
|
21
|
+
...args,
|
|
22
|
+
filters: (_a = args.filters) === null || _a === void 0 ? void 0 : _a.toJSON().filters,
|
|
23
|
+
});
|
|
24
|
+
return super.serializeArguments(renamedArgs, rpcDriver);
|
|
25
|
+
}
|
|
26
|
+
async execute(args, rpcDriver) {
|
|
27
|
+
const pm = this.pluginManager;
|
|
28
|
+
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
29
|
+
const { adapterConfig, sessionId, regions } = deserializedArgs;
|
|
30
|
+
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
31
|
+
if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
|
|
32
|
+
throw new Error('Adapter does not support retrieving features');
|
|
33
|
+
}
|
|
34
|
+
return dataAdapter.estimateRegionsStats(regions, deserializedArgs);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = CoreEstimateRegionStats;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
/**
|
|
3
|
+
* free up any resources (e.g. cached adapter objects)
|
|
4
|
+
* that are only associated with the given track ID.
|
|
5
|
+
*
|
|
6
|
+
* returns number of objects deleted
|
|
7
|
+
*/
|
|
8
|
+
export default class CoreFreeResources extends RpcMethodType {
|
|
9
|
+
name: string;
|
|
10
|
+
execute(specification: {}): Promise<number>;
|
|
11
|
+
serializeArguments(args: {}, _rpcDriver: string): Promise<{}>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
7
|
+
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
8
|
+
/**
|
|
9
|
+
* free up any resources (e.g. cached adapter objects)
|
|
10
|
+
* that are only associated with the given track ID.
|
|
11
|
+
*
|
|
12
|
+
* returns number of objects deleted
|
|
13
|
+
*/
|
|
14
|
+
class CoreFreeResources extends RpcMethodType_1.default {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.name = 'CoreFreeResources';
|
|
18
|
+
}
|
|
19
|
+
async execute(specification) {
|
|
20
|
+
let deleteCount = 0;
|
|
21
|
+
deleteCount += (0, dataAdapterCache_1.freeAdapterResources)(specification);
|
|
22
|
+
// pass the freeResources hint along to all the renderers as well
|
|
23
|
+
this.pluginManager.getRendererTypes().forEach(renderer => {
|
|
24
|
+
const count = renderer.freeResources( /* specification */);
|
|
25
|
+
if (count) {
|
|
26
|
+
deleteCount += count;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return deleteCount;
|
|
30
|
+
}
|
|
31
|
+
async serializeArguments(args, _rpcDriver) {
|
|
32
|
+
return args;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.default = CoreFreeResources;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RenderArgs } from './util';
|
|
3
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
4
|
+
import { RenderArgsSerialized } from './util';
|
|
5
|
+
/**
|
|
6
|
+
* fetches features from an adapter and call a renderer with them
|
|
7
|
+
*/
|
|
8
|
+
export default class CoreGetFeatureDetails extends RpcMethodType {
|
|
9
|
+
name: string;
|
|
10
|
+
serializeArguments(args: RenderArgs, rpcDriver: string): Promise<import("../../pluggableElementTypes/renderers/ServerSideRendererType").RenderArgsSerialized | RenderArgs>;
|
|
11
|
+
execute(args: RenderArgsSerialized & {
|
|
12
|
+
signal?: RemoteAbortSignal;
|
|
13
|
+
}, rpcDriver: string): Promise<{
|
|
14
|
+
feature: any;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
7
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
8
|
+
const util_1 = require("../../util");
|
|
9
|
+
const util_2 = require("./util");
|
|
10
|
+
/**
|
|
11
|
+
* fetches features from an adapter and call a renderer with them
|
|
12
|
+
*/
|
|
13
|
+
class CoreGetFeatureDetails extends RpcMethodType_1.default {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.name = 'CoreGetFeatureDetails';
|
|
17
|
+
}
|
|
18
|
+
async serializeArguments(args, rpcDriver) {
|
|
19
|
+
const { rootModel } = this.pluginManager;
|
|
20
|
+
const assemblyManager = rootModel.session.assemblyManager;
|
|
21
|
+
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, args);
|
|
22
|
+
const superArgs = (await super.serializeArguments(renamedArgs, rpcDriver));
|
|
23
|
+
if (rpcDriver === 'MainThreadRpcDriver') {
|
|
24
|
+
return superArgs;
|
|
25
|
+
}
|
|
26
|
+
const { rendererType } = args;
|
|
27
|
+
const RendererType = (0, util_2.validateRendererType)(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
28
|
+
return RendererType.serializeArgsInClient(superArgs);
|
|
29
|
+
}
|
|
30
|
+
async execute(args, rpcDriver) {
|
|
31
|
+
let deserializedArgs = args;
|
|
32
|
+
if (rpcDriver !== 'MainThreadRpcDriver') {
|
|
33
|
+
deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
34
|
+
}
|
|
35
|
+
const { rendererType, featureId } = deserializedArgs;
|
|
36
|
+
const RendererType = (0, util_2.validateRendererType)(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
const sess = RendererType.sessions[(0, util_1.getLayoutId)(args)];
|
|
39
|
+
const { layout } = sess.cachedLayout;
|
|
40
|
+
const xref = layout.getDataByID(featureId);
|
|
41
|
+
return { feature: xref.toJSON() };
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.default = CoreGetFeatureDetails;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RenderArgs } from './util';
|
|
3
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
4
|
+
import { Region } from '../../util';
|
|
5
|
+
import SimpleFeature, { SimpleFeatureSerialized } from '../../util/simpleFeature';
|
|
6
|
+
export default class CoreGetFeatures extends RpcMethodType {
|
|
7
|
+
name: string;
|
|
8
|
+
deserializeReturn(feats: SimpleFeatureSerialized[], args: unknown, rpcDriver: string): Promise<SimpleFeature[]>;
|
|
9
|
+
serializeArguments(args: RenderArgs, rpcDriver: string): Promise<RenderArgs>;
|
|
10
|
+
execute(args: {
|
|
11
|
+
sessionId: string;
|
|
12
|
+
regions: Region[];
|
|
13
|
+
adapterConfig: {};
|
|
14
|
+
signal?: RemoteAbortSignal;
|
|
15
|
+
opts?: any;
|
|
16
|
+
}, rpcDriver: string): Promise<SimpleFeatureSerialized[]>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
7
|
+
const operators_1 = require("rxjs/operators");
|
|
8
|
+
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
9
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
10
|
+
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
|
|
11
|
+
const util_1 = require("../../util");
|
|
12
|
+
const simpleFeature_1 = __importDefault(require("../../util/simpleFeature"));
|
|
13
|
+
class CoreGetFeatures extends RpcMethodType_1.default {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.name = 'CoreGetFeatures';
|
|
17
|
+
}
|
|
18
|
+
async deserializeReturn(feats, args, rpcDriver) {
|
|
19
|
+
const superDeserialized = (await super.deserializeReturn(feats, args, rpcDriver));
|
|
20
|
+
return superDeserialized.map(feat => new simpleFeature_1.default(feat));
|
|
21
|
+
}
|
|
22
|
+
async serializeArguments(args, rpcDriver) {
|
|
23
|
+
const { rootModel } = this.pluginManager;
|
|
24
|
+
const assemblyManager = rootModel.session.assemblyManager;
|
|
25
|
+
const renamedArgs = await (0, util_1.renameRegionsIfNeeded)(assemblyManager, args);
|
|
26
|
+
return super.serializeArguments(renamedArgs, rpcDriver);
|
|
27
|
+
}
|
|
28
|
+
async execute(args, rpcDriver) {
|
|
29
|
+
const pm = this.pluginManager;
|
|
30
|
+
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
31
|
+
const { signal, sessionId, adapterConfig, regions, opts } = deserializedArgs;
|
|
32
|
+
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
33
|
+
if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
|
|
34
|
+
throw new Error('Adapter does not support retrieving features');
|
|
35
|
+
}
|
|
36
|
+
const ret = dataAdapter.getFeaturesInMultipleRegions(regions, {
|
|
37
|
+
...opts,
|
|
38
|
+
signal,
|
|
39
|
+
});
|
|
40
|
+
const r = await ret.pipe((0, operators_1.toArray)()).toPromise();
|
|
41
|
+
return r.map(f => f.toJSON());
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.default = CoreGetFeatures;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
3
|
+
export default class CoreGetFileInfo extends RpcMethodType {
|
|
4
|
+
name: string;
|
|
5
|
+
execute(args: {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
signal: RemoteAbortSignal;
|
|
8
|
+
adapterConfig: {};
|
|
9
|
+
}, rpcDriver: string): Promise<unknown>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
7
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
8
|
+
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
|
|
9
|
+
class CoreGetFileInfo extends RpcMethodType_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.name = 'CoreGetInfo';
|
|
13
|
+
}
|
|
14
|
+
async execute(args, rpcDriver) {
|
|
15
|
+
const pm = this.pluginManager;
|
|
16
|
+
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
17
|
+
const { sessionId, adapterConfig } = deserializedArgs;
|
|
18
|
+
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
19
|
+
return (0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)
|
|
20
|
+
? dataAdapter.getHeader(deserializedArgs)
|
|
21
|
+
: null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = CoreGetFileInfo;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
3
|
+
export default class CoreGetMetadata extends RpcMethodType {
|
|
4
|
+
name: string;
|
|
5
|
+
execute(args: {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
signal: RemoteAbortSignal;
|
|
8
|
+
adapterConfig: {};
|
|
9
|
+
}, rpcDriver: string): Promise<unknown>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
7
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
8
|
+
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
|
|
9
|
+
class CoreGetMetadata extends RpcMethodType_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.name = 'CoreGetMetadata';
|
|
13
|
+
}
|
|
14
|
+
async execute(args, rpcDriver) {
|
|
15
|
+
const pm = this.pluginManager;
|
|
16
|
+
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
17
|
+
const { sessionId, adapterConfig } = deserializedArgs;
|
|
18
|
+
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
19
|
+
return (0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)
|
|
20
|
+
? dataAdapter.getMetadata(deserializedArgs)
|
|
21
|
+
: null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = CoreGetMetadata;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
3
|
+
export default class CoreGetRefNames extends RpcMethodType {
|
|
4
|
+
name: string;
|
|
5
|
+
execute(args: {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
signal: RemoteAbortSignal;
|
|
8
|
+
adapterConfig: {};
|
|
9
|
+
}, rpcDriver: string): Promise<string[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
|
|
7
|
+
const RpcMethodType_1 = __importDefault(require("../../pluggableElementTypes/RpcMethodType"));
|
|
8
|
+
const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
|
|
9
|
+
class CoreGetRefNames extends RpcMethodType_1.default {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.name = 'CoreGetRefNames';
|
|
13
|
+
}
|
|
14
|
+
async execute(args, rpcDriver) {
|
|
15
|
+
const pm = this.pluginManager;
|
|
16
|
+
const deserializedArgs = await this.deserializeArguments(args, rpcDriver);
|
|
17
|
+
const { sessionId, adapterConfig } = deserializedArgs;
|
|
18
|
+
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
19
|
+
if ((0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
|
|
20
|
+
return dataAdapter.getRefNames(deserializedArgs);
|
|
21
|
+
}
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = CoreGetRefNames;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import RpcMethodType from '../../pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RenderResults, ResultsSerialized, RenderArgs, RenderArgsSerialized } from './util';
|
|
3
|
+
import { RemoteAbortSignal } from '../remoteAbortSignals';
|
|
4
|
+
/**
|
|
5
|
+
* fetches features from an adapter and call a renderer with them
|
|
6
|
+
*/
|
|
7
|
+
export default class CoreRender extends RpcMethodType {
|
|
8
|
+
name: string;
|
|
9
|
+
serializeArguments(args: RenderArgs, rpcDriver: string): Promise<import("../../pluggableElementTypes/renderers/ServerSideRendererType").RenderArgsSerialized | RenderArgs>;
|
|
10
|
+
execute(args: RenderArgsSerialized & {
|
|
11
|
+
signal?: RemoteAbortSignal;
|
|
12
|
+
}, rpcDriver: string): Promise<ResultsSerialized | RenderResults>;
|
|
13
|
+
deserializeReturn(serializedReturn: RenderResults | ResultsSerialized, args: RenderArgs, rpcDriver: string): Promise<unknown>;
|
|
14
|
+
}
|