@atcute/uint8array 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +12 -15
- package/dist/index.bun.d.ts +8 -4
- package/dist/index.bun.js +56 -5
- package/dist/index.bun.js.map +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/index.node.d.ts +5 -4
- package/dist/index.node.js +4 -0
- package/dist/index.node.js.map +1 -1
- package/lib/index.bun.ts +73 -14
- package/lib/index.node.ts +13 -8
- package/lib/index.ts +12 -5
- package/package.json +3 -3
package/LICENSE
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
3
|
-
in the Software without restriction, including without limitation the rights
|
|
4
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
5
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
6
|
-
furnished to do so, subject to the following conditions:
|
|
1
|
+
BSD Zero Clause License
|
|
7
2
|
|
|
8
|
-
|
|
9
|
-
copies or substantial portions of the Software.
|
|
3
|
+
Copyright (c) 2025 Mary
|
|
10
4
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
+
PERFORMANCE OF THIS SOFTWARE.
|
package/dist/index.bun.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
export declare const alloc: (size: number) => Uint8Array
|
|
2
|
-
export declare const allocUnsafe: (size: number) => Uint8Array
|
|
1
|
+
export declare const alloc: (size: number) => Uint8Array<ArrayBuffer>;
|
|
2
|
+
export declare const allocUnsafe: (size: number) => Uint8Array<ArrayBuffer>;
|
|
3
3
|
export declare const compare: (a: Uint8Array, b: Uint8Array) => number;
|
|
4
4
|
export declare const equals: (a: Uint8Array, b: Uint8Array) => boolean;
|
|
5
5
|
export declare const timingSafeEquals: (a: Uint8Array, b: Uint8Array) => boolean;
|
|
6
|
-
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array
|
|
6
|
+
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array<ArrayBuffer>;
|
|
7
|
+
export declare const encodeUtf8: (str: string) => Uint8Array<ArrayBuffer>;
|
|
7
8
|
export declare const encodeUtf8Into: (to: Uint8Array, str: string, offset?: number, length?: number) => number;
|
|
9
|
+
/**
|
|
10
|
+
* decodes a UTF-8 string from a given buffer
|
|
11
|
+
*/
|
|
8
12
|
export declare const decodeUtf8From: (from: Uint8Array, offset?: number, length?: number) => string;
|
|
9
|
-
export declare const toSha256: (buffer: Uint8Array) => Promise<Uint8Array
|
|
13
|
+
export declare const toSha256: (buffer: Uint8Array) => Promise<Uint8Array<ArrayBuffer>>;
|
package/dist/index.bun.js
CHANGED
|
@@ -3,8 +3,8 @@ import { Buffer as NodeBuffer } from 'node:buffer';
|
|
|
3
3
|
import { hash as _hash, timingSafeEqual as _timingSafeEqual } from 'node:crypto';
|
|
4
4
|
const _compare = /*#__PURE__*/ NodeBuffer.prototype.compare;
|
|
5
5
|
const _equals = /*#__PURE__*/ NodeBuffer.prototype.equals;
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const textEncoder = new TextEncoder();
|
|
7
|
+
const textDecoder = new TextDecoder();
|
|
8
8
|
const toUint8Array = (buffer) => {
|
|
9
9
|
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
10
10
|
};
|
|
@@ -25,11 +25,62 @@ export const concat = (arrays, size) => {
|
|
|
25
25
|
// Bun's typings is slightly wrong, *you can* pass `size: undefined` with `asUint8Array: true`
|
|
26
26
|
return _concat(arrays, size, true);
|
|
27
27
|
};
|
|
28
|
+
export const encodeUtf8 = textEncoder.encode.bind(textEncoder);
|
|
28
29
|
export const encodeUtf8Into = (to, str, offset, length) => {
|
|
29
|
-
|
|
30
|
+
let buffer;
|
|
31
|
+
if (offset === undefined) {
|
|
32
|
+
buffer = to;
|
|
33
|
+
}
|
|
34
|
+
else if (length === undefined) {
|
|
35
|
+
buffer = to.subarray(offset);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
buffer = to.subarray(offset, offset + length);
|
|
39
|
+
}
|
|
40
|
+
const result = textEncoder.encodeInto(str, buffer);
|
|
41
|
+
return result.written;
|
|
30
42
|
};
|
|
31
|
-
|
|
32
|
-
|
|
43
|
+
const fromCharCode = String.fromCharCode;
|
|
44
|
+
/**
|
|
45
|
+
* decodes a UTF-8 string from a given buffer
|
|
46
|
+
*/
|
|
47
|
+
export const decodeUtf8From = (from, offset, length) => {
|
|
48
|
+
let buffer;
|
|
49
|
+
if (offset === undefined) {
|
|
50
|
+
buffer = from;
|
|
51
|
+
}
|
|
52
|
+
else if (length === undefined) {
|
|
53
|
+
buffer = from.subarray(offset);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
buffer = from.subarray(offset, offset + length);
|
|
57
|
+
}
|
|
58
|
+
const end = buffer.length;
|
|
59
|
+
if (end > 24) {
|
|
60
|
+
return textDecoder.decode(buffer);
|
|
61
|
+
}
|
|
62
|
+
{
|
|
63
|
+
let str = '';
|
|
64
|
+
let idx = 0;
|
|
65
|
+
for (; idx + 3 < end; idx += 4) {
|
|
66
|
+
const a = buffer[idx];
|
|
67
|
+
const b = buffer[idx + 1];
|
|
68
|
+
const c = buffer[idx + 2];
|
|
69
|
+
const d = buffer[idx + 3];
|
|
70
|
+
if ((a | b | c | d) & 0x80) {
|
|
71
|
+
return str + textDecoder.decode(buffer.subarray(idx));
|
|
72
|
+
}
|
|
73
|
+
str += fromCharCode(a, b, c, d);
|
|
74
|
+
}
|
|
75
|
+
for (; idx < end; idx++) {
|
|
76
|
+
const x = buffer[idx];
|
|
77
|
+
if (x & 0x80) {
|
|
78
|
+
return str + textDecoder.decode(buffer.subarray(idx));
|
|
79
|
+
}
|
|
80
|
+
str += fromCharCode(x);
|
|
81
|
+
}
|
|
82
|
+
return str;
|
|
83
|
+
}
|
|
33
84
|
};
|
|
34
85
|
export const toSha256 = async (buffer) => {
|
|
35
86
|
return toUint8Array(_hash('sha256', buffer, 'buffer'));
|
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;AAEjF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;AAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;
|
|
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;AAEjF,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;AAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;AAE1D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,YAAY,GAAG,CAAC,MAAkB,EAAE,EAAE;IAC3C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAA2B,EAAE;IAC9D,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAA8C,YAAY,CAAC;AAEnF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAa,EAAE,CAAa,EAAU,EAAE;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAa,EAAE,CAAa,EAAW,EAAE;IAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAW,EAAE;IACzE,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAE,IAAa,EAA2B,EAAE;IACtF,8FAA8F;IAC9F,OAAO,OAAO,CAAC,MAAM,EAAE,IAAc,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAA6C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEzG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAc,EAAE,GAAW,EAAE,MAAe,EAAE,MAAe,EAAU,EAAE;IACvG,IAAI,MAAkB,CAAC;IAEvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,EAAE,CAAC;IACb,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEnD,OAAO,MAAM,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAE,MAAe,EAAE,MAAe,EAAU,EAAE;IAC5F,IAAI,MAAkB,CAAC;IAEvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,IAAI,CAAC;IACf,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;QACd,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,CAAC;QACA,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAE1B,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC5B,OAAO,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YAED,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAEtB,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;gBACd,OAAO,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YAED,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAkB,EAAoC,EAAE;IACtF,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAA4B,CAAC;AACnF,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* creates an Uint8Array of the requested size, with the contents zeroed
|
|
3
3
|
*/
|
|
4
|
-
export declare const alloc: (size: number) => Uint8Array
|
|
4
|
+
export declare const alloc: (size: number) => Uint8Array<ArrayBuffer>;
|
|
5
5
|
/**
|
|
6
6
|
* creates an Uint8Array of the requested size, where the contents may not be
|
|
7
7
|
* zeroed out. only use if you're certain that the contents will be overwritten
|
|
8
8
|
*/
|
|
9
|
-
export declare const allocUnsafe: (size: number) => Uint8Array
|
|
9
|
+
export declare const allocUnsafe: (size: number) => Uint8Array<ArrayBuffer>;
|
|
10
10
|
/**
|
|
11
11
|
* compares two Uint8Array buffers
|
|
12
12
|
*/
|
|
@@ -22,16 +22,20 @@ export declare const timingSafeEquals: (a: Uint8Array, b: Uint8Array) => boolean
|
|
|
22
22
|
/**
|
|
23
23
|
* concatenates multiple Uint8Array buffers into one
|
|
24
24
|
*/
|
|
25
|
-
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array
|
|
25
|
+
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array<ArrayBuffer>;
|
|
26
26
|
/**
|
|
27
|
-
* encodes a UTF-8 string
|
|
27
|
+
* encodes a UTF-8 string
|
|
28
|
+
*/
|
|
29
|
+
export declare const encodeUtf8: (str: string) => Uint8Array<ArrayBuffer>;
|
|
30
|
+
/**
|
|
31
|
+
* encodes a UTF-8 string into a given buffer
|
|
28
32
|
*/
|
|
29
33
|
export declare const encodeUtf8Into: (to: Uint8Array, str: string, offset?: number, length?: number) => number;
|
|
30
34
|
/**
|
|
31
|
-
* decodes a UTF-8 string from a buffer
|
|
35
|
+
* decodes a UTF-8 string from a given buffer
|
|
32
36
|
*/
|
|
33
37
|
export declare const decodeUtf8From: (from: Uint8Array, offset?: number, length?: number) => string;
|
|
34
38
|
/**
|
|
35
39
|
* get a SHA-256 digest of this buffer
|
|
36
40
|
*/
|
|
37
|
-
export declare const toSha256: (buffer: Uint8Array) => Promise<Uint8Array
|
|
41
|
+
export declare const toSha256: (buffer: Uint8Array<ArrayBuffer>) => Promise<Uint8Array<ArrayBuffer>>;
|
package/dist/index.js
CHANGED
|
@@ -88,7 +88,13 @@ export const concat = (arrays, size) => {
|
|
|
88
88
|
return buffer;
|
|
89
89
|
};
|
|
90
90
|
/**
|
|
91
|
-
* encodes a UTF-8 string
|
|
91
|
+
* encodes a UTF-8 string
|
|
92
|
+
*/
|
|
93
|
+
export const encodeUtf8 = (str) => {
|
|
94
|
+
return textEncoder.encode(str);
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* encodes a UTF-8 string into a given buffer
|
|
92
98
|
*/
|
|
93
99
|
export const encodeUtf8Into = (to, str, offset, length) => {
|
|
94
100
|
let buffer;
|
|
@@ -106,7 +112,7 @@ export const encodeUtf8Into = (to, str, offset, length) => {
|
|
|
106
112
|
};
|
|
107
113
|
const fromCharCode = String.fromCharCode;
|
|
108
114
|
/**
|
|
109
|
-
* decodes a UTF-8 string from a buffer
|
|
115
|
+
* decodes a UTF-8 string from a given buffer
|
|
110
116
|
*/
|
|
111
117
|
export const decodeUtf8From = (from, offset, length) => {
|
|
112
118
|
let buffer;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.node.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export declare const alloc: (size: number) => Uint8Array
|
|
2
|
-
export declare const allocUnsafe: (size: number) => Uint8Array
|
|
1
|
+
export declare const alloc: (size: number) => Uint8Array<ArrayBuffer>;
|
|
2
|
+
export declare const allocUnsafe: (size: number) => Uint8Array<ArrayBuffer>;
|
|
3
3
|
export declare const compare: (a: Uint8Array, b: Uint8Array) => number;
|
|
4
4
|
export declare const equals: (a: Uint8Array, b: Uint8Array) => boolean;
|
|
5
5
|
export declare const timingSafeEquals: (a: Uint8Array, b: Uint8Array) => boolean;
|
|
6
|
-
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array
|
|
6
|
+
export declare const concat: (arrays: Uint8Array[], size?: number) => Uint8Array<ArrayBuffer>;
|
|
7
|
+
export declare const encodeUtf8: (str: string) => Uint8Array<ArrayBuffer>;
|
|
7
8
|
export declare const encodeUtf8Into: (to: Uint8Array, str: string, offset?: number, length?: number) => number;
|
|
8
9
|
export declare const decodeUtf8From: (from: Uint8Array, offset?: number, length?: number) => string;
|
|
9
|
-
export declare const toSha256: (buffer: Uint8Array) => Promise<Uint8Array
|
|
10
|
+
export declare const toSha256: (buffer: Uint8Array) => Promise<Uint8Array<ArrayBuffer>>;
|
package/dist/index.node.js
CHANGED
|
@@ -3,6 +3,7 @@ import { hash as _hash, timingSafeEqual as _timingSafeEqual } from 'node:crypto'
|
|
|
3
3
|
const _alloc = /*#__PURE__*/ NodeBuffer.alloc;
|
|
4
4
|
const _allocUnsafe = /*#__PURE__*/ NodeBuffer.allocUnsafe;
|
|
5
5
|
const _concat = /*#__PURE__*/ NodeBuffer.concat;
|
|
6
|
+
const _from = /*#__PURE__*/ NodeBuffer.from;
|
|
6
7
|
const _compare = /*#__PURE__*/ NodeBuffer.prototype.compare;
|
|
7
8
|
const _equals = /*#__PURE__*/ NodeBuffer.prototype.equals;
|
|
8
9
|
const _utf8Slice = /*#__PURE__*/ NodeBuffer.prototype.utf8Slice;
|
|
@@ -28,6 +29,9 @@ export const timingSafeEquals = (a, b) => {
|
|
|
28
29
|
export const concat = (arrays, size) => {
|
|
29
30
|
return toUint8Array(_concat(arrays, size));
|
|
30
31
|
};
|
|
32
|
+
export const encodeUtf8 = (str) => {
|
|
33
|
+
return toUint8Array(_from(str, 'utf8'));
|
|
34
|
+
};
|
|
31
35
|
export const encodeUtf8Into = (to, str, offset, length) => {
|
|
32
36
|
return _utf8Write.call(to, str, offset, length);
|
|
33
37
|
};
|
package/dist/index.node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.node.js","sourceRoot":"","sources":["../lib/index.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;AAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.node.js","sourceRoot":"","sources":["../lib/index.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;AAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;AAChD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;AAE5C,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;AAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;AAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;AAChE,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;AAEhE,MAAM,YAAY,GAAG,CAAC,MAAkB,EAAE,EAAE;IAC3C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAA2B,EAAE;IAC9D,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAA4B,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAA2B,EAAE;IACpE,OAAO,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAA4B,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAa,EAAE,CAAa,EAAU,EAAE;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAa,EAAE,CAAa,EAAW,EAAE;IAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAW,EAAE;IACzE,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAE,IAAa,EAA2B,EAAE;IACtF,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAA4B,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAA2B,EAAE;IAClE,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAA4B,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAc,EAAE,GAAW,EAAE,MAAe,EAAE,MAAe,EAAU,EAAE;IACvG,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,IAAgB,EAChB,SAAiB,CAAC,EAClB,SAAiB,IAAI,CAAC,MAAM,EACnB,EAAE;IACX,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAkB,EAAoC,EAAE;IACtF,OAAO,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAA4B,CAAC;AACnF,CAAC,CAAC"}
|
package/lib/index.bun.ts
CHANGED
|
@@ -5,18 +5,19 @@ import { hash as _hash, timingSafeEqual as _timingSafeEqual } from 'node:crypto'
|
|
|
5
5
|
|
|
6
6
|
const _compare = /*#__PURE__*/ NodeBuffer.prototype.compare;
|
|
7
7
|
const _equals = /*#__PURE__*/ NodeBuffer.prototype.equals;
|
|
8
|
-
|
|
9
|
-
const
|
|
8
|
+
|
|
9
|
+
const textEncoder = new TextEncoder();
|
|
10
|
+
const textDecoder = new TextDecoder();
|
|
10
11
|
|
|
11
12
|
const toUint8Array = (buffer: NodeBuffer) => {
|
|
12
13
|
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
13
14
|
};
|
|
14
15
|
|
|
15
|
-
export const alloc = (size: number): Uint8Array => {
|
|
16
|
+
export const alloc = (size: number): Uint8Array<ArrayBuffer> => {
|
|
16
17
|
return new Uint8Array(size);
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
export const allocUnsafe: (size: number) => Uint8Array = _allocUnsafe;
|
|
20
|
+
export const allocUnsafe: (size: number) => Uint8Array<ArrayBuffer> = _allocUnsafe;
|
|
20
21
|
|
|
21
22
|
export const compare = (a: Uint8Array, b: Uint8Array): number => {
|
|
22
23
|
return _compare.call(a, b);
|
|
@@ -30,23 +31,81 @@ export const timingSafeEquals = (a: Uint8Array, b: Uint8Array): boolean => {
|
|
|
30
31
|
return _timingSafeEqual(a, b);
|
|
31
32
|
};
|
|
32
33
|
|
|
33
|
-
export const concat = (arrays: Uint8Array[], size?: number): Uint8Array => {
|
|
34
|
+
export const concat = (arrays: Uint8Array[], size?: number): Uint8Array<ArrayBuffer> => {
|
|
34
35
|
// Bun's typings is slightly wrong, *you can* pass `size: undefined` with `asUint8Array: true`
|
|
35
36
|
return _concat(arrays, size as number, true);
|
|
36
37
|
};
|
|
37
38
|
|
|
39
|
+
export const encodeUtf8: (str: string) => Uint8Array<ArrayBuffer> = textEncoder.encode.bind(textEncoder);
|
|
40
|
+
|
|
38
41
|
export const encodeUtf8Into = (to: Uint8Array, str: string, offset?: number, length?: number): number => {
|
|
39
|
-
|
|
42
|
+
let buffer: Uint8Array;
|
|
43
|
+
|
|
44
|
+
if (offset === undefined) {
|
|
45
|
+
buffer = to;
|
|
46
|
+
} else if (length === undefined) {
|
|
47
|
+
buffer = to.subarray(offset);
|
|
48
|
+
} else {
|
|
49
|
+
buffer = to.subarray(offset, offset + length);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const result = textEncoder.encodeInto(str, buffer);
|
|
53
|
+
|
|
54
|
+
return result.written;
|
|
40
55
|
};
|
|
41
56
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
const fromCharCode = String.fromCharCode;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* decodes a UTF-8 string from a given buffer
|
|
61
|
+
*/
|
|
62
|
+
export const decodeUtf8From = (from: Uint8Array, offset?: number, length?: number): string => {
|
|
63
|
+
let buffer: Uint8Array;
|
|
64
|
+
|
|
65
|
+
if (offset === undefined) {
|
|
66
|
+
buffer = from;
|
|
67
|
+
} else if (length === undefined) {
|
|
68
|
+
buffer = from.subarray(offset);
|
|
69
|
+
} else {
|
|
70
|
+
buffer = from.subarray(offset, offset + length);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const end = buffer.length;
|
|
74
|
+
if (end > 24) {
|
|
75
|
+
return textDecoder.decode(buffer);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
{
|
|
79
|
+
let str = '';
|
|
80
|
+
let idx = 0;
|
|
81
|
+
|
|
82
|
+
for (; idx + 3 < end; idx += 4) {
|
|
83
|
+
const a = buffer[idx];
|
|
84
|
+
const b = buffer[idx + 1];
|
|
85
|
+
const c = buffer[idx + 2];
|
|
86
|
+
const d = buffer[idx + 3];
|
|
87
|
+
|
|
88
|
+
if ((a | b | c | d) & 0x80) {
|
|
89
|
+
return str + textDecoder.decode(buffer.subarray(idx));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
str += fromCharCode(a, b, c, d);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
for (; idx < end; idx++) {
|
|
96
|
+
const x = buffer[idx];
|
|
97
|
+
|
|
98
|
+
if (x & 0x80) {
|
|
99
|
+
return str + textDecoder.decode(buffer.subarray(idx));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
str += fromCharCode(x);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return str;
|
|
106
|
+
}
|
|
48
107
|
};
|
|
49
108
|
|
|
50
|
-
export const toSha256 = async (buffer: Uint8Array): Promise<Uint8Array
|
|
51
|
-
return toUint8Array(_hash('sha256', buffer, 'buffer'))
|
|
109
|
+
export const toSha256 = async (buffer: Uint8Array): Promise<Uint8Array<ArrayBuffer>> => {
|
|
110
|
+
return toUint8Array(_hash('sha256', buffer, 'buffer')) as Uint8Array<ArrayBuffer>;
|
|
52
111
|
};
|
package/lib/index.node.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { hash as _hash, timingSafeEqual as _timingSafeEqual } from 'node:crypto'
|
|
|
4
4
|
const _alloc = /*#__PURE__*/ NodeBuffer.alloc;
|
|
5
5
|
const _allocUnsafe = /*#__PURE__*/ NodeBuffer.allocUnsafe;
|
|
6
6
|
const _concat = /*#__PURE__*/ NodeBuffer.concat;
|
|
7
|
+
const _from = /*#__PURE__*/ NodeBuffer.from;
|
|
7
8
|
|
|
8
9
|
const _compare = /*#__PURE__*/ NodeBuffer.prototype.compare;
|
|
9
10
|
const _equals = /*#__PURE__*/ NodeBuffer.prototype.equals;
|
|
@@ -14,12 +15,12 @@ const toUint8Array = (buffer: NodeBuffer) => {
|
|
|
14
15
|
return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
15
16
|
};
|
|
16
17
|
|
|
17
|
-
export const alloc = (size: number): Uint8Array => {
|
|
18
|
-
return toUint8Array(_alloc(size))
|
|
18
|
+
export const alloc = (size: number): Uint8Array<ArrayBuffer> => {
|
|
19
|
+
return toUint8Array(_alloc(size)) as Uint8Array<ArrayBuffer>;
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
export const allocUnsafe = (size: number): Uint8Array => {
|
|
22
|
-
return toUint8Array(_allocUnsafe(size))
|
|
22
|
+
export const allocUnsafe = (size: number): Uint8Array<ArrayBuffer> => {
|
|
23
|
+
return toUint8Array(_allocUnsafe(size)) as Uint8Array<ArrayBuffer>;
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
export const compare = (a: Uint8Array, b: Uint8Array): number => {
|
|
@@ -34,8 +35,12 @@ export const timingSafeEquals = (a: Uint8Array, b: Uint8Array): boolean => {
|
|
|
34
35
|
return _timingSafeEqual(a, b);
|
|
35
36
|
};
|
|
36
37
|
|
|
37
|
-
export const concat = (arrays: Uint8Array[], size?: number): Uint8Array => {
|
|
38
|
-
return toUint8Array(_concat(arrays, size))
|
|
38
|
+
export const concat = (arrays: Uint8Array[], size?: number): Uint8Array<ArrayBuffer> => {
|
|
39
|
+
return toUint8Array(_concat(arrays, size)) as Uint8Array<ArrayBuffer>;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const encodeUtf8 = (str: string): Uint8Array<ArrayBuffer> => {
|
|
43
|
+
return toUint8Array(_from(str, 'utf8')) as Uint8Array<ArrayBuffer>;
|
|
39
44
|
};
|
|
40
45
|
|
|
41
46
|
export const encodeUtf8Into = (to: Uint8Array, str: string, offset?: number, length?: number): number => {
|
|
@@ -50,6 +55,6 @@ export const decodeUtf8From = (
|
|
|
50
55
|
return _utf8Slice.call(from, offset, offset + length);
|
|
51
56
|
};
|
|
52
57
|
|
|
53
|
-
export const toSha256 = async (buffer: Uint8Array): Promise<Uint8Array
|
|
54
|
-
return toUint8Array(_hash('sha256', buffer, 'buffer'))
|
|
58
|
+
export const toSha256 = async (buffer: Uint8Array): Promise<Uint8Array<ArrayBuffer>> => {
|
|
59
|
+
return toUint8Array(_hash('sha256', buffer, 'buffer')) as Uint8Array<ArrayBuffer>;
|
|
55
60
|
};
|
package/lib/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ const subtle = crypto.subtle;
|
|
|
6
6
|
/**
|
|
7
7
|
* creates an Uint8Array of the requested size, with the contents zeroed
|
|
8
8
|
*/
|
|
9
|
-
export const alloc = (size: number): Uint8Array => {
|
|
9
|
+
export const alloc = (size: number): Uint8Array<ArrayBuffer> => {
|
|
10
10
|
return new Uint8Array(size);
|
|
11
11
|
};
|
|
12
12
|
|
|
@@ -84,7 +84,7 @@ export const timingSafeEquals = (a: Uint8Array, b: Uint8Array): boolean => {
|
|
|
84
84
|
/**
|
|
85
85
|
* concatenates multiple Uint8Array buffers into one
|
|
86
86
|
*/
|
|
87
|
-
export const concat = (arrays: Uint8Array[], size?: number): Uint8Array => {
|
|
87
|
+
export const concat = (arrays: Uint8Array[], size?: number): Uint8Array<ArrayBuffer> => {
|
|
88
88
|
let written = 0;
|
|
89
89
|
|
|
90
90
|
let len = arrays.length;
|
|
@@ -110,7 +110,14 @@ export const concat = (arrays: Uint8Array[], size?: number): Uint8Array => {
|
|
|
110
110
|
};
|
|
111
111
|
|
|
112
112
|
/**
|
|
113
|
-
* encodes a UTF-8 string
|
|
113
|
+
* encodes a UTF-8 string
|
|
114
|
+
*/
|
|
115
|
+
export const encodeUtf8 = (str: string): Uint8Array<ArrayBuffer> => {
|
|
116
|
+
return textEncoder.encode(str);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* encodes a UTF-8 string into a given buffer
|
|
114
121
|
*/
|
|
115
122
|
export const encodeUtf8Into = (to: Uint8Array, str: string, offset?: number, length?: number): number => {
|
|
116
123
|
let buffer: Uint8Array;
|
|
@@ -131,7 +138,7 @@ export const encodeUtf8Into = (to: Uint8Array, str: string, offset?: number, len
|
|
|
131
138
|
const fromCharCode = String.fromCharCode;
|
|
132
139
|
|
|
133
140
|
/**
|
|
134
|
-
* decodes a UTF-8 string from a buffer
|
|
141
|
+
* decodes a UTF-8 string from a given buffer
|
|
135
142
|
*/
|
|
136
143
|
export const decodeUtf8From = (from: Uint8Array, offset?: number, length?: number): string => {
|
|
137
144
|
let buffer: Uint8Array;
|
|
@@ -183,6 +190,6 @@ export const decodeUtf8From = (from: Uint8Array, offset?: number, length?: numbe
|
|
|
183
190
|
/**
|
|
184
191
|
* get a SHA-256 digest of this buffer
|
|
185
192
|
*/
|
|
186
|
-
export const toSha256 = async (buffer: Uint8Array): Promise<Uint8Array
|
|
193
|
+
export const toSha256 = async (buffer: Uint8Array<ArrayBuffer>): Promise<Uint8Array<ArrayBuffer>> => {
|
|
187
194
|
return new Uint8Array(await subtle.digest('SHA-256', buffer));
|
|
188
195
|
};
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@atcute/uint8array",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"description": "uint8array utilities",
|
|
6
|
-
"license": "
|
|
6
|
+
"license": "0BSD",
|
|
7
7
|
"repository": {
|
|
8
8
|
"url": "https://github.com/mary-ext/atcute",
|
|
9
9
|
"directory": "packages/utilities/uint8array"
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"sideEffects": false,
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@types/bun": "^1.2.
|
|
26
|
+
"@types/bun": "^1.2.21"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc --project tsconfig.build.json",
|