@gmod/cram 5.0.6 → 6.0.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.
Files changed (85) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/cram-bundle.js +1 -1
  3. package/dist/cram-bundle.js.LICENSE.txt +0 -6
  4. package/dist/cramFile/codecs/byteArrayLength.js +8 -4
  5. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  6. package/dist/cramFile/codecs/external.d.ts +1 -4
  7. package/dist/cramFile/codecs/external.js +15 -20
  8. package/dist/cramFile/codecs/external.js.map +1 -1
  9. package/dist/cramFile/file.d.ts +2 -7
  10. package/dist/cramFile/file.js +22 -22
  11. package/dist/cramFile/file.js.map +1 -1
  12. package/dist/cramFile/slice/index.js +14 -5
  13. package/dist/cramFile/slice/index.js.map +1 -1
  14. package/dist/cramFile/util.js +4 -3
  15. package/dist/cramFile/util.js.map +1 -1
  16. package/dist/indexedCramFile.js +15 -4
  17. package/dist/indexedCramFile.js.map +1 -1
  18. package/dist/rans/d04.js +42 -16
  19. package/dist/rans/d04.js.map +1 -1
  20. package/dist/rans/d14.js +60 -23
  21. package/dist/rans/d14.js.map +1 -1
  22. package/dist/rans/decoding.js +3 -4
  23. package/dist/rans/decoding.js.map +1 -1
  24. package/dist/rans/frequencies.js +18 -24
  25. package/dist/rans/frequencies.js.map +1 -1
  26. package/dist/rans/index.js +9 -14
  27. package/dist/rans/index.js.map +1 -1
  28. package/dist/unzip.d.ts +1 -1
  29. package/dist/unzip.js +2 -36
  30. package/dist/unzip.js.map +1 -1
  31. package/dist/xz-decompress/wasm.d.ts +1 -0
  32. package/dist/xz-decompress/wasm.js +5 -0
  33. package/dist/xz-decompress/wasm.js.map +1 -0
  34. package/dist/xz-decompress/xz-decompress.d.ts +1 -0
  35. package/dist/xz-decompress/xz-decompress.js +123 -0
  36. package/dist/xz-decompress/xz-decompress.js.map +1 -0
  37. package/esm/cramFile/codecs/byteArrayLength.js +8 -4
  38. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  39. package/esm/cramFile/codecs/external.d.ts +1 -4
  40. package/esm/cramFile/codecs/external.js +15 -20
  41. package/esm/cramFile/codecs/external.js.map +1 -1
  42. package/esm/cramFile/file.d.ts +2 -7
  43. package/esm/cramFile/file.js +22 -22
  44. package/esm/cramFile/file.js.map +1 -1
  45. package/esm/cramFile/slice/index.js +14 -5
  46. package/esm/cramFile/slice/index.js.map +1 -1
  47. package/esm/cramFile/util.js +4 -3
  48. package/esm/cramFile/util.js.map +1 -1
  49. package/esm/indexedCramFile.js +15 -4
  50. package/esm/indexedCramFile.js.map +1 -1
  51. package/esm/rans/d04.js +42 -16
  52. package/esm/rans/d04.js.map +1 -1
  53. package/esm/rans/d14.js +60 -20
  54. package/esm/rans/d14.js.map +1 -1
  55. package/esm/rans/decoding.js +3 -4
  56. package/esm/rans/decoding.js.map +1 -1
  57. package/esm/rans/frequencies.js +18 -24
  58. package/esm/rans/frequencies.js.map +1 -1
  59. package/esm/rans/index.js +9 -14
  60. package/esm/rans/index.js.map +1 -1
  61. package/esm/unzip.d.ts +1 -1
  62. package/esm/unzip.js +2 -3
  63. package/esm/unzip.js.map +1 -1
  64. package/esm/xz-decompress/wasm.d.ts +1 -0
  65. package/esm/xz-decompress/wasm.js +2 -0
  66. package/esm/xz-decompress/wasm.js.map +1 -0
  67. package/esm/xz-decompress/xz-decompress.d.ts +1 -0
  68. package/esm/xz-decompress/xz-decompress.js +120 -0
  69. package/esm/xz-decompress/xz-decompress.js.map +1 -0
  70. package/package.json +6 -8
  71. package/src/cramFile/codecs/byteArrayLength.ts +8 -4
  72. package/src/cramFile/codecs/external.ts +19 -31
  73. package/src/cramFile/container/compressionScheme.ts +1 -1
  74. package/src/cramFile/file.ts +27 -27
  75. package/src/cramFile/slice/index.ts +18 -8
  76. package/src/cramFile/util.ts +4 -3
  77. package/src/indexedCramFile.ts +20 -7
  78. package/src/rans/d04.ts +48 -19
  79. package/src/rans/d14.ts +69 -23
  80. package/src/rans/decoding.ts +3 -4
  81. package/src/rans/frequencies.ts +18 -24
  82. package/src/rans/index.ts +10 -14
  83. package/src/unzip.ts +3 -4
  84. package/src/xz-decompress/wasm.ts +2 -0
  85. package/src/xz-decompress/xz-decompress.ts +155 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xz-decompress.js","sourceRoot":"","sources":["../../src/xz-decompress/xz-decompress.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,15 @@ export default class ByteArrayStopCodec extends CramCodec {
8
8
  decode(slice, coreDataBlock, blocksByContentId, cursors) {
9
9
  const lengthCodec = this._getLengthCodec();
10
10
  const arrayLength = lengthCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) || 0;
11
- const dataCodec = this._getDataCodec();
12
11
  const data = new Uint8Array(arrayLength);
13
- for (let i = 0; i < arrayLength; i += 1) {
14
- data[i] =
15
- dataCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) || 0;
12
+ if (arrayLength > 0) {
13
+ const dataCodec = this._getDataCodec();
14
+ // Call decode directly on codec to avoid repeated lookups
15
+ for (let i = 0; i < arrayLength; i += 1) {
16
+ data[i] =
17
+ dataCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) ||
18
+ 0;
19
+ }
16
20
  }
17
21
  return data;
18
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAK/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAOxC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAG/C;IAGC,YACE,UAAiD,EACjD,QAAqB,EACrB,gBAAkC;QAElC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1C,MAAM,WAAW,GACf,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC;gBACL,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3E,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU;IACV,eAAe;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAA;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,UAAU;IACV,aAAa;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAA;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;CACF;AAED,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC1D,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAK/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAOxC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAG/C;IAGC,YACE,UAAiD,EACjD,QAAqB,EACrB,gBAAkC;QAElC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1C,MAAM,WAAW,GACf,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAE3E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QACxC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACtC,0DAA0D;YAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,CAAC,CAAC;oBACL,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC;wBAClE,CAAC,CAAA;YACL,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU;IACV,eAAe;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAA;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,UAAU;IACV,aAAa;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAA;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;CACF;AAED,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC1D,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA"}
@@ -1,11 +1,8 @@
1
- import CramCodec, { Cursor, Cursors } from './_base.ts';
1
+ import CramCodec, { Cursors } from './_base.ts';
2
2
  import { CramFileBlock } from '../file.ts';
3
3
  import CramSlice from '../slice/index.ts';
4
4
  import { ExternalCramEncoding } from '../encoding.ts';
5
5
  export default class ExternalCodec extends CramCodec<'int' | 'byte', ExternalCramEncoding['parameters']> {
6
- private readonly _decodeData;
7
6
  constructor(parameters: ExternalCramEncoding['parameters'], dataType: 'int' | 'byte');
8
7
  decode(_slice: CramSlice, _coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number | undefined;
9
- _decodeInt(contentBlock: CramFileBlock, cursor: Cursor): number;
10
- _decodeByte(contentBlock: CramFileBlock, cursor: Cursor): number;
11
8
  }
@@ -5,33 +5,28 @@ import { CramBufferOverrunError } from "./getBits.js";
5
5
  export default class ExternalCodec extends CramCodec {
6
6
  constructor(parameters, dataType) {
7
7
  super(parameters, dataType);
8
- if (this.dataType === 'int') {
9
- this._decodeData = this._decodeInt;
10
- }
11
- else if (this.dataType === 'byte') {
12
- this._decodeData = this._decodeByte;
13
- }
14
- else {
8
+ if (this.dataType !== 'int' && this.dataType !== 'byte') {
15
9
  throw new CramUnimplementedError(`${this.dataType} decoding not yet implemented by EXTERNAL codec`);
16
10
  }
17
11
  }
18
12
  decode(_slice, _coreDataBlock, blocksByContentId, cursors) {
19
13
  const { blockContentId } = this.parameters;
20
14
  const contentBlock = blocksByContentId[blockContentId];
21
- return contentBlock
22
- ? this._decodeData(contentBlock, cursors.externalBlocks.getCursor(blockContentId))
23
- : undefined;
24
- }
25
- _decodeInt(contentBlock, cursor) {
26
- const [result, bytesRead] = parseItf8(contentBlock.content, cursor.bytePosition);
27
- cursor.bytePosition = cursor.bytePosition + bytesRead;
28
- return result;
29
- }
30
- _decodeByte(contentBlock, cursor) {
31
- if (cursor.bytePosition >= contentBlock.content.length) {
32
- throw new CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
15
+ if (!contentBlock) {
16
+ return undefined;
17
+ }
18
+ const cursor = cursors.externalBlocks.getCursor(blockContentId);
19
+ if (this.dataType === 'int') {
20
+ const [result, bytesRead] = parseItf8(contentBlock.content, cursor.bytePosition);
21
+ cursor.bytePosition += bytesRead;
22
+ return result;
23
+ }
24
+ else {
25
+ if (cursor.bytePosition >= contentBlock.content.length) {
26
+ throw new CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
27
+ }
28
+ return contentBlock.content[cursor.bytePosition++];
33
29
  }
34
- return contentBlock.content[cursor.bytePosition++];
35
30
  }
36
31
  }
37
32
  //# sourceMappingURL=external.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":"AAAA,OAAO,SAA8B,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAG1C;IAMC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,cAA6B,EAC7B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,OAAO,YAAY;YACjB,CAAC,CAAC,IAAI,CAAC,WAAW,CACd,YAAY,EACZ,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CACjD;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,UAAU,CAAC,YAA2B,EAAE,MAAc;QACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,CAAA;QACD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS,CAAA;QACrD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CAAC,YAA2B,EAAE,MAAc;QACrD,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,sBAAsB,CAC9B,mEAAmE,CACpE,CAAA;QACH,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAE,CAAA;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAG1C;IACC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,cAA6B,EAC7B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAE/D,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,CAAA;YACD,MAAM,CAAC,YAAY,IAAI,SAAS,CAAA;YAChC,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,sBAAsB,CAC9B,mEAAmE,CACpE,CAAA;YACH,CAAC;YACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAE,CAAA;QACrD,CAAC;IACH,CAAC;CACF"}
@@ -31,6 +31,7 @@ export default class CramFile {
31
31
  };
32
32
  featureCache: QuickLRU<string, Promise<CramRecord[]>>;
33
33
  private header;
34
+ private _sectionParsers?;
34
35
  constructor(args: CramFileArgs);
35
36
  read(length: number, position: number): Promise<Uint8Array<ArrayBuffer>>;
36
37
  getDefinition(): Promise<{
@@ -57,13 +58,7 @@ export default class CramFile {
57
58
  */
58
59
  containerCount(): Promise<number | undefined>;
59
60
  getContainerAtPosition(position: number): CramContainer;
60
- readBlockHeader(position: number): Promise<{
61
- uncompressedSize: number;
62
- compressedSize: number;
63
- contentId: number;
64
- contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
65
- compressionMethod: CompressionMethod;
66
- } & {
61
+ readBlockHeader(position: number): Promise<BlockHeader & {
67
62
  _endPosition: number;
68
63
  _size: number;
69
64
  }>;
@@ -1,24 +1,16 @@
1
1
  import crc32 from 'crc/calculators/crc32';
2
2
  import QuickLRU from 'quick-lru';
3
- import { XzReadableStream } from 'xz-decompress';
4
3
  import { CramMalformedError, CramUnimplementedError } from "../errors.js";
5
4
  import * as htscodecs from "../htscodecs/index.js";
6
5
  import { open } from "../io.js";
7
6
  import ransuncompress from "../rans/index.js";
8
7
  import { parseHeaderText } from "../sam.js";
8
+ import { parseItem, tinyMemoize } from "./util.js";
9
9
  import { decode } from "../seek-bzip/index.js";
10
10
  import { unzip } from "../unzip.js";
11
11
  import CramContainer from "./container/index.js";
12
12
  import { cramFileDefinition, getSectionParsers, } from "./sectionParsers.js";
13
- import { parseItem, tinyMemoize } from "./util.js";
14
- function bufferToStream(buf) {
15
- return new ReadableStream({
16
- start(controller) {
17
- controller.enqueue(buf);
18
- controller.close();
19
- },
20
- });
21
- }
13
+ import { xzDecompress } from "../xz-decompress/xz-decompress.js";
22
14
  // source: https://abdulapopoola.com/2019/01/20/check-endianness-with-javascript/
23
15
  function getEndianness() {
24
16
  const uInt32 = new Uint32Array([0x11223344]);
@@ -91,9 +83,11 @@ export default class CramFile {
91
83
  return this.header;
92
84
  }
93
85
  async getContainerById(containerNumber) {
94
- const { majorVersion } = await this.getDefinition();
95
- const sectionParsers = getSectionParsers(majorVersion);
96
- let position = sectionParsers.cramFileDefinition.maxLength;
86
+ if (!this._sectionParsers) {
87
+ const { majorVersion } = await this.getDefinition();
88
+ this._sectionParsers = getSectionParsers(majorVersion);
89
+ }
90
+ let position = this._sectionParsers.cramFileDefinition.maxLength;
97
91
  // skip with a series of reads to the proper container
98
92
  let currentContainer;
99
93
  for (let i = 0; i <= containerNumber; i++) {
@@ -139,10 +133,12 @@ export default class CramFile {
139
133
  * length check, relies on a try catch to read return an error to break
140
134
  */
141
135
  async containerCount() {
142
- const { majorVersion } = await this.getDefinition();
143
- const sectionParsers = getSectionParsers(majorVersion);
136
+ if (!this._sectionParsers) {
137
+ const { majorVersion } = await this.getDefinition();
138
+ this._sectionParsers = getSectionParsers(majorVersion);
139
+ }
144
140
  let containerCount = 0;
145
- let position = sectionParsers.cramFileDefinition.maxLength;
141
+ let position = this._sectionParsers.cramFileDefinition.maxLength;
146
142
  try {
147
143
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
148
144
  while (true) {
@@ -175,9 +171,11 @@ export default class CramFile {
175
171
  return new CramContainer(this, position);
176
172
  }
177
173
  async readBlockHeader(position) {
178
- const { majorVersion } = await this.getDefinition();
179
- const sectionParsers = getSectionParsers(majorVersion);
180
- const { cramBlockHeader } = sectionParsers;
174
+ if (!this._sectionParsers) {
175
+ const { majorVersion } = await this.getDefinition();
176
+ this._sectionParsers = getSectionParsers(majorVersion);
177
+ }
178
+ const { cramBlockHeader } = this._sectionParsers;
181
179
  const buffer = await this.file.read(cramBlockHeader.maxLength, position);
182
180
  return parseItem(buffer, cramBlockHeader.parser, 0, position);
183
181
  }
@@ -198,8 +196,7 @@ export default class CramFile {
198
196
  return decode(inputBuffer);
199
197
  }
200
198
  else if (compressionMethod === 'lzma') {
201
- const decompressedResponse = new Response(new XzReadableStream(bufferToStream(inputBuffer)));
202
- return new Uint8Array(await decompressedResponse.arrayBuffer());
199
+ return xzDecompress(inputBuffer);
203
200
  }
204
201
  else if (compressionMethod === 'rans') {
205
202
  const outputBuffer = new Uint8Array(uncompressedSize);
@@ -233,7 +230,10 @@ export default class CramFile {
233
230
  }
234
231
  async readBlock(position) {
235
232
  const { majorVersion } = await this.getDefinition();
236
- const sectionParsers = getSectionParsers(majorVersion);
233
+ if (!this._sectionParsers) {
234
+ this._sectionParsers = getSectionParsers(majorVersion);
235
+ }
236
+ const sectionParsers = this._sectionParsers;
237
237
  const blockHeader = await this.readBlockHeader(position);
238
238
  const blockContentPosition = blockHeader._endPosition;
239
239
  const d = await this.file.read(blockHeader.compressedSize, blockContentPosition);
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/cramFile/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/cramFile/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,uBAAuB,CAAA;AACzC,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,aAAa,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAGL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAIhE,iFAAiF;AACjF,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE3C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,CAAA,CAAC,gBAAgB;IAC3B,CAAC;SAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAA,CAAC,aAAa;IACxB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,CAAA,CAAC,gBAAgB;IAC3B,CAAC;AACH,CAAC;AA4BD,MAAM,CAAC,OAAO,OAAO,QAAQ;IAY3B,YAAY,IAAkB;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;QAC7B,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAA;QACnD,IAAI,CAAC,OAAO,GAAG;YACb,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;SACnC,CAAA;QAED,yEAAyE;QACzE,sEAAsE;QACtE,6DAA6D;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,QAAQ,CAAC;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;SAChC,CAAC,CAAA;QACF,IAAI,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,QAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,WAAW;IACX,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAA;QAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAA;QAC1C,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;aAAM,IAAI,UAAU,CAAC,YAAY,KAAK,CAAC,IAAI,UAAU,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,sBAAsB,CAC9B,gBAAgB,UAAU,CAAC,YAAY,gBAAgB,CACxD,CAAA;QACH,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IAED,UAAU;IACV,KAAK,CAAC,YAAY;QAChB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,kBAAkB,CAAC,6BAA6B,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAA;QAEvD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,CAAC,CAAA;QACnB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,CAAC,CACtD,CAAA;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QACzB,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,eAAuB;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YACnD,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAA;QAEhE,sDAAsD;QACtD,IAAI,gBAA2C,CAAA;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,gDAAgD;YAChD,uDAAuD;YACvD,mEAAmE;YACnE,qBAAqB;YACrB,IAAI;YAEJ,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YACxD,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,CAAA;YAExD,uEAAuE;YACvE,iEAAiE;YACjE,yDAAyD;YACzD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAA;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;oBAC5C,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAA;gBAC/B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,SAAS;gBACT,QAAQ,IAAI,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAA;YACxD,CAAC;QACH,CAAC;QAED,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CACd,QAAgB,EAChB,MAAc,EACd,aAAqB,EACrB,WAAmB;QAEnB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChD,mEAAmE;QACnE,sEAAsE;QACtE,2GAA2G;QAC3G,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,eAAe,KAAK,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAC1B,mBAAmB,WAAW,sBAAsB,aAAa,4BAA4B,eAAe,EAAE,CAC/G,CAAA;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YACnD,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACxD,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,SAAS,CAAA;QAChE,IAAI,CAAC;YACH,uEAAuE;YACvE,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,aAAa,GACjB,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAA;gBAEzD,wEAAwE;gBACxE,uEAAuE;gBACvE,0BAA0B;gBAC1B,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;oBACzB,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAA;oBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;wBAC5C,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAA;oBAC/B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,uEAAuE;oBACvE,SAAS;oBACT,QAAQ,IAAI,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAA;gBACxD,CAAC;gBACD,cAAc,IAAI,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,cAAc,EAAE,CAAA;YAChB,gBAAgB;QAClB,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;YACnD,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,eAAe,CAAA;QAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACxE,OAAO,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAMC,EACD,QAAgB,EAChB,IAAI,GAAG,OAAO,CAAC,SAAS,EACxB,aAA0B;QAE1B,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QACtE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;QAC3D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,kBAAkB,CAC1B,sCAAsC,IAAI,+BAA+B,IAAI,CAAC,KAAK,EAAE,CACtF,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,iBAAoC,EACpC,WAAuB,EACvB,gBAAwB;QAExB,qCAAqC;QACrC,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,WAAW,CAAC,CAAA;QAC3B,CAAC;aAAM,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAA;QAC5B,CAAC;aAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACxC,OAAO,YAAY,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;aAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAA;YACrD,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YACzC,OAAO,YAAY,CAAA;QACrB,CAAC;aAAM,IAAI,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAChD,CAAC;aAAM,IAAI,iBAAiB,KAAK,OAAO,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAChD,CAAC;aAAM,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,sBAAsB,CAC9B,GAAG,iBAAiB,oCAAoC,CACzD,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CACf,iBAAoC,EACpC,WAAuB,EACvB,gBAAwB;QAExB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CACnC,iBAAiB,EACjB,WAAW,EACX,gBAAgB,CACjB,CAAA;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAA;YAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YACf,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QACnD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAA;QAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QACxD,MAAM,oBAAoB,GAAG,WAAW,CAAC,YAAY,CAAA;QAErD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,WAAW,CAAC,cAAc,EAC1B,oBAAoB,CACrB,CAAA;QACD,MAAM,gBAAgB,GACpB,WAAW,CAAC,iBAAiB,KAAK,KAAK;YACrC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CACpB,WAAW,CAAC,iBAAiB,EAC7B,CAAC,EACD,WAAW,CAAC,gBAAgB,CAC7B;YACH,CAAC,CAAC,CAAC,CAAA;QAEP,MAAM,KAAK,GAAkB;YAC3B,GAAG,WAAW;YACd,YAAY,EAAE,oBAAoB;YAClC,eAAe,EAAE,oBAAoB;YACrC,OAAO,EAAE,gBAAgB;SAC1B,CAAA;QACD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,kBAAkB;YAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAClC,cAAc,CAAC,cAAc,EAC7B,oBAAoB,GAAG,WAAW,CAAC,cAAc,CAClD,CAAA;YACD,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;YAEvB,6BAA6B;YAC7B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,UAAU,CACnB,QAAQ,EACR,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,cAAc,EAC9C,GAAG,CAAC,KAAK,EACT,YAAY,CACb,CAAA;YACH,CAAC;YAED,wDAAwD;YACxD,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;YACrC,KAAK,CAAC,KAAK;gBACT,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,CAAA;QAClE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,YAAY,GAAG,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAA;YAChE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAA;QACpC,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED,8CAA8C,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IACzE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
@@ -275,10 +275,16 @@ export default class CramSlice {
275
275
  },
276
276
  },
277
277
  };
278
+ // Pre-resolve all codecs to avoid repeated lookups
279
+ const codecCache = new Map();
278
280
  const decodeDataSeries = (dataSeriesName) => {
279
- const codec = compressionScheme.getCodecForDataSeries(dataSeriesName);
280
- if (!codec) {
281
- throw new CramMalformedError(`no codec defined for ${dataSeriesName} data series`);
281
+ let codec = codecCache.get(dataSeriesName);
282
+ if (codec === undefined) {
283
+ codec = compressionScheme.getCodecForDataSeries(dataSeriesName);
284
+ if (!codec) {
285
+ throw new CramMalformedError(`no codec defined for ${dataSeriesName} data series`);
286
+ }
287
+ codecCache.set(dataSeriesName, codec);
282
288
  }
283
289
  return codec.decode(this, coreDataBlock, blocksByContentId, cursors);
284
290
  };
@@ -296,8 +302,11 @@ export default class CramSlice {
296
302
  }
297
303
  catch (e) {
298
304
  if (e instanceof CramBufferOverrunError) {
299
- console.warn('read attempted beyond end of buffer, file seems truncated.');
300
- break;
305
+ const recordsDecoded = i;
306
+ const recordsExpected = sliceHeader.parsedContent.numRecords;
307
+ throw new CramMalformedError(`Failed to decode all records in slice. Decoded ${recordsDecoded} of ${recordsExpected} expected records. ` +
308
+ `Buffer overrun suggests either: (1) file is truncated/corrupted, (2) compression scheme is incorrect, ` +
309
+ `or (3) there's a bug in the decoder. Original error: ${e.message}`);
301
310
  }
302
311
  else {
303
312
  throw e;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/slice/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/slice/index.ts"],"names":[],"mappings":"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"}
@@ -169,14 +169,15 @@ export function tinyMemoize(_class, methodName) {
169
169
  const method = _class.prototype[methodName];
170
170
  const memoAttrName = `_memo_${methodName}`;
171
171
  _class.prototype[methodName] = function _tinyMemoized() {
172
- if (!(memoAttrName in this)) {
173
- const res = method.call(this);
172
+ let res = this[memoAttrName];
173
+ if (res === undefined) {
174
+ res = method.call(this);
174
175
  this[memoAttrName] = res;
175
176
  Promise.resolve(res).catch(() => {
176
177
  delete this[memoAttrName];
177
178
  });
178
179
  }
179
- return this[memoAttrName];
180
+ return res;
180
181
  };
181
182
  }
182
183
  export function sequenceMD5(seq) {
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/cramFile/util.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,CAAA;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,CAAA;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AAE7D,MAAM,UAAU,QAAQ,CAAC,CAAS;IAChC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,aAAqB;IACjE,IAAI,MAAM,GAAG,aAAa,CAAA;IAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAE,CAAA;IAClC,IAAI,MAAc,CAAA;IAElB,+BAA+B;IAC/B,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QACtB,MAAM,GAAG,UAAU,CAAA;QACnB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,4BAA4B;SACvB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACzD,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,8BAA8B;SACzB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,MAAM;YACJ,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACrB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,6BAA6B;SACxB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,MAAM;YACJ,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACrB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,6BAA6B;SACxB,CAAC;QACJ,MAAM;YACJ,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,CAAA;QAC9B,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAU,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,aAAqB;IACjE,IAAI,MAAM,GAAG,aAAa,CAAA;IAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAE,CAAA;IAClC,IAAI,KAAa,CAAA;IAEjB,2BAA2B;IAC3B,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QACtB,KAAK,GAAG,UAAU,CAAA;QAClB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,wBAAwB;SACnB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,MAAM,CAAA;QAC1D,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,0BAA0B;SACrB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK;YACH,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACrB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,yBAAyB;SACpB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK;YACH,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACrB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,yBAAyB;SACpB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK;YACH,CAAC,MAAM,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,GAAG,cAAc;gBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,wBAAwB;SACnB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK;YACH,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,GAAG,cAAc;gBACxE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,0BAA0B;SACrB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK;YACH,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;gBACpB,cAAc;gBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,0BAA0B;SACrB,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QAC3B,KAAK;YACH,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;gBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;gBACpB,cAAc;gBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IACD,kBAAkB;SACb,CAAC;QACJ,KAAK;YACH,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,cAAc;gBACpC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;oBACpB,cAAc;gBAChB,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC1B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,EAAE,CAAC;oBAC3B,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAU,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAkB,EAClB,MAA4E,EAC5E,mBAAmB,GAAG,CAAC,EACvB,iBAAiB,GAAG,CAAC;IAErB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC7D,OAAO;QACL,GAAG,KAAK;QACR,YAAY,EAAE,MAAM,GAAG,iBAAiB;QACxC,KAAK,EAAE,MAAM,GAAG,mBAAmB;KACpC,CAAA;AACH,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,MAAW,EAAE,UAAe;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAC3C,MAAM,YAAY,GAAG,SAAS,UAAU,EAAE,CAAA;IAC1C,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,aAAa;QACnD,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAA;YACxB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3B,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/cramFile/util.ts"],"names":[],"mappings":"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"}
@@ -50,10 +50,21 @@ export default class IndexedCramFile {
50
50
  const seqId = seq;
51
51
  const slices = await this.index.getEntriesForRange(seqId, start, end);
52
52
  // fetch all the slices and parse the feature data
53
- const sliceResults = await Promise.all(slices.map(slice => this.getRecordsInSlice(slice, feature => feature.sequenceId === seq &&
54
- feature.alignmentStart <= end &&
55
- feature.lengthOnRef !== undefined &&
56
- feature.alignmentStart + feature.lengthOnRef - 1 >= start)));
53
+ const sliceResults = await Promise.all(slices.map(slice => this.getRecordsInSlice(slice, feature => {
54
+ // Check if feature belongs to this sequence
55
+ if (feature.sequenceId !== seq) {
56
+ return false;
57
+ }
58
+ // For unmapped reads (lengthOnRef is undefined), they are placed at their
59
+ // mate's position. Include them if that position is within the range.
60
+ if (feature.lengthOnRef === undefined) {
61
+ return (feature.alignmentStart >= start && feature.alignmentStart <= end);
62
+ }
63
+ // For mapped reads, check if they overlap the requested range
64
+ // Use > instead of >= for start boundary to match samtools behavior
65
+ return (feature.alignmentStart <= end &&
66
+ feature.alignmentStart + feature.lengthOnRef - 1 > start);
67
+ })));
57
68
  let ret = Array.prototype.concat(...sliceResults);
58
69
  if (opts.viewAsPairs) {
59
70
  const readNames = {};
@@ -1 +1 @@
1
- {"version":3,"file":"indexedCramFile.js","sourceRoot":"","sources":["../src/indexedCramFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexedCramFile.js","sourceRoot":"","sources":["../src/indexedCramFile.ts"],"names":[],"mappings":"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"}
package/esm/rans/d04.js CHANGED
@@ -2,6 +2,9 @@
2
2
  import { CramMalformedError } from "../errors.js";
3
3
  import { TF_SHIFT } from "./constants.js";
4
4
  import Decoding from "./decoding.js";
5
+ // Inline constants for performance
6
+ const RANS_BYTE_L = 8388608; // 1 << 23
7
+ const MASK = 4095; // (1 << 12) - 1
5
8
  export default function uncompress(
6
9
  /* ByteBuffer */ input,
7
10
  /* Decoding.AriDecoder */ D,
@@ -13,23 +16,46 @@ export default function uncompress(
13
16
  let rans3 = input.getInt();
14
17
  const /* int */ outputSize = out.remaining();
15
18
  const /* int */ outputEnd = outputSize & ~3;
19
+ const D_R = D.R;
16
20
  for (let i = 0; i < outputEnd; i += 4) {
17
- const /* byte */ c0 = D.R[Decoding.get(rans0, TF_SHIFT)];
18
- const /* byte */ c1 = D.R[Decoding.get(rans1, TF_SHIFT)];
19
- const /* byte */ c2 = D.R[Decoding.get(rans2, TF_SHIFT)];
20
- const /* byte */ c3 = D.R[Decoding.get(rans3, TF_SHIFT)];
21
- out.putAt(i, c0);
22
- out.putAt(i + 1, c1);
23
- out.putAt(i + 2, c2);
24
- out.putAt(i + 3, c3);
25
- rans0 = Decoding.advanceSymbolStep(rans0, syms[0xff & c0], TF_SHIFT);
26
- rans1 = Decoding.advanceSymbolStep(rans1, syms[0xff & c1], TF_SHIFT);
27
- rans2 = Decoding.advanceSymbolStep(rans2, syms[0xff & c2], TF_SHIFT);
28
- rans3 = Decoding.advanceSymbolStep(rans3, syms[0xff & c3], TF_SHIFT);
29
- rans0 = Decoding.renormalize(rans0, input);
30
- rans1 = Decoding.renormalize(rans1, input);
31
- rans2 = Decoding.renormalize(rans2, input);
32
- rans3 = Decoding.renormalize(rans3, input);
21
+ const /* byte */ c0 = D_R[rans0 & MASK];
22
+ const /* byte */ c1 = D_R[rans1 & MASK];
23
+ const /* byte */ c2 = D_R[rans2 & MASK];
24
+ const /* byte */ c3 = D_R[rans3 & MASK];
25
+ // Inline putAt to avoid function call overhead
26
+ out._buffer[i] = c0;
27
+ out._buffer[i + 1] = c1;
28
+ out._buffer[i + 2] = c2;
29
+ out._buffer[i + 3] = c3;
30
+ const sym0 = syms[0xff & c0];
31
+ const sym1 = syms[0xff & c1];
32
+ const sym2 = syms[0xff & c2];
33
+ const sym3 = syms[0xff & c3];
34
+ rans0 = sym0.freq * (rans0 >> TF_SHIFT) + (rans0 & MASK) - sym0.start;
35
+ rans1 = sym1.freq * (rans1 >> TF_SHIFT) + (rans1 & MASK) - sym1.start;
36
+ rans2 = sym2.freq * (rans2 >> TF_SHIFT) + (rans2 & MASK) - sym2.start;
37
+ rans3 = sym3.freq * (rans3 >> TF_SHIFT) + (rans3 & MASK) - sym3.start;
38
+ // Inline renormalize to avoid function call overhead
39
+ if (rans0 < RANS_BYTE_L) {
40
+ do {
41
+ rans0 = (rans0 << 8) | (0xff & input.get());
42
+ } while (rans0 < RANS_BYTE_L);
43
+ }
44
+ if (rans1 < RANS_BYTE_L) {
45
+ do {
46
+ rans1 = (rans1 << 8) | (0xff & input.get());
47
+ } while (rans1 < RANS_BYTE_L);
48
+ }
49
+ if (rans2 < RANS_BYTE_L) {
50
+ do {
51
+ rans2 = (rans2 << 8) | (0xff & input.get());
52
+ } while (rans2 < RANS_BYTE_L);
53
+ }
54
+ if (rans3 < RANS_BYTE_L) {
55
+ do {
56
+ rans3 = (rans3 << 8) | (0xff & input.get());
57
+ } while (rans3 < RANS_BYTE_L);
58
+ }
33
59
  }
34
60
  out.setPosition(outputEnd);
35
61
  let /* byte */ c;
@@ -1 +1 @@
1
- {"version":3,"file":"d04.js","sourceRoot":"","sources":["../../src/rans/d04.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"d04.js","sourceRoot":"","sources":["../../src/rans/d04.ts"],"names":[],"mappings":"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"}