@isopodlabs/binary_libs 1.3.0 → 1.4.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/dist/CompoundDocument.d.ts +156 -48
- package/dist/CompoundDocument.js +644 -175
- package/dist/arch.d.ts +20 -12
- package/dist/arch.js +29 -29
- package/dist/clr.d.ts +398 -399
- package/dist/clr.js +4 -4
- package/dist/common.d.ts +19 -0
- package/dist/common.js +25 -0
- package/dist/cvinfo.d.ts +10 -7
- package/dist/cvinfo.js +57 -53
- package/dist/elf.d.ts +9 -48
- package/dist/elf.js +13 -12
- package/dist/mach.d.ts +333 -436
- package/dist/mach.js +14 -13
- package/dist/pe.d.ts +236 -142
- package/dist/pe.js +27 -15
- package/package.json +5 -4
|
@@ -1,26 +1,43 @@
|
|
|
1
1
|
import * as bin from '@isopodlabs/binary';
|
|
2
|
-
|
|
2
|
+
export interface Backing {
|
|
3
|
+
readAt(offset: number, data: Uint8Array): Promise<number>;
|
|
4
|
+
writeAt(offset: number, data: Uint8Array): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export declare class Sectors {
|
|
3
7
|
shift: number;
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
private offset;
|
|
9
|
+
private backing?;
|
|
10
|
+
sectors: Uint8Array[];
|
|
11
|
+
dirty: Set<number>;
|
|
12
|
+
constructor(shift: number, offset?: number, backing?: Backing | undefined);
|
|
13
|
+
size(): number;
|
|
14
|
+
sector(id: number): Promise<Uint8Array>;
|
|
15
|
+
dirty_sector(id: number): Promise<Uint8Array>;
|
|
16
|
+
writeHeader(data: Uint8Array): Promise<void>;
|
|
17
|
+
flush(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
declare class FAT {
|
|
20
|
+
fat: TypedArray<number>;
|
|
21
|
+
fat_shift: number;
|
|
22
|
+
data: Sectors;
|
|
6
23
|
freed: number[];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(size: number, shift: number, sectors: Uint8Array);
|
|
24
|
+
dirty: Set<number>;
|
|
25
|
+
constructor(fat: bin.utils.TypedArray<number>, fat_shift: number, data: Sectors);
|
|
10
26
|
private free;
|
|
11
|
-
|
|
27
|
+
alloc(type: number): number;
|
|
12
28
|
get_chain(id: number): number[];
|
|
13
29
|
resize_chain(chain: number[], data_size: number): void;
|
|
14
30
|
clear_dirty(): void;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
31
|
+
sector(id: number): Promise<Uint8Array | null>;
|
|
32
|
+
chain_part(chain: number[], offset: number): Promise<Uint8Array | undefined>;
|
|
33
|
+
dirty_sector(id: number): Promise<Uint8Array | null>;
|
|
34
|
+
dirty_chain_part(chain: number[], offset: number): Promise<Uint8Array | undefined>;
|
|
35
|
+
read_chain(chain: number[], dest: Uint8Array): Promise<void>;
|
|
36
|
+
write_chain(chain: number[], source: Uint8Array): Promise<void>;
|
|
37
|
+
write(id: number, source: Uint8Array): Promise<number>;
|
|
20
38
|
}
|
|
21
|
-
declare const Header_base: (new (s: bin._stream
|
|
22
|
-
|
|
23
|
-
id: Uint8Array;
|
|
39
|
+
declare const Header_base: (new (s: bin._stream | {
|
|
40
|
+
id: any;
|
|
24
41
|
revision: number;
|
|
25
42
|
version: number;
|
|
26
43
|
byteorder: number;
|
|
@@ -30,29 +47,77 @@ declare const Header_base: (new (s: bin._stream) => {
|
|
|
30
47
|
num_directory: number;
|
|
31
48
|
num_fat: number;
|
|
32
49
|
first_directory: number;
|
|
33
|
-
transaction: void;
|
|
34
50
|
mini_cutoff: number;
|
|
35
51
|
first_mini: number;
|
|
36
52
|
num_mini: number;
|
|
37
53
|
first_difat: number;
|
|
38
54
|
num_difat: number;
|
|
39
|
-
difat:
|
|
55
|
+
difat: Int32Array;
|
|
56
|
+
}) => {
|
|
57
|
+
id: any;
|
|
58
|
+
revision: number;
|
|
59
|
+
version: number;
|
|
60
|
+
byteorder: number;
|
|
61
|
+
sector_shift: number;
|
|
62
|
+
mini_shift: number;
|
|
63
|
+
unused1: void;
|
|
64
|
+
num_directory: number;
|
|
65
|
+
num_fat: number;
|
|
66
|
+
first_directory: number;
|
|
67
|
+
mini_cutoff: number;
|
|
68
|
+
first_mini: number;
|
|
69
|
+
num_mini: number;
|
|
70
|
+
first_difat: number;
|
|
71
|
+
num_difat: number;
|
|
72
|
+
difat: Int32Array;
|
|
40
73
|
} & {
|
|
41
74
|
write(w: bin._stream): void;
|
|
42
|
-
}) &
|
|
43
|
-
get: <X extends abstract new (...args: any) => any>(this: X, s: bin._stream) => InstanceType<X>;
|
|
44
|
-
put: (s: bin._stream, v: any) => void;
|
|
45
|
-
};
|
|
75
|
+
}) & bin.WithStaticGet & bin.WithStaticPut;
|
|
46
76
|
export declare class Header extends Header_base {
|
|
47
77
|
sector_size(): number;
|
|
48
78
|
use_mini(size: number): boolean;
|
|
49
|
-
valid(): boolean;
|
|
50
79
|
}
|
|
51
|
-
declare
|
|
80
|
+
declare class Master {
|
|
81
|
+
header: Header;
|
|
82
|
+
fat: FAT;
|
|
83
|
+
mini_fat: FAT;
|
|
84
|
+
fat_chain: number[];
|
|
85
|
+
difat_chain: number[];
|
|
86
|
+
static load<T extends Master>(this: new (...args: any[]) => T, header: Header, sectors: Sectors): Promise<T>;
|
|
87
|
+
constructor(header: Header, fat: FAT, mini_fat: FAT, fat_chain: number[], difat_chain: number[]);
|
|
88
|
+
get_fat(mini: boolean): FAT;
|
|
89
|
+
flush(dirty_header?: boolean): Promise<void>;
|
|
90
|
+
}
|
|
91
|
+
export declare const TYPE: {
|
|
92
|
+
readonly Empty: 0;
|
|
93
|
+
readonly UserStorage: 1;
|
|
94
|
+
readonly UserStream: 2;
|
|
95
|
+
readonly LockBytes: 3;
|
|
96
|
+
readonly Property: 4;
|
|
97
|
+
readonly RootStorage: 5;
|
|
98
|
+
};
|
|
99
|
+
type TYPE = 0 | 1 | 2 | 3 | 4 | 5;
|
|
100
|
+
type COLOUR = 0 | 1;
|
|
101
|
+
declare const DirEntry_base: new (contents: {
|
|
52
102
|
name: string;
|
|
53
103
|
name_size: number;
|
|
54
|
-
type:
|
|
55
|
-
colour:
|
|
104
|
+
type: TYPE;
|
|
105
|
+
colour: COLOUR;
|
|
106
|
+
left: number;
|
|
107
|
+
right: number;
|
|
108
|
+
root: number;
|
|
109
|
+
guid: Uint8Array;
|
|
110
|
+
flags: number;
|
|
111
|
+
creation: bigint;
|
|
112
|
+
modification: bigint;
|
|
113
|
+
sec_id: number;
|
|
114
|
+
size: number;
|
|
115
|
+
unused: number;
|
|
116
|
+
}) => {
|
|
117
|
+
name: string;
|
|
118
|
+
name_size: number;
|
|
119
|
+
type: TYPE;
|
|
120
|
+
colour: COLOUR;
|
|
56
121
|
left: number;
|
|
57
122
|
right: number;
|
|
58
123
|
root: number;
|
|
@@ -63,33 +128,76 @@ declare const DirEntry_base: (new (s: bin._stream) => {
|
|
|
63
128
|
sec_id: number;
|
|
64
129
|
size: number;
|
|
65
130
|
unused: number;
|
|
66
|
-
} & {
|
|
67
|
-
write(w: bin._stream): void;
|
|
68
|
-
}) & {
|
|
69
|
-
get: <X extends abstract new (...args: any) => any>(this: X, s: bin._stream) => InstanceType<X>;
|
|
70
|
-
put: (s: bin._stream, v: any) => void;
|
|
71
131
|
};
|
|
72
|
-
declare class DirEntry extends DirEntry_base {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
132
|
+
export declare class DirEntry extends DirEntry_base {
|
|
133
|
+
reader: Reader;
|
|
134
|
+
dir?: Directory;
|
|
135
|
+
constructor(reader: Reader, contents: {
|
|
136
|
+
name: string;
|
|
137
|
+
name_size: number;
|
|
138
|
+
type: TYPE;
|
|
139
|
+
colour: COLOUR;
|
|
140
|
+
left: number;
|
|
141
|
+
right: number;
|
|
142
|
+
root: number;
|
|
143
|
+
guid: Uint8Array;
|
|
144
|
+
flags: number;
|
|
145
|
+
creation: bigint;
|
|
146
|
+
modification: bigint;
|
|
147
|
+
sec_id: number;
|
|
148
|
+
size: number;
|
|
149
|
+
unused: number;
|
|
150
|
+
});
|
|
151
|
+
static reader(reader: Reader): {
|
|
152
|
+
get: (s: bin._stream) => DirEntry;
|
|
153
|
+
put: (s: bin._stream, entry: DirEntry) => void;
|
|
154
|
+
};
|
|
155
|
+
is(type: 0): this is DirEntry;
|
|
156
|
+
is(type: 1): this is Directory;
|
|
157
|
+
is(type: 2): this is Stream;
|
|
158
|
+
is(type: 3): this is DirEntry;
|
|
159
|
+
is(type: 4): this is DirEntry;
|
|
160
|
+
is(type: 5): this is Directory;
|
|
161
|
+
is_directory(): this is Directory;
|
|
162
|
+
is_data(): this is Stream;
|
|
163
|
+
rename(name: string): void;
|
|
164
|
+
remove(): void;
|
|
76
165
|
}
|
|
77
|
-
declare class
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
166
|
+
export declare class Directory extends DirEntry {
|
|
167
|
+
find(name: string): DirEntry | undefined;
|
|
168
|
+
entries(): Generator<DirEntry, any, unknown>;
|
|
169
|
+
private _addEntry;
|
|
170
|
+
addEntry(name: string, type: 0): DirEntry;
|
|
171
|
+
addEntry(name: string, type: 1): Directory;
|
|
172
|
+
addEntry(name: string, type: 2): Stream;
|
|
173
|
+
addEntry(name: string, type: 3): DirEntry;
|
|
174
|
+
addEntry(name: string, type: 4): DirEntry;
|
|
175
|
+
addEntry(name: string, type: 5): Directory;
|
|
176
|
+
addStream(name: string, data: Uint8Array): Promise<void>;
|
|
177
|
+
}
|
|
178
|
+
export declare class Stream extends DirEntry {
|
|
179
|
+
read(): Promise<Uint8Array>;
|
|
180
|
+
write(data: Uint8Array): Promise<void>;
|
|
86
181
|
}
|
|
87
182
|
export declare class Reader extends Master {
|
|
88
183
|
entries: DirEntry[];
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
184
|
+
chain: number[];
|
|
185
|
+
pending: Promise<void>;
|
|
186
|
+
free: number;
|
|
187
|
+
static loadBacking(backing: Backing): Promise<Reader>;
|
|
188
|
+
static loadBuffer(buffer: Buffer): Promise<Reader>;
|
|
189
|
+
static load1(me: Reader): Promise<Reader>;
|
|
190
|
+
get root(): Directory;
|
|
191
|
+
updateIndex(index: number): Promise<void>;
|
|
192
|
+
updateEntry(entry: DirEntry): Promise<void>;
|
|
193
|
+
clearEntry(index: number): Promise<void>;
|
|
194
|
+
addEntry(entry: DirEntry): number;
|
|
195
|
+
rbFind(root: number, name: string): readonly [number, number];
|
|
196
|
+
rbInsert(root: DirEntry, entry: DirEntry): number;
|
|
197
|
+
rbRemove(root: DirEntry, entry: DirEntry): void;
|
|
198
|
+
find(name: string, create?: boolean): DirEntry | undefined;
|
|
199
|
+
read(entry: DirEntry): Promise<Uint8Array>;
|
|
200
|
+
write(entry: DirEntry, data: Uint8Array): Promise<void>;
|
|
201
|
+
flush(): Promise<void>;
|
|
94
202
|
}
|
|
95
203
|
export {};
|