@jbrowse/plugin-legacy-jbrowse 1.7.0 → 1.7.4
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.d.ts +2 -2
- package/dist/JBrowse1Connection/configSchema.js +2 -2
- package/dist/JBrowse1Connection/index.d.ts +2 -2
- package/dist/JBrowse1Connection/index.js +2 -2
- package/dist/JBrowse1Connection/jb1ConfigLoad.d.ts +36 -36
- package/dist/JBrowse1Connection/jb1ConfigLoad.js +16 -16
- package/dist/JBrowse1Connection/jb1ConfigParse.d.ts +11 -11
- package/dist/JBrowse1Connection/jb1ConfigParse.js +6 -6
- package/dist/JBrowse1Connection/jb1ToJb2.d.ts +47 -47
- package/dist/JBrowse1Connection/jb1ToJb2.js +3 -3
- package/dist/JBrowse1Connection/model.d.ts +15 -4
- package/dist/JBrowse1Connection/model.js +3 -3
- package/dist/JBrowse1Connection/types.d.ts +91 -91
- package/dist/JBrowse1Connection/util.d.ts +26 -26
- package/dist/JBrowse1Connection/util.js +3 -3
- package/dist/JBrowse1TextSeachAdapter/HttpMap.d.ts +39 -39
- package/dist/JBrowse1TextSeachAdapter/HttpMap.js +22 -22
- package/dist/JBrowse1TextSeachAdapter/HttpMap.test.js +12 -12
- package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.d.ts +33 -33
- package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js +18 -18
- package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.test.js +9 -9
- package/dist/JBrowse1TextSeachAdapter/configSchema.d.ts +2 -2
- package/dist/JBrowse1TextSeachAdapter/configSchema.js +2 -2
- package/dist/JBrowse1TextSeachAdapter/index.d.ts +2 -2
- package/dist/JBrowse1TextSeachAdapter/index.js +2 -2
- package/dist/NCListAdapter/NCListAdapter.d.ts +31 -31
- package/dist/NCListAdapter/NCListAdapter.js +17 -17
- package/dist/NCListAdapter/NCListAdapter.test.js +5 -5
- package/dist/NCListAdapter/NCListFeature.d.ts +31 -31
- package/dist/NCListAdapter/NCListFeature.js +6 -6
- package/dist/NCListAdapter/configSchema.d.ts +2 -2
- package/dist/NCListAdapter/configSchema.js +2 -2
- package/dist/NCListAdapter/index.d.ts +1 -1
- package/dist/NCListAdapter/index.js +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +13 -13
- package/dist/index.test.js +3 -3
- package/package.json +5 -3
- package/dist/index.test.d.ts +0 -1
- package/dist/plugin-legacy-jbrowse.cjs.development.js +0 -3567
- package/dist/plugin-legacy-jbrowse.cjs.development.js.map +0 -1
- package/dist/plugin-legacy-jbrowse.cjs.production.min.js +0 -2
- package/dist/plugin-legacy-jbrowse.cjs.production.min.js.map +0 -1
- package/dist/plugin-legacy-jbrowse.esm.js +0 -3561
- package/dist/plugin-legacy-jbrowse.esm.js.map +0 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { Track, Source } from './types';
|
|
2
|
-
export declare function isTrack(arg: any): arg is Track;
|
|
3
|
-
export declare function isSource(arg: any): arg is Source;
|
|
4
|
-
/**
|
|
5
|
-
* updates a with values from b, recursively
|
|
6
|
-
*/
|
|
7
|
-
declare type Obj = Record<string, any>;
|
|
8
|
-
export declare function deepUpdate(a: Obj, b: Obj): Obj;
|
|
9
|
-
/**
|
|
10
|
-
* replace variables in a template string with values
|
|
11
|
-
* @param template - String with variable names in curly brackets
|
|
12
|
-
* e.g., `http://foo/{bar}?arg={baz.foo}`
|
|
13
|
-
* @param fillWith - object with attribute-value mappings
|
|
14
|
-
* e.g., `{ 'bar': 'someurl', 'baz': { 'foo': 42 } }`
|
|
15
|
-
* @returns the template string with variables in fillWith replaced
|
|
16
|
-
* e.g., 'htp://foo/someurl?arg=valueforbaz'
|
|
17
|
-
*/
|
|
18
|
-
export declare function fillTemplate(template: string, fillWith: Obj): string;
|
|
19
|
-
/**
|
|
20
|
-
* Clones objects (including DOM nodes) and all children.
|
|
21
|
-
* Warning: do not clone cyclic structures
|
|
22
|
-
* (Lifted from dojo https://github.com/dojo/dojo/blob/master/_base/lang.js)
|
|
23
|
-
* @param src - The object to clone
|
|
24
|
-
*/
|
|
25
|
-
export declare function clone(src: any): any;
|
|
26
|
-
export {};
|
|
1
|
+
import { Track, Source } from './types';
|
|
2
|
+
export declare function isTrack(arg: any): arg is Track;
|
|
3
|
+
export declare function isSource(arg: any): arg is Source;
|
|
4
|
+
/**
|
|
5
|
+
* updates a with values from b, recursively
|
|
6
|
+
*/
|
|
7
|
+
declare type Obj = Record<string, any>;
|
|
8
|
+
export declare function deepUpdate(a: Obj, b: Obj): Obj;
|
|
9
|
+
/**
|
|
10
|
+
* replace variables in a template string with values
|
|
11
|
+
* @param template - String with variable names in curly brackets
|
|
12
|
+
* e.g., `http://foo/{bar}?arg={baz.foo}`
|
|
13
|
+
* @param fillWith - object with attribute-value mappings
|
|
14
|
+
* e.g., `{ 'bar': 'someurl', 'baz': { 'foo': 42 } }`
|
|
15
|
+
* @returns the template string with variables in fillWith replaced
|
|
16
|
+
* e.g., 'htp://foo/someurl?arg=valueforbaz'
|
|
17
|
+
*/
|
|
18
|
+
export declare function fillTemplate(template: string, fillWith: Obj): string;
|
|
19
|
+
/**
|
|
20
|
+
* Clones objects (including DOM nodes) and all children.
|
|
21
|
+
* Warning: do not clone cyclic structures
|
|
22
|
+
* (Lifted from dojo https://github.com/dojo/dojo/blob/master/_base/lang.js)
|
|
23
|
+
* @param src - The object to clone
|
|
24
|
+
*/
|
|
25
|
+
export declare function clone(src: any): any;
|
|
26
|
+
export {};
|
|
@@ -34,7 +34,7 @@ function deepUpdate(a, b) {
|
|
|
34
34
|
for (var _i = 0, _Object$keys = Object.keys(b); _i < _Object$keys.length; _i++) {
|
|
35
35
|
var prop = _Object$keys[_i];
|
|
36
36
|
|
|
37
|
-
if (prop in a && (0, _typeof2
|
|
37
|
+
if (prop in a && (0, _typeof2.default)(b[prop]) === 'object' && (0, _typeof2.default)(a[prop]) === 'object') {
|
|
38
38
|
deepUpdate(a[prop], b[prop]);
|
|
39
39
|
} else if (typeof a[prop] === 'undefined' || typeof b[prop] !== 'undefined') {
|
|
40
40
|
a[prop] = b[prop];
|
|
@@ -60,7 +60,7 @@ function fillTemplate(template, fillWith) {
|
|
|
60
60
|
return template.replace(/\{([\w\s.]+)\}/g, function (match, varName) {
|
|
61
61
|
varName = varName.replace(/\s+/g, ''); // remove all whitespace
|
|
62
62
|
|
|
63
|
-
var fill = (0, _getValue
|
|
63
|
+
var fill = (0, _getValue.default)(fillWith, varName);
|
|
64
64
|
|
|
65
65
|
if (fill !== undefined) {
|
|
66
66
|
if (typeof fill === 'function') {
|
|
@@ -92,7 +92,7 @@ function fillTemplate(template, fillWith) {
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
function clone(src) {
|
|
95
|
-
if (!src || (0, _typeof2
|
|
95
|
+
if (!src || (0, _typeof2.default)(src) !== 'object' || Object.prototype.toString.call(src) === '[object Function]') {
|
|
96
96
|
// null, undefined, any non-object, or function
|
|
97
97
|
return src; // anything
|
|
98
98
|
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
export default class HttpMap {
|
|
2
|
-
url: string;
|
|
3
|
-
constructor(args: {
|
|
4
|
-
url: string;
|
|
5
|
-
});
|
|
6
|
-
/**
|
|
7
|
-
* loads meta.json file from names directory and reads number of hash_bits used
|
|
8
|
-
*/
|
|
9
|
-
readMeta(): Promise<{
|
|
10
|
-
hashHexCharacters: number;
|
|
11
|
-
compress: any;
|
|
12
|
-
tracks: any;
|
|
13
|
-
}>;
|
|
14
|
-
getHashHexCharacters(): Promise<number>;
|
|
15
|
-
getCompress(): Promise<any>;
|
|
16
|
-
getTrackNames(): Promise<any>;
|
|
17
|
-
/**
|
|
18
|
-
* Returns contents of a bucket given a key
|
|
19
|
-
* @param key - string
|
|
20
|
-
*/
|
|
21
|
-
get(key: string): Promise<any>;
|
|
22
|
-
/**
|
|
23
|
-
* Returns a bucket given a key
|
|
24
|
-
* @param key - string
|
|
25
|
-
*/
|
|
26
|
-
getBucket(key: string): Promise<any>;
|
|
27
|
-
/**
|
|
28
|
-
* Loads a file using the url and provided id.
|
|
29
|
-
* Returns response object with contents of the file
|
|
30
|
-
* @param id - string
|
|
31
|
-
*/
|
|
32
|
-
loadFile(id: string): Promise<any>;
|
|
33
|
-
/**
|
|
34
|
-
* Returns the corresponding path of the file given a hex string
|
|
35
|
-
* @param hex - hex string
|
|
36
|
-
*/
|
|
37
|
-
hexToDirPath(hex: string): Promise<string>;
|
|
38
|
-
hash(data: string): string;
|
|
39
|
-
}
|
|
1
|
+
export default class HttpMap {
|
|
2
|
+
url: string;
|
|
3
|
+
constructor(args: {
|
|
4
|
+
url: string;
|
|
5
|
+
});
|
|
6
|
+
/**
|
|
7
|
+
* loads meta.json file from names directory and reads number of hash_bits used
|
|
8
|
+
*/
|
|
9
|
+
readMeta(): Promise<{
|
|
10
|
+
hashHexCharacters: number;
|
|
11
|
+
compress: any;
|
|
12
|
+
tracks: any;
|
|
13
|
+
}>;
|
|
14
|
+
getHashHexCharacters(): Promise<number>;
|
|
15
|
+
getCompress(): Promise<any>;
|
|
16
|
+
getTrackNames(): Promise<any>;
|
|
17
|
+
/**
|
|
18
|
+
* Returns contents of a bucket given a key
|
|
19
|
+
* @param key - string
|
|
20
|
+
*/
|
|
21
|
+
get(key: string): Promise<any>;
|
|
22
|
+
/**
|
|
23
|
+
* Returns a bucket given a key
|
|
24
|
+
* @param key - string
|
|
25
|
+
*/
|
|
26
|
+
getBucket(key: string): Promise<any>;
|
|
27
|
+
/**
|
|
28
|
+
* Loads a file using the url and provided id.
|
|
29
|
+
* Returns response object with contents of the file
|
|
30
|
+
* @param id - string
|
|
31
|
+
*/
|
|
32
|
+
loadFile(id: string): Promise<any>;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the corresponding path of the file given a hex string
|
|
35
|
+
* @param hex - hex string
|
|
36
|
+
*/
|
|
37
|
+
hexToDirPath(hex: string): Promise<string>;
|
|
38
|
+
hash(data: string): string;
|
|
39
|
+
}
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
@@ -25,8 +25,8 @@ var _bufferCrc = _interopRequireDefault(require("buffer-crc32"));
|
|
|
25
25
|
*/
|
|
26
26
|
var HttpMap = /*#__PURE__*/function () {
|
|
27
27
|
function HttpMap(args) {
|
|
28
|
-
(0, _classCallCheck2
|
|
29
|
-
(0, _defineProperty2
|
|
28
|
+
(0, _classCallCheck2.default)(this, HttpMap);
|
|
29
|
+
(0, _defineProperty2.default)(this, "url", void 0);
|
|
30
30
|
// make sure url has a trailing slash
|
|
31
31
|
this.url = /\/$/.test(args.url) ? args.url : "".concat(args.url, "/");
|
|
32
32
|
}
|
|
@@ -35,12 +35,12 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
35
35
|
*/
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
(0, _createClass2
|
|
38
|
+
(0, _createClass2.default)(HttpMap, [{
|
|
39
39
|
key: "readMeta",
|
|
40
40
|
value: function () {
|
|
41
|
-
var _readMeta = (0, _asyncToGenerator2
|
|
41
|
+
var _readMeta = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
42
42
|
var meta, compress, tracks, hashHexCharacters;
|
|
43
|
-
return _regenerator
|
|
43
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
44
44
|
while (1) {
|
|
45
45
|
switch (_context.prev = _context.next) {
|
|
46
46
|
case 0:
|
|
@@ -74,9 +74,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
74
74
|
}, {
|
|
75
75
|
key: "getHashHexCharacters",
|
|
76
76
|
value: function () {
|
|
77
|
-
var _getHashHexCharacters = (0, _asyncToGenerator2
|
|
77
|
+
var _getHashHexCharacters = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
78
78
|
var meta;
|
|
79
|
-
return _regenerator
|
|
79
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
80
80
|
while (1) {
|
|
81
81
|
switch (_context2.prev = _context2.next) {
|
|
82
82
|
case 0:
|
|
@@ -104,9 +104,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
104
104
|
}, {
|
|
105
105
|
key: "getCompress",
|
|
106
106
|
value: function () {
|
|
107
|
-
var _getCompress = (0, _asyncToGenerator2
|
|
107
|
+
var _getCompress = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
108
108
|
var meta;
|
|
109
|
-
return _regenerator
|
|
109
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
110
110
|
while (1) {
|
|
111
111
|
switch (_context3.prev = _context3.next) {
|
|
112
112
|
case 0:
|
|
@@ -134,9 +134,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
134
134
|
}, {
|
|
135
135
|
key: "getTrackNames",
|
|
136
136
|
value: function () {
|
|
137
|
-
var _getTrackNames = (0, _asyncToGenerator2
|
|
137
|
+
var _getTrackNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
138
138
|
var meta;
|
|
139
|
-
return _regenerator
|
|
139
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
140
140
|
while (1) {
|
|
141
141
|
switch (_context4.prev = _context4.next) {
|
|
142
142
|
case 0:
|
|
@@ -169,9 +169,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
169
169
|
}, {
|
|
170
170
|
key: "get",
|
|
171
171
|
value: function () {
|
|
172
|
-
var _get = (0, _asyncToGenerator2
|
|
172
|
+
var _get = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(key) {
|
|
173
173
|
var bucket;
|
|
174
|
-
return _regenerator
|
|
174
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
175
175
|
while (1) {
|
|
176
176
|
switch (_context5.prev = _context5.next) {
|
|
177
177
|
case 0:
|
|
@@ -204,9 +204,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
204
204
|
}, {
|
|
205
205
|
key: "getBucket",
|
|
206
206
|
value: function () {
|
|
207
|
-
var _getBucket = (0, _asyncToGenerator2
|
|
207
|
+
var _getBucket = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(key) {
|
|
208
208
|
var bucketIdent, hexToDirPath;
|
|
209
|
-
return _regenerator
|
|
209
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
210
210
|
while (1) {
|
|
211
211
|
switch (_context6.prev = _context6.next) {
|
|
212
212
|
case 0:
|
|
@@ -241,9 +241,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
241
241
|
}, {
|
|
242
242
|
key: "loadFile",
|
|
243
243
|
value: function () {
|
|
244
|
-
var _loadFile = (0, _asyncToGenerator2
|
|
244
|
+
var _loadFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(id) {
|
|
245
245
|
var response;
|
|
246
|
-
return _regenerator
|
|
246
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
247
247
|
while (1) {
|
|
248
248
|
switch (_context7.prev = _context7.next) {
|
|
249
249
|
case 0:
|
|
@@ -285,9 +285,9 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
285
285
|
}, {
|
|
286
286
|
key: "hexToDirPath",
|
|
287
287
|
value: function () {
|
|
288
|
-
var _hexToDirPath = (0, _asyncToGenerator2
|
|
288
|
+
var _hexToDirPath = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(hex) {
|
|
289
289
|
var hashHexCharacters, compress, dirpath, i;
|
|
290
|
-
return _regenerator
|
|
290
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
291
291
|
while (1) {
|
|
292
292
|
switch (_context8.prev = _context8.next) {
|
|
293
293
|
case 0:
|
|
@@ -341,10 +341,10 @@ var HttpMap = /*#__PURE__*/function () {
|
|
|
341
341
|
}, {
|
|
342
342
|
key: "hash",
|
|
343
343
|
value: function hash(data) {
|
|
344
|
-
return (0, _bufferCrc
|
|
344
|
+
return (0, _bufferCrc.default)(Buffer.from(data)).toString('hex').toLowerCase().replace('-', 'n');
|
|
345
345
|
}
|
|
346
346
|
}]);
|
|
347
347
|
return HttpMap;
|
|
348
348
|
}();
|
|
349
349
|
|
|
350
|
-
exports
|
|
350
|
+
exports.default = HttpMap;
|
|
@@ -17,9 +17,9 @@ var _f = _interopRequireDefault(require("../../test_data/names/f.json"));
|
|
|
17
17
|
var _HttpMap = _interopRequireDefault(require("./HttpMap"));
|
|
18
18
|
|
|
19
19
|
describe('test JBrowse1 hash implementation', function () {
|
|
20
|
-
test('read from meta', /*#__PURE__*/(0, _asyncToGenerator2
|
|
20
|
+
test('read from meta', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
21
21
|
var mockFetch, rootTemplate, spy, hashMap;
|
|
22
|
-
return _regenerator
|
|
22
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
23
23
|
while (1) {
|
|
24
24
|
switch (_context.prev = _context.next) {
|
|
25
25
|
case 0:
|
|
@@ -27,17 +27,17 @@ describe('test JBrowse1 hash implementation', function () {
|
|
|
27
27
|
var response = {};
|
|
28
28
|
|
|
29
29
|
if (url.includes('names/meta.json')) {
|
|
30
|
-
response = _meta
|
|
30
|
+
response = _meta.default;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
return Promise.resolve(new Response(JSON.stringify(response)));
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
rootTemplate = _path
|
|
36
|
+
rootTemplate = _path.default.join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
|
|
37
37
|
spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
38
|
|
|
39
39
|
spy.mockImplementation(mockFetch);
|
|
40
|
-
hashMap = new _HttpMap
|
|
40
|
+
hashMap = new _HttpMap.default({
|
|
41
41
|
url: rootTemplate
|
|
42
42
|
});
|
|
43
43
|
_context.next = 7;
|
|
@@ -66,9 +66,9 @@ describe('test JBrowse1 hash implementation', function () {
|
|
|
66
66
|
}
|
|
67
67
|
}, _callee);
|
|
68
68
|
})));
|
|
69
|
-
test('get bucket contents', /*#__PURE__*/(0, _asyncToGenerator2
|
|
69
|
+
test('get bucket contents', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
70
70
|
var mockFetch, rootTemplate, spy, hashMap;
|
|
71
|
-
return _regenerator
|
|
71
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
72
72
|
while (1) {
|
|
73
73
|
switch (_context2.prev = _context2.next) {
|
|
74
74
|
case 0:
|
|
@@ -76,25 +76,25 @@ describe('test JBrowse1 hash implementation', function () {
|
|
|
76
76
|
var response = {};
|
|
77
77
|
|
|
78
78
|
if (url.includes('names/meta.json')) {
|
|
79
|
-
response = _meta
|
|
79
|
+
response = _meta.default;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
if (url.includes('names/0.json')) {
|
|
83
|
-
response = _
|
|
83
|
+
response = _.default;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
if (url.includes('names/f.json')) {
|
|
87
|
-
response = _f
|
|
87
|
+
response = _f.default;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
return Promise.resolve(new Response(JSON.stringify(response)));
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
rootTemplate = _path
|
|
93
|
+
rootTemplate = _path.default.join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
|
|
94
94
|
spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
95
|
|
|
96
96
|
spy.mockImplementation(mockFetch);
|
|
97
|
-
hashMap = new _HttpMap
|
|
97
|
+
hashMap = new _HttpMap.default({
|
|
98
98
|
url: rootTemplate
|
|
99
99
|
});
|
|
100
100
|
_context2.next = 7;
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { BaseTextSearchAdapter, BaseArgs, BaseAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
-
import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
|
|
3
|
-
import { Instance } from 'mobx-state-tree';
|
|
4
|
-
import MyConfigSchema from './configSchema';
|
|
5
|
-
import HttpMap from './HttpMap';
|
|
6
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
7
|
-
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
|
|
8
|
-
export interface TooManyHits {
|
|
9
|
-
name: string;
|
|
10
|
-
hitLimit: number;
|
|
11
|
-
}
|
|
12
|
-
interface SearchResults {
|
|
13
|
-
prefix: ({
|
|
14
|
-
name: string;
|
|
15
|
-
} | string)[];
|
|
16
|
-
exact: [string, number, string, string, number, number][];
|
|
17
|
-
}
|
|
18
|
-
export declare type NamesIndexRecord = string | Array<string | number>;
|
|
19
|
-
export default class JBrowse1TextSearchAdapter extends BaseAdapter implements BaseTextSearchAdapter {
|
|
20
|
-
httpMap: HttpMap;
|
|
21
|
-
tracksNames?: string[];
|
|
22
|
-
constructor(config: Instance<typeof MyConfigSchema>, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
|
|
23
|
-
/**
|
|
24
|
-
* Returns the contents of the file containing the query if it exists
|
|
25
|
-
* else it returns empty
|
|
26
|
-
* @param query - string query
|
|
27
|
-
*/
|
|
28
|
-
loadIndexFile(query: string): Promise<Record<string, SearchResults>>;
|
|
29
|
-
searchIndex(args: BaseArgs): Promise<BaseResult[]>;
|
|
30
|
-
formatResults(results: SearchResults, tracks: string[], searchType?: string): BaseResult[];
|
|
31
|
-
freeResources(): void;
|
|
32
|
-
}
|
|
33
|
-
export {};
|
|
1
|
+
import { BaseTextSearchAdapter, BaseArgs, BaseAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
|
|
3
|
+
import { Instance } from 'mobx-state-tree';
|
|
4
|
+
import MyConfigSchema from './configSchema';
|
|
5
|
+
import HttpMap from './HttpMap';
|
|
6
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
7
|
+
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
|
|
8
|
+
export interface TooManyHits {
|
|
9
|
+
name: string;
|
|
10
|
+
hitLimit: number;
|
|
11
|
+
}
|
|
12
|
+
interface SearchResults {
|
|
13
|
+
prefix: ({
|
|
14
|
+
name: string;
|
|
15
|
+
} | string)[];
|
|
16
|
+
exact: [string, number, string, string, number, number][];
|
|
17
|
+
}
|
|
18
|
+
export declare type NamesIndexRecord = string | Array<string | number>;
|
|
19
|
+
export default class JBrowse1TextSearchAdapter extends BaseAdapter implements BaseTextSearchAdapter {
|
|
20
|
+
httpMap: HttpMap;
|
|
21
|
+
tracksNames?: string[];
|
|
22
|
+
constructor(config: Instance<typeof MyConfigSchema>, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
|
|
23
|
+
/**
|
|
24
|
+
* Returns the contents of the file containing the query if it exists
|
|
25
|
+
* else it returns empty
|
|
26
|
+
* @param query - string query
|
|
27
|
+
*/
|
|
28
|
+
loadIndexFile(query: string): Promise<Record<string, SearchResults>>;
|
|
29
|
+
searchIndex(args: BaseArgs): Promise<BaseResult[]>;
|
|
30
|
+
formatResults(results: SearchResults, tracks: string[], searchType?: string): BaseResult[];
|
|
31
|
+
freeResources(): void;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports.default = void 0;
|
|
9
9
|
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
11
|
|
|
@@ -37,31 +37,31 @@ var _configuration = require("@jbrowse/core/configuration");
|
|
|
37
37
|
|
|
38
38
|
var _HttpMap = _interopRequireDefault(require("./HttpMap"));
|
|
39
39
|
|
|
40
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2
|
|
40
|
+
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); }; }
|
|
41
41
|
|
|
42
42
|
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; } }
|
|
43
43
|
|
|
44
44
|
// Jbrowse1 text search adapter
|
|
45
45
|
// Uses index built by generate-names.pl
|
|
46
46
|
var JBrowse1TextSearchAdapter = /*#__PURE__*/function (_BaseAdapter) {
|
|
47
|
-
(0, _inherits2
|
|
47
|
+
(0, _inherits2.default)(JBrowse1TextSearchAdapter, _BaseAdapter);
|
|
48
48
|
|
|
49
49
|
var _super = _createSuper(JBrowse1TextSearchAdapter);
|
|
50
50
|
|
|
51
51
|
function JBrowse1TextSearchAdapter(config, getSubAdapter, pluginManager) {
|
|
52
52
|
var _this;
|
|
53
53
|
|
|
54
|
-
(0, _classCallCheck2
|
|
54
|
+
(0, _classCallCheck2.default)(this, JBrowse1TextSearchAdapter);
|
|
55
55
|
_this = _super.call(this, config, getSubAdapter, pluginManager);
|
|
56
|
-
(0, _defineProperty2
|
|
57
|
-
(0, _defineProperty2
|
|
56
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "httpMap", void 0);
|
|
57
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "tracksNames", void 0);
|
|
58
58
|
var namesIndexLocation = (0, _configuration.readConfObject)(config, 'namesIndexLocation');
|
|
59
59
|
|
|
60
60
|
if (!namesIndexLocation) {
|
|
61
61
|
throw new Error('must provide namesIndexLocation');
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
_this.httpMap = new _HttpMap
|
|
64
|
+
_this.httpMap = new _HttpMap.default({
|
|
65
65
|
url: namesIndexLocation.baseUri ? new URL(namesIndexLocation.uri, namesIndexLocation.baseUri).href : namesIndexLocation.uri
|
|
66
66
|
});
|
|
67
67
|
return _this;
|
|
@@ -73,11 +73,11 @@ var JBrowse1TextSearchAdapter = /*#__PURE__*/function (_BaseAdapter) {
|
|
|
73
73
|
*/
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
(0, _createClass2
|
|
76
|
+
(0, _createClass2.default)(JBrowse1TextSearchAdapter, [{
|
|
77
77
|
key: "loadIndexFile",
|
|
78
78
|
value: function () {
|
|
79
|
-
var _loadIndexFile = (0, _asyncToGenerator2
|
|
80
|
-
return _regenerator
|
|
79
|
+
var _loadIndexFile = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query) {
|
|
80
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
81
81
|
while (1) {
|
|
82
82
|
switch (_context.prev = _context.next) {
|
|
83
83
|
case 0:
|
|
@@ -100,9 +100,9 @@ var JBrowse1TextSearchAdapter = /*#__PURE__*/function (_BaseAdapter) {
|
|
|
100
100
|
}, {
|
|
101
101
|
key: "searchIndex",
|
|
102
102
|
value: function () {
|
|
103
|
-
var _searchIndex = (0, _asyncToGenerator2
|
|
103
|
+
var _searchIndex = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(args) {
|
|
104
104
|
var searchType, queryString, tracks, entries;
|
|
105
|
-
return _regenerator
|
|
105
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
106
106
|
while (1) {
|
|
107
107
|
switch (_context2.prev = _context2.next) {
|
|
108
108
|
case 0:
|
|
@@ -155,22 +155,22 @@ var JBrowse1TextSearchAdapter = /*#__PURE__*/function (_BaseAdapter) {
|
|
|
155
155
|
}, {
|
|
156
156
|
key: "formatResults",
|
|
157
157
|
value: function formatResults(results, tracks, searchType) {
|
|
158
|
-
return [].concat((0, _toConsumableArray2
|
|
159
|
-
return new _BaseResults
|
|
160
|
-
label: (0, _typeof2
|
|
158
|
+
return [].concat((0, _toConsumableArray2.default)(searchType === 'exact' ? [] : results.prefix.map(function (result) {
|
|
159
|
+
return new _BaseResults.default({
|
|
160
|
+
label: (0, _typeof2.default)(result) === 'object' ? result.name : result,
|
|
161
161
|
matchedAttribute: 'name',
|
|
162
162
|
matchedObject: {
|
|
163
163
|
result: result
|
|
164
164
|
}
|
|
165
165
|
});
|
|
166
|
-
})), (0, _toConsumableArray2
|
|
166
|
+
})), (0, _toConsumableArray2.default)(results.exact.map(function (result) {
|
|
167
167
|
var name = result[0];
|
|
168
168
|
var trackIndex = result[1];
|
|
169
169
|
var refName = result[3];
|
|
170
170
|
var start = result[4];
|
|
171
171
|
var end = result[5];
|
|
172
172
|
var locstring = "".concat(refName || name, ":").concat(start, "-").concat(end);
|
|
173
|
-
return new _BaseResults
|
|
173
|
+
return new _BaseResults.default({
|
|
174
174
|
locString: locstring,
|
|
175
175
|
label: name,
|
|
176
176
|
matchedAttribute: 'name',
|
|
@@ -188,4 +188,4 @@ var JBrowse1TextSearchAdapter = /*#__PURE__*/function (_BaseAdapter) {
|
|
|
188
188
|
return JBrowse1TextSearchAdapter;
|
|
189
189
|
}(_BaseAdapter2.BaseAdapter);
|
|
190
190
|
|
|
191
|
-
exports
|
|
191
|
+
exports.default = JBrowse1TextSearchAdapter;
|
|
@@ -20,9 +20,9 @@ var _JBrowse1TextSearchAdapter = _interopRequireDefault(require("./JBrowse1TextS
|
|
|
20
20
|
|
|
21
21
|
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
22
22
|
|
|
23
|
-
test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenerator2
|
|
23
|
+
test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
24
24
|
var mockFetch, rootTemplate, spy, urlPath, args, adapter, results, results2, test2;
|
|
25
|
-
return _regenerator
|
|
25
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
26
26
|
while (1) {
|
|
27
27
|
switch (_context.prev = _context.next) {
|
|
28
28
|
case 0:
|
|
@@ -30,21 +30,21 @@ test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenera
|
|
|
30
30
|
var response = {};
|
|
31
31
|
|
|
32
32
|
if (url.includes('names/meta.json')) {
|
|
33
|
-
response = _meta
|
|
33
|
+
response = _meta.default;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
if (url.includes('names/0.json')) {
|
|
37
|
-
response = _
|
|
37
|
+
response = _.default;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
if (url.includes('names/f.json')) {
|
|
41
|
-
response = _f
|
|
41
|
+
response = _f.default;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
return Promise.resolve(new Response(JSON.stringify(response)));
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
rootTemplate = _path
|
|
47
|
+
rootTemplate = _path.default.join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
|
|
48
48
|
spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
49
|
|
|
50
50
|
spy.mockImplementation(mockFetch);
|
|
@@ -58,7 +58,7 @@ test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenera
|
|
|
58
58
|
}
|
|
59
59
|
}; // create adapter
|
|
60
60
|
|
|
61
|
-
adapter = new _JBrowse1TextSearchAdapter
|
|
61
|
+
adapter = new _JBrowse1TextSearchAdapter.default(_configSchema.default.create(args)); // prefix search
|
|
62
62
|
|
|
63
63
|
_context.next = 9;
|
|
64
64
|
return adapter.searchIndex({
|
|
@@ -69,7 +69,7 @@ test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenera
|
|
|
69
69
|
case 9:
|
|
70
70
|
results = _context.sent;
|
|
71
71
|
// check results are of type BaseResult for prefix search
|
|
72
|
-
expect(results[0] instanceof _BaseResults
|
|
72
|
+
expect(results[0] instanceof _BaseResults.default).toBeTruthy();
|
|
73
73
|
expect(results[0].getLabel()).toEqual('Apple1');
|
|
74
74
|
expect(results[1].getLabel()).toEqual('Apple2');
|
|
75
75
|
expect(results[2].getLabel()).toEqual('Apple3'); // exact search
|
|
@@ -85,7 +85,7 @@ test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenera
|
|
|
85
85
|
// check results are of type location for exact search
|
|
86
86
|
expect(results2.length).toEqual(5);
|
|
87
87
|
test2 = results2[0];
|
|
88
|
-
expect(test2 instanceof _BaseResults
|
|
88
|
+
expect(test2 instanceof _BaseResults.default).toBeTruthy();
|
|
89
89
|
expect(test2.getLabel()).toEqual('Apple3');
|
|
90
90
|
expect(test2.getLocation()).toEqual('ctgA:17399-23000');
|
|
91
91
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
2
|
-
export default _default;
|
|
1
|
+
declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
2
|
+
export default _default;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var _configuration = require("@jbrowse/core/configuration");
|
|
9
9
|
|
|
@@ -32,4 +32,4 @@ var _default = (0, _configuration.ConfigurationSchema)('JBrowse1TextSearchAdapte
|
|
|
32
32
|
explicitIdentifier: 'textSearchAdapterId'
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
-
exports
|
|
35
|
+
exports.default = _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default as AdapterClass } from './JBrowse1TextSearchAdapter';
|
|
2
|
-
export { default as configSchema } from './configSchema';
|
|
1
|
+
export { default as AdapterClass } from './JBrowse1TextSearchAdapter';
|
|
2
|
+
export { default as configSchema } from './configSchema';
|