@gmod/cram 8.0.2 → 8.0.4

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 (61) hide show
  1. package/dist/cram-bundle.js +1 -1
  2. package/dist/cramFile/codecs/_base.d.ts +1 -0
  3. package/dist/cramFile/codecs/_base.js +3 -0
  4. package/dist/cramFile/codecs/_base.js.map +1 -1
  5. package/dist/cramFile/codecs/byteArrayLength.d.ts +1 -1
  6. package/dist/cramFile/codecs/byteArrayLength.js +14 -7
  7. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  8. package/dist/cramFile/codecs/external.d.ts +1 -1
  9. package/dist/cramFile/codecs/external.js +32 -4
  10. package/dist/cramFile/codecs/external.js.map +1 -1
  11. package/dist/cramFile/codecs/getBits.d.ts +1 -0
  12. package/dist/cramFile/codecs/getBits.js +4 -0
  13. package/dist/cramFile/codecs/getBits.js.map +1 -1
  14. package/dist/cramFile/record.d.ts +39 -9
  15. package/dist/cramFile/record.js +35 -35
  16. package/dist/cramFile/record.js.map +1 -1
  17. package/dist/cramFile/slice/decodeRecord.d.ts +4 -3
  18. package/dist/cramFile/slice/decodeRecord.js +62 -77
  19. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  20. package/dist/cramFile/slice/index.js +17 -27
  21. package/dist/cramFile/slice/index.js.map +1 -1
  22. package/dist/cramFile/util.d.ts +2 -0
  23. package/dist/cramFile/util.js +13 -0
  24. package/dist/cramFile/util.js.map +1 -1
  25. package/dist/indexedCramFile.js +0 -3
  26. package/dist/indexedCramFile.js.map +1 -1
  27. package/esm/cramFile/codecs/_base.d.ts +1 -0
  28. package/esm/cramFile/codecs/_base.js +3 -0
  29. package/esm/cramFile/codecs/_base.js.map +1 -1
  30. package/esm/cramFile/codecs/byteArrayLength.d.ts +1 -1
  31. package/esm/cramFile/codecs/byteArrayLength.js +14 -7
  32. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  33. package/esm/cramFile/codecs/external.d.ts +1 -1
  34. package/esm/cramFile/codecs/external.js +32 -4
  35. package/esm/cramFile/codecs/external.js.map +1 -1
  36. package/esm/cramFile/codecs/getBits.d.ts +1 -0
  37. package/esm/cramFile/codecs/getBits.js +4 -0
  38. package/esm/cramFile/codecs/getBits.js.map +1 -1
  39. package/esm/cramFile/record.d.ts +39 -9
  40. package/esm/cramFile/record.js +35 -35
  41. package/esm/cramFile/record.js.map +1 -1
  42. package/esm/cramFile/slice/decodeRecord.d.ts +4 -3
  43. package/esm/cramFile/slice/decodeRecord.js +62 -77
  44. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  45. package/esm/cramFile/slice/index.js +17 -27
  46. package/esm/cramFile/slice/index.js.map +1 -1
  47. package/esm/cramFile/util.d.ts +2 -0
  48. package/esm/cramFile/util.js +11 -0
  49. package/esm/cramFile/util.js.map +1 -1
  50. package/esm/indexedCramFile.js +0 -3
  51. package/esm/indexedCramFile.js.map +1 -1
  52. package/package.json +1 -1
  53. package/src/cramFile/codecs/_base.ts +8 -0
  54. package/src/cramFile/codecs/byteArrayLength.ts +21 -8
  55. package/src/cramFile/codecs/external.ts +41 -9
  56. package/src/cramFile/codecs/getBits.ts +3 -1
  57. package/src/cramFile/record.ts +76 -49
  58. package/src/cramFile/slice/decodeRecord.ts +77 -96
  59. package/src/cramFile/slice/index.ts +31 -47
  60. package/src/cramFile/util.ts +14 -0
  61. package/src/indexedCramFile.ts +0 -4
@@ -24,4 +24,5 @@ export default abstract class CramCodec<TResult extends DataType = DataType, TPa
24
24
  dataType: DataType;
25
25
  constructor(parameters: TParameters, dataType: TResult);
26
26
  abstract decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): DataTypeMapping[TResult] | undefined;
27
+ getBytesSubarray(_blocksByContentId: Record<number, CramFileBlock>, _cursors: Cursors, _length: number): Uint8Array | undefined;
27
28
  }
@@ -6,6 +6,9 @@ class CramCodec {
6
6
  this.parameters = parameters;
7
7
  this.dataType = dataType;
8
8
  }
9
+ getBytesSubarray(_blocksByContentId, _cursors, _length) {
10
+ return undefined;
11
+ }
9
12
  }
10
13
  exports.default = CramCodec;
11
14
  //# sourceMappingURL=_base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_base.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/_base.ts"],"names":[],"mappings":";;AAyBA,mBAAmB;AACnB,MAA8B,SAAS;IAOrC,YAAY,UAAuB,EAAE,QAAiB;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CAQF;AAlBD,4BAkBC"}
1
+ {"version":3,"file":"_base.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/_base.ts"],"names":[],"mappings":";;AAyBA,mBAAmB;AACnB,MAA8B,SAAS;IAOrC,YAAY,UAAuB,EAAE,QAAiB;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IASD,gBAAgB,CACd,kBAAiD,EACjD,QAAiB,EACjB,OAAe;QAEf,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AA1BD,4BA0BC"}
@@ -7,7 +7,7 @@ type CramCodecFactory = <TData extends DataType = DataType>(encodingData: CramEn
7
7
  export default class ByteArrayStopCodec extends CramCodec<'byteArray', ByteArrayLengthEncoding['parameters']> {
8
8
  private instantiateCodec;
9
9
  constructor(parameters: ByteArrayLengthEncoding['parameters'], dataType: 'byteArray', instantiateCodec: CramCodecFactory);
10
- decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): Uint8Array<ArrayBuffer>;
10
+ decode(slice: CramSlice, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): Uint8Array<ArrayBufferLike>;
11
11
  _getLengthCodec(): CramCodec<"int", unknown>;
12
12
  _getDataCodec(): CramCodec<"byte", unknown>;
13
13
  }
@@ -13,17 +13,24 @@ class ByteArrayStopCodec extends _base_ts_1.default {
13
13
  decode(slice, coreDataBlock, blocksByContentId, cursors) {
14
14
  const lengthCodec = this._getLengthCodec();
15
15
  const arrayLength = lengthCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) || 0;
16
- const data = new Uint8Array(arrayLength);
17
16
  if (arrayLength > 0) {
18
17
  const dataCodec = this._getDataCodec();
19
- // Call decode directly on codec to avoid repeated lookups
20
- for (let i = 0; i < arrayLength; i += 1) {
21
- data[i] =
22
- dataCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) ||
23
- 0;
18
+ const subarray = dataCodec.getBytesSubarray(blocksByContentId, cursors, arrayLength);
19
+ if (subarray) {
20
+ return subarray;
24
21
  }
22
+ else {
23
+ const data = new Uint8Array(arrayLength);
24
+ for (let i = 0; i < arrayLength; i += 1) {
25
+ data[i] =
26
+ dataCodec.decode(slice, coreDataBlock, blocksByContentId, cursors) || 0;
27
+ }
28
+ return data;
29
+ }
30
+ }
31
+ else {
32
+ return new Uint8Array(0);
25
33
  }
26
- return data;
27
34
  }
28
35
  // memoize
29
36
  _getLengthCodec() {
@@ -1 +1 @@
1
- {"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":";;;;;AAAA,0DAA+C;AAK/C,wCAAwC;AAOxC,MAAqB,kBAAmB,SAAQ,kBAG/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;AAlDD,qCAkDC;AAED,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC1D,IAAA,qBAAW,EAAC,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,0DAA+C;AAK/C,wCAAwC;AAOxC,MAAqB,kBAAmB,SAAQ,kBAG/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,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CACzC,iBAAiB,EACjB,OAAO,EACP,WAAW,CACZ,CAAA;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,CAAC,CAAC;wBACL,SAAS,CAAC,MAAM,CACd,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,IAAI,CAAC,CAAA;gBACV,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,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;AA/DD,qCA+DC;AAED,+BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC1D,IAAA,qBAAW,EAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;AACzC,CAAC,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import CramCodec, { Cursors } from './_base.ts';
2
+ import { ExternalCramEncoding } from '../encoding.ts';
2
3
  import { CramFileBlock } from '../file.ts';
3
4
  import CramSlice from '../slice/index.ts';
4
- import { ExternalCramEncoding } from '../encoding.ts';
5
5
  export default class ExternalCodec extends CramCodec<'int' | 'byte', ExternalCramEncoding['parameters']> {
6
6
  constructor(parameters: ExternalCramEncoding['parameters'], dataType: 'int' | 'byte');
7
7
  decode(_slice: CramSlice, _coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number | undefined;
@@ -5,8 +5,38 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const _base_ts_1 = __importDefault(require("./_base.js"));
7
7
  const errors_ts_1 = require("../../errors.js");
8
- const util_ts_1 = require("../util.js");
9
8
  const getBits_ts_1 = require("./getBits.js");
9
+ function parseItf8Inline(buffer, cursor) {
10
+ const offset = cursor.bytePosition;
11
+ const countFlags = buffer[offset];
12
+ if (countFlags < 0x80) {
13
+ cursor.bytePosition = offset + 1;
14
+ return countFlags;
15
+ }
16
+ if (countFlags < 0xc0) {
17
+ cursor.bytePosition = offset + 2;
18
+ return ((countFlags & 0x3f) << 8) | buffer[offset + 1];
19
+ }
20
+ if (countFlags < 0xe0) {
21
+ cursor.bytePosition = offset + 3;
22
+ return (((countFlags & 0x1f) << 16) |
23
+ (buffer[offset + 1] << 8) |
24
+ buffer[offset + 2]);
25
+ }
26
+ if (countFlags < 0xf0) {
27
+ cursor.bytePosition = offset + 4;
28
+ return (((countFlags & 0x0f) << 24) |
29
+ (buffer[offset + 1] << 16) |
30
+ (buffer[offset + 2] << 8) |
31
+ buffer[offset + 3]);
32
+ }
33
+ cursor.bytePosition = offset + 5;
34
+ return (((countFlags & 0x0f) << 28) |
35
+ (buffer[offset + 1] << 20) |
36
+ (buffer[offset + 2] << 12) |
37
+ (buffer[offset + 3] << 4) |
38
+ (buffer[offset + 4] & 0x0f));
39
+ }
10
40
  class ExternalCodec extends _base_ts_1.default {
11
41
  constructor(parameters, dataType) {
12
42
  super(parameters, dataType);
@@ -22,9 +52,7 @@ class ExternalCodec extends _base_ts_1.default {
22
52
  }
23
53
  const cursor = cursors.externalBlocks.getCursor(blockContentId);
24
54
  if (this.dataType === 'int') {
25
- const [result, bytesRead] = (0, util_ts_1.parseItf8)(contentBlock.content, cursor.bytePosition);
26
- cursor.bytePosition += bytesRead;
27
- return result;
55
+ return parseItf8Inline(contentBlock.content, cursor);
28
56
  }
29
57
  else {
30
58
  if (cursor.bytePosition >= contentBlock.content.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":";;;;;AAAA,0DAA+C;AAC/C,+CAAwD;AAGxD,wCAAsC;AACtC,6CAAqD;AAGrD,MAAqB,aAAc,SAAQ,kBAG1C;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,kCAAsB,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,IAAA,mBAAS,EACnC,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,mCAAsB,CAC9B,mEAAmE,CACpE,CAAA;YACH,CAAC;YACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAE,CAAA;QACrD,CAAC;IACH,CAAC;IAED,gBAAgB,CACd,iBAAgD,EAChD,OAAgB,EAChB,MAAc;QAEd,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;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAA;QACjC,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAA;QAE1B,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,mCAAsB,CAC9B,mEAAmE,CACpE,CAAA;QACH,CAAC;QAED,MAAM,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;CACF;AAvED,gCAuEC"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare class CramBufferOverrunError extends Error {
2
+ readonly code: "CRAM_BUFFER_OVERRUN";
2
3
  }
3
4
  export declare function getBits(data: Uint8Array, cursor: {
4
5
  bytePosition: number;
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CramBufferOverrunError = void 0;
4
4
  exports.getBits = getBits;
5
5
  class CramBufferOverrunError extends Error {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.code = 'CRAM_BUFFER_OVERRUN';
9
+ }
6
10
  }
7
11
  exports.CramBufferOverrunError = CramBufferOverrunError;
8
12
  function getBits(data, cursor, numBits) {
@@ -1 +1 @@
1
- {"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":";;;AAEA,0BA4CC;AA9CD,MAAa,sBAAuB,SAAQ,KAAK;CAAG;AAApD,wDAAoD;AAEpD,SAAgB,OAAO,CACrB,IAAgB,EAChB,MAAqD,EACrD,OAAe;IAEf,IACE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5D,IAAI,CAAC,MAAM,EACX,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,6DAA6D,CAC9D,CAAA;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,CAAA;QACtC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAClE,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YACxB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,gCAAgC;IAChC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,GAAG,KAAK,CAAC,CAAA;QACT,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7D,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":";;;AAIA,0BA4CC;AAhDD,MAAa,sBAAuB,SAAQ,KAAK;IAAjD;;QACW,SAAI,GAAG,qBAA8B,CAAA;IAChD,CAAC;CAAA;AAFD,wDAEC;AAED,SAAgB,OAAO,CACrB,IAAgB,EAChB,MAAqD,EACrD,OAAe;IAEf,IACE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5D,IAAI,CAAC,MAAM,EACX,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,6DAA6D,CAC9D,CAAA;IACH,CAAC;IAED,sDAAsD;IACtD,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,CAAA;QACtC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAClE,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YACxB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,gCAAgC;IAChC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,GAAG,KAAK,CAAC,CAAA;QACT,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7D,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -5,14 +5,43 @@ export interface RefRegion {
5
5
  end: number;
6
6
  seq: string;
7
7
  }
8
- export interface ReadFeature {
9
- code: string;
8
+ interface ReadFeatureBase {
10
9
  pos: number;
11
10
  refPos: number;
12
- data: any;
11
+ }
12
+ /**
13
+ * Read features describe differences between a read and the reference sequence.
14
+ * Each feature has a code indicating the type of difference, a position in the
15
+ * read (pos), and a position on the reference (refPos).
16
+ */
17
+ export type ReadFeature =
18
+ /** I=insertion, S=soft clip, b=bases, i=single-base insertion — all carry a sequence string */
19
+ (ReadFeatureBase & {
20
+ code: 'I' | 'S' | 'b' | 'i';
21
+ data: string;
22
+ })
23
+ /** B=base and quality pair — [substituted base, quality score] */
24
+ | (ReadFeatureBase & {
25
+ code: 'B';
26
+ data: [string, number];
27
+ })
28
+ /** X=base substitution — data is the substitution matrix index, ref/sub filled in by addReferenceSequence */
29
+ | (ReadFeatureBase & {
30
+ code: 'X';
31
+ data: number;
13
32
  ref?: string;
14
33
  sub?: string;
15
- }
34
+ })
35
+ /** D=deletion, N=reference skip, H=hard clip, P=padding, Q=single quality score */
36
+ | (ReadFeatureBase & {
37
+ code: 'D' | 'N' | 'H' | 'P' | 'Q';
38
+ data: number;
39
+ })
40
+ /** q=quality scores for a stretch of bases */
41
+ | (ReadFeatureBase & {
42
+ code: 'q';
43
+ data: number[];
44
+ });
16
45
  export interface DecodeOptions {
17
46
  /** Whether to parse tags. If false, raw tag data is stored for lazy parsing. Default true. */
18
47
  decodeTags?: boolean;
@@ -41,7 +70,7 @@ export declare const MateFlagsDecoder: FlagsDecoder<"OnNegativeStrand" | "Unmapp
41
70
  * Class of each CRAM record returned by this API.
42
71
  */
43
72
  export default class CramRecord {
44
- tags: Record<string, string>;
73
+ tags: Record<string, string | number | number[] | undefined>;
45
74
  flags: number;
46
75
  cramFlags: number;
47
76
  readBases?: string | null;
@@ -52,7 +81,9 @@ export default class CramRecord {
52
81
  readLength: number;
53
82
  templateLength?: number;
54
83
  templateSize?: number;
55
- readName?: string;
84
+ private _readName?;
85
+ private _readNameRaw?;
86
+ _syntheticReadName?: string;
56
87
  mateRecordNumber?: number;
57
88
  mate?: MateRecord;
58
89
  uniqueId: number;
@@ -60,9 +91,8 @@ export default class CramRecord {
60
91
  readGroupId: number;
61
92
  mappingQuality: number | undefined;
62
93
  qualityScores: Uint8Array | null | undefined;
63
- constructor({ flags, cramFlags, readLength, mappingQuality, lengthOnRef, qualityScores, mateRecordNumber, readBases, readFeatures, mateToUse, readGroupId, readName, sequenceId, uniqueId, templateSize, alignmentStart, tags, }: ReturnType<typeof decodeRecord> & {
64
- uniqueId: number;
65
- });
94
+ get readName(): string | undefined;
95
+ constructor({ flags, cramFlags, readLength, mappingQuality, lengthOnRef, qualityScores, mateRecordNumber, readBases, readFeatures, mateToUse, readGroupId, readNameRaw, sequenceId, uniqueId, templateSize, alignmentStart, tags, }: ReturnType<typeof decodeRecord>);
66
96
  /**
67
97
  * Get a single quality score at the given index.
68
98
  * @param index 0-based index into the quality scores
@@ -5,6 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MateFlagsDecoder = exports.CramFlagsDecoder = exports.BamFlagsDecoder = exports.MateFlags = exports.CramFlags = exports.BamFlags = exports.defaultDecodeOptions = void 0;
7
7
  const constants_ts_1 = __importDefault(require("./constants.js"));
8
+ const util_ts_1 = require("./util.js");
9
+ // precomputed pair orientation strings indexed by ((flags >> 4) & 0xF) | (isize > 0 ? 16 : 0)
10
+ // bits 0-3 encode flag bits 0x10(reverse),0x20(mate reverse),0x40(read1),0x80(read2)
11
+ // bit 4 encodes whether isize > 0
12
+ // prettier-ignore
13
+ const PAIR_ORIENTATION_TABLE = [
14
+ 'F F ', 'F R ', 'R F ', 'R R ', 'F2F1', 'F2R1', 'R2F1', 'R2R1',
15
+ 'F1F2', 'F1R2', 'R1F2', 'R1R2', 'F2F1', 'F2R1', 'R2F1', 'R2R1',
16
+ 'F F ', 'R F ', 'F R ', 'R R ', 'F1F2', 'R1F2', 'F1R2', 'R1R2',
17
+ 'F2F1', 'R2F1', 'F2R1', 'R2R1', 'F1F2', 'R1F2', 'F1R2', 'R1R2',
18
+ ];
8
19
  exports.defaultDecodeOptions = {
9
20
  decodeTags: true,
10
21
  };
@@ -36,48 +47,37 @@ function decodeReadSequence(cramRecord, refRegion) {
36
47
  // process the read feature
37
48
  currentReadFeature += 1;
38
49
  if (feature.code === 'b') {
39
- // specify a base pair for some reason
40
50
  const added = feature.data;
41
51
  bases += added;
42
52
  regionPos += added.length;
43
53
  }
44
54
  else if (feature.code === 'B') {
45
- // base pair and associated quality
46
- // TODO: do we need to set the quality in the qual scores?
47
55
  bases += feature.data[0];
48
56
  regionPos += 1;
49
57
  }
50
58
  else if (feature.code === 'X') {
51
- // base substitution
52
59
  bases += feature.sub;
53
60
  regionPos += 1;
54
61
  }
55
62
  else if (feature.code === 'I') {
56
- // insertion
57
63
  bases += feature.data;
58
64
  }
59
65
  else if (feature.code === 'D') {
60
- // deletion
61
66
  regionPos += feature.data;
62
67
  }
63
68
  else if (feature.code === 'i') {
64
- // insert single base
65
69
  bases += feature.data;
66
70
  }
67
71
  else if (feature.code === 'N') {
68
- // reference skip. delete some bases
69
- // do nothing
70
- // seqBases.splice(feature.pos - 1, feature.data)
71
72
  regionPos += feature.data;
72
73
  }
73
74
  else if (feature.code === 'S') {
74
- // soft clipped bases that should be present in the read seq
75
- // seqBases.splice(feature.pos - 1, 0, ...feature.data.split(''))
76
75
  bases += feature.data;
77
76
  }
78
77
  else if (feature.code === 'P') {
79
78
  // padding, do nothing
80
79
  }
80
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
81
81
  else if (feature.code === 'H') {
82
82
  // hard clip, do nothing
83
83
  }
@@ -173,24 +173,37 @@ exports.MateFlagsDecoder = makeFlagsHelper(exports.MateFlags);
173
173
  * Class of each CRAM record returned by this API.
174
174
  */
175
175
  class CramRecord {
176
- constructor({ flags, cramFlags, readLength, mappingQuality, lengthOnRef, qualityScores, mateRecordNumber, readBases, readFeatures, mateToUse, readGroupId, readName, sequenceId, uniqueId, templateSize, alignmentStart, tags, }) {
176
+ get readName() {
177
+ if (this._readName === undefined) {
178
+ if (this._readNameRaw) {
179
+ this._readName = (0, util_ts_1.readNullTerminatedStringFromBuffer)(this._readNameRaw);
180
+ this._readNameRaw = undefined;
181
+ }
182
+ else {
183
+ return this._syntheticReadName;
184
+ }
185
+ }
186
+ return this._readName;
187
+ }
188
+ constructor({ flags, cramFlags, readLength, mappingQuality, lengthOnRef, qualityScores, mateRecordNumber, readBases, readFeatures, mateToUse, readGroupId, readNameRaw, sequenceId, uniqueId, templateSize, alignmentStart, tags, }) {
177
189
  this.flags = flags;
178
190
  this.cramFlags = cramFlags;
179
191
  this.readLength = readLength;
180
192
  this.mappingQuality = mappingQuality;
181
193
  this.lengthOnRef = lengthOnRef;
182
194
  this.qualityScores = qualityScores;
183
- if (readBases) {
184
- this.readBases = readBases;
185
- }
186
195
  this.readGroupId = readGroupId;
187
- this.readName = readName;
188
196
  this.sequenceId = sequenceId;
189
197
  this.uniqueId = uniqueId;
190
- this.templateSize = templateSize;
191
198
  this.alignmentStart = alignmentStart;
192
199
  this.tags = tags;
193
- // backwards compatibility
200
+ if (readNameRaw) {
201
+ this._readNameRaw = readNameRaw;
202
+ }
203
+ if (readBases) {
204
+ this.readBases = readBases;
205
+ }
206
+ this.templateSize = templateSize;
194
207
  if (readFeatures) {
195
208
  this.readFeatures = readFeatures;
196
209
  }
@@ -296,29 +309,15 @@ class CramRecord {
296
309
  return this.readBases;
297
310
  }
298
311
  // adapted from igv.js
299
- // inlines flag checks and uses template literal instead of array+join
312
+ // uses precomputed lookup table indexed by flag bits + isize sign
300
313
  getPairOrientation() {
301
314
  const f = this.flags;
302
315
  // combined check: paired (0x1) set, unmapped (0x4) clear, mate unmapped (0x8) clear
303
316
  if ((f & 0xd) !== 0x1 || this.sequenceId !== this.mate?.sequenceId) {
304
317
  return undefined;
305
318
  }
306
- const s1 = f & 0x10 ? 'R' : 'F';
307
- const s2 = f & 0x20 ? 'R' : 'F';
308
- let o1 = ' ';
309
- let o2 = ' ';
310
- if (f & 0x40) {
311
- o1 = '1';
312
- o2 = '2';
313
- }
314
- else if (f & 0x80) {
315
- o1 = '2';
316
- o2 = '1';
317
- }
318
319
  const isize = this.templateLength || this.templateSize || 0;
319
- return isize > 0
320
- ? `${s1}${o1}${s2}${o2}`
321
- : `${s2}${o2}${s1}${o1}`;
320
+ return PAIR_ORIENTATION_TABLE[((f >> 4) & 0xf) | (isize > 0 ? 16 : 0)];
322
321
  }
323
322
  /**
324
323
  * Annotates this feature with the given reference sequence basepair
@@ -360,6 +359,7 @@ class CramRecord {
360
359
  }
361
360
  data[k] = this[k];
362
361
  });
362
+ data.readName = this.readName;
363
363
  data.readBases = this.getReadBases();
364
364
  data.qualityScores = this.qualityScores
365
365
  ? Array.from(this.qualityScores)
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/cramFile/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/cramFile/record.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,14 @@ import CramSlice, { SliceHeader } from './index.ts';
6
6
  import { CramFileBlock } from '../file.ts';
7
7
  export type DataSeriesDecoder = <T extends DataSeriesEncodingKey>(dataSeriesName: T) => DataTypeMapping[DataSeriesTypes[T]] | undefined;
8
8
  export type BulkByteRawDecoder = (dataSeriesName: 'QS' | 'BA', length: number) => Uint8Array | undefined;
9
- export default function decodeRecord(slice: CramSlice, decodeDataSeries: DataSeriesDecoder, compressionScheme: CramContainerCompressionScheme, sliceHeader: SliceHeader, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors, majorVersion: number, recordNumber: number, decodeOptions?: Required<DecodeOptions>, decodeBulkBytesRaw?: BulkByteRawDecoder): {
9
+ export default function decodeRecord(slice: CramSlice, decodeDataSeries: DataSeriesDecoder, compressionScheme: CramContainerCompressionScheme, sliceHeader: SliceHeader, coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors, majorVersion: number, recordNumber: number, uniqueId: number, decodeOptions?: Required<DecodeOptions>, decodeBulkBytesRaw?: BulkByteRawDecoder): {
10
10
  readLength: number;
11
11
  sequenceId: number | undefined;
12
12
  cramFlags: number;
13
13
  flags: number;
14
14
  alignmentStart: number;
15
15
  readGroupId: number;
16
- readName: string | undefined;
16
+ readNameRaw: Uint8Array<ArrayBufferLike> | undefined;
17
17
  mateToUse: {
18
18
  mateFlags: number;
19
19
  mateSequenceId: number;
@@ -27,5 +27,6 @@ export default function decodeRecord(slice: CramSlice, decodeDataSeries: DataSer
27
27
  mappingQuality: number | undefined;
28
28
  qualityScores: Uint8Array<ArrayBufferLike> | null | undefined;
29
29
  readBases: string | null | undefined;
30
- tags: Record<string, any>;
30
+ tags: Record<string, string | number | number[] | undefined>;
31
+ uniqueId: number;
31
32
  };