@jbrowse/plugin-legacy-jbrowse 1.4.1 → 1.5.2

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 (31) hide show
  1. package/dist/JBrowse1Connection/jb1ToJb2.d.ts +1 -0
  2. package/dist/JBrowse1Connection/types.d.ts +2 -0
  3. package/dist/JBrowse1TextSeachAdapter/HttpMap.d.ts +1 -15
  4. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.d.ts +12 -8
  5. package/dist/NCListAdapter/NCListAdapter.d.ts +3 -1
  6. package/dist/plugin-legacy-jbrowse.cjs.development.js +334 -398
  7. package/dist/plugin-legacy-jbrowse.cjs.development.js.map +1 -1
  8. package/dist/plugin-legacy-jbrowse.cjs.production.min.js +1 -1
  9. package/dist/plugin-legacy-jbrowse.cjs.production.min.js.map +1 -1
  10. package/dist/plugin-legacy-jbrowse.esm.js +336 -399
  11. package/dist/plugin-legacy-jbrowse.esm.js.map +1 -1
  12. package/package.json +5 -3
  13. package/src/JBrowse1Connection/configSchema.ts +4 -1
  14. package/src/JBrowse1Connection/jb1ConfigLoad.ts +24 -27
  15. package/src/JBrowse1Connection/jb1ConfigParse.ts +10 -12
  16. package/src/JBrowse1Connection/jb1ToJb2.ts +93 -43
  17. package/src/JBrowse1Connection/types.ts +2 -0
  18. package/src/JBrowse1TextSeachAdapter/HttpMap.test.ts +8 -20
  19. package/src/JBrowse1TextSeachAdapter/HttpMap.ts +17 -75
  20. package/src/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.test.ts +2 -4
  21. package/src/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.ts +42 -58
  22. package/src/JBrowse1TextSeachAdapter/configSchema.ts +2 -2
  23. package/src/NCListAdapter/NCListAdapter.test.ts +4 -1
  24. package/src/NCListAdapter/NCListAdapter.ts +15 -8
  25. package/src/NCListAdapter/configSchema.ts +4 -1
  26. package/src/__snapshots__/index.test.js.snap +3 -0
  27. package/src/index.test.js +1 -0
  28. package/src/index.ts +23 -0
  29. package/dist/JBrowse1TextSeachAdapter/Crc32.d.ts +0 -19
  30. package/src/JBrowse1TextSeachAdapter/Crc32.test.ts +0 -21
  31. package/src/JBrowse1TextSeachAdapter/Crc32.ts +0 -77
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-legacy-jbrowse.cjs.development.js","sources":["../src/NCListAdapter/configSchema.ts","../../../node_modules/regenerator-runtime/runtime.js","../src/JBrowse1TextSeachAdapter/Crc32.ts","../src/JBrowse1TextSeachAdapter/HttpMap.ts","../src/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.ts","../src/JBrowse1TextSeachAdapter/configSchema.ts","../src/JBrowse1Connection/configSchema.ts","../src/JBrowse1Connection/util.ts","../src/JBrowse1Connection/jb1ConfigParse.ts","../src/JBrowse1Connection/jb1ConfigLoad.ts","../src/JBrowse1Connection/jb1ToJb2.ts","../src/JBrowse1Connection/model.js","../src/index.ts","../src/NCListAdapter/NCListFeature.ts","../src/NCListAdapter/NCListAdapter.ts"],"sourcesContent":["import { ConfigurationSchema } from '@jbrowse/core/configuration'\n\nexport default ConfigurationSchema(\n 'NCListAdapter',\n {\n rootUrlTemplate: {\n type: 'fileLocation',\n defaultValue: { uri: '/path/to/my/{refseq}/trackData.json' },\n },\n refNames: {\n type: 'stringArray',\n defaultValue: [],\n description: 'List of refNames used by the NCList used for aliasing',\n },\n },\n { explicitlyTyped: true },\n)\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","const crc32Table =\n '00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D'\n// Adapted from JBrowse1 crc32 implementation.\n// https://github.com/GMOD/jbrowse/blob/b8324df0033796b6d502696dc65c9ff888aae2f3/src/JBrowse/Digest/Crc32.js\n\n/**\n * Returns an array of bytes given a string\n * @param str - string\n */\nexport function stringToBytes(str: string) {\n let ch\n let st\n let re: number[] = []\n for (let i = 0; i < str.length; i++) {\n ch = str.charCodeAt(i) // get char\n st = [] // set up \"stack\"\n do {\n st.push(ch & 0xff) // push byte to stack\n ch >>= 8 // shift value down by 1 byte\n } while (ch)\n // add stack contents to result\n // done because chars have \"wrong\" endianness\n re = re.concat(st.reverse())\n }\n return re\n}\n\n/**\n * crc32 raw\n * @param bytes - bytes\n * @param start - number\n * @param end - number\n * @param crc - number\n */\nexport function crc32Raw(bytes: number[], start: number, end: number, crc = 0) {\n let n = 0 // a number between 0 and 255\n let x // a hex number\n const table = crc32Table\n\n crc ^= -1\n for (let i = start, iTop = end; i < iTop; i++) {\n n = (crc ^ bytes[i]) & 0xff\n x = `0x${table.substr(n * 9, 8)}`\n crc = (crc >>> 8) ^ parseInt(x, 16)\n }\n crc ^= -1\n // convert to unsigned 32-bit int if needed\n if (crc < 0) {\n crc += 4294967296\n }\n return crc\n}\n\n/**\n * crc32 given a string\n * @param str - string\n * @param crc - number\n */\nexport function crc32(str: string, crc = 0) {\n const bytes = stringToBytes(str)\n let n = 0 // a number between 0 and 255\n let x // a hex number\n const table = crc32Table\n\n crc ^= -1\n for (let i = 0, iTop = bytes.length; i < iTop; i++) {\n n = (crc ^ bytes[i]) & 0xff\n x = `0x${table.substr(n * 9, 8)}`\n crc = (crc >>> 8) ^ parseInt(x, 16)\n }\n crc ^= -1\n // convert to unsigned 32-bit int if needed\n if (crc < 0) {\n crc += 4294967296\n }\n return crc\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/*\n * Helper class allows reading names index generated in JBrowse1\n * Adapted from https://github.com/GMOD/jbrowse/blob/master/src/JBrowse/Store/Hash.js\n */\nimport { crc32 } from './Crc32'\n\nexport default class HttpMap {\n url: string\n\n isElectron: boolean\n\n hash_hex_characters?: number\n\n compress?: number\n\n tracks?: string[]\n\n constructor(args: { url: string; isElectron: boolean }) {\n // make sure url has a trailing slash\n this.url = /\\/$/.test(args.url) ? args.url : `${args.url}/`\n\n this.isElectron = args.isElectron\n }\n\n /**\n * loads meta.json file from names directory and reads number of hash_bits used\n */\n async readMeta() {\n try {\n const meta = await this.loadFile('meta.json')\n if (meta !== {}) {\n const { compress, track_names: tracks } = meta\n this.compress = compress\n const hashHexCharacters = Math.ceil(meta.hash_bits / 4)\n this.hash_hex_characters = hashHexCharacters\n this.tracks = tracks\n return { hashHexCharacters, compress, tracks }\n }\n throw new Error('Error parsing meta.json')\n\n // const { compress } = meta\n // this.compress = compress\n // const hashHexCharacters = Math.ceil(meta.hash_bits / 4)\n // this.hash_hex_characters = hashHexCharacters\n } catch (err) {\n // throw Error(err)\n console.warn(`Error: ${err}`)\n }\n return {}\n }\n\n async getHashHexCharacters() {\n if (this.hash_hex_characters) {\n return this.hash_hex_characters\n }\n const meta = await this.readMeta()\n return meta.hashHexCharacters\n }\n\n async getCompress() {\n if (this.compress) {\n return this.compress\n }\n const meta = await this.readMeta()\n return meta.compress\n }\n\n async getTrackNames() {\n if (this.tracks) {\n return this.tracks\n }\n const meta = await this.readMeta()\n return meta.tracks\n }\n\n /**\n * Returns contents of a bucket given a key\n * @param key - string\n */\n async get(key: string) {\n const bucket: Record<string, any> = await this.getBucket(key)\n return bucket[key]\n }\n\n /**\n * Returns a bucket given a key\n * @param key - string\n */\n async getBucket(key: string) {\n const bucketIdent = this.hash(key)\n try {\n const hexToDirPath = await this.hexToDirPath(bucketIdent)\n const value = await this.loadFile(hexToDirPath)\n return value\n } catch (err) {\n if (this.isElectron || err.status === 404) {\n // 404 is expected if the name is not in the store\n return {}\n }\n }\n return {}\n }\n\n /**\n * Loads a file using the url and provided id.\n * Returns response object with contents of the file\n * @param id - string\n */\n async loadFile(id: string) {\n const response = await fetch(`${this.url}${id}`, {\n headers: {\n 'Content-Type': 'application/json',\n 'Access-Control-Allow-Origin': '*',\n },\n })\n try {\n const data = await response.json()\n return data\n } catch (err) {\n // handle error\n // throw Error(err)\n console.warn(`Error: ${err}`)\n }\n return {}\n }\n\n /**\n * Returns the corresponding path of the file given a hex string\n * @param hex - hex string\n */\n async hexToDirPath(hex: string) {\n // zero-pad the hex string to be 8 chars if necessary\n const hashHexCharacters = await this.getHashHexCharacters()\n if (hashHexCharacters) {\n const compress = await this.getCompress()\n while (hex.length < 8) {\n hex = `0${hex}`\n }\n hex = hex.substr(8 - hashHexCharacters)\n const dirpath = []\n for (let i = 0; i < hex.length; i += 3) {\n dirpath.push(hex.substring(i, i + 3))\n }\n return `${dirpath.join('/')}.json${compress ? 'z' : ''}`\n }\n return ''\n }\n\n /**\n * Returns crc32 hash given a string.\n * (Note: this is using JBrowse1 implementation of crc32.)\n * @param data - string\n */\n hash(data: string) {\n return crc32(data).toString(16).toLowerCase().replace('-', 'n')\n }\n}\n","import {\n BaseTextSearchAdapter,\n BaseArgs,\n BaseAdapter,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport BaseResult, {\n LocStringResult,\n} from '@jbrowse/core/TextSearch/BaseResults'\nimport { isElectron } from '@jbrowse/core/util'\nimport { Instance } from 'mobx-state-tree'\nimport { readConfObject } from '@jbrowse/core/configuration'\nimport MyConfigSchema from './configSchema'\nimport HttpMap from './HttpMap'\n\nexport interface TooManyHits {\n name: string\n hitLimit: number\n}\nexport type NamesIndexRecord = string | Array<string | number>\nexport default class JBrowse1TextSearchAdapter\n extends BaseAdapter\n implements BaseTextSearchAdapter {\n /*\n Jbrowse1 text search adapter\n Uses index built by generate-names.pl\n */\n httpMap: HttpMap\n\n tracksNames?: string[]\n\n constructor(config: Instance<typeof MyConfigSchema>) {\n super(config)\n const namesIndexLocation = readConfObject(config, 'namesIndexLocation')\n if (!namesIndexLocation) {\n throw new Error('must provide namesIndexLocation')\n }\n this.httpMap = new HttpMap({\n url: namesIndexLocation.baseUri\n ? new URL(namesIndexLocation.uri, namesIndexLocation.baseUri).href\n : namesIndexLocation.uri,\n isElectron,\n })\n }\n\n /**\n * Returns the contents of the file containing the query if it exists\n * else it returns empty\n * @param query - string query\n */\n async loadIndexFile(query: string) {\n const bucketContents: Record<\n string,\n Record<string, Array<NamesIndexRecord | TooManyHits>>\n > = await this.httpMap.getBucket(query)\n return bucketContents\n }\n\n /**\n * Returns list of results\n * @param args - search options/arguments include: search query\n * limit of results to return, SearchType...prefix | full | exact\", etc.\n */\n async searchIndex(args: BaseArgs) {\n const { searchType, queryString } = args\n const tracks = this.tracksNames\n ? this.tracksNames\n : await this.httpMap.getTrackNames()\n const entries = await this.loadIndexFile(queryString)\n if (entries !== {} && entries[queryString]) {\n // note: defaults to exact if no searchType is provided\n return this.formatResults(\n entries[queryString][searchType || 'exact'],\n tracks,\n )\n }\n return []\n }\n formatResults(\n results: Array<NamesIndexRecord | TooManyHits>,\n tracksNames: string[],\n ) {\n if (results.length === 0) {\n return []\n }\n const formattedResults = results.map(result => {\n if (result && Array.isArray(result)) {\n const name = result[0] as string\n const trackIndex = result[1] as number\n const refName = result[3] as string\n const start = result[4] as number\n const end = result[5] as number\n const locstring = `${refName || name}:${start}-${end}`\n const formattedResult = new LocStringResult({\n locString: locstring,\n label: name,\n matchedAttribute: 'name',\n matchedObject: result,\n trackId: tracksNames[trackIndex],\n })\n return formattedResult\n }\n // {\"name\":\"too many matches\",\"hitLimit\":1}\n const defaultLabel = typeof result === 'object' ? result.name : result\n const defaultResult = new BaseResult({\n label: defaultLabel,\n matchedAttribute: 'name',\n matchedObject: { result: result },\n })\n return defaultResult\n })\n return formattedResults.filter(\n result => result.getLabel() !== 'too many matches',\n )\n }\n\n freeResources() {}\n}\n","import { ConfigurationSchema } from '@jbrowse/core/configuration'\n\nexport default ConfigurationSchema(\n 'JBrowse1TextSearchAdapter',\n {\n // metadata about tracks and assemblies covered by text search adapter\n namesIndexLocation: {\n type: 'fileLocation',\n defaultValue: { uri: '/volvox/names' },\n description: 'the location of the JBrowse1 names index data directory',\n },\n tracks: {\n type: 'stringArray',\n defaultValue: [],\n description: 'List of tracks covered by text search adapter',\n },\n assemblies: {\n type: 'stringArray',\n defaultValue: [],\n description: 'List of assemblies covered by text search adapter',\n },\n },\n { explicitlyTyped: true, explicitIdentifier: 'textSearchAdapterId' },\n)\n","import { baseConnectionConfig } from '@jbrowse/core/pluggableElementTypes/models'\nimport { ConfigurationSchema } from '@jbrowse/core/configuration'\n\nexport default ConfigurationSchema(\n 'JBrowse1Connection',\n {\n dataDirLocation: {\n type: 'fileLocation',\n defaultValue: { uri: 'http://mysite.com/jbrowse/data/' },\n description:\n 'the location of the JBrowse 1 data directory, often something like http://mysite.com/jbrowse/data/',\n },\n assemblyNames: {\n description:\n 'name of the assembly the connection belongs to, should be a single entry',\n type: 'stringArray',\n defaultValue: [],\n },\n },\n { baseConfiguration: baseConnectionConfig },\n)\n","import getValue from 'get-value'\nimport { Track, Source } from './types'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isTrack(arg: any): arg is Track {\n return arg && arg.label && typeof arg.label === 'string'\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isSource(arg: any): arg is Source {\n return arg && arg.url && typeof arg.url === 'string'\n}\n\n/**\n * updates a with values from b, recursively\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Obj = Record<string, any>\nexport function deepUpdate(a: Obj, b: Obj): Obj {\n for (const prop of Object.keys(b)) {\n if (\n prop in a &&\n typeof b[prop] === 'object' &&\n typeof a[prop] === 'object'\n ) {\n deepUpdate(a[prop], b[prop])\n } else if (\n typeof a[prop] === 'undefined' ||\n typeof b[prop] !== 'undefined'\n ) {\n a[prop] = b[prop]\n }\n }\n return a\n}\n\n/**\n * replace variables in a template string with values\n * @param template - String with variable names in curly brackets\n * e.g., `http://foo/{bar}?arg={baz.foo}`\n * @param fillWith - object with attribute-value mappings\n * e.g., `{ 'bar': 'someurl', 'baz': { 'foo': 42 } }`\n * @returns the template string with variables in fillWith replaced\n * e.g., 'htp://foo/someurl?arg=valueforbaz'\n */\nexport function fillTemplate(template: string, fillWith: Obj): string {\n return template.replace(\n /\\{([\\w\\s.]+)\\}/g,\n (match, varName: string): string => {\n varName = varName.replace(/\\s+/g, '') // remove all whitespace\n const fill = getValue(fillWith, varName)\n if (fill !== undefined) {\n if (typeof fill === 'function') {\n return fill(varName)\n }\n return fill\n }\n if (fillWith.callback) {\n // @ts-ignore\n const v = fillWith.callback.call(this, varName)\n if (v !== undefined) {\n return v\n }\n }\n return match\n },\n )\n}\n\n/**\n * Clones objects (including DOM nodes) and all children.\n * Warning: do not clone cyclic structures\n * (Lifted from dojo https://github.com/dojo/dojo/blob/master/_base/lang.js)\n * @param src - The object to clone\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function clone(src: any): any {\n if (\n !src ||\n typeof src !== 'object' ||\n Object.prototype.toString.call(src) === '[object Function]'\n ) {\n // null, undefined, any non-object, or function\n return src // anything\n }\n if (src.nodeType && 'cloneNode' in src) {\n // DOM Node\n return src.cloneNode(true) // Node\n }\n if (src instanceof Date) {\n // Date\n return new Date(src.getTime()) // Date\n }\n if (src instanceof RegExp) {\n // RegExp\n return new RegExp(src) // RegExp\n }\n let r\n let i\n let l\n if (Array.isArray(src)) {\n // array\n r = []\n for (i = 0, l = src.length; i < l; ++i) {\n if (i in src) {\n r[i] = clone(src[i])\n }\n }\n // we don't clone functions for performance reasons\n // }else if(d.isFunction(src)){\n // // function\n // r = function(){ return src.apply(this, arguments); };\n } else {\n // generic objects\n r = src.constructor ? new src.constructor() : {}\n }\n return mixin(r, src, clone)\n}\n\n/**\n * Copies/adds all properties of source to dest; returns dest.\n * (Lifted from dojo https://github.com/dojo/dojo/blob/master/_base/lang.js)\n *\n * All properties, including functions (sometimes termed \"methods\"), excluding\n * any non-standard extensions found in Object.prototype, are copied/added to\n * dest. Copying/adding each particular property is delegated to copyFunc\n * (if any); copyFunc defaults to the Javascript assignment operator if not\n * provided. Notice that by default, mixin executes a so-called \"shallow copy\"\n * and aggregate types are copied/added by reference.\n * @param dest - The object to which to copy/add all properties contained in\n * source.\n * @param source - The object from which to draw all properties to copy into dest.\n * @param copyFunc - The process used to copy/add a property in source; defaults\n * to the Javascript assignment operator.\n * @returns dest, as modified\n */\nfunction mixin(dest: Obj, source: Obj, copyFunc: Function): Obj {\n let name\n let s\n const empty = {}\n for (name in source) {\n // the (!(name in empty) || empty[name] !== s) condition avoids copying\n // properties in \"source\" inherited from Object.prototype.\t For example,\n // if dest has a custom toString() method, don't overwrite it with the\n // toString() method that source inherited from Object.prototype\n s = source[name]\n if (\n !(name in dest) ||\n // @ts-ignore\n (dest[name] !== s && (!(name in empty) || empty[name] !== s))\n ) {\n dest[name] = copyFunc ? copyFunc(s) : s\n }\n }\n\n return dest // Object\n}\n","/* eslint no-cond-assign: [\"error\", \"except-parens\"] */\nimport getValue from 'get-value'\nimport setValue from 'set-value'\nimport { objectHash } from '@jbrowse/core/util'\nimport { isSource, isTrack } from './util'\nimport { Config, Track, Source, Store, Names } from './types'\n\nexport function parseJB1Json(config: Config | string, url: string): Config {\n if (typeof config === 'string') {\n let parsedConf\n try {\n parsedConf = JSON.parse(config)\n } catch (error) {\n throw new Error(`${error} when parsing configuration.`)\n }\n return regularizeConf(parsedConf, url)\n }\n return regularizeConf(config, url)\n}\n\nexport function parseJB1Conf(config: string, url: string): Config {\n let parsedConf\n try {\n parsedConf = parse(config, url)\n } catch (error) {\n throw new Error(`${error} when parsing configuration.`)\n }\n return regularizeConf(parsedConf, url)\n}\n\nfunction isAlwaysArray(varName: string): boolean {\n if (varName === 'include') {\n return true\n }\n return false\n}\n\nfunction parse(text: string, url: string): Config {\n let section: string[] = []\n let keyPath: string[] | undefined\n let operation: string\n let value: string | undefined\n const data: Config = { tracks: {} }\n let lineNumber: number\n\n function recordVal(): void {\n if (value !== undefined) {\n let parsedValue:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n try {\n // parse json\n const match = value.match(/^json:(.+)/i)\n if (match) {\n parsedValue = JSON.parse(match[1])\n }\n // parse numbers if it looks numeric\n else if (/^[+-]?[\\d.,]+([eE][-+]?\\d+)?$/.test(value)) {\n parsedValue = parseFloat(value.replace(/,/g, ''))\n } else {\n parsedValue = value\n }\n\n if (!keyPath) {\n throw new Error(`Error parsing in section ${section.join(' - ')}`)\n }\n const path = section.concat(keyPath).join('.')\n if (operation === '+=') {\n let existing = getValue(data, path)\n if (existing) {\n if (!Array.isArray(existing)) {\n existing = [existing]\n }\n } else {\n existing = []\n }\n\n existing.push(parsedValue)\n parsedValue = existing\n }\n if (parsedValue === 'true') {\n parsedValue = true\n }\n if (parsedValue === 'false') {\n parsedValue = false\n }\n setValue(data, path, parsedValue)\n } catch (e) {\n throw new Error(\n `syntax error${url ? ` in ${url}` : ''}${\n lineNumber ? ` at line ${lineNumber - 1}` : ''\n }`,\n )\n }\n }\n }\n\n text.split('\\n').forEach((textLine, i): void => {\n lineNumber = i + 1\n const line = textLine.replace(/^\\s*#.+/, '')\n\n // new section\n let match: RegExpMatchArray | null\n if ((match = line.match(/^\\s*\\[([^\\]]+)/))) {\n // new section\n recordVal()\n keyPath = undefined\n value = undefined\n section = match[1].trim().split(/\\s*\\.\\s*/)\n if (section.length === 1 && section[0].toLowerCase() === 'general') {\n section = []\n }\n }\n // new value\n else if (\n (match = line.match(\n value === undefined ? /^([^+=]+)(\\+?=)(.*)/ : /^(\\S[^+=]+)(\\+?=)(.*)/,\n ))\n ) {\n recordVal()\n keyPath = match[1].trim().split(/\\s*\\.\\s*/)\n ;[, , operation] = match\n if (isAlwaysArray(section.concat(keyPath).join('.'))) {\n operation = '+='\n }\n value = match[3].trim()\n }\n // add to existing array value\n else if (\n keyPath !== undefined &&\n (match = line.match(/^\\s{0,4}\\+\\s*(.+)/))\n ) {\n recordVal()\n operation = '+='\n value = match[1].trim()\n }\n // add to existing value\n else if (value !== undefined && (match = line.match(/^\\s+(\\S.*)/))) {\n value += value.length ? ` ${match[1].trim()}` : match[1].trim()\n }\n // done with last value\n else {\n recordVal()\n keyPath = undefined\n value = undefined\n }\n })\n\n recordVal()\n\n return data\n}\n\n/**\n * Applies defaults and any other necessary tweaks to the loaded configuration.\n * @param conf - the object containing the configuration, which it modifies\n * in-place\n * @param url - URL of the config file\n * @returns the same object it was passed\n */\nexport function regularizeConf(conf: Config, url: string): Config {\n // if tracks is not an array, convert it to one\n if (conf.tracks && !Array.isArray(conf.tracks)) {\n // if it's a single track config, wrap it in an arrayref\n if (isTrack(conf.tracks)) {\n conf.tracks = [conf.tracks]\n }\n // otherwise, coerce it to an array\n else {\n const tracks: Track[] = []\n for (const label of Object.keys(conf.tracks)) {\n const track = conf.tracks[label]\n if (isTrack(track)) {\n tracks.push(track)\n } else {\n tracks.push({ label, ...track })\n }\n }\n conf.tracks = tracks\n }\n }\n\n // regularize trackMetadata.sources\n const meta = conf.trackMetadata\n if (meta && meta.sources) {\n // if it's a single source config, wrap it in an arrayref\n if (typeof meta.sources === 'string') {\n meta.sources = [meta.sources]\n }\n if (isSource(meta.sources)) {\n meta.sources = [meta.sources]\n }\n\n if (!Array.isArray(meta.sources)) {\n const sources: Source[] = []\n for (const name of Object.keys(meta.sources)) {\n const source = meta.sources[name]\n if (!('name' in source)) {\n source.name = name\n }\n sources.push(source)\n }\n meta.sources = sources\n }\n\n // coerce any string source defs to be URLs, and try to detect their types\n meta.sources = meta.sources.map(\n (sourceDef: string | Source): Source => {\n if (typeof sourceDef === 'string') {\n const newSourceDef: Source = { url: sourceDef }\n const typeMatch = sourceDef.match(/\\.(\\w+)$/)\n if (typeMatch) {\n newSourceDef.type = typeMatch[1].toLowerCase()\n }\n return newSourceDef\n }\n return sourceDef\n },\n )\n }\n\n conf.sourceUrl = conf.sourceUrl || url\n if (conf.sourceUrl.startsWith('/')) {\n conf.sourceUrl = new URL(conf.sourceUrl, window.location.href).href\n }\n conf.baseUrl = conf.baseUrl || new URL('.', conf.sourceUrl).href\n if (conf.baseUrl.length && !conf.baseUrl.endsWith('/')) {\n conf.baseUrl += '/'\n }\n\n if (conf.sourceUrl) {\n // set a default baseUrl in each of the track and store confs, and the names\n // conf, if needed\n const addBase: (Track | Store | Names)[] = []\n if (conf.tracks) {\n addBase.push(...conf.tracks)\n }\n if (conf.stores) {\n addBase.push(...Object.values(conf.stores))\n }\n if (conf.names) {\n addBase.push(conf.names)\n }\n\n addBase.forEach((t): void => {\n if (!t.baseUrl) {\n t.baseUrl = conf.baseUrl || '/'\n }\n })\n\n // resolve the refSeqs and nameUrl if present\n if (conf.refSeqs && typeof conf.refSeqs === 'string') {\n conf.refSeqs = new URL(conf.refSeqs, conf.sourceUrl).href\n }\n if (conf.nameUrl) {\n conf.nameUrl = new URL(conf.nameUrl, conf.sourceUrl).href\n }\n }\n\n conf.stores = conf.stores || {}\n ;(conf.tracks || []).forEach((trackConfig: Track): void => {\n // if there is a `config` subpart, just copy its keys in to the top-level\n // config\n if (trackConfig.config) {\n const c = trackConfig.config\n delete trackConfig.config\n trackConfig = { ...c, ...trackConfig }\n }\n\n // skip if it's a new-style track def\n if (trackConfig.store) {\n return\n }\n\n let trackClassName: string\n if (trackConfig.type === 'FeatureTrack') {\n trackClassName = 'JBrowse/View/Track/HTMLFeatures'\n } else if (trackConfig.type === 'ImageTrack') {\n trackClassName = 'JBrowse/View/Track/FixedImage'\n } else if (trackConfig.type === 'ImageTrack.Wiggle') {\n trackClassName = 'JBrowse/View/Track/FixedImage/Wiggle'\n } else if (trackConfig.type === 'SequenceTrack') {\n trackClassName = 'JBrowse/View/Track/Sequence'\n } else {\n trackClassName = regularizeClass('JBrowse/View/Track', trackConfig.type)\n }\n\n trackConfig.type = trackClassName\n\n synthesizeTrackStoreConfig(conf, trackConfig)\n\n if (trackConfig.histograms) {\n if (!trackConfig.histograms.baseUrl) {\n trackConfig.histograms.baseUrl = trackConfig.baseUrl\n }\n synthesizeTrackStoreConfig(conf, trackConfig.histograms)\n }\n })\n\n return conf\n}\n\n/**\n * prefix class name with `root` if it contains no slashes\n * @param root - Prefix root\n * @param className - class name\n */\nfunction regularizeClass(root: string, className: string | undefined): string {\n if (!className) {\n return ''\n }\n if (!className.includes('/')) {\n className = `${root}/${className}`\n }\n className = className.replace(/^\\//, '')\n return className\n}\n\nfunction guessStoreClass(\n trackConfig: Track | undefined,\n urlTemplate: string,\n): string {\n if (!trackConfig) {\n return ''\n }\n if (trackConfig.type && trackConfig.type.includes('/FixedImage')) {\n return `JBrowse/Store/TiledImage/Fixed${\n trackConfig.backendVersion === 0 ? '_v0' : ''\n }`\n }\n if (/\\.jsonz?$/i.test(urlTemplate)) {\n return `JBrowse/Store/SeqFeature/NCList${\n trackConfig.backendVersion === 0 ? '_v0' : ''\n }`\n }\n if (/\\.bam$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BAM'\n }\n if (/\\.cram$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/CRAM'\n }\n if (/\\.gff3?$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/GFF3'\n }\n if (/\\.bed$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BED'\n }\n if (/\\.vcf.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/VCFTabix'\n }\n if (/\\.gff3?.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/GFF3Tabix'\n }\n if (/\\.bed.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BEDTabix'\n }\n if (/\\.(bw|bigwig)$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BigWig'\n }\n if (/\\.(bb|bigbed)$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BigBed'\n }\n if (/\\.(fa|fasta)$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/IndexedFasta'\n }\n if (/\\.(fa|fasta)\\.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BgzipIndexedFasta'\n }\n if (/\\.2bit$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/TwoBit'\n }\n if (trackConfig.type && trackConfig.type.endsWith('/Sequence')) {\n return 'JBrowse/Store/Sequence/StaticChunked'\n }\n return ''\n}\n\nfunction synthesizeTrackStoreConfig(\n mainConf: Config,\n trackConfig: Track,\n): void {\n // figure out what data store class to use with the track, applying some\n // defaults if it is not explicit in the configuration\n const { urlTemplate = '' } = trackConfig\n\n let storeClass: string\n if (trackConfig.storeClass) {\n storeClass = regularizeClass('JBrowse/Store', trackConfig.storeClass)\n } else {\n storeClass = guessStoreClass(trackConfig, urlTemplate)\n }\n\n if (!storeClass) {\n console.warn(\n `Unable to determine an appropriate data store to use with track '${trackConfig.label}', please explicitly specify a storeClass in the configuration.`,\n )\n return\n }\n\n // synthesize a separate store conf\n const storeConf: Store = { ...trackConfig, type: storeClass }\n\n // if this is the first sequence store we see, and we have no refseqs store\n // defined explicitly, make this the refseqs store.\n if (\n (storeClass === 'JBrowse/Store/Sequence/StaticChunked' ||\n storeClass === 'JBrowse/Store/Sequence/IndexedFasta' ||\n storeClass === 'JBrowse/Store/SeqFeature/IndexedFasta' ||\n storeClass === 'JBrowse/Store/SeqFeature/BgzipIndexedFasta' ||\n storeClass === 'JBrowse/Store/SeqFeature/TwoBit' ||\n storeClass === 'JBrowse/Store/Sequence/TwoBit' ||\n trackConfig.useAsRefSeqStore) &&\n !(mainConf.stores && mainConf.stores.refseqs)\n ) {\n storeConf.name = 'refseqs'\n } else {\n storeConf.name = `store${objectHash(storeConf)}`\n }\n // record it\n if (!mainConf.stores) {\n mainConf.stores = {}\n }\n mainConf.stores[storeConf.name] = storeConf\n\n // connect it to the track conf\n trackConfig.store = storeConf.name\n}\n","import { openLocation } from '@jbrowse/core/util/io'\nimport { parseJB1Json, parseJB1Conf, regularizeConf } from './jb1ConfigParse'\nimport { clone, deepUpdate, fillTemplate } from './util'\nimport {\n JBLocation,\n UriLocation,\n LocalPathLocation,\n Config,\n Track,\n Include,\n} from './types'\n\nfunction isUriLocation(location: JBLocation): location is UriLocation {\n return (location as UriLocation).uri !== undefined\n}\n\nfunction isLocalPathLocation(\n location: JBLocation,\n): location is LocalPathLocation {\n return (location as LocalPathLocation).localPath !== undefined\n}\n\nexport async function fetchJb1(\n dataRoot: JBLocation = { uri: '' },\n baseConfig: Config = {\n include: ['{dataRoot}/trackList.json', '{dataRoot}/tracks.conf'],\n },\n baseConfigRoot: JBLocation = { uri: '' },\n): Promise<Config> {\n const protocol = 'uri' in dataRoot ? 'uri' : 'localPath'\n const dataRootReg = JSON.parse(JSON.stringify(dataRoot))\n let dataRootLocation = ''\n if (isUriLocation(dataRoot)) {\n dataRootLocation = dataRoot.uri\n }\n if (isLocalPathLocation(dataRoot)) {\n dataRootLocation = dataRoot.localPath\n }\n if (dataRootLocation.endsWith('/')) {\n dataRootReg[protocol] = dataRootLocation.slice(\n 0,\n dataRootLocation.length - 1,\n )\n }\n if (\n (isUriLocation(baseConfigRoot) && baseConfigRoot.uri) ||\n (isLocalPathLocation(baseConfigRoot) && baseConfigRoot.localPath)\n ) {\n const baseProtocol = 'uri' in baseConfigRoot ? 'uri' : 'localPath'\n let baseConfigLocation = ''\n if (isUriLocation(baseConfigRoot)) {\n baseConfigLocation = baseConfigRoot.uri\n }\n if (isLocalPathLocation(baseConfigRoot)) {\n baseConfigLocation = baseConfigRoot.localPath\n }\n if (baseConfigLocation.endsWith('/')) {\n baseConfigLocation = baseConfigLocation.slice(\n 0,\n baseConfigLocation.length - 1,\n )\n }\n let newConfig: Config = {}\n for (const conf of ['jbrowse.conf', 'jbrowse_conf.json']) {\n let fetchedConfig = null\n try {\n // @ts-ignore\n fetchedConfig = await fetchConfigFile({\n [baseProtocol]: `${baseConfigLocation}/${conf}`,\n })\n } catch (error) {\n console.error(\n `tried to access ${baseConfigLocation}/${conf}, but failed`,\n )\n }\n newConfig = mergeConfigs(newConfig, fetchedConfig) || {}\n }\n if (dataRootReg[protocol]) {\n newConfig.dataRoot = dataRootReg[protocol]\n }\n return createFinalConfig(newConfig)\n }\n const newConfig = regularizeConf(baseConfig, window.location.href)\n if (dataRootReg[protocol]) {\n newConfig.dataRoot = dataRootReg[protocol]\n }\n return createFinalConfig(newConfig)\n}\n\nexport async function createFinalConfig(\n baseConfig: Config,\n defaults = configDefaults,\n): Promise<Config> {\n const configWithDefaults = deepUpdate(clone(defaults), baseConfig)\n let finalConfig = await loadIncludes(configWithDefaults)\n finalConfig = mergeConfigs(finalConfig, baseConfig) || finalConfig\n fillTemplates(finalConfig, finalConfig)\n validateConfig(finalConfig)\n return finalConfig\n}\n\nexport async function fetchConfigFile(location: JBLocation): Promise<Config> {\n const result = await openLocation(location).readFile('utf8')\n if (typeof result !== 'string') {\n throw new Error(`Error opening location: ${location}`)\n }\n if (isUriLocation(location)) {\n return parseJb1(result, location.uri)\n }\n if (isLocalPathLocation(location)) {\n return parseJb1(result, location.localPath)\n }\n return parseJb1(result)\n}\n\nexport function parseJb1(config: string, url = ''): Config {\n if (config.trim().startsWith('{')) {\n return parseJB1Json(config, url)\n }\n return parseJB1Conf(config, url)\n}\n\n/**\n * Merges config object b into a. Properties in b override those in a.\n */\nfunction mergeConfigs(a: Config | null, b: Config | null): Config | null {\n if (b === null) {\n return null\n }\n\n if (a === null) {\n a = {}\n }\n\n for (const prop of Object.keys(b)) {\n if (prop === 'tracks' && prop in a) {\n const aTracks = a[prop] || []\n const bTracks = b[prop] || []\n if (Array.isArray(aTracks) && Array.isArray(bTracks)) {\n a[prop] = mergeTrackConfigs(aTracks || [], bTracks || [])\n } else {\n throw new Error(\n `Track config has not been properly regularized: ${aTracks} ${bTracks}`,\n )\n }\n } else if (\n !noRecursiveMerge(prop) &&\n prop in a &&\n // @ts-ignore\n typeof b[prop] === 'object' &&\n // @ts-ignore\n typeof a[prop] === 'object'\n ) {\n // @ts-ignore\n a[prop] = deepUpdate(a[prop], b[prop])\n } else if (prop === 'dataRoot') {\n if (\n a[prop] === undefined ||\n (a[prop] === 'data' && b[prop] !== undefined)\n ) {\n a[prop] = b[prop]\n }\n // @ts-ignore\n } else if (a[prop] === undefined || b[prop] !== undefined) {\n // @ts-ignore\n a[prop] = b[prop]\n }\n }\n return a\n}\n\n/**\n * Special-case merging of two `tracks` configuration arrays.\n */\nfunction mergeTrackConfigs(a: Track[], b: Track[]): Track[] {\n if (!b.length) {\n return a\n }\n\n // index the tracks in `a` by track label\n const aTracks: Record<string, Track> = {}\n a.forEach((t, i): void => {\n t.index = i\n aTracks[t.label] = t\n })\n\n b.forEach((bT): void => {\n const aT = aTracks[bT.label]\n if (aT) {\n mergeConfigs(aT, bT)\n } else {\n a.push(bT)\n }\n })\n\n return a\n}\n\n/**\n * Recursively fetch, parse, and merge all the includes in the given config\n * object. Calls the callback with the resulting configuration when finished.\n * @param inputConfig - Config to load includes into\n */\nasync function loadIncludes(inputConfig: Config): Promise<Config> {\n inputConfig = clone(inputConfig)\n\n async function loadRecur(\n config: Config,\n upstreamConf: Config,\n ): Promise<Config> {\n const sourceUrl = config.sourceUrl || config.baseUrl\n if (!sourceUrl) {\n throw new Error(\n `Could not determine source URL: ${JSON.stringify(config)}`,\n )\n }\n const newUpstreamConf = mergeConfigs(clone(upstreamConf), config)\n if (!newUpstreamConf) {\n throw new Error('Problem merging configs')\n }\n const includes = fillTemplates(\n regularizeIncludes(config.include || []),\n newUpstreamConf,\n )\n delete config.include\n\n const loads = includes.map(\n async (include): Promise<Config> => {\n include.cacheBuster = inputConfig.cacheBuster\n const includedData = await fetchConfigFile({\n uri: new URL(include.url, sourceUrl).href,\n })\n return loadRecur(includedData, newUpstreamConf)\n },\n )\n const includedDataObjects = await Promise.all(loads)\n includedDataObjects.forEach((includedData): void => {\n config = mergeConfigs(config, includedData) || config\n })\n return config\n }\n\n return loadRecur(inputConfig, {})\n}\n\nfunction regularizeIncludes(\n includes: Include | string | (Include | string)[] | null,\n): Include[] {\n if (!includes) {\n return []\n }\n\n // coerce include to an array\n if (!Array.isArray(includes)) {\n includes = [includes]\n }\n\n return includes.map(\n (include): Include => {\n // coerce bare strings in the includes to URLs\n if (typeof include === 'string') {\n include = { url: include }\n }\n\n // set defaults for format and version\n if (!('format' in include)) {\n include.format = include.url.endsWith('.conf') ? 'conf' : 'JB_json'\n }\n if (include.format === 'JB_json' && !('version' in include)) {\n include.version = 1\n }\n return include\n },\n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction fillTemplates<T extends any>(subconfig: T, config: Config): T {\n if (!subconfig) {\n return subconfig\n }\n if (Array.isArray(subconfig)) {\n for (let i = 0; i < subconfig.length; i += 1) {\n subconfig[i] = fillTemplates(subconfig[i], config)\n }\n } else if (typeof subconfig === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sub = subconfig as Record<string, any>\n for (const name of Object.keys(sub)) {\n sub[name] = fillTemplates(sub[name], config)\n }\n } else if (typeof subconfig === 'string') {\n // @ts-ignore\n return fillTemplate(subconfig, config)\n }\n\n return subconfig\n}\n\n/**\n * list of config properties that should not be recursively merged\n * @param propName - name of config property\n */\nfunction noRecursiveMerge(propName: string): boolean {\n return propName === 'datasets'\n}\n\nconst configDefaults = {\n tracks: [],\n\n containerID: 'GenomeBrowser',\n dataRoot: 'data',\n show_tracklist: true,\n show_nav: true,\n show_menu: true,\n show_overview: true,\n show_fullviewlink: true,\n update_browser_title: true,\n updateBrowserURL: true,\n\n refSeqs: '{dataRoot}/seq/refSeqs.json',\n include: ['jbrowse.conf', 'jbrowse_conf.json'],\n nameUrl: '{dataRoot}/names/root.json',\n\n datasets: {\n _DEFAULT_EXAMPLES: true,\n volvox: { url: '?data=sample_data/json/volvox', name: 'Volvox Example' },\n modencode: {\n url: '?data=sample_data/json/modencode',\n name: 'MODEncode Example',\n },\n yeast: { url: '?data=sample_data/json/yeast', name: 'Yeast Example' },\n },\n\n highlightSearchedRegions: false,\n highResolutionMode: 'auto',\n}\n\n/**\n * Examine the loaded and merged configuration for errors. Throws\n * exceptions if it finds anything amiss.\n * @returns nothing meaningful\n */\nfunction validateConfig(config: Config): void {\n if (!config.tracks) {\n config.tracks = []\n }\n if (!config.baseUrl) {\n throw new Error('Must provide a `baseUrl` in configuration')\n }\n}\n","import { openLocation } from '@jbrowse/core/util/io'\nimport { objectHash } from '@jbrowse/core/util'\nimport {\n generateUnknownTrackConf,\n generateUnsupportedTrackConf,\n guessAdapter,\n guessTrackType,\n UNKNOWN,\n UNSUPPORTED,\n} from '@jbrowse/core/util/tracks'\nimport { Track, RefSeqs, RefSeq } from './types'\n\ninterface Jb2Track {\n trackId: string\n name: string\n description?: string\n category?: string[]\n adapter?: Jb2Adapter\n type?: string\n defaultRendering?: string\n}\n\ninterface Jb2Adapter {\n type: string\n features?: Jb2Feature[]\n bamLocation?: Jb2Location\n cramLocation?: Jb2Location\n craiLocation?: Jb2Location\n fastaLocation?: Jb2Location\n faiLocation?: Jb2Location\n gziLocation?: Jb2Location\n twoBitLocation?: Jb2Location\n bigWigLocation?: Jb2Location\n bigBedLocation?: Jb2Location\n vcfGzLocation?: Jb2Location\n gffGzLocation?: Jb2Location\n bedGzLocation?: Jb2Location\n index?: { location: Jb2Location; indexType?: string }\n rootUrlTemplate?: Jb2Location\n sequenceAdapter?: Jb2Adapter\n}\n\ninterface Jb2Feature {\n refName: string\n uniqueId: string\n start: number\n end: number\n}\n\ninterface Jb2Location {\n uri?: string\n localPath?: string\n blobId?: string\n}\n\nexport function convertTrackConfig(\n jb1TrackConfig: Track,\n dataRoot: string,\n sequenceAdapter: Jb2Adapter,\n): Jb2Track {\n const jb2TrackConfig: Jb2Track = {\n trackId: objectHash(jb1TrackConfig),\n name: jb1TrackConfig.key || jb1TrackConfig.label,\n }\n\n const description =\n jb1TrackConfig.metadata &&\n (jb1TrackConfig.metadata.description || jb1TrackConfig.metadata.Description)\n if (description) {\n jb2TrackConfig.description = description\n }\n\n const category =\n jb1TrackConfig.category ||\n (jb1TrackConfig.metadata && jb1TrackConfig.metadata.category)\n jb2TrackConfig.category = category ? category.split(/\\s*\\/\\s*/) : []\n\n const { storeClass } = jb1TrackConfig\n if (!jb1TrackConfig.urlTemplate) {\n if (!(storeClass && storeClass.endsWith('FromConfig'))) {\n const trackIdentifier = jb1TrackConfig.key || jb1TrackConfig.label\n console.warn(\n `Could not import JBrowse1 track \"${trackIdentifier}\" because it does not have a \"urlTemplate\" or is not a \"FromConfig\" track`,\n )\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n trackIdentifier,\n jb2TrackConfig.category,\n )\n }\n return generateFromConfigTrackConfig(jb1TrackConfig, jb2TrackConfig)\n }\n\n const resolveUrlTemplate = (urlTemplate: string) => {\n return new URL(urlTemplate, `${dataRoot}/`).href\n .replace(/%7B/gi, '{')\n .replace(/%7D/gi, '}')\n }\n const urlTemplate = resolveUrlTemplate(jb1TrackConfig.urlTemplate)\n\n if (storeClass) {\n if (storeClass === 'JBrowse/Store/SeqFeature/BAM') {\n const adapter: Jb2Adapter = {\n type: 'BamAdapter',\n bamLocation: { uri: urlTemplate },\n }\n if (jb1TrackConfig.baiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.baiUrlTemplate) },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate) },\n indexType: 'CSI',\n }\n } else {\n adapter.index = { location: { uri: `${urlTemplate}.bai` } }\n }\n return {\n ...jb2TrackConfig,\n type: 'AlignmentsTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/CRAM') {\n const adapter: Jb2Adapter = {\n type: 'CramAdapter',\n cramLocation: { uri: urlTemplate },\n sequenceAdapter,\n }\n if (jb1TrackConfig.craiUrlTemplate) {\n adapter.craiLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.craiUrlTemplate),\n }\n } else {\n adapter.craiLocation = { uri: `${urlTemplate}.crai` }\n }\n return {\n ...jb2TrackConfig,\n type: 'AlignmentsTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/NCList') {\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter: {\n type: 'NCListAdapter',\n rootUrlTemplate: { uri: urlTemplate },\n },\n }\n }\n if (\n storeClass === 'JBrowse/Store/SeqFeature/BigWig' ||\n storeClass === 'JBrowse/Store/BigWig'\n ) {\n if (jb1TrackConfig.type && jb1TrackConfig.type.endsWith('XYPlot')) {\n jb2TrackConfig.defaultRendering = 'xyplot'\n } else if (\n jb1TrackConfig.type &&\n jb1TrackConfig.type.endsWith('Density')\n ) {\n jb2TrackConfig.defaultRendering = 'density'\n }\n return {\n ...jb2TrackConfig,\n type: 'QuantitativeTrack',\n adapter: {\n type: 'BigWigAdapter',\n bigWigLocation: { uri: urlTemplate },\n },\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/VCFTabix') {\n const adapter: Jb2Adapter = {\n type: 'VcfTabixAdapter',\n vcfGzLocation: { uri: urlTemplate },\n }\n if (jb1TrackConfig.tbiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.tbiUrlTemplate) },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate) },\n indexType: 'CSI',\n }\n } else {\n adapter.index = { location: { uri: `${urlTemplate}.tbi` } }\n }\n return {\n ...jb2TrackConfig,\n type: 'VariantTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/VCFTribble') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `VCFTribble (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/GFF3') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `GFF3 (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BigBed') {\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter: {\n type: 'BigBedAdapter',\n bigBedLocation: { uri: urlTemplate },\n },\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/GFF3Tabix') {\n const adapter: Jb2Adapter = {\n type: 'Gff3TabixAdapter',\n gffGzLocation: { uri: urlTemplate },\n }\n if (jb1TrackConfig.tbiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.tbiUrlTemplate) },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate) },\n indexType: 'CSI',\n }\n } else {\n adapter.index = { location: { uri: `${urlTemplate}.tbi` } }\n }\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BED') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `BED (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BEDTabix') {\n const adapter: Jb2Adapter = {\n type: 'BedTabixAdapter',\n bedGzLocation: { uri: urlTemplate },\n }\n if (jb1TrackConfig.tbiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.tbiUrlTemplate) },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: { uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate) },\n indexType: 'CSI',\n }\n } else {\n adapter.index = { location: { uri: `${urlTemplate}.tbi` } }\n }\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/GTF') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `GTF (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (\n storeClass === 'JBrowse/Store/SeqFeature/StaticChunked' ||\n storeClass === 'JBrowse/Store/Sequence/StaticChunked'\n ) {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `StaticChunked (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/UnindexedFasta') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `UnindexedFasta (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/IndexedFasta') {\n const adapter: Jb2Adapter = {\n type: 'IndexedFastaAdapter',\n fastaLocation: { uri: urlTemplate },\n }\n if (jb1TrackConfig.faiUrlTemplate) {\n adapter.faiLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.faiUrlTemplate),\n }\n } else {\n adapter.faiLocation = { uri: `${urlTemplate}.fai` }\n }\n return {\n ...jb2TrackConfig,\n type: 'SequenceTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BgzipIndexedFasta') {\n const adapter: Jb2Adapter = {\n type: 'BgzipFastaAdapter',\n fastaLocation: { uri: urlTemplate },\n }\n if (jb1TrackConfig.faiUrlTemplate) {\n adapter.faiLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.faiUrlTemplate),\n }\n } else {\n adapter.faiLocation = { uri: `${urlTemplate}.fai` }\n }\n if (jb1TrackConfig.gziUrlTemplate) {\n adapter.gziLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.gziUrlTemplate),\n }\n } else {\n adapter.gziLocation = { uri: `${urlTemplate}.gzi` }\n }\n return {\n ...jb2TrackConfig,\n type: 'ReferenceSequenceTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/TwoBit') {\n return {\n ...jb2TrackConfig,\n type: 'ReferenceSequenceTrack',\n adapter: {\n type: 'TwoBitAdapter',\n twoBitLocation: { uri: urlTemplate },\n },\n }\n }\n }\n\n // If we don't recogize the store class, make a best effort to guess by file type\n jb2TrackConfig.adapter = guessAdapter(\n { uri: urlTemplate },\n undefined,\n () => urlTemplate,\n )\n if (!jb2TrackConfig.adapter) {\n throw new Error('Could not determine adapter')\n }\n\n if (jb2TrackConfig.adapter.type === UNSUPPORTED) {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n urlTemplate,\n jb2TrackConfig.category,\n )\n }\n if (jb2TrackConfig.adapter.type === UNKNOWN) {\n return generateUnknownTrackConf(\n jb2TrackConfig.name,\n urlTemplate,\n jb2TrackConfig.category,\n )\n }\n\n jb2TrackConfig.type = guessTrackType(jb2TrackConfig.adapter.type)\n\n if (jb2TrackConfig.type === 'QuantitativeTrack') {\n if (jb1TrackConfig.type && jb1TrackConfig.type.endsWith('XYPlot')) {\n jb2TrackConfig.defaultRendering = 'xyplot'\n } else if (jb1TrackConfig.type && jb1TrackConfig.type.endsWith('Density')) {\n jb2TrackConfig.defaultRendering = 'density'\n }\n }\n\n return jb2TrackConfig\n}\n\nfunction generateFromConfigTrackConfig(\n jb1TrackConfig: Track,\n jb2TrackConfig: Jb2Track,\n): Jb2Track {\n const jb1Features = jb1TrackConfig.features || []\n const jb2Features = jb1Features.map(\n (feature): Jb2Feature => {\n const jb2Feature: Jb2Feature = JSON.parse(JSON.stringify(feature))\n jb2Feature.refName = feature.seq_id\n jb2Feature.uniqueId = `${feature.seq_id}:${feature.start}-${\n feature.end\n }:${feature.name || ''}`\n return jb2Feature\n },\n )\n jb2TrackConfig.adapter = {\n type: 'FromConfigAdapter',\n features: jb2Features,\n }\n jb2TrackConfig.type = 'FeatureTrack'\n return jb2TrackConfig\n}\n\nexport async function createRefSeqsAdapter(\n refSeqs: string | RefSeqs,\n): Promise<Jb2Adapter> {\n if (typeof refSeqs === 'string') {\n // assume refSeqs is a url if it is string\n refSeqs = {\n url: refSeqs,\n }\n }\n\n // check refseq urls\n if (refSeqs.url) {\n if (refSeqs.url.match(/.fai$/)) {\n return {\n type: 'IndexedFastaAdapter',\n fastaLocation: {\n uri: refSeqs.url.slice(0, -4),\n },\n faiLocation: {\n uri: refSeqs.url,\n },\n }\n }\n if (refSeqs.url.match(/.2bit$/)) {\n return {\n type: 'TwoBitAdapter',\n twoBitLocation: { uri: refSeqs.url },\n }\n }\n if (refSeqs.url.match(/.fa$/)) {\n throw new Error('Unindexed FASTA adapter not available')\n }\n if (refSeqs.url.match(/.sizes/)) {\n throw new Error('chromosome SIZES adapter not available')\n }\n const refSeqsJson = await openLocation({ uri: refSeqs.url }).readFile(\n 'utf8',\n )\n const refSeqsData: RefSeq[] = JSON.parse(refSeqsJson as string)\n return refSeqAdapterFromConfig(refSeqsData)\n }\n if ('data' in refSeqs) {\n return refSeqAdapterFromConfig(refSeqs.data || [])\n }\n throw new Error(\n `Could not determine adapter for JBrowse1 refSeqs: ${\n refSeqs.url || JSON.stringify(refSeqs)\n }`,\n )\n}\n\nfunction refSeqAdapterFromConfig(refSeqsData: RefSeq[]): Jb2Adapter {\n const features = refSeqsData.map(\n (refSeq): Jb2Feature => ({\n refName: refSeq.name,\n uniqueId: refSeq.name,\n start: refSeq.start,\n end: refSeq.end,\n }),\n )\n return {\n type: 'FromConfigAdapter',\n features,\n }\n}\n","import {\n ConfigurationReference,\n readConfObject,\n} from '@jbrowse/core/configuration'\nimport { getSession } from '@jbrowse/core/util'\nimport { BaseConnectionModelFactory } from '@jbrowse/core/pluggableElementTypes/models'\nimport { types } from 'mobx-state-tree'\nimport configSchema from './configSchema'\n\nimport { fetchJb1 } from './jb1ConfigLoad'\nimport { convertTrackConfig } from './jb1ToJb2'\n\nexport default function (pluginManager) {\n return types.compose(\n 'JBrowse1Connection',\n BaseConnectionModelFactory(pluginManager),\n types\n .model({\n configuration: ConfigurationReference(configSchema),\n type: types.literal('JBrowse1Connection'),\n })\n .actions(self => ({\n connect() {\n const dataDirLocation = readConfObject(\n self.configuration,\n 'dataDirLocation',\n )\n const session = getSession(self)\n fetchJb1(dataDirLocation)\n .then(config => {\n const assemblyName = readConfObject(\n self.configuration,\n 'assemblyNames',\n )[0]\n if (!assemblyName) {\n throw new Error(\n 'assembly name required for JBrowse 1 connection',\n )\n }\n const assemblyConf = session.assemblies.find(\n assembly => readConfObject(assembly, 'name') === assemblyName,\n )\n const sequenceAdapter = readConfObject(assemblyConf, [\n 'sequence',\n 'adapter',\n ])\n const jb2Tracks = config.tracks.map(jb1Track => {\n const jb2Track = convertTrackConfig(\n jb1Track,\n config.dataRoot,\n sequenceAdapter,\n )\n jb2Track.assemblyNames = [assemblyName]\n return jb2Track\n })\n self.setTrackConfs(jb2Tracks)\n })\n .catch(error => {\n console.error(error)\n session.notify(\n `There was a problem connecting to the JBrowse 1 data directory \"${self.name}\". Please make sure you have entered a valid location. The error that was thrown is: \"${error}\"`,\n 'error',\n )\n session.breakConnection(self.configuration)\n })\n },\n })),\n )\n}\n","import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'\nimport TextSearchAdapterType from '@jbrowse/core/pluggableElementTypes/TextSearchAdapterType'\nimport ConnectionType from '@jbrowse/core/pluggableElementTypes/ConnectionType'\nimport Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { configSchema as ncListAdapterConfigSchema } from './NCListAdapter'\nimport {\n AdapterClass as JBrowse1TextSearchAdapterClass,\n configSchema as jbrowse1AdapterConfigSchema,\n} from './JBrowse1TextSeachAdapter'\n\nimport {\n configSchema as jbrowse1ConfigSchema,\n modelFactory as jbrowse1ModelFactory,\n} from './JBrowse1Connection'\n\nexport default class LegacyJBrowsePlugin extends Plugin {\n name = 'LegacyJBrowsePlugin'\n\n install(pluginManager: PluginManager) {\n pluginManager.addAdapterType(\n () =>\n new AdapterType({\n name: 'NCListAdapter',\n configSchema: ncListAdapterConfigSchema,\n getAdapterClass: () =>\n import('./NCListAdapter/NCListAdapter').then(r => r.default),\n }),\n )\n\n pluginManager.addTextSearchAdapterType(\n () =>\n new TextSearchAdapterType({\n name: 'JBrowse1TextSearchAdapter',\n configSchema: jbrowse1AdapterConfigSchema,\n AdapterClass: JBrowse1TextSearchAdapterClass,\n description: 'A JBrowse 1 text search adapter',\n }),\n )\n\n pluginManager.addConnectionType(\n () =>\n new ConnectionType({\n name: 'JBrowse1Connection',\n configSchema: jbrowse1ConfigSchema,\n stateModel: jbrowse1ModelFactory(pluginManager),\n displayName: 'JBrowse 1 Data',\n description: 'A JBrowse 1 data directory',\n url: '//jbrowse.org/',\n }),\n )\n }\n}\n","import {\n Feature,\n SimpleFeatureSerialized,\n} from '@jbrowse/core/util/simpleFeature'\n\nconst jb2ToJb1 = { refName: 'seq_id' }\n\nconst jb1ToJb2 = { seq_id: 'refName' }\n\n/**\n * wrapper to adapt nclist features to act like jbrowse 2 features\n */\nexport default class NCListFeature implements Feature {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private ncFeature: any\n\n private parentHandle?: Feature\n\n private uniqueId: string\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(ncFeature: any, parent?: Feature, id?: string) {\n this.ncFeature = ncFeature\n this.uniqueId = id || ncFeature.id()\n this.parentHandle = parent\n }\n\n set(): void {\n throw new Error('not implemented')\n }\n\n jb2TagToJb1Tag(tag: string): string {\n // @ts-ignore\n const mapped = jb2ToJb1[tag] || tag\n return mapped.toLowerCase()\n }\n\n jb1TagToJb2Tag(tag: string): string {\n const t = tag.toLowerCase()\n // @ts-ignore\n const mapped = jb1ToJb2[t] || t\n return mapped\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(attrName: string): any {\n const attr = this.ncFeature.get(this.jb2TagToJb1Tag(attrName))\n if (attr && attrName === 'subfeatures') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return attr.map((subfeature: any) => new NCListFeature(subfeature, this))\n }\n return attr\n }\n\n /**\n * Get an array listing which data keys are present in this feature.\n */\n tags(): string[] {\n return this.ncFeature.tags().map((t: string) => this.jb1TagToJb2Tag(t))\n }\n\n /**\n * Get the unique ID of this feature.\n */\n id(): string {\n return this.uniqueId\n }\n\n /**\n * Get this feature's parent feature, or undefined if none.\n */\n parent(): Feature | undefined {\n return this.parentHandle\n }\n\n /**\n * Get an array of child features, or undefined if none.\n */\n children(): Feature[] | undefined {\n return this.get('subfeatures')\n }\n\n toJSON(): SimpleFeatureSerialized {\n const data: SimpleFeatureSerialized = { uniqueId: this.id() }\n this.ncFeature.tags().forEach((tag: string) => {\n const mappedTag = this.jb1TagToJb2Tag(tag)\n const value = this.ncFeature.get(tag)\n if (mappedTag === 'subfeatures') {\n data.subfeatures = (value || []).map((f: Feature) => {\n // note: was new NCListFeature(f, `${this.id()}-${i}`, this).toJSON()\n return new NCListFeature(f, this).toJSON()\n })\n } else {\n data[mappedTag] = value\n }\n })\n return data\n }\n}\n","import NCListStore from '@gmod/nclist'\nimport { openUrl } from '@jbrowse/core/util/io'\nimport { Region } from '@jbrowse/core/util/types'\nimport {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { Feature } from '@jbrowse/core/util/simpleFeature'\nimport { ObservableCreate } from '@jbrowse/core/util/rxjs'\nimport { checkAbortSignal } from '@jbrowse/core/util'\n\nimport { Instance } from 'mobx-state-tree'\nimport { readConfObject } from '@jbrowse/core/configuration'\nimport NCListFeature from './NCListFeature'\nimport MyConfigSchema from './configSchema'\n\nexport default class NCListAdapter extends BaseFeatureDataAdapter {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private nclist: any\n\n private configRefNames?: string[]\n\n constructor(config: Instance<typeof MyConfigSchema>) {\n super(config)\n const refNames = readConfObject(config, 'refNames')\n const rootUrlTemplate = readConfObject(config, 'rootUrlTemplate')\n this.configRefNames = refNames\n\n this.nclist = new NCListStore({\n baseUrl: '',\n urlTemplate: rootUrlTemplate.uri,\n readFile: (url: string) =>\n openUrl(\n rootUrlTemplate.baseUri\n ? new URL(url, rootUrlTemplate.baseUri).toString()\n : url,\n ).readFile(),\n })\n }\n\n /**\n * Fetch features for a certain region. Use getFeaturesInRegion() if you also\n * want to verify that the store has features for the given reference sequence\n * before fetching.\n * @param region -\n * @param opts - [signal] optional signalling object for aborting the fetch\n * @returns Observable of Feature objects in the region\n */\n getFeatures(region: Region, opts: BaseOptions = {}) {\n return ObservableCreate<Feature>(async observer => {\n const { signal } = opts\n for await (const feature of this.nclist.getFeatures(region, opts)) {\n checkAbortSignal(signal)\n observer.next(this.wrapFeature(feature))\n }\n observer.complete()\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapFeature(ncFeature: any): NCListFeature {\n return new NCListFeature(\n ncFeature,\n undefined,\n `${this.id}-${ncFeature.id()}`,\n )\n }\n\n async hasDataForRefName(refName: string) {\n const root = await this.nclist.getDataRoot(refName)\n return !!(root && root.stats && root.stats.featureCount)\n }\n\n /*\n * NCList is unable to get list of ref names so returns empty\n * @return Promise<string[]> of empty list\n */\n getRefNames() {\n return Promise.resolve(this.configRefNames || [])\n }\n\n /**\n * called to provide a hint that data tied to a certain region\n * will not be needed for the forseeable future and can be purged\n * from caches, etc\n */\n freeResources() {}\n}\n"],"names":["ConfigurationSchema","rootUrlTemplate","type","defaultValue","uri","refNames","description","explicitlyTyped","runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","undefined","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","constructor","displayName","defineIteratorMethods","forEach","method","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","async","Promise","iter","next","done","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","toString","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","keys","object","reverse","length","pop","iterable","iteratorMethod","isNaN","i","skipTempReset","prev","charAt","slice","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","Function","crc32Table","stringToBytes","str","ch","st","re","charCodeAt","concat","crc32","crc","bytes","n","x","table","iTop","substr","parseInt","HttpMap","args","url","test","isElectron","loadFile","meta","compress","tracks","track_names","hashHexCharacters","Math","ceil","hash_bits","hash_hex_characters","console","warn","readMeta","getBucket","bucket","bucketIdent","hash","hexToDirPath","status","id","fetch","headers","response","json","data","hex","getHashHexCharacters","getCompress","dirpath","substring","join","toLowerCase","replace","JBrowse1TextSearchAdapter","config","namesIndexLocation","readConfObject","httpMap","baseUri","URL","href","query","bucketContents","searchType","queryString","tracksNames","getTrackNames","loadIndexFile","entries","formatResults","results","formattedResults","map","Array","isArray","trackIndex","refName","start","end","locstring","formattedResult","LocStringResult","locString","label","matchedAttribute","matchedObject","trackId","defaultLabel","defaultResult","BaseResult","filter","getLabel","BaseAdapter","assemblies","explicitIdentifier","dataDirLocation","assemblyNames","baseConfiguration","baseConnectionConfig","isTrack","isSource","deepUpdate","a","b","prop","fillTemplate","template","fillWith","match","varName","fill","getValue","callback","v","clone","src","nodeType","cloneNode","Date","getTime","RegExp","r","l","mixin","dest","source","copyFunc","s","empty","parseJB1Json","parsedConf","JSON","parse","regularizeConf","parseJB1Conf","isAlwaysArray","text","section","keyPath","operation","lineNumber","recordVal","parsedValue","parseFloat","path","existing","setValue","e","split","textLine","line","trim","conf","track","trackMetadata","sources","sourceDef","newSourceDef","typeMatch","sourceUrl","startsWith","window","location","baseUrl","endsWith","addBase","stores","names","t","refSeqs","nameUrl","trackConfig","c","store","trackClassName","regularizeClass","synthesizeTrackStoreConfig","histograms","root","className","includes","guessStoreClass","urlTemplate","backendVersion","mainConf","storeClass","storeConf","useAsRefSeqStore","refseqs","objectHash","isUriLocation","isLocalPathLocation","localPath","fetchJb1","dataRoot","baseConfig","include","baseConfigRoot","protocol","dataRootReg","stringify","dataRootLocation","baseProtocol","baseConfigLocation","newConfig","fetchedConfig","fetchConfigFile","mergeConfigs","createFinalConfig","defaults","configDefaults","configWithDefaults","loadIncludes","finalConfig","fillTemplates","validateConfig","openLocation","readFile","parseJb1","aTracks","bTracks","mergeTrackConfigs","noRecursiveMerge","index","bT","aT","inputConfig","loadRecur","upstreamConf","newUpstreamConf","regularizeIncludes","loads","cacheBuster","includedData","all","includedDataObjects","format","version","subconfig","sub","propName","containerID","show_tracklist","show_nav","show_menu","show_overview","show_fullviewlink","update_browser_title","updateBrowserURL","datasets","_DEFAULT_EXAMPLES","volvox","modencode","yeast","highlightSearchedRegions","highResolutionMode","convertTrackConfig","jb1TrackConfig","sequenceAdapter","jb2TrackConfig","metadata","Description","category","trackIdentifier","generateUnsupportedTrackConf","generateFromConfigTrackConfig","resolveUrlTemplate","adapter","bamLocation","baiUrlTemplate","csiUrlTemplate","indexType","cramLocation","craiUrlTemplate","craiLocation","defaultRendering","bigWigLocation","vcfGzLocation","tbiUrlTemplate","bigBedLocation","gffGzLocation","bedGzLocation","fastaLocation","faiUrlTemplate","faiLocation","gziUrlTemplate","gziLocation","twoBitLocation","guessAdapter","UNSUPPORTED","UNKNOWN","generateUnknownTrackConf","guessTrackType","jb1Features","features","jb2Features","feature","jb2Feature","seq_id","uniqueId","pluginManager","types","compose","BaseConnectionModelFactory","model","configuration","ConfigurationReference","configSchema","literal","actions","connect","session","getSession","assemblyName","assemblyConf","find","assembly","jb2Tracks","jb1Track","jb2Track","setTrackConfs","notify","breakConnection","LegacyJBrowsePlugin","addAdapterType","AdapterType","ncListAdapterConfigSchema","getAdapterClass","addTextSearchAdapterType","TextSearchAdapterType","jbrowse1AdapterConfigSchema","AdapterClass","JBrowse1TextSearchAdapterClass","addConnectionType","ConnectionType","jbrowse1ConfigSchema","stateModel","jbrowse1ModelFactory","Plugin","jb2ToJb1","jb1ToJb2","NCListFeature","ncFeature","parent","parentHandle","tag","mapped","attrName","attr","get","jb2TagToJb1Tag","subfeature","tags","jb1TagToJb2Tag","mappedTag","subfeatures","f","toJSON","NCListAdapter","configRefNames","nclist","NCListStore","openUrl","region","opts","ObservableCreate","observer","signal","getFeatures","checkAbortSignal","wrapFeature","getDataRoot","stats","featureCount","BaseFeatureDataAdapter"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-legacy-jbrowse.cjs.development.js","sources":["../src/NCListAdapter/configSchema.ts","../../../node_modules/regenerator-runtime/runtime.js","../src/JBrowse1TextSeachAdapter/HttpMap.ts","../src/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.ts","../src/JBrowse1TextSeachAdapter/configSchema.ts","../src/JBrowse1Connection/configSchema.ts","../src/JBrowse1Connection/util.ts","../src/JBrowse1Connection/jb1ConfigParse.ts","../src/JBrowse1Connection/jb1ConfigLoad.ts","../src/JBrowse1Connection/jb1ToJb2.ts","../src/JBrowse1Connection/model.js","../src/index.ts","../src/NCListAdapter/NCListFeature.ts","../src/NCListAdapter/NCListAdapter.ts"],"sourcesContent":["import { ConfigurationSchema } from '@jbrowse/core/configuration'\n\nexport default ConfigurationSchema(\n 'NCListAdapter',\n {\n rootUrlTemplate: {\n type: 'fileLocation',\n defaultValue: {\n uri: '/path/to/my/{refseq}/trackData.json',\n locationType: 'UriLocation',\n },\n },\n refNames: {\n type: 'stringArray',\n defaultValue: [],\n description: 'List of refNames used by the NCList used for aliasing',\n },\n },\n { explicitlyTyped: true },\n)\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*\n * Helper class allows reading names index generated in JBrowse1\n * Adapted from https://github.com/GMOD/jbrowse/blob/master/src/JBrowse/Store/Hash.js\n */\nimport crc32 from 'buffer-crc32'\n\nexport default class HttpMap {\n url: string\n\n constructor(args: { url: string }) {\n // make sure url has a trailing slash\n this.url = /\\/$/.test(args.url) ? args.url : `${args.url}/`\n }\n\n /**\n * loads meta.json file from names directory and reads number of hash_bits used\n */\n async readMeta() {\n const meta = await this.loadFile('meta.json')\n const { compress, track_names: tracks } = meta\n const hashHexCharacters = Math.ceil(meta.hash_bits / 4)\n return { hashHexCharacters, compress, tracks }\n }\n\n async getHashHexCharacters() {\n const meta = await this.readMeta()\n return meta.hashHexCharacters\n }\n\n async getCompress() {\n const meta = await this.readMeta()\n return meta.compress\n }\n\n async getTrackNames() {\n const meta = await this.readMeta()\n return meta.tracks\n }\n\n /**\n * Returns contents of a bucket given a key\n * @param key - string\n */\n async get(key: string) {\n const bucket = await this.getBucket(key)\n return bucket[key]\n }\n\n /**\n * Returns a bucket given a key\n * @param key - string\n */\n async getBucket(key: string) {\n const bucketIdent = this.hash(key)\n const hexToDirPath = await this.hexToDirPath(bucketIdent)\n return this.loadFile(hexToDirPath)\n }\n\n /**\n * Loads a file using the url and provided id.\n * Returns response object with contents of the file\n * @param id - string\n */\n async loadFile(id: string) {\n const response = await fetch(`${this.url}${id}`)\n if (!response.ok) {\n throw new Error(`HTTP ${response.status} ${response.statusText}`)\n }\n return response.json()\n }\n\n /**\n * Returns the corresponding path of the file given a hex string\n * @param hex - hex string\n */\n async hexToDirPath(hex: string) {\n // zero-pad the hex string to be 8 chars if necessary\n const hashHexCharacters = await this.getHashHexCharacters()\n if (hashHexCharacters) {\n const compress = await this.getCompress()\n while (hex.length < 8) {\n hex = `0${hex}`\n }\n hex = hex.substr(8 - hashHexCharacters)\n const dirpath = []\n for (let i = 0; i < hex.length; i += 3) {\n dirpath.push(hex.substring(i, i + 3))\n }\n return `${dirpath.join('/')}.json${compress ? 'z' : ''}`\n }\n return ''\n }\n\n hash(data: string) {\n return crc32(Buffer.from(data))\n .toString('hex')\n .toLowerCase()\n .replace('-', 'n')\n }\n}\n","import {\n BaseTextSearchAdapter,\n BaseArgs,\n BaseAdapter,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport BaseResult from '@jbrowse/core/TextSearch/BaseResults'\nimport { Instance } from 'mobx-state-tree'\nimport { readConfObject } from '@jbrowse/core/configuration'\nimport MyConfigSchema from './configSchema'\nimport HttpMap from './HttpMap'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache'\n\nexport interface TooManyHits {\n name: string\n hitLimit: number\n}\n\ninterface SearchResults {\n prefix: ({ name: string } | string)[]\n exact: [string, number, string, string, number, number][]\n}\n\nexport type NamesIndexRecord = string | Array<string | number>\n\n// Jbrowse1 text search adapter\n// Uses index built by generate-names.pl\nexport default class JBrowse1TextSearchAdapter\n extends BaseAdapter\n implements BaseTextSearchAdapter\n{\n httpMap: HttpMap\n\n tracksNames?: string[]\n\n constructor(\n config: Instance<typeof MyConfigSchema>,\n getSubAdapter?: getSubAdapterType,\n pluginManager?: PluginManager,\n ) {\n super(config, getSubAdapter, pluginManager)\n const namesIndexLocation = readConfObject(config, 'namesIndexLocation')\n if (!namesIndexLocation) {\n throw new Error('must provide namesIndexLocation')\n }\n this.httpMap = new HttpMap({\n url: namesIndexLocation.baseUri\n ? new URL(namesIndexLocation.uri, namesIndexLocation.baseUri).href\n : namesIndexLocation.uri,\n })\n }\n\n /**\n * Returns the contents of the file containing the query if it exists\n * else it returns empty\n * @param query - string query\n */\n async loadIndexFile(query: string): Promise<Record<string, SearchResults>> {\n return this.httpMap.getBucket(query)\n }\n\n async searchIndex(args: BaseArgs) {\n const { searchType, queryString } = args\n const tracks = this.tracksNames || (await this.httpMap.getTrackNames())\n const entries = await this.loadIndexFile(queryString.toLowerCase())\n if (entries[queryString]) {\n return this.formatResults(entries[queryString], tracks, searchType)\n }\n return []\n }\n formatResults(results: SearchResults, tracks: string[], searchType?: string) {\n return [\n ...(searchType === 'exact'\n ? []\n : results.prefix.map(result => {\n return new BaseResult({\n label: typeof result === 'object' ? result.name : result,\n matchedAttribute: 'name',\n matchedObject: { result: result },\n })\n })),\n ...results.exact.map(result => {\n const name = result[0] as string\n const trackIndex = result[1] as number\n const refName = result[3] as string\n const start = result[4] as number\n const end = result[5] as number\n const locstring = `${refName || name}:${start}-${end}`\n return new BaseResult({\n locString: locstring,\n label: name,\n matchedAttribute: 'name',\n matchedObject: result,\n trackId: tracks[trackIndex],\n })\n }),\n ].filter(result => result.getLabel() !== 'too many matches')\n }\n\n freeResources() {}\n}\n","import { ConfigurationSchema } from '@jbrowse/core/configuration'\n\nexport default ConfigurationSchema(\n 'JBrowse1TextSearchAdapter',\n {\n // metadata about tracks and assemblies covered by text search adapter\n namesIndexLocation: {\n type: 'fileLocation',\n defaultValue: { uri: '/volvox/names', locationType: 'UriLocation' },\n description: 'the location of the JBrowse1 names index data directory',\n },\n tracks: {\n type: 'stringArray',\n defaultValue: [],\n description: 'List of tracks covered by text search adapter',\n },\n assemblyNames: {\n type: 'stringArray',\n defaultValue: [],\n description: 'List of assemblies covered by text search adapter',\n },\n },\n { explicitlyTyped: true, explicitIdentifier: 'textSearchAdapterId' },\n)\n","import { baseConnectionConfig } from '@jbrowse/core/pluggableElementTypes/models'\nimport { ConfigurationSchema } from '@jbrowse/core/configuration'\n\nexport default ConfigurationSchema(\n 'JBrowse1Connection',\n {\n dataDirLocation: {\n type: 'fileLocation',\n defaultValue: {\n uri: 'http://mysite.com/jbrowse/data/',\n locationType: 'UriLocation',\n },\n description:\n 'the location of the JBrowse 1 data directory, often something like http://mysite.com/jbrowse/data/',\n },\n assemblyNames: {\n description:\n 'name of the assembly the connection belongs to, should be a single entry',\n type: 'stringArray',\n defaultValue: [],\n },\n },\n { baseConfiguration: baseConnectionConfig },\n)\n","import getValue from 'get-value'\nimport { Track, Source } from './types'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isTrack(arg: any): arg is Track {\n return arg && arg.label && typeof arg.label === 'string'\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isSource(arg: any): arg is Source {\n return arg && arg.url && typeof arg.url === 'string'\n}\n\n/**\n * updates a with values from b, recursively\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Obj = Record<string, any>\nexport function deepUpdate(a: Obj, b: Obj): Obj {\n for (const prop of Object.keys(b)) {\n if (\n prop in a &&\n typeof b[prop] === 'object' &&\n typeof a[prop] === 'object'\n ) {\n deepUpdate(a[prop], b[prop])\n } else if (\n typeof a[prop] === 'undefined' ||\n typeof b[prop] !== 'undefined'\n ) {\n a[prop] = b[prop]\n }\n }\n return a\n}\n\n/**\n * replace variables in a template string with values\n * @param template - String with variable names in curly brackets\n * e.g., `http://foo/{bar}?arg={baz.foo}`\n * @param fillWith - object with attribute-value mappings\n * e.g., `{ 'bar': 'someurl', 'baz': { 'foo': 42 } }`\n * @returns the template string with variables in fillWith replaced\n * e.g., 'htp://foo/someurl?arg=valueforbaz'\n */\nexport function fillTemplate(template: string, fillWith: Obj): string {\n return template.replace(\n /\\{([\\w\\s.]+)\\}/g,\n (match, varName: string): string => {\n varName = varName.replace(/\\s+/g, '') // remove all whitespace\n const fill = getValue(fillWith, varName)\n if (fill !== undefined) {\n if (typeof fill === 'function') {\n return fill(varName)\n }\n return fill\n }\n if (fillWith.callback) {\n // @ts-ignore\n const v = fillWith.callback.call(this, varName)\n if (v !== undefined) {\n return v\n }\n }\n return match\n },\n )\n}\n\n/**\n * Clones objects (including DOM nodes) and all children.\n * Warning: do not clone cyclic structures\n * (Lifted from dojo https://github.com/dojo/dojo/blob/master/_base/lang.js)\n * @param src - The object to clone\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function clone(src: any): any {\n if (\n !src ||\n typeof src !== 'object' ||\n Object.prototype.toString.call(src) === '[object Function]'\n ) {\n // null, undefined, any non-object, or function\n return src // anything\n }\n if (src.nodeType && 'cloneNode' in src) {\n // DOM Node\n return src.cloneNode(true) // Node\n }\n if (src instanceof Date) {\n // Date\n return new Date(src.getTime()) // Date\n }\n if (src instanceof RegExp) {\n // RegExp\n return new RegExp(src) // RegExp\n }\n let r\n let i\n let l\n if (Array.isArray(src)) {\n // array\n r = []\n for (i = 0, l = src.length; i < l; ++i) {\n if (i in src) {\n r[i] = clone(src[i])\n }\n }\n // we don't clone functions for performance reasons\n // }else if(d.isFunction(src)){\n // // function\n // r = function(){ return src.apply(this, arguments); };\n } else {\n // generic objects\n r = src.constructor ? new src.constructor() : {}\n }\n return mixin(r, src, clone)\n}\n\n/**\n * Copies/adds all properties of source to dest; returns dest.\n * (Lifted from dojo https://github.com/dojo/dojo/blob/master/_base/lang.js)\n *\n * All properties, including functions (sometimes termed \"methods\"), excluding\n * any non-standard extensions found in Object.prototype, are copied/added to\n * dest. Copying/adding each particular property is delegated to copyFunc\n * (if any); copyFunc defaults to the Javascript assignment operator if not\n * provided. Notice that by default, mixin executes a so-called \"shallow copy\"\n * and aggregate types are copied/added by reference.\n * @param dest - The object to which to copy/add all properties contained in\n * source.\n * @param source - The object from which to draw all properties to copy into dest.\n * @param copyFunc - The process used to copy/add a property in source; defaults\n * to the Javascript assignment operator.\n * @returns dest, as modified\n */\nfunction mixin(dest: Obj, source: Obj, copyFunc: Function): Obj {\n let name\n let s\n const empty = {}\n for (name in source) {\n // the (!(name in empty) || empty[name] !== s) condition avoids copying\n // properties in \"source\" inherited from Object.prototype.\t For example,\n // if dest has a custom toString() method, don't overwrite it with the\n // toString() method that source inherited from Object.prototype\n s = source[name]\n if (\n !(name in dest) ||\n // @ts-ignore\n (dest[name] !== s && (!(name in empty) || empty[name] !== s))\n ) {\n dest[name] = copyFunc ? copyFunc(s) : s\n }\n }\n\n return dest // Object\n}\n","/* eslint no-cond-assign: [\"error\", \"except-parens\"] */\nimport getValue from 'get-value'\nimport setValue from 'set-value'\nimport { objectHash } from '@jbrowse/core/util'\nimport { isSource, isTrack } from './util'\nimport { Config, Track, Source, Store, Names } from './types'\n\nexport function parseJB1Json(config: Config | string, url: string): Config {\n if (typeof config === 'string') {\n let parsedConf\n try {\n parsedConf = JSON.parse(config)\n } catch (error) {\n throw new Error(`${error} when parsing configuration.`)\n }\n return regularizeConf(parsedConf, url)\n }\n return regularizeConf(config, url)\n}\n\nexport function parseJB1Conf(config: string, url: string): Config {\n let parsedConf\n try {\n parsedConf = parse(config, url)\n } catch (error) {\n throw new Error(`${error} when parsing configuration.`)\n }\n return regularizeConf(parsedConf, url)\n}\n\nfunction isAlwaysArray(varName: string): boolean {\n if (varName === 'include') {\n return true\n }\n return false\n}\n\nfunction parse(text: string, url: string): Config {\n let section: string[] = []\n let keyPath: string[] | undefined\n let operation: string\n let value: string | undefined\n const data: Config = { tracks: {} }\n let lineNumber: number\n\n function recordVal(): void {\n if (value !== undefined) {\n let parsedValue:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n try {\n // parse json\n const match = value.match(/^json:(.+)/i)\n if (match) {\n parsedValue = JSON.parse(match[1])\n }\n // parse numbers if it looks numeric\n else if (/^[+-]?[\\d.,]+([eE][-+]?\\d+)?$/.test(value)) {\n parsedValue = parseFloat(value.replace(/,/g, ''))\n } else {\n parsedValue = value\n }\n\n if (!keyPath) {\n throw new Error(`Error parsing in section ${section.join(' - ')}`)\n }\n const path = section.concat(keyPath).join('.')\n if (operation === '+=') {\n let existing = getValue(data, path)\n if (existing) {\n if (!Array.isArray(existing)) {\n existing = [existing]\n }\n } else {\n existing = []\n }\n\n existing.push(parsedValue)\n parsedValue = existing\n }\n if (parsedValue === 'true') {\n parsedValue = true\n }\n if (parsedValue === 'false') {\n parsedValue = false\n }\n setValue(data, path, parsedValue)\n } catch (e) {\n throw new Error(\n `syntax error${url ? ` in ${url}` : ''}${\n lineNumber ? ` at line ${lineNumber - 1}` : ''\n }`,\n )\n }\n }\n }\n\n text.split('\\n').forEach((textLine, i): void => {\n lineNumber = i + 1\n const line = textLine.replace(/^\\s*#.+/, '')\n\n // new section\n let match: RegExpMatchArray | null\n if ((match = line.match(/^\\s*\\[([^\\]]+)/))) {\n // new section\n recordVal()\n keyPath = undefined\n value = undefined\n section = match[1].trim().split(/\\s*\\.\\s*/)\n if (section.length === 1 && section[0].toLowerCase() === 'general') {\n section = []\n }\n }\n // new value\n else if (\n (match = line.match(\n value === undefined ? /^([^+=]+)(\\+?=)(.*)/ : /^(\\S[^+=]+)(\\+?=)(.*)/,\n ))\n ) {\n recordVal()\n keyPath = match[1].trim().split(/\\s*\\.\\s*/)\n ;[, , operation] = match\n if (isAlwaysArray(section.concat(keyPath).join('.'))) {\n operation = '+='\n }\n value = match[3].trim()\n }\n // add to existing array value\n else if (\n keyPath !== undefined &&\n (match = line.match(/^\\s{0,4}\\+\\s*(.+)/))\n ) {\n recordVal()\n operation = '+='\n value = match[1].trim()\n }\n // add to existing value\n else if (value !== undefined && (match = line.match(/^\\s+(\\S.*)/))) {\n value += value.length ? ` ${match[1].trim()}` : match[1].trim()\n }\n // done with last value\n else {\n recordVal()\n keyPath = undefined\n value = undefined\n }\n })\n\n recordVal()\n\n return data\n}\n\n/**\n * Applies defaults and any other necessary tweaks to the loaded configuration.\n * @param conf - the object containing the configuration, which it modifies\n * in-place\n * @param url - URL of the config file\n * @returns the same object it was passed\n */\nexport function regularizeConf(conf: Config, url: string): Config {\n // if tracks is not an array, convert it to one\n if (conf.tracks && !Array.isArray(conf.tracks)) {\n // if it's a single track config, wrap it in an arrayref\n if (isTrack(conf.tracks)) {\n conf.tracks = [conf.tracks]\n }\n // otherwise, coerce it to an array\n else {\n const tracks: Track[] = []\n for (const label of Object.keys(conf.tracks)) {\n const track = conf.tracks[label]\n if (isTrack(track)) {\n tracks.push(track)\n } else {\n tracks.push({ label, ...track })\n }\n }\n conf.tracks = tracks\n }\n }\n\n // regularize trackMetadata.sources\n const meta = conf.trackMetadata\n if (meta && meta.sources) {\n // if it's a single source config, wrap it in an arrayref\n if (typeof meta.sources === 'string') {\n meta.sources = [meta.sources]\n }\n if (isSource(meta.sources)) {\n meta.sources = [meta.sources]\n }\n\n if (!Array.isArray(meta.sources)) {\n const sources: Source[] = []\n for (const name of Object.keys(meta.sources)) {\n const source = meta.sources[name]\n if (!('name' in source)) {\n source.name = name\n }\n sources.push(source)\n }\n meta.sources = sources\n }\n\n // coerce any string source defs to be URLs, and try to detect their types\n meta.sources = meta.sources.map((sourceDef: string | Source): Source => {\n if (typeof sourceDef === 'string') {\n const newSourceDef: Source = { url: sourceDef }\n const typeMatch = sourceDef.match(/\\.(\\w+)$/)\n if (typeMatch) {\n newSourceDef.type = typeMatch[1].toLowerCase()\n }\n return newSourceDef\n }\n return sourceDef\n })\n }\n\n conf.sourceUrl = conf.sourceUrl || url\n if (conf.sourceUrl.startsWith('/')) {\n conf.sourceUrl = new URL(conf.sourceUrl, window.location.href).href\n }\n conf.baseUrl = conf.baseUrl || new URL('.', conf.sourceUrl).href\n if (conf.baseUrl.length && !conf.baseUrl.endsWith('/')) {\n conf.baseUrl += '/'\n }\n\n if (conf.sourceUrl) {\n // set a default baseUrl in each of the track and store confs, and the names\n // conf, if needed\n const addBase: (Track | Store | Names)[] = []\n if (conf.tracks) {\n addBase.push(...conf.tracks)\n }\n if (conf.stores) {\n addBase.push(...Object.values(conf.stores))\n }\n if (conf.names) {\n addBase.push(conf.names)\n }\n\n addBase.forEach((t): void => {\n if (!t.baseUrl) {\n t.baseUrl = conf.baseUrl || '/'\n }\n })\n\n // resolve the refSeqs and nameUrl if present\n if (conf.refSeqs && typeof conf.refSeqs === 'string') {\n conf.refSeqs = new URL(conf.refSeqs, conf.sourceUrl).href\n }\n if (conf.nameUrl) {\n conf.nameUrl = new URL(conf.nameUrl, conf.sourceUrl).href\n }\n }\n\n conf.stores = conf.stores || {}\n ;(conf.tracks || []).forEach((trackConfig: Track): void => {\n // if there is a `config` subpart, just copy its keys in to the top-level\n // config\n if (trackConfig.config) {\n const c = trackConfig.config\n delete trackConfig.config\n trackConfig = { ...c, ...trackConfig }\n }\n\n // skip if it's a new-style track def\n if (trackConfig.store) {\n return\n }\n\n let trackClassName: string\n if (trackConfig.type === 'FeatureTrack') {\n trackClassName = 'JBrowse/View/Track/HTMLFeatures'\n } else if (trackConfig.type === 'ImageTrack') {\n trackClassName = 'JBrowse/View/Track/FixedImage'\n } else if (trackConfig.type === 'ImageTrack.Wiggle') {\n trackClassName = 'JBrowse/View/Track/FixedImage/Wiggle'\n } else if (trackConfig.type === 'SequenceTrack') {\n trackClassName = 'JBrowse/View/Track/Sequence'\n } else {\n trackClassName = regularizeClass('JBrowse/View/Track', trackConfig.type)\n }\n\n trackConfig.type = trackClassName\n\n synthesizeTrackStoreConfig(conf, trackConfig)\n\n if (trackConfig.histograms) {\n if (!trackConfig.histograms.baseUrl) {\n trackConfig.histograms.baseUrl = trackConfig.baseUrl\n }\n synthesizeTrackStoreConfig(conf, trackConfig.histograms)\n }\n })\n\n return conf\n}\n\n/**\n * prefix class name with `root` if it contains no slashes\n * @param root - Prefix root\n * @param className - class name\n */\nfunction regularizeClass(root: string, className: string | undefined): string {\n if (!className) {\n return ''\n }\n if (!className.includes('/')) {\n className = `${root}/${className}`\n }\n className = className.replace(/^\\//, '')\n return className\n}\n\nfunction guessStoreClass(\n trackConfig: Track | undefined,\n urlTemplate: string,\n): string {\n if (!trackConfig) {\n return ''\n }\n if (trackConfig.type && trackConfig.type.includes('/FixedImage')) {\n return `JBrowse/Store/TiledImage/Fixed${\n trackConfig.backendVersion === 0 ? '_v0' : ''\n }`\n }\n if (/\\.jsonz?$/i.test(urlTemplate)) {\n return `JBrowse/Store/SeqFeature/NCList${\n trackConfig.backendVersion === 0 ? '_v0' : ''\n }`\n }\n if (/\\.bam$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BAM'\n }\n if (/\\.cram$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/CRAM'\n }\n if (/\\.gff3?$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/GFF3'\n }\n if (/\\.bed$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BED'\n }\n if (/\\.vcf.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/VCFTabix'\n }\n if (/\\.gff3?.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/GFF3Tabix'\n }\n if (/\\.bed.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BEDTabix'\n }\n if (/\\.(bw|bigwig)$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BigWig'\n }\n if (/\\.(bb|bigbed)$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BigBed'\n }\n if (/\\.(fa|fasta)$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/IndexedFasta'\n }\n if (/\\.(fa|fasta)\\.b?gz$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/BgzipIndexedFasta'\n }\n if (/\\.2bit$/i.test(urlTemplate)) {\n return 'JBrowse/Store/SeqFeature/TwoBit'\n }\n if (trackConfig.type && trackConfig.type.endsWith('/Sequence')) {\n return 'JBrowse/Store/Sequence/StaticChunked'\n }\n return ''\n}\n\nfunction synthesizeTrackStoreConfig(\n mainConf: Config,\n trackConfig: Track,\n): void {\n // figure out what data store class to use with the track, applying some\n // defaults if it is not explicit in the configuration\n const { urlTemplate = '' } = trackConfig\n\n let storeClass: string\n if (trackConfig.storeClass) {\n storeClass = regularizeClass('JBrowse/Store', trackConfig.storeClass)\n } else {\n storeClass = guessStoreClass(trackConfig, urlTemplate)\n }\n\n if (!storeClass) {\n console.warn(\n `Unable to determine an appropriate data store to use with track '${trackConfig.label}', please explicitly specify a storeClass in the configuration.`,\n )\n return\n }\n\n // synthesize a separate store conf\n const storeConf: Store = { ...trackConfig, type: storeClass }\n\n // if this is the first sequence store we see, and we have no refseqs store\n // defined explicitly, make this the refseqs store.\n if (\n (storeClass === 'JBrowse/Store/Sequence/StaticChunked' ||\n storeClass === 'JBrowse/Store/Sequence/IndexedFasta' ||\n storeClass === 'JBrowse/Store/SeqFeature/IndexedFasta' ||\n storeClass === 'JBrowse/Store/SeqFeature/BgzipIndexedFasta' ||\n storeClass === 'JBrowse/Store/SeqFeature/TwoBit' ||\n storeClass === 'JBrowse/Store/Sequence/TwoBit' ||\n trackConfig.useAsRefSeqStore) &&\n !(mainConf.stores && mainConf.stores.refseqs)\n ) {\n storeConf.name = 'refseqs'\n } else {\n storeConf.name = `store${objectHash(storeConf)}`\n }\n // record it\n if (!mainConf.stores) {\n mainConf.stores = {}\n }\n mainConf.stores[storeConf.name] = storeConf\n\n // connect it to the track conf\n trackConfig.store = storeConf.name\n}\n","import { openLocation } from '@jbrowse/core/util/io'\nimport { parseJB1Json, parseJB1Conf, regularizeConf } from './jb1ConfigParse'\nimport { clone, deepUpdate, fillTemplate } from './util'\nimport {\n JBLocation,\n UriLocation,\n LocalPathLocation,\n Config,\n Track,\n Include,\n} from './types'\n\nfunction isUriLocation(location: JBLocation): location is UriLocation {\n return (location as UriLocation).uri !== undefined\n}\n\nfunction isLocalPathLocation(\n location: JBLocation,\n): location is LocalPathLocation {\n return (location as LocalPathLocation).localPath !== undefined\n}\n\nexport async function fetchJb1(\n dataRoot: JBLocation = { uri: '', locationType: 'UriLocation' },\n baseConfig: Config = {\n include: ['{dataRoot}/trackList.json', '{dataRoot}/tracks.conf'],\n },\n baseConfigRoot: JBLocation = { uri: '', locationType: 'UriLocation' },\n): Promise<Config> {\n const protocol = 'uri' in dataRoot ? 'uri' : 'localPath'\n const dataRootReg = JSON.parse(JSON.stringify(dataRoot))\n let dataRootLocation = ''\n if (isUriLocation(dataRoot)) {\n dataRootLocation = dataRoot.uri\n }\n if (isLocalPathLocation(dataRoot)) {\n dataRootLocation = dataRoot.localPath\n }\n if (dataRootLocation.endsWith('/')) {\n dataRootReg[protocol] = dataRootLocation.slice(\n 0,\n dataRootLocation.length - 1,\n )\n }\n if (\n (isUriLocation(baseConfigRoot) && baseConfigRoot.uri) ||\n (isLocalPathLocation(baseConfigRoot) && baseConfigRoot.localPath)\n ) {\n const baseProtocol = 'uri' in baseConfigRoot ? 'uri' : 'localPath'\n let baseConfigLocation = ''\n if (isUriLocation(baseConfigRoot)) {\n baseConfigLocation = baseConfigRoot.uri\n }\n if (isLocalPathLocation(baseConfigRoot)) {\n baseConfigLocation = baseConfigRoot.localPath\n }\n if (baseConfigLocation.endsWith('/')) {\n baseConfigLocation = baseConfigLocation.slice(\n 0,\n baseConfigLocation.length - 1,\n )\n }\n let newConfig: Config = {}\n for (const conf of ['jbrowse.conf', 'jbrowse_conf.json']) {\n let fetchedConfig = null\n try {\n // @ts-ignore\n fetchedConfig = await fetchConfigFile({\n [baseProtocol]: `${baseConfigLocation}/${conf}`,\n })\n } catch (error) {\n console.error(\n `tried to access ${baseConfigLocation}/${conf}, but failed`,\n )\n }\n newConfig = mergeConfigs(newConfig, fetchedConfig) || {}\n }\n if (dataRootReg[protocol]) {\n newConfig.dataRoot = dataRootReg[protocol]\n }\n return createFinalConfig(newConfig)\n }\n const newConfig = regularizeConf(baseConfig, window.location.href)\n if (dataRootReg[protocol]) {\n newConfig.dataRoot = dataRootReg[protocol]\n }\n return createFinalConfig(newConfig)\n}\n\nexport async function createFinalConfig(\n baseConfig: Config,\n defaults = configDefaults,\n): Promise<Config> {\n const configWithDefaults = deepUpdate(clone(defaults), baseConfig)\n let finalConfig = await loadIncludes(configWithDefaults)\n finalConfig = mergeConfigs(finalConfig, baseConfig) || finalConfig\n fillTemplates(finalConfig, finalConfig)\n validateConfig(finalConfig)\n return finalConfig\n}\n\nexport async function fetchConfigFile(location: JBLocation): Promise<Config> {\n const result = await openLocation(location).readFile('utf8')\n if (typeof result !== 'string') {\n throw new Error(`Error opening location: ${location}`)\n }\n if (isUriLocation(location)) {\n return parseJb1(result, location.uri)\n }\n if (isLocalPathLocation(location)) {\n return parseJb1(result, location.localPath)\n }\n return parseJb1(result)\n}\n\nexport function parseJb1(config: string, url = ''): Config {\n if (config.trim().startsWith('{')) {\n return parseJB1Json(config, url)\n }\n return parseJB1Conf(config, url)\n}\n\n/**\n * Merges config object b into a. Properties in b override those in a.\n */\nfunction mergeConfigs(a: Config | null, b: Config | null): Config | null {\n if (b === null) {\n return null\n }\n\n if (a === null) {\n a = {}\n }\n\n for (const prop of Object.keys(b)) {\n if (prop === 'tracks' && prop in a) {\n const aTracks = a[prop] || []\n const bTracks = b[prop] || []\n if (Array.isArray(aTracks) && Array.isArray(bTracks)) {\n a[prop] = mergeTrackConfigs(aTracks || [], bTracks || [])\n } else {\n throw new Error(\n `Track config has not been properly regularized: ${aTracks} ${bTracks}`,\n )\n }\n } else if (\n !noRecursiveMerge(prop) &&\n prop in a &&\n // @ts-ignore\n typeof b[prop] === 'object' &&\n // @ts-ignore\n typeof a[prop] === 'object'\n ) {\n // @ts-ignore\n a[prop] = deepUpdate(a[prop], b[prop])\n } else if (prop === 'dataRoot') {\n if (\n a[prop] === undefined ||\n (a[prop] === 'data' && b[prop] !== undefined)\n ) {\n a[prop] = b[prop]\n }\n // @ts-ignore\n } else if (a[prop] === undefined || b[prop] !== undefined) {\n // @ts-ignore\n a[prop] = b[prop]\n }\n }\n return a\n}\n\n/**\n * Special-case merging of two `tracks` configuration arrays.\n */\nfunction mergeTrackConfigs(a: Track[], b: Track[]): Track[] {\n if (!b.length) {\n return a\n }\n\n // index the tracks in `a` by track label\n const aTracks: Record<string, Track> = {}\n a.forEach((t, i): void => {\n t.index = i\n aTracks[t.label] = t\n })\n\n b.forEach((bT): void => {\n const aT = aTracks[bT.label]\n if (aT) {\n mergeConfigs(aT, bT)\n } else {\n a.push(bT)\n }\n })\n\n return a\n}\n\n/**\n * Recursively fetch, parse, and merge all the includes in the given config\n * object. Calls the callback with the resulting configuration when finished.\n * @param inputConfig - Config to load includes into\n */\nasync function loadIncludes(inputConfig: Config): Promise<Config> {\n inputConfig = clone(inputConfig)\n\n async function loadRecur(\n config: Config,\n upstreamConf: Config,\n ): Promise<Config> {\n const sourceUrl = config.sourceUrl || config.baseUrl\n if (!sourceUrl) {\n throw new Error(\n `Could not determine source URL: ${JSON.stringify(config)}`,\n )\n }\n const newUpstreamConf = mergeConfigs(clone(upstreamConf), config)\n if (!newUpstreamConf) {\n throw new Error('Problem merging configs')\n }\n const includes = fillTemplates(\n regularizeIncludes(config.include || []),\n newUpstreamConf,\n )\n delete config.include\n\n const loads = includes.map(async (include): Promise<Config> => {\n include.cacheBuster = inputConfig.cacheBuster\n const includedData = await fetchConfigFile({\n uri: new URL(include.url, sourceUrl).href,\n locationType: 'UriLocation',\n })\n return loadRecur(includedData, newUpstreamConf)\n })\n const includedDataObjects = await Promise.all(loads)\n includedDataObjects.forEach((includedData): void => {\n config = mergeConfigs(config, includedData) || config\n })\n return config\n }\n\n return loadRecur(inputConfig, {})\n}\n\nfunction regularizeIncludes(\n includes: Include | string | (Include | string)[] | null,\n): Include[] {\n if (!includes) {\n return []\n }\n\n // coerce include to an array\n if (!Array.isArray(includes)) {\n includes = [includes]\n }\n\n return includes.map((include): Include => {\n // coerce bare strings in the includes to URLs\n if (typeof include === 'string') {\n include = { url: include }\n }\n\n // set defaults for format and version\n if (!('format' in include)) {\n include.format = include.url.endsWith('.conf') ? 'conf' : 'JB_json'\n }\n if (include.format === 'JB_json' && !('version' in include)) {\n include.version = 1\n }\n return include\n })\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction fillTemplates<T extends any>(subconfig: T, config: Config): T {\n if (!subconfig) {\n return subconfig\n }\n if (Array.isArray(subconfig)) {\n for (let i = 0; i < subconfig.length; i += 1) {\n subconfig[i] = fillTemplates(subconfig[i], config)\n }\n } else if (typeof subconfig === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const sub = subconfig as Record<string, any>\n for (const name of Object.keys(sub)) {\n sub[name] = fillTemplates(sub[name], config)\n }\n } else if (typeof subconfig === 'string') {\n // @ts-ignore\n return fillTemplate(subconfig, config)\n }\n\n return subconfig\n}\n\n/**\n * list of config properties that should not be recursively merged\n * @param propName - name of config property\n */\nfunction noRecursiveMerge(propName: string): boolean {\n return propName === 'datasets'\n}\n\nconst configDefaults = {\n tracks: [],\n\n containerID: 'GenomeBrowser',\n dataRoot: 'data',\n show_tracklist: true,\n show_nav: true,\n show_menu: true,\n show_overview: true,\n show_fullviewlink: true,\n update_browser_title: true,\n updateBrowserURL: true,\n\n refSeqs: '{dataRoot}/seq/refSeqs.json',\n include: ['jbrowse.conf', 'jbrowse_conf.json'],\n nameUrl: '{dataRoot}/names/root.json',\n\n datasets: {\n _DEFAULT_EXAMPLES: true,\n volvox: { url: '?data=sample_data/json/volvox', name: 'Volvox Example' },\n modencode: {\n url: '?data=sample_data/json/modencode',\n name: 'MODEncode Example',\n },\n yeast: { url: '?data=sample_data/json/yeast', name: 'Yeast Example' },\n },\n\n highlightSearchedRegions: false,\n highResolutionMode: 'auto',\n}\n\n/**\n * Examine the loaded and merged configuration for errors. Throws\n * exceptions if it finds anything amiss.\n * @returns nothing meaningful\n */\nfunction validateConfig(config: Config): void {\n if (!config.tracks) {\n config.tracks = []\n }\n if (!config.baseUrl) {\n throw new Error('Must provide a `baseUrl` in configuration')\n }\n}\n","import { openLocation } from '@jbrowse/core/util/io'\nimport { objectHash } from '@jbrowse/core/util'\nimport {\n generateUnknownTrackConf,\n generateUnsupportedTrackConf,\n guessAdapter,\n guessTrackType,\n UNKNOWN,\n UNSUPPORTED,\n} from '@jbrowse/core/util/tracks'\nimport { Track, RefSeqs, RefSeq } from './types'\n\ninterface Jb2Track {\n trackId: string\n name: string\n description?: string\n category?: string[]\n adapter?: Jb2Adapter\n type?: string\n defaultRendering?: string\n}\n\ninterface Jb2Adapter {\n type: string\n features?: Jb2Feature[]\n bamLocation?: Jb2Location\n cramLocation?: Jb2Location\n craiLocation?: Jb2Location\n fastaLocation?: Jb2Location\n faiLocation?: Jb2Location\n gziLocation?: Jb2Location\n twoBitLocation?: Jb2Location\n bigWigLocation?: Jb2Location\n bigBedLocation?: Jb2Location\n vcfGzLocation?: Jb2Location\n gffGzLocation?: Jb2Location\n bedGzLocation?: Jb2Location\n index?: { location: Jb2Location; indexType?: string }\n rootUrlTemplate?: Jb2Location\n sequenceAdapter?: Jb2Adapter\n}\n\ninterface Jb2Feature {\n refName: string\n uniqueId: string\n start: number\n end: number\n}\n\ninterface Jb2Location {\n uri?: string\n localPath?: string\n blobId?: string\n locationType?: string\n}\n\nexport function convertTrackConfig(\n jb1TrackConfig: Track,\n dataRoot: string,\n sequenceAdapter: Jb2Adapter,\n): Jb2Track {\n const jb2TrackConfig: Jb2Track = {\n trackId: objectHash(jb1TrackConfig),\n name: jb1TrackConfig.key || jb1TrackConfig.label,\n }\n\n const description =\n jb1TrackConfig.metadata &&\n (jb1TrackConfig.metadata.description || jb1TrackConfig.metadata.Description)\n if (description) {\n jb2TrackConfig.description = description\n }\n\n const category =\n jb1TrackConfig.category ||\n (jb1TrackConfig.metadata && jb1TrackConfig.metadata.category)\n jb2TrackConfig.category = category ? category.split(/\\s*\\/\\s*/) : []\n\n const { storeClass } = jb1TrackConfig\n if (!jb1TrackConfig.urlTemplate) {\n if (!(storeClass && storeClass.endsWith('FromConfig'))) {\n const trackIdentifier = jb1TrackConfig.key || jb1TrackConfig.label\n console.warn(\n `Could not import JBrowse1 track \"${trackIdentifier}\" because it does not have a \"urlTemplate\" or is not a \"FromConfig\" track`,\n )\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n trackIdentifier,\n jb2TrackConfig.category,\n )\n }\n return generateFromConfigTrackConfig(jb1TrackConfig, jb2TrackConfig)\n }\n\n const resolveUrlTemplate = (urlTemplate: string) => {\n return new URL(urlTemplate, `${dataRoot}/`).href\n .replace(/%7B/gi, '{')\n .replace(/%7D/gi, '}')\n }\n const urlTemplate = resolveUrlTemplate(jb1TrackConfig.urlTemplate)\n\n if (storeClass) {\n if (storeClass === 'JBrowse/Store/SeqFeature/BAM') {\n const adapter: Jb2Adapter = {\n type: 'BamAdapter',\n bamLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n }\n if (jb1TrackConfig.baiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.baiUrlTemplate),\n locationType: 'UriLocation',\n },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate),\n locationType: 'UriLocation',\n },\n indexType: 'CSI',\n }\n } else {\n adapter.index = {\n location: { uri: `${urlTemplate}.bai`, locationType: 'UriLocation' },\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'AlignmentsTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/CRAM') {\n const adapter: Jb2Adapter = {\n type: 'CramAdapter',\n cramLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n sequenceAdapter,\n }\n if (jb1TrackConfig.craiUrlTemplate) {\n adapter.craiLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.craiUrlTemplate),\n locationType: 'UriLocation',\n }\n } else {\n adapter.craiLocation = {\n uri: `${urlTemplate}.crai`,\n locationType: 'UriLocation',\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'AlignmentsTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/NCList') {\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter: {\n type: 'NCListAdapter',\n rootUrlTemplate: { uri: urlTemplate, locationType: 'UriLocation' },\n },\n }\n }\n if (\n storeClass === 'JBrowse/Store/SeqFeature/BigWig' ||\n storeClass === 'JBrowse/Store/BigWig'\n ) {\n if (jb1TrackConfig.type && jb1TrackConfig.type.endsWith('XYPlot')) {\n jb2TrackConfig.defaultRendering = 'xyplot'\n } else if (\n jb1TrackConfig.type &&\n jb1TrackConfig.type.endsWith('Density')\n ) {\n jb2TrackConfig.defaultRendering = 'density'\n }\n return {\n ...jb2TrackConfig,\n type: 'QuantitativeTrack',\n adapter: {\n type: 'BigWigAdapter',\n bigWigLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n },\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/VCFTabix') {\n const adapter: Jb2Adapter = {\n type: 'VcfTabixAdapter',\n vcfGzLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n }\n if (jb1TrackConfig.tbiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.tbiUrlTemplate),\n locationType: 'UriLocation',\n },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate),\n locationType: 'UriLocation',\n },\n indexType: 'CSI',\n }\n } else {\n adapter.index = {\n location: { uri: `${urlTemplate}.tbi`, locationType: 'UriLocation' },\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'VariantTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/VCFTribble') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `VCFTribble (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/GFF3') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `GFF3 (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BigBed') {\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter: {\n type: 'BigBedAdapter',\n bigBedLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n },\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/GFF3Tabix') {\n const adapter: Jb2Adapter = {\n type: 'Gff3TabixAdapter',\n gffGzLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n }\n if (jb1TrackConfig.tbiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.tbiUrlTemplate),\n locationType: 'UriLocation',\n },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate),\n locationType: 'UriLocation',\n },\n indexType: 'CSI',\n }\n } else {\n adapter.index = {\n location: { uri: `${urlTemplate}.tbi`, locationType: 'UriLocation' },\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BED') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `BED (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BEDTabix') {\n const adapter: Jb2Adapter = {\n type: 'BedTabixAdapter',\n bedGzLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n }\n if (jb1TrackConfig.tbiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.tbiUrlTemplate),\n locationType: 'UriLocation',\n },\n }\n } else if (jb1TrackConfig.csiUrlTemplate) {\n adapter.index = {\n location: {\n uri: resolveUrlTemplate(jb1TrackConfig.csiUrlTemplate),\n locationType: 'UriLocation',\n },\n indexType: 'CSI',\n }\n } else {\n adapter.index = {\n location: { uri: `${urlTemplate}.tbi`, locationType: 'UriLocation' },\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'FeatureTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/GTF') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `GTF (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (\n storeClass === 'JBrowse/Store/SeqFeature/StaticChunked' ||\n storeClass === 'JBrowse/Store/Sequence/StaticChunked'\n ) {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `StaticChunked (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/UnindexedFasta') {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n `UnindexedFasta (${urlTemplate})`,\n jb2TrackConfig.category,\n )\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/IndexedFasta') {\n const adapter: Jb2Adapter = {\n type: 'IndexedFastaAdapter',\n fastaLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n }\n if (jb1TrackConfig.faiUrlTemplate) {\n adapter.faiLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.faiUrlTemplate),\n locationType: 'UriLocation',\n }\n } else {\n adapter.faiLocation = {\n uri: `${urlTemplate}.fai`,\n locationType: 'UriLocation',\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'SequenceTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/BgzipIndexedFasta') {\n const adapter: Jb2Adapter = {\n type: 'BgzipFastaAdapter',\n fastaLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n }\n if (jb1TrackConfig.faiUrlTemplate) {\n adapter.faiLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.faiUrlTemplate),\n locationType: 'UriLocation',\n }\n } else {\n adapter.faiLocation = {\n uri: `${urlTemplate}.fai`,\n locationType: 'UriLocation',\n }\n }\n if (jb1TrackConfig.gziUrlTemplate) {\n adapter.gziLocation = {\n uri: resolveUrlTemplate(jb1TrackConfig.gziUrlTemplate),\n locationType: 'UriLocation',\n }\n } else {\n adapter.gziLocation = {\n uri: `${urlTemplate}.gzi`,\n locationType: 'UriLocation',\n }\n }\n return {\n ...jb2TrackConfig,\n type: 'ReferenceSequenceTrack',\n adapter,\n }\n }\n if (storeClass === 'JBrowse/Store/SeqFeature/TwoBit') {\n return {\n ...jb2TrackConfig,\n type: 'ReferenceSequenceTrack',\n adapter: {\n type: 'TwoBitAdapter',\n twoBitLocation: { uri: urlTemplate, locationType: 'UriLocation' },\n },\n }\n }\n }\n\n // If we don't recogize the store class, make a best effort to guess by file type\n jb2TrackConfig.adapter = guessAdapter(\n { uri: urlTemplate, locationType: 'UriLocation' },\n undefined,\n urlTemplate,\n )\n if (!jb2TrackConfig.adapter) {\n throw new Error('Could not determine adapter')\n }\n\n if (jb2TrackConfig.adapter.type === UNSUPPORTED) {\n return generateUnsupportedTrackConf(\n jb2TrackConfig.name,\n urlTemplate,\n jb2TrackConfig.category,\n )\n }\n if (jb2TrackConfig.adapter.type === UNKNOWN) {\n return generateUnknownTrackConf(\n jb2TrackConfig.name,\n urlTemplate,\n jb2TrackConfig.category,\n )\n }\n\n jb2TrackConfig.type = guessTrackType(jb2TrackConfig.adapter.type)\n\n if (jb2TrackConfig.type === 'QuantitativeTrack') {\n if (jb1TrackConfig.type && jb1TrackConfig.type.endsWith('XYPlot')) {\n jb2TrackConfig.defaultRendering = 'xyplot'\n } else if (jb1TrackConfig.type && jb1TrackConfig.type.endsWith('Density')) {\n jb2TrackConfig.defaultRendering = 'density'\n }\n }\n\n return jb2TrackConfig\n}\n\nfunction generateFromConfigTrackConfig(\n jb1TrackConfig: Track,\n jb2TrackConfig: Jb2Track,\n): Jb2Track {\n const jb1Features = jb1TrackConfig.features || []\n const jb2Features = jb1Features.map((feature): Jb2Feature => {\n const jb2Feature: Jb2Feature = JSON.parse(JSON.stringify(feature))\n jb2Feature.refName = feature.seq_id\n jb2Feature.uniqueId = `${feature.seq_id}:${feature.start}-${feature.end}:${\n feature.name || ''\n }`\n return jb2Feature\n })\n jb2TrackConfig.adapter = {\n type: 'FromConfigAdapter',\n features: jb2Features,\n }\n jb2TrackConfig.type = 'FeatureTrack'\n return jb2TrackConfig\n}\n\nexport async function createRefSeqsAdapter(\n refSeqs: string | RefSeqs,\n): Promise<Jb2Adapter> {\n if (typeof refSeqs === 'string') {\n // assume refSeqs is a url if it is string\n refSeqs = {\n url: refSeqs,\n }\n }\n\n // check refseq urls\n if (refSeqs.url) {\n if (refSeqs.url.match(/.fai$/)) {\n return {\n type: 'IndexedFastaAdapter',\n fastaLocation: {\n uri: refSeqs.url.slice(0, -4),\n locationType: 'UriLocation',\n },\n faiLocation: {\n uri: refSeqs.url,\n locationType: 'UriLocation',\n },\n }\n }\n if (refSeqs.url.match(/.2bit$/)) {\n return {\n type: 'TwoBitAdapter',\n twoBitLocation: { uri: refSeqs.url, locationType: 'UriLocation' },\n }\n }\n if (refSeqs.url.match(/.fa$/)) {\n throw new Error('Unindexed FASTA adapter not available')\n }\n if (refSeqs.url.match(/.sizes/)) {\n throw new Error('chromosome SIZES adapter not available')\n }\n const refSeqsJson = await openLocation({\n uri: refSeqs.url,\n locationType: 'UriLocation',\n }).readFile('utf8')\n const refSeqsData: RefSeq[] = JSON.parse(refSeqsJson as string)\n return refSeqAdapterFromConfig(refSeqsData)\n }\n if ('data' in refSeqs) {\n return refSeqAdapterFromConfig(refSeqs.data || [])\n }\n throw new Error(\n `Could not determine adapter for JBrowse1 refSeqs: ${\n refSeqs.url || JSON.stringify(refSeqs)\n }`,\n )\n}\n\nfunction refSeqAdapterFromConfig(refSeqsData: RefSeq[]): Jb2Adapter {\n const features = refSeqsData.map(\n (refSeq): Jb2Feature => ({\n refName: refSeq.name,\n uniqueId: refSeq.name,\n start: refSeq.start,\n end: refSeq.end,\n }),\n )\n return {\n type: 'FromConfigAdapter',\n features,\n }\n}\n","import {\n ConfigurationReference,\n readConfObject,\n} from '@jbrowse/core/configuration'\nimport { getSession } from '@jbrowse/core/util'\nimport { BaseConnectionModelFactory } from '@jbrowse/core/pluggableElementTypes/models'\nimport { types } from 'mobx-state-tree'\nimport configSchema from './configSchema'\n\nimport { fetchJb1 } from './jb1ConfigLoad'\nimport { convertTrackConfig } from './jb1ToJb2'\n\nexport default function (pluginManager) {\n return types.compose(\n 'JBrowse1Connection',\n BaseConnectionModelFactory(pluginManager),\n types\n .model({\n configuration: ConfigurationReference(configSchema),\n type: types.literal('JBrowse1Connection'),\n })\n .actions(self => ({\n connect() {\n const dataDirLocation = readConfObject(\n self.configuration,\n 'dataDirLocation',\n )\n const session = getSession(self)\n fetchJb1(dataDirLocation)\n .then(config => {\n const assemblyName = readConfObject(\n self.configuration,\n 'assemblyNames',\n )[0]\n if (!assemblyName) {\n throw new Error(\n 'assembly name required for JBrowse 1 connection',\n )\n }\n const assemblyConf = session.assemblies.find(\n assembly => readConfObject(assembly, 'name') === assemblyName,\n )\n const sequenceAdapter = readConfObject(assemblyConf, [\n 'sequence',\n 'adapter',\n ])\n const jb2Tracks = config.tracks.map(jb1Track => {\n const jb2Track = convertTrackConfig(\n jb1Track,\n config.dataRoot,\n sequenceAdapter,\n )\n jb2Track.assemblyNames = [assemblyName]\n return jb2Track\n })\n self.setTrackConfs(jb2Tracks)\n })\n .catch(error => {\n console.error(error)\n session.notify(\n `There was a problem connecting to the JBrowse 1 data directory \"${self.name}\". Please make sure you have entered a valid location. The error that was thrown is: \"${error}\"`,\n 'error',\n )\n session.breakConnection(self.configuration)\n })\n },\n })),\n )\n}\n","import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'\nimport TextSearchAdapterType from '@jbrowse/core/pluggableElementTypes/TextSearchAdapterType'\nimport ConnectionType from '@jbrowse/core/pluggableElementTypes/ConnectionType'\nimport Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { FileLocation } from '@jbrowse/core/util/types'\nimport { configSchema as ncListAdapterConfigSchema } from './NCListAdapter'\nimport {\n AdapterClass as JBrowse1TextSearchAdapterClass,\n configSchema as jbrowse1AdapterConfigSchema,\n} from './JBrowse1TextSeachAdapter'\nimport { AdapterGuesser, getFileName } from '@jbrowse/core/util/tracks'\n\nimport {\n configSchema as jbrowse1ConfigSchema,\n modelFactory as jbrowse1ModelFactory,\n} from './JBrowse1Connection'\n\nexport default class LegacyJBrowsePlugin extends Plugin {\n name = 'LegacyJBrowsePlugin'\n\n install(pluginManager: PluginManager) {\n pluginManager.addAdapterType(\n () =>\n new AdapterType({\n name: 'NCListAdapter',\n configSchema: ncListAdapterConfigSchema,\n getAdapterClass: () =>\n import('./NCListAdapter/NCListAdapter').then(r => r.default),\n }),\n )\n pluginManager.addToExtensionPoint(\n 'Core-guessAdapterForLocation',\n (adapterGuesser: AdapterGuesser) => {\n return (\n file: FileLocation,\n index?: FileLocation,\n adapterHint?: string,\n ) => {\n const regexGuess = /trackData.jsonz?$/i\n const adapterName = 'NCListAdapter'\n const fileName = getFileName(file)\n if (regexGuess.test(fileName) || adapterHint === adapterName) {\n return {\n type: adapterName,\n rootUrlTemplate: file,\n }\n }\n return adapterGuesser(file, index, adapterHint)\n }\n },\n )\n\n pluginManager.addTextSearchAdapterType(\n () =>\n new TextSearchAdapterType({\n name: 'JBrowse1TextSearchAdapter',\n configSchema: jbrowse1AdapterConfigSchema,\n AdapterClass: JBrowse1TextSearchAdapterClass,\n description: 'A JBrowse 1 text search adapter',\n }),\n )\n\n pluginManager.addConnectionType(\n () =>\n new ConnectionType({\n name: 'JBrowse1Connection',\n configSchema: jbrowse1ConfigSchema,\n stateModel: jbrowse1ModelFactory(pluginManager),\n displayName: 'JBrowse 1 Data',\n description: 'A JBrowse 1 data directory',\n url: '//jbrowse.org/',\n }),\n )\n }\n}\n","import {\n Feature,\n SimpleFeatureSerialized,\n} from '@jbrowse/core/util/simpleFeature'\n\nconst jb2ToJb1 = { refName: 'seq_id' }\n\nconst jb1ToJb2 = { seq_id: 'refName' }\n\n/**\n * wrapper to adapt nclist features to act like jbrowse 2 features\n */\nexport default class NCListFeature implements Feature {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private ncFeature: any\n\n private parentHandle?: Feature\n\n private uniqueId: string\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(ncFeature: any, parent?: Feature, id?: string) {\n this.ncFeature = ncFeature\n this.uniqueId = id || ncFeature.id()\n this.parentHandle = parent\n }\n\n set(): void {\n throw new Error('not implemented')\n }\n\n jb2TagToJb1Tag(tag: string): string {\n // @ts-ignore\n const mapped = jb2ToJb1[tag] || tag\n return mapped.toLowerCase()\n }\n\n jb1TagToJb2Tag(tag: string): string {\n const t = tag.toLowerCase()\n // @ts-ignore\n const mapped = jb1ToJb2[t] || t\n return mapped\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(attrName: string): any {\n const attr = this.ncFeature.get(this.jb2TagToJb1Tag(attrName))\n if (attr && attrName === 'subfeatures') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return attr.map((subfeature: any) => new NCListFeature(subfeature, this))\n }\n return attr\n }\n\n /**\n * Get an array listing which data keys are present in this feature.\n */\n tags(): string[] {\n return this.ncFeature.tags().map((t: string) => this.jb1TagToJb2Tag(t))\n }\n\n /**\n * Get the unique ID of this feature.\n */\n id(): string {\n return this.uniqueId\n }\n\n /**\n * Get this feature's parent feature, or undefined if none.\n */\n parent(): Feature | undefined {\n return this.parentHandle\n }\n\n /**\n * Get an array of child features, or undefined if none.\n */\n children(): Feature[] | undefined {\n return this.get('subfeatures')\n }\n\n toJSON(): SimpleFeatureSerialized {\n const data: SimpleFeatureSerialized = { uniqueId: this.id() }\n this.ncFeature.tags().forEach((tag: string) => {\n const mappedTag = this.jb1TagToJb2Tag(tag)\n const value = this.ncFeature.get(tag)\n if (mappedTag === 'subfeatures') {\n data.subfeatures = (value || []).map((f: Feature) => {\n // note: was new NCListFeature(f, `${this.id()}-${i}`, this).toJSON()\n return new NCListFeature(f, this).toJSON()\n })\n } else {\n data[mappedTag] = value\n }\n })\n return data\n }\n}\n","import NCListStore from '@gmod/nclist'\nimport { Region } from '@jbrowse/core/util/types'\nimport {\n BaseFeatureDataAdapter,\n BaseOptions,\n} from '@jbrowse/core/data_adapters/BaseAdapter'\nimport { Feature } from '@jbrowse/core/util/simpleFeature'\nimport { ObservableCreate } from '@jbrowse/core/util/rxjs'\nimport { checkAbortSignal } from '@jbrowse/core/util'\nimport { RemoteFile } from 'generic-filehandle'\nimport { Instance } from 'mobx-state-tree'\nimport { readConfObject } from '@jbrowse/core/configuration'\nimport NCListFeature from './NCListFeature'\nimport MyConfigSchema from './configSchema'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache'\n\nexport default class NCListAdapter extends BaseFeatureDataAdapter {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private nclist: any\n\n private configRefNames?: string[]\n\n constructor(\n config: Instance<typeof MyConfigSchema>,\n getSubAdapter?: getSubAdapterType,\n pluginManager?: PluginManager,\n ) {\n super(config, getSubAdapter, pluginManager)\n const refNames = readConfObject(config, 'refNames')\n const rootUrlTemplate = readConfObject(config, 'rootUrlTemplate')\n this.configRefNames = refNames\n\n this.nclist = new NCListStore({\n baseUrl: '',\n urlTemplate: rootUrlTemplate.uri,\n readFile: (url: string) =>\n new RemoteFile(\n String(\n rootUrlTemplate.baseUri\n ? new URL(url, rootUrlTemplate.baseUri).toString()\n : url,\n ),\n ).readFile(),\n })\n }\n\n /**\n * Fetch features for a certain region. Use getFeaturesInRegion() if you also\n * want to verify that the store has features for the given reference sequence\n * before fetching.\n * @param region -\n * @param opts - [signal] optional signalling object for aborting the fetch\n * @returns Observable of Feature objects in the region\n */\n getFeatures(region: Region, opts: BaseOptions = {}) {\n return ObservableCreate<Feature>(async observer => {\n const { signal } = opts\n for await (const feature of this.nclist.getFeatures(region, opts)) {\n checkAbortSignal(signal)\n observer.next(this.wrapFeature(feature))\n }\n observer.complete()\n })\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrapFeature(ncFeature: any): NCListFeature {\n return new NCListFeature(\n ncFeature,\n undefined,\n `${this.id}-${ncFeature.id()}`,\n )\n }\n\n async hasDataForRefName(refName: string) {\n const root = await this.nclist.getDataRoot(refName)\n return !!(root && root.stats && root.stats.featureCount)\n }\n\n /*\n * NCList is unable to get list of ref names so returns empty\n * @return Promise<string[]> of empty list\n */\n getRefNames() {\n return Promise.resolve(this.configRefNames || [])\n }\n\n /**\n * called to provide a hint that data tied to a certain region\n * will not be needed for the forseeable future and can be purged\n * from caches, etc\n */\n freeResources() {}\n}\n"],"names":["ConfigurationSchema","rootUrlTemplate","type","defaultValue","uri","locationType","refNames","description","explicitlyTyped","runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","undefined","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","displayName","defineIteratorMethods","forEach","method","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","async","Promise","iter","next","done","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","keys","object","reverse","length","pop","iterable","iteratorMethod","isNaN","i","skipTempReset","prev","charAt","slice","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","HttpMap","args","url","test","loadFile","meta","compress","tracks","track_names","hashHexCharacters","Math","ceil","hash_bits","readMeta","getBucket","bucket","bucketIdent","hash","hexToDirPath","id","fetch","response","ok","status","statusText","json","hex","getHashHexCharacters","getCompress","substr","dirpath","substring","join","data","crc32","Buffer","from","toString","toLowerCase","replace","JBrowse1TextSearchAdapter","config","getSubAdapter","pluginManager","namesIndexLocation","readConfObject","httpMap","baseUri","URL","href","query","searchType","queryString","tracksNames","getTrackNames","loadIndexFile","entries","formatResults","results","prefix","map","BaseResult","label","matchedAttribute","matchedObject","exact","trackIndex","refName","start","end","locstring","locString","trackId","filter","getLabel","BaseAdapter","assemblyNames","explicitIdentifier","dataDirLocation","baseConfiguration","baseConnectionConfig","isTrack","isSource","deepUpdate","a","b","prop","fillTemplate","template","fillWith","match","varName","fill","getValue","callback","v","clone","src","nodeType","cloneNode","Date","getTime","RegExp","r","l","Array","isArray","mixin","dest","source","copyFunc","s","empty","parseJB1Json","parsedConf","JSON","parse","regularizeConf","parseJB1Conf","isAlwaysArray","text","section","keyPath","operation","lineNumber","recordVal","parsedValue","parseFloat","path","concat","existing","setValue","e","split","textLine","line","trim","conf","track","trackMetadata","sources","sourceDef","newSourceDef","typeMatch","sourceUrl","startsWith","window","location","baseUrl","endsWith","addBase","stores","names","t","refSeqs","nameUrl","trackConfig","c","store","trackClassName","regularizeClass","synthesizeTrackStoreConfig","histograms","root","className","includes","guessStoreClass","urlTemplate","backendVersion","mainConf","storeClass","console","warn","storeConf","useAsRefSeqStore","refseqs","objectHash","isUriLocation","isLocalPathLocation","localPath","fetchJb1","dataRoot","baseConfig","include","baseConfigRoot","protocol","dataRootReg","stringify","dataRootLocation","baseProtocol","baseConfigLocation","newConfig","fetchedConfig","fetchConfigFile","mergeConfigs","createFinalConfig","defaults","configDefaults","configWithDefaults","loadIncludes","finalConfig","fillTemplates","validateConfig","openLocation","readFile","parseJb1","aTracks","bTracks","mergeTrackConfigs","noRecursiveMerge","index","bT","aT","inputConfig","loadRecur","upstreamConf","newUpstreamConf","regularizeIncludes","loads","cacheBuster","includedData","all","includedDataObjects","format","version","subconfig","sub","propName","containerID","show_tracklist","show_nav","show_menu","show_overview","show_fullviewlink","update_browser_title","updateBrowserURL","datasets","_DEFAULT_EXAMPLES","volvox","modencode","yeast","highlightSearchedRegions","highResolutionMode","convertTrackConfig","jb1TrackConfig","sequenceAdapter","jb2TrackConfig","metadata","Description","category","trackIdentifier","generateUnsupportedTrackConf","generateFromConfigTrackConfig","resolveUrlTemplate","adapter","bamLocation","baiUrlTemplate","csiUrlTemplate","indexType","cramLocation","craiUrlTemplate","craiLocation","defaultRendering","bigWigLocation","vcfGzLocation","tbiUrlTemplate","bigBedLocation","gffGzLocation","bedGzLocation","fastaLocation","faiUrlTemplate","faiLocation","gziUrlTemplate","gziLocation","twoBitLocation","guessAdapter","UNSUPPORTED","UNKNOWN","generateUnknownTrackConf","guessTrackType","jb1Features","features","jb2Features","feature","jb2Feature","seq_id","uniqueId","types","compose","BaseConnectionModelFactory","model","configuration","ConfigurationReference","configSchema","literal","actions","connect","session","getSession","assemblyName","assemblyConf","assemblies","find","assembly","jb2Tracks","jb1Track","jb2Track","setTrackConfs","notify","breakConnection","LegacyJBrowsePlugin","addAdapterType","AdapterType","ncListAdapterConfigSchema","getAdapterClass","addToExtensionPoint","adapterGuesser","file","adapterHint","regexGuess","adapterName","fileName","getFileName","addTextSearchAdapterType","TextSearchAdapterType","jbrowse1AdapterConfigSchema","AdapterClass","JBrowse1TextSearchAdapterClass","addConnectionType","ConnectionType","jbrowse1ConfigSchema","stateModel","jbrowse1ModelFactory","Plugin","jb2ToJb1","jb1ToJb2","NCListFeature","ncFeature","parent","parentHandle","tag","mapped","attrName","attr","get","jb2TagToJb1Tag","subfeature","tags","jb1TagToJb2Tag","mappedTag","subfeatures","f","toJSON","NCListAdapter","configRefNames","nclist","NCListStore","RemoteFile","String","region","opts","ObservableCreate","observer","signal","getFeatures","checkAbortSignal","wrapFeature","getDataRoot","stats","featureCount","BaseFeatureDataAdapter"],"mappings":"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"}