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.
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/dist/src/BinaryHeap.d.ts +6 -0
- package/dist/src/BinaryHeap.d.ts.map +1 -0
- package/dist/src/BinaryHeap.js +10 -0
- package/dist/src/BinaryHeap.js.map +1 -0
- package/dist/src/CliFile.d.ts +19 -0
- package/dist/src/CliFile.d.ts.map +1 -0
- package/dist/src/CliFile.js +288 -0
- package/dist/src/CliFile.js.map +1 -0
- package/dist/src/Columns/BlobReferenceColumns.d.ts +12 -0
- package/dist/src/Columns/BlobReferenceColumns.d.ts.map +1 -0
- package/dist/src/Columns/BlobReferenceColumns.js +41 -0
- package/dist/src/Columns/BlobReferenceColumns.js.map +1 -0
- package/dist/src/Columns/CodedIndex.d.ts +15 -0
- package/dist/src/Columns/CodedIndex.d.ts.map +1 -0
- package/dist/src/Columns/CodedIndex.js +86 -0
- package/dist/src/Columns/CodedIndex.js.map +1 -0
- package/dist/src/Columns/CodedIndexColumn.d.ts +13 -0
- package/dist/src/Columns/CodedIndexColumn.d.ts.map +1 -0
- package/dist/src/Columns/CodedIndexColumn.js +59 -0
- package/dist/src/Columns/CodedIndexColumn.js.map +1 -0
- package/dist/src/Columns/Column.d.ts +4 -0
- package/dist/src/Columns/Column.d.ts.map +1 -0
- package/dist/src/Columns/Column.js +2 -0
- package/dist/src/Columns/Column.js.map +1 -0
- package/dist/src/Columns/GuidReferenceColumn.d.ts +9 -0
- package/dist/src/Columns/GuidReferenceColumn.d.ts.map +1 -0
- package/dist/src/Columns/GuidReferenceColumn.js +19 -0
- package/dist/src/Columns/GuidReferenceColumn.js.map +1 -0
- package/dist/src/Columns/StringReferenceColumn.d.ts +11 -0
- package/dist/src/Columns/StringReferenceColumn.d.ts.map +1 -0
- package/dist/src/Columns/StringReferenceColumn.js +22 -0
- package/dist/src/Columns/StringReferenceColumn.js.map +1 -0
- package/dist/src/Columns/TableIndexColumn.d.ts +11 -0
- package/dist/src/Columns/TableIndexColumn.d.ts.map +1 -0
- package/dist/src/Columns/TableIndexColumn.js +20 -0
- package/dist/src/Columns/TableIndexColumn.js.map +1 -0
- package/dist/src/Columns/UintColumn.d.ts +9 -0
- package/dist/src/Columns/UintColumn.d.ts.map +1 -0
- package/dist/src/Columns/UintColumn.js +27 -0
- package/dist/src/Columns/UintColumn.js.map +1 -0
- package/dist/src/GuidHeap.d.ts +6 -0
- package/dist/src/GuidHeap.d.ts.map +1 -0
- package/dist/src/GuidHeap.js +10 -0
- package/dist/src/GuidHeap.js.map +1 -0
- package/dist/src/HeapBase.d.ts +6 -0
- package/dist/src/HeapBase.d.ts.map +1 -0
- package/dist/src/HeapBase.js +9 -0
- package/dist/src/HeapBase.js.map +1 -0
- package/dist/src/Helpers.d.ts +10 -0
- package/dist/src/Helpers.d.ts.map +1 -0
- package/dist/src/Helpers.js +38 -0
- package/dist/src/Helpers.js.map +1 -0
- package/dist/src/StringHeap.d.ts +6 -0
- package/dist/src/StringHeap.d.ts.map +1 -0
- package/dist/src/StringHeap.js +11 -0
- package/dist/src/StringHeap.js.map +1 -0
- package/dist/src/Structures.d.ts +173 -0
- package/dist/src/Structures.d.ts.map +1 -0
- package/dist/src/Structures.js +96 -0
- package/dist/src/Structures.js.map +1 -0
- package/dist/src/TableColumns.d.ts +48 -0
- package/dist/src/TableColumns.d.ts.map +1 -0
- package/dist/src/TableColumns.js +283 -0
- package/dist/src/TableColumns.js.map +1 -0
- package/dist/src/Tables.d.ts +245 -0
- package/dist/src/Tables.d.ts.map +1 -0
- package/dist/src/Tables.js +262 -0
- package/dist/src/Tables.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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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"}
|