@futpib/parser 1.0.2 → 1.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.
- package/.github/copilot-instructions.md +149 -0
- package/.github/workflows/copilot-setup-steps.yml +18 -0
- package/.github/workflows/main.yml +29 -8
- package/.yarn/releases/yarn-4.9.4.cjs +942 -0
- package/.yarnrc.yml +1 -1
- package/build/allSettledStream.js +1 -1
- package/build/allSettledStream.test.js +2 -2
- package/build/androidPackageParser.d.ts +1 -1
- package/build/androidPackageParser.js +5 -3
- package/build/androidPackageParser.test.js +7 -7
- package/build/androidPackageUnparser.d.ts +2 -2
- package/build/androidPackageUnparser.js +18 -14
- package/build/androidPackageUnparser.test.js +7 -7
- package/build/arbitrarilySlicedAsyncInterator.js +2 -1
- package/build/arbitraryDalvikBytecode.d.ts +4 -0
- package/build/arbitraryDalvikBytecode.js +640 -0
- package/build/arbitraryDalvikExecutable.d.ts +3 -0
- package/build/arbitraryDalvikExecutable.js +282 -0
- package/build/arbitraryDosDateTime.js +1 -0
- package/build/arbitraryZipStream.js +1 -1
- package/build/arrayParser.js +2 -2
- package/build/arrayUnparser.d.ts +1 -1
- package/build/backsmali.d.ts +3 -1
- package/build/backsmali.js +31 -3
- package/build/bash.d.ts +84 -0
- package/build/bash.js +1 -0
- package/build/bashParser.d.ts +6 -0
- package/build/bashParser.js +294 -0
- package/build/bashParser.test.d.ts +1 -0
- package/build/bashParser.test.js +181 -0
- package/build/customInvariant.d.ts +2 -1
- package/build/customInvariant.js +4 -6
- package/build/dalvikBytecodeParser/formatParsers.d.ts +76 -2
- package/build/dalvikBytecodeParser/formatParsers.js +146 -11
- package/build/dalvikBytecodeParser/formatSizes.d.ts +34 -0
- package/build/dalvikBytecodeParser/formatSizes.js +34 -0
- package/build/dalvikBytecodeParser/operationFormats.d.ts +225 -0
- package/build/dalvikBytecodeParser/operationFormats.js +225 -0
- package/build/dalvikBytecodeParser.d.ts +1105 -5
- package/build/dalvikBytecodeParser.js +658 -205
- package/build/dalvikBytecodeUnparser/formatUnparsers.d.ts +152 -0
- package/build/dalvikBytecodeUnparser/formatUnparsers.js +225 -0
- package/build/dalvikBytecodeUnparser.d.ts +3 -0
- package/build/dalvikBytecodeUnparser.js +642 -0
- package/build/dalvikBytecodeUnparser.test.d.ts +1 -0
- package/build/dalvikBytecodeUnparser.test.js +25 -0
- package/build/dalvikExecutable.d.ts +65 -8
- package/build/dalvikExecutable.js +36 -0
- package/build/dalvikExecutableParser/stringSyntaxParser.d.ts +1 -1
- package/build/dalvikExecutableParser/stringSyntaxParser.js +17 -17
- package/build/dalvikExecutableParser/typeParsers.d.ts +2 -1
- package/build/dalvikExecutableParser/typeParsers.js +16 -11
- package/build/dalvikExecutableParser/typedNumbers.d.ts +85 -69
- package/build/dalvikExecutableParser/typedNumbers.js +0 -1
- package/build/dalvikExecutableParser.d.ts +2 -2
- package/build/dalvikExecutableParser.js +655 -337
- package/build/dalvikExecutableParser.test.js +24 -22
- package/build/dalvikExecutableParserAgainstSmaliParser.test.js +223 -246
- package/build/dalvikExecutableUnparser/annotationUnparsers.d.ts +14 -0
- package/build/dalvikExecutableUnparser/annotationUnparsers.js +97 -0
- package/build/dalvikExecutableUnparser/poolBuilders.d.ts +49 -0
- package/build/dalvikExecutableUnparser/poolBuilders.js +140 -0
- package/build/dalvikExecutableUnparser/poolScanners.d.ts +4 -0
- package/build/dalvikExecutableUnparser/poolScanners.js +220 -0
- package/build/dalvikExecutableUnparser/sectionUnparsers.d.ts +25 -0
- package/build/dalvikExecutableUnparser/sectionUnparsers.js +581 -0
- package/build/dalvikExecutableUnparser/utils.d.ts +10 -0
- package/build/dalvikExecutableUnparser/utils.js +108 -0
- package/build/dalvikExecutableUnparser.d.ts +4 -0
- package/build/dalvikExecutableUnparser.js +406 -0
- package/build/dalvikExecutableUnparser.test.d.ts +1 -0
- package/build/dalvikExecutableUnparser.test.js +31 -0
- package/build/debugLogInputParser.js +1 -1
- package/build/disjunctionParser.d.ts +2 -2
- package/build/disjunctionParser.js +2 -2
- package/build/elementTerminatedArrayParser.d.ts +2 -2
- package/build/elementTerminatedArrayParser.js +1 -1
- package/build/elementTerminatedArrayParser.test.js +5 -5
- package/build/elementTerminatedSequenceArrayParser.d.ts +2 -2
- package/build/elementTerminatedSequenceArrayParser.js +1 -1
- package/build/elementTerminatedSequenceArrayParser.test.js +2 -2
- package/build/elementTerminatedSequenceParser.d.ts +2 -2
- package/build/elementTerminatedSequenceParser.js +1 -1
- package/build/elementTerminatedSequenceParser.test.js +2 -2
- package/build/endOfInputParser.d.ts +1 -1
- package/build/exactElementSwitchParser.d.ts +3 -0
- package/build/exactElementSwitchParser.js +22 -0
- package/build/fetchCid.js +2 -6
- package/build/fetchCid.test.d.ts +1 -0
- package/build/fetchCid.test.js +16 -0
- package/build/fixedLengthSequenceParser.test.js +2 -2
- package/build/hasExecutable.js +2 -2
- package/build/highResolutionTimer.js +1 -1
- package/build/index.d.ts +24 -2
- package/build/index.js +22 -1
- package/build/inputReader.d.ts +1 -1
- package/build/inputReader.test.js +33 -45
- package/build/javaKeyStoreParser.test.js +6 -6
- package/build/jsonParser.js +8 -8
- package/build/lazyMessageError.d.ts +48 -0
- package/build/lazyMessageError.js +53 -0
- package/build/lazyMessageError.test.d.ts +1 -0
- package/build/lazyMessageError.test.js +15 -0
- package/build/leb128Parser.d.ts +1 -1
- package/build/leb128Parser.js +10 -10
- package/build/leb128Parser.test.js +7 -7
- package/build/negativeLookaheadParser.js +2 -2
- package/build/negativeLookaheadParser.test.js +4 -4
- package/build/noStackCaptureOverheadError.d.ts +4 -0
- package/build/noStackCaptureOverheadError.js +9 -0
- package/build/noStackCaptureOverheadError.test.d.ts +1 -0
- package/build/noStackCaptureOverheadError.test.js +15 -0
- package/build/nonEmptyArrayParser.js +2 -2
- package/build/nonEmptyArrayParser.test.js +2 -1
- package/build/optionalParser.js +2 -2
- package/build/parser.d.ts +2 -1
- package/build/parser.js +23 -8
- package/build/parser.test.js +78 -29
- package/build/parserConsumedSequenceParser.d.ts +1 -1
- package/build/parserConsumedSequenceParser.js +2 -2
- package/build/parserContext.d.ts +8 -6
- package/build/parserContext.js +60 -33
- package/build/parserContext.test.js +7 -3
- package/build/parserError.d.ts +603 -44
- package/build/parserError.js +98 -53
- package/build/parserImplementationInvariant.d.ts +1 -1
- package/build/parserImplementationInvariant.js +2 -2
- package/build/parserInputCompanion.js +2 -2
- package/build/promiseCompose.js +1 -2
- package/build/regexpParser.d.ts +2 -0
- package/build/regexpParser.js +71 -0
- package/build/regexpParser.test.d.ts +1 -0
- package/build/regexpParser.test.js +83 -0
- package/build/regularExpression.d.ts +63 -0
- package/build/regularExpression.js +1 -0
- package/build/regularExpressionParser.d.ts +3 -0
- package/build/regularExpressionParser.js +580 -0
- package/build/regularExpressionParser.test.d.ts +1 -0
- package/build/regularExpressionParser.test.js +89 -0
- package/build/separatedArrayParser.js +2 -2
- package/build/separatedNonEmptyArrayParser.d.ts +2 -0
- package/build/separatedNonEmptyArrayParser.js +40 -0
- package/build/separatedNonEmptyArrayParser.test.d.ts +1 -0
- package/build/separatedNonEmptyArrayParser.test.js +66 -0
- package/build/sequenceBuffer.js +1 -1
- package/build/sequenceTerminatedSequenceParser.d.ts +2 -2
- package/build/sequenceTerminatedSequenceParser.js +3 -3
- package/build/sequenceTerminatedSequenceParser.test.js +1 -1
- package/build/sequenceUnparser.d.ts +1 -1
- package/build/skipToParser.d.ts +1 -1
- package/build/skipToParser.js +2 -2
- package/build/sliceBoundedParser.test.js +4 -9
- package/build/smali.d.ts +1 -1
- package/build/smali.js +6 -2
- package/build/smaliParser.d.ts +62 -6
- package/build/smaliParser.js +1721 -296
- package/build/smaliParser.test.js +338 -43
- package/build/stringFromAsyncIterable.d.ts +1 -0
- package/build/stringFromAsyncIterable.js +7 -0
- package/build/terminatedArrayParser.js +4 -4
- package/build/terminatedArrayParser.test.js +7 -7
- package/build/toAsyncIterator.js +4 -4
- package/build/unionParser.d.ts +1 -1
- package/build/unionParser.js +2 -2
- package/build/unionParser.test.js +3 -3
- package/build/unparser.d.ts +3 -3
- package/build/unparser.js +6 -4
- package/build/unparser.test.js +7 -19
- package/build/unparserContext.d.ts +2 -2
- package/build/unparserContext.js +2 -3
- package/build/unparserError.d.ts +2 -1
- package/build/unparserError.js +2 -1
- package/build/unparserImplementationInvariant.d.ts +1 -1
- package/build/unparserOutputCompanion.d.ts +1 -1
- package/build/unparserOutputCompanion.js +1 -1
- package/build/zipParser.js +1 -1
- package/build/zipUnparser.d.ts +3 -3
- package/build/zipUnparser.js +9 -19
- package/build/zipUnparser.test.js +1 -1
- package/package.json +20 -26
- package/src/allSettledStream.test.ts +2 -2
- package/src/allSettledStream.ts +3 -3
- package/src/androidPackageParser.test.ts +17 -19
- package/src/androidPackageParser.ts +129 -171
- package/src/androidPackageUnparser.test.ts +19 -21
- package/src/androidPackageUnparser.ts +23 -17
- package/src/arbitrarilySlicedAsyncInterable.ts +1 -1
- package/src/arbitrarilySlicedAsyncInterator.ts +4 -4
- package/src/arbitraryDalvikBytecode.ts +992 -0
- package/src/arbitraryDalvikExecutable.ts +434 -0
- package/src/arbitraryDosDateTime.ts +1 -0
- package/src/arbitraryZipStream.ts +1 -1
- package/src/arrayParser.ts +2 -2
- package/src/arrayUnparser.ts +2 -2
- package/src/backsmali.ts +48 -4
- package/src/bash.ts +120 -0
- package/src/bashParser.test.ts +332 -0
- package/src/bashParser.ts +461 -0
- package/src/bsonParser.test.ts +12 -14
- package/src/customInvariant.ts +8 -12
- package/src/dalvikBytecodeParser/formatParsers.ts +376 -17
- package/src/dalvikBytecodeParser/formatSizes.ts +35 -0
- package/src/dalvikBytecodeParser/operationFormats.ts +226 -0
- package/src/dalvikBytecodeParser.ts +1042 -243
- package/src/dalvikBytecodeUnparser/formatUnparsers.ts +442 -0
- package/src/dalvikBytecodeUnparser.test.ts +44 -0
- package/src/dalvikBytecodeUnparser.ts +758 -0
- package/src/dalvikExecutable.ts +110 -48
- package/src/dalvikExecutableParser/stringSyntaxParser.ts +33 -33
- package/src/dalvikExecutableParser/typeParsers.ts +23 -14
- package/src/dalvikExecutableParser/typedNumbers.ts +19 -19
- package/src/dalvikExecutableParser.test.ts +60 -60
- package/src/dalvikExecutableParser.test.ts.md +6 -6
- package/src/dalvikExecutableParser.test.ts.snap +0 -0
- package/src/dalvikExecutableParser.ts +911 -434
- package/src/dalvikExecutableParserAgainstSmaliParser.test.ts +256 -239
- package/src/dalvikExecutableUnparser/annotationUnparsers.ts +135 -0
- package/src/dalvikExecutableUnparser/poolBuilders.ts +189 -0
- package/src/dalvikExecutableUnparser/poolScanners.ts +297 -0
- package/src/dalvikExecutableUnparser/sectionUnparsers.ts +683 -0
- package/src/dalvikExecutableUnparser/utils.ts +149 -0
- package/src/dalvikExecutableUnparser.test.ts +57 -0
- package/src/dalvikExecutableUnparser.ts +581 -0
- package/src/debugLogInputParser.ts +1 -1
- package/src/disjunctionParser.ts +5 -5
- package/src/elementTerminatedArrayParser.test.ts +8 -8
- package/src/elementTerminatedArrayParser.ts +2 -2
- package/src/elementTerminatedSequenceArrayParser.test.ts +4 -6
- package/src/elementTerminatedSequenceArrayParser.ts +2 -2
- package/src/elementTerminatedSequenceParser.test.ts +4 -6
- package/src/elementTerminatedSequenceParser.ts +2 -2
- package/src/endOfInputParser.ts +1 -1
- package/src/exactElementSwitchParser.ts +41 -0
- package/src/fetchCid.test.ts +20 -0
- package/src/fetchCid.ts +3 -7
- package/src/fixedLengthSequenceParser.test.ts +10 -12
- package/src/hasExecutable.ts +2 -2
- package/src/highResolutionTimer.ts +1 -1
- package/src/index.ts +113 -2
- package/src/inputReader.test.ts +39 -52
- package/src/inputReader.ts +2 -4
- package/src/inputReaderState.ts +1 -1
- package/src/inspect.ts +1 -1
- package/src/javaKeyStoreParser.test.ts +12 -14
- package/src/javaKeyStoreParser.ts +2 -6
- package/src/jsonParser.test.ts +2 -4
- package/src/jsonParser.ts +34 -38
- package/src/lazyMessageError.test.ts +21 -0
- package/src/lazyMessageError.ts +88 -0
- package/src/leb128Parser.test.ts +25 -23
- package/src/leb128Parser.ts +19 -19
- package/src/negativeLookaheadParser.test.ts +7 -11
- package/src/negativeLookaheadParser.ts +2 -2
- package/src/noStackCaptureOverheadError.test.ts +17 -0
- package/src/noStackCaptureOverheadError.ts +12 -0
- package/src/nonEmptyArrayParser.test.ts +3 -2
- package/src/nonEmptyArrayParser.ts +2 -2
- package/src/optionalParser.ts +2 -2
- package/src/parser.test.ts +96 -43
- package/src/parser.test.ts.md +13 -6
- package/src/parser.test.ts.snap +0 -0
- package/src/parser.ts +35 -12
- package/src/parserAccessorParser.ts +1 -1
- package/src/parserConsumedSequenceParser.ts +3 -3
- package/src/parserContext.test.ts +7 -3
- package/src/parserContext.ts +82 -48
- package/src/parserError.ts +143 -63
- package/src/parserImplementationInvariant.ts +3 -3
- package/src/parserInputCompanion.ts +2 -2
- package/src/promiseCompose.ts +2 -2
- package/src/regexpParser.test.ts +186 -0
- package/src/regexpParser.ts +94 -0
- package/src/regularExpression.ts +24 -0
- package/src/regularExpressionParser.test.ts +102 -0
- package/src/regularExpressionParser.ts +921 -0
- package/src/separatedArrayParser.ts +3 -3
- package/src/separatedNonEmptyArrayParser.test.ts +117 -0
- package/src/separatedNonEmptyArrayParser.ts +61 -0
- package/src/sequenceBuffer.test.ts +9 -9
- package/src/sequenceBuffer.ts +4 -4
- package/src/sequenceTerminatedSequenceParser.test.ts +3 -5
- package/src/sequenceTerminatedSequenceParser.ts +4 -4
- package/src/sequenceUnparser.ts +2 -2
- package/src/skipToParser.ts +2 -2
- package/src/sliceBoundedParser.test.ts +4 -12
- package/src/sliceBoundedParser.ts +2 -2
- package/src/smali.ts +8 -3
- package/src/smaliParser.test.ts +377 -66
- package/src/smaliParser.test.ts.md +1635 -48
- package/src/smaliParser.test.ts.snap +0 -0
- package/src/smaliParser.ts +2751 -569
- package/src/stringFromAsyncIterable.ts +9 -0
- package/src/terminatedArrayParser.test.ts +11 -11
- package/src/terminatedArrayParser.ts +5 -7
- package/src/toAsyncIterator.ts +8 -8
- package/src/uint8Array.ts +2 -3
- package/src/unionParser.test.ts +22 -23
- package/src/unionParser.ts +6 -8
- package/src/unparser.test.ts +18 -34
- package/src/unparser.ts +13 -9
- package/src/unparserContext.ts +9 -13
- package/src/unparserError.ts +2 -1
- package/src/unparserImplementationInvariant.ts +1 -1
- package/src/unparserOutputCompanion.ts +1 -1
- package/src/zip.ts +2 -6
- package/src/zipParser.ts +10 -18
- package/src/zipUnparser.test.ts +1 -1
- package/src/zipUnparser.ts +52 -64
- package/tsconfig.json +7 -1
- package/xo.config.ts +15 -0
- package/.yarn/releases/yarn-4.5.3.cjs +0 -934
|
@@ -19,7 +19,62 @@ export type DalvikExecutableAccessFlags = {
|
|
|
19
19
|
constructor: boolean;
|
|
20
20
|
declaredSynchronized: boolean;
|
|
21
21
|
};
|
|
22
|
-
export
|
|
22
|
+
export declare function dalvikExecutableAccessFlagsDefault(): DalvikExecutableAccessFlags;
|
|
23
|
+
export type DalvikExecutableEncodedValue = {
|
|
24
|
+
type: 'byte';
|
|
25
|
+
value: number;
|
|
26
|
+
} | {
|
|
27
|
+
type: 'short';
|
|
28
|
+
value: number;
|
|
29
|
+
} | {
|
|
30
|
+
type: 'char';
|
|
31
|
+
value: number;
|
|
32
|
+
} | {
|
|
33
|
+
type: 'int';
|
|
34
|
+
value: number;
|
|
35
|
+
} | {
|
|
36
|
+
type: 'long';
|
|
37
|
+
value: bigint;
|
|
38
|
+
} | {
|
|
39
|
+
type: 'float';
|
|
40
|
+
value: number;
|
|
41
|
+
} | {
|
|
42
|
+
type: 'double';
|
|
43
|
+
value: number;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'methodType';
|
|
46
|
+
value: DalvikExecutablePrototype;
|
|
47
|
+
} | {
|
|
48
|
+
type: 'methodHandle';
|
|
49
|
+
value: number;
|
|
50
|
+
} | {
|
|
51
|
+
type: 'string';
|
|
52
|
+
value: string;
|
|
53
|
+
} | {
|
|
54
|
+
type: 'type';
|
|
55
|
+
value: string;
|
|
56
|
+
} | {
|
|
57
|
+
type: 'field';
|
|
58
|
+
value: DalvikExecutableField;
|
|
59
|
+
} | {
|
|
60
|
+
type: 'method';
|
|
61
|
+
value: DalvikExecutableMethod;
|
|
62
|
+
} | {
|
|
63
|
+
type: 'enum';
|
|
64
|
+
value: DalvikExecutableField;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'array';
|
|
67
|
+
value: DalvikExecutableEncodedValue[];
|
|
68
|
+
} | {
|
|
69
|
+
type: 'annotation';
|
|
70
|
+
value: DalvikExecutableAnnotation;
|
|
71
|
+
} | {
|
|
72
|
+
type: 'null';
|
|
73
|
+
value: null;
|
|
74
|
+
} | {
|
|
75
|
+
type: 'boolean';
|
|
76
|
+
value: boolean;
|
|
77
|
+
};
|
|
23
78
|
type DalvikExecutableTry = {
|
|
24
79
|
startAddress: number;
|
|
25
80
|
instructionCount: number;
|
|
@@ -78,7 +133,7 @@ type DalvikExecutableDebugByteCodeValue = {
|
|
|
78
133
|
type DalvikExecutableDebugByteCode = DalvikExecutableDebugByteCodeValue[];
|
|
79
134
|
export type DalvikExecutableDebugInfo = {
|
|
80
135
|
lineStart: number;
|
|
81
|
-
parameterNames:
|
|
136
|
+
parameterNames: Array<undefined | string>;
|
|
82
137
|
bytecode: DalvikExecutableDebugByteCode;
|
|
83
138
|
};
|
|
84
139
|
type DalvikExecutableAnnotationItemVisibility = 'build' | 'runtime' | 'system';
|
|
@@ -102,6 +157,7 @@ export type DalvikExecutableField = {
|
|
|
102
157
|
name: string;
|
|
103
158
|
};
|
|
104
159
|
export declare function isDalvikExecutableField(x: unknown): x is DalvikExecutableField;
|
|
160
|
+
export declare function dalvikExecutableFieldEquals(a: DalvikExecutableField, b: DalvikExecutableField): boolean;
|
|
105
161
|
export type DalvikExecutableFieldWithAccess = {
|
|
106
162
|
field: DalvikExecutableField;
|
|
107
163
|
accessFlags: DalvikExecutableAccessFlags;
|
|
@@ -112,6 +168,7 @@ export type DalvikExecutableMethod = {
|
|
|
112
168
|
name: string;
|
|
113
169
|
};
|
|
114
170
|
export declare function isDalvikExecutableMethod(x: unknown): x is DalvikExecutableMethod;
|
|
171
|
+
export declare function dalvikExecutableMethodEquals(a: DalvikExecutableMethod, b: DalvikExecutableMethod): boolean;
|
|
115
172
|
export type DalvikExecutableMethodWithAccess<Instructions> = {
|
|
116
173
|
method: DalvikExecutableMethod;
|
|
117
174
|
accessFlags: DalvikExecutableAccessFlags;
|
|
@@ -123,14 +180,14 @@ export type DalvikExecutableClassFieldAnnotation = {
|
|
|
123
180
|
};
|
|
124
181
|
export type DalvikExecutableClassMethodAnnotation = {
|
|
125
182
|
method: DalvikExecutableMethod;
|
|
126
|
-
annotations:
|
|
183
|
+
annotations: DalvikExecutableAnnotation[];
|
|
127
184
|
};
|
|
128
185
|
export type DalvikExecutableClassParameterAnnotation = {
|
|
129
186
|
method: DalvikExecutableMethod;
|
|
130
|
-
annotations:
|
|
187
|
+
annotations: DalvikExecutableAnnotation[][];
|
|
131
188
|
};
|
|
132
189
|
export type DalvikExecutableClassAnnotations = {
|
|
133
|
-
classAnnotations:
|
|
190
|
+
classAnnotations: DalvikExecutableAnnotation[];
|
|
134
191
|
fieldAnnotations: DalvikExecutableClassFieldAnnotation[];
|
|
135
192
|
methodAnnotations: DalvikExecutableClassMethodAnnotation[];
|
|
136
193
|
parameterAnnotations: DalvikExecutableClassParameterAnnotation[];
|
|
@@ -138,8 +195,8 @@ export type DalvikExecutableClassAnnotations = {
|
|
|
138
195
|
export type DalvikExecutableClassData<Instructions> = {
|
|
139
196
|
staticFields: DalvikExecutableFieldWithAccess[];
|
|
140
197
|
instanceFields: DalvikExecutableFieldWithAccess[];
|
|
141
|
-
directMethods: DalvikExecutableMethodWithAccess<Instructions
|
|
142
|
-
virtualMethods: DalvikExecutableMethodWithAccess<Instructions
|
|
198
|
+
directMethods: Array<DalvikExecutableMethodWithAccess<Instructions>>;
|
|
199
|
+
virtualMethods: Array<DalvikExecutableMethodWithAccess<Instructions>>;
|
|
143
200
|
};
|
|
144
201
|
export type DalvikExecutableClassDefinition<Instructions> = {
|
|
145
202
|
class: string;
|
|
@@ -152,7 +209,7 @@ export type DalvikExecutableClassDefinition<Instructions> = {
|
|
|
152
209
|
classData: undefined | DalvikExecutableClassData<Instructions>;
|
|
153
210
|
};
|
|
154
211
|
export type DalvikExecutable<Instructions> = {
|
|
155
|
-
classDefinitions: DalvikExecutableClassDefinition<Instructions
|
|
212
|
+
classDefinitions: Array<DalvikExecutableClassDefinition<Instructions>>;
|
|
156
213
|
link: undefined | Uint8Array;
|
|
157
214
|
};
|
|
158
215
|
export {};
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
export function dalvikExecutableAccessFlagsDefault() {
|
|
2
|
+
return {
|
|
3
|
+
public: false,
|
|
4
|
+
private: false,
|
|
5
|
+
protected: false,
|
|
6
|
+
static: false,
|
|
7
|
+
final: false,
|
|
8
|
+
synchronized: false,
|
|
9
|
+
volatile: false,
|
|
10
|
+
bridge: false,
|
|
11
|
+
transient: false,
|
|
12
|
+
varargs: false,
|
|
13
|
+
native: false,
|
|
14
|
+
interface: false,
|
|
15
|
+
abstract: false,
|
|
16
|
+
strict: false,
|
|
17
|
+
synthetic: false,
|
|
18
|
+
annotation: false,
|
|
19
|
+
enum: false,
|
|
20
|
+
constructor: false,
|
|
21
|
+
declaredSynchronized: false,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
1
24
|
export function isDalvikExecutableField(x) {
|
|
2
25
|
return (x !== null
|
|
3
26
|
&& typeof x === 'object'
|
|
@@ -8,6 +31,11 @@ export function isDalvikExecutableField(x) {
|
|
|
8
31
|
&& typeof x.type === 'string'
|
|
9
32
|
&& typeof x.name === 'string');
|
|
10
33
|
}
|
|
34
|
+
export function dalvikExecutableFieldEquals(a, b) {
|
|
35
|
+
return (a.class === b.class
|
|
36
|
+
&& a.type === b.type
|
|
37
|
+
&& a.name === b.name);
|
|
38
|
+
}
|
|
11
39
|
export function isDalvikExecutableMethod(x) {
|
|
12
40
|
return (x !== null
|
|
13
41
|
&& typeof x === 'object'
|
|
@@ -18,3 +46,11 @@ export function isDalvikExecutableMethod(x) {
|
|
|
18
46
|
&& typeof x.prototype === 'object'
|
|
19
47
|
&& typeof x.name === 'string');
|
|
20
48
|
}
|
|
49
|
+
export function dalvikExecutableMethodEquals(a, b) {
|
|
50
|
+
return (a.class === b.class
|
|
51
|
+
&& a.name === b.name
|
|
52
|
+
&& a.prototype.shorty === b.prototype.shorty
|
|
53
|
+
&& a.prototype.returnType === b.prototype.returnType
|
|
54
|
+
&& a.prototype.parameters.length === b.prototype.parameters.length
|
|
55
|
+
&& a.prototype.parameters.every((v, i) => v === b.prototype.parameters[i]));
|
|
56
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Parser } from
|
|
1
|
+
import { type Parser } from '../parser.js';
|
|
2
2
|
export declare const smaliSimpleNameParser: Parser<string, string>;
|
|
3
3
|
export declare const smaliMemberNameParser: Parser<string, string>;
|
|
4
4
|
export declare const smaliTypeDescriptorParser: Parser<string, string>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import invariant from
|
|
2
|
-
import { setParserName } from
|
|
3
|
-
import { promiseCompose } from
|
|
4
|
-
import { createSeparatedArrayParser } from
|
|
5
|
-
import { createExactSequenceParser } from
|
|
6
|
-
import { createUnionParser } from
|
|
7
|
-
import { createTupleParser } from
|
|
8
|
-
import { createArrayParser } from
|
|
1
|
+
import invariant from 'invariant';
|
|
2
|
+
import { setParserName } from '../parser.js';
|
|
3
|
+
import { promiseCompose } from '../promiseCompose.js';
|
|
4
|
+
import { createSeparatedArrayParser } from '../separatedArrayParser.js';
|
|
5
|
+
import { createExactSequenceParser } from '../exactSequenceParser.js';
|
|
6
|
+
import { createUnionParser } from '../unionParser.js';
|
|
7
|
+
import { createTupleParser } from '../tupleParser.js';
|
|
8
|
+
import { createArrayParser } from '../arrayParser.js';
|
|
9
9
|
export const smaliSimpleNameParser = async (parserContext) => {
|
|
10
10
|
const characters = [];
|
|
11
11
|
while (true) {
|
|
@@ -19,14 +19,14 @@ export const smaliSimpleNameParser = async (parserContext) => {
|
|
|
19
19
|
|| (character === '$')
|
|
20
20
|
|| (character === '-')
|
|
21
21
|
|| (character === '_')
|
|
22
|
-
|| (character === '\
|
|
23
|
-
|| (character >= '\
|
|
24
|
-
|| (character >= '\u2000' && character <= '\
|
|
22
|
+
|| (character === '\u00A0')
|
|
23
|
+
|| (character >= '\u00A1' && character <= '\u1FFF')
|
|
24
|
+
|| (character >= '\u2000' && character <= '\u200A')
|
|
25
25
|
|| (character >= '\u2010' && character <= '\u2027')
|
|
26
|
-
|| (character === '\
|
|
27
|
-
|| (character >= '\u2030' && character <= '\
|
|
28
|
-
|| (character >= '\
|
|
29
|
-
|| (character >= '\
|
|
26
|
+
|| (character === '\u202F')
|
|
27
|
+
|| (character >= '\u2030' && character <= '\uD7FF')
|
|
28
|
+
|| (character >= '\uE000' && character <= '\uFFEF')
|
|
29
|
+
|| (character >= '\uD800' && character <= '\uDBFF')) {
|
|
30
30
|
parserContext.skip(1);
|
|
31
31
|
characters.push(character);
|
|
32
32
|
continue;
|
|
@@ -43,10 +43,10 @@ export const smaliMemberNameParser = createUnionParser([
|
|
|
43
43
|
createExactSequenceParser('<'),
|
|
44
44
|
smaliSimpleNameParser,
|
|
45
45
|
createExactSequenceParser('>'),
|
|
46
|
-
]),
|
|
46
|
+
]), strings => strings.join('')),
|
|
47
47
|
]);
|
|
48
48
|
setParserName(smaliMemberNameParser, 'smaliMemberNameParser');
|
|
49
|
-
const smaliFullClassNameParser = promiseCompose(createSeparatedArrayParser(smaliMemberNameParser, createExactSequenceParser('/')),
|
|
49
|
+
const smaliFullClassNameParser = promiseCompose(createSeparatedArrayParser(smaliMemberNameParser, createExactSequenceParser('/')), pathSegments => pathSegments.join('/'));
|
|
50
50
|
setParserName(smaliFullClassNameParser, 'smaliFullClassNameParser');
|
|
51
51
|
const smaliNonArrayFieldTypeDescriptorParser = createUnionParser([
|
|
52
52
|
createExactSequenceParser('Z'),
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Parser } from
|
|
1
|
+
import { type Parser } from '../parser.js';
|
|
2
2
|
export declare const uleb128p1NumberParser: Parser<number, Uint8Array>;
|
|
3
3
|
export declare const ubyteParser: Parser<number, Uint8Array>;
|
|
4
4
|
export declare const byteParser: Parser<number, Uint8Array>;
|
|
5
5
|
export declare const shortParser: Parser<number, Uint8Array>;
|
|
6
6
|
export declare const ushortParser: Parser<number, Uint8Array>;
|
|
7
|
+
export declare const createExactUshortParser: (expectedValue: number) => Parser<number, Uint8Array>;
|
|
7
8
|
export declare const intParser: Parser<number, Uint8Array>;
|
|
8
9
|
export declare const uintParser: Parser<number, Uint8Array>;
|
|
9
10
|
export declare const longParser: Parser<bigint, Uint8Array>;
|
|
@@ -1,34 +1,39 @@
|
|
|
1
|
-
import { createElementParser } from
|
|
2
|
-
import { createFixedLengthSequenceParser } from
|
|
3
|
-
import { uleb128NumberParser } from
|
|
4
|
-
import {
|
|
1
|
+
import { createElementParser } from '../elementParser.js';
|
|
2
|
+
import { createFixedLengthSequenceParser } from '../fixedLengthSequenceParser.js';
|
|
3
|
+
import { uleb128NumberParser } from '../leb128Parser.js';
|
|
4
|
+
import { parserCreatorCompose } from '../parserCreatorCompose.js';
|
|
5
|
+
import { promiseCompose } from '../promiseCompose.js';
|
|
5
6
|
export const uleb128p1NumberParser = async (parserContext) => {
|
|
6
7
|
const value = await uleb128NumberParser(parserContext);
|
|
7
8
|
return value - 1;
|
|
8
9
|
};
|
|
9
10
|
export const ubyteParser = createElementParser();
|
|
10
|
-
export const byteParser = promiseCompose(ubyteParser,
|
|
11
|
-
export const shortParser = promiseCompose(createFixedLengthSequenceParser(2),
|
|
11
|
+
export const byteParser = promiseCompose(ubyteParser, ubyte => ubyte > 127 ? ubyte - 256 : ubyte);
|
|
12
|
+
export const shortParser = promiseCompose(createFixedLengthSequenceParser(2), uint8Array => {
|
|
12
13
|
const buffer = Buffer.from(uint8Array);
|
|
13
14
|
return buffer.readInt16LE(0);
|
|
14
15
|
});
|
|
15
|
-
export const ushortParser = promiseCompose(createFixedLengthSequenceParser(2),
|
|
16
|
+
export const ushortParser = promiseCompose(createFixedLengthSequenceParser(2), uint8Array => {
|
|
16
17
|
const buffer = Buffer.from(uint8Array);
|
|
17
18
|
return buffer.readUInt16LE(0);
|
|
18
19
|
});
|
|
19
|
-
export const
|
|
20
|
+
export const createExactUshortParser = (expectedValue) => parserCreatorCompose(() => ushortParser, ushortValue => async (parserContext) => {
|
|
21
|
+
parserContext.invariant(ushortValue === expectedValue, `Expected ushort value ${expectedValue}, got ${ushortValue}`);
|
|
22
|
+
return ushortValue;
|
|
23
|
+
})();
|
|
24
|
+
export const intParser = promiseCompose(createFixedLengthSequenceParser(4), uint8Array => {
|
|
20
25
|
const buffer = Buffer.from(uint8Array);
|
|
21
26
|
return buffer.readInt32LE(0);
|
|
22
27
|
});
|
|
23
|
-
export const uintParser = promiseCompose(createFixedLengthSequenceParser(4),
|
|
28
|
+
export const uintParser = promiseCompose(createFixedLengthSequenceParser(4), uint8Array => {
|
|
24
29
|
const buffer = Buffer.from(uint8Array);
|
|
25
30
|
return buffer.readUInt32LE(0);
|
|
26
31
|
});
|
|
27
|
-
export const longParser = promiseCompose(createFixedLengthSequenceParser(8),
|
|
32
|
+
export const longParser = promiseCompose(createFixedLengthSequenceParser(8), uint8Array => {
|
|
28
33
|
const buffer = Buffer.from(uint8Array);
|
|
29
34
|
return buffer.readBigInt64LE(0);
|
|
30
35
|
});
|
|
31
|
-
export const ulongParser = promiseCompose(createFixedLengthSequenceParser(8),
|
|
36
|
+
export const ulongParser = promiseCompose(createFixedLengthSequenceParser(8), uint8Array => {
|
|
32
37
|
const buffer = Buffer.from(uint8Array);
|
|
33
38
|
return buffer.readBigUInt64LE(0);
|
|
34
39
|
});
|
|
@@ -1,90 +1,106 @@
|
|
|
1
|
-
import { Newtype } from 'newtype-ts';
|
|
2
|
-
export
|
|
1
|
+
import { type Newtype } from 'newtype-ts';
|
|
2
|
+
export type IndexIntoStringIds = {} & Newtype<{
|
|
3
3
|
readonly IndexIntoStringIds: unique symbol;
|
|
4
|
-
}, number
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
}, number>;
|
|
5
|
+
export declare const isoIndexIntoStringIds: import("monocle-ts").Iso<Newtype<{
|
|
6
|
+
readonly IndexIntoStringIds: unique symbol;
|
|
7
|
+
}, number>, number>;
|
|
8
|
+
export type IndexIntoTypeIds = {} & Newtype<{
|
|
9
|
+
readonly IndexIntoTypeIds: unique symbol;
|
|
10
|
+
}, number>;
|
|
11
|
+
export declare const isoIndexIntoTypeIds: import("monocle-ts").Iso<Newtype<{
|
|
8
12
|
readonly IndexIntoTypeIds: unique symbol;
|
|
9
|
-
}, number
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
}, number>, number>;
|
|
14
|
+
export type IndexIntoPrototypeIds = {} & Newtype<{
|
|
15
|
+
readonly IndexIntoPrototypeIds: unique symbol;
|
|
16
|
+
}, number>;
|
|
17
|
+
export declare const isoIndexIntoPrototypeIds: import("monocle-ts").Iso<Newtype<{
|
|
13
18
|
readonly IndexIntoPrototypeIds: unique symbol;
|
|
14
|
-
}, number
|
|
15
|
-
}
|
|
16
|
-
export declare const isoIndexIntoPrototypeIds: import("monocle-ts").Iso<IndexIntoPrototypeIds, number>;
|
|
17
|
-
export interface IndexIntoFieldIds extends Newtype<{
|
|
19
|
+
}, number>, number>;
|
|
20
|
+
export type IndexIntoFieldIds = {} & Newtype<{
|
|
18
21
|
readonly IndexIntoFieldIds: unique symbol;
|
|
19
|
-
}, number
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
}, number>;
|
|
23
|
+
export declare const isoIndexIntoFieldIds: import("monocle-ts").Iso<Newtype<{
|
|
24
|
+
readonly IndexIntoFieldIds: unique symbol;
|
|
25
|
+
}, number>, number>;
|
|
26
|
+
export type IndexIntoMethodIds = {} & Newtype<{
|
|
27
|
+
readonly IndexIntoMethodIds: unique symbol;
|
|
28
|
+
}, number>;
|
|
29
|
+
export declare const isoIndexIntoMethodIds: import("monocle-ts").Iso<Newtype<{
|
|
23
30
|
readonly IndexIntoMethodIds: unique symbol;
|
|
24
|
-
}, number
|
|
25
|
-
}
|
|
26
|
-
export declare const isoIndexIntoMethodIds: import("monocle-ts").Iso<IndexIntoMethodIds, number>;
|
|
27
|
-
export interface OffsetToStringDataItem extends Newtype<{
|
|
31
|
+
}, number>, number>;
|
|
32
|
+
export type OffsetToStringDataItem = {} & Newtype<{
|
|
28
33
|
readonly OffsetToStringDataItem: unique symbol;
|
|
29
|
-
}, number
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
}, number>;
|
|
35
|
+
export declare const isoOffsetToStringDataItem: import("monocle-ts").Iso<Newtype<{
|
|
36
|
+
readonly OffsetToStringDataItem: unique symbol;
|
|
37
|
+
}, number>, number>;
|
|
38
|
+
export type OffsetToTypeList = {} & Newtype<{
|
|
39
|
+
readonly OffsetToTypeList: unique symbol;
|
|
40
|
+
}, number>;
|
|
41
|
+
export declare const isoOffsetToTypeList: import("monocle-ts").Iso<Newtype<{
|
|
33
42
|
readonly OffsetToTypeList: unique symbol;
|
|
34
|
-
}, number
|
|
35
|
-
}
|
|
36
|
-
export declare const isoOffsetToTypeList: import("monocle-ts").Iso<OffsetToTypeList, number>;
|
|
37
|
-
export interface OffsetToAnnotationsDirectoryItem extends Newtype<{
|
|
43
|
+
}, number>, number>;
|
|
44
|
+
export type OffsetToAnnotationsDirectoryItem = {} & Newtype<{
|
|
38
45
|
readonly OffsetToAnnotationsDirectoryItem: unique symbol;
|
|
39
|
-
}, number
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
}, number>;
|
|
47
|
+
export declare const isoOffsetToAnnotationsDirectoryItem: import("monocle-ts").Iso<Newtype<{
|
|
48
|
+
readonly OffsetToAnnotationsDirectoryItem: unique symbol;
|
|
49
|
+
}, number>, number>;
|
|
50
|
+
export type OffsetToAnnotationSetItem = {} & Newtype<{
|
|
51
|
+
readonly OffsetToAnnotationSetItem: unique symbol;
|
|
52
|
+
}, number>;
|
|
53
|
+
export declare const isoOffsetToAnnotationSetItem: import("monocle-ts").Iso<Newtype<{
|
|
43
54
|
readonly OffsetToAnnotationSetItem: unique symbol;
|
|
44
|
-
}, number
|
|
45
|
-
}
|
|
46
|
-
export declare const isoOffsetToAnnotationSetItem: import("monocle-ts").Iso<OffsetToAnnotationSetItem, number>;
|
|
47
|
-
export interface OffsetToAnnotationSetRefListItem extends Newtype<{
|
|
55
|
+
}, number>, number>;
|
|
56
|
+
export type OffsetToAnnotationSetRefListItem = {} & Newtype<{
|
|
48
57
|
readonly OffsetToAnnotationSetRefListItem: unique symbol;
|
|
49
|
-
}, number
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
58
|
+
}, number>;
|
|
59
|
+
export declare const isoOffsetToAnnotationSetRefListItem: import("monocle-ts").Iso<Newtype<{
|
|
60
|
+
readonly OffsetToAnnotationSetRefListItem: unique symbol;
|
|
61
|
+
}, number>, number>;
|
|
62
|
+
export type OffsetToClassDataItem = {} & Newtype<{
|
|
63
|
+
readonly OffsetToClassDataItem: unique symbol;
|
|
64
|
+
}, number>;
|
|
65
|
+
export declare const isoOffsetToClassDataItem: import("monocle-ts").Iso<Newtype<{
|
|
53
66
|
readonly OffsetToClassDataItem: unique symbol;
|
|
54
|
-
}, number
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
}, number>, number>;
|
|
68
|
+
export type OffsetToEncodedArrayItem = {} & Newtype<{
|
|
69
|
+
readonly OffsetToEncodedArrayItem: unique symbol;
|
|
70
|
+
}, number>;
|
|
71
|
+
export declare const isoOffsetToEncodedArrayItem: import("monocle-ts").Iso<Newtype<{
|
|
58
72
|
readonly OffsetToEncodedArrayItem: unique symbol;
|
|
59
|
-
}, number
|
|
60
|
-
}
|
|
61
|
-
export declare const isoOffsetToEncodedArrayItem: import("monocle-ts").Iso<OffsetToEncodedArrayItem, number>;
|
|
62
|
-
export interface OffsetToCodeItem extends Newtype<{
|
|
73
|
+
}, number>, number>;
|
|
74
|
+
export type OffsetToCodeItem = {} & Newtype<{
|
|
63
75
|
readonly OffsetToCodeItem: unique symbol;
|
|
64
|
-
}, number
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
76
|
+
}, number>;
|
|
77
|
+
export declare const isoOffsetToCodeItem: import("monocle-ts").Iso<Newtype<{
|
|
78
|
+
readonly OffsetToCodeItem: unique symbol;
|
|
79
|
+
}, number>, number>;
|
|
80
|
+
export type OffsetToDebugInfoItem = {} & Newtype<{
|
|
81
|
+
readonly OffsetToDebugInfoItem: unique symbol;
|
|
82
|
+
}, number>;
|
|
83
|
+
export declare const isoOffsetToDebugInfoItem: import("monocle-ts").Iso<Newtype<{
|
|
68
84
|
readonly OffsetToDebugInfoItem: unique symbol;
|
|
69
|
-
}, number
|
|
70
|
-
}
|
|
71
|
-
export declare const isoOffsetToDebugInfoItem: import("monocle-ts").Iso<OffsetToDebugInfoItem, number>;
|
|
72
|
-
export interface OffsetToAnnotationItem extends Newtype<{
|
|
85
|
+
}, number>, number>;
|
|
86
|
+
export type OffsetToAnnotationItem = {} & Newtype<{
|
|
73
87
|
readonly OffsetToAnnotationItem: unique symbol;
|
|
74
|
-
}, number
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
88
|
+
}, number>;
|
|
89
|
+
export declare const isoOffsetToAnnotationItem: import("monocle-ts").Iso<Newtype<{
|
|
90
|
+
readonly OffsetToAnnotationItem: unique symbol;
|
|
91
|
+
}, number>, number>;
|
|
92
|
+
export type OffsetFromEncodedCatchHandlerListToEncodedCatchHandler = {} & Newtype<{
|
|
78
93
|
readonly OffsetFromEncodedCatchHandlerListToEncodedCatchHandler: unique symbol;
|
|
79
|
-
}, number
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}, Array<ValueType>> {
|
|
94
|
+
}, number>;
|
|
95
|
+
export declare const isoOffsetFromEncodedCatchHandlerListToEncodedCatchHandler: import("monocle-ts").Iso<Newtype<{
|
|
96
|
+
readonly OffsetFromEncodedCatchHandlerListToEncodedCatchHandler: unique symbol;
|
|
97
|
+
}, number>, number>;
|
|
98
|
+
export type TypedNumberArray<IndexType, ValueType> = {
|
|
85
99
|
get length(): number;
|
|
86
100
|
at(index: IndexType): undefined | ValueType;
|
|
87
101
|
map<NewValueType>(fn: (value: ValueType, index: IndexType) => NewValueType): TypedNumberArray<IndexType, NewValueType>;
|
|
88
102
|
[Symbol.iterator](): IterableIterator<ValueType>;
|
|
89
|
-
}
|
|
103
|
+
} & Newtype<{
|
|
104
|
+
readonly TypedNumberArray: unique symbol;
|
|
105
|
+
}, ValueType[]>;
|
|
90
106
|
export declare const getIsoTypedNumberArray: <IndexType, ValueType>() => import("monocle-ts").Iso<TypedNumberArray<IndexType, ValueType>, ValueType[]>;
|
|
@@ -15,5 +15,4 @@ export const isoOffsetToCodeItem = iso();
|
|
|
15
15
|
export const isoOffsetToDebugInfoItem = iso();
|
|
16
16
|
export const isoOffsetToAnnotationItem = iso();
|
|
17
17
|
export const isoOffsetFromEncodedCatchHandlerListToEncodedCatchHandler = iso();
|
|
18
|
-
;
|
|
19
18
|
export const getIsoTypedNumberArray = () => iso();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Parser } from './parser.js';
|
|
2
|
-
import { DalvikBytecode } from './dalvikBytecodeParser.js';
|
|
3
|
-
import { DalvikExecutable } from './dalvikExecutable.js';
|
|
2
|
+
import { type DalvikBytecode } from './dalvikBytecodeParser.js';
|
|
3
|
+
import { type DalvikExecutable } from './dalvikExecutable.js';
|
|
4
4
|
export declare const dalvikExecutableParser: Parser<DalvikExecutable<DalvikBytecode>, Uint8Array>;
|
|
5
5
|
export declare const dalvikExecutableWithRawInstructionsParser: Parser<DalvikExecutable<Uint8Array>, Uint8Array>;
|