@gmod/bam 8.10.0 → 8.11.0

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
@@ -34,9 +34,9 @@ const bam = new BamFile({
34
34
  })
35
35
  ```
36
36
 
37
- Records come back unfiltered, and are shared between overlapping queries — treat
38
- them as read-only. Filter them yourself with the flag helpers and `getTag`,
39
- which decodes one tag instead of all of them:
37
+ Records come back unfiltered, and overlapping queries share them — treat them as
38
+ read-only. Filter them yourself with the flag helpers and `getTag`, which
39
+ decodes one tag instead of all of them:
40
40
 
41
41
  ```typescript
42
42
  const records = (await bam.getRecordsForRange('chr1', 0, 100000)).filter(
@@ -44,6 +44,27 @@ const records = (await bam.getRecordsForRange('chr1', 0, 100000)).filter(
44
44
  )
45
45
  ```
46
46
 
47
+ ## Unsorted BAM
48
+
49
+ A BAM that is unsorted, or still name-sorted as it came off the sequencer, has
50
+ no index to query and so no `chr:start-end` to query it with. `streamBamRecords`
51
+ walks one end to end instead, a batch of records at a time:
52
+
53
+ ```typescript
54
+ import { streamBamRecords } from '@gmod/bam'
55
+
56
+ for await (const records of streamBamRecords({ bamUrl: 'unsorted.bam' })) {
57
+ for (const record of records) {
58
+ // ...
59
+ }
60
+ }
61
+ ```
62
+
63
+ It reads the file a window at a time rather than all at once, so a 1GB BAM
64
+ streams through in bounded memory. A standalone function rather than a `BamFile`
65
+ method, so that streaming alone leaves `BAI`/`CSI` and the chunk cache out of
66
+ your bundle. See [docs/api.md](docs/api.md) for `onHeader` and the window size.
67
+
47
68
  ## Mismatches
48
69
 
49
70
  `record.getMismatches()` gives every difference between a read and the reference
@@ -77,7 +98,7 @@ fields say, with that read walked through them:
77
98
 
78
99
  Substitutions need either an `MD` tag on the read or the reference bases, which
79
100
  is what `fetchReferenceSequence` is doing above — most aligners leave `MD` off,
80
- and it is called only if some read in the query needs it. Without it, a read
101
+ and a query calls it only when one of its reads needs it. Without it, a read
81
102
  lacking `MD` still reports its indels and clips but no substitutions — nothing
82
103
  in the record says where they are. [docs/api.md](docs/api.md#mismatches) has the
83
104
  field meanings, and what to do about reads that run past the region you are
@@ -86,22 +107,22 @@ looking at.
86
107
  ## How a query flows
87
108
 
88
109
  A query turns the region into BGZF chunks through the index and decompresses
89
- each one in wasm. When nothing is cached yet, 70-90% of the time it takes to
90
- answer that query is spent decompressing. The rest is ordinary JS: records are
91
- views into their chunk's decompressed buffer, and their fields decode on access,
92
- so a query costs what you read off it. [docs/dataflow.md](docs/dataflow.md) has
93
- the diagram and walks it through.
94
-
95
- Those decompressed chunks are then kept, so overlapping and adjacent queries
96
- reuse them instead of inflating again — up to 1GB per file, dropped after three
97
- idle minutes. A consumer holding one file per track should bound them together
98
- with a shared `cacheBudget` rather than shrinking each file's own ceiling:
99
- [docs/caching.md](docs/caching.md).
110
+ each one in wasm. With nothing cached yet, decompression takes 70-90% of the
111
+ time that query needs. The rest is ordinary JS: records are views into their
112
+ chunk's decompressed buffer, and their fields decode on access, so a query costs
113
+ what you read off it. [docs/dataflow.md](docs/dataflow.md) has the diagram and
114
+ walks it through.
115
+
116
+ The file then holds on to those decompressed chunks, so overlapping and adjacent
117
+ queries reuse them instead of inflating again — up to 1GB per file, dropped
118
+ after three idle minutes. A consumer holding one file per track should bound
119
+ them together with a shared `cacheBudget` rather than shrinking each file's own
120
+ ceiling: [docs/caching.md](docs/caching.md).
100
121
 
101
122
  ## Decompressing on a worker pool
102
123
 
103
- BGZF blocks are independently inflatable, so that decompression can be spread
104
- across threads — measured 2.7-4.1x on the pool's own fixtures.
124
+ BGZF blocks inflate independently, so that decompression can spread across
125
+ threads — measured 2.7-4.1x on the pool's own fixtures.
105
126
 
106
127
  ```typescript
107
128
  import { getSharedWorkerPool } from '@gmod/bgzf-filehandle'
@@ -113,8 +134,8 @@ const bam = new BamFile({
113
134
  })
114
135
  ```
115
136
 
116
- Safe to pass unconditionally: `getSharedWorkerPool()` is `undefined` under node,
117
- or anywhere Workers cannot be created, which keeps the in-process path. No
137
+ Safe to pass unconditionally: `getSharedWorkerPool()` returns `undefined` under
138
+ node, or anywhere the host forbids Workers, which keeps the in-process path. No
118
139
  cross-origin isolation needed. bam-js never creates a pool on its own — the
119
140
  thread budget belongs to the consumer. Worker counts, lifecycle and benchmarks:
120
141
  [bgzf-filehandle's worker pool docs](https://github.com/GMOD/bgzf-filehandle/blob/main/docs/worker-pool.md).
@@ -131,8 +152,8 @@ const bam = new HtsgetFile({
131
152
  const records = await bam.getRecordsForRange('1', 2000000, 2000001)
132
153
  ```
133
154
 
134
- htsget fetches the server's range as-is, so the mate-pairing options are
135
- ignored. Pass a `fetch` to add auth:
155
+ htsget fetches the server's range as-is, so it ignores the mate-pairing options.
156
+ Pass a `fetch` to add auth:
136
157
 
137
158
  ```typescript
138
159
  const bam = new HtsgetFile({
@@ -146,16 +167,16 @@ const bam = new HtsgetFile({
146
167
  })
147
168
  ```
148
169
 
149
- That `fetch` is called for the ticket request _and_ for the data-block urls the
150
- ticket points at, which may live on a third-party host — so only attach
151
- credentials to hosts you trust.
170
+ That `fetch` serves the ticket request _and_ the data-block urls the ticket
171
+ points at, which may live on a third-party host — so only attach credentials to
172
+ hosts you trust.
152
173
 
153
174
  ## Docs
154
175
 
155
176
  - [docs/api.md](docs/api.md) — every constructor option, method and `BamRecord`
156
177
  field, plus custom record classes
157
178
  - [docs/cigar-and-md.md](docs/cigar-and-md.md) — what `CIGAR` and `MD` say, and
158
- how mismatches are decoded from them
179
+ how the walk reads mismatches out of them
159
180
  - [docs/dataflow.md](docs/dataflow.md) — how a query flows, and where wasm sits
160
181
  - [docs/optimizations.md](docs/optimizations.md) — why each step of that path
161
182
  looks the way it does, and what measured it
package/dist/bamFile.d.ts CHANGED
@@ -48,7 +48,6 @@ export interface BamRecordLike {
48
48
  */
49
49
  export type ReferenceSequenceFetcher = (refName: string, start: number, end: number, opts?: BaseOpts) => Promise<string>;
50
50
  export type BamRecordClass<T extends BamRecordLike = BAMFeature> = new (byteArray: Uint8Array, start: number, end: number, fileOffset: number, dataView: DataView) => T;
51
- export declare const BAM_MAGIC = 21840194;
52
51
  interface ChunkEntry<T> {
53
52
  bytes: number;
54
53
  features: T[];
package/dist/bamFile.js CHANGED
@@ -3,11 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_CACHE_IDLE_TIMEOUT_MS = exports.DEFAULT_MAX_CACHE_BYTES = exports.BAM_MAGIC = void 0;
6
+ exports.DEFAULT_CACHE_IDLE_TIMEOUT_MS = exports.DEFAULT_MAX_CACHE_BYTES = void 0;
7
7
  const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
8
8
  const shared_read_cache_1 = require("@gmod/shared-read-cache");
9
9
  const crc32_1 = __importDefault(require("crc/calculators/crc32"));
10
- const generic_filehandle2_1 = require("generic-filehandle2");
11
10
  const bai_ts_1 = __importDefault(require("./bai.js"));
12
11
  const csi_ts_1 = __importDefault(require("./csi.js"));
13
12
  const nullFilehandle_ts_1 = __importDefault(require("./nullFilehandle.js"));
@@ -15,7 +14,6 @@ const record_ts_1 = __importDefault(require("./record.js"));
15
14
  const reference_ts_1 = require("./reference.js");
16
15
  const sam_ts_1 = require("./sam.js");
17
16
  const util_ts_1 = require("./util.js");
18
- exports.BAM_MAGIC = 21840194;
19
17
  const blockLen = 1 << 16;
20
18
  // Ceiling on GROWING the header read. A million contigs is roughly 10MB of
21
19
  // compressed @SQ lines and ref-seq table, so a read that has doubled past this
@@ -25,10 +23,6 @@ const blockLen = 1 << 16;
25
23
  // than a guess, so a header that genuinely runs past this still gets its one
26
24
  // exact read. See getHeaderPre.
27
25
  const maxHeaderReadLen = 32 * 1024 * 1024;
28
- function resolveFilehandle(filehandle, path, url) {
29
- return (filehandle ??
30
- (path ? new generic_filehandle2_1.LocalFile(path) : url ? new generic_filehandle2_1.RemoteFile(url) : undefined));
31
- }
32
26
  /**
33
27
  * Whether a chunk's first record already lies past `chrId:..-max`, which means
34
28
  * every later chunk does too and none of them need to be read.
@@ -131,7 +125,7 @@ class BamFile {
131
125
  cacheKey: chunkCacheKey,
132
126
  fill: (chunk, signal) => this._readChunkFeatures(chunk, { signal }),
133
127
  });
134
- const bamFh = resolveFilehandle(bamFilehandle, bamPath, bamUrl);
128
+ const bamFh = (0, util_ts_1.resolveFilehandle)(bamFilehandle, bamPath, bamUrl);
135
129
  if (bamFh) {
136
130
  this.bam = bamFh;
137
131
  }
@@ -142,9 +136,9 @@ class BamFile {
142
136
  else {
143
137
  throw new Error('no bam source: pass bamFilehandle, bamPath, bamUrl, or htsget: true');
144
138
  }
145
- const csiFh = resolveFilehandle(csiFilehandle, csiPath, csiUrl);
146
- const baiFh = resolveFilehandle(baiFilehandle, baiPath, baiUrl) ??
147
- resolveFilehandle(undefined, bamPath ? `${bamPath}.bai` : undefined, bamUrl ? `${bamUrl}.bai` : undefined);
139
+ const csiFh = (0, util_ts_1.resolveFilehandle)(csiFilehandle, csiPath, csiUrl);
140
+ const baiFh = (0, util_ts_1.resolveFilehandle)(baiFilehandle, baiPath, baiUrl) ??
141
+ (0, util_ts_1.resolveFilehandle)(undefined, bamPath ? `${bamPath}.bai` : undefined, bamUrl ? `${bamUrl}.bai` : undefined);
148
142
  if (csiFh) {
149
143
  this.index = new csi_ts_1.default({ filehandle: csiFh });
150
144
  }
@@ -203,7 +197,7 @@ class BamFile {
203
197
  */
204
198
  applyHeader(uncba) {
205
199
  const dataView = new DataView(uncba.buffer, uncba.byteOffset, uncba.byteLength);
206
- if (dataView.getInt32(0, true) !== exports.BAM_MAGIC) {
200
+ if (dataView.getInt32(0, true) !== util_ts_1.BAM_MAGIC) {
207
201
  throw new Error('Not a BAM file');
208
202
  }
209
203
  const headLen = dataView.getInt32(4, true);
@@ -1 +1 @@
1
- {"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bamFile.js","sourceRoot":"","sources":["../src/bamFile.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA8D;AAC9D,+DAAyD;AACzD,kEAAyC;AAEzC,sDAA0B;AAC1B,sDAA0B;AAC1B,4EAAgD;AAChD,4DAAoC;AACpC,iDAA+D;AAC/D,qCAA0C;AAC1C,uCAOkB;AA+DlB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAA;AAExB,2EAA2E;AAC3E,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,gCAAgC;AAChC,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAQzC;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,WAAW,CAClB,QAAyD,EACzD,KAAa,EACb,GAAW;IAEX,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3B,OAAO,CACL,CAAC,CAAC,KAAK;QACP,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CACzE,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAC5B,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,CAAA;AAChG,CAAC;AAED,8EAA8E;AAC9E,iFAAiF;AACjF,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,uDAAuD;AACvD,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,4EAA4E;AAC5E,mFAAmF;AACnF,gFAAgF;AAChF,iFAAiF;AACjF,uCAAuC;AACvC,EAAE;AACF,gFAAgF;AAChF,qEAAqE;AACrE,iFAAiF;AACjF,gFAAgF;AAChF,yDAAyD;AAC5C,QAAA,uBAAuB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEzD,wDAAwD;AACxD,EAAE;AACF,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,gFAAgF;AAChF,sBAAsB;AACtB,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,qDAAqD;AACxC,QAAA,6BAA6B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAE1D,MAAqB,OAAO;IACnB,YAAY,CAAuB;IACnC,GAAG,CAAmB;IACtB,MAAM,CAAS;IACf,UAAU,CAAyB;IACnC,UAAU,CAAwC;IAClD,KAAK,CAAY;IACjB,MAAM,GAAG,KAAK,CAAA;IAErB;;;OAGG;IACK,WAAW,GAAG,IAAI,mCAAe,CAGvC,EAAE,CAAC,CAAA;IAEL,oEAAoE;IACpE,6EAA6E;IAC7E,sCAAsC;IAC/B,iBAAiB,CAAuC;IAEvD,WAAW,CAAmB;IAEtC,kDAAkD;IAC1C,cAAc,CAC4C;IAElE,kDAAkD;IAC3C,sBAAsB,CAA2B;IAExD,YAAY,EACV,aAAa,EACb,OAAO,EACP,MAAM,EACN,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,EACP,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EACtB,WAAW,EACX,aAAa,GAAG,+BAAuB,EACvC,kBAAkB,GAAG,qCAA6B,EAClD,WAAW,EACX,cAAc,EACd,sBAAsB,GAqIvB;QACC,IAAI,CAAC,YAAY,GAAG,aAAa,CAAA;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;QACpD,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,IAAI,mBAAU,CAAsB,CAAA;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,mCAAe,CAAuB;YACjE,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,kBAAkB;YACjC,MAAM,EAAE,WAAW;YACnB,qEAAqE;YACrE,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK;YAC5B,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;SACpE,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAA,2BAAiB,EAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;QAClB,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,2BAAc,EAAE,CAAA;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,2BAAiB,EAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/D,MAAM,KAAK,GACT,IAAA,2BAAiB,EAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC;YACjD,IAAA,2BAAiB,EACf,SAAS,EACT,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,EACtC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,SAAS,CACrC,CAAA;QACH,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7C,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7C,CAAC;aAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAA;QACH,CAAC;QACD,8CAA8C;IAChD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAiB,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,uEAAuE;YACvE,yDAAyD;YACzD,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAA;QACH,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE9C,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,6BAA6B;QAC7B,IAAI,OAAO,GACT,SAAS,CAAC,aAAa,KAAK,SAAS;YACnC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,GAAG,QAAQ,CAAA;QAEtD,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,SAAS,CAAA;QACb,IAAI,KAAc,CAAA;QAClB,GAAG,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YACvE,wEAAwE;YACxE,6BAA6B;YAC7B,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;YAC/B,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAA,uBAAK,EAAC,MAAM,CAAC,CAAC,CAAA;YACjD,OAAO,IAAI,CAAC,CAAA;QACd,CAAC,QAAQ,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,gBAAgB,EAAC;QAC1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;OAKG;IACO,WAAW,CAAC,KAAiB;QACrC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACjB,CAAA;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,mBAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAClE,IAAI,SAAS,CAAA;QACb,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAC/B,CAAA;YACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;YACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YACnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YACnC,SAAS,GAAG,IAAA,wBAAe,EAAC,UAAU,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CAAC,IAAe;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAC3D,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CACvC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiB,EAAE;QACrC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,yEAAyE;IACzE,+CAA+C;IACvC,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,IAAe;QACrD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,kBAAkB,CACtB,GAAW,EACX,GAAW,EACX,GAAW,EACX,IAAc;QAEd,IAAA,wBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QACzE,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACrE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,kBAAkB,CACtB,OAAe,EACf,KAAa,EACb,GAAW,EACX,IAAe;QAEf,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAA;QAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,+CAA+C;QAC/C,OAAO,IAAA,4BAAa,EAClB,MAAM,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EACvD,KAAK,CACN,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACO,KAAK,CAAC,uBAAuB,CACrC,OAAY,EACZ,KAAa,EACb,OAAe,EACf,OAAiB,EAAE;QAEnB,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAA;QAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,IAAI,KAAK,GAAG,QAAQ,CAAA;QACpB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YAC1B,IACE,MAAM,CAAC,MAAM,KAAK,KAAK;gBACvB,CAAC,MAAM,CAAC,UAAU;gBAClB,MAAM,CAAC,YAAY,EACnB,CAAC;gBACD,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;oBACzB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;gBACtB,CAAC;gBACD,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;oBACrB,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QACD,iEAAiE;QACjE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QACpE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAM;QACR,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YAC1B,IACE,MAAM,CAAC,MAAM,KAAK,KAAK;gBACvB,CAAC,MAAM,CAAC,UAAU;gBAClB,MAAM,CAAC,YAAY;gBACnB,IAAA,8BAAe,EAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAC9C,CAAC;gBACD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,kBAAkB;IAClB,EAAE;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,yCAAyC;IACjC,KAAK,CAAC,oBAAoB,CAChC,KAAY,EACZ,IAAc;QAEd,0EAA0E;QAC1E,2EAA2E;QAC3E,8DAA8D;QAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAClE,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,MAAe,EACf,KAAa,EACb,GAAW,EACX,GAAW,EACX,GAAW,EACX,OAAgB,EAAE;QAElB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;QACxC,MAAM,MAAM,GAAQ,EAAE,CAAA;QAEtB,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnD,UAAU,IAAI,MAAM,CAAC,EAAE,CAAE,CAAC,WAAW,EAAE,CAAA;QACzC,CAAC;QACD,IAAI,eAAe,GAAG,CAAC,CAAA;QACvB,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAE3B,MAAM,YAAY,GAAG,IAAI,KAAK,CAAkB,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,wEAAwE;YACxE,yEAAyE;YACzE,qEAAqE;YACrE,0CAA0C;YAC1C,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAA;YACnE,UAAU,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,0EAA0E;YAC1E,kEAAkE;YAClE,sEAAsE;YACtE,mDAAmD;YACnD,MAAM,OAAO,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;gBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAE,CAAA;gBACzB,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC/D,eAAe,IAAI,KAAK,CAAC,WAAW,EAAE,CAAA;gBACtC,UAAU,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YAC3C,CAAC,CAAA;YAED,kEAAkE;YAClE,EAAE;YACF,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,0CAA0C;YAC1C,EAAE;YACF,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,gEAAgE;YAChE,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,oCAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACjE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAExE,0EAA0E;YAC1E,eAAe;YACf,EAAE;YACF,uEAAuE;YACvE,wEAAwE;YACxE,yEAAyE;YACzE,qEAAqE;YACrE,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,2EAA2E;YAC3E,sEAAsE;YACtE,EAAE;YACF,0EAA0E;YAC1E,2EAA2E;YAC3E,qDAAqD;YACrD,0EAA0E;YAC1E,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,uDAAuD;YACvD,EAAE;YACF,yEAAyE;YACzE,qEAAqE;YACrE,yEAAyE;YACzE,wEAAwE;YACxE,oCAAoC;YACpC,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;YAC7B,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE;gBAC9B,IAAI,EAAE,GAAG,SAAS,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAChE,SAAS,GAAG,EAAE,CAAA;gBAChB,CAAC;YACH,CAAC,CAAA;YACD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;gBAClC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACd,CAAC;YACD,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;YAEzC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACtC,IAAI,IAAI,GAAG,KAAK,CAAA;gBAChB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;oBAC1B,OAAO,IAAI,GAAG,SAAS,EAAE,CAAC;wBACxB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAA;wBACjB,MAAM,OAAO,CAAC,EAAE,CAAC,CAAA;wBACjB,QAAQ,CAAC,EAAE,CAAC,CAAA;oBACd,CAAC;gBACH,CAAC,CAAA;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,oCAA0B,EAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CACtB,CAAA;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YACtE,CAAC;YACD,oEAAoE;YACpE,UAAU,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QACtC,CAAC;QAED,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,2BAA2B;QAC3B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnD,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAA,uBAAa,EAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,8DAA8D;QAC9D,kDAAkD;QAClD,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAE5D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAY,EAAE,IAAa;QACzD,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;QACtD,yEAAyE;QACzE,2EAA2E;QAC3E,sBAAsB;QACtB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;QAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;YACnB,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;QAED,MAAM,YAAY,GAAuB,EAAE,CAAA;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YACrB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAA;YACnB,IACE,IAAI,CAAC,KAAK;gBACV,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9B,CAAC,aAAa;oBACZ,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK;wBACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,EACpD,CAAC;gBACD,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,KAAK,CAAC,cAAc,CACvB,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,QAAQ,GAAG,CAAC,EACd,IAAI,CACL,CACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiB,CAAA;QACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;gBACpB,qEAAqE;gBACrE,sEAAsE;gBACtE,qEAAqE;gBACrE,oEAAoE;gBACpE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAEpC,4EAA4E;QAC5E,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAM,UAAU,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,OAAO,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAA;gBACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAE,EAAE,IAAI,CAAC,CAAA;gBACvE,MAAM,QAAQ,GAAG,EAAS,CAAA;gBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;oBAC5B,gEAAgE;oBAChE,oEAAoE;oBACpE,kEAAkE;oBAClE,6BAA6B;oBAC7B,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;wBAChC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EACtC,CAAC;wBACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACxB,CAAC;gBACH,CAAC;gBACD,aAAa,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;YAC9B,CAAC;QACH,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,oCAA0B,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QACvE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACpE,OAAO,aAAa,CAAC,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAY,EAAE,IAAc;QACnD,yEAAyE;QACzE,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,0CAA0C;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAC7B,KAAK,CAAC,WAAW,EAAE,EACnB,KAAK,CAAC,IAAI,CAAC,aAAa,EACxB;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CACF,CAAA;QACD,0EAA0E;QAC1E,oEAAoE;QACpE,2EAA2E;QAC3E,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE;QACF,uEAAuE;QACvE,sEAAsE;QACtE,2EAA2E;QAC3E,sEAAsE;QACtE,IAAA,wBAAc,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE3B,wEAAwE;QACxE,qEAAqE;QACrE,6CAA6C;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAA;QACtC,MAAM,EACJ,MAAM,EAAE,IAAI,EACZ,UAAU,EACV,UAAU,GACX,GAAG,MAAM,IAAA,iCAAe,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAC3C,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC;YACnE,KAAK,EAAE,IAAI,CAAC,UAAU;SACvB,CAAA;IACH,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,sEAAsE;IACtE,uCAAuC;IACvC,eAAe,CACb,EAAc,EACd,UAA6B,EAC7B,UAA6B,EAC7B,KAAY;QAEZ,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,IAAI,GAAG,EAAS,CAAA;QACtB,IAAI,GAAG,GAAG,CAAC,CAAA;QAEX,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;QACtE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAC3C,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAE3C,OAAO,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;YACrD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA;YAE/C,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAA;gBACnD,OAAO,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,CAAE,EAAE,CAAC;oBAC7D,GAAG,EAAE,CAAA;gBACP,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAClC,EAAE,EACF,UAAU,EACV,QAAQ,EACR,aAAa;oBACX,CAAC,CAAC,UAAU,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;wBACzB,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC;wBAC/B,KAAK,CAAC,IAAI,CAAC,YAAY;wBACvB,CAAC;oBACL,CAAC,CAAC,IAAA,eAAK,EAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,EAClD,QAAQ,CACT,CAAA;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,CAAC;YAED,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,IAAe;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;YACvC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe,EAAE,IAAe;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,KAAc,EAAE,GAAY;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,KAAa,EACb,GAAW,EACX,IAAe;QAEf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAChD,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,OAA0D,EAC1D,IAAe;QAEf,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,CAAA;QACV,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAC1C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC;CACF;AAv2BD,0BAu2BC"}
package/dist/htsget.js CHANGED
@@ -1,43 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  const bgzf_filehandle_1 = require("@gmod/bgzf-filehandle");
40
- const bamFile_ts_1 = __importStar(require("./bamFile.js"));
7
+ const bamFile_ts_1 = __importDefault(require("./bamFile.js"));
41
8
  const chunk_ts_1 = __importDefault(require("./chunk.js"));
42
9
  const util_ts_1 = require("./util.js");
43
10
  const virtualOffset_ts_1 = require("./virtualOffset.js");
@@ -73,7 +40,7 @@ function htsgetErrorMessage(text) {
73
40
  */
74
41
  function recordsOffset(uncba) {
75
42
  const dataView = new DataView(uncba.buffer, uncba.byteOffset, uncba.byteLength);
76
- if (uncba.byteLength < 8 || dataView.getInt32(0, true) !== bamFile_ts_1.BAM_MAGIC) {
43
+ if (uncba.byteLength < 8 || dataView.getInt32(0, true) !== util_ts_1.BAM_MAGIC) {
77
44
  return 0;
78
45
  }
79
46
  const refs = (0, util_ts_1.parseRefSeqs)(uncba, 8 + dataView.getInt32(4, true), n => n);
@@ -1 +1 @@
1
- {"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"htsget.js","sourceRoot":"","sources":["../src/htsget.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export { DEFAULT_CACHE_IDLE_TIMEOUT_MS, DEFAULT_MAX_CACHE_BYTES, default as BamF
3
3
  export { default as CSI } from './csi.ts';
4
4
  export { default as BamRecord } from './record.ts';
5
5
  export { default as HtsgetFile } from './htsget.ts';
6
+ export { streamBamRecords } from './streamBam.ts';
7
+ export type { BamStreamHeader, StreamBamOptions } from './streamBam.ts';
6
8
  export { MISMATCH_DELETION, MISMATCH_HARD_CLIP, MISMATCH_INSERTION, MISMATCH_REF_SKIP, MISMATCH_SOFT_CLIP, MISMATCH_SUBST, forEachMismatchNumeric, } from './mismatches.ts';
7
9
  export { CHAR_CODE_FROM_NIBBLE, packReference, referenceNibble, } from './reference.ts';
8
10
  export type { NumericCigar } from './record.ts';
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.referenceNibble = exports.packReference = exports.CHAR_CODE_FROM_NIBBLE = exports.forEachMismatchNumeric = exports.MISMATCH_SUBST = exports.MISMATCH_SOFT_CLIP = exports.MISMATCH_REF_SKIP = exports.MISMATCH_INSERTION = exports.MISMATCH_HARD_CLIP = exports.MISMATCH_DELETION = exports.HtsgetFile = exports.BamRecord = exports.CSI = exports.BamFile = exports.DEFAULT_MAX_CACHE_BYTES = exports.DEFAULT_CACHE_IDLE_TIMEOUT_MS = exports.BAI = void 0;
6
+ exports.referenceNibble = exports.packReference = exports.CHAR_CODE_FROM_NIBBLE = exports.forEachMismatchNumeric = exports.MISMATCH_SUBST = exports.MISMATCH_SOFT_CLIP = exports.MISMATCH_REF_SKIP = exports.MISMATCH_INSERTION = exports.MISMATCH_HARD_CLIP = exports.MISMATCH_DELETION = exports.streamBamRecords = exports.HtsgetFile = exports.BamRecord = exports.CSI = exports.BamFile = exports.DEFAULT_MAX_CACHE_BYTES = exports.DEFAULT_CACHE_IDLE_TIMEOUT_MS = exports.BAI = void 0;
7
7
  var bai_ts_1 = require("./bai.js");
8
8
  Object.defineProperty(exports, "BAI", { enumerable: true, get: function () { return __importDefault(bai_ts_1).default; } });
9
9
  var bamFile_ts_1 = require("./bamFile.js");
@@ -16,6 +16,11 @@ var record_ts_1 = require("./record.js");
16
16
  Object.defineProperty(exports, "BamRecord", { enumerable: true, get: function () { return __importDefault(record_ts_1).default; } });
17
17
  var htsget_ts_1 = require("./htsget.js");
18
18
  Object.defineProperty(exports, "HtsgetFile", { enumerable: true, get: function () { return __importDefault(htsget_ts_1).default; } });
19
+ // The index-free whole-file walk, for BAMs an index cannot address. Kept out of
20
+ // BamFile so that streaming it does not drag BAI/CSI and the chunk cache into a
21
+ // consumer's bundle.
22
+ var streamBam_ts_1 = require("./streamBam.js");
23
+ Object.defineProperty(exports, "streamBamRecords", { enumerable: true, get: function () { return streamBam_ts_1.streamBamRecords; } });
19
24
  // The mismatch walk, and the codes it reports differences as. The walk is
20
25
  // exported alongside `record.forEachMismatch` for callers holding BAM's packed
21
26
  // arrays without a record around them — a SAM parser, or a worker that was
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAyC;AAAhC,8GAAA,OAAO,OAAO;AACvB,2CAIqB;AAHnB,2HAAA,6BAA6B,OAAA;AAC7B,qHAAA,uBAAuB,OAAA;AACvB,sHAAA,OAAO,OAAW;AAEpB,mCAAyC;AAAhC,8GAAA,OAAO,OAAO;AACvB,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,yCAAmD;AAA1C,wHAAA,OAAO,OAAc;AAE9B,0EAA0E;AAC1E,+EAA+E;AAC/E,2EAA2E;AAC3E,2BAA2B;AAC3B,iDAQwB;AAPtB,kHAAA,iBAAiB,OAAA;AACjB,mHAAA,kBAAkB,OAAA;AAClB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,mHAAA,kBAAkB,OAAA;AAClB,+GAAA,cAAc,OAAA;AACd,uHAAA,sBAAsB,OAAA;AAExB,8EAA8E;AAC9E,6EAA6E;AAC7E,oEAAoE;AACpE,+CAIuB;AAHrB,qHAAA,qBAAqB,OAAA;AACrB,6GAAA,aAAa,OAAA;AACb,+GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAyC;AAAhC,8GAAA,OAAO,OAAO;AACvB,2CAIqB;AAHnB,2HAAA,6BAA6B,OAAA;AAC7B,qHAAA,uBAAuB,OAAA;AACvB,sHAAA,OAAO,OAAW;AAEpB,mCAAyC;AAAhC,8GAAA,OAAO,OAAO;AACvB,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,yCAAmD;AAA1C,wHAAA,OAAO,OAAc;AAE9B,gFAAgF;AAChF,gFAAgF;AAChF,qBAAqB;AACrB,+CAAiD;AAAxC,gHAAA,gBAAgB,OAAA;AAGzB,0EAA0E;AAC1E,+EAA+E;AAC/E,2EAA2E;AAC3E,2BAA2B;AAC3B,iDAQwB;AAPtB,kHAAA,iBAAiB,OAAA;AACjB,mHAAA,kBAAkB,OAAA;AAClB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,mHAAA,kBAAkB,OAAA;AAClB,+GAAA,cAAc,OAAA;AACd,uHAAA,sBAAsB,OAAA;AAExB,8EAA8E;AAC9E,6EAA6E;AAC7E,oEAAoE;AACpE,+CAIuB;AAHrB,qHAAA,qBAAqB,OAAA;AACrB,6GAAA,aAAa,OAAA;AACb,+GAAA,eAAe,OAAA"}
@@ -0,0 +1,101 @@
1
+ import BAMFeature from './record.ts';
2
+ import { parseHeaderText } from './sam.ts';
3
+ import type { BamRecordClass, BamRecordLike } from './bamFile.ts';
4
+ import type { BgzfWorkerPool } from '@gmod/bgzf-filehandle';
5
+ import type { GenericFilehandle } from 'generic-filehandle2';
6
+ export interface BamStreamHeader {
7
+ /** the raw SAM header text, i.e. what `samtools view -H` prints */
8
+ headerText: string;
9
+ /** the same text parsed into `@HD`/`@SQ`/`@RG`… lines and their tags */
10
+ samHeader: ReturnType<typeof parseHeaderText>;
11
+ /** ref name to the `refId` records carry, from the binary ref-seq table */
12
+ chrToIndex: Record<string, number>;
13
+ /** the inverse, indexed by `refId` */
14
+ indexToChr: {
15
+ refName: string;
16
+ length: number;
17
+ }[];
18
+ }
19
+ export interface StreamBamOptions<T extends BamRecordLike = BAMFeature> {
20
+ bamFilehandle?: GenericFilehandle;
21
+ bamPath?: string;
22
+ bamUrl?: string;
23
+ recordClass?: BamRecordClass<T>;
24
+ renameRefSeqs?: (a: string) => string;
25
+ signal?: AbortSignal;
26
+ /**
27
+ * Fires once, before the first batch, with everything the ref-seq table and
28
+ * header text hold. A callback rather than a separate call, because the
29
+ * stream has to read the header anyway to find where the records start —
30
+ * making it a method would mean either reading the front of the file twice
31
+ * or holding state between two calls.
32
+ */
33
+ onHeader?: (header: BamStreamHeader) => void;
34
+ /**
35
+ * Worker pool to inflate each window on, as in {@link BamFile}. Without one
36
+ * the whole walk inflates on the calling thread, which on a large file is
37
+ * long enough to be worth keeping off whichever thread draws — pass
38
+ * `getSharedWorkerPool()` in a browser, or run the stream in a worker.
39
+ *
40
+ * Takes the promise as readily as the pool, since `getSharedWorkerPool()`
41
+ * returns one and awaiting an already-settled promise costs a microtask.
42
+ */
43
+ bgzfWorkerPool?: BgzfWorkerPool | Promise<BgzfWorkerPool | undefined>;
44
+ /**
45
+ * How many window reads to keep in flight at once. Defaults to
46
+ * {@link DEFAULT_READ_AHEAD}; 1 issues the next read only once the previous
47
+ * window has been handed to the caller.
48
+ *
49
+ * Depth is the whole point of it. One outstanding read overlaps a round trip
50
+ * with only the CPU spent on the window before it — 8% end to end over a
51
+ * local server with 20ms of latency — because the wait itself is still
52
+ * serial. Several outstanding turn N waits into roughly N/depth.
53
+ *
54
+ * Costs `depth` windows of compressed bytes held at once, and up to
55
+ * `depth - 1` wasted requests at EOF: a read's length is the only thing that
56
+ * says the file has ended, so the reads queued behind the last one have
57
+ * already gone out by the time it lands. A file that fits in a single window
58
+ * pays neither — the depth only opens up once a read comes back full.
59
+ */
60
+ readAhead?: number;
61
+ /**
62
+ * Compressed bytes to read per request. The default reads ~1MB at a time,
63
+ * which is a reasonable HTTP request size and bounds how much sits
64
+ * decompressed at once (~8MB, since BGZF blocks are capped at 64KB and
65
+ * compress ~8x). Values below one maximum-size block are raised to it, since
66
+ * a window that cannot hold a whole block can never make progress.
67
+ */
68
+ windowSize?: number;
69
+ }
70
+ /**
71
+ * Reads every record in a BAM, in file order, without an index.
72
+ *
73
+ * For BAMs that no index can address: unsorted, or name-sorted as they come off
74
+ * the sequencer. {@link BamFile} answers `chr:start-end` by seeking to the
75
+ * chunks an index names, which a file in neither order has none of.
76
+ *
77
+ * Yields records a batch at a time, one batch per window read, rather than one
78
+ * record per `yield`. A whole-file walk over a 1GB BAM is tens of millions of
79
+ * records, and an async generator pays a promise per yield — batching moves
80
+ * that cost to once per few thousand records and lets the caller's inner loop
81
+ * be synchronous:
82
+ *
83
+ * ```js
84
+ * for await (const records of streamBamRecords({ bamPath: 'reads.bam' })) {
85
+ * for (const record of records) {
86
+ * // ...
87
+ * }
88
+ * }
89
+ * ```
90
+ *
91
+ * Deliberately a standalone function and not a `BamFile` method: it shares the
92
+ * record parser and header parser but none of the index, chunk or cache
93
+ * machinery, so a consumer who only streams does not pay for `BAI`/`CSI` in
94
+ * their bundle.
95
+ *
96
+ * Records are views into the window they were decompressed from, as everywhere
97
+ * else in this library. Holding one record from a batch retains that whole
98
+ * window (see {@link StreamBamOptions.windowSize}), so copy out the fields you
99
+ * want rather than keeping a sparse selection of records from a large file.
100
+ */
101
+ export declare function streamBamRecords<T extends BamRecordLike = BAMFeature>({ bamFilehandle, bamPath, bamUrl, recordClass, renameRefSeqs, signal, onHeader, bgzfWorkerPool, windowSize, readAhead, }: StreamBamOptions<T>): AsyncGenerator<T[], void, undefined>;