@cloudpss/ubjson 0.4.15 → 0.4.17
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/benchmark-string-size-caculation.js +50 -0
- package/benchmark-string.js +3 -3
- package/benchmark.js +3 -3
- package/dist/common/decoder.js +3 -3
- package/dist/common/decoder.js.map +1 -1
- package/dist/common/encoder.d.ts +0 -1
- package/dist/common/encoder.js +26 -23
- package/dist/common/encoder.js.map +1 -1
- package/dist/common/string-decoder.js +3 -3
- package/dist/common/string-decoder.js.map +1 -1
- package/dist/common/string-encoder.d.ts +2 -0
- package/dist/common/string-encoder.js +51 -0
- package/dist/common/string-encoder.js.map +1 -1
- package/dist/decoder.d.ts +1 -2
- package/dist/decoder.js +1 -2
- package/dist/decoder.js.map +1 -1
- package/dist/encoder.js.map +1 -1
- package/dist/stream-helper/decoder.d.ts +2 -2
- package/dist/stream-helper/decoder.js +2 -2
- package/dist/stream-helper/decoder.js.map +1 -1
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/common/decoder.ts +3 -3
- package/src/common/encoder.ts +27 -25
- package/src/common/string-decoder.ts +3 -4
- package/src/common/string-encoder.ts +63 -0
- package/src/decoder.ts +1 -3
- package/src/encoder.ts +2 -4
- package/src/stream-helper/decoder.ts +3 -3
- package/src/utils.ts +3 -0
- package/tests/decode.js +12 -44
- package/tests/e2e.js +20 -21
- package/tests/encode.js +31 -53
- package/tests/huge-string.js +122 -0
- package/tests/rxjs/decode.js +18 -50
- package/tests/rxjs/encode.js +17 -61
- package/tests/stream/decode.js +17 -49
- package/tests/stream/encode.js +17 -61
- package/tests/string-encoding.js +4 -7
- package/tests/tsconfig.json +8 -0
- package/tsconfig.json +7 -0
- package/yarn-error.log +0 -4520
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import prettyBytes from 'pretty-bytes';
|
|
2
|
+
import { encode } from '@cloudpss/ubjson';
|
|
3
|
+
import { Buffer } from 'node:buffer';
|
|
4
|
+
|
|
5
|
+
const LOOP = 100;
|
|
6
|
+
|
|
7
|
+
const t = (/** @type {number} */ time) => time.toFixed(6) + 'ms';
|
|
8
|
+
const pb = (/** @type {number} */ size) => prettyBytes(size, { binary: true });
|
|
9
|
+
|
|
10
|
+
/** 测试数据 */
|
|
11
|
+
function createTestData(/** @type {number} */ size) {
|
|
12
|
+
return ['a'.repeat(size), 'Ӓ'.repeat(size / 2), '水'.repeat(size / 3), 'aӒ水'.repeat(size / 6)];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* eslint-disable no-console */
|
|
16
|
+
|
|
17
|
+
console.log(`Size \tTime1 \tTime2 \tTime3 \tTimeMixed`);
|
|
18
|
+
|
|
19
|
+
// global.Buffer = null;
|
|
20
|
+
for (const i of [64, 256, 1024, 8192, 16384]) {
|
|
21
|
+
const [data1, data2, data3, dataMixed] = createTestData(i * 1024);
|
|
22
|
+
for (const withBuffer of [true, false]) {
|
|
23
|
+
global.Buffer = withBuffer ? Buffer : null;
|
|
24
|
+
let size;
|
|
25
|
+
let time1 = 0,
|
|
26
|
+
time2 = 0,
|
|
27
|
+
time3 = 0,
|
|
28
|
+
timeMixed = 0;
|
|
29
|
+
for (let i = 0; i < LOOP; i++) {
|
|
30
|
+
let start = performance.now();
|
|
31
|
+
size = encode(data1).byteLength;
|
|
32
|
+
time1 += performance.now() - start;
|
|
33
|
+
|
|
34
|
+
start = performance.now();
|
|
35
|
+
size = encode(data2).byteLength;
|
|
36
|
+
time2 += performance.now() - start;
|
|
37
|
+
|
|
38
|
+
start = performance.now();
|
|
39
|
+
size = encode(data3).byteLength;
|
|
40
|
+
time3 += performance.now() - start;
|
|
41
|
+
|
|
42
|
+
start = performance.now();
|
|
43
|
+
size = encode(dataMixed).byteLength;
|
|
44
|
+
timeMixed += performance.now() - start;
|
|
45
|
+
}
|
|
46
|
+
console.log(
|
|
47
|
+
`[${withBuffer ? 'w/ ' : 'w/o'} buffer] ${pb(size)}\t${t(time1 / LOOP)} \t${t(time2 / LOOP)} \t${t(time3 / LOOP)} \t${t(timeMixed / LOOP)}`,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
}
|
package/benchmark-string.js
CHANGED
|
@@ -34,8 +34,8 @@ for (let index = 50; index < 1000; index = Math.trunc(index * 1.2)) {
|
|
|
34
34
|
const ratioOptimal = decodeTimeOptimal / decodeTimeSystem;
|
|
35
35
|
const ratioJs = decodeTimeJs / decodeTimeSystem;
|
|
36
36
|
console.log(
|
|
37
|
-
`Data: ${data.byteLength} \t${t(decodeTimeSystem / LOOP)} ${t(decodeTimeOptimal / LOOP)} ${(
|
|
38
|
-
|
|
39
|
-
)
|
|
37
|
+
`Data: ${data.byteLength} \t${t(decodeTimeSystem / LOOP)} ${t(decodeTimeOptimal / LOOP)} ${(ratioOptimal * 100).toFixed(3)}%\t${t(
|
|
38
|
+
decodeTimeJs / LOOP,
|
|
39
|
+
)} ${(ratioJs * 100).toFixed(3)}%`,
|
|
40
40
|
);
|
|
41
41
|
}
|
package/benchmark.js
CHANGED
|
@@ -41,9 +41,9 @@ for (const { file, data, obj } of testData) {
|
|
|
41
41
|
|
|
42
42
|
console.assert(lodash.isEqual(obj, obj2));
|
|
43
43
|
console.log(
|
|
44
|
-
`File: ${file.padEnd(28)} \tRaw: ${pb(data.length)}\tencode: ${t(encodeTime / LOOP)}\tencode stream: ${t(
|
|
45
|
-
|
|
46
|
-
)}
|
|
44
|
+
`File: ${file.padEnd(28)} \tRaw: ${pb(data.length)}\tencode: ${t(encodeTime / LOOP)}\tencode stream: ${t(encodeTime2 / LOOP)}\tdecode: ${t(
|
|
45
|
+
decodeTime / LOOP,
|
|
46
|
+
)}`,
|
|
47
47
|
);
|
|
48
48
|
}
|
|
49
49
|
console.log('');
|
package/dist/common/decoder.js
CHANGED
|
@@ -236,11 +236,11 @@ export class Decoder {
|
|
|
236
236
|
return result;
|
|
237
237
|
}
|
|
238
238
|
case constants.NULL:
|
|
239
|
-
return
|
|
239
|
+
return Array.from({ length: count }).fill(null);
|
|
240
240
|
case constants.TRUE:
|
|
241
|
-
return
|
|
241
|
+
return Array.from({ length: count }).fill(true);
|
|
242
242
|
case constants.FALSE:
|
|
243
|
-
return
|
|
243
|
+
return Array.from({ length: count }).fill(false);
|
|
244
244
|
case constants.INT64:
|
|
245
245
|
this.ensureData(count * 8);
|
|
246
246
|
return BigInt64Array.from({ length: count }, () => this.readInt64Data());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/common/decoder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/common/decoder.ts"],"names":[],"mappings":"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"}
|
package/dist/common/encoder.d.ts
CHANGED
package/dist/common/encoder.js
CHANGED
|
@@ -144,7 +144,7 @@ export class EncoderBase {
|
|
|
144
144
|
/** writeStringData */
|
|
145
145
|
writeStringData(value) {
|
|
146
146
|
// 优化小字符串
|
|
147
|
-
if (value.length < 32) {
|
|
147
|
+
if (value.length < 32 || this.stringEncoder.encodeInto == null) {
|
|
148
148
|
const buf = this.stringEncoder.encode(value);
|
|
149
149
|
this.writeInt(buf.length);
|
|
150
150
|
this.ensureCapacity(buf.length);
|
|
@@ -152,31 +152,34 @@ export class EncoderBase {
|
|
|
152
152
|
this.length += buf.length;
|
|
153
153
|
return;
|
|
154
154
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
//
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
155
|
+
let maxUsage = value.length;
|
|
156
|
+
if (value.length < 65536) {
|
|
157
|
+
// 对于短字符串,直接计算最大使用空间
|
|
158
|
+
maxUsage = value.length * 3;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
maxUsage = this.stringEncoder.byteLength(value);
|
|
162
|
+
}
|
|
163
|
+
// 一次性分配 writeInt 和 encodeInto 的空间,避免无法回溯
|
|
164
|
+
// 额外分配 3 字节,避免 encodeInto 无法写入最后一个字符
|
|
165
|
+
this.ensureCapacity(maxUsage + 4 + 3);
|
|
166
|
+
const currentPos = this.length;
|
|
167
|
+
// 先写入最大大小
|
|
168
|
+
const lengthWriter = this.writeInt(maxUsage);
|
|
169
|
+
// 写入文本数据
|
|
170
|
+
const { written, read } = this.stringEncoder.encodeInto(value, this.buffer.subarray(this.length));
|
|
171
|
+
/* c8 ignore next 3 */
|
|
172
|
+
if (read !== value.length) {
|
|
173
|
+
throw new Error(`Failed to encode string with TextEncoder.encodeInto`);
|
|
170
174
|
}
|
|
171
|
-
|
|
172
|
-
this.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
this.length +=
|
|
175
|
+
// 回溯,写入实际大小
|
|
176
|
+
this.length = currentPos;
|
|
177
|
+
lengthWriter.call(this, written);
|
|
178
|
+
// 移动指针到写入末尾
|
|
179
|
+
this.length += written;
|
|
176
180
|
}
|
|
177
181
|
/**
|
|
178
182
|
* 写入整形数字,选取合适的大小
|
|
179
|
-
*
|
|
180
183
|
* @throws 无法在 int32 范围内表示
|
|
181
184
|
*/
|
|
182
185
|
writeInt(value) {
|
|
@@ -268,7 +271,7 @@ export class EncoderBase {
|
|
|
268
271
|
setValue = this.view.setFloat64;
|
|
269
272
|
}
|
|
270
273
|
else {
|
|
271
|
-
throw new
|
|
274
|
+
throw new TypeError(`Unsupported typed array type ${Object.prototype.toString.call(value)}`);
|
|
272
275
|
}
|
|
273
276
|
this.writeMarker(constants.COUNT_MARKER);
|
|
274
277
|
this.writeInt(value.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/common/encoder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/common/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* c8 ignore next 2: TextDecoder always present, fallback tested */
|
|
2
|
-
export const textDecoder = typeof TextDecoder == 'function' ? new TextDecoder('
|
|
2
|
+
export const textDecoder = typeof TextDecoder == 'function' ? new TextDecoder('utf8', { ignoreBOM: true, fatal: false }) : null;
|
|
3
3
|
/* c8 ignore next: TextDecoder always present, fallback tested */
|
|
4
4
|
export const TEXT_ENCODER_THRESHOLD = textDecoder == null ? 4294967295 : 200;
|
|
5
|
-
const CHUNK_SIZE =
|
|
5
|
+
const CHUNK_SIZE = 0x1000;
|
|
6
6
|
const REPLACE_CHAR = 0xfffd;
|
|
7
7
|
/** 解码 */
|
|
8
8
|
export function decodeJs(bytes, begin, end) {
|
|
@@ -33,7 +33,7 @@ export function decodeJs(bytes, begin, end) {
|
|
|
33
33
|
const byte4 = bytes[offset++] & 0x3f;
|
|
34
34
|
let unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
|
|
35
35
|
if (unit > 0xffff) {
|
|
36
|
-
unit -=
|
|
36
|
+
unit -= 65536;
|
|
37
37
|
units.push(((unit >>> 10) & 0x3ff) | 0xd800);
|
|
38
38
|
unit = 0xdc00 | (unit & 0x3ff);
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-decoder.js","sourceRoot":"","sources":["../../src/common/string-decoder.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"string-decoder.js","sourceRoot":"","sources":["../../src/common/string-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
// https://github.com/ehmicky/string-byte-length/blob/main/src/char_code.js
|
|
2
|
+
// Last ASCII character (1 byte)
|
|
3
|
+
const LAST_ASCII_CODEPOINT = 0x7f;
|
|
4
|
+
// Last 2-bytes character
|
|
5
|
+
const LAST_TWO_BYTES_CODEPOINT = 0x7ff;
|
|
6
|
+
// Others are 3 bytes characters
|
|
7
|
+
// However, U+d800 to U+dbff:
|
|
8
|
+
// - Followed by U+dc00 to U+dfff -> 4 bytes together (astral character)
|
|
9
|
+
// - Otherwise -> 3 bytes (like above)
|
|
10
|
+
const FIRST_HIGH_SURROGATE = 0xd800;
|
|
11
|
+
const LAST_HIGH_SURROGATE = 0xdbff;
|
|
12
|
+
const FIRST_LOW_SURROGATE = 0xdc00;
|
|
13
|
+
const LAST_LOW_SURROGATE = 0xdfff;
|
|
14
|
+
/** 计算使用的空间 */
|
|
15
|
+
function getCharCodeByteLength(string) {
|
|
16
|
+
const charLength = string.length;
|
|
17
|
+
let byteLength = charLength;
|
|
18
|
+
for (let charIndex = 0; charIndex < charLength; charIndex += 1) {
|
|
19
|
+
const codepoint = string.charCodeAt(charIndex);
|
|
20
|
+
if (codepoint <= LAST_ASCII_CODEPOINT) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (codepoint <= LAST_TWO_BYTES_CODEPOINT) {
|
|
24
|
+
byteLength += 1;
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
byteLength += 2;
|
|
28
|
+
if (codepoint < FIRST_HIGH_SURROGATE || codepoint > LAST_HIGH_SURROGATE) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
// When out-of-bound, this returns NaN, which is `false` with the
|
|
32
|
+
// next condition
|
|
33
|
+
const nextCodepoint = string.charCodeAt(charIndex + 1);
|
|
34
|
+
// High surrogates should be followed by low surrogates.
|
|
35
|
+
// However, JavaScript strings allow invalid surrogates, which are counted
|
|
36
|
+
// as a normal 3-byte character. This should not happen often in real code
|
|
37
|
+
// though.
|
|
38
|
+
if (nextCodepoint < FIRST_LOW_SURROGATE || nextCodepoint > LAST_LOW_SURROGATE) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
charIndex += 1;
|
|
42
|
+
}
|
|
43
|
+
return byteLength;
|
|
44
|
+
}
|
|
1
45
|
/** 字符串编码器 */
|
|
2
46
|
export class StringEncoder extends TextEncoder {
|
|
3
47
|
constructor() {
|
|
@@ -34,5 +78,12 @@ export class StringEncoder extends TextEncoder {
|
|
|
34
78
|
}
|
|
35
79
|
return buf;
|
|
36
80
|
}
|
|
81
|
+
/** 计算使用的空间 */
|
|
82
|
+
byteLength(value) {
|
|
83
|
+
if (typeof Buffer == 'function' && typeof Buffer.byteLength == 'function') {
|
|
84
|
+
return Buffer.byteLength(value, 'utf8');
|
|
85
|
+
}
|
|
86
|
+
return getCharCodeByteLength(value);
|
|
87
|
+
}
|
|
37
88
|
}
|
|
38
89
|
//# sourceMappingURL=string-encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-encoder.js","sourceRoot":"","sources":["../../src/common/string-encoder.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,MAAM,OAAO,aAAc,SAAQ,WAAW;IAA9C;;QACqB,UAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"string-encoder.js","sourceRoot":"","sources":["../../src/common/string-encoder.ts"],"names":[],"mappings":"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"}
|
package/dist/decoder.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { Decoder };
|
|
1
|
+
export { Decoder } from './common/decoder.js';
|
package/dist/decoder.js
CHANGED
package/dist/decoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/encoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,QAAQ;AACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS;AAE7C,iBAAiB;AACjB,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAAxC;;QACY,mBAAc,GAAiB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Decoder
|
|
2
|
-
export { UnexpectedEof };
|
|
1
|
+
import { Decoder } from '../common/decoder.js';
|
|
3
2
|
/** 流式解码 UBJSON */
|
|
4
3
|
export declare class StreamDecoderHelper extends Decoder {
|
|
5
4
|
constructor(data: Uint8Array);
|
|
6
5
|
/** 读取的字节数 */
|
|
7
6
|
get readLength(): number;
|
|
8
7
|
}
|
|
8
|
+
export { UnexpectedEof } from '../common/decoder.js';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Decoder
|
|
2
|
-
export { UnexpectedEof };
|
|
1
|
+
import { Decoder } from '../common/decoder.js';
|
|
3
2
|
/** 流式解码 UBJSON */
|
|
4
3
|
export class StreamDecoderHelper extends Decoder {
|
|
5
4
|
constructor(data) {
|
|
@@ -10,4 +9,5 @@ export class StreamDecoderHelper extends Decoder {
|
|
|
10
9
|
return this.offset;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
12
|
+
export { UnexpectedEof } from '../common/decoder.js';
|
|
13
13
|
//# sourceMappingURL=decoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/stream-helper/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
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,sBAAsB,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/** 支持的数据转为 Uint8Array */
|
|
2
2
|
export function toUint8Array(data) {
|
|
3
|
+
if (data == null || typeof data != 'object' || typeof data.byteLength != 'number') {
|
|
4
|
+
throw new TypeError('Invalid data');
|
|
5
|
+
}
|
|
3
6
|
if (ArrayBuffer.isView(data)) {
|
|
4
7
|
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
5
8
|
}
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,UAAU,YAAY,CAAC,IAAgB;IACzC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC1B,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxE;IACD,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,MAAM,UAAU,YAAY,CAAC,IAAgB;IACzC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;QAC/E,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;KACvC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC1B,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACxE;IACD,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudpss/ubjson",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.17",
|
|
4
4
|
"author": "CloudPSS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"prepublishOnly": "yarn build",
|
|
47
47
|
"clean": "rimraf dist",
|
|
48
48
|
"benchmark": "node ./benchmark",
|
|
49
|
-
"test": "cross-env NODE_OPTIONS
|
|
49
|
+
"test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@msgpack/msgpack": "^3.0.0-beta2",
|
package/src/common/decoder.ts
CHANGED
|
@@ -246,11 +246,11 @@ export class Decoder {
|
|
|
246
246
|
return result;
|
|
247
247
|
}
|
|
248
248
|
case constants.NULL:
|
|
249
|
-
return
|
|
249
|
+
return Array.from({ length: count }).fill(null);
|
|
250
250
|
case constants.TRUE:
|
|
251
|
-
return
|
|
251
|
+
return Array.from({ length: count }).fill(true);
|
|
252
252
|
case constants.FALSE:
|
|
253
|
-
return
|
|
253
|
+
return Array.from({ length: count }).fill(false);
|
|
254
254
|
case constants.INT64:
|
|
255
255
|
this.ensureData(count * 8);
|
|
256
256
|
return BigInt64Array.from({ length: count }, () => this.readInt64Data());
|
package/src/common/encoder.ts
CHANGED
|
@@ -171,7 +171,7 @@ export abstract class EncoderBase {
|
|
|
171
171
|
/** writeStringData */
|
|
172
172
|
protected writeStringData(value: string): void {
|
|
173
173
|
// 优化小字符串
|
|
174
|
-
if (value.length < 32) {
|
|
174
|
+
if (value.length < 32 || this.stringEncoder.encodeInto == null) {
|
|
175
175
|
const buf = this.stringEncoder.encode(value);
|
|
176
176
|
this.writeInt(buf.length);
|
|
177
177
|
this.ensureCapacity(buf.length);
|
|
@@ -179,32 +179,34 @@ export abstract class EncoderBase {
|
|
|
179
179
|
this.length += buf.length;
|
|
180
180
|
return;
|
|
181
181
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
//
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
182
|
+
let maxUsage = value.length;
|
|
183
|
+
if (value.length < 65536) {
|
|
184
|
+
// 对于短字符串,直接计算最大使用空间
|
|
185
|
+
maxUsage = value.length * 3;
|
|
186
|
+
} else {
|
|
187
|
+
maxUsage = this.stringEncoder.byteLength(value);
|
|
188
|
+
}
|
|
189
|
+
// 一次性分配 writeInt 和 encodeInto 的空间,避免无法回溯
|
|
190
|
+
// 额外分配 3 字节,避免 encodeInto 无法写入最后一个字符
|
|
191
|
+
this.ensureCapacity(maxUsage + 4 + 3);
|
|
192
|
+
const currentPos = this.length;
|
|
193
|
+
// 先写入最大大小
|
|
194
|
+
const lengthWriter = this.writeInt(maxUsage);
|
|
195
|
+
// 写入文本数据
|
|
196
|
+
const { written, read } = this.stringEncoder.encodeInto(value, this.buffer.subarray(this.length));
|
|
197
|
+
/* c8 ignore next 3 */
|
|
198
|
+
if (read !== value.length) {
|
|
199
|
+
throw new Error(`Failed to encode string with TextEncoder.encodeInto`);
|
|
197
200
|
}
|
|
198
|
-
|
|
199
|
-
this.
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
this.length +=
|
|
201
|
+
// 回溯,写入实际大小
|
|
202
|
+
this.length = currentPos;
|
|
203
|
+
lengthWriter.call(this, written as number);
|
|
204
|
+
// 移动指针到写入末尾
|
|
205
|
+
this.length += written as number;
|
|
203
206
|
}
|
|
204
207
|
|
|
205
208
|
/**
|
|
206
209
|
* 写入整形数字,选取合适的大小
|
|
207
|
-
*
|
|
208
210
|
* @throws 无法在 int32 范围内表示
|
|
209
211
|
*/
|
|
210
212
|
protected writeInt(value: number): (this: this, value: number) => void {
|
|
@@ -217,7 +219,7 @@ export abstract class EncoderBase {
|
|
|
217
219
|
this.writeInt16(value);
|
|
218
220
|
return this.writeInt16;
|
|
219
221
|
}
|
|
220
|
-
if (value >= -
|
|
222
|
+
if (value >= -2_147_483_648 && value <= 2_147_483_647) {
|
|
221
223
|
this.writeInt32(value);
|
|
222
224
|
return this.writeInt32;
|
|
223
225
|
}
|
|
@@ -227,7 +229,7 @@ export abstract class EncoderBase {
|
|
|
227
229
|
|
|
228
230
|
/** 写入数字,选取合适的大小 */
|
|
229
231
|
protected writeNumber(value: number): void {
|
|
230
|
-
if (Number.isInteger(value) && value >= -
|
|
232
|
+
if (Number.isInteger(value) && value >= -2_147_483_648 && value <= 2_147_483_647) {
|
|
231
233
|
if (value >= 0 && value <= 255) return this.writeUint8(value);
|
|
232
234
|
this.writeInt(value);
|
|
233
235
|
return;
|
|
@@ -292,7 +294,7 @@ export abstract class EncoderBase {
|
|
|
292
294
|
this.writeMarker(constants.FLOAT64);
|
|
293
295
|
setValue = this.view.setFloat64;
|
|
294
296
|
} else {
|
|
295
|
-
throw new
|
|
297
|
+
throw new TypeError(`Unsupported typed array type ${Object.prototype.toString.call(value)}`);
|
|
296
298
|
}
|
|
297
299
|
this.writeMarker(constants.COUNT_MARKER);
|
|
298
300
|
this.writeInt(value.length);
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/* c8 ignore next 2: TextDecoder always present, fallback tested */
|
|
2
|
-
export const textDecoder =
|
|
3
|
-
typeof TextDecoder == 'function' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: false }) : null;
|
|
2
|
+
export const textDecoder = typeof TextDecoder == 'function' ? new TextDecoder('utf8', { ignoreBOM: true, fatal: false }) : null;
|
|
4
3
|
|
|
5
4
|
/* c8 ignore next: TextDecoder always present, fallback tested */
|
|
6
5
|
export const TEXT_ENCODER_THRESHOLD = textDecoder == null ? 0xffff_ffff : 200;
|
|
7
6
|
|
|
8
|
-
const CHUNK_SIZE =
|
|
7
|
+
const CHUNK_SIZE = 0x1000;
|
|
9
8
|
const REPLACE_CHAR = 0xfffd;
|
|
10
9
|
|
|
11
10
|
/** 解码 */
|
|
@@ -35,7 +34,7 @@ export function decodeJs(bytes: Uint8Array, begin: number, end: number): string
|
|
|
35
34
|
const byte4 = bytes[offset++] & 0x3f;
|
|
36
35
|
let unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;
|
|
37
36
|
if (unit > 0xffff) {
|
|
38
|
-
unit -=
|
|
37
|
+
unit -= 0x1_0000;
|
|
39
38
|
units.push(((unit >>> 10) & 0x3ff) | 0xd800);
|
|
40
39
|
unit = 0xdc00 | (unit & 0x3ff);
|
|
41
40
|
}
|