@atcute/uint8array 1.0.5 → 1.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/README.md +7 -1
- package/dist/index.bun.d.ts +31 -7
- package/dist/index.bun.d.ts.map +1 -1
- package/dist/index.bun.js +134 -38
- package/dist/index.bun.js.map +1 -1
- package/dist/index.d.ts +31 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +197 -33
- package/dist/index.js.map +1 -1
- package/dist/index.node.d.ts +34 -7
- package/dist/index.node.d.ts.map +1 -1
- package/dist/index.node.js +136 -1
- package/dist/index.node.js.map +1 -1
- package/lib/index.bun.ts +114 -45
- package/lib/index.node.ts +119 -1
- package/lib/index.ts +178 -33
- package/package.json +9 -7
package/README.md
CHANGED
package/dist/index.bun.d.ts
CHANGED
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
export declare const alloc: (size: number) => Uint8Array<ArrayBuffer>;
|
|
2
2
|
export declare const allocUnsafe: (size: number) => Uint8Array<ArrayBuffer>;
|
|
3
|
-
export declare const compare: (a: Uint8Array
|
|
4
|
-
export declare const equals: (a: Uint8Array
|
|
5
|
-
export declare const timingSafeEquals: (a: Uint8Array
|
|
6
|
-
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array<ArrayBuffer>;
|
|
3
|
+
export declare const compare: (a: Uint8Array<ArrayBufferLike>, b: Uint8Array<ArrayBufferLike>) => number;
|
|
4
|
+
export declare const equals: (a: Uint8Array<ArrayBufferLike>, b: Uint8Array<ArrayBufferLike>) => boolean;
|
|
5
|
+
export declare const timingSafeEquals: (a: Uint8Array<ArrayBufferLike>, b: Uint8Array<ArrayBufferLike>) => boolean;
|
|
6
|
+
export declare const concat: (arrays: Uint8Array<ArrayBufferLike>[], size?: number | undefined) => Uint8Array<ArrayBuffer>;
|
|
7
7
|
export declare const encodeUtf8: (str: string) => Uint8Array<ArrayBuffer>;
|
|
8
|
-
export declare const encodeUtf8Into: (to: Uint8Array
|
|
8
|
+
export declare const encodeUtf8Into: (to: Uint8Array<ArrayBufferLike>, str: string, offset?: number | undefined, length?: number | undefined) => number;
|
|
9
9
|
/**
|
|
10
10
|
* decodes a UTF-8 string from a given buffer
|
|
11
|
+
* @param from source buffer
|
|
12
|
+
* @param offset byte offset to start reading from
|
|
13
|
+
* @param length number of bytes to read
|
|
14
|
+
* @returns decoded string
|
|
11
15
|
*/
|
|
12
|
-
export declare const decodeUtf8From: (from: Uint8Array
|
|
13
|
-
|
|
16
|
+
export declare const decodeUtf8From: (from: Uint8Array<ArrayBufferLike>, offset?: number, length?: number) => string;
|
|
17
|
+
/**
|
|
18
|
+
* calculates the UTF-8 byte length of a string
|
|
19
|
+
* @param str string to measure
|
|
20
|
+
* @returns byte length when encoded as UTF-8
|
|
21
|
+
*/
|
|
22
|
+
export declare const getUtf8Length: (str: string) => number;
|
|
23
|
+
/**
|
|
24
|
+
* checks if a string's UTF-8 byte length is within a given range
|
|
25
|
+
* @param str string to measure
|
|
26
|
+
* @param min minimum byte length (inclusive)
|
|
27
|
+
* @param max maximum byte length (inclusive)
|
|
28
|
+
* @returns true if byte length is within [min, max]
|
|
29
|
+
*/
|
|
30
|
+
export declare const isUtf8LengthInRange: (str: string, min: number, max: number) => boolean;
|
|
31
|
+
export declare const toSha256: (buffer: Uint8Array<ArrayBufferLike>) => Promise<Uint8Array<ArrayBuffer>>;
|
|
32
|
+
/**
|
|
33
|
+
* generates cryptographically secure random bytes
|
|
34
|
+
* @param size number of bytes to generate
|
|
35
|
+
* @returns buffer filled with random bytes
|
|
36
|
+
*/
|
|
37
|
+
export declare const randomBytes: (size: number) => Uint8Array<ArrayBuffer>;
|
|
14
38
|
//# sourceMappingURL=index.bun.d.ts.map
|
package/dist/index.bun.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.bun.d.ts","sourceRoot":"","sources":["../lib/index.bun.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.bun.d.ts","sourceRoot":"","sources":["../lib/index.bun.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,KAAK,2CAEjB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,WAAW,CAAgB,CAAC;AAEnF,eAAO,MAAM,OAAO,4EAEnB,CAAC;AAEF,eAAO,MAAM,MAAM,6EAElB,CAAC;AAEF,eAAO,MAAM,gBAAgB,6EAE5B,CAAC;AAEF,eAAO,MAAM,MAAM,+FAGlB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,CAAC,WAAW,CAAwC,CAAC;AAEzG,eAAO,MAAM,cAAc,oHAc1B,CAAC;AAyEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,iFAU1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,yBAEzB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,oDAG/B,CAAC;AAEF,eAAO,MAAM,QAAQ,2EAEpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,2CAEvB,CAAC"}
|
package/dist/index.bun.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { allocUnsafe as _allocUnsafe, concatArrayBuffers as _concat } from 'bun';
|
|
2
2
|
import { Buffer as NodeBuffer } from 'node:buffer';
|
|
3
3
|
import { hash as _hash, timingSafeEqual as _timingSafeEqual } from 'node:crypto';
|
|
4
|
+
const _byteLength = /*#__PURE__*/ NodeBuffer.byteLength;
|
|
4
5
|
const _compare = /*#__PURE__*/ NodeBuffer.prototype.compare;
|
|
5
6
|
const _equals = /*#__PURE__*/ NodeBuffer.prototype.equals;
|
|
7
|
+
const _utf8Slice = /*#__PURE__*/ NodeBuffer.prototype.utf8Slice;
|
|
6
8
|
const textEncoder = new TextEncoder();
|
|
7
|
-
const textDecoder = new TextDecoder();
|
|
8
9
|
const toUint8Array = (buffer) => {
|
|
9
10
|
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
10
11
|
};
|
|
@@ -40,49 +41,144 @@ export const encodeUtf8Into = (to, str, offset, length) => {
|
|
|
40
41
|
const result = textEncoder.encodeInto(str, buffer);
|
|
41
42
|
return result.written;
|
|
42
43
|
};
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
const _fromCharCode = String.fromCharCode;
|
|
45
|
+
// fully unrolled short string decoder, inspired by cbor-x
|
|
46
|
+
// returns null if non-ASCII byte encountered, signaling fallback to utf8Slice
|
|
47
|
+
const _shortString = (from, p, length) => {
|
|
48
|
+
if (length < 4) {
|
|
49
|
+
if (length < 2) {
|
|
50
|
+
if (length === 0)
|
|
51
|
+
return '';
|
|
52
|
+
const a = from[p];
|
|
53
|
+
if (a & 0x80)
|
|
54
|
+
return null;
|
|
55
|
+
return _fromCharCode(a);
|
|
56
|
+
}
|
|
57
|
+
const a = from[p];
|
|
58
|
+
const b = from[p + 1];
|
|
59
|
+
if ((a | b) & 0x80)
|
|
60
|
+
return null;
|
|
61
|
+
if (length === 2)
|
|
62
|
+
return _fromCharCode(a, b);
|
|
63
|
+
const c = from[p + 2];
|
|
64
|
+
if (c & 0x80)
|
|
65
|
+
return null;
|
|
66
|
+
return _fromCharCode(a, b, c);
|
|
54
67
|
}
|
|
55
|
-
|
|
56
|
-
|
|
68
|
+
const a = from[p];
|
|
69
|
+
const b = from[p + 1];
|
|
70
|
+
const c = from[p + 2];
|
|
71
|
+
const d = from[p + 3];
|
|
72
|
+
if ((a | b | c | d) & 0x80)
|
|
73
|
+
return null;
|
|
74
|
+
if (length < 8) {
|
|
75
|
+
if (length === 4)
|
|
76
|
+
return _fromCharCode(a, b, c, d);
|
|
77
|
+
const e = from[p + 4];
|
|
78
|
+
if (e & 0x80)
|
|
79
|
+
return null;
|
|
80
|
+
if (length === 5)
|
|
81
|
+
return _fromCharCode(a, b, c, d, e);
|
|
82
|
+
const f = from[p + 5];
|
|
83
|
+
if (f & 0x80)
|
|
84
|
+
return null;
|
|
85
|
+
if (length === 6)
|
|
86
|
+
return _fromCharCode(a, b, c, d, e, f);
|
|
87
|
+
const g = from[p + 6];
|
|
88
|
+
if (g & 0x80)
|
|
89
|
+
return null;
|
|
90
|
+
return _fromCharCode(a, b, c, d, e, f, g);
|
|
57
91
|
}
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
92
|
+
const e = from[p + 4];
|
|
93
|
+
const f = from[p + 5];
|
|
94
|
+
const g = from[p + 6];
|
|
95
|
+
const h = from[p + 7];
|
|
96
|
+
if ((e | f | g | h) & 0x80)
|
|
97
|
+
return null;
|
|
98
|
+
if (length < 12) {
|
|
99
|
+
if (length === 8)
|
|
100
|
+
return _fromCharCode(a, b, c, d, e, f, g, h);
|
|
101
|
+
const i = from[p + 8];
|
|
102
|
+
if (i & 0x80)
|
|
103
|
+
return null;
|
|
104
|
+
if (length === 9)
|
|
105
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i);
|
|
106
|
+
const j = from[p + 9];
|
|
107
|
+
if (j & 0x80)
|
|
108
|
+
return null;
|
|
109
|
+
if (length === 10)
|
|
110
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j);
|
|
111
|
+
const k = from[p + 10];
|
|
112
|
+
if (k & 0x80)
|
|
113
|
+
return null;
|
|
114
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k);
|
|
61
115
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return
|
|
116
|
+
const i = from[p + 8];
|
|
117
|
+
const j = from[p + 9];
|
|
118
|
+
const k = from[p + 10];
|
|
119
|
+
const l = from[p + 11];
|
|
120
|
+
if ((i | j | k | l) & 0x80)
|
|
121
|
+
return null;
|
|
122
|
+
if (length === 12)
|
|
123
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l);
|
|
124
|
+
const m = from[p + 12];
|
|
125
|
+
if (m & 0x80)
|
|
126
|
+
return null;
|
|
127
|
+
if (length === 13)
|
|
128
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m);
|
|
129
|
+
const n = from[p + 13];
|
|
130
|
+
if (n & 0x80)
|
|
131
|
+
return null;
|
|
132
|
+
if (length === 14)
|
|
133
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n);
|
|
134
|
+
const o = from[p + 14];
|
|
135
|
+
if (o & 0x80)
|
|
136
|
+
return null;
|
|
137
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* decodes a UTF-8 string from a given buffer
|
|
141
|
+
* @param from source buffer
|
|
142
|
+
* @param offset byte offset to start reading from
|
|
143
|
+
* @param length number of bytes to read
|
|
144
|
+
* @returns decoded string
|
|
145
|
+
*/
|
|
146
|
+
export const decodeUtf8From = (from, offset = 0, length = from.length) => {
|
|
147
|
+
if (length <= 15) {
|
|
148
|
+
const result = _shortString(from, offset, length);
|
|
149
|
+
if (result !== null)
|
|
150
|
+
return result;
|
|
83
151
|
}
|
|
152
|
+
return _utf8Slice.call(from, offset, offset + length);
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* calculates the UTF-8 byte length of a string
|
|
156
|
+
* @param str string to measure
|
|
157
|
+
* @returns byte length when encoded as UTF-8
|
|
158
|
+
*/
|
|
159
|
+
export const getUtf8Length = (str) => {
|
|
160
|
+
return _byteLength(str, 'utf8');
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* checks if a string's UTF-8 byte length is within a given range
|
|
164
|
+
* @param str string to measure
|
|
165
|
+
* @param min minimum byte length (inclusive)
|
|
166
|
+
* @param max maximum byte length (inclusive)
|
|
167
|
+
* @returns true if byte length is within [min, max]
|
|
168
|
+
*/
|
|
169
|
+
export const isUtf8LengthInRange = (str, min, max) => {
|
|
170
|
+
const len = _byteLength(str, 'utf8');
|
|
171
|
+
return len >= min && len <= max;
|
|
84
172
|
};
|
|
85
173
|
export const toSha256 = async (buffer) => {
|
|
86
174
|
return toUint8Array(_hash('sha256', buffer, 'buffer'));
|
|
87
175
|
};
|
|
176
|
+
/**
|
|
177
|
+
* generates cryptographically secure random bytes
|
|
178
|
+
* @param size number of bytes to generate
|
|
179
|
+
* @returns buffer filled with random bytes
|
|
180
|
+
*/
|
|
181
|
+
export const randomBytes = (size) => {
|
|
182
|
+
return crypto.getRandomValues(new Uint8Array(size));
|
|
183
|
+
};
|
|
88
184
|
//# sourceMappingURL=index.bun.js.map
|
package/dist/index.bun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.bun.js","sourceRoot":"","sources":["../lib/index.bun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.bun.js","sourceRoot":"","sources":["../lib/index.bun.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,19 +10,19 @@ export declare const allocUnsafe: (size: number) => Uint8Array<ArrayBuffer>;
|
|
|
10
10
|
/**
|
|
11
11
|
* compares two Uint8Array buffers
|
|
12
12
|
*/
|
|
13
|
-
export declare const compare: (a: Uint8Array
|
|
13
|
+
export declare const compare: (a: Uint8Array<ArrayBufferLike>, b: Uint8Array<ArrayBufferLike>) => number;
|
|
14
14
|
/**
|
|
15
15
|
* checks if the two Uint8Array buffers are equal
|
|
16
16
|
*/
|
|
17
|
-
export declare const equals: (a: Uint8Array
|
|
17
|
+
export declare const equals: (a: Uint8Array<ArrayBufferLike>, b: Uint8Array<ArrayBufferLike>) => boolean;
|
|
18
18
|
/**
|
|
19
19
|
* checks if the two Uint8Array buffers are equal, timing-safe version
|
|
20
20
|
*/
|
|
21
|
-
export declare const timingSafeEquals: (a: Uint8Array
|
|
21
|
+
export declare const timingSafeEquals: (a: Uint8Array<ArrayBufferLike>, b: Uint8Array<ArrayBufferLike>) => boolean;
|
|
22
22
|
/**
|
|
23
23
|
* concatenates multiple Uint8Array buffers into one
|
|
24
24
|
*/
|
|
25
|
-
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array<ArrayBuffer>;
|
|
25
|
+
export declare const concat: (arrays: Uint8Array<ArrayBufferLike>[], size?: number | undefined) => Uint8Array<ArrayBuffer>;
|
|
26
26
|
/**
|
|
27
27
|
* encodes a UTF-8 string
|
|
28
28
|
*/
|
|
@@ -30,13 +30,38 @@ export declare const encodeUtf8: (str: string) => Uint8Array<ArrayBuffer>;
|
|
|
30
30
|
/**
|
|
31
31
|
* encodes a UTF-8 string into a given buffer
|
|
32
32
|
*/
|
|
33
|
-
export declare const encodeUtf8Into: (to: Uint8Array
|
|
33
|
+
export declare const encodeUtf8Into: (to: Uint8Array<ArrayBufferLike>, str: string, offset?: number | undefined, length?: number | undefined) => number;
|
|
34
34
|
/**
|
|
35
35
|
* decodes a UTF-8 string from a given buffer
|
|
36
|
+
* @param from source buffer
|
|
37
|
+
* @param offset byte offset to start reading from
|
|
38
|
+
* @param length number of bytes to read
|
|
39
|
+
* @returns decoded string
|
|
36
40
|
*/
|
|
37
|
-
export declare const decodeUtf8From: (from: Uint8Array
|
|
41
|
+
export declare const decodeUtf8From: (from: Uint8Array<ArrayBufferLike>, offset?: number, length?: number) => string;
|
|
42
|
+
/**
|
|
43
|
+
* calculates the UTF-8 byte length of a string
|
|
44
|
+
* @param str string to measure
|
|
45
|
+
* @returns byte length when encoded as UTF-8
|
|
46
|
+
*/
|
|
47
|
+
export declare const getUtf8Length: (str: string) => number;
|
|
48
|
+
/**
|
|
49
|
+
* checks if a string's UTF-8 byte length is within a given range.
|
|
50
|
+
* includes early-exit optimization when exceeding max length.
|
|
51
|
+
* @param str string to measure
|
|
52
|
+
* @param min minimum byte length (inclusive)
|
|
53
|
+
* @param max maximum byte length (inclusive)
|
|
54
|
+
* @returns true if byte length is within [min, max]
|
|
55
|
+
*/
|
|
56
|
+
export declare const isUtf8LengthInRange: (str: string, min: number, max: number) => boolean;
|
|
38
57
|
/**
|
|
39
58
|
* get a SHA-256 digest of this buffer
|
|
40
59
|
*/
|
|
41
60
|
export declare const toSha256: (buffer: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>;
|
|
61
|
+
/**
|
|
62
|
+
* generates cryptographically secure random bytes
|
|
63
|
+
* @param size number of bytes to generate
|
|
64
|
+
* @returns buffer filled with random bytes
|
|
65
|
+
*/
|
|
66
|
+
export declare const randomBytes: (size: number) => Uint8Array<ArrayBuffer>;
|
|
42
67
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,KAAK,2CAEjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,2CAAQ,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,OAAO,4EAyBnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,6EAelB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,6EAU5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,+FAuBlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,0CAEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,oHAc1B,CAAC;AAyEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,iFAU1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,yBAyCzB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,oDAwC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,uEAEpB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,2CAEvB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -110,47 +110,203 @@ export const encodeUtf8Into = (to, str, offset, length) => {
|
|
|
110
110
|
const result = textEncoder.encodeInto(str, buffer);
|
|
111
111
|
return result.written;
|
|
112
112
|
};
|
|
113
|
-
const
|
|
113
|
+
const _fromCharCode = String.fromCharCode;
|
|
114
|
+
// fully unrolled short string decoder, inspired by cbor-x
|
|
115
|
+
// returns null if non-ASCII byte encountered, signaling fallback to TextDecoder
|
|
116
|
+
const _shortString = (from, p, length) => {
|
|
117
|
+
if (length < 4) {
|
|
118
|
+
if (length < 2) {
|
|
119
|
+
if (length === 0)
|
|
120
|
+
return '';
|
|
121
|
+
const a = from[p];
|
|
122
|
+
if (a & 0x80)
|
|
123
|
+
return null;
|
|
124
|
+
return _fromCharCode(a);
|
|
125
|
+
}
|
|
126
|
+
const a = from[p];
|
|
127
|
+
const b = from[p + 1];
|
|
128
|
+
if ((a | b) & 0x80)
|
|
129
|
+
return null;
|
|
130
|
+
if (length === 2)
|
|
131
|
+
return _fromCharCode(a, b);
|
|
132
|
+
const c = from[p + 2];
|
|
133
|
+
if (c & 0x80)
|
|
134
|
+
return null;
|
|
135
|
+
return _fromCharCode(a, b, c);
|
|
136
|
+
}
|
|
137
|
+
const a = from[p];
|
|
138
|
+
const b = from[p + 1];
|
|
139
|
+
const c = from[p + 2];
|
|
140
|
+
const d = from[p + 3];
|
|
141
|
+
if ((a | b | c | d) & 0x80)
|
|
142
|
+
return null;
|
|
143
|
+
if (length < 8) {
|
|
144
|
+
if (length === 4)
|
|
145
|
+
return _fromCharCode(a, b, c, d);
|
|
146
|
+
const e = from[p + 4];
|
|
147
|
+
if (e & 0x80)
|
|
148
|
+
return null;
|
|
149
|
+
if (length === 5)
|
|
150
|
+
return _fromCharCode(a, b, c, d, e);
|
|
151
|
+
const f = from[p + 5];
|
|
152
|
+
if (f & 0x80)
|
|
153
|
+
return null;
|
|
154
|
+
if (length === 6)
|
|
155
|
+
return _fromCharCode(a, b, c, d, e, f);
|
|
156
|
+
const g = from[p + 6];
|
|
157
|
+
if (g & 0x80)
|
|
158
|
+
return null;
|
|
159
|
+
return _fromCharCode(a, b, c, d, e, f, g);
|
|
160
|
+
}
|
|
161
|
+
const e = from[p + 4];
|
|
162
|
+
const f = from[p + 5];
|
|
163
|
+
const g = from[p + 6];
|
|
164
|
+
const h = from[p + 7];
|
|
165
|
+
if ((e | f | g | h) & 0x80)
|
|
166
|
+
return null;
|
|
167
|
+
if (length < 12) {
|
|
168
|
+
if (length === 8)
|
|
169
|
+
return _fromCharCode(a, b, c, d, e, f, g, h);
|
|
170
|
+
const i = from[p + 8];
|
|
171
|
+
if (i & 0x80)
|
|
172
|
+
return null;
|
|
173
|
+
if (length === 9)
|
|
174
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i);
|
|
175
|
+
const j = from[p + 9];
|
|
176
|
+
if (j & 0x80)
|
|
177
|
+
return null;
|
|
178
|
+
if (length === 10)
|
|
179
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j);
|
|
180
|
+
const k = from[p + 10];
|
|
181
|
+
if (k & 0x80)
|
|
182
|
+
return null;
|
|
183
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k);
|
|
184
|
+
}
|
|
185
|
+
const i = from[p + 8];
|
|
186
|
+
const j = from[p + 9];
|
|
187
|
+
const k = from[p + 10];
|
|
188
|
+
const l = from[p + 11];
|
|
189
|
+
if ((i | j | k | l) & 0x80)
|
|
190
|
+
return null;
|
|
191
|
+
if (length === 12)
|
|
192
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l);
|
|
193
|
+
const m = from[p + 12];
|
|
194
|
+
if (m & 0x80)
|
|
195
|
+
return null;
|
|
196
|
+
if (length === 13)
|
|
197
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m);
|
|
198
|
+
const n = from[p + 13];
|
|
199
|
+
if (n & 0x80)
|
|
200
|
+
return null;
|
|
201
|
+
if (length === 14)
|
|
202
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n);
|
|
203
|
+
const o = from[p + 14];
|
|
204
|
+
if (o & 0x80)
|
|
205
|
+
return null;
|
|
206
|
+
return _fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
|
|
207
|
+
};
|
|
114
208
|
/**
|
|
115
209
|
* decodes a UTF-8 string from a given buffer
|
|
210
|
+
* @param from source buffer
|
|
211
|
+
* @param offset byte offset to start reading from
|
|
212
|
+
* @param length number of bytes to read
|
|
213
|
+
* @returns decoded string
|
|
116
214
|
*/
|
|
117
|
-
export const decodeUtf8From = (from, offset, length) => {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
215
|
+
export const decodeUtf8From = (from, offset = 0, length = from.length) => {
|
|
216
|
+
if (length <= 15) {
|
|
217
|
+
const result = _shortString(from, offset, length);
|
|
218
|
+
if (result !== null)
|
|
219
|
+
return result;
|
|
121
220
|
}
|
|
122
|
-
|
|
123
|
-
|
|
221
|
+
return textDecoder.decode(from.subarray(offset, offset + length));
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* calculates the UTF-8 byte length of a string
|
|
225
|
+
* @param str string to measure
|
|
226
|
+
* @returns byte length when encoded as UTF-8
|
|
227
|
+
*/
|
|
228
|
+
export const getUtf8Length = (str) => {
|
|
229
|
+
const len = str.length;
|
|
230
|
+
let u16pos = 0;
|
|
231
|
+
let u8pos = 0;
|
|
232
|
+
// ASCII fast-path: batch process 4 chars at a time
|
|
233
|
+
while (u16pos + 3 < len) {
|
|
234
|
+
const a = str.charCodeAt(u16pos);
|
|
235
|
+
const b = str.charCodeAt(u16pos + 1);
|
|
236
|
+
const c = str.charCodeAt(u16pos + 2);
|
|
237
|
+
const d = str.charCodeAt(u16pos + 3);
|
|
238
|
+
if ((a | b | c | d) >= 0x80) {
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
u16pos += 4;
|
|
242
|
+
u8pos += 4;
|
|
124
243
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
{
|
|
133
|
-
let str = '';
|
|
134
|
-
let idx = 0;
|
|
135
|
-
for (; idx + 3 < end; idx += 4) {
|
|
136
|
-
const a = buffer[idx];
|
|
137
|
-
const b = buffer[idx + 1];
|
|
138
|
-
const c = buffer[idx + 2];
|
|
139
|
-
const d = buffer[idx + 3];
|
|
140
|
-
if ((a | b | c | d) & 0x80) {
|
|
141
|
-
return str + textDecoder.decode(buffer.subarray(idx));
|
|
142
|
-
}
|
|
143
|
-
str += fromCharCode(a, b, c, d);
|
|
244
|
+
// handle remaining chars
|
|
245
|
+
while (u16pos < len) {
|
|
246
|
+
const code = str.charCodeAt(u16pos);
|
|
247
|
+
if (code < 0x80) {
|
|
248
|
+
u16pos += 1;
|
|
249
|
+
u8pos += 1;
|
|
144
250
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
251
|
+
else if (code < 0x800) {
|
|
252
|
+
u16pos += 1;
|
|
253
|
+
u8pos += 2;
|
|
254
|
+
}
|
|
255
|
+
else if (code < 0xd800 || code > 0xdbff) {
|
|
256
|
+
u16pos += 1;
|
|
257
|
+
u8pos += 3;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
u16pos += 2;
|
|
261
|
+
u8pos += 4;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return u8pos;
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* checks if a string's UTF-8 byte length is within a given range.
|
|
268
|
+
* includes early-exit optimization when exceeding max length.
|
|
269
|
+
* @param str string to measure
|
|
270
|
+
* @param min minimum byte length (inclusive)
|
|
271
|
+
* @param max maximum byte length (inclusive)
|
|
272
|
+
* @returns true if byte length is within [min, max]
|
|
273
|
+
*/
|
|
274
|
+
export const isUtf8LengthInRange = (str, min, max) => {
|
|
275
|
+
const len = str.length;
|
|
276
|
+
// fast path: if max possible UTF-8 length is below min, fail
|
|
277
|
+
if (len * 3 < min) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
// fast path: if UTF-16 length satisfies min and max possible satisfies max
|
|
281
|
+
if (len >= min && len * 3 <= max) {
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
let u16pos = 0;
|
|
285
|
+
let u8pos = 0;
|
|
286
|
+
while (u16pos < len) {
|
|
287
|
+
const code = str.charCodeAt(u16pos);
|
|
288
|
+
if (code < 0x80) {
|
|
289
|
+
u16pos += 1;
|
|
290
|
+
u8pos += 1;
|
|
291
|
+
}
|
|
292
|
+
else if (code < 0x800) {
|
|
293
|
+
u16pos += 1;
|
|
294
|
+
u8pos += 2;
|
|
295
|
+
}
|
|
296
|
+
else if (code < 0xd800 || code > 0xdbff) {
|
|
297
|
+
u16pos += 1;
|
|
298
|
+
u8pos += 3;
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
u16pos += 2;
|
|
302
|
+
u8pos += 4;
|
|
303
|
+
}
|
|
304
|
+
// early exit once we exceed max
|
|
305
|
+
if (u8pos > max) {
|
|
306
|
+
return false;
|
|
151
307
|
}
|
|
152
|
-
return str;
|
|
153
308
|
}
|
|
309
|
+
return u8pos >= min;
|
|
154
310
|
};
|
|
155
311
|
/**
|
|
156
312
|
* get a SHA-256 digest of this buffer
|
|
@@ -158,4 +314,12 @@ export const decodeUtf8From = (from, offset, length) => {
|
|
|
158
314
|
export const toSha256 = async (buffer) => {
|
|
159
315
|
return new Uint8Array(await subtle.digest('SHA-256', buffer));
|
|
160
316
|
};
|
|
317
|
+
/**
|
|
318
|
+
* generates cryptographically secure random bytes
|
|
319
|
+
* @param size number of bytes to generate
|
|
320
|
+
* @returns buffer filled with random bytes
|
|
321
|
+
*/
|
|
322
|
+
export const randomBytes = (size) => {
|
|
323
|
+
return crypto.getRandomValues(new Uint8Array(size));
|
|
324
|
+
};
|
|
161
325
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|