object-input-stream 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 +303 -0
- package/dist/ast.d.ts +278 -0
- package/dist/ast.d.ts.map +1 -0
- package/dist/ast.js +3 -0
- package/dist/ast.js.map +1 -0
- package/dist/classes.d.ts +86 -0
- package/dist/classes.d.ts.map +1 -0
- package/dist/classes.js +193 -0
- package/dist/classes.js.map +1 -0
- package/dist/example.d.ts +2 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +36 -0
- package/dist/example.js.map +1 -0
- package/dist/exceptions.d.ts +66 -0
- package/dist/exceptions.d.ts.map +1 -0
- package/dist/exceptions.js +154 -0
- package/dist/exceptions.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +12 -0
- package/dist/internal.js.map +1 -0
- package/dist/object-input-stream.d.ts +226 -0
- package/dist/object-input-stream.d.ts.map +1 -0
- package/dist/object-input-stream.js +1022 -0
- package/dist/object-input-stream.js.map +1 -0
- package/dist/ois-ast.d.ts +21 -0
- package/dist/ois-ast.d.ts.map +1 -0
- package/dist/ois-ast.js +229 -0
- package/dist/ois-ast.js.map +1 -0
- package/package.json +39 -0
- package/src/ast.ts +260 -0
- package/src/classes.ts +175 -0
- package/src/exceptions.ts +84 -0
- package/src/index.ts +19 -0
- package/src/internal.ts +10 -0
- package/src/object-input-stream.ts +1187 -0
- package/src/ois-ast.ts +147 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-input-stream.js","sourceRoot":"","sources":["../src/object-input-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import ObjectInputStream, { type OisOptions } from ".";
|
|
2
|
+
import type * as ast from './ast';
|
|
3
|
+
export declare class ObjectInputStreamAST extends ObjectInputStream {
|
|
4
|
+
protected ast: ast.Ast;
|
|
5
|
+
protected nodeStack: ast.Node[];
|
|
6
|
+
constructor(data: Uint8Array, options?: OisOptions);
|
|
7
|
+
protected get curNode(): ast.Node;
|
|
8
|
+
getAST(): ast.Ast;
|
|
9
|
+
readBoolean(): boolean;
|
|
10
|
+
readByte(): number;
|
|
11
|
+
readUnsignedByte(): number;
|
|
12
|
+
readChar(): string;
|
|
13
|
+
readShort(): number;
|
|
14
|
+
readUnsignedShort(): number;
|
|
15
|
+
readInt(): number;
|
|
16
|
+
readLong(): bigint;
|
|
17
|
+
readFloat(): number;
|
|
18
|
+
readDouble(): number;
|
|
19
|
+
protected readTC(): number;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ois-ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ois-ast.d.ts","sourceRoot":"","sources":["../src/ois-ast.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,GAAG,CAAC;AACvD,OAAO,KAAK,KAAK,GAAG,MAAM,OAAO,CAAC;AAIlC,qBAAa,oBAAqB,SAAQ,iBAAiB;IACvD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAA;IACtB,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;gBAEpB,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU;IAelD,SAAS,KAAK,OAAO,aAEpB;IAED,MAAM,IAAI,GAAG,CAAC,GAAG;IAKjB,WAAW,IAAI,OAAO;IAEtB,QAAQ,IAAI,MAAM;IAElB,gBAAgB,IAAI,MAAM;IAE1B,QAAQ,IAAI,MAAM;IAElB,SAAS,IAAI,MAAM;IAEnB,iBAAiB,IAAI,MAAM;IAE3B,OAAO,IAAI,MAAM;IAEjB,QAAQ,IAAI,MAAM;IAElB,SAAS,IAAI,MAAM;IAEnB,UAAU,IAAI,MAAM;IAGpB,SAAS,CAAC,MAAM,IAAI,MAAM;CAC7B"}
|
package/dist/ois-ast.js
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
19
|
+
var useValue = arguments.length > 2;
|
|
20
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
21
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
22
|
+
}
|
|
23
|
+
return useValue ? value : void 0;
|
|
24
|
+
};
|
|
25
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
26
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
27
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
28
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
29
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
30
|
+
var _, done = false;
|
|
31
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
32
|
+
var context = {};
|
|
33
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
34
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
35
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
36
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
37
|
+
if (kind === "accessor") {
|
|
38
|
+
if (result === void 0) continue;
|
|
39
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
40
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
41
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
42
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
43
|
+
}
|
|
44
|
+
else if (_ = accept(result)) {
|
|
45
|
+
if (kind === "field") initializers.unshift(_);
|
|
46
|
+
else descriptor[key] = _;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
50
|
+
done = true;
|
|
51
|
+
};
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
69
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
70
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
71
|
+
};
|
|
72
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
73
|
+
exports.ObjectInputStreamAST = void 0;
|
|
74
|
+
const _1 = __importDefault(require("."));
|
|
75
|
+
const exc = __importStar(require("./exceptions"));
|
|
76
|
+
let ObjectInputStreamAST = (() => {
|
|
77
|
+
var _a;
|
|
78
|
+
let _classSuper = _1.default;
|
|
79
|
+
let _instanceExtraInitializers = [];
|
|
80
|
+
let _readBoolean_decorators;
|
|
81
|
+
let _readByte_decorators;
|
|
82
|
+
let _readUnsignedByte_decorators;
|
|
83
|
+
let _readChar_decorators;
|
|
84
|
+
let _readShort_decorators;
|
|
85
|
+
let _readUnsignedShort_decorators;
|
|
86
|
+
let _readInt_decorators;
|
|
87
|
+
let _readLong_decorators;
|
|
88
|
+
let _readFloat_decorators;
|
|
89
|
+
let _readDouble_decorators;
|
|
90
|
+
let _readTC_decorators;
|
|
91
|
+
return _a = class ObjectInputStreamAST extends _classSuper {
|
|
92
|
+
constructor(data, options) {
|
|
93
|
+
super(data, options);
|
|
94
|
+
this.ast = __runInitializers(this, _instanceExtraInitializers);
|
|
95
|
+
this.ast = { data, root: {
|
|
96
|
+
type: "root",
|
|
97
|
+
span: { start: 0, end: this.data.length },
|
|
98
|
+
children: [
|
|
99
|
+
{ type: "magic", value: this.STREAM_MAGIC, span: { start: 0, end: 2 }, children: null },
|
|
100
|
+
{ type: "version", value: this.STREAM_VERSION, span: { start: 2, end: 4 }, children: null },
|
|
101
|
+
{ type: "contents", span: { start: 4, end: this.data.length }, children: [] },
|
|
102
|
+
]
|
|
103
|
+
} };
|
|
104
|
+
this.nodeStack = [this.ast.root, this.ast.root.children[2]];
|
|
105
|
+
}
|
|
106
|
+
get curNode() {
|
|
107
|
+
return this.nodeStack[this.nodeStack.length - 1];
|
|
108
|
+
}
|
|
109
|
+
getAST() {
|
|
110
|
+
return this.ast;
|
|
111
|
+
}
|
|
112
|
+
readBoolean() { return super.readBoolean(); }
|
|
113
|
+
readByte() { return super.readByte(); }
|
|
114
|
+
readUnsignedByte() { return super.readUnsignedByte(); }
|
|
115
|
+
readChar() { return super.readChar(); }
|
|
116
|
+
readShort() { return super.readShort(); }
|
|
117
|
+
readUnsignedShort() { return super.readUnsignedShort(); }
|
|
118
|
+
readInt() { return super.readInt(); }
|
|
119
|
+
readLong() { return super.readLong(); }
|
|
120
|
+
readFloat() { return super.readFloat(); }
|
|
121
|
+
readDouble() { return super.readDouble(); }
|
|
122
|
+
readTC() { return super.readTC(); }
|
|
123
|
+
},
|
|
124
|
+
(() => {
|
|
125
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
126
|
+
_readBoolean_decorators = [primitiveAST("boolean")];
|
|
127
|
+
_readByte_decorators = [primitiveAST("byte")];
|
|
128
|
+
_readUnsignedByte_decorators = [primitiveAST("unsigned-byte")];
|
|
129
|
+
_readChar_decorators = [primitiveAST("char")];
|
|
130
|
+
_readShort_decorators = [primitiveAST("short")];
|
|
131
|
+
_readUnsignedShort_decorators = [primitiveAST("unsigned-short")];
|
|
132
|
+
_readInt_decorators = [primitiveAST("int")];
|
|
133
|
+
_readLong_decorators = [primitiveAST("long")];
|
|
134
|
+
_readFloat_decorators = [primitiveAST("float")];
|
|
135
|
+
_readDouble_decorators = [primitiveAST("double")];
|
|
136
|
+
_readTC_decorators = [nodeAST("tc")];
|
|
137
|
+
__esDecorate(_a, null, _readBoolean_decorators, { kind: "method", name: "readBoolean", static: false, private: false, access: { has: obj => "readBoolean" in obj, get: obj => obj.readBoolean }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
138
|
+
__esDecorate(_a, null, _readByte_decorators, { kind: "method", name: "readByte", static: false, private: false, access: { has: obj => "readByte" in obj, get: obj => obj.readByte }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
139
|
+
__esDecorate(_a, null, _readUnsignedByte_decorators, { kind: "method", name: "readUnsignedByte", static: false, private: false, access: { has: obj => "readUnsignedByte" in obj, get: obj => obj.readUnsignedByte }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
140
|
+
__esDecorate(_a, null, _readChar_decorators, { kind: "method", name: "readChar", static: false, private: false, access: { has: obj => "readChar" in obj, get: obj => obj.readChar }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
141
|
+
__esDecorate(_a, null, _readShort_decorators, { kind: "method", name: "readShort", static: false, private: false, access: { has: obj => "readShort" in obj, get: obj => obj.readShort }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
142
|
+
__esDecorate(_a, null, _readUnsignedShort_decorators, { kind: "method", name: "readUnsignedShort", static: false, private: false, access: { has: obj => "readUnsignedShort" in obj, get: obj => obj.readUnsignedShort }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
143
|
+
__esDecorate(_a, null, _readInt_decorators, { kind: "method", name: "readInt", static: false, private: false, access: { has: obj => "readInt" in obj, get: obj => obj.readInt }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
144
|
+
__esDecorate(_a, null, _readLong_decorators, { kind: "method", name: "readLong", static: false, private: false, access: { has: obj => "readLong" in obj, get: obj => obj.readLong }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
145
|
+
__esDecorate(_a, null, _readFloat_decorators, { kind: "method", name: "readFloat", static: false, private: false, access: { has: obj => "readFloat" in obj, get: obj => obj.readFloat }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
146
|
+
__esDecorate(_a, null, _readDouble_decorators, { kind: "method", name: "readDouble", static: false, private: false, access: { has: obj => "readDouble" in obj, get: obj => obj.readDouble }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
147
|
+
__esDecorate(_a, null, _readTC_decorators, { kind: "method", name: "readTC", static: false, private: false, access: { has: obj => "readTC" in obj, get: obj => obj.readTC }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
148
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
149
|
+
})(),
|
|
150
|
+
_a;
|
|
151
|
+
})();
|
|
152
|
+
exports.ObjectInputStreamAST = ObjectInputStreamAST;
|
|
153
|
+
function nodeAST(type) {
|
|
154
|
+
return (fun) => {
|
|
155
|
+
return function decorated() {
|
|
156
|
+
if (!(this instanceof ObjectInputStreamAST))
|
|
157
|
+
throw new exc.InternalError();
|
|
158
|
+
const start = this.offset;
|
|
159
|
+
const result = fun.apply(this);
|
|
160
|
+
const end = this.offset;
|
|
161
|
+
if (this.nodeStack === undefined)
|
|
162
|
+
return result;
|
|
163
|
+
const span = { start, end };
|
|
164
|
+
const node = {
|
|
165
|
+
type: type,
|
|
166
|
+
span: span,
|
|
167
|
+
children: null,
|
|
168
|
+
};
|
|
169
|
+
if (this.curNode.children === null)
|
|
170
|
+
throw new exc.InternalError();
|
|
171
|
+
// @ts-expect-error
|
|
172
|
+
this.curNode.children.push(node);
|
|
173
|
+
return result;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function primitiveAST(dataType) {
|
|
178
|
+
return (fun) => {
|
|
179
|
+
return function decorated() {
|
|
180
|
+
if (!(this instanceof ObjectInputStreamAST))
|
|
181
|
+
throw new exc.InternalError();
|
|
182
|
+
const start = this.offset;
|
|
183
|
+
const result = fun.apply(this);
|
|
184
|
+
const end = this.offset;
|
|
185
|
+
if (this.nodeStack === undefined)
|
|
186
|
+
return result;
|
|
187
|
+
const span = { start, end };
|
|
188
|
+
const node = {
|
|
189
|
+
type: "primitive",
|
|
190
|
+
// @ts-expect-error
|
|
191
|
+
dataType: dataType,
|
|
192
|
+
value: result,
|
|
193
|
+
span: span,
|
|
194
|
+
children: null,
|
|
195
|
+
};
|
|
196
|
+
if (this.curNode.type === "blockdata") {
|
|
197
|
+
const sequence = this.nodeStack[this.nodeStack.length - 2];
|
|
198
|
+
if (sequence.type !== "blockdata-sequence")
|
|
199
|
+
throw new exc.InternalError();
|
|
200
|
+
sequence.values.push(node);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
if (this.curNode.children === null)
|
|
204
|
+
throw new exc.InternalError();
|
|
205
|
+
// @ts-expect-error
|
|
206
|
+
this.curNode.children.push(node);
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
};
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
const ois_ast = new ObjectInputStreamAST(new Uint8Array([
|
|
213
|
+
172, 237, 0, 5, 119, 30, 69, 39, 20,
|
|
214
|
+
78, 206, 109, 85, 58, 3, 21, 127, 242,
|
|
215
|
+
227, 49, 35, 0, 0, 113, 52, 105, 0,
|
|
216
|
+
0, 0, 0, 0, 0, 0, 207, 199, 1
|
|
217
|
+
]));
|
|
218
|
+
ois_ast.readByte();
|
|
219
|
+
ois_ast.readChar();
|
|
220
|
+
ois_ast.readDouble();
|
|
221
|
+
ois_ast.readFloat();
|
|
222
|
+
ois_ast.readInt();
|
|
223
|
+
ois_ast.readLong();
|
|
224
|
+
ois_ast.readShort();
|
|
225
|
+
ois_ast.readBoolean();
|
|
226
|
+
const myAst = ois_ast.getAST();
|
|
227
|
+
myAst.data = [...myAst.data];
|
|
228
|
+
console.log(JSON.stringify(myAst, (key, value) => typeof value === "bigint" ? '' + value : value, 2));
|
|
229
|
+
//# sourceMappingURL=ois-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ois-ast.js","sourceRoot":"","sources":["../src/ois-ast.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "object-input-stream",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "ObjectInputStream for JavaScript. Read Java serialized objects in Node and the browser.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.js",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"pretest": "cross-env MAVEN_OPTS='--add-opens java.base/java.io=ALL-UNNAMED' mvn -f ./tests/generatetests/pom.xml clean compile exec:java -Dexec.mainClass=com.o11k.GenerateTests",
|
|
9
|
+
"test": "jest",
|
|
10
|
+
"build": "tsc"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/o11k/object-input-stream-js.git"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"java",
|
|
18
|
+
"serialize",
|
|
19
|
+
"deserialize"
|
|
20
|
+
],
|
|
21
|
+
"author": "o11k",
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"src"
|
|
26
|
+
],
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/o11k/object-input-stream-js/issues"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/o11k/object-input-stream-js#readme",
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/jest": "^30.0.0",
|
|
33
|
+
"@types/node": "^24.10.2",
|
|
34
|
+
"cross-env": "^10.1.0",
|
|
35
|
+
"jest": "^30.2.0",
|
|
36
|
+
"ts-jest": "^29.4.6",
|
|
37
|
+
"typescript": "^5.9.3"
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/ast.ts
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import type ObjectInputStream from '.';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// ========== CONTRACT ==========
|
|
5
|
+
//
|
|
6
|
+
// - If a node has children, their spans add up exactly to the parent's span, and do not overlap
|
|
7
|
+
// - Handles are consecutive, epoch increments on "reset" or "exception"
|
|
8
|
+
// - Types match
|
|
9
|
+
// - ClassDescNode > PrevObjectNode is a ClassDesc
|
|
10
|
+
// - NewEnumNode > ObjectNode is a String
|
|
11
|
+
// - ObjectDescNode > ObjectNode is a String
|
|
12
|
+
// - ExceptionNode > ObjectNode is Throwable
|
|
13
|
+
// - "values" match their respective "fields" / array classData
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
export interface Ast {
|
|
17
|
+
data: Uint8Array
|
|
18
|
+
root: RootNode
|
|
19
|
+
}
|
|
20
|
+
export default Ast
|
|
21
|
+
|
|
22
|
+
export type Node =
|
|
23
|
+
RootNode | MagicNode | VersionNode | ContentsNode
|
|
24
|
+
| BlockDataSequenceNode | BlockDataNode
|
|
25
|
+
| PrimitiveNode | UtfNode | LongUtfNode | UtfBodyNode | BytesNode | SkippedNode
|
|
26
|
+
| ObjectNode | TCNode | ClassDescInfoNode | ProxyClassDescInfoNode
|
|
27
|
+
|
|
28
|
+
export interface RootNode extends BaseNode<[MagicNode, VersionNode, ContentsNode]> {
|
|
29
|
+
type: "root"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface MagicNode extends BaseNode<null> {type: "magic", value: typeof ObjectInputStream.STREAM_MAGIC}
|
|
33
|
+
export interface VersionNode extends BaseNode<null> {type: "version", value: typeof ObjectInputStream.STREAM_VERSION}
|
|
34
|
+
|
|
35
|
+
export interface ContentsNode extends BaseNode<(BlockDataSequenceNode | ObjectNode)[]> {
|
|
36
|
+
type: "contents"
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface BaseNode<C extends BaseNode<any>[] | null> {
|
|
40
|
+
type: string
|
|
41
|
+
span: {start: number, end: number}
|
|
42
|
+
children: C
|
|
43
|
+
jsValue?: any
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
// ========== Primitives ==========
|
|
48
|
+
|
|
49
|
+
export type PrimitiveNode = ByteNode | UnsignedByteNode | ShortNode | UnsignedShortNode | IntNode | FloatNode | DoubleNode | CharNode | BooleanNode | LongNode
|
|
50
|
+
|
|
51
|
+
interface BasePrimitiveNode extends BaseNode<null> {
|
|
52
|
+
type: "primitive"
|
|
53
|
+
dataType: string
|
|
54
|
+
value: number | string | boolean | bigint
|
|
55
|
+
}
|
|
56
|
+
interface NumberNode extends BasePrimitiveNode {
|
|
57
|
+
dataType: string
|
|
58
|
+
value: number
|
|
59
|
+
}
|
|
60
|
+
export type ByteNode = NumberNode & {dataType: "byte"}
|
|
61
|
+
export type UnsignedByteNode = NumberNode & {dataType: "unsigned-byte"}
|
|
62
|
+
export type ShortNode = NumberNode & {dataType: "short"}
|
|
63
|
+
export type UnsignedShortNode = NumberNode & {dataType: "unsigned-short"}
|
|
64
|
+
export type IntNode = NumberNode & {dataType: "int"}
|
|
65
|
+
export type FloatNode = NumberNode & {dataType: "float"}
|
|
66
|
+
export type DoubleNode = NumberNode & {dataType: "double"}
|
|
67
|
+
|
|
68
|
+
export interface CharNode extends BasePrimitiveNode {
|
|
69
|
+
dataType: "char"
|
|
70
|
+
value: string
|
|
71
|
+
}
|
|
72
|
+
export interface BooleanNode extends BasePrimitiveNode {
|
|
73
|
+
dataType: "boolean"
|
|
74
|
+
value: boolean
|
|
75
|
+
}
|
|
76
|
+
export interface LongNode extends BasePrimitiveNode {
|
|
77
|
+
dataType: "long"
|
|
78
|
+
value: bigint
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface UtfNode extends BaseNode<[UnsignedShortNode, UtfBodyNode]> {
|
|
82
|
+
type: "utf"
|
|
83
|
+
}
|
|
84
|
+
export interface LongUtfNode extends BaseNode<[LongNode, UtfBodyNode]> {
|
|
85
|
+
type: "long-utf"
|
|
86
|
+
}
|
|
87
|
+
export interface UtfBodyNode extends BaseNode<null> {
|
|
88
|
+
type: "utf-body"
|
|
89
|
+
value: string
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface BytesNode extends BaseNode<null> {
|
|
93
|
+
type: "bytes"
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface SkippedNode extends BaseNode<null> {
|
|
97
|
+
type: "skipped"
|
|
98
|
+
reason: string
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
// ========== Block Data ==========
|
|
103
|
+
|
|
104
|
+
export interface BlockDataSequenceNode extends BaseNode<BlockDataNode[]> {
|
|
105
|
+
type: "blockdata-sequence"
|
|
106
|
+
values: (PrimitiveNode | UtfNode | SkippedNode)[]
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface BlockDataNode extends BaseNode<
|
|
110
|
+
[TC_BLOCKDATA_Node, UnsignedByteNode, BytesNode] |
|
|
111
|
+
[TC_BLOCKDATALONG_Node, LongNode, BytesNode]
|
|
112
|
+
> {
|
|
113
|
+
type: "blockdata"
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
// ========== Objects ==========
|
|
118
|
+
|
|
119
|
+
export type ObjectNode = NewObjectNode | NewClassNode | NewArrayNode | NewStringNode | NewEnumNode | NewClassDescNode | PrevObjectNode | NullNode | ExceptionNode | ResetNode
|
|
120
|
+
export type ClassDescNode = NewClassDescNode | NullNode | PrevObjectNode
|
|
121
|
+
|
|
122
|
+
interface BaseObjectNode<C extends [TCNode, ...BaseNode<any>[]]> extends BaseNode<C> {
|
|
123
|
+
type: "object"
|
|
124
|
+
objectType: string
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface NewObjectNode extends BaseObjectNode<
|
|
128
|
+
[TC_OBJECT_Node, ClassDescNode, ...ClassDataNode[]]
|
|
129
|
+
> {
|
|
130
|
+
objectType: "new-object"
|
|
131
|
+
handle: Handle
|
|
132
|
+
}
|
|
133
|
+
export interface NewClassNode extends BaseObjectNode<[TC_CLASS_Node, ClassDescNode]> {
|
|
134
|
+
objectType: "new-class"
|
|
135
|
+
handle: Handle
|
|
136
|
+
}
|
|
137
|
+
export interface NewArrayNode extends BaseObjectNode<[TC_ARRAY_Node, ClassDescNode, IntNode, ValuesNode]> {
|
|
138
|
+
objectType: "new-array"
|
|
139
|
+
handle: Handle
|
|
140
|
+
}
|
|
141
|
+
export interface NewStringNode extends BaseObjectNode<
|
|
142
|
+
[TC_STRING_Node, UtfNode] |
|
|
143
|
+
[TC_LONGSTRING_Node, LongUtfNode]
|
|
144
|
+
> {
|
|
145
|
+
objectType: "new-string"
|
|
146
|
+
handle: Handle
|
|
147
|
+
}
|
|
148
|
+
export interface NewEnumNode extends BaseObjectNode<[TC_ENUM_Node, ClassDescNode, ObjectNode]> {
|
|
149
|
+
objectType: "new-enum"
|
|
150
|
+
handle: Handle
|
|
151
|
+
}
|
|
152
|
+
export interface NewClassDescNode extends BaseObjectNode<
|
|
153
|
+
[TC_CLASSDESC_Node, UtfNode, LongNode, ClassDescInfoNode] |
|
|
154
|
+
[TC_PROXYCLASSDESC_Node, ProxyClassDescInfoNode]
|
|
155
|
+
> {
|
|
156
|
+
objectType: "new-class-desc"
|
|
157
|
+
handle: Handle
|
|
158
|
+
}
|
|
159
|
+
export interface PrevObjectNode extends BaseObjectNode<[TC_REFERENCE_Node, IntNode]> {
|
|
160
|
+
objectType: "prev-object"
|
|
161
|
+
value: Handle
|
|
162
|
+
}
|
|
163
|
+
export interface NullNode extends BaseObjectNode<[TC_NULL_Node]> {
|
|
164
|
+
objectType: "null"
|
|
165
|
+
}
|
|
166
|
+
export interface ExceptionNode extends BaseObjectNode<[TC_EXCEPTION_Node, ObjectNode]> {
|
|
167
|
+
objectType: "exception"
|
|
168
|
+
exceptionEpoch: number
|
|
169
|
+
newEpoch: number
|
|
170
|
+
}
|
|
171
|
+
export interface ResetNode extends BaseObjectNode<[TC_RESET_Node]> {
|
|
172
|
+
objectType: "reset"
|
|
173
|
+
newEpoch: number
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export interface ClassDescInfoNode extends BaseNode<[ByteNode, FieldsNode, ContentsNode, TC_ENDBLOCKDATA_Node, ClassDescNode]> {
|
|
177
|
+
type: "class-desc-info"
|
|
178
|
+
}
|
|
179
|
+
export interface ProxyClassDescInfoNode extends BaseNode<[IntNode, ...UtfNode[], ContentsNode, TC_ENDBLOCKDATA_Node, ClassDescNode]> {
|
|
180
|
+
type: "proxy-class-desc-info"
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
// ========== Fields & Values ==========
|
|
185
|
+
|
|
186
|
+
export type ClassDataNode = NoWrClassNode | WrClassNode | ExternalClassNode | OldExternalClassNode
|
|
187
|
+
|
|
188
|
+
interface BaseClassDataNode<C extends BaseNode<any>[] | null> extends BaseNode<C> {
|
|
189
|
+
type: "class-data"
|
|
190
|
+
classType: string
|
|
191
|
+
}
|
|
192
|
+
export interface NoWrClassNode extends BaseClassDataNode<[ValuesNode]> {
|
|
193
|
+
classType: "serializable"
|
|
194
|
+
writeMethod: false
|
|
195
|
+
}
|
|
196
|
+
export interface WrClassNode extends BaseClassDataNode<
|
|
197
|
+
[ValuesNode, ContentsNode] |
|
|
198
|
+
|
|
199
|
+
// A write method can choose to violate the spec and write its values late, or not at all.
|
|
200
|
+
// Why? Because fuck you that's why.
|
|
201
|
+
[ContentsNode, ValuesNode, ContentsNode] |
|
|
202
|
+
[ContentsNode, ValuesNode] |
|
|
203
|
+
[ContentsNode]
|
|
204
|
+
> {
|
|
205
|
+
classType: "serializable"
|
|
206
|
+
writeMethod: true
|
|
207
|
+
}
|
|
208
|
+
export interface ExternalClassNode extends BaseClassDataNode<[ContentsNode]> {
|
|
209
|
+
classType: "externalizable"
|
|
210
|
+
protocolVersion: 2
|
|
211
|
+
}
|
|
212
|
+
export interface OldExternalClassNode extends BaseClassDataNode<(ObjectNode | PrimitiveNode | UtfNode | BytesNode)[]> {
|
|
213
|
+
classType: "externalizable"
|
|
214
|
+
protocolVersion: 1
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export interface FieldsNode extends BaseNode<[ShortNode, ...FieldDescNode[]]> {
|
|
218
|
+
type: "fields"
|
|
219
|
+
}
|
|
220
|
+
export interface ValuesNode extends BaseNode<(PrimitiveNode | ObjectNode)[]> {
|
|
221
|
+
type: "values"
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export type FieldDescNode = PrimitiveDescNode | ObjectDescNode
|
|
225
|
+
export interface PrimitiveDescNode extends BaseNode<[UnsignedByteNode, UtfNode]> {
|
|
226
|
+
type: "field-desc"
|
|
227
|
+
fieldType: "primitive"
|
|
228
|
+
}
|
|
229
|
+
export interface ObjectDescNode extends BaseNode<[UnsignedByteNode, UtfNode, ObjectNode]> {
|
|
230
|
+
type: "field-desc"
|
|
231
|
+
fieldType: "object"
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
// ========== Misc. ==========
|
|
236
|
+
|
|
237
|
+
interface BaseTCNode extends BaseNode<null> {
|
|
238
|
+
type: "tc"
|
|
239
|
+
value: number
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
type TCNode = TC_NULL_Node | TC_REFERENCE_Node | TC_CLASSDESC_Node | TC_OBJECT_Node | TC_STRING_Node | TC_ARRAY_Node | TC_CLASS_Node | TC_BLOCKDATA_Node | TC_ENDBLOCKDATA_Node | TC_RESET_Node | TC_BLOCKDATALONG_Node | TC_EXCEPTION_Node | TC_LONGSTRING_Node | TC_PROXYCLASSDESC_Node | TC_ENUM_Node
|
|
243
|
+
|
|
244
|
+
export type TC_NULL_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_NULL}
|
|
245
|
+
export type TC_REFERENCE_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_REFERENCE}
|
|
246
|
+
export type TC_CLASSDESC_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_CLASSDESC}
|
|
247
|
+
export type TC_OBJECT_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_OBJECT}
|
|
248
|
+
export type TC_STRING_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_STRING}
|
|
249
|
+
export type TC_ARRAY_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_ARRAY}
|
|
250
|
+
export type TC_CLASS_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_CLASS}
|
|
251
|
+
export type TC_BLOCKDATA_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_BLOCKDATA}
|
|
252
|
+
export type TC_ENDBLOCKDATA_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_ENDBLOCKDATA}
|
|
253
|
+
export type TC_RESET_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_RESET}
|
|
254
|
+
export type TC_BLOCKDATALONG_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_BLOCKDATALONG}
|
|
255
|
+
export type TC_EXCEPTION_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_EXCEPTION}
|
|
256
|
+
export type TC_LONGSTRING_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_LONGSTRING}
|
|
257
|
+
export type TC_PROXYCLASSDESC_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_PROXYCLASSDESC}
|
|
258
|
+
export type TC_ENUM_Node = BaseTCNode & {value: typeof ObjectInputStream.TC_ENUM}
|
|
259
|
+
|
|
260
|
+
export type Handle = {epoch: number, handle: number}
|