gff-nostream 3.0.5 → 3.0.6

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/README.md CHANGED
@@ -3,7 +3,8 @@
3
3
  [![NPM version](https://img.shields.io/npm/v/gff-nostream.svg?style=flat-square)](https://npmjs.org/package/gff-nostream)
4
4
  [![Build Status](https://img.shields.io/github/actions/workflow/status/GMOD/gff-nostream/push.yml?branch=main)](https://github.com/GMOD/gff-nostream/actions?query=branch%3Amain+workflow%3APush+)
5
5
 
6
- Parse GFF3 data. A simplified version of [@gmod/gff](https://github.com/GMOD/gff-js) with no Node.js stream dependency.
6
+ Parse GFF3 data. A simplified version of
7
+ [@gmod/gff](https://github.com/GMOD/gff-js) with no Node.js stream dependency.
7
8
 
8
9
  ## Install
9
10
 
@@ -21,7 +22,9 @@ const features = parseStringSync(stringOfGFF3)
21
22
 
22
23
  ## Object format
23
24
 
24
- In GFF3, features can have more than one location. Features are returned as arrays of all lines sharing the same ID. Values that are `.` in GFF3 are `null` in the output.
25
+ In GFF3, features can have more than one location. Features are returned as
26
+ arrays of all lines sharing the same ID. Values that are `.` in GFF3 are `null`
27
+ in the output.
25
28
 
26
29
  A simple feature located in one place:
27
30
 
@@ -93,11 +96,13 @@ Synchronously parse a GFF3 string and return an array of features.
93
96
 
94
97
  ### `parseStringSyncJBrowse(str: string): JBrowseFeature[]`
95
98
 
96
- Synchronously parse a GFF3 string and return features in JBrowse format (flat objects with `subfeatures` instead of `child_features`).
99
+ Synchronously parse a GFF3 string and return features in JBrowse format (flat
100
+ objects with `subfeatures` instead of `child_features`).
97
101
 
98
102
  ### `parseRecords(records: LineRecord[]): GFF3Feature[]`
99
103
 
100
- Parse an array of `LineRecord` objects. Useful when managing raw line data directly (e.g. from an indexed file with byte offsets).
104
+ Parse an array of `LineRecord` objects. Useful when managing raw line data
105
+ directly (e.g. from an indexed file with byte offsets).
101
106
 
102
107
  ### `parseRecordsJBrowse(records: LineRecord[]): JBrowseFeature[]`
103
108
 
@@ -105,7 +110,8 @@ Same as `parseRecords` but returns JBrowse-format features.
105
110
 
106
111
  ## Publishing
107
112
 
108
- [Trusted publishing](https://docs.npmjs.com/about-trusted-publishing) via GitHub Actions.
113
+ [Trusted publishing](https://docs.npmjs.com/about-trusted-publishing) via GitHub
114
+ Actions.
109
115
 
110
116
  ```bash
111
117
  npm version patch # or minor/major
package/dist/api.d.ts CHANGED
@@ -2,8 +2,10 @@ import type { GFF3Feature, JBrowseFeature } from './util.ts';
2
2
  export interface LineRecord {
3
3
  line: string;
4
4
  lineHash?: string | number;
5
- start: number;
6
- end: number;
5
+ /** Optional passthrough byte offsets — not used by the parser */
6
+ start?: number;
7
+ /** Optional passthrough byte offsets — not used by the parser */
8
+ end?: number;
7
9
  hasEscapes: boolean;
8
10
  }
9
11
  /**
package/dist/api.js CHANGED
@@ -28,19 +28,14 @@ function stringToRecords(str) {
28
28
  const lines = str.split(/\r?\n/);
29
29
  const records = [];
30
30
  for (const line of lines) {
31
+ if (line.startsWith('##FASTA') || line.startsWith('>')) {
32
+ break;
33
+ }
31
34
  if (line.length === 0 || line.startsWith('#')) {
32
- if (line.startsWith('##FASTA')) {
33
- break;
34
- }
35
35
  continue;
36
36
  }
37
- if (line.startsWith('>')) {
38
- break;
39
- }
40
37
  records.push({
41
38
  line,
42
- start: 0,
43
- end: 0,
44
39
  hasEscapes: line.includes('%'),
45
40
  });
46
41
  }
@@ -72,49 +67,55 @@ function parseRecords(records) {
72
67
  const parents = attrs?.Parent;
73
68
  if (!ids && !parents) {
74
69
  items.push([featureLine]);
75
- continue;
76
70
  }
77
- let feature;
78
- if (ids) {
79
- const id = ids[0];
80
- const existing = byId.get(id);
81
- if (existing) {
82
- existing.push(featureLine);
83
- feature = existing;
84
- }
85
- else {
86
- feature = [featureLine];
87
- if (!parents) {
88
- items.push(feature);
71
+ else {
72
+ let feature;
73
+ if (ids) {
74
+ const id = ids[0];
75
+ const existing = byId.get(id);
76
+ if (existing) {
77
+ // Multi-location continuation: share child_features/derived_features
78
+ // with the first line so children remain visible across all lines
79
+ // regardless of arrival order.
80
+ featureLine.child_features = existing[0].child_features;
81
+ featureLine.derived_features = existing[0].derived_features;
82
+ existing.push(featureLine);
83
+ feature = existing;
89
84
  }
90
- byId.set(id, feature);
91
- const waiting = orphans.get(id);
92
- if (waiting) {
93
- for (const w of waiting) {
94
- featureLine.child_features.push(w);
85
+ else {
86
+ feature = [featureLine];
87
+ if (!parents) {
88
+ items.push(feature);
89
+ }
90
+ byId.set(id, feature);
91
+ const waiting = orphans.get(id);
92
+ if (waiting) {
93
+ for (const w of waiting) {
94
+ featureLine.child_features.push(w);
95
+ }
96
+ orphans.delete(id);
95
97
  }
96
- orphans.delete(id);
97
98
  }
98
99
  }
99
- }
100
- else {
101
- feature = [featureLine];
102
- }
103
- if (parents) {
104
- for (const parentId of parents) {
105
- const parent = byId.get(parentId);
106
- if (parent) {
107
- for (const p of parent) {
108
- p.child_features.push(feature);
100
+ else {
101
+ feature = [featureLine];
102
+ }
103
+ if (parents) {
104
+ for (const parentId of parents) {
105
+ const parent = byId.get(parentId);
106
+ if (parent) {
107
+ // child_features is shared across all parent feature lines,
108
+ // so push once via the first line.
109
+ parent[0].child_features.push(feature);
109
110
  }
110
- }
111
- else {
112
- let arr = orphans.get(parentId);
113
- if (!arr) {
114
- arr = [];
115
- orphans.set(parentId, arr);
111
+ else {
112
+ let arr = orphans.get(parentId);
113
+ if (!arr) {
114
+ arr = [];
115
+ orphans.set(parentId, arr);
116
+ }
117
+ arr.push(feature);
116
118
  }
117
- arr.push(feature);
118
119
  }
119
120
  }
120
121
  }
@@ -139,15 +140,16 @@ function parseRecordsJBrowse(records) {
139
140
  if (record.lineHash !== undefined) {
140
141
  feature._lineHash = String(record.lineHash);
141
142
  }
142
- const id = feature.id;
143
+ // attribute parsing collapses single-element arrays to scalars, so id can
144
+ // be string | string[]; defensively take the first if multi-valued.
145
+ const rawId = feature.id;
146
+ const id = Array.isArray(rawId) ? rawId[0] : rawId;
143
147
  const parent = feature.parent;
144
148
  if (!id && !parent) {
145
149
  items.push(feature);
146
- continue;
147
150
  }
148
- if (id) {
149
- const existing = byId.get(id);
150
- if (!existing) {
151
+ else if (!id || !byId.has(id)) {
152
+ if (id) {
151
153
  if (!parent) {
152
154
  items.push(feature);
153
155
  }
@@ -160,21 +162,21 @@ function parseRecordsJBrowse(records) {
160
162
  orphans.delete(id);
161
163
  }
162
164
  }
163
- }
164
- if (parent) {
165
- const parents = Array.isArray(parent) ? parent : [parent];
166
- for (const parentId of parents) {
167
- const parentFeature = byId.get(parentId);
168
- if (parentFeature) {
169
- parentFeature.subfeatures.push(feature);
170
- }
171
- else {
172
- let arr = orphans.get(parentId);
173
- if (!arr) {
174
- arr = [];
175
- orphans.set(parentId, arr);
165
+ if (parent) {
166
+ const parents = Array.isArray(parent) ? parent : [parent];
167
+ for (const parentId of parents) {
168
+ const parentFeature = byId.get(parentId);
169
+ if (parentFeature) {
170
+ parentFeature.subfeatures.push(feature);
171
+ }
172
+ else {
173
+ let arr = orphans.get(parentId);
174
+ if (!arr) {
175
+ arr = [];
176
+ orphans.set(parentId, arr);
177
+ }
178
+ arr.push(feature);
176
179
  }
177
- arr.push(feature);
178
180
  }
179
181
  }
180
182
  }
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -35,21 +35,6 @@ export declare function parseFeature(line: string): GFF3FeatureLine;
35
35
  * @returns The parsed feature
36
36
  */
37
37
  export declare function parseFeatureNoUnescape(line: string): GFF3FeatureLine;
38
- /**
39
- * Parse a GFF3 feature from a pre-split fields array
40
- *
41
- * @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
42
- * @returns The parsed feature
43
- */
44
- export declare function parseFieldsArray(f: (string | null | undefined)[]): GFF3FeatureLine;
45
- /**
46
- * Parse a GFF3 feature from a pre-split fields array without unescaping.
47
- * Fast path for data known to contain no escaped characters.
48
- *
49
- * @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
50
- * @returns The parsed feature
51
- */
52
- export declare function parseFieldsArrayNoUnescape(f: (string | null | undefined)[]): GFF3FeatureLine;
53
38
  /**
54
39
  * Parse a GFF3 directive line.
55
40
  *
package/dist/util.js CHANGED
@@ -7,15 +7,12 @@ exports.parseAttributes = parseAttributes;
7
7
  exports.parseAttributesNoUnescape = parseAttributesNoUnescape;
8
8
  exports.parseFeature = parseFeature;
9
9
  exports.parseFeatureNoUnescape = parseFeatureNoUnescape;
10
- exports.parseFieldsArray = parseFieldsArray;
11
- exports.parseFieldsArrayNoUnescape = parseFieldsArrayNoUnescape;
12
10
  exports.parseDirective = parseDirective;
13
11
  exports.parseAttributesJBrowse = parseAttributesJBrowse;
14
12
  exports.parseAttributesJBrowseNoUnescape = parseAttributesJBrowseNoUnescape;
15
13
  exports.parseFeatureJBrowse = parseFeatureJBrowse;
16
14
  exports.parseFeatureJBrowseNoUnescape = parseFeatureJBrowseNoUnescape;
17
15
  const directiveRegex = /^\s*##\s*(\S+)\s*(.*)/;
18
- const lineEndRegex = /\r?\n$/;
19
16
  const whitespaceRegex = /\s+/;
20
17
  const nonDigitRegex = /\D/g;
21
18
  const HEX_LOOKUP = {};
@@ -120,30 +117,28 @@ function parseAttributes(attrString) {
120
117
  function parseAttributesNoUnescape(attrString) {
121
118
  return parseAttributesImpl(attrString, false);
122
119
  }
123
- function normImpl(s, shouldUnescape) {
124
- if (s.length === 0 || s === '.') {
125
- return null;
126
- }
127
- return shouldUnescape ? unescape(s) : s;
120
+ function isEmpty(s) {
121
+ return s.length === 0 || s === '.';
122
+ }
123
+ function strField(s, shouldUnescape, empty) {
124
+ return isEmpty(s) ? empty : shouldUnescape ? unescape(s) : s;
125
+ }
126
+ function numField(s) {
127
+ return isEmpty(s) ? null : +s;
128
128
  }
129
129
  function parseFeatureImpl(line, shouldUnescape) {
130
130
  const f = line.split('\t');
131
- const startStr = f[3];
132
- const endStr = f[4];
133
- const scoreStr = f[5];
134
- const strand = f[6];
135
- const phase = f[7];
136
131
  const attrString = f[8];
137
132
  return {
138
- seq_id: normImpl(f[0], shouldUnescape),
139
- source: normImpl(f[1], shouldUnescape),
140
- type: normImpl(f[2], shouldUnescape),
141
- start: startStr.length === 0 || startStr === '.' ? null : +startStr,
142
- end: endStr.length === 0 || endStr === '.' ? null : +endStr,
143
- score: scoreStr.length === 0 || scoreStr === '.' ? null : +scoreStr,
144
- strand: normImpl(strand, false),
145
- phase: normImpl(phase, false),
146
- attributes: attrString.length === 0 || attrString === '.'
133
+ seq_id: strField(f[0], shouldUnescape, null),
134
+ source: strField(f[1], shouldUnescape, null),
135
+ type: strField(f[2], shouldUnescape, null),
136
+ start: numField(f[3]),
137
+ end: numField(f[4]),
138
+ score: numField(f[5]),
139
+ strand: strField(f[6], false, null),
140
+ phase: strField(f[7], false, null),
141
+ attributes: isEmpty(attrString)
147
142
  ? null
148
143
  : parseAttributesImpl(attrString, shouldUnescape),
149
144
  };
@@ -167,49 +162,6 @@ function parseFeature(line) {
167
162
  function parseFeatureNoUnescape(line) {
168
163
  return parseFeatureImpl(line, false);
169
164
  }
170
- function parseFieldsArrayImpl(f, shouldUnescape) {
171
- const seq_id = f[0];
172
- const source = f[1];
173
- const type = f[2];
174
- const startStr = f[3];
175
- const endStr = f[4];
176
- const scoreStr = f[5];
177
- const strand = f[6];
178
- const phase = f[7];
179
- const attrString = f[8];
180
- return {
181
- seq_id: seq_id ? normImpl(seq_id, shouldUnescape) : null,
182
- source: source ? normImpl(source, shouldUnescape) : null,
183
- type: type ? normImpl(type, shouldUnescape) : null,
184
- start: !startStr || startStr === '.' ? null : +startStr,
185
- end: !endStr || endStr === '.' ? null : +endStr,
186
- score: !scoreStr || scoreStr === '.' ? null : +scoreStr,
187
- strand: strand && strand !== '.' ? strand : null,
188
- phase: phase && phase !== '.' ? phase : null,
189
- attributes: !attrString || attrString === '.'
190
- ? null
191
- : parseAttributesImpl(attrString, shouldUnescape),
192
- };
193
- }
194
- /**
195
- * Parse a GFF3 feature from a pre-split fields array
196
- *
197
- * @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
198
- * @returns The parsed feature
199
- */
200
- function parseFieldsArray(f) {
201
- return parseFieldsArrayImpl(f, true);
202
- }
203
- /**
204
- * Parse a GFF3 feature from a pre-split fields array without unescaping.
205
- * Fast path for data known to contain no escaped characters.
206
- *
207
- * @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
208
- * @returns The parsed feature
209
- */
210
- function parseFieldsArrayNoUnescape(f) {
211
- return parseFieldsArrayImpl(f, false);
212
- }
213
165
  /**
214
166
  * Parse a GFF3 directive line.
215
167
  *
@@ -221,12 +173,11 @@ function parseDirective(line) {
221
173
  if (!match) {
222
174
  return null;
223
175
  }
224
- const [, name] = match;
225
- let [, , contents] = match;
176
+ const name = match[1];
177
+ const contents = match[2];
226
178
  const parsed = { directive: name };
227
179
  if (contents.length) {
228
- contents = contents.replace(lineEndRegex, '');
229
- parsed.value = contents;
180
+ parsed.value = contents.trimEnd();
230
181
  }
231
182
  if (name === 'sequence-region') {
232
183
  const c = contents.split(whitespaceRegex, 3);
@@ -300,10 +251,6 @@ function parseAttributesJBrowseImpl(attrString, result, shouldUnescape) {
300
251
  const eqIdx = attrString.indexOf('=', start);
301
252
  if (eqIdx !== -1 && eqIdx < semiIdx && eqIdx + 1 < semiIdx) {
302
253
  const tag = attrString.slice(start, eqIdx);
303
- if (tag === '_lineHash') {
304
- start = semiIdx + 1;
305
- continue;
306
- }
307
254
  let key = COMMON_ATTRS[tag];
308
255
  if (key === undefined) {
309
256
  key = tag.toLowerCase();
@@ -336,38 +283,27 @@ function parseAttributesJBrowse(attrString, result) {
336
283
  function parseAttributesJBrowseNoUnescape(attrString, result) {
337
284
  parseAttributesJBrowseImpl(attrString, result, false);
338
285
  }
286
+ const STRAND_MAP = {
287
+ '+': 1,
288
+ '-': -1,
289
+ '.': 0,
290
+ };
339
291
  function parseFeatureJBrowseImpl(line, shouldUnescape) {
340
292
  const f = line.split('\t');
341
- const seq_id = f[0];
342
- const source = f[1];
343
- const type = f[2];
344
293
  const startStr = f[3];
345
294
  const endStr = f[4];
346
295
  const scoreStr = f[5];
347
- const strand = f[6];
348
296
  const phase = f[7];
349
297
  const attrString = f[8];
350
298
  const result = {
351
- refName: seq_id.length === 0 || seq_id === '.'
352
- ? ''
353
- : shouldUnescape
354
- ? unescape(seq_id)
355
- : seq_id,
356
- source: source.length === 0 || source === '.'
357
- ? null
358
- : shouldUnescape
359
- ? unescape(source)
360
- : source,
361
- type: type.length === 0 || type === '.'
362
- ? null
363
- : shouldUnescape
364
- ? unescape(type)
365
- : type,
366
- start: startStr.length === 0 || startStr === '.' ? 0 : +startStr - 1,
367
- end: endStr.length === 0 || endStr === '.' ? 0 : +endStr,
368
- score: scoreStr.length === 0 || scoreStr === '.' ? undefined : +scoreStr,
369
- strand: strand === '+' ? 1 : strand === '-' ? -1 : strand === '.' ? 0 : undefined,
370
- phase: phase.length === 0 || phase === '.' ? undefined : +phase,
299
+ refName: strField(f[0], shouldUnescape, ''),
300
+ source: strField(f[1], shouldUnescape, null),
301
+ type: strField(f[2], shouldUnescape, null),
302
+ start: isEmpty(startStr) ? 0 : +startStr - 1,
303
+ end: isEmpty(endStr) ? 0 : +endStr,
304
+ score: isEmpty(scoreStr) ? undefined : +scoreStr,
305
+ strand: STRAND_MAP[f[6]],
306
+ phase: isEmpty(phase) ? undefined : +phase,
371
307
  subfeatures: [],
372
308
  };
373
309
  parseAttributesJBrowseImpl(attrString, result, shouldUnescape);
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/esm/api.d.ts CHANGED
@@ -2,8 +2,10 @@ import type { GFF3Feature, JBrowseFeature } from './util.ts';
2
2
  export interface LineRecord {
3
3
  line: string;
4
4
  lineHash?: string | number;
5
- start: number;
6
- end: number;
5
+ /** Optional passthrough byte offsets — not used by the parser */
6
+ start?: number;
7
+ /** Optional passthrough byte offsets — not used by the parser */
8
+ end?: number;
7
9
  hasEscapes: boolean;
8
10
  }
9
11
  /**