igv 2.13.6 → 2.13.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/igv.js CHANGED
@@ -7204,8 +7204,8 @@
7204
7204
  function encode(objectName) {
7205
7205
  let result = '';
7206
7206
  objectName.split('').forEach(function (letter) {
7207
- if (encodings$1.has(letter)) {
7208
- result += encodings$1.get(letter);
7207
+ if (encodings$2.has(letter)) {
7208
+ result += encodings$2.get(letter);
7209
7209
  } else {
7210
7210
  result += letter;
7211
7211
  }
@@ -7214,27 +7214,27 @@
7214
7214
  }
7215
7215
 
7216
7216
  // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
7217
- const encodings$1 = new Map();
7218
- encodings$1.set("!", "%21");
7219
- encodings$1.set("#", "%23");
7220
- encodings$1.set("$", "%24");
7221
- encodings$1.set("%", "%25");
7222
- encodings$1.set("&", "%26");
7223
- encodings$1.set("'", "%27");
7224
- encodings$1.set("(", "%28");
7225
- encodings$1.set(")", "%29");
7226
- encodings$1.set("*", "%2A");
7227
- encodings$1.set("+", "%2B");
7228
- encodings$1.set(",", "%2C");
7229
- encodings$1.set("/", "%2F");
7230
- encodings$1.set(":", "%3A");
7231
- encodings$1.set(";", "%3B");
7232
- encodings$1.set("=", "%3D");
7233
- encodings$1.set("?", "%3F");
7234
- encodings$1.set("@", "%40");
7235
- encodings$1.set("[", "%5B");
7236
- encodings$1.set("]", "%5D");
7237
- encodings$1.set(" ", "%20");
7217
+ const encodings$2 = new Map();
7218
+ encodings$2.set("!", "%21");
7219
+ encodings$2.set("#", "%23");
7220
+ encodings$2.set("$", "%24");
7221
+ encodings$2.set("%", "%25");
7222
+ encodings$2.set("&", "%26");
7223
+ encodings$2.set("'", "%27");
7224
+ encodings$2.set("(", "%28");
7225
+ encodings$2.set(")", "%29");
7226
+ encodings$2.set("*", "%2A");
7227
+ encodings$2.set("+", "%2B");
7228
+ encodings$2.set(",", "%2C");
7229
+ encodings$2.set("/", "%2F");
7230
+ encodings$2.set(":", "%3A");
7231
+ encodings$2.set(";", "%3B");
7232
+ encodings$2.set("=", "%3D");
7233
+ encodings$2.set("?", "%3F");
7234
+ encodings$2.set("@", "%40");
7235
+ encodings$2.set("[", "%5B");
7236
+ encodings$2.set("]", "%5D");
7237
+ encodings$2.set(" ", "%20");
7238
7238
 
7239
7239
  // Convenience functions for the gapi oAuth library.
7240
7240
  const FIVE_MINUTES = 5 * 60 * 1000;
@@ -17840,27 +17840,27 @@
17840
17840
  }
17841
17841
 
17842
17842
  // %23 %24 %25 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
17843
- const encodings = new Map();
17844
- encodings.set("!", "%21");
17845
- encodings.set("#", "%23");
17846
- encodings.set("$", "%24");
17847
- encodings.set("%", "%25");
17848
- encodings.set("&", "%26");
17849
- encodings.set("'", "%27");
17850
- encodings.set("(", "%28");
17851
- encodings.set(")", "%29");
17852
- encodings.set("*", "%2A");
17853
- encodings.set("+", "%2B");
17854
- encodings.set(",", "%2C");
17855
- encodings.set("/", "%2F");
17856
- encodings.set(":", "%3A");
17857
- encodings.set(";", "%3B");
17858
- encodings.set("=", "%3D");
17859
- encodings.set("?", "%3F");
17860
- encodings.set("@", "%40");
17861
- encodings.set("[", "%5B");
17862
- encodings.set("]", "%5D");
17863
- encodings.set(" ", "%20");
17843
+ const encodings$1 = new Map();
17844
+ encodings$1.set("!", "%21");
17845
+ encodings$1.set("#", "%23");
17846
+ encodings$1.set("$", "%24");
17847
+ encodings$1.set("%", "%25");
17848
+ encodings$1.set("&", "%26");
17849
+ encodings$1.set("'", "%27");
17850
+ encodings$1.set("(", "%28");
17851
+ encodings$1.set(")", "%29");
17852
+ encodings$1.set("*", "%2A");
17853
+ encodings$1.set("+", "%2B");
17854
+ encodings$1.set(",", "%2C");
17855
+ encodings$1.set("/", "%2F");
17856
+ encodings$1.set(":", "%3A");
17857
+ encodings$1.set(";", "%3B");
17858
+ encodings$1.set("=", "%3D");
17859
+ encodings$1.set("?", "%3F");
17860
+ encodings$1.set("@", "%40");
17861
+ encodings$1.set("[", "%5B");
17862
+ encodings$1.set("]", "%5D");
17863
+ encodings$1.set(" ", "%20");
17864
17864
  if (typeof process === 'object' && typeof window === 'undefined') {
17865
17865
  global.atob = function (str) {
17866
17866
  return Buffer.from(str, 'base64').toString('binary');
@@ -21939,7 +21939,7 @@
21939
21939
  }
21940
21940
  };
21941
21941
 
21942
- const _version = "2.13.6";
21942
+ const _version = "2.13.7";
21943
21943
  function version$1() {
21944
21944
  return _version;
21945
21945
  }
@@ -23469,7 +23469,7 @@
23469
23469
 
23470
23470
  const delim = 'gff3' === format ? '=' : ' ';
23471
23471
  return new GFFFeature({
23472
- source: tokens[1],
23472
+ source: decodeGFFAttribute(tokens[1]),
23473
23473
  type: tokens[2],
23474
23474
  chr: tokens[0],
23475
23475
  start: parseInt(tokens[3]) - 1,
@@ -23570,7 +23570,7 @@
23570
23570
  const idx = kv.indexOf(keyValueDelim);
23571
23571
  if (idx > 0 && idx < kv.length - 1) {
23572
23572
  const key = kv.substring(0, idx);
23573
- let value = stripQuotes(decodeURIComponent(kv.substring(idx + 1).trim()));
23573
+ let value = stripQuotes(decodeGFFAttribute(kv.substring(idx + 1).trim()));
23574
23574
  attributes.push([key, value]);
23575
23575
  }
23576
23576
  }
@@ -23583,6 +23583,42 @@
23583
23583
  return value;
23584
23584
  }
23585
23585
 
23586
+ // GFF3 attributes have specific percent encoding rules, the list below are required, all others are forbidden
23587
+ /*
23588
+ tab (%09)
23589
+ newline (%0A)
23590
+ carriage return (%0D)
23591
+ % percent (%25)
23592
+ control characters (%00 through %1F, %7F)
23593
+ In addition, the following characters have reserved meanings in column 9 and must be escaped when used in other contexts:
23594
+ ; semicolon (%3B)
23595
+ = equals (%3D)
23596
+ & ampersand (%26)
23597
+ , comma (%2C)
23598
+ */
23599
+
23600
+ const encodings = new Map([["%09", "\t"], ["%0A", "\n"], ["%0D", "\r"], ["%25", "%"], ["%3B", ";"], ["%3D", "="], ["%26", "&"], ["%2C", ","]]);
23601
+ function decodeGFFAttribute(str) {
23602
+ if (!str.includes("%")) {
23603
+ return str;
23604
+ }
23605
+ let decoded = "";
23606
+ for (let i = 0; i < str.length; i++) {
23607
+ if (str.charCodeAt(i) === 37 && i < str.length - 2) {
23608
+ const key = str.substring(i, i + 3);
23609
+ if (encodings.has(key)) {
23610
+ decoded += encodings.get(key);
23611
+ } else {
23612
+ decoded += key;
23613
+ }
23614
+ i += 2;
23615
+ } else {
23616
+ decoded += str.charAt(i);
23617
+ }
23618
+ }
23619
+ return decoded;
23620
+ }
23621
+
23586
23622
  /**
23587
23623
  * Wrapper class to record a decoding error.
23588
23624
  */
@@ -62872,10 +62908,7 @@
62872
62908
  setOauthToken,
62873
62909
  oauth,
62874
62910
  version: version$1,
62875
- setApiKey,
62876
- doAutoscale,
62877
- TrackView,
62878
- GenomeUtils
62911
+ setApiKey
62879
62912
  };
62880
62913
 
62881
62914
  return index;