@jbrowse/plugin-legacy-jbrowse 1.7.11 → 2.0.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/dist/JBrowse1Connection/configSchema.js +18 -28
- package/dist/JBrowse1Connection/configSchema.js.map +1 -0
- package/dist/JBrowse1Connection/index.js +10 -22
- package/dist/JBrowse1Connection/index.js.map +1 -0
- package/dist/JBrowse1Connection/jb1ConfigLoad.js +387 -501
- package/dist/JBrowse1Connection/jb1ConfigLoad.js.map +1 -0
- package/dist/JBrowse1Connection/jb1ConfigParse.js +414 -435
- package/dist/JBrowse1Connection/jb1ConfigParse.js.map +1 -0
- package/dist/JBrowse1Connection/jb1ToJb2.js +405 -546
- package/dist/JBrowse1Connection/jb1ToJb2.js.map +1 -0
- package/dist/JBrowse1Connection/model.js +49 -57
- package/dist/JBrowse1Connection/model.js.map +1 -0
- package/dist/JBrowse1Connection/types.js +2 -4
- package/dist/JBrowse1Connection/types.js.map +1 -0
- package/dist/JBrowse1Connection/util.js +123 -130
- package/dist/JBrowse1Connection/util.js.map +1 -0
- package/dist/JBrowse1TextSeachAdapter/HttpMap.js +181 -326
- package/dist/JBrowse1TextSeachAdapter/HttpMap.js.map +1 -0
- package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js +164 -185
- package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js.map +1 -0
- package/dist/JBrowse1TextSeachAdapter/configSchema.js +20 -33
- package/dist/JBrowse1TextSeachAdapter/configSchema.js.map +1 -0
- package/dist/JBrowse1TextSeachAdapter/index.js +10 -22
- package/dist/JBrowse1TextSeachAdapter/index.js.map +1 -0
- package/dist/NCListAdapter/NCListAdapter.js +164 -224
- package/dist/NCListAdapter/NCListAdapter.js.map +1 -0
- package/dist/NCListAdapter/NCListFeature.js +68 -125
- package/dist/NCListAdapter/NCListFeature.js.map +1 -0
- package/dist/NCListAdapter/configSchema.js +17 -26
- package/dist/NCListAdapter/configSchema.js.map +1 -0
- package/dist/NCListAdapter/index.js +8 -14
- package/dist/NCListAdapter/index.js.map +1 -0
- package/dist/index.js +97 -116
- package/dist/index.js.map +1 -0
- package/esm/JBrowse1Connection/configSchema.d.ts +2 -0
- package/esm/JBrowse1Connection/configSchema.js +18 -0
- package/esm/JBrowse1Connection/configSchema.js.map +1 -0
- package/esm/JBrowse1Connection/index.d.ts +2 -0
- package/esm/JBrowse1Connection/index.js +3 -0
- package/esm/JBrowse1Connection/index.js.map +1 -0
- package/esm/JBrowse1Connection/jb1ConfigLoad.d.ts +36 -0
- package/esm/JBrowse1Connection/jb1ConfigLoad.js +281 -0
- package/esm/JBrowse1Connection/jb1ConfigLoad.js.map +1 -0
- package/esm/JBrowse1Connection/jb1ConfigParse.d.ts +11 -0
- package/esm/JBrowse1Connection/jb1ConfigParse.js +377 -0
- package/esm/JBrowse1Connection/jb1ConfigParse.js.map +1 -0
- package/esm/JBrowse1Connection/jb1ToJb2.d.ts +49 -0
- package/esm/JBrowse1Connection/jb1ToJb2.js +424 -0
- package/esm/JBrowse1Connection/jb1ToJb2.js.map +1 -0
- package/esm/JBrowse1Connection/model.d.ts +15 -0
- package/esm/JBrowse1Connection/model.js +44 -0
- package/esm/JBrowse1Connection/model.js.map +1 -0
- package/esm/JBrowse1Connection/types.d.ts +91 -0
- package/esm/JBrowse1Connection/types.js +2 -0
- package/esm/JBrowse1Connection/types.js.map +1 -0
- package/esm/JBrowse1Connection/util.d.ts +26 -0
- package/esm/JBrowse1Connection/util.js +136 -0
- package/esm/JBrowse1Connection/util.js.map +1 -0
- package/esm/JBrowse1TextSeachAdapter/HttpMap.d.ts +39 -0
- package/esm/JBrowse1TextSeachAdapter/HttpMap.js +89 -0
- package/esm/JBrowse1TextSeachAdapter/HttpMap.js.map +1 -0
- package/esm/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.d.ts +33 -0
- package/esm/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js +67 -0
- package/esm/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js.map +1 -0
- package/esm/JBrowse1TextSeachAdapter/configSchema.d.ts +2 -0
- package/esm/JBrowse1TextSeachAdapter/configSchema.js +20 -0
- package/esm/JBrowse1TextSeachAdapter/configSchema.js.map +1 -0
- package/esm/JBrowse1TextSeachAdapter/index.d.ts +2 -0
- package/esm/JBrowse1TextSeachAdapter/index.js +3 -0
- package/esm/JBrowse1TextSeachAdapter/index.js.map +1 -0
- package/esm/NCListAdapter/NCListAdapter.d.ts +31 -0
- package/esm/NCListAdapter/NCListAdapter.js +62 -0
- package/esm/NCListAdapter/NCListAdapter.js.map +1 -0
- package/esm/NCListAdapter/NCListFeature.d.ts +31 -0
- package/esm/NCListAdapter/NCListFeature.js +78 -0
- package/esm/NCListAdapter/NCListFeature.js.map +1 -0
- package/esm/NCListAdapter/configSchema.d.ts +2 -0
- package/esm/NCListAdapter/configSchema.js +16 -0
- package/esm/NCListAdapter/configSchema.js.map +1 -0
- package/esm/NCListAdapter/index.d.ts +1 -0
- package/esm/NCListAdapter/index.js +2 -0
- package/esm/NCListAdapter/index.js.map +1 -0
- package/esm/index.d.ts +6 -0
- package/esm/index.js +50 -0
- package/esm/index.js.map +1 -0
- package/package.json +15 -6
- package/dist/JBrowse1TextSeachAdapter/HttpMap.test.js +0 -118
- package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.test.js +0 -98
- package/dist/NCListAdapter/NCListAdapter.test.js +0 -108
- package/dist/declare.d.js +0 -1
- package/dist/index.test.js +0 -44
|
@@ -1,237 +1,177 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
26
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
|
-
var _nclist = _interopRequireDefault(require("@gmod/nclist"));
|
|
29
|
-
|
|
30
|
-
var _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
31
|
-
|
|
32
|
-
var _rxjs = require("@jbrowse/core/util/rxjs");
|
|
33
|
-
|
|
34
|
-
var _util = require("@jbrowse/core/util");
|
|
35
|
-
|
|
36
|
-
var _genericFilehandle = require("generic-filehandle");
|
|
37
|
-
|
|
38
|
-
var _configuration = require("@jbrowse/core/configuration");
|
|
39
|
-
|
|
40
|
-
var _NCListFeature = _interopRequireDefault(require("./NCListFeature"));
|
|
41
|
-
|
|
42
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
43
|
-
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
|
-
|
|
46
|
-
function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
47
|
-
|
|
48
|
-
function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
|
|
49
|
-
|
|
50
|
-
var NCListAdapter = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
|
|
51
|
-
(0, _inherits2.default)(NCListAdapter, _BaseFeatureDataAdapt);
|
|
52
|
-
|
|
53
|
-
var _super = _createSuper(NCListAdapter);
|
|
54
|
-
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
-
function NCListAdapter(config, getSubAdapter, pluginManager) {
|
|
57
|
-
var _this;
|
|
58
|
-
|
|
59
|
-
(0, _classCallCheck2.default)(this, NCListAdapter);
|
|
60
|
-
_this = _super.call(this, config, getSubAdapter, pluginManager);
|
|
61
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "nclist", void 0);
|
|
62
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "configRefNames", void 0);
|
|
63
|
-
var refNames = (0, _configuration.readConfObject)(config, 'refNames');
|
|
64
|
-
var rootUrlTemplate = (0, _configuration.readConfObject)(config, 'rootUrlTemplate');
|
|
65
|
-
_this.configRefNames = refNames;
|
|
66
|
-
_this.nclist = new _nclist.default({
|
|
67
|
-
baseUrl: '',
|
|
68
|
-
urlTemplate: rootUrlTemplate.uri,
|
|
69
|
-
readFile: function readFile(url) {
|
|
70
|
-
return new _genericFilehandle.RemoteFile(String(rootUrlTemplate.baseUri ? new URL(url, rootUrlTemplate.baseUri).toString() : url)).readFile();
|
|
71
|
-
}
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
72
24
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
96
|
-
while (1) {
|
|
97
|
-
switch (_context.prev = _context.next) {
|
|
98
|
-
case 0:
|
|
99
|
-
signal = opts.signal;
|
|
100
|
-
_iteratorAbruptCompletion = false;
|
|
101
|
-
_didIteratorError = false;
|
|
102
|
-
_context.prev = 3;
|
|
103
|
-
_iterator = _asyncIterator(_this2.nclist.getFeatures(region, opts));
|
|
104
|
-
|
|
105
|
-
case 5:
|
|
106
|
-
_context.next = 7;
|
|
107
|
-
return _iterator.next();
|
|
108
|
-
|
|
109
|
-
case 7:
|
|
110
|
-
if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
|
|
111
|
-
_context.next = 14;
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
feature = _step.value;
|
|
116
|
-
(0, _util.checkAbortSignal)(signal);
|
|
117
|
-
observer.next(_this2.wrapFeature(feature));
|
|
118
|
-
|
|
119
|
-
case 11:
|
|
120
|
-
_iteratorAbruptCompletion = false;
|
|
121
|
-
_context.next = 5;
|
|
122
|
-
break;
|
|
123
|
-
|
|
124
|
-
case 14:
|
|
125
|
-
_context.next = 20;
|
|
126
|
-
break;
|
|
127
|
-
|
|
128
|
-
case 16:
|
|
129
|
-
_context.prev = 16;
|
|
130
|
-
_context.t0 = _context["catch"](3);
|
|
131
|
-
_didIteratorError = true;
|
|
132
|
-
_iteratorError = _context.t0;
|
|
133
|
-
|
|
134
|
-
case 20:
|
|
135
|
-
_context.prev = 20;
|
|
136
|
-
_context.prev = 21;
|
|
137
|
-
|
|
138
|
-
if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
|
|
139
|
-
_context.next = 25;
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
_context.next = 25;
|
|
144
|
-
return _iterator.return();
|
|
145
|
-
|
|
146
|
-
case 25:
|
|
147
|
-
_context.prev = 25;
|
|
148
|
-
|
|
149
|
-
if (!_didIteratorError) {
|
|
150
|
-
_context.next = 28;
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
throw _iteratorError;
|
|
155
|
-
|
|
156
|
-
case 28:
|
|
157
|
-
return _context.finish(25);
|
|
158
|
-
|
|
159
|
-
case 29:
|
|
160
|
-
return _context.finish(20);
|
|
161
|
-
|
|
162
|
-
case 30:
|
|
163
|
-
observer.complete();
|
|
164
|
-
|
|
165
|
-
case 31:
|
|
166
|
-
case "end":
|
|
167
|
-
return _context.stop();
|
|
168
|
-
}
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (_) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
169
47
|
}
|
|
170
|
-
|
|
171
|
-
})
|
|
172
|
-
|
|
173
|
-
return function (_x) {
|
|
174
|
-
return _ref.apply(this, arguments);
|
|
175
|
-
};
|
|
176
|
-
}());
|
|
177
|
-
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
178
|
-
|
|
179
|
-
}, {
|
|
180
|
-
key: "wrapFeature",
|
|
181
|
-
value: function wrapFeature(ncFeature) {
|
|
182
|
-
return new _NCListFeature.default(ncFeature, undefined, "".concat(this.id, "-").concat(ncFeature.id()));
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
183
51
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
52
|
+
};
|
|
53
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
54
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
55
|
+
var m = o[Symbol.asyncIterator], i;
|
|
56
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
57
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
58
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
59
|
+
};
|
|
60
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
61
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
62
|
+
};
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
var nclist_1 = __importDefault(require("@gmod/nclist"));
|
|
65
|
+
var BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
66
|
+
var rxjs_1 = require("@jbrowse/core/util/rxjs");
|
|
67
|
+
var util_1 = require("@jbrowse/core/util");
|
|
68
|
+
var generic_filehandle_1 = require("generic-filehandle");
|
|
69
|
+
var configuration_1 = require("@jbrowse/core/configuration");
|
|
70
|
+
var NCListFeature_1 = __importDefault(require("./NCListFeature"));
|
|
71
|
+
var NCListAdapter = /** @class */ (function (_super) {
|
|
72
|
+
__extends(NCListAdapter, _super);
|
|
73
|
+
function NCListAdapter(config, getSubAdapter, pluginManager) {
|
|
74
|
+
var _this = _super.call(this, config, getSubAdapter, pluginManager) || this;
|
|
75
|
+
var refNames = (0, configuration_1.readConfObject)(config, 'refNames');
|
|
76
|
+
var rootUrlTemplate = (0, configuration_1.readConfObject)(config, 'rootUrlTemplate');
|
|
77
|
+
_this.configRefNames = refNames;
|
|
78
|
+
_this.nclist = new nclist_1.default({
|
|
79
|
+
baseUrl: '',
|
|
80
|
+
urlTemplate: rootUrlTemplate.uri,
|
|
81
|
+
readFile: function (url) {
|
|
82
|
+
return new generic_filehandle_1.RemoteFile(String(rootUrlTemplate.baseUri
|
|
83
|
+
? new URL(url, rootUrlTemplate.baseUri).toString()
|
|
84
|
+
: url)).readFile();
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
return _this;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Fetch features for a certain region. Use getFeaturesInRegion() if you also
|
|
91
|
+
* want to verify that the store has features for the given reference sequence
|
|
92
|
+
* before fetching.
|
|
93
|
+
* @param region -
|
|
94
|
+
* @param opts - [signal] optional signalling object for aborting the fetch
|
|
95
|
+
* @returns Observable of Feature objects in the region
|
|
96
|
+
*/
|
|
97
|
+
NCListAdapter.prototype.getFeatures = function (region, opts) {
|
|
98
|
+
var _this = this;
|
|
99
|
+
if (opts === void 0) { opts = {}; }
|
|
100
|
+
return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
|
|
101
|
+
var signal, _a, _b, feature, e_1_1;
|
|
102
|
+
var e_1, _c;
|
|
103
|
+
return __generator(this, function (_d) {
|
|
104
|
+
switch (_d.label) {
|
|
105
|
+
case 0:
|
|
106
|
+
signal = opts.signal;
|
|
107
|
+
_d.label = 1;
|
|
108
|
+
case 1:
|
|
109
|
+
_d.trys.push([1, 6, 7, 12]);
|
|
110
|
+
_a = __asyncValues(this.nclist.getFeatures(region, opts));
|
|
111
|
+
_d.label = 2;
|
|
112
|
+
case 2: return [4 /*yield*/, _a.next()];
|
|
113
|
+
case 3:
|
|
114
|
+
if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 5];
|
|
115
|
+
feature = _b.value;
|
|
116
|
+
(0, util_1.checkAbortSignal)(signal);
|
|
117
|
+
observer.next(this.wrapFeature(feature));
|
|
118
|
+
_d.label = 4;
|
|
119
|
+
case 4: return [3 /*break*/, 2];
|
|
120
|
+
case 5: return [3 /*break*/, 12];
|
|
121
|
+
case 6:
|
|
122
|
+
e_1_1 = _d.sent();
|
|
123
|
+
e_1 = { error: e_1_1 };
|
|
124
|
+
return [3 /*break*/, 12];
|
|
125
|
+
case 7:
|
|
126
|
+
_d.trys.push([7, , 10, 11]);
|
|
127
|
+
if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 9];
|
|
128
|
+
return [4 /*yield*/, _c.call(_a)];
|
|
129
|
+
case 8:
|
|
130
|
+
_d.sent();
|
|
131
|
+
_d.label = 9;
|
|
132
|
+
case 9: return [3 /*break*/, 11];
|
|
133
|
+
case 10:
|
|
134
|
+
if (e_1) throw e_1.error;
|
|
135
|
+
return [7 /*endfinally*/];
|
|
136
|
+
case 11: return [7 /*endfinally*/];
|
|
137
|
+
case 12:
|
|
138
|
+
observer.complete();
|
|
139
|
+
return [2 /*return*/];
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}); });
|
|
143
|
+
};
|
|
144
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
145
|
+
NCListAdapter.prototype.wrapFeature = function (ncFeature) {
|
|
146
|
+
return new NCListFeature_1.default(ncFeature, undefined, "".concat(this.id, "-").concat(ncFeature.id()));
|
|
147
|
+
};
|
|
148
|
+
NCListAdapter.prototype.hasDataForRefName = function (refName) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
+
var root;
|
|
151
|
+
return __generator(this, function (_a) {
|
|
152
|
+
switch (_a.label) {
|
|
153
|
+
case 0: return [4 /*yield*/, this.nclist.getDataRoot(refName)];
|
|
154
|
+
case 1:
|
|
155
|
+
root = _a.sent();
|
|
156
|
+
return [2 /*return*/, !!(root && root.stats && root.stats.featureCount)];
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
};
|
|
214
161
|
/*
|
|
215
162
|
* NCList is unable to get list of ref names so returns empty
|
|
216
163
|
* @return Promise<string[]> of empty list
|
|
217
164
|
*/
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
value: function getRefNames() {
|
|
222
|
-
return Promise.resolve(this.configRefNames || []);
|
|
223
|
-
}
|
|
165
|
+
NCListAdapter.prototype.getRefNames = function () {
|
|
166
|
+
return Promise.resolve(this.configRefNames || []);
|
|
167
|
+
};
|
|
224
168
|
/**
|
|
225
169
|
* called to provide a hint that data tied to a certain region
|
|
226
170
|
* will not be needed for the forseeable future and can be purged
|
|
227
171
|
* from caches, etc
|
|
228
172
|
*/
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
return NCListAdapter;
|
|
235
|
-
}(_BaseAdapter.BaseFeatureDataAdapter);
|
|
236
|
-
|
|
237
|
-
exports.default = NCListAdapter;
|
|
173
|
+
NCListAdapter.prototype.freeResources = function () { };
|
|
174
|
+
return NCListAdapter;
|
|
175
|
+
}(BaseAdapter_1.BaseFeatureDataAdapter));
|
|
176
|
+
exports.default = NCListAdapter;
|
|
177
|
+
//# sourceMappingURL=NCListAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NCListAdapter.js","sourceRoot":"","sources":["../../src/NCListAdapter/NCListAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAsC;AAEtC,uEAGgD;AAEhD,gDAA0D;AAC1D,2CAAqD;AACrD,yDAA+C;AAE/C,6DAA4D;AAC5D,kEAA2C;AAK3C;IAA2C,iCAAsB;IAM/D,uBACE,MAAuC,EACvC,aAAiC,EACjC,aAA6B;QAH/B,YAKE,kBAAM,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,SAiB5C;QAhBC,IAAM,QAAQ,GAAG,IAAA,8BAAc,EAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACnD,IAAM,eAAe,GAAG,IAAA,8BAAc,EAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;QACjE,KAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAE9B,KAAI,CAAC,MAAM,GAAG,IAAI,gBAAW,CAAC;YAC5B,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,eAAe,CAAC,GAAG;YAChC,QAAQ,EAAE,UAAC,GAAW;gBACpB,OAAA,IAAI,+BAAU,CACZ,MAAM,CACJ,eAAe,CAAC,OAAO;oBACrB,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;oBAClD,CAAC,CAAC,GAAG,CACR,CACF,CAAC,QAAQ,EAAE;YANZ,CAMY;SACf,CAAC,CAAA;;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,mCAAW,GAAX,UAAY,MAAc,EAAE,IAAsB;QAAlD,iBASC;QAT2B,qBAAA,EAAA,SAAsB;QAChD,OAAO,IAAA,uBAAgB,EAAU,UAAM,QAAQ;;;;;;wBACrC,MAAM,GAAK,IAAI,OAAT,CAAS;;;;wBACK,KAAA,cAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;;;;;wBAAhD,OAAO,WAAA,CAAA;wBACtB,IAAA,uBAAgB,EAAC,MAAM,CAAC,CAAA;wBACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;wBAE1C,QAAQ,CAAC,QAAQ,EAAE,CAAA;;;;aACpB,CAAC,CAAA;IACJ,CAAC;IAED,8DAA8D;IAC9D,mCAAW,GAAX,UAAY,SAAc;QACxB,OAAO,IAAI,uBAAa,CACtB,SAAS,EACT,SAAS,EACT,UAAG,IAAI,CAAC,EAAE,cAAI,SAAS,CAAC,EAAE,EAAE,CAAE,CAC/B,CAAA;IACH,CAAC;IAEK,yCAAiB,GAAvB,UAAwB,OAAe;;;;;4BACxB,qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAA;;wBAA7C,IAAI,GAAG,SAAsC;wBACnD,sBAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAA;;;;KACzD;IAED;;;OAGG;IACH,mCAAW,GAAX;QACE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,qCAAa,GAAb,cAAiB,CAAC;IACpB,oBAAC;AAAD,CAAC,AA7ED,CAA2C,oCAAsB,GA6EhE"}
|
|
@@ -1,142 +1,85 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
|
-
var jb2ToJb1 = {
|
|
17
|
-
refName: 'seq_id'
|
|
18
|
-
};
|
|
19
|
-
var jb1ToJb2 = {
|
|
20
|
-
seq_id: 'refName'
|
|
21
|
-
};
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var jb2ToJb1 = { refName: 'seq_id' };
|
|
4
|
+
var jb1ToJb2 = { seq_id: 'refName' };
|
|
22
5
|
/**
|
|
23
6
|
* wrapper to adapt nclist features to act like jbrowse 2 features
|
|
24
7
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
(0, _defineProperty2.default)(this, "parentHandle", void 0);
|
|
32
|
-
(0, _defineProperty2.default)(this, "uniqueId", void 0);
|
|
33
|
-
this.uniqueId = id || ncFeature.id();
|
|
34
|
-
this.parentHandle = parent;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
(0, _createClass2.default)(NCListFeature, [{
|
|
38
|
-
key: "set",
|
|
39
|
-
value: function set() {
|
|
40
|
-
throw new Error('not implemented');
|
|
41
|
-
}
|
|
42
|
-
}, {
|
|
43
|
-
key: "jb2TagToJb1Tag",
|
|
44
|
-
value: function jb2TagToJb1Tag(tag) {
|
|
45
|
-
// @ts-ignore
|
|
46
|
-
var mapped = jb2ToJb1[tag] || tag;
|
|
47
|
-
return mapped.toLowerCase();
|
|
48
|
-
}
|
|
49
|
-
}, {
|
|
50
|
-
key: "jb1TagToJb2Tag",
|
|
51
|
-
value: function jb1TagToJb2Tag(tag) {
|
|
52
|
-
var t = tag.toLowerCase(); // @ts-ignore
|
|
53
|
-
|
|
54
|
-
var mapped = jb1ToJb2[t] || t;
|
|
55
|
-
return mapped;
|
|
56
|
-
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
-
|
|
58
|
-
}, {
|
|
59
|
-
key: "get",
|
|
60
|
-
value: function get(attrName) {
|
|
61
|
-
var _this = this;
|
|
62
|
-
|
|
63
|
-
var attr = this.ncFeature.get(this.jb2TagToJb1Tag(attrName));
|
|
64
|
-
|
|
65
|
-
if (attr && attrName === 'subfeatures') {
|
|
66
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
-
return attr.map(function (subfeature) {
|
|
68
|
-
return new NCListFeature(subfeature, _this);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return attr;
|
|
8
|
+
var NCListFeature = /** @class */ (function () {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
function NCListFeature(ncFeature, parent, id) {
|
|
11
|
+
this.ncFeature = ncFeature;
|
|
12
|
+
this.uniqueId = id || ncFeature.id();
|
|
13
|
+
this.parentHandle = parent;
|
|
73
14
|
}
|
|
15
|
+
NCListFeature.prototype.set = function () {
|
|
16
|
+
throw new Error('not implemented');
|
|
17
|
+
};
|
|
18
|
+
NCListFeature.prototype.jb2TagToJb1Tag = function (tag) {
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
var mapped = jb2ToJb1[tag] || tag;
|
|
21
|
+
return mapped.toLowerCase();
|
|
22
|
+
};
|
|
23
|
+
NCListFeature.prototype.jb1TagToJb2Tag = function (tag) {
|
|
24
|
+
var t = tag.toLowerCase();
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
var mapped = jb1ToJb2[t] || t;
|
|
27
|
+
return mapped;
|
|
28
|
+
};
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
NCListFeature.prototype.get = function (attrName) {
|
|
31
|
+
var _this = this;
|
|
32
|
+
var attr = this.ncFeature.get(this.jb2TagToJb1Tag(attrName));
|
|
33
|
+
if (attr && attrName === 'subfeatures') {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
|
+
return attr.map(function (subfeature) { return new NCListFeature(subfeature, _this); });
|
|
36
|
+
}
|
|
37
|
+
return attr;
|
|
38
|
+
};
|
|
74
39
|
/**
|
|
75
40
|
* Get an array listing which data keys are present in this feature.
|
|
76
41
|
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var _this2 = this;
|
|
82
|
-
|
|
83
|
-
return this.ncFeature.tags().map(function (t) {
|
|
84
|
-
return _this2.jb1TagToJb2Tag(t);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
42
|
+
NCListFeature.prototype.tags = function () {
|
|
43
|
+
var _this = this;
|
|
44
|
+
return this.ncFeature.tags().map(function (t) { return _this.jb1TagToJb2Tag(t); });
|
|
45
|
+
};
|
|
87
46
|
/**
|
|
88
47
|
* Get the unique ID of this feature.
|
|
89
48
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
value: function id() {
|
|
94
|
-
return this.uniqueId;
|
|
95
|
-
}
|
|
49
|
+
NCListFeature.prototype.id = function () {
|
|
50
|
+
return this.uniqueId;
|
|
51
|
+
};
|
|
96
52
|
/**
|
|
97
53
|
* Get this feature's parent feature, or undefined if none.
|
|
98
54
|
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
value: function parent() {
|
|
103
|
-
return this.parentHandle;
|
|
104
|
-
}
|
|
55
|
+
NCListFeature.prototype.parent = function () {
|
|
56
|
+
return this.parentHandle;
|
|
57
|
+
};
|
|
105
58
|
/**
|
|
106
59
|
* Get an array of child features, or undefined if none.
|
|
107
60
|
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
data[mappedTag] = value;
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
return data;
|
|
137
|
-
}
|
|
138
|
-
}]);
|
|
139
|
-
return NCListFeature;
|
|
140
|
-
}();
|
|
141
|
-
|
|
142
|
-
exports.default = NCListFeature;
|
|
61
|
+
NCListFeature.prototype.children = function () {
|
|
62
|
+
return this.get('subfeatures');
|
|
63
|
+
};
|
|
64
|
+
NCListFeature.prototype.toJSON = function () {
|
|
65
|
+
var _this = this;
|
|
66
|
+
var data = { uniqueId: this.id() };
|
|
67
|
+
this.ncFeature.tags().forEach(function (tag) {
|
|
68
|
+
var mappedTag = _this.jb1TagToJb2Tag(tag);
|
|
69
|
+
var value = _this.ncFeature.get(tag);
|
|
70
|
+
if (mappedTag === 'subfeatures') {
|
|
71
|
+
data.subfeatures = (value || []).map(function (f) {
|
|
72
|
+
// note: was new NCListFeature(f, `${this.id()}-${i}`, this).toJSON()
|
|
73
|
+
return new NCListFeature(f, _this).toJSON();
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
data[mappedTag] = value;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return data;
|
|
81
|
+
};
|
|
82
|
+
return NCListFeature;
|
|
83
|
+
}());
|
|
84
|
+
exports.default = NCListFeature;
|
|
85
|
+
//# sourceMappingURL=NCListFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NCListFeature.js","sourceRoot":"","sources":["../../src/NCListAdapter/NCListFeature.ts"],"names":[],"mappings":"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"}
|