@teselagen/bio-parsers 0.3.7 → 0.3.9

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/index.umd.js CHANGED
@@ -1,7 +1,4 @@
1
- (function(global2, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.bioParsers = {}));
3
- })(this, function(exports2) {
4
- "use strict";var __defProp = Object.defineProperty;
1
+ var __defProp = Object.defineProperty;
5
2
  var __defProps = Object.defineProperties;
6
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -42,7 +39,11 @@ var __async = (__this, __arguments, generator) => {
42
39
  step((generator = generator.apply(__this, __arguments)).next());
43
40
  });
44
41
  };
45
-
42
+ (function(global2, factory) {
43
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.bioParsers = {}));
44
+ })(this, function(exports2) {
45
+ var _a2, _b2;
46
+ "use strict";
46
47
  const untitledSequenceName = "Untitled Sequence";
47
48
  const gbDivisions = {
48
49
  // https://www.ncbi.nlm.nih.gov/Sitemap/samplerecord.html#GenBankDivisionB
@@ -98,6 +99,19 @@ var __async = (__this, __arguments, generator) => {
98
99
  };
99
100
  }
100
101
  __name(createInitialSequence, "createInitialSequence");
102
+ function extractFileExtension(name2) {
103
+ if (typeof name2 === "string") {
104
+ let ext = "";
105
+ const match = name2.match(/\.(\w+)$/);
106
+ if (match && match[1]) {
107
+ ext = match[1];
108
+ }
109
+ return ext;
110
+ } else {
111
+ return "";
112
+ }
113
+ }
114
+ __name(extractFileExtension, "extractFileExtension");
101
115
  function splitStringIntoLines(string) {
102
116
  let lines = [];
103
117
  if (string === "") {
@@ -123,10 +137,7 @@ var __async = (__this, __arguments, generator) => {
123
137
  if (typeof f == "function") {
124
138
  var a = /* @__PURE__ */ __name(function a2() {
125
139
  if (this instanceof a2) {
126
- var args = [null];
127
- args.push.apply(args, arguments);
128
- var Ctor = Function.bind.apply(f, args);
129
- return new Ctor();
140
+ return Reflect.construct(f, arguments, this.constructor);
130
141
  }
131
142
  return f.apply(this, arguments);
132
143
  }, "a");
@@ -6274,8 +6285,8 @@ var __async = (__this, __arguments, generator) => {
6274
6285
  maxRangeLength
6275
6286
  );
6276
6287
  let overlaps = [];
6277
- normalizedRangeA.forEach(function(nonCircularRangeA, iA) {
6278
- normalizedRangeB.forEach(function(nonCircularRangeB, iB) {
6288
+ normalizedRangeA.forEach(function(nonCircularRangeA) {
6289
+ normalizedRangeB.forEach(function(nonCircularRangeB) {
6279
6290
  const overlap = getOverlapOfNonCircularRanges(
6280
6291
  nonCircularRangeA,
6281
6292
  nonCircularRangeB
@@ -6287,7 +6298,7 @@ var __async = (__this, __arguments, generator) => {
6287
6298
  });
6288
6299
  if (joinIfPossible && normalizedRangeA.length === 2 && normalizedRangeB.length === 2 && maxRangeLength) {
6289
6300
  const joinedOverlap = {};
6290
- overlaps = lodashExports.flatMap(overlaps, (o, i2) => {
6301
+ overlaps = lodashExports.flatMap(overlaps, (o) => {
6291
6302
  if (o.start === 0) {
6292
6303
  joinedOverlap.end = o.end;
6293
6304
  return [];
@@ -6385,12 +6396,14 @@ var __async = (__this, __arguments, generator) => {
6385
6396
  });
6386
6397
  splitRangesToBeTrimmed[index] = nonCircularRangeToBeTrimmed;
6387
6398
  });
6388
- const outputSplitRanges = splitRangesToBeTrimmed.filter(function(trimmedRange) {
6389
- if (trimmedRange) {
6390
- return true;
6399
+ const outputSplitRanges = splitRangesToBeTrimmed.filter(
6400
+ function(trimmedRange) {
6401
+ if (trimmedRange) {
6402
+ return true;
6403
+ }
6404
+ return false;
6391
6405
  }
6392
- return false;
6393
- });
6406
+ );
6394
6407
  let outputTrimmedRange;
6395
6408
  if (outputSplitRanges.length < 0)
6396
6409
  ;
@@ -6440,8 +6453,14 @@ var __async = (__this, __arguments, generator) => {
6440
6453
  __name(normalizePositionByRangeLength, "normalizePositionByRangeLength");
6441
6454
  function translateRange(rangeToBeAdjusted, translateBy, rangeLength) {
6442
6455
  return lodashExports.assign({}, rangeToBeAdjusted, {
6443
- start: normalizePositionByRangeLength(rangeToBeAdjusted.start + translateBy, rangeLength),
6444
- end: normalizePositionByRangeLength(rangeToBeAdjusted.end + translateBy, rangeLength)
6456
+ start: normalizePositionByRangeLength(
6457
+ rangeToBeAdjusted.start + translateBy,
6458
+ rangeLength
6459
+ ),
6460
+ end: normalizePositionByRangeLength(
6461
+ rangeToBeAdjusted.end + translateBy,
6462
+ rangeLength
6463
+ )
6445
6464
  });
6446
6465
  }
6447
6466
  __name(translateRange, "translateRange");
@@ -11382,13 +11401,13 @@ var __async = (__this, __arguments, generator) => {
11382
11401
  messages.push(
11383
11402
  "Invalid annotation start: " + location.start + " detected for " + location.name + " and set to size: " + size
11384
11403
  );
11385
- location.start = size - (isProtein ? 3 : 1);
11404
+ location.start = Math.max(0, size - (isProtein ? 3 : 1));
11386
11405
  }
11387
11406
  if (location.end < 0 || !(location.end <= size - 1) || location.end > size - 1) {
11388
11407
  messages.push(
11389
11408
  "Invalid annotation end: " + location.end + " detected for " + location.name + " and set to seq size: " + size
11390
11409
  );
11391
- location.end = size - 1;
11410
+ location.end = Math.max(0, size - 1);
11392
11411
  }
11393
11412
  if (location.start > location.end && circular === false) {
11394
11413
  messages.push(
@@ -11401,9 +11420,9 @@ var __async = (__this, __arguments, generator) => {
11401
11420
  function filterAminoAcidSequenceString(sequenceString, options) {
11402
11421
  options = options || {};
11403
11422
  if (options.includeStopCodon) {
11404
- return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
11423
+ return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu.*]/gi, "");
11405
11424
  }
11406
- return sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
11425
+ return sequenceString == null ? void 0 : sequenceString.replace(/[^xtgalmfwkqespvicyhrndu]/gi, "");
11407
11426
  }
11408
11427
  __name(filterAminoAcidSequenceString, "filterAminoAcidSequenceString");
11409
11428
  function getDegenerateDnaStringFromAAString(aaString) {
@@ -11601,7 +11620,7 @@ var __async = (__this, __arguments, generator) => {
11601
11620
  calculateTemperature: function(sequence, type, A, R, C, Na) {
11602
11621
  if (typeof type === "undefined") {
11603
11622
  type = this.TABLE_BRESLAUER;
11604
- } else if (type != this.TABLE_BRESLAUER && (type != this.TABLE_UNIFIED && type != this.TABLE_SUGIMOTO)) {
11623
+ } else if (type != this.TABLE_BRESLAUER && type != this.TABLE_UNIFIED && type != this.TABLE_SUGIMOTO) {
11605
11624
  throw new Error("Invalid table type!");
11606
11625
  }
11607
11626
  if (!A) {
@@ -19561,7 +19580,11 @@ var __async = (__this, __arguments, generator) => {
19561
19580
  return parsingResultArray;
19562
19581
  }
19563
19582
  __name(validateSequenceArray, "validateSequenceArray");
19564
- function fastaToJson(fileString, options) {
19583
+ function fastaToJson(fileString, options = {}) {
19584
+ const ext = extractFileExtension(options.fileName);
19585
+ if (/^(faa)$/.test(ext)) {
19586
+ options.isProtein = true;
19587
+ }
19565
19588
  let resultArray = [];
19566
19589
  let result = null;
19567
19590
  try {
@@ -19748,18 +19771,20 @@ var __async = (__this, __arguments, generator) => {
19748
19771
  const isKeyRunon = isKeywordRunon(line);
19749
19772
  const isSubKey = isSubKeyword(line);
19750
19773
  const isKey = isKeyword(line);
19751
- if (key === "LOCUS") {
19752
- LINETYPE = key;
19753
- } else if (key === "REFERENCE") {
19754
- LINETYPE = key;
19755
- } else if (key === "FEATURES") {
19756
- LINETYPE = key;
19757
- } else if (key === "ORIGIN") {
19758
- LINETYPE = key;
19759
- } else if (key === "//") {
19760
- LINETYPE = key;
19761
- } else if (isKey === true) {
19762
- LINETYPE = key;
19774
+ if (!isKeyRunon) {
19775
+ if (key === "LOCUS") {
19776
+ LINETYPE = key;
19777
+ } else if (key === "REFERENCE") {
19778
+ LINETYPE = key;
19779
+ } else if (key === "FEATURES") {
19780
+ LINETYPE = key;
19781
+ } else if (key === "ORIGIN") {
19782
+ LINETYPE = key;
19783
+ } else if (key === "//") {
19784
+ LINETYPE = key;
19785
+ } else if (isKey === true) {
19786
+ LINETYPE = key;
19787
+ }
19763
19788
  }
19764
19789
  if (line.trim() === "" || key === ";") {
19765
19790
  return false;
@@ -19928,7 +19953,6 @@ var __async = (__this, __arguments, generator) => {
19928
19953
  __name(parseOrigin, "parseOrigin");
19929
19954
  function parseLocus(line) {
19930
19955
  result = createInitialSequence(options);
19931
- let locusName;
19932
19956
  let circular;
19933
19957
  let gbDivision;
19934
19958
  let date;
@@ -19939,7 +19963,7 @@ var __async = (__this, __arguments, generator) => {
19939
19963
  );
19940
19964
  addMessage("Import Warning: Locus line contains no values: " + line);
19941
19965
  }
19942
- locusName = lineArr[1];
19966
+ const locusName = lineArr[1];
19943
19967
  for (let i2 = 1; i2 < lineArr.length; i2++) {
19944
19968
  if (lineArr[i2].match(/circular/gi)) {
19945
19969
  circular = true;
@@ -20092,10 +20116,10 @@ var __async = (__this, __arguments, generator) => {
20092
20116
  }
20093
20117
  __name(parseFeatureLocation, "parseFeatureLocation");
20094
20118
  function parseFeatureNote(line) {
20095
- let newLine, lineArr;
20119
+ let newLine;
20096
20120
  newLine = line.trimLeft();
20097
20121
  newLine = newLine.replace(/^\/|"$/g, "");
20098
- lineArr = newLine.split(/="|=/);
20122
+ const lineArr = newLine.split(/="|=/);
20099
20123
  let val2 = lineArr.slice(1).join("=");
20100
20124
  if (val2) {
20101
20125
  val2 = val2.replace(/\\/g, " ");
@@ -20223,7 +20247,7 @@ var __async = (__this, __arguments, generator) => {
20223
20247
  }
20224
20248
  }
20225
20249
  __name(getLengthOfWhiteSpaceBeforeStartOfLetters, "getLengthOfWhiteSpaceBeforeStartOfLetters");
20226
- class Match {
20250
+ const _Match = class _Match {
20227
20251
  constructor(props) {
20228
20252
  Object.assign(this, props);
20229
20253
  this.value = this.obj[this.prop];
@@ -20240,8 +20264,9 @@ var __async = (__this, __arguments, generator) => {
20240
20264
  log() {
20241
20265
  console.info(this.toString());
20242
20266
  }
20243
- }
20244
- __name(Match, "Match");
20267
+ };
20268
+ __name(_Match, "Match");
20269
+ let Match = _Match;
20245
20270
  const GLOBAL = typeof window == "object" ? window : global;
20246
20271
  function searchWholeObjByName(what, where) {
20247
20272
  const searchBy = /* @__PURE__ */ __name((what2, where2, prop) => what2 == prop, "searchBy");
@@ -20287,13 +20312,13 @@ var __async = (__this, __arguments, generator) => {
20287
20312
  }
20288
20313
  __name(searchWholeObjByName, "searchWholeObjByName");
20289
20314
  function searchWholeObjByNameSimple(what, where) {
20290
- var _a2, _b2, _c;
20291
- return (_c = (_b2 = (_a2 = searchWholeObjByName(what, where)) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.value) == null ? void 0 : _c[0];
20315
+ var _a3, _b3, _c;
20316
+ return (_c = (_b3 = (_a3 = searchWholeObjByName(what, where)) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.value) == null ? void 0 : _c[0];
20292
20317
  }
20293
20318
  __name(searchWholeObjByNameSimple, "searchWholeObjByNameSimple");
20294
20319
  function searchWholeObjByNameSimpleArray(what, where) {
20295
- var _a2, _b2;
20296
- return (_b2 = (_a2 = searchWholeObjByName(what, where)) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.value;
20320
+ var _a3, _b3;
20321
+ return (_b3 = (_a3 = searchWholeObjByName(what, where)) == null ? void 0 : _a3[0]) == null ? void 0 : _b3.value;
20297
20322
  }
20298
20323
  __name(searchWholeObjByNameSimpleArray, "searchWholeObjByNameSimpleArray");
20299
20324
  var validator$2 = {};
@@ -20721,7 +20746,7 @@ var __async = (__this, __arguments, generator) => {
20721
20746
  }, "buildOptions$1");
20722
20747
  OptionsBuilder.buildOptions = buildOptions$1;
20723
20748
  OptionsBuilder.defaultOptions = defaultOptions$1;
20724
- class XmlNode {
20749
+ const _XmlNode = class _XmlNode {
20725
20750
  constructor(tagname) {
20726
20751
  this.tagname = tagname;
20727
20752
  this.child = [];
@@ -20741,8 +20766,9 @@ var __async = (__this, __arguments, generator) => {
20741
20766
  this.child.push({ [node.tagname]: node.child });
20742
20767
  }
20743
20768
  }
20744
- }
20745
- __name(XmlNode, "XmlNode");
20769
+ };
20770
+ __name(_XmlNode, "XmlNode");
20771
+ let XmlNode = _XmlNode;
20746
20772
  var xmlNode$1 = XmlNode;
20747
20773
  const util$2 = util$4;
20748
20774
  function readDocType$1(xmlData, i2) {
@@ -20953,7 +20979,7 @@ var __async = (__this, __arguments, generator) => {
20953
20979
  const readDocType = DocTypeReader;
20954
20980
  const toNumber = strnum;
20955
20981
  "<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g, util$1.nameRegexp);
20956
- let OrderedObjParser$1 = /* @__PURE__ */ __name(class OrderedObjParser {
20982
+ let OrderedObjParser$1 = (_a2 = class {
20957
20983
  constructor(options) {
20958
20984
  this.options = options;
20959
20985
  this.currentNode = null;
@@ -20992,7 +21018,7 @@ var __async = (__this, __arguments, generator) => {
20992
21018
  this.saveTextToParentTag = saveTextToParentTag;
20993
21019
  this.addChild = addChild;
20994
21020
  }
20995
- }, "OrderedObjParser");
21021
+ }, __name(_a2, "OrderedObjParser"), _a2);
20996
21022
  function addExternalEntities(externalEntities) {
20997
21023
  const entKeys = Object.keys(externalEntities);
20998
21024
  for (let i2 = 0; i2 < entKeys.length; i2++) {
@@ -21224,6 +21250,7 @@ var __async = (__this, __arguments, generator) => {
21224
21250
  if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) {
21225
21251
  if (tagName[tagName.length - 1] === "/") {
21226
21252
  tagName = tagName.substr(0, tagName.length - 1);
21253
+ jPath = jPath.substr(0, jPath.length - 1);
21227
21254
  tagExp = tagName;
21228
21255
  } else {
21229
21256
  tagExp = tagExp.substr(0, tagExp.length - 1);
@@ -21544,7 +21571,7 @@ var __async = (__this, __arguments, generator) => {
21544
21571
  const OrderedObjParser = OrderedObjParser_1;
21545
21572
  const { prettify } = node2json;
21546
21573
  const validator$1 = validator$2;
21547
- let XMLParser$1 = /* @__PURE__ */ __name(class XMLParser {
21574
+ let XMLParser$1 = (_b2 = class {
21548
21575
  constructor(options) {
21549
21576
  this.externalEntities = {};
21550
21577
  this.options = buildOptions(options);
@@ -21594,7 +21621,7 @@ var __async = (__this, __arguments, generator) => {
21594
21621
  this.externalEntities[key] = value;
21595
21622
  }
21596
21623
  }
21597
- }, "XMLParser");
21624
+ }, __name(_b2, "XMLParser"), _b2);
21598
21625
  var XMLParser_1 = XMLParser$1;
21599
21626
  const EOL = "\n";
21600
21627
  function toXml(jArray, options) {
@@ -21799,13 +21826,18 @@ var __async = (__this, __arguments, generator) => {
21799
21826
  let attrStr = "";
21800
21827
  let val2 = "";
21801
21828
  for (let key in jObj) {
21802
- if (typeof jObj[key] === "undefined")
21803
- ;
21804
- else if (jObj[key] === null) {
21805
- if (key[0] === "?")
21829
+ if (typeof jObj[key] === "undefined") {
21830
+ if (this.isAttribute(key)) {
21831
+ val2 += "";
21832
+ }
21833
+ } else if (jObj[key] === null) {
21834
+ if (this.isAttribute(key)) {
21835
+ val2 += "";
21836
+ } else if (key[0] === "?") {
21806
21837
  val2 += this.indentate(level) + "<" + key + "?" + this.tagEndChar;
21807
- else
21838
+ } else {
21808
21839
  val2 += this.indentate(level) + "<" + key + "/" + this.tagEndChar;
21840
+ }
21809
21841
  } else if (jObj[key] instanceof Date) {
21810
21842
  val2 += this.buildTextValNode(jObj[key], key, "", level);
21811
21843
  } else if (typeof jObj[key] !== "object") {
@@ -21891,7 +21923,7 @@ var __async = (__this, __arguments, generator) => {
21891
21923
  piClosingChar = "?";
21892
21924
  tagEndExp = "";
21893
21925
  }
21894
- if (attrStr && val2.indexOf("<") === -1) {
21926
+ if ((attrStr || attrStr === "") && val2.indexOf("<") === -1) {
21895
21927
  return this.indentate(level) + "<" + key + attrStr + piClosingChar + ">" + val2 + tagEndExp;
21896
21928
  } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {
21897
21929
  return this.indentate(level) + `<!--${val2}-->` + this.newLine;
@@ -21943,7 +21975,7 @@ var __async = (__this, __arguments, generator) => {
21943
21975
  }
21944
21976
  __name(indentate, "indentate");
21945
21977
  function isAttribute(name2) {
21946
- if (name2.startsWith(this.options.attributeNamePrefix)) {
21978
+ if (name2.startsWith(this.options.attributeNamePrefix) && name2 !== this.options.textNodeName) {
21947
21979
  return name2.substr(this.attrPrefixLen);
21948
21980
  } else {
21949
21981
  return false;
@@ -22071,19 +22103,6 @@ var __async = (__this, __arguments, generator) => {
22071
22103
  };
22072
22104
  }
22073
22105
  __name(parseSbolJson, "parseSbolJson");
22074
- function extractFileExtension(name2) {
22075
- if (typeof name2 === "string") {
22076
- let ext = "";
22077
- const match = name2.match(/\.(\w+)$/);
22078
- if (match && match[1]) {
22079
- ext = match[1];
22080
- }
22081
- return ext;
22082
- } else {
22083
- return "";
22084
- }
22085
- }
22086
- __name(extractFileExtension, "extractFileExtension");
22087
22106
  /*!
22088
22107
  * Copyright 2008 Fair Oaks Labs, Inc.
22089
22108
  * All rights reserved.
@@ -25886,7 +25905,8 @@ var __async = (__this, __arguments, generator) => {
25886
25905
  }, "fill");
25887
25906
  const errors = {};
25888
25907
  function E(sym, getMessage, Base) {
25889
- errors[sym] = /* @__PURE__ */ __name(class NodeError extends Base {
25908
+ var _a3;
25909
+ errors[sym] = (_a3 = class extends Base {
25890
25910
  constructor() {
25891
25911
  super();
25892
25912
  Object.defineProperty(this, "message", {
@@ -25912,7 +25932,7 @@ var __async = (__this, __arguments, generator) => {
25912
25932
  toString() {
25913
25933
  return `${this.name} [${sym}]: ${this.message}`;
25914
25934
  }
25915
- }, "NodeError");
25935
+ }, __name(_a3, "NodeError"), _a3);
25916
25936
  }
25917
25937
  __name(E, "E");
25918
25938
  E(
@@ -29395,7 +29415,7 @@ ${seq.sequence}
29395
29415
  Parent: "child_features",
29396
29416
  Derives_from: "derived_features"
29397
29417
  };
29398
- class FASTAParser {
29418
+ const _FASTAParser = class _FASTAParser {
29399
29419
  constructor(seqCallback) {
29400
29420
  this.seqCallback = seqCallback;
29401
29421
  this.currentSequence = void 0;
@@ -29418,9 +29438,10 @@ ${seq.sequence}
29418
29438
  finish() {
29419
29439
  this._flush();
29420
29440
  }
29421
- }
29422
- __name(FASTAParser, "FASTAParser");
29423
- class Parser {
29441
+ };
29442
+ __name(_FASTAParser, "FASTAParser");
29443
+ let FASTAParser = _FASTAParser;
29444
+ const _Parser = class _Parser {
29424
29445
  constructor(args) {
29425
29446
  this.fastaParser = void 0;
29426
29447
  this.eof = false;
@@ -29539,14 +29560,14 @@ ${seq.sequence}
29539
29560
  }
29540
29561
  // do the right thing with a newly-parsed feature line
29541
29562
  _bufferLine(line) {
29542
- var _a2, _b2, _c;
29563
+ var _a3, _b3, _c;
29543
29564
  const rawFeatureLine = parseFeature(line);
29544
29565
  const featureLine = __spreadProps(__spreadValues({}, rawFeatureLine), {
29545
29566
  child_features: [],
29546
29567
  derived_features: []
29547
29568
  });
29548
- const ids = ((_a2 = featureLine.attributes) === null || _a2 === void 0 ? void 0 : _a2.ID) || [];
29549
- const parents = ((_b2 = featureLine.attributes) === null || _b2 === void 0 ? void 0 : _b2.Parent) || [];
29569
+ const ids = ((_a3 = featureLine.attributes) === null || _a3 === void 0 ? void 0 : _a3.ID) || [];
29570
+ const parents = ((_b3 = featureLine.attributes) === null || _b3 === void 0 ? void 0 : _b3.Parent) || [];
29550
29571
  const derives = this.disableDerivesFromReferences ? [] : ((_c = featureLine.attributes) === null || _c === void 0 ? void 0 : _c.Derives_from) || [];
29551
29572
  if (!ids.length && !parents.length && !derives.length) {
29552
29573
  this._emitItem([featureLine]);
@@ -29644,8 +29665,9 @@ ${seq.sequence}
29644
29665
  }
29645
29666
  });
29646
29667
  }
29647
- }
29648
- __name(Parser, "Parser");
29668
+ };
29669
+ __name(_Parser, "Parser");
29670
+ let Parser = _Parser;
29649
29671
  function _callback(callback) {
29650
29672
  if (process && process.nextTick)
29651
29673
  process.nextTick(callback);
@@ -29672,7 +29694,7 @@ ${seq.sequence}
29672
29694
  return out;
29673
29695
  }
29674
29696
  __name(_processParseOptions, "_processParseOptions");
29675
- class GFFTransform extends streamBrowserify.Transform {
29697
+ const _GFFTransform = class _GFFTransform extends streamBrowserify.Transform {
29676
29698
  constructor(inputOptions = {}) {
29677
29699
  super({ objectMode: true });
29678
29700
  this.textBuffer = "";
@@ -29712,8 +29734,9 @@ ${seq.sequence}
29712
29734
  this.parser.finish();
29713
29735
  _callback(callback);
29714
29736
  }
29715
- }
29716
- __name(GFFTransform, "GFFTransform");
29737
+ };
29738
+ __name(_GFFTransform, "GFFTransform");
29739
+ let GFFTransform = _GFFTransform;
29717
29740
  function parseStream(options = {}) {
29718
29741
  return new GFFTransform(options);
29719
29742
  }
@@ -29757,7 +29780,7 @@ ${seq.sequence}
29757
29780
  return str;
29758
29781
  }
29759
29782
  __name(formatSync, "formatSync");
29760
- class FormattingTransform extends streamBrowserify.Transform {
29783
+ const _FormattingTransform = class _FormattingTransform extends streamBrowserify.Transform {
29761
29784
  constructor(options = {}) {
29762
29785
  super(Object.assign(options, { objectMode: true }));
29763
29786
  this.linesSinceLastSyncMark = 0;
@@ -29799,8 +29822,9 @@ ${seq.sequence}
29799
29822
  this.haveWeEmittedData = true;
29800
29823
  _callback(callback);
29801
29824
  }
29802
- }
29803
- __name(FormattingTransform, "FormattingTransform");
29825
+ };
29826
+ __name(_FormattingTransform, "FormattingTransform");
29827
+ let FormattingTransform = _FormattingTransform;
29804
29828
  function formatStream(options = {}) {
29805
29829
  return new FormattingTransform(options);
29806
29830
  }
@@ -29901,13 +29925,10 @@ ${seq.sequence}
29901
29925
  });
29902
29926
  }
29903
29927
  });
29904
- const toRet = lodashExports.filter(
29905
- resultArray,
29906
- (r) => {
29907
- var _a2, _b2;
29908
- return (_b2 = (_a2 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a2.sequence) == null ? void 0 : _b2.length;
29909
- }
29910
- );
29928
+ const toRet = lodashExports.filter(resultArray, (r) => {
29929
+ var _a3, _b3;
29930
+ return (_b3 = (_a3 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a3.sequence) == null ? void 0 : _b3.length;
29931
+ });
29911
29932
  if (toRet.length)
29912
29933
  return toRet;
29913
29934
  return onFileParsed(resultArray);
@@ -30012,13 +30033,10 @@ ${seq.sequence}
30012
30033
  messages: ["Error while parsing JBEI format"]
30013
30034
  });
30014
30035
  }
30015
- const toRet = lodashExports.filter(
30016
- resultArray,
30017
- (r) => {
30018
- var _a2, _b2;
30019
- return (_b2 = (_a2 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a2.sequence) == null ? void 0 : _b2.length;
30020
- }
30021
- );
30036
+ const toRet = lodashExports.filter(resultArray, (r) => {
30037
+ var _a3, _b3;
30038
+ return (_b3 = (_a3 = r == null ? void 0 : r.parsedSequence) == null ? void 0 : _a3.sequence) == null ? void 0 : _b3.length;
30039
+ });
30022
30040
  if (toRet.length)
30023
30041
  return toRet;
30024
30042
  return onFileParsed(resultArray);
@@ -30468,7 +30486,7 @@ ${seq.sequence}
30468
30486
  } else if (td) {
30469
30487
  return td.decode(dat);
30470
30488
  } else {
30471
- var _a2 = dutf8(dat), s = _a2.s, r = _a2.r;
30489
+ var _a3 = dutf8(dat), s = _a3.s, r = _a3.r;
30472
30490
  if (r.length)
30473
30491
  err(8);
30474
30492
  return s;
@@ -30480,7 +30498,7 @@ ${seq.sequence}
30480
30498
  }, "slzh");
30481
30499
  var zh = /* @__PURE__ */ __name(function(d, b, z) {
30482
30500
  var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);
30483
- var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2];
30501
+ var _a3 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a3[0], su = _a3[1], off = _a3[2];
30484
30502
  return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];
30485
30503
  }, "zh");
30486
30504
  var z64e = /* @__PURE__ */ __name(function(d, b) {
@@ -30510,7 +30528,7 @@ ${seq.sequence}
30510
30528
  }
30511
30529
  var fltr = opts && opts.filter;
30512
30530
  for (var i2 = 0; i2 < c; ++i2) {
30513
- var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off);
30531
+ var _a3 = zh(data, o, z), c_2 = _a3[0], sc = _a3[1], su = _a3[2], fn = _a3[3], no = _a3[4], off = _a3[5], b = slzh(data, off);
30514
30532
  o = no;
30515
30533
  if (!fltr || fltr({
30516
30534
  name: fn,
@@ -30569,7 +30587,7 @@ ${seq.sequence}
30569
30587
  );
30570
30588
  }
30571
30589
  }
30572
- if (/^(fasta|fas|fa|fna|ffn)$/.test(ext)) {
30590
+ if (/^(fasta|fas|fa|fna|ffn|faa)$/.test(ext)) {
30573
30591
  return fastaToJson(fileContentString, options);
30574
30592
  } else if (/^(gb|gbk)$/.test(ext)) {
30575
30593
  return genbankToJson(fileContentString, options);
@@ -32398,18 +32416,17 @@ ${seq.sequence}
32398
32416
  }
32399
32417
  __name(jsonToGenbank, "jsonToGenbank");
32400
32418
  function createGenbankLocus(serSeq, options) {
32401
- var _a2, _b2;
32419
+ var _a3, _b3;
32402
32420
  if (serSeq.sequence.symbols) {
32403
32421
  serSeq.sequence = serSeq.sequence.symbols.split("");
32404
32422
  }
32405
- let tmp;
32406
32423
  let dnaType;
32407
32424
  if (serSeq.isProtein) {
32408
32425
  dnaType = "";
32409
32426
  } else if (serSeq.type === "RNA") {
32410
- dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "RNA" : (_a2 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _a2 : "ss-RNA";
32427
+ dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "RNA" : (_a3 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _a3 : "ss-RNA";
32411
32428
  } else {
32412
- dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "DNA" : (_b2 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _b2 : "DNA";
32429
+ dnaType = (serSeq == null ? void 0 : serSeq.doubleStranded) ? "DNA" : (_b3 = serSeq == null ? void 0 : serSeq.sequenceTypeFromLocus) != null ? _b3 : "DNA";
32413
32430
  }
32414
32431
  const date = getCurrentDateString();
32415
32432
  let line = StringUtil.rpad("LOCUS", " ", 12);
@@ -32419,7 +32436,7 @@ ${seq.sequence}
32419
32436
  line += " ";
32420
32437
  line += StringUtil.lpad(String(serSeq.sequence.length), " ", 11);
32421
32438
  line += serSeq.isProtein ? " aa " : " bp ";
32422
- tmp = "";
32439
+ const tmp = "";
32423
32440
  line += StringUtil.lpad(tmp, " ", 3);
32424
32441
  line += StringUtil.rpad(dnaType, " ", 6);
32425
32442
  line += " ";
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@teselagen/bio-parsers",
3
- "version": "0.3.7",
4
- "type": "commonjs",
3
+ "version": "0.3.9",
5
4
  "dependencies": {
6
5
  "@teselagen/sequence-utils": "0.3.7",
7
6
  "@teselagen/range-utils": "0.3.7",