@jbrowse/plugin-legacy-jbrowse 1.6.8 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/JBrowse1Connection/configSchema.d.ts +2 -2
  2. package/dist/JBrowse1Connection/configSchema.js +30 -0
  3. package/dist/JBrowse1Connection/index.d.ts +2 -2
  4. package/dist/JBrowse1Connection/index.js +23 -0
  5. package/dist/JBrowse1Connection/jb1ConfigLoad.d.ts +36 -36
  6. package/dist/JBrowse1Connection/jb1ConfigLoad.js +555 -0
  7. package/dist/JBrowse1Connection/jb1ConfigParse.d.ts +11 -11
  8. package/dist/JBrowse1Connection/jb1ConfigParse.js +476 -0
  9. package/dist/JBrowse1Connection/jb1ToJb2.d.ts +47 -47
  10. package/dist/JBrowse1Connection/jb1ToJb2.js +556 -0
  11. package/dist/JBrowse1Connection/model.d.ts +15 -4
  12. package/dist/JBrowse1Connection/model.js +58 -0
  13. package/dist/JBrowse1Connection/types.d.ts +91 -91
  14. package/dist/JBrowse1Connection/types.js +5 -0
  15. package/dist/JBrowse1Connection/util.d.ts +26 -26
  16. package/dist/JBrowse1Connection/util.js +177 -0
  17. package/dist/JBrowse1TextSeachAdapter/HttpMap.d.ts +39 -39
  18. package/dist/JBrowse1TextSeachAdapter/HttpMap.js +350 -0
  19. package/dist/JBrowse1TextSeachAdapter/HttpMap.test.js +118 -0
  20. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.d.ts +33 -33
  21. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js +191 -0
  22. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.test.js +98 -0
  23. package/dist/JBrowse1TextSeachAdapter/configSchema.d.ts +2 -2
  24. package/dist/JBrowse1TextSeachAdapter/configSchema.js +35 -0
  25. package/dist/JBrowse1TextSeachAdapter/index.d.ts +2 -2
  26. package/dist/JBrowse1TextSeachAdapter/index.js +23 -0
  27. package/dist/NCListAdapter/NCListAdapter.d.ts +31 -31
  28. package/dist/NCListAdapter/NCListAdapter.js +237 -0
  29. package/dist/NCListAdapter/NCListAdapter.test.js +108 -0
  30. package/dist/NCListAdapter/NCListFeature.d.ts +31 -31
  31. package/dist/NCListAdapter/NCListFeature.js +142 -0
  32. package/dist/NCListAdapter/configSchema.d.ts +2 -2
  33. package/dist/NCListAdapter/configSchema.js +27 -0
  34. package/dist/NCListAdapter/index.d.ts +1 -1
  35. package/dist/NCListAdapter/index.js +15 -0
  36. package/dist/declare.d.js +1 -0
  37. package/dist/index.d.ts +6 -6
  38. package/dist/index.js +122 -6
  39. package/dist/index.test.js +44 -0
  40. package/package.json +5 -7
  41. package/src/JBrowse1Connection/jb1ConfigLoad.ts +1 -1
  42. package/dist/index.test.d.ts +0 -1
  43. package/dist/plugin-legacy-jbrowse.cjs.development.js +0 -3567
  44. package/dist/plugin-legacy-jbrowse.cjs.development.js.map +0 -1
  45. package/dist/plugin-legacy-jbrowse.cjs.production.min.js +0 -2
  46. package/dist/plugin-legacy-jbrowse.cjs.production.min.js.map +0 -1
  47. package/dist/plugin-legacy-jbrowse.esm.js +0 -3561
  48. package/dist/plugin-legacy-jbrowse.esm.js.map +0 -1
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
18
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
20
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
22
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
+
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
+
26
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
+
28
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
+
30
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
+
32
+ var _BaseAdapter2 = require("@jbrowse/core/data_adapters/BaseAdapter");
33
+
34
+ var _BaseResults = _interopRequireDefault(require("@jbrowse/core/TextSearch/BaseResults"));
35
+
36
+ var _configuration = require("@jbrowse/core/configuration");
37
+
38
+ var _HttpMap = _interopRequireDefault(require("./HttpMap"));
39
+
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
+
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
+
44
+ // Jbrowse1 text search adapter
45
+ // Uses index built by generate-names.pl
46
+ var JBrowse1TextSearchAdapter = /*#__PURE__*/function (_BaseAdapter) {
47
+ (0, _inherits2["default"])(JBrowse1TextSearchAdapter, _BaseAdapter);
48
+
49
+ var _super = _createSuper(JBrowse1TextSearchAdapter);
50
+
51
+ function JBrowse1TextSearchAdapter(config, getSubAdapter, pluginManager) {
52
+ var _this;
53
+
54
+ (0, _classCallCheck2["default"])(this, JBrowse1TextSearchAdapter);
55
+ _this = _super.call(this, config, getSubAdapter, pluginManager);
56
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "httpMap", void 0);
57
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "tracksNames", void 0);
58
+ var namesIndexLocation = (0, _configuration.readConfObject)(config, 'namesIndexLocation');
59
+
60
+ if (!namesIndexLocation) {
61
+ throw new Error('must provide namesIndexLocation');
62
+ }
63
+
64
+ _this.httpMap = new _HttpMap["default"]({
65
+ url: namesIndexLocation.baseUri ? new URL(namesIndexLocation.uri, namesIndexLocation.baseUri).href : namesIndexLocation.uri
66
+ });
67
+ return _this;
68
+ }
69
+ /**
70
+ * Returns the contents of the file containing the query if it exists
71
+ * else it returns empty
72
+ * @param query - string query
73
+ */
74
+
75
+
76
+ (0, _createClass2["default"])(JBrowse1TextSearchAdapter, [{
77
+ key: "loadIndexFile",
78
+ value: function () {
79
+ var _loadIndexFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(query) {
80
+ return _regenerator["default"].wrap(function _callee$(_context) {
81
+ while (1) {
82
+ switch (_context.prev = _context.next) {
83
+ case 0:
84
+ return _context.abrupt("return", this.httpMap.getBucket(query));
85
+
86
+ case 1:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }
91
+ }, _callee, this);
92
+ }));
93
+
94
+ function loadIndexFile(_x) {
95
+ return _loadIndexFile.apply(this, arguments);
96
+ }
97
+
98
+ return loadIndexFile;
99
+ }()
100
+ }, {
101
+ key: "searchIndex",
102
+ value: function () {
103
+ var _searchIndex = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(args) {
104
+ var searchType, queryString, tracks, entries;
105
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
106
+ while (1) {
107
+ switch (_context2.prev = _context2.next) {
108
+ case 0:
109
+ searchType = args.searchType, queryString = args.queryString;
110
+ _context2.t0 = this.tracksNames;
111
+
112
+ if (_context2.t0) {
113
+ _context2.next = 6;
114
+ break;
115
+ }
116
+
117
+ _context2.next = 5;
118
+ return this.httpMap.getTrackNames();
119
+
120
+ case 5:
121
+ _context2.t0 = _context2.sent;
122
+
123
+ case 6:
124
+ tracks = _context2.t0;
125
+ _context2.next = 9;
126
+ return this.loadIndexFile(queryString.toLowerCase());
127
+
128
+ case 9:
129
+ entries = _context2.sent;
130
+
131
+ if (!entries[queryString]) {
132
+ _context2.next = 12;
133
+ break;
134
+ }
135
+
136
+ return _context2.abrupt("return", this.formatResults(entries[queryString], tracks, searchType));
137
+
138
+ case 12:
139
+ return _context2.abrupt("return", []);
140
+
141
+ case 13:
142
+ case "end":
143
+ return _context2.stop();
144
+ }
145
+ }
146
+ }, _callee2, this);
147
+ }));
148
+
149
+ function searchIndex(_x2) {
150
+ return _searchIndex.apply(this, arguments);
151
+ }
152
+
153
+ return searchIndex;
154
+ }()
155
+ }, {
156
+ key: "formatResults",
157
+ value: function formatResults(results, tracks, searchType) {
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
+ matchedAttribute: 'name',
162
+ matchedObject: {
163
+ result: result
164
+ }
165
+ });
166
+ })), (0, _toConsumableArray2["default"])(results.exact.map(function (result) {
167
+ var name = result[0];
168
+ var trackIndex = result[1];
169
+ var refName = result[3];
170
+ var start = result[4];
171
+ var end = result[5];
172
+ var locstring = "".concat(refName || name, ":").concat(start, "-").concat(end);
173
+ return new _BaseResults["default"]({
174
+ locString: locstring,
175
+ label: name,
176
+ matchedAttribute: 'name',
177
+ matchedObject: result,
178
+ trackId: tracks[trackIndex]
179
+ });
180
+ }))).filter(function (result) {
181
+ return result.getLabel() !== 'too many matches';
182
+ });
183
+ }
184
+ }, {
185
+ key: "freeResources",
186
+ value: function freeResources() {}
187
+ }]);
188
+ return JBrowse1TextSearchAdapter;
189
+ }(_BaseAdapter2.BaseAdapter);
190
+
191
+ exports["default"] = JBrowse1TextSearchAdapter;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
+
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
+
9
+ var _BaseResults = _interopRequireDefault(require("@jbrowse/core/TextSearch/BaseResults"));
10
+
11
+ var _path = _interopRequireDefault(require("path"));
12
+
13
+ var _meta = _interopRequireDefault(require("../../test_data/names/meta.json"));
14
+
15
+ var _ = _interopRequireDefault(require("../../test_data/names/0.json"));
16
+
17
+ var _f = _interopRequireDefault(require("../../test_data/names/f.json"));
18
+
19
+ var _JBrowse1TextSearchAdapter = _interopRequireDefault(require("./JBrowse1TextSearchAdapter"));
20
+
21
+ var _configSchema = _interopRequireDefault(require("./configSchema"));
22
+
23
+ test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
24
+ var mockFetch, rootTemplate, spy, urlPath, args, adapter, results, results2, test2;
25
+ return _regenerator["default"].wrap(function _callee$(_context) {
26
+ while (1) {
27
+ switch (_context.prev = _context.next) {
28
+ case 0:
29
+ mockFetch = function _mockFetch(url) {
30
+ var response = {};
31
+
32
+ if (url.includes('names/meta.json')) {
33
+ response = _meta["default"];
34
+ }
35
+
36
+ if (url.includes('names/0.json')) {
37
+ response = _["default"];
38
+ }
39
+
40
+ if (url.includes('names/f.json')) {
41
+ response = _f["default"];
42
+ }
43
+
44
+ return Promise.resolve(new Response(JSON.stringify(response)));
45
+ };
46
+
47
+ rootTemplate = _path["default"].join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
48
+ spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
+
50
+ spy.mockImplementation(mockFetch);
51
+ urlPath = decodeURI(new URL("file://".concat(rootTemplate)).href);
52
+ args = {
53
+ type: 'JBrowse1TextSearchAdapter',
54
+ textSearchAdapterId: 'JBrowse1GenerateNamesAdapterTest',
55
+ namesIndexLocation: {
56
+ uri: urlPath,
57
+ locationType: 'UriLocation'
58
+ }
59
+ }; // create adapter
60
+
61
+ adapter = new _JBrowse1TextSearchAdapter["default"](_configSchema["default"].create(args)); // prefix search
62
+
63
+ _context.next = 9;
64
+ return adapter.searchIndex({
65
+ searchType: 'prefix',
66
+ queryString: 'apple'
67
+ });
68
+
69
+ case 9:
70
+ results = _context.sent;
71
+ // check results are of type BaseResult for prefix search
72
+ expect(results[0] instanceof _BaseResults["default"]).toBeTruthy();
73
+ expect(results[0].getLabel()).toEqual('Apple1');
74
+ expect(results[1].getLabel()).toEqual('Apple2');
75
+ expect(results[2].getLabel()).toEqual('Apple3'); // exact search
76
+
77
+ _context.next = 16;
78
+ return adapter.searchIndex({
79
+ searchType: 'exact',
80
+ queryString: 'apple3'
81
+ });
82
+
83
+ case 16:
84
+ results2 = _context.sent;
85
+ // check results are of type location for exact search
86
+ expect(results2.length).toEqual(5);
87
+ test2 = results2[0];
88
+ expect(test2 instanceof _BaseResults["default"]).toBeTruthy();
89
+ expect(test2.getLabel()).toEqual('Apple3');
90
+ expect(test2.getLocation()).toEqual('ctgA:17399-23000');
91
+
92
+ case 22:
93
+ case "end":
94
+ return _context.stop();
95
+ }
96
+ }
97
+ }, _callee);
98
+ })));
@@ -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;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _configuration = require("@jbrowse/core/configuration");
9
+
10
+ var _default = (0, _configuration.ConfigurationSchema)('JBrowse1TextSearchAdapter', {
11
+ // metadata about tracks and assemblies covered by text search adapter
12
+ namesIndexLocation: {
13
+ type: 'fileLocation',
14
+ defaultValue: {
15
+ uri: '/volvox/names',
16
+ locationType: 'UriLocation'
17
+ },
18
+ description: 'the location of the JBrowse1 names index data directory'
19
+ },
20
+ tracks: {
21
+ type: 'stringArray',
22
+ defaultValue: [],
23
+ description: 'List of tracks covered by text search adapter'
24
+ },
25
+ assemblyNames: {
26
+ type: 'stringArray',
27
+ defaultValue: [],
28
+ description: 'List of assemblies covered by text search adapter'
29
+ }
30
+ }, {
31
+ explicitlyTyped: true,
32
+ explicitIdentifier: 'textSearchAdapterId'
33
+ });
34
+
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';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "AdapterClass", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _JBrowse1TextSearchAdapter["default"];
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "configSchema", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _configSchema["default"];
18
+ }
19
+ });
20
+
21
+ var _JBrowse1TextSearchAdapter = _interopRequireDefault(require("./JBrowse1TextSearchAdapter"));
22
+
23
+ var _configSchema = _interopRequireDefault(require("./configSchema"));
@@ -1,31 +1,31 @@
1
- import { Region } from '@jbrowse/core/util/types';
2
- import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
3
- import { Feature } from '@jbrowse/core/util/simpleFeature';
4
- import { Instance } from 'mobx-state-tree';
5
- import NCListFeature from './NCListFeature';
6
- import MyConfigSchema from './configSchema';
7
- import PluginManager from '@jbrowse/core/PluginManager';
8
- import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
9
- export default class NCListAdapter extends BaseFeatureDataAdapter {
10
- private nclist;
11
- private configRefNames?;
12
- constructor(config: Instance<typeof MyConfigSchema>, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
13
- /**
14
- * Fetch features for a certain region. Use getFeaturesInRegion() if you also
15
- * want to verify that the store has features for the given reference sequence
16
- * before fetching.
17
- * @param region -
18
- * @param opts - [signal] optional signalling object for aborting the fetch
19
- * @returns Observable of Feature objects in the region
20
- */
21
- getFeatures(region: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
22
- wrapFeature(ncFeature: any): NCListFeature;
23
- hasDataForRefName(refName: string): Promise<boolean>;
24
- getRefNames(): Promise<string[]>;
25
- /**
26
- * called to provide a hint that data tied to a certain region
27
- * will not be needed for the forseeable future and can be purged
28
- * from caches, etc
29
- */
30
- freeResources(): void;
31
- }
1
+ import { Region } from '@jbrowse/core/util/types';
2
+ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import { Feature } from '@jbrowse/core/util/simpleFeature';
4
+ import { Instance } from 'mobx-state-tree';
5
+ import NCListFeature from './NCListFeature';
6
+ import MyConfigSchema from './configSchema';
7
+ import PluginManager from '@jbrowse/core/PluginManager';
8
+ import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
9
+ export default class NCListAdapter extends BaseFeatureDataAdapter {
10
+ private nclist;
11
+ private configRefNames?;
12
+ constructor(config: Instance<typeof MyConfigSchema>, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
13
+ /**
14
+ * Fetch features for a certain region. Use getFeaturesInRegion() if you also
15
+ * want to verify that the store has features for the given reference sequence
16
+ * before fetching.
17
+ * @param region -
18
+ * @param opts - [signal] optional signalling object for aborting the fetch
19
+ * @returns Observable of Feature objects in the region
20
+ */
21
+ getFeatures(region: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
22
+ wrapFeature(ncFeature: any): NCListFeature;
23
+ hasDataForRefName(refName: string): Promise<boolean>;
24
+ getRefNames(): Promise<string[]>;
25
+ /**
26
+ * called to provide a hint that data tied to a certain region
27
+ * will not be needed for the forseeable future and can be purged
28
+ * from caches, etc
29
+ */
30
+ freeResources(): void;
31
+ }
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
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
+ }
72
+ });
73
+ return _this;
74
+ }
75
+ /**
76
+ * Fetch features for a certain region. Use getFeaturesInRegion() if you also
77
+ * want to verify that the store has features for the given reference sequence
78
+ * before fetching.
79
+ * @param region -
80
+ * @param opts - [signal] optional signalling object for aborting the fetch
81
+ * @returns Observable of Feature objects in the region
82
+ */
83
+
84
+
85
+ (0, _createClass2["default"])(NCListAdapter, [{
86
+ key: "getFeatures",
87
+ value: function getFeatures(region) {
88
+ var _this2 = this;
89
+
90
+ var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
91
+ return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
92
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(observer) {
93
+ var signal, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature;
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
+ }
169
+ }
170
+ }, _callee, null, [[3, 16, 20, 30], [21,, 25, 29]]);
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()));
183
+ }
184
+ }, {
185
+ key: "hasDataForRefName",
186
+ value: function () {
187
+ var _hasDataForRefName = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(refName) {
188
+ var root;
189
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
190
+ while (1) {
191
+ switch (_context2.prev = _context2.next) {
192
+ case 0:
193
+ _context2.next = 2;
194
+ return this.nclist.getDataRoot(refName);
195
+
196
+ case 2:
197
+ root = _context2.sent;
198
+ return _context2.abrupt("return", !!(root && root.stats && root.stats.featureCount));
199
+
200
+ case 4:
201
+ case "end":
202
+ return _context2.stop();
203
+ }
204
+ }
205
+ }, _callee2, this);
206
+ }));
207
+
208
+ function hasDataForRefName(_x2) {
209
+ return _hasDataForRefName.apply(this, arguments);
210
+ }
211
+
212
+ return hasDataForRefName;
213
+ }()
214
+ /*
215
+ * NCList is unable to get list of ref names so returns empty
216
+ * @return Promise<string[]> of empty list
217
+ */
218
+
219
+ }, {
220
+ key: "getRefNames",
221
+ value: function getRefNames() {
222
+ return Promise.resolve(this.configRefNames || []);
223
+ }
224
+ /**
225
+ * called to provide a hint that data tied to a certain region
226
+ * will not be needed for the forseeable future and can be purged
227
+ * from caches, etc
228
+ */
229
+
230
+ }, {
231
+ key: "freeResources",
232
+ value: function freeResources() {}
233
+ }]);
234
+ return NCListAdapter;
235
+ }(_BaseAdapter.BaseFeatureDataAdapter);
236
+
237
+ exports["default"] = NCListAdapter;