net-pe-reader 0.1.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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/dist/src/BinaryHeap.d.ts +6 -0
  4. package/dist/src/BinaryHeap.d.ts.map +1 -0
  5. package/dist/src/BinaryHeap.js +10 -0
  6. package/dist/src/BinaryHeap.js.map +1 -0
  7. package/dist/src/CliFile.d.ts +19 -0
  8. package/dist/src/CliFile.d.ts.map +1 -0
  9. package/dist/src/CliFile.js +288 -0
  10. package/dist/src/CliFile.js.map +1 -0
  11. package/dist/src/Columns/BlobReferenceColumns.d.ts +12 -0
  12. package/dist/src/Columns/BlobReferenceColumns.d.ts.map +1 -0
  13. package/dist/src/Columns/BlobReferenceColumns.js +41 -0
  14. package/dist/src/Columns/BlobReferenceColumns.js.map +1 -0
  15. package/dist/src/Columns/CodedIndex.d.ts +15 -0
  16. package/dist/src/Columns/CodedIndex.d.ts.map +1 -0
  17. package/dist/src/Columns/CodedIndex.js +86 -0
  18. package/dist/src/Columns/CodedIndex.js.map +1 -0
  19. package/dist/src/Columns/CodedIndexColumn.d.ts +13 -0
  20. package/dist/src/Columns/CodedIndexColumn.d.ts.map +1 -0
  21. package/dist/src/Columns/CodedIndexColumn.js +59 -0
  22. package/dist/src/Columns/CodedIndexColumn.js.map +1 -0
  23. package/dist/src/Columns/Column.d.ts +4 -0
  24. package/dist/src/Columns/Column.d.ts.map +1 -0
  25. package/dist/src/Columns/Column.js +2 -0
  26. package/dist/src/Columns/Column.js.map +1 -0
  27. package/dist/src/Columns/GuidReferenceColumn.d.ts +9 -0
  28. package/dist/src/Columns/GuidReferenceColumn.d.ts.map +1 -0
  29. package/dist/src/Columns/GuidReferenceColumn.js +19 -0
  30. package/dist/src/Columns/GuidReferenceColumn.js.map +1 -0
  31. package/dist/src/Columns/StringReferenceColumn.d.ts +11 -0
  32. package/dist/src/Columns/StringReferenceColumn.d.ts.map +1 -0
  33. package/dist/src/Columns/StringReferenceColumn.js +22 -0
  34. package/dist/src/Columns/StringReferenceColumn.js.map +1 -0
  35. package/dist/src/Columns/TableIndexColumn.d.ts +11 -0
  36. package/dist/src/Columns/TableIndexColumn.d.ts.map +1 -0
  37. package/dist/src/Columns/TableIndexColumn.js +20 -0
  38. package/dist/src/Columns/TableIndexColumn.js.map +1 -0
  39. package/dist/src/Columns/UintColumn.d.ts +9 -0
  40. package/dist/src/Columns/UintColumn.d.ts.map +1 -0
  41. package/dist/src/Columns/UintColumn.js +27 -0
  42. package/dist/src/Columns/UintColumn.js.map +1 -0
  43. package/dist/src/GuidHeap.d.ts +6 -0
  44. package/dist/src/GuidHeap.d.ts.map +1 -0
  45. package/dist/src/GuidHeap.js +10 -0
  46. package/dist/src/GuidHeap.js.map +1 -0
  47. package/dist/src/HeapBase.d.ts +6 -0
  48. package/dist/src/HeapBase.d.ts.map +1 -0
  49. package/dist/src/HeapBase.js +9 -0
  50. package/dist/src/HeapBase.js.map +1 -0
  51. package/dist/src/Helpers.d.ts +10 -0
  52. package/dist/src/Helpers.d.ts.map +1 -0
  53. package/dist/src/Helpers.js +38 -0
  54. package/dist/src/Helpers.js.map +1 -0
  55. package/dist/src/StringHeap.d.ts +6 -0
  56. package/dist/src/StringHeap.d.ts.map +1 -0
  57. package/dist/src/StringHeap.js +11 -0
  58. package/dist/src/StringHeap.js.map +1 -0
  59. package/dist/src/Structures.d.ts +173 -0
  60. package/dist/src/Structures.d.ts.map +1 -0
  61. package/dist/src/Structures.js +96 -0
  62. package/dist/src/Structures.js.map +1 -0
  63. package/dist/src/TableColumns.d.ts +48 -0
  64. package/dist/src/TableColumns.d.ts.map +1 -0
  65. package/dist/src/TableColumns.js +283 -0
  66. package/dist/src/TableColumns.js.map +1 -0
  67. package/dist/src/Tables.d.ts +245 -0
  68. package/dist/src/Tables.d.ts.map +1 -0
  69. package/dist/src/Tables.js +262 -0
  70. package/dist/src/Tables.js.map +1 -0
  71. package/dist/src/index.d.ts +3 -0
  72. package/dist/src/index.d.ts.map +1 -0
  73. package/dist/src/index.js +3 -0
  74. package/dist/src/index.js.map +1 -0
  75. package/package.json +57 -0
@@ -0,0 +1,59 @@
1
+ export class CodedIndexColumn {
2
+ indexSize;
3
+ tables;
4
+ readCodedIndex;
5
+ setCodedIndex;
6
+ getTag;
7
+ getTableIndex;
8
+ constructor(tableStreamHeader, tables, setCodedIndex) {
9
+ this.tables = tables;
10
+ this.setCodedIndex = setCodedIndex;
11
+ const tagBits = getMinBitsRepresenting(tables.length);
12
+ const largestTableRows = Math.max(...tables.map(t => tableStreamHeader.tableRowCounts[t]));
13
+ const tableIndexBits = getMinBitsRepresenting(largestTableRows);
14
+ const totalBits = tagBits + tableIndexBits;
15
+ this.indexSize = totalBits <= 16 ? 2 : 4;
16
+ this.readCodedIndex = this.indexSize == 2
17
+ ? (view, offset) => view.getUint16(offset, true)
18
+ : (view, offset) => view.getUint32(offset, true);
19
+ this.getTag = codedIndex => codedIndex & getLowerBitsMask(tagBits);
20
+ this.getTableIndex = codedIndex => codedIndex >> tagBits;
21
+ }
22
+ read(view, offset, row) {
23
+ const codedIndex = this.readCodedIndex(view, offset);
24
+ // TODO: use the 3 things below
25
+ const tableTag = this.getTag(codedIndex);
26
+ const table = this.tables[tableTag];
27
+ const tableIndex = this.getTableIndex(codedIndex);
28
+ this.setCodedIndex(row, codedIndex);
29
+ return this.indexSize;
30
+ }
31
+ }
32
+ function getMinBitsRepresenting(value) {
33
+ // 0 => 1 clz32(0) = 32
34
+ // 1 => 1 clz32(1) = 31
35
+ // 2 => 1 clz32(2) = 30
36
+ // 3 => 2 clz32(3) = 30
37
+ // 4 => 2 clz32(4) = 29
38
+ // 5 => 3 clz32(5) = 29
39
+ // ...
40
+ // 8 => 3 clz32(8) = 28
41
+ // 9 => 4 clz32(9) = 28
42
+ // ...
43
+ // 16 => 4 clz32(16) = 27
44
+ if (value <= 1) {
45
+ return 1;
46
+ }
47
+ return 32 - Math.clz32(value - 1);
48
+ }
49
+ function getLowerBitsMask(numBits) {
50
+ // 0 => 0
51
+ // 1 => 0x01
52
+ // 2 => 0x03
53
+ // 3 => 0x07
54
+ // 4 => 0x0F
55
+ // 5 => 0x1F
56
+ // ...
57
+ return (1 << numBits) - 1;
58
+ }
59
+ //# sourceMappingURL=CodedIndexColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodedIndexColumn.js","sourceRoot":"","sources":["../../../src/Columns/CodedIndexColumn.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACjB,SAAS,CAAS;IAClB,MAAM,CAAwB;IAC9B,cAAc,CAA6C;IAC3D,aAAa,CAAqC;IAClD,MAAM,CAAiC;IACvC,aAAa,CAAiC;IAEtD,YACI,iBAAyD,EACzD,MAA6B,EAC7B,aAAiD;QAEjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;YACrC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,UAAU,IAAI,OAAO,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,IAAc,EAAE,MAAc,EAAE,GAAS;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAErD,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAED,SAAS,sBAAsB,CAAC,KAAa;IACzC,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,MAAM;IACN,yBAAyB;IACzB,yBAAyB;IACzB,MAAM;IACN,0BAA0B;IAC1B,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACrC,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,MAAM;IACN,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface Column<TRow> {
2
+ read(view: DataView, offset: number, row: TRow): number;
3
+ }
4
+ //# sourceMappingURL=Column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.d.ts","sourceRoot":"","sources":["../../../src/Columns/Column.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,MAAM,CAAC,IAAI;IACxB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC;CAC3D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Column.js","sourceRoot":"","sources":["../../../src/Columns/Column.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Column } from "./Column.js";
2
+ export declare class GuidReferenceColumn<TRow> implements Column<TRow> {
3
+ private readonly guidHeapSize;
4
+ private readonly readIndex;
5
+ private readonly setIndex;
6
+ constructor(guidHeapSize: number, setIndex: (row: TRow, index: number) => void);
7
+ read(view: DataView, offset: number, row: TRow): number;
8
+ }
9
+ //# sourceMappingURL=GuidReferenceColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuidReferenceColumn.d.ts","sourceRoot":"","sources":["../../../src/Columns/GuidReferenceColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,mBAAmB,CAAC,IAAI,CAAE,YAAW,MAAM,CAAC,IAAI,CAAC;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAG9D,YAAY,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAM7E;IAED,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAKtD;CAEJ"}
@@ -0,0 +1,19 @@
1
+ export class GuidReferenceColumn {
2
+ guidHeapSize;
3
+ readIndex;
4
+ setIndex;
5
+ // TODO: read actual Guid from Guid heap
6
+ constructor(guidHeapSize, setIndex) {
7
+ this.guidHeapSize = guidHeapSize;
8
+ this.setIndex = setIndex;
9
+ this.readIndex = guidHeapSize == 2
10
+ ? (view, offset) => view.getUint16(offset, true)
11
+ : (view, offset) => view.getUint32(offset, true);
12
+ }
13
+ read(view, offset, row) {
14
+ const index = this.readIndex(view, offset);
15
+ this.setIndex(row, index);
16
+ return this.guidHeapSize;
17
+ }
18
+ }
19
+ //# sourceMappingURL=GuidReferenceColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuidReferenceColumn.js","sourceRoot":"","sources":["../../../src/Columns/GuidReferenceColumn.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IACX,YAAY,CAAS;IACrB,SAAS,CAA6C;IACtD,QAAQ,CAAqC;IAE9D,wCAAwC;IACxC,YAAY,YAAoB,EAAE,QAA4C;QAC1E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,YAAY,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,IAAc,EAAE,MAAc,EAAE,GAAS;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE1B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CAEJ"}
@@ -0,0 +1,11 @@
1
+ import { Column } from "./Column.js";
2
+ import { StringHeap } from "../StringHeap.js";
3
+ export declare class StringReferenceColumn<TRow> implements Column<TRow> {
4
+ private readonly stringHeap;
5
+ private readonly readIndex;
6
+ private readonly setIndex;
7
+ private readonly setString;
8
+ constructor(stringHeap: Readonly<StringHeap>, setIndex: (row: TRow, index: number) => void, setString: (row: TRow, value: string) => void);
9
+ read(view: DataView, offset: number, row: TRow): number;
10
+ }
11
+ //# sourceMappingURL=StringReferenceColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringReferenceColumn.d.ts","sourceRoot":"","sources":["../../../src/Columns/StringReferenceColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,qBAAqB,CAAC,IAAI,CAAE,YAAW,MAAM,CAAC,IAAI,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAE/D,YACI,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAC5C,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAQhD;IAED,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAMtD;CAEJ"}
@@ -0,0 +1,22 @@
1
+ export class StringReferenceColumn {
2
+ stringHeap;
3
+ readIndex;
4
+ setIndex;
5
+ setString;
6
+ constructor(stringHeap, setIndex, setString) {
7
+ this.stringHeap = stringHeap;
8
+ this.readIndex = stringHeap.indexSizeBytes == 2
9
+ ? (view, offset) => view.getUint16(offset, true)
10
+ : (view, offset) => view.getUint32(offset, true);
11
+ this.setIndex = setIndex;
12
+ this.setString = setString;
13
+ }
14
+ read(view, offset, row) {
15
+ const index = this.readIndex(view, offset);
16
+ this.setIndex(row, index);
17
+ const value = this.stringHeap.getString(index);
18
+ this.setString(row, value);
19
+ return this.stringHeap.indexSizeBytes;
20
+ }
21
+ }
22
+ //# sourceMappingURL=StringReferenceColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringReferenceColumn.js","sourceRoot":"","sources":["../../../src/Columns/StringReferenceColumn.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IACb,UAAU,CAAuB;IACjC,SAAS,CAA6C;IACtD,QAAQ,CAAqC;IAC7C,SAAS,CAAqC;IAE/D,YACI,UAAgC,EAChC,QAA4C,EAC5C,SAA6C;QAE7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,cAAc,IAAI,CAAC;YAC3C,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAc,EAAE,MAAc,EAAE,GAAS;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;IAC1C,CAAC;CAEJ"}
@@ -0,0 +1,11 @@
1
+ import { CliMetadataTableStreamHeader, MetadataTables } from "src/Structures.js";
2
+ import { Column } from "./Column.js";
3
+ export declare class TableIndexColumn<TRow> implements Column<TRow> {
4
+ private indexSize;
5
+ private table;
6
+ private readIndex;
7
+ private setIndex;
8
+ constructor(tableStreamHeader: Readonly<CliMetadataTableStreamHeader>, table: MetadataTables, setIndex: (row: TRow, index: number) => void);
9
+ read(view: DataView, offset: number, row: TRow): number;
10
+ }
11
+ //# sourceMappingURL=TableIndexColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableIndexColumn.d.ts","sourceRoot":"","sources":["../../../src/Columns/TableIndexColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,gBAAgB,CAAC,IAAI,CAAE,YAAW,MAAM,CAAC,IAAI,CAAC;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,QAAQ,CAAqC;IAErD,YACI,iBAAiB,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EACzD,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAS/C;IAGD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAKtD;CACJ"}
@@ -0,0 +1,20 @@
1
+ export class TableIndexColumn {
2
+ indexSize;
3
+ table;
4
+ readIndex;
5
+ setIndex;
6
+ constructor(tableStreamHeader, table, setIndex) {
7
+ this.indexSize = tableStreamHeader.tableRowCounts[table] < 65536 ? 2 : 4;
8
+ this.table = table;
9
+ this.setIndex = setIndex;
10
+ this.readIndex = this.indexSize == 2
11
+ ? (view, offset) => view.getUint16(offset, true)
12
+ : (view, offset) => view.getUint32(offset, true);
13
+ }
14
+ read(view, offset, row) {
15
+ const index = this.readIndex(view, offset);
16
+ this.setIndex(row, index);
17
+ return this.indexSize;
18
+ }
19
+ }
20
+ //# sourceMappingURL=TableIndexColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableIndexColumn.js","sourceRoot":"","sources":["../../../src/Columns/TableIndexColumn.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACjB,SAAS,CAAS;IAClB,KAAK,CAAiB;IACtB,SAAS,CAA6C;IACtD,QAAQ,CAAqC;IAErD,YACI,iBAAyD,EACzD,KAAqB,EACrB,QAA4C;QAE5C,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC;YAChC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAGD,IAAI,CAAC,IAAc,EAAE,MAAc,EAAE,GAAS;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ import { Column } from "./Column.js";
2
+ export declare class UintColumn<TRow> implements Column<TRow> {
3
+ private size;
4
+ private readValue;
5
+ private setValue;
6
+ constructor(size: number, setValue: (row: TRow, value: number) => void);
7
+ read(view: DataView, offset: number, row: TRow): number;
8
+ }
9
+ //# sourceMappingURL=UintColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UintColumn.d.ts","sourceRoot":"","sources":["../../../src/Columns/UintColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,UAAU,CAAC,IAAI,CAAE,YAAW,MAAM,CAAC,IAAI,CAAC;IACjD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,QAAQ,CAAqC;IAErD,YAAY,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAerE;IAED,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAItD;CACJ"}
@@ -0,0 +1,27 @@
1
+ export class UintColumn {
2
+ size;
3
+ readValue;
4
+ setValue;
5
+ constructor(size, setValue) {
6
+ this.size = size;
7
+ this.setValue = setValue;
8
+ if (size == 1) {
9
+ this.readValue = (view, offset) => view.getUint8(offset);
10
+ }
11
+ else if (size == 2) {
12
+ this.readValue = (view, offset) => view.getUint16(offset, true);
13
+ }
14
+ else if (size == 4) {
15
+ this.readValue = (view, offset) => view.getUint32(offset, true);
16
+ }
17
+ else {
18
+ throw new Error(`Unsupported column size: ${size}`);
19
+ }
20
+ }
21
+ read(view, offset, row) {
22
+ const value = this.readValue(view, offset);
23
+ this.setValue(row, value);
24
+ return this.size;
25
+ }
26
+ }
27
+ //# sourceMappingURL=UintColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UintColumn.js","sourceRoot":"","sources":["../../../src/Columns/UintColumn.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACX,IAAI,CAAS;IACb,SAAS,CAA6C;IACtD,QAAQ,CAAqC;IAErD,YAAY,IAAY,EAAE,QAA4C;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;aACI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;aACI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;aACI,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAc,EAAE,MAAc,EAAE,GAAS;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import { HeapBase } from "./HeapBase.js";
2
+ export declare class GuidHeap extends HeapBase {
3
+ constructor(heapData: DataView, indexSizeBytes: number);
4
+ getGuid(offset: number): string;
5
+ }
6
+ //# sourceMappingURL=GuidHeap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuidHeap.d.ts","sourceRoot":"","sources":["../../src/GuidHeap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,QAAS,SAAQ,QAAQ;IAClC,YAAY,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAErD;IAEM,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErC;CACJ"}
@@ -0,0 +1,10 @@
1
+ import { HeapBase } from "./HeapBase.js";
2
+ export class GuidHeap extends HeapBase {
3
+ constructor(heapData, indexSizeBytes) {
4
+ super(heapData, indexSizeBytes);
5
+ }
6
+ getGuid(offset) {
7
+ throw new Error("Not implemented :(");
8
+ }
9
+ }
10
+ //# sourceMappingURL=GuidHeap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuidHeap.js","sourceRoot":"","sources":["../../src/GuidHeap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,QAAS,SAAQ,QAAQ;IAClC,YAAY,QAAkB,EAAE,cAAsB;QAClD,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACpC,CAAC;IAEM,OAAO,CAAC,MAAc;QACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1C,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ export declare class HeapBase {
2
+ protected heapData: DataView;
3
+ readonly indexSizeBytes: number;
4
+ constructor(heapData: DataView, indexSizeBytes: number);
5
+ }
6
+ //# sourceMappingURL=HeapBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeapBase.d.ts","sourceRoot":"","sources":["../../src/HeapBase.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACjB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAgB,cAAc,EAAE,MAAM,CAAC;IAEvC,YAAY,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAGrD;CACJ"}
@@ -0,0 +1,9 @@
1
+ export class HeapBase {
2
+ heapData;
3
+ indexSizeBytes;
4
+ constructor(heapData, indexSizeBytes) {
5
+ this.heapData = heapData;
6
+ this.indexSizeBytes = indexSizeBytes;
7
+ }
8
+ }
9
+ //# sourceMappingURL=HeapBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeapBase.js","sourceRoot":"","sources":["../../src/HeapBase.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IACP,QAAQ,CAAW;IACb,cAAc,CAAS;IAEvC,YAAY,QAAkB,EAAE,cAAsB;QAClD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;CACJ"}
@@ -0,0 +1,10 @@
1
+ export interface GetNullTerminatedStringResult {
2
+ string: string;
3
+ bytesRead: number;
4
+ }
5
+ export declare function getNullTerminatedUtf8String(view: DataView, offset: number): GetNullTerminatedStringResult;
6
+ export declare function getUtf8StringFromWholeBuffer(buffer: AllowSharedBufferSource): string;
7
+ export declare function getUtf8String(buffer: ArrayBufferLike | DataView, offset: number, length: number): string;
8
+ export declare function roundUpToNearest(value: number, roundFactor: number): number;
9
+ export declare function getBoolArrayFromBitmask(bitmask: bigint): boolean[];
10
+ //# sourceMappingURL=Helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helpers.d.ts","sourceRoot":"","sources":["../../src/Helpers.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,6BAA6B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,6BAA6B,CAczG;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAGpF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAMlE"}
@@ -0,0 +1,38 @@
1
+ export function getNullTerminatedUtf8String(view, offset) {
2
+ let length = 0;
3
+ while (length + offset < view.byteLength && view.getUint8(offset + length) != 0) {
4
+ ++length;
5
+ }
6
+ if (length + offset >= view.byteLength) {
7
+ throw "Reached end of view without encountering NULL-terminator";
8
+ }
9
+ return {
10
+ string: getUtf8String(view, offset, length),
11
+ bytesRead: length,
12
+ };
13
+ }
14
+ export function getUtf8StringFromWholeBuffer(buffer) {
15
+ const decoder = new TextDecoder("utf-8");
16
+ return decoder.decode(buffer);
17
+ }
18
+ export function getUtf8String(buffer, offset, length) {
19
+ let bufferView;
20
+ if (buffer instanceof DataView) {
21
+ bufferView = new DataView(buffer.buffer, buffer.byteOffset + offset, length);
22
+ }
23
+ else {
24
+ bufferView = new DataView(buffer, offset, length);
25
+ }
26
+ return getUtf8StringFromWholeBuffer(bufferView);
27
+ }
28
+ export function roundUpToNearest(value, roundFactor) {
29
+ return Math.ceil(value / roundFactor) * roundFactor;
30
+ }
31
+ export function getBoolArrayFromBitmask(bitmask) {
32
+ const result = [];
33
+ for (let i = 0n; i < 64n; ++i) {
34
+ result.push((bitmask & (1n << i)) !== 0n);
35
+ }
36
+ return result;
37
+ }
38
+ //# sourceMappingURL=Helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/Helpers.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,2BAA2B,CAAC,IAAc,EAAE,MAAc;IACtE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,EAAE,MAAM,CAAC;IACb,CAAC;IAED,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,0DAA0D,CAAC;IACrE,CAAC;IAED,OAAO;QACH,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;QAC3C,SAAS,EAAE,MAAM;KACpB,CAAA;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAA+B;IACxE,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAkC,EAAE,MAAc,EAAE,MAAc;IAC5F,IAAI,UAAU,CAAC;IACf,IAAI,MAAM,YAAY,QAAQ,EAC9B,CAAC;QACG,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;SACI,CAAC;QACF,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,WAAmB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACnD,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { HeapBase } from "./HeapBase.js";
2
+ export declare class StringHeap extends HeapBase {
3
+ constructor(heapData: DataView, indexSizeBytes: number);
4
+ getString(offset: number): string;
5
+ }
6
+ //# sourceMappingURL=StringHeap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringHeap.d.ts","sourceRoot":"","sources":["../../src/StringHeap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,qBAAa,UAAW,SAAQ,QAAQ;IACpC,YAAY,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAErD;IAEM,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvC;CACJ"}
@@ -0,0 +1,11 @@
1
+ import { HeapBase } from "./HeapBase.js";
2
+ import { getNullTerminatedUtf8String } from "./Helpers.js";
3
+ export class StringHeap extends HeapBase {
4
+ constructor(heapData, indexSizeBytes) {
5
+ super(heapData, indexSizeBytes);
6
+ }
7
+ getString(offset) {
8
+ return getNullTerminatedUtf8String(this.heapData, offset).string;
9
+ }
10
+ }
11
+ //# sourceMappingURL=StringHeap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringHeap.js","sourceRoot":"","sources":["../../src/StringHeap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACpC,YAAY,QAAkB,EAAE,cAAsB;QAClD,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACpC,CAAC;IAEM,SAAS,CAAC,MAAc;QAC3B,OAAO,2BAA2B,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;IACrE,CAAC;CACJ"}
@@ -0,0 +1,173 @@
1
+ import * as PE from 'pe-library';
2
+ import { ModuleTableRow, TypeRefTableRow, TypeDefTableRow, FieldTableRow, MethodDefRow, ParamRow, InterfaceImplRow, MemberRefRow, ConstantRow, CustomAttributeRow, FieldMarshalRow, DeclSecurityRow, ClassLayoutRow, FieldLayoutRow, StandAloneSigRow, EventMapRow, EventRow, PropertyMapRow, PropertyRow, MethodSemanticsRow, MethodImplRow, ModuleRefRow, TypeSpecRow, ImplMapRow, FieldRvaRow, AssemblyRow, AssemblyProcessorRow, AssemblyOsRow, AssemblyRefRow, AssemblyRefProcessorRow, AssemblyRefOsRow, FileRow, ExportedTypeRow, ManifestResourceRow, NestedClassRow, GenericParamRow, MethodSpecRow, GenericParamConstraintRow } from './Tables.js';
3
+ export interface CliHeader {
4
+ cbSize: number;
5
+ majorRuntimeVersion: number;
6
+ minorRuntimeVersion: number;
7
+ metaData: Readonly<PE.Format.ImageDataDirectory>;
8
+ flags: number;
9
+ entryPointToken: number;
10
+ resources: Readonly<PE.Format.ImageDataDirectory>;
11
+ strongNameSignature: Readonly<PE.Format.ImageDataDirectory>;
12
+ codeManagerTable: Readonly<PE.Format.ImageDataDirectory>;
13
+ vTableFixups: Readonly<PE.Format.ImageDataDirectory>;
14
+ exportAddressTableJumps: Readonly<PE.Format.ImageDataDirectory>;
15
+ managedNativeHeader: Readonly<PE.Format.ImageDataDirectory>;
16
+ }
17
+ export interface CliMetadataRoot {
18
+ signature: number;
19
+ majorVersion: number;
20
+ minorVersion: number;
21
+ reserved: number;
22
+ versionLength: number;
23
+ version: string;
24
+ flags: number;
25
+ streamCount: number;
26
+ streamHeaders: Array<CliMetadataStreamHeader>;
27
+ }
28
+ export interface CliMetadataStreamHeader {
29
+ metadataRootOffset: number;
30
+ streamSize: number;
31
+ streamName: string;
32
+ }
33
+ export declare enum HeapSizes {
34
+ StringStreamUses32BitIndexes = 1,
35
+ GuidStreamUses32BitIndexes = 2,
36
+ BlobStreamUses32BitIndexes = 4
37
+ }
38
+ export declare enum MetadataTables {
39
+ Module = 0,
40
+ TypeRef = 1,
41
+ TypeDef = 2,
42
+ Field = 4,
43
+ MethodDef = 6,
44
+ Param = 8,
45
+ InterfaceImpl = 9,
46
+ MemberRef = 10,
47
+ Constant = 11,
48
+ CustomAttribute = 12,
49
+ FieldMarshal = 13,
50
+ DeclSecurity = 14,
51
+ ClassLayout = 15,
52
+ FieldLayout = 16,
53
+ StandAloneSig = 17,
54
+ EventMap = 18,
55
+ Event = 20,
56
+ PropertyMap = 21,
57
+ Property = 23,
58
+ MethodSemantics = 24,
59
+ MethodImpl = 25,
60
+ ModuleRef = 26,
61
+ TypeSpec = 27,
62
+ ImplMap = 28,
63
+ FieldRVA = 29,
64
+ Assembly = 32,
65
+ AssemblyProcessor = 33,
66
+ AssemblyOS = 34,
67
+ AssemblyRef = 35,
68
+ AssemblyRefProcessor = 36,
69
+ AssemblyRefOS = 37,
70
+ File = 38,
71
+ ExportedType = 39,
72
+ ManifestResource = 40,
73
+ NestedClass = 41,
74
+ GenericParam = 42,
75
+ MethodSpec = 43,
76
+ GenericParamConstraint = 44,
77
+ Permission = 192,// fake value to map in HasCustomAttribute coded index
78
+ NotUsed = 193
79
+ }
80
+ export declare enum ElementType {
81
+ END = 0,
82
+ VOID = 1,
83
+ BOOLEAN = 2,
84
+ CHAR = 3,
85
+ I1 = 4,
86
+ U1 = 5,
87
+ I2 = 6,
88
+ U2 = 7,
89
+ I4 = 8,
90
+ U4 = 9,
91
+ I8 = 10,
92
+ U8 = 11,
93
+ R4 = 12,
94
+ R8 = 13,
95
+ STRING = 14,
96
+ PTR = 15,
97
+ BYREF = 16,
98
+ VALUETYPE = 17,
99
+ CLASS = 18,
100
+ VAR = 19,
101
+ ARRAY = 20,
102
+ GENERICINST = 21,
103
+ TYPEDBYREF = 22,
104
+ I = 24,
105
+ U = 25,
106
+ FNPTR = 27,
107
+ OBJECT = 28,
108
+ SZARRAY = 29,
109
+ MVAR = 30,
110
+ CMOD_REQD = 31,
111
+ CMOD_OPT = 32,
112
+ INTERNAL = 33,
113
+ MODIFIER = 64,
114
+ SENTINEL = 65,
115
+ PINNED = 69,
116
+ Type = 80,
117
+ Boxed = 81,
118
+ Reserved = 82,
119
+ Field = 83,
120
+ Property = 84,
121
+ Enum = 85
122
+ }
123
+ export interface CliMetadataTableStreamHeader {
124
+ reserved: number;
125
+ majorVersion: number;
126
+ minorVersion: number;
127
+ heapSizes: number;
128
+ reserved2: number;
129
+ presentTables: Array<boolean>;
130
+ sortedTables: Array<boolean>;
131
+ tableRowCounts: Array<number>;
132
+ }
133
+ export interface CliMetadataTables {
134
+ module: Readonly<ModuleTableRow[]> | null;
135
+ typeRef: Readonly<TypeRefTableRow[]> | null;
136
+ typeDef: Readonly<TypeDefTableRow[]> | null;
137
+ field: Readonly<FieldTableRow[]> | null;
138
+ methodDef: Readonly<MethodDefRow[]> | null;
139
+ param: Readonly<ParamRow[]> | null;
140
+ interfaceImpl: Readonly<InterfaceImplRow[]> | null;
141
+ memberRef: Readonly<MemberRefRow[]> | null;
142
+ constant: Readonly<ConstantRow[]> | null;
143
+ customAttribute: Readonly<CustomAttributeRow[]> | null;
144
+ fieldMarshal: Readonly<FieldMarshalRow[]> | null;
145
+ declSecurity: Readonly<DeclSecurityRow[]> | null;
146
+ classLayout: Readonly<ClassLayoutRow[]> | null;
147
+ fieldLayout: Readonly<FieldLayoutRow[]> | null;
148
+ standAloneSig: Readonly<StandAloneSigRow[]> | null;
149
+ eventMap: Readonly<EventMapRow[]> | null;
150
+ event: Readonly<EventRow[]> | null;
151
+ propertyMap: Readonly<PropertyMapRow[]> | null;
152
+ property: Readonly<PropertyRow[]> | null;
153
+ methodSemantics: Readonly<MethodSemanticsRow[]> | null;
154
+ methodImpl: Readonly<MethodImplRow[]> | null;
155
+ moduleRef: Readonly<ModuleRefRow[]> | null;
156
+ typeSpec: Readonly<TypeSpecRow[]> | null;
157
+ implMap: Readonly<ImplMapRow[]> | null;
158
+ fieldRva: Readonly<FieldRvaRow[]> | null;
159
+ assembly: Readonly<AssemblyRow[]> | null;
160
+ assemblyProcessor: Readonly<AssemblyProcessorRow[]> | null;
161
+ assemblyOs: Readonly<AssemblyOsRow[]> | null;
162
+ assemblyRef: Readonly<AssemblyRefRow[]> | null;
163
+ assemblyRefProcessor: Readonly<AssemblyRefProcessorRow[]> | null;
164
+ assemblyRefOs: Readonly<AssemblyRefOsRow[]> | null;
165
+ file: Readonly<FileRow[]> | null;
166
+ exportedType: Readonly<ExportedTypeRow[]> | null;
167
+ manifestResource: Readonly<ManifestResourceRow[]> | null;
168
+ nestedClass: Readonly<NestedClassRow[]> | null;
169
+ genericParam: Readonly<GenericParamRow[]> | null;
170
+ methodSpec: Readonly<MethodSpecRow[]> | null;
171
+ genericParamConstraint: Readonly<GenericParamConstraintRow[]> | null;
172
+ }
173
+ //# sourceMappingURL=Structures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Structures.d.ts","sourceRoot":"","sources":["../../src/Structures.ts"],"names":[],"mappings":"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"}