@cloudpss/ubjson 0.5.8 → 0.5.9
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/common/decoder.d.ts +2 -0
- package/dist/common/decoder.js +23 -24
- package/dist/common/decoder.js.map +1 -1
- package/dist/rxjs/decoder.js +2 -2
- package/dist/rxjs/decoder.js.map +1 -1
- package/dist/stream-helper/decoder.d.ts +4 -0
- package/dist/stream-helper/decoder.js +8 -0
- package/dist/stream-helper/decoder.js.map +1 -1
- package/package.json +1 -1
- package/src/common/decoder.ts +24 -23
- package/src/rxjs/decoder.ts +2 -2
- package/src/stream-helper/decoder.ts +9 -0
package/dist/common/decoder.d.ts
CHANGED
package/dist/common/decoder.js
CHANGED
|
@@ -11,19 +11,18 @@ export class Decoder {
|
|
|
11
11
|
this.data = toUint8Array(data, true);
|
|
12
12
|
this.view = new DataView(this.data.buffer, this.data.byteOffset, this.data.byteLength);
|
|
13
13
|
}
|
|
14
|
+
/** EOF */
|
|
15
|
+
eof() {
|
|
16
|
+
throw new UnexpectedEof();
|
|
17
|
+
}
|
|
14
18
|
/** 解码 */
|
|
15
19
|
decode() {
|
|
16
|
-
let marker
|
|
17
|
-
|
|
18
|
-
marker = this.
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
/* c8 ignore next 2 */
|
|
25
|
-
throw ex;
|
|
26
|
-
}
|
|
20
|
+
let marker = 78 /* constants.NO_OP */;
|
|
21
|
+
do {
|
|
22
|
+
marker = this.data[this.offset++];
|
|
23
|
+
} while (marker === 78 /* constants.NO_OP */); // 跳过 noop
|
|
24
|
+
if (marker === undefined)
|
|
25
|
+
return undefined;
|
|
27
26
|
return this.readData(marker);
|
|
28
27
|
}
|
|
29
28
|
/** 读取数据 */
|
|
@@ -38,7 +37,7 @@ export class Decoder {
|
|
|
38
37
|
marker = this.data[this.offset++];
|
|
39
38
|
} while (marker === 78 /* constants.NO_OP */);
|
|
40
39
|
if (marker === undefined)
|
|
41
|
-
|
|
40
|
+
this.eof();
|
|
42
41
|
return marker;
|
|
43
42
|
}
|
|
44
43
|
/** 读取数据 */
|
|
@@ -69,7 +68,7 @@ export class Decoder {
|
|
|
69
68
|
const key = this.readKey();
|
|
70
69
|
const t = type ?? this.readMarker();
|
|
71
70
|
if (t === undefined)
|
|
72
|
-
|
|
71
|
+
this.eof();
|
|
73
72
|
const value = this.readData(t);
|
|
74
73
|
object[i] = [key, value];
|
|
75
74
|
}
|
|
@@ -95,7 +94,7 @@ export class Decoder {
|
|
|
95
94
|
return buf;
|
|
96
95
|
}
|
|
97
96
|
catch {
|
|
98
|
-
|
|
97
|
+
return this.eof();
|
|
99
98
|
}
|
|
100
99
|
case 105 /* constants.INT8 */:
|
|
101
100
|
try {
|
|
@@ -104,7 +103,7 @@ export class Decoder {
|
|
|
104
103
|
return buf;
|
|
105
104
|
}
|
|
106
105
|
catch {
|
|
107
|
-
|
|
106
|
+
return this.eof();
|
|
108
107
|
}
|
|
109
108
|
case 73 /* constants.INT16 */: {
|
|
110
109
|
const result = new Int16Array(count);
|
|
@@ -188,7 +187,7 @@ export class Decoder {
|
|
|
188
187
|
// return buffer;
|
|
189
188
|
}
|
|
190
189
|
catch {
|
|
191
|
-
|
|
190
|
+
return this.eof();
|
|
192
191
|
}
|
|
193
192
|
throw new Error('Unsupported type high precision number');
|
|
194
193
|
}
|
|
@@ -199,7 +198,7 @@ export class Decoder {
|
|
|
199
198
|
readIntLength() {
|
|
200
199
|
const marker = this.readMarker();
|
|
201
200
|
if (marker === undefined)
|
|
202
|
-
|
|
201
|
+
this.eof();
|
|
203
202
|
let length;
|
|
204
203
|
switch (marker) {
|
|
205
204
|
case 105 /* constants.INT8 */:
|
|
@@ -238,14 +237,14 @@ export class Decoder {
|
|
|
238
237
|
return this.view.getInt8(this.offset++);
|
|
239
238
|
}
|
|
240
239
|
catch {
|
|
241
|
-
|
|
240
|
+
this.eof();
|
|
242
241
|
}
|
|
243
242
|
}
|
|
244
243
|
/** readUint8Data */
|
|
245
244
|
readUint8Data() {
|
|
246
245
|
const num = this.data[this.offset++];
|
|
247
246
|
if (num === undefined)
|
|
248
|
-
|
|
247
|
+
this.eof();
|
|
249
248
|
return num;
|
|
250
249
|
}
|
|
251
250
|
/** readInt16Data */
|
|
@@ -256,7 +255,7 @@ export class Decoder {
|
|
|
256
255
|
return result;
|
|
257
256
|
}
|
|
258
257
|
catch {
|
|
259
|
-
|
|
258
|
+
this.eof();
|
|
260
259
|
}
|
|
261
260
|
}
|
|
262
261
|
/** readInt32Data */
|
|
@@ -267,7 +266,7 @@ export class Decoder {
|
|
|
267
266
|
return result;
|
|
268
267
|
}
|
|
269
268
|
catch {
|
|
270
|
-
|
|
269
|
+
this.eof();
|
|
271
270
|
}
|
|
272
271
|
}
|
|
273
272
|
/** readInt64Data */
|
|
@@ -278,7 +277,7 @@ export class Decoder {
|
|
|
278
277
|
// return result;
|
|
279
278
|
}
|
|
280
279
|
catch {
|
|
281
|
-
|
|
280
|
+
this.eof();
|
|
282
281
|
}
|
|
283
282
|
throw new Error('Unsupported type int64');
|
|
284
283
|
}
|
|
@@ -290,7 +289,7 @@ export class Decoder {
|
|
|
290
289
|
return result;
|
|
291
290
|
}
|
|
292
291
|
catch {
|
|
293
|
-
|
|
292
|
+
this.eof();
|
|
294
293
|
}
|
|
295
294
|
}
|
|
296
295
|
/** readFloat64Data */
|
|
@@ -301,7 +300,7 @@ export class Decoder {
|
|
|
301
300
|
return result;
|
|
302
301
|
}
|
|
303
302
|
catch {
|
|
304
|
-
|
|
303
|
+
this.eof();
|
|
305
304
|
}
|
|
306
305
|
}
|
|
307
306
|
/** 读取 Optimized Format 数据 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/common/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEvC,cAAc;AACd,MAAM,OAAO,OAAO;IACG,IAAI,CAAW;IACf,IAAI,CAAa;IACpC,cAAc;IACJ,MAAM,GAAG,CAAC,CAAC;IACrB,YAAY,IAAgB;QACxB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/common/decoder.ts"],"names":[],"mappings":"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"}
|
package/dist/rxjs/decoder.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { StreamDecoderHelper, UnexpectedEof } from '../stream-helper/decoder.js';
|
|
2
|
+
import { StreamDecoderHelper, kEof, UnexpectedEof } from '../stream-helper/decoder.js';
|
|
3
3
|
import { toUint8Array } from '../utils.js';
|
|
4
4
|
const DEFAULT_BUFFER_SIZE = 16 * 1024 * 1024; // 16 MiB
|
|
5
5
|
const EMPTY_BUFFER = new Uint8Array(0);
|
|
@@ -37,7 +37,7 @@ export function decode() {
|
|
|
37
37
|
begin += helper.readLength;
|
|
38
38
|
}
|
|
39
39
|
catch (ex) {
|
|
40
|
-
if (ex
|
|
40
|
+
if (ex === kEof) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
43
|
else {
|
package/dist/rxjs/decoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/rxjs/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/rxjs/decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { Decoder } from '../common/decoder.js';
|
|
2
|
+
/** 未结束的流 */
|
|
3
|
+
export declare const kEof: unique symbol;
|
|
2
4
|
/** 流式解码 UBJSON */
|
|
3
5
|
export declare class StreamDecoderHelper extends Decoder {
|
|
4
6
|
constructor(data: Uint8Array);
|
|
7
|
+
/** @inheritdoc */
|
|
8
|
+
protected eof(): never;
|
|
5
9
|
/** 读取的字节数 */
|
|
6
10
|
get readLength(): number;
|
|
7
11
|
}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { Decoder } from '../common/decoder.js';
|
|
2
|
+
/** 未结束的流 */
|
|
3
|
+
export const kEof = Symbol('EOF');
|
|
2
4
|
/** 流式解码 UBJSON */
|
|
3
5
|
export class StreamDecoderHelper extends Decoder {
|
|
4
6
|
constructor(data) {
|
|
5
7
|
super(data);
|
|
6
8
|
}
|
|
9
|
+
/** @inheritdoc */
|
|
10
|
+
eof() {
|
|
11
|
+
// 性能优化,避免 new Error 的开销
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-throw-literal
|
|
13
|
+
throw kEof;
|
|
14
|
+
}
|
|
7
15
|
/** 读取的字节数 */
|
|
8
16
|
get readLength() {
|
|
9
17
|
return this.offset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/stream-helper/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,kBAAkB;AAClB,MAAM,OAAO,mBAAoB,SAAQ,OAAO;IAC5C,YAAY,IAAgB;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,aAAa;IACb,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/stream-helper/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,YAAY;AACZ,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAElC,kBAAkB;AAClB,MAAM,OAAO,mBAAoB,SAAQ,OAAO;IAC5C,YAAY,IAAgB;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,kBAAkB;IACC,GAAG;QAClB,wBAAwB;QACxB,+DAA+D;QAC/D,MAAM,IAAI,CAAC;IACf,CAAC;IAED,aAAa;IACb,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
package/src/common/decoder.ts
CHANGED
|
@@ -14,18 +14,19 @@ export class Decoder {
|
|
|
14
14
|
this.data = toUint8Array(data, true);
|
|
15
15
|
this.view = new DataView(this.data.buffer, this.data.byteOffset, this.data.byteLength);
|
|
16
16
|
}
|
|
17
|
+
|
|
18
|
+
/** EOF */
|
|
19
|
+
protected eof(): never {
|
|
20
|
+
throw new UnexpectedEof();
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
/** 解码 */
|
|
18
24
|
decode(): unknown {
|
|
19
|
-
let marker
|
|
20
|
-
|
|
21
|
-
marker = this.
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
/* c8 ignore next 2 */
|
|
27
|
-
throw ex;
|
|
28
|
-
}
|
|
25
|
+
let marker = constants.NO_OP;
|
|
26
|
+
do {
|
|
27
|
+
marker = this.data[this.offset++];
|
|
28
|
+
} while (marker === constants.NO_OP); // 跳过 noop
|
|
29
|
+
if (marker === undefined) return undefined;
|
|
29
30
|
return this.readData(marker);
|
|
30
31
|
}
|
|
31
32
|
|
|
@@ -41,7 +42,7 @@ export class Decoder {
|
|
|
41
42
|
do {
|
|
42
43
|
marker = this.data[this.offset++];
|
|
43
44
|
} while (marker === constants.NO_OP);
|
|
44
|
-
if (marker === undefined)
|
|
45
|
+
if (marker === undefined) this.eof();
|
|
45
46
|
return marker;
|
|
46
47
|
}
|
|
47
48
|
|
|
@@ -73,7 +74,7 @@ export class Decoder {
|
|
|
73
74
|
for (let i = 0; i < count; i++) {
|
|
74
75
|
const key = this.readKey();
|
|
75
76
|
const t = type ?? this.readMarker();
|
|
76
|
-
if (t === undefined)
|
|
77
|
+
if (t === undefined) this.eof();
|
|
77
78
|
const value = this.readData(t);
|
|
78
79
|
object[i] = [key, value];
|
|
79
80
|
}
|
|
@@ -103,7 +104,7 @@ export class Decoder {
|
|
|
103
104
|
this.offset += count;
|
|
104
105
|
return buf;
|
|
105
106
|
} catch {
|
|
106
|
-
|
|
107
|
+
return this.eof();
|
|
107
108
|
}
|
|
108
109
|
case constants.INT8:
|
|
109
110
|
try {
|
|
@@ -115,7 +116,7 @@ export class Decoder {
|
|
|
115
116
|
this.offset += count;
|
|
116
117
|
return buf;
|
|
117
118
|
} catch {
|
|
118
|
-
|
|
119
|
+
return this.eof();
|
|
119
120
|
}
|
|
120
121
|
case constants.INT16: {
|
|
121
122
|
const result = new Int16Array(count);
|
|
@@ -198,7 +199,7 @@ export class Decoder {
|
|
|
198
199
|
this.offset += length;
|
|
199
200
|
// return buffer;
|
|
200
201
|
} catch {
|
|
201
|
-
|
|
202
|
+
return this.eof();
|
|
202
203
|
}
|
|
203
204
|
throw new Error('Unsupported type high precision number');
|
|
204
205
|
}
|
|
@@ -209,7 +210,7 @@ export class Decoder {
|
|
|
209
210
|
/** 读取一个大于 0 的整数 */
|
|
210
211
|
private readIntLength(): number {
|
|
211
212
|
const marker = this.readMarker();
|
|
212
|
-
if (marker === undefined)
|
|
213
|
+
if (marker === undefined) this.eof();
|
|
213
214
|
let length;
|
|
214
215
|
switch (marker) {
|
|
215
216
|
case constants.INT8:
|
|
@@ -248,13 +249,13 @@ export class Decoder {
|
|
|
248
249
|
try {
|
|
249
250
|
return this.view.getInt8(this.offset++);
|
|
250
251
|
} catch {
|
|
251
|
-
|
|
252
|
+
this.eof();
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
/** readUint8Data */
|
|
255
256
|
private readUint8Data(): number {
|
|
256
257
|
const num = this.data[this.offset++];
|
|
257
|
-
if (num === undefined)
|
|
258
|
+
if (num === undefined) this.eof();
|
|
258
259
|
return num;
|
|
259
260
|
}
|
|
260
261
|
/** readInt16Data */
|
|
@@ -264,7 +265,7 @@ export class Decoder {
|
|
|
264
265
|
this.offset += 2;
|
|
265
266
|
return result;
|
|
266
267
|
} catch {
|
|
267
|
-
|
|
268
|
+
this.eof();
|
|
268
269
|
}
|
|
269
270
|
}
|
|
270
271
|
/** readInt32Data */
|
|
@@ -274,7 +275,7 @@ export class Decoder {
|
|
|
274
275
|
this.offset += 4;
|
|
275
276
|
return result;
|
|
276
277
|
} catch {
|
|
277
|
-
|
|
278
|
+
this.eof();
|
|
278
279
|
}
|
|
279
280
|
}
|
|
280
281
|
/** readInt64Data */
|
|
@@ -284,7 +285,7 @@ export class Decoder {
|
|
|
284
285
|
this.offset += 8;
|
|
285
286
|
// return result;
|
|
286
287
|
} catch {
|
|
287
|
-
|
|
288
|
+
this.eof();
|
|
288
289
|
}
|
|
289
290
|
throw new Error('Unsupported type int64');
|
|
290
291
|
}
|
|
@@ -295,7 +296,7 @@ export class Decoder {
|
|
|
295
296
|
this.offset += 4;
|
|
296
297
|
return result;
|
|
297
298
|
} catch {
|
|
298
|
-
|
|
299
|
+
this.eof();
|
|
299
300
|
}
|
|
300
301
|
}
|
|
301
302
|
/** readFloat64Data */
|
|
@@ -305,7 +306,7 @@ export class Decoder {
|
|
|
305
306
|
this.offset += 8;
|
|
306
307
|
return result;
|
|
307
308
|
} catch {
|
|
308
|
-
|
|
309
|
+
this.eof();
|
|
309
310
|
}
|
|
310
311
|
}
|
|
311
312
|
|
package/src/rxjs/decoder.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable, type OperatorFunction } from 'rxjs';
|
|
2
|
-
import { StreamDecoderHelper, UnexpectedEof } from '../stream-helper/decoder.js';
|
|
2
|
+
import { StreamDecoderHelper, kEof, UnexpectedEof } from '../stream-helper/decoder.js';
|
|
3
3
|
import { toUint8Array } from '../utils.js';
|
|
4
4
|
|
|
5
5
|
const DEFAULT_BUFFER_SIZE = 16 * 1024 * 1024; // 16 MiB
|
|
@@ -37,7 +37,7 @@ export function decode(): OperatorFunction<BinaryData, unknown> {
|
|
|
37
37
|
}
|
|
38
38
|
begin += helper.readLength;
|
|
39
39
|
} catch (ex) {
|
|
40
|
-
if (ex
|
|
40
|
+
if (ex === kEof) {
|
|
41
41
|
return;
|
|
42
42
|
} else {
|
|
43
43
|
subscriber.error(ex as Error);
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { Decoder } from '../common/decoder.js';
|
|
2
2
|
|
|
3
|
+
/** 未结束的流 */
|
|
4
|
+
export const kEof = Symbol('EOF');
|
|
5
|
+
|
|
3
6
|
/** 流式解码 UBJSON */
|
|
4
7
|
export class StreamDecoderHelper extends Decoder {
|
|
5
8
|
constructor(data: Uint8Array) {
|
|
6
9
|
super(data);
|
|
7
10
|
}
|
|
11
|
+
/** @inheritdoc */
|
|
12
|
+
protected override eof(): never {
|
|
13
|
+
// 性能优化,避免 new Error 的开销
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-throw-literal
|
|
15
|
+
throw kEof;
|
|
16
|
+
}
|
|
8
17
|
|
|
9
18
|
/** 读取的字节数 */
|
|
10
19
|
get readLength(): number {
|