lib0 0.2.63 → 0.2.65
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/array.test.d.ts +6 -5
- package/array.test.d.ts.map +1 -1
- package/bin/gendocs.js +0 -1
- package/bin/gentesthtml.js +54 -0
- package/broadcastchannel.d.ts.map +1 -1
- package/broadcastchannel.js +4 -4
- package/buffer.d.ts.map +1 -1
- package/buffer.js +6 -4
- package/conditions.js +1 -1
- package/coverage/tmp/coverage-64278-1678297615727-0.json +1 -0
- package/crypto/aes-gcm.d.ts +10 -0
- package/crypto/aes-gcm.d.ts.map +1 -0
- package/crypto/aes-gcm.js +124 -0
- package/crypto/ecdsa.d.ts +13 -0
- package/crypto/ecdsa.d.ts.map +1 -0
- package/crypto/ecdsa.js +93 -0
- package/crypto/rsa-oaep.d.ts +13 -0
- package/crypto/rsa-oaep.d.ts.map +1 -0
- package/crypto/rsa-oaep.js +84 -0
- package/crypto.test.d.ts +2 -0
- package/crypto.test.d.ts.map +1 -1
- package/decoding.d.ts.map +1 -1
- package/decoding.js +7 -4
- package/deno.json +7 -0
- package/deno.lock +122 -0
- package/dist/{array-5347125b.cjs → array-a1682de6.cjs} +2 -2
- package/dist/{array-5347125b.cjs.map → array-a1682de6.cjs.map} +1 -1
- package/dist/array.cjs +2 -2
- package/dist/array.test.d.ts +6 -5
- package/dist/array.test.d.ts.map +1 -1
- package/dist/{broadcastchannel-61da4e94.cjs → broadcastchannel-4e5909e2.cjs} +8 -8
- package/dist/broadcastchannel-4e5909e2.cjs.map +1 -0
- package/dist/broadcastchannel.cjs +12 -12
- package/dist/broadcastchannel.d.ts.map +1 -1
- package/dist/{buffer-884e5a1d.cjs → buffer-9b566988.cjs} +20 -16
- package/dist/buffer-9b566988.cjs.map +1 -0
- package/dist/buffer.cjs +11 -11
- package/dist/buffer.d.ts.map +1 -1
- package/dist/cache.cjs +7 -7
- package/dist/component.cjs +9 -9
- package/dist/{conditions-fb475c70.cjs → conditions-f5c0c102.cjs} +2 -2
- package/dist/conditions-f5c0c102.cjs.map +1 -0
- package/dist/conditions.cjs +1 -1
- package/dist/crypto/aes-gcm.d.ts +10 -0
- package/dist/crypto/aes-gcm.d.ts.map +1 -0
- package/dist/crypto/ecdsa.d.ts +13 -0
- package/dist/crypto/ecdsa.d.ts.map +1 -0
- package/dist/crypto/rsa-oaep.d.ts +13 -0
- package/dist/crypto/rsa-oaep.d.ts.map +1 -0
- package/dist/crypto.test.d.ts +2 -0
- package/dist/crypto.test.d.ts.map +1 -1
- package/dist/decoding.cjs +11 -11
- package/dist/decoding.d.ts.map +1 -1
- package/dist/{diff-2cbda723.cjs → diff-55061848.cjs} +2 -2
- package/dist/{diff-2cbda723.cjs.map → diff-55061848.cjs.map} +1 -1
- package/dist/diff.cjs +5 -5
- package/dist/{dom-58958c04.cjs → dom-7ef10fba.cjs} +4 -32
- package/dist/dom-7ef10fba.cjs.map +1 -0
- package/dist/dom.cjs +2 -2
- package/dist/dom.d.ts.map +1 -1
- package/dist/encoding.cjs +11 -11
- package/dist/encoding.d.ts.map +1 -1
- package/dist/encoding.test.d.ts +2 -1
- package/dist/encoding.test.d.ts.map +1 -1
- package/dist/{environment-ad5e7386.cjs → environment-01c0e75b.cjs} +20 -19
- package/dist/environment-01c0e75b.cjs.map +1 -0
- package/dist/environment.cjs +8 -8
- package/dist/environment.d.ts.map +1 -1
- package/dist/{error-873c9cbf.cjs → error-8582d695.cjs} +4 -4
- package/dist/error-8582d695.cjs.map +1 -0
- package/dist/error.cjs +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/{eventloop-c60b5658.cjs → eventloop-d0571621.cjs} +5 -5
- package/dist/eventloop-d0571621.cjs.map +1 -0
- package/dist/eventloop.cjs +1 -1
- package/dist/eventloop.d.ts.map +1 -1
- package/dist/eventloop.test.d.ts +6 -5
- package/dist/eventloop.test.d.ts.map +1 -1
- package/dist/{function-3695121b.cjs → function-35e8ddea.cjs} +6 -3
- package/dist/function-35e8ddea.cjs.map +1 -0
- package/dist/function.cjs +4 -4
- package/dist/function.d.ts.map +1 -1
- package/dist/function.test.d.ts +3 -1
- package/dist/function.test.d.ts.map +1 -1
- package/dist/index.cjs +22 -22
- package/dist/{indexeddb-7b2c0026.cjs → indexeddb-1f25af34.cjs} +7 -30
- package/dist/indexeddb-1f25af34.cjs.map +1 -0
- package/dist/indexeddb.cjs +4 -4
- package/dist/indexeddb.d.ts.map +1 -1
- package/dist/list.cjs +7 -6
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.ts.map +1 -1
- package/dist/list.test.d.ts +2 -2
- package/dist/list.test.d.ts.map +1 -1
- package/dist/{logging-70fd0a99.cjs → logging-641c32f4.cjs} +55 -50
- package/dist/logging-641c32f4.cjs.map +1 -0
- package/dist/logging.cjs +12 -12
- package/dist/logging.d.ts.map +1 -1
- package/dist/{map-28a001c9.cjs → map-9a5915e4.cjs} +6 -5
- package/dist/map-9a5915e4.cjs.map +1 -0
- package/dist/map.cjs +1 -1
- package/dist/map.d.ts +1 -1
- package/dist/map.d.ts.map +1 -1
- package/dist/map.test.d.ts +1 -1
- package/dist/map.test.d.ts.map +1 -1
- package/dist/{number-e62129bc.cjs → number-f97e141a.cjs} +2 -2
- package/dist/number-f97e141a.cjs.map +1 -0
- package/dist/number.cjs +1 -1
- package/dist/{object-fe9c0021.cjs → object-aad630ed.cjs} +6 -3
- package/dist/object-aad630ed.cjs.map +1 -0
- package/dist/object.cjs +1 -1
- package/dist/object.d.ts +3 -3
- package/dist/object.d.ts.map +1 -1
- package/dist/object.test.d.ts.map +1 -1
- package/dist/observable.cjs +3 -3
- package/dist/{prng-397a85ab.cjs → prng-cd2451c9.cjs} +5 -4
- package/dist/prng-cd2451c9.cjs.map +1 -0
- package/dist/prng.cjs +12 -12
- package/dist/prng.d.ts.map +1 -1
- package/dist/{promise-1a9fe712.cjs → promise-a4f32c85.cjs} +3 -3
- package/dist/promise-a4f32c85.cjs.map +1 -0
- package/dist/promise.cjs +2 -2
- package/dist/random.test.d.ts +1 -0
- package/dist/random.test.d.ts.map +1 -1
- package/dist/rollup.config.d.ts +2 -28
- package/dist/{set-b596ef38.cjs → set-0f209abb.cjs} +4 -7
- package/dist/set-0f209abb.cjs.map +1 -0
- package/dist/set.cjs +1 -1
- package/dist/set.d.ts.map +1 -1
- package/dist/set.test.d.ts +1 -1
- package/dist/set.test.d.ts.map +1 -1
- package/dist/sort.test.d.ts +2 -1
- package/dist/sort.test.d.ts.map +1 -1
- package/dist/storage.cjs +6 -5
- package/dist/storage.cjs.map +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/{string-ad04f734.cjs → string-b1bee84b.cjs} +8 -7
- package/dist/string-b1bee84b.cjs.map +1 -0
- package/dist/string.cjs +1 -1
- package/dist/string.d.ts.map +1 -1
- package/dist/symbol.test.d.ts +3 -0
- package/dist/symbol.test.d.ts.map +1 -0
- package/dist/testing.cjs +57 -40
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.ts +2 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.test.d.ts +1 -0
- package/dist/testing.test.d.ts.map +1 -1
- package/dist/{time-e00067da.cjs → time-bc2081b9.cjs} +2 -2
- package/dist/time-bc2081b9.cjs.map +1 -0
- package/dist/time.cjs +1 -1
- package/dist/{tree-b67c7947.cjs → tree-9f3c8837.cjs} +23 -22
- package/dist/tree-9f3c8837.cjs.map +1 -0
- package/dist/tree.cjs +1 -1
- package/dist/tree.d.ts.map +1 -1
- package/dist/url.cjs +2 -2
- package/dist/url.cjs.map +1 -1
- package/dist/webcrypto.deno.cjs +12 -0
- package/dist/webcrypto.deno.cjs.map +1 -0
- package/dist/webcrypto.deno.d.ts +3 -0
- package/dist/webcrypto.deno.d.ts.map +1 -0
- package/dist/{websocket-dd57e44f.cjs → websocket-85f1d597.cjs} +2 -2
- package/dist/{websocket-dd57e44f.cjs.map → websocket-85f1d597.cjs.map} +1 -1
- package/dist/websocket.cjs +5 -5
- package/dom.d.ts.map +1 -1
- package/dom.js +2 -30
- package/encoding.d.ts.map +1 -1
- package/encoding.js +2 -3
- package/encoding.test.d.ts +2 -1
- package/encoding.test.d.ts.map +1 -1
- package/environment.d.ts.map +1 -1
- package/environment.js +15 -14
- package/error.d.ts.map +1 -1
- package/error.js +3 -3
- package/eventloop.d.ts.map +1 -1
- package/eventloop.js +4 -4
- package/eventloop.test.d.ts +6 -5
- package/eventloop.test.d.ts.map +1 -1
- package/function.d.ts.map +1 -1
- package/function.js +3 -0
- package/function.test.d.ts +3 -1
- package/function.test.d.ts.map +1 -1
- package/indexeddb.d.ts.map +1 -1
- package/indexeddb.js +4 -27
- package/list.d.ts.map +1 -1
- package/list.js +2 -1
- package/list.test.d.ts +2 -2
- package/list.test.d.ts.map +1 -1
- package/logging.d.ts.map +1 -1
- package/logging.js +47 -42
- package/map.d.ts +1 -1
- package/map.d.ts.map +1 -1
- package/map.js +5 -4
- package/map.test.d.ts +1 -1
- package/map.test.d.ts.map +1 -1
- package/number.js +1 -1
- package/object.d.ts +3 -3
- package/object.d.ts.map +1 -1
- package/object.js +5 -2
- package/object.test.d.ts.map +1 -1
- package/package.json +33 -17
- package/prng.d.ts.map +1 -1
- package/prng.js +2 -1
- package/promise.js +1 -1
- package/random.test.d.ts +1 -0
- package/random.test.d.ts.map +1 -1
- package/rollup.config.d.ts +2 -28
- package/set.d.ts.map +1 -1
- package/set.js +3 -6
- package/set.test.d.ts +1 -1
- package/set.test.d.ts.map +1 -1
- package/sort.test.d.ts +2 -1
- package/sort.test.d.ts.map +1 -1
- package/storage.d.ts.map +1 -1
- package/storage.js +6 -5
- package/string.d.ts.map +1 -1
- package/string.js +7 -6
- package/symbol.test.d.ts +3 -0
- package/symbol.test.d.ts.map +1 -0
- package/test.html +150 -2
- package/test.js +5 -3
- package/testing.d.ts +2 -1
- package/testing.d.ts.map +1 -1
- package/testing.js +38 -22
- package/testing.test.d.ts +1 -0
- package/testing.test.d.ts.map +1 -1
- package/time.js +1 -1
- package/tree.d.ts.map +1 -1
- package/tree.js +22 -21
- package/url.js +1 -1
- package/webcrypto.deno.d.ts +3 -0
- package/webcrypto.deno.d.ts.map +1 -0
- package/webcrypto.deno.js +4 -0
- package/crypto.d.ts +0 -22
- package/crypto.d.ts.map +0 -1
- package/crypto.js +0 -185
- package/dist/broadcastchannel-61da4e94.cjs.map +0 -1
- package/dist/buffer-884e5a1d.cjs.map +0 -1
- package/dist/conditions-fb475c70.cjs.map +0 -1
- package/dist/crypto.cjs +0 -231
- package/dist/crypto.cjs.map +0 -1
- package/dist/crypto.d.ts +0 -22
- package/dist/crypto.d.ts.map +0 -1
- package/dist/dom-58958c04.cjs.map +0 -1
- package/dist/environment-ad5e7386.cjs.map +0 -1
- package/dist/error-873c9cbf.cjs.map +0 -1
- package/dist/eventloop-c60b5658.cjs.map +0 -1
- package/dist/function-3695121b.cjs.map +0 -1
- package/dist/indexeddb-7b2c0026.cjs.map +0 -1
- package/dist/logging-70fd0a99.cjs.map +0 -1
- package/dist/map-28a001c9.cjs.map +0 -1
- package/dist/number-e62129bc.cjs.map +0 -1
- package/dist/object-fe9c0021.cjs.map +0 -1
- package/dist/prng-397a85ab.cjs.map +0 -1
- package/dist/promise-1a9fe712.cjs.map +0 -1
- package/dist/set-b596ef38.cjs.map +0 -1
- package/dist/string-ad04f734.cjs.map +0 -1
- package/dist/time-e00067da.cjs.map +0 -1
- package/dist/tree-b67c7947.cjs.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function encrypt(key: CryptoKey, data: Uint8Array): Promise<Uint8Array>;
|
|
2
|
+
export function decrypt(key: CryptoKey, data: Uint8Array): PromiseLike<Uint8Array>;
|
|
3
|
+
export function exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
4
|
+
export function importKey(jwk: any, usages?: Usages | undefined, extractable?: boolean | undefined): Promise<CryptoKey>;
|
|
5
|
+
export function deriveKey(secret: Uint8Array | string, salt: Uint8Array | string, { extractable, usages }?: {
|
|
6
|
+
extractable?: boolean | undefined;
|
|
7
|
+
usages?: Usages | undefined;
|
|
8
|
+
}): Promise<CryptoKey>;
|
|
9
|
+
export type Usages = Array<'encrypt' | 'decrypt'>;
|
|
10
|
+
//# sourceMappingURL=aes-gcm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["aes-gcm.js"],"names":[],"mappings":"AAsBO,6BAHI,SAAS,QACT,UAAU,uBAkBpB;AAWM,6BAJI,SAAS,QACT,UAAU,GACT,YAAY,UAAU,CAAC,CAclC;AAKM,+BAFI,SAAS,uBAGoB;AAOjC,+BAJI,GAAG,sFAUb;AAmBM,kCANI,UAAU,GAAC,MAAM,QACjB,UAAU,GAAC,MAAM;IAEF,WAAW;IACZ,MAAM;uBA0B9B;qBAjHY,MAAM,SAAS,GAAC,SAAS,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AES-GCM is a symmetric key for encryption
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import * as encoding from '../encoding.js'
|
|
6
|
+
import * as decoding from '../decoding.js'
|
|
7
|
+
import * as webcrypto from 'lib0/webcrypto'
|
|
8
|
+
import * as string from '../string.js'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {Array<'encrypt'|'decrypt'>} Usages
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @type {Usages}
|
|
16
|
+
*/
|
|
17
|
+
const defaultUsages = ['encrypt', 'decrypt']
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {CryptoKey} key
|
|
21
|
+
* @param {Uint8Array} data
|
|
22
|
+
*/
|
|
23
|
+
export const encrypt = (key, data) => {
|
|
24
|
+
const iv = webcrypto.getRandomValues(new Uint8Array(16)) // 92bit is enough. 128bit is recommended if space is not an issue.
|
|
25
|
+
return webcrypto.subtle.encrypt(
|
|
26
|
+
{
|
|
27
|
+
name: 'AES-GCM',
|
|
28
|
+
iv
|
|
29
|
+
},
|
|
30
|
+
key,
|
|
31
|
+
data
|
|
32
|
+
).then(cipher => {
|
|
33
|
+
const encryptedDataEncoder = encoding.createEncoder()
|
|
34
|
+
// iv may be sent in the clear to the other peers
|
|
35
|
+
encoding.writeUint8Array(encryptedDataEncoder, iv)
|
|
36
|
+
encoding.writeVarUint8Array(encryptedDataEncoder, new Uint8Array(cipher))
|
|
37
|
+
return encoding.toUint8Array(encryptedDataEncoder)
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @experimental The API is not final!
|
|
43
|
+
*
|
|
44
|
+
* Decrypt some data using AES-GCM method.
|
|
45
|
+
*
|
|
46
|
+
* @param {CryptoKey} key
|
|
47
|
+
* @param {Uint8Array} data
|
|
48
|
+
* @return {PromiseLike<Uint8Array>} decrypted buffer
|
|
49
|
+
*/
|
|
50
|
+
export const decrypt = (key, data) => {
|
|
51
|
+
const dataDecoder = decoding.createDecoder(data)
|
|
52
|
+
const iv = decoding.readUint8Array(dataDecoder, 16)
|
|
53
|
+
const cipher = decoding.readVarUint8Array(dataDecoder)
|
|
54
|
+
return webcrypto.subtle.decrypt(
|
|
55
|
+
{
|
|
56
|
+
name: 'AES-GCM',
|
|
57
|
+
iv
|
|
58
|
+
},
|
|
59
|
+
key,
|
|
60
|
+
cipher
|
|
61
|
+
).then(data => new Uint8Array(data))
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @param {CryptoKey} key
|
|
66
|
+
*/
|
|
67
|
+
export const exportKey = key =>
|
|
68
|
+
webcrypto.subtle.exportKey('jwk', key)
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @param {any} jwk
|
|
72
|
+
* @param {Usages} [usages]
|
|
73
|
+
* @param {boolean} [extractable]
|
|
74
|
+
*/
|
|
75
|
+
export const importKey = (jwk, usages, extractable = false) => {
|
|
76
|
+
if (usages == null) {
|
|
77
|
+
/* c8 ignore next */
|
|
78
|
+
usages = jwk.key_ops || defaultUsages
|
|
79
|
+
}
|
|
80
|
+
return webcrypto.subtle.importKey('jwk', jwk, 'AES-GCM', extractable, /** @type {Usages} */ (usages))
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @param {Uint8Array | string} data
|
|
85
|
+
*/
|
|
86
|
+
/* c8 ignore next */
|
|
87
|
+
const toBinary = data => typeof data === 'string' ? string.encodeUtf8(data) : data
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @experimental The API is not final!
|
|
91
|
+
*
|
|
92
|
+
* Derive an symmetric key using the Password-Based-Key-Derivation-Function-2.
|
|
93
|
+
*
|
|
94
|
+
* @param {Uint8Array|string} secret
|
|
95
|
+
* @param {Uint8Array|string} salt
|
|
96
|
+
* @param {Object} opts
|
|
97
|
+
* @param {boolean} [opts.extractable]
|
|
98
|
+
* @param {Usages} [opts.usages]
|
|
99
|
+
*/
|
|
100
|
+
export const deriveKey = (secret, salt, { extractable = false, usages = defaultUsages } = {}) => {
|
|
101
|
+
return webcrypto.subtle.importKey(
|
|
102
|
+
'raw',
|
|
103
|
+
toBinary(secret),
|
|
104
|
+
'PBKDF2',
|
|
105
|
+
false,
|
|
106
|
+
['deriveKey']
|
|
107
|
+
).then(keyMaterial =>
|
|
108
|
+
webcrypto.subtle.deriveKey(
|
|
109
|
+
{
|
|
110
|
+
name: 'PBKDF2',
|
|
111
|
+
salt: toBinary(salt), // NIST recommends at least 64 bits
|
|
112
|
+
iterations: 600000, // OWASP recommends 600k iterations
|
|
113
|
+
hash: 'SHA-256'
|
|
114
|
+
},
|
|
115
|
+
keyMaterial,
|
|
116
|
+
{
|
|
117
|
+
name: 'AES-GCM',
|
|
118
|
+
length: 256
|
|
119
|
+
},
|
|
120
|
+
extractable,
|
|
121
|
+
usages
|
|
122
|
+
)
|
|
123
|
+
)
|
|
124
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
2
|
+
export function sign(key: CryptoKey, data: Uint8Array): PromiseLike<Uint8Array>;
|
|
3
|
+
export function verify(key: CryptoKey, signature: Uint8Array, data: Uint8Array): PromiseLike<boolean>;
|
|
4
|
+
export function generateKeyPair({ extractable, usages }?: {
|
|
5
|
+
extractable?: boolean | undefined;
|
|
6
|
+
usages?: Usages | undefined;
|
|
7
|
+
}): Promise<CryptoKeyPair>;
|
|
8
|
+
export function importKey(jwk: any, { extractable, usages }?: {
|
|
9
|
+
extractable?: boolean | undefined;
|
|
10
|
+
usages?: Usages | undefined;
|
|
11
|
+
}): Promise<CryptoKey>;
|
|
12
|
+
export type Usages = Array<'sign' | 'verify'>;
|
|
13
|
+
//# sourceMappingURL=ecdsa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["ecdsa.js"],"names":[],"mappings":"AAkBO,+BAFI,SAAS,uBAInB;AAWM,0BAJI,SAAS,QACT,UAAU,GACT,YAAY,UAAU,CAAC,CAWlC;AAYM,4BALI,SAAS,aACT,UAAU,QACV,UAAU,GACT,YAAY,OAAO,CAAC,CAY/B;AAQM;IAHmB,WAAW;IACZ,MAAM;2BAU5B;AAQI,+BALI,GAAG;IAEY,WAAW;IACZ,MAAM;uBAQ9B;qBArFY,MAAM,MAAM,GAAC,QAAQ,CAAC"}
|
package/crypto/ecdsa.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ECDSA is an asymmetric key for signing
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import * as webcrypto from 'lib0/webcrypto'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {Array<'sign'|'verify'>} Usages
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @type {Usages}
|
|
13
|
+
*/
|
|
14
|
+
const defaultUsages = ['sign', 'verify']
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @param {CryptoKey} key
|
|
18
|
+
*/
|
|
19
|
+
export const exportKey = key => {
|
|
20
|
+
return webcrypto.subtle.exportKey('jwk', key)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @experimental The API is not final!
|
|
25
|
+
*
|
|
26
|
+
* Sign a message
|
|
27
|
+
*
|
|
28
|
+
* @param {CryptoKey} key
|
|
29
|
+
* @param {Uint8Array} data
|
|
30
|
+
* @return {PromiseLike<Uint8Array>} signature
|
|
31
|
+
*/
|
|
32
|
+
export const sign = (key, data) => {
|
|
33
|
+
return webcrypto.subtle.sign(
|
|
34
|
+
{
|
|
35
|
+
name: 'ECDSA',
|
|
36
|
+
hash: { name: 'SHA-384' }
|
|
37
|
+
},
|
|
38
|
+
key,
|
|
39
|
+
data
|
|
40
|
+
).then(signature => new Uint8Array(signature))
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @experimental The API is not final!
|
|
45
|
+
*
|
|
46
|
+
* Sign a message
|
|
47
|
+
*
|
|
48
|
+
* @param {CryptoKey} key
|
|
49
|
+
* @param {Uint8Array} signature
|
|
50
|
+
* @param {Uint8Array} data
|
|
51
|
+
* @return {PromiseLike<boolean>} signature
|
|
52
|
+
*/
|
|
53
|
+
export const verify = (key, signature, data) => {
|
|
54
|
+
return webcrypto.subtle.verify(
|
|
55
|
+
{
|
|
56
|
+
name: 'ECDSA',
|
|
57
|
+
hash: { name: 'SHA-384' }
|
|
58
|
+
},
|
|
59
|
+
key,
|
|
60
|
+
signature,
|
|
61
|
+
data
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* c8 ignore next */
|
|
66
|
+
/**
|
|
67
|
+
* @param {Object} opts
|
|
68
|
+
* @param {boolean} [opts.extractable]
|
|
69
|
+
* @param {Usages} [opts.usages]
|
|
70
|
+
*/
|
|
71
|
+
export const generateKeyPair = ({ extractable = false, usages = defaultUsages } = {}) =>
|
|
72
|
+
webcrypto.subtle.generateKey(
|
|
73
|
+
{
|
|
74
|
+
name: 'ECDSA',
|
|
75
|
+
namedCurve: 'P-384'
|
|
76
|
+
},
|
|
77
|
+
extractable,
|
|
78
|
+
usages
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @param {any} jwk
|
|
83
|
+
* @param {Object} opts
|
|
84
|
+
* @param {boolean} [opts.extractable]
|
|
85
|
+
* @param {Usages} [opts.usages]
|
|
86
|
+
*/
|
|
87
|
+
export const importKey = (jwk, { extractable = false, usages } = {}) => {
|
|
88
|
+
if (usages == null) {
|
|
89
|
+
/* c8 ignore next */
|
|
90
|
+
usages = jwk.key_ops || defaultUsages
|
|
91
|
+
}
|
|
92
|
+
return webcrypto.subtle.importKey('jwk', jwk, { name: 'ECDSA', namedCurve: 'P-384' }, extractable, /** @type {Usages} */ (usages))
|
|
93
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function encrypt(key: CryptoKey, data: Uint8Array): Promise<any>;
|
|
2
|
+
export function decrypt(key: CryptoKey, data: Uint8Array): PromiseLike<Uint8Array>;
|
|
3
|
+
export function exportKey(key: CryptoKey): Promise<JsonWebKey>;
|
|
4
|
+
export function generateKey({ extractable, usages }?: {
|
|
5
|
+
extractable?: boolean | undefined;
|
|
6
|
+
usages?: Usages | undefined;
|
|
7
|
+
}): Promise<CryptoKeyPair>;
|
|
8
|
+
export function importKey(jwk: any, { extractable, usages }?: {
|
|
9
|
+
extractable?: boolean | undefined;
|
|
10
|
+
usages?: Usages | undefined;
|
|
11
|
+
}): Promise<CryptoKey>;
|
|
12
|
+
export type Usages = Array<'encrypt' | 'decrypt'>;
|
|
13
|
+
//# sourceMappingURL=rsa-oaep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsa-oaep.d.ts","sourceRoot":"","sources":["rsa-oaep.js"],"names":[],"mappings":"AAqBO,6BAHI,SAAS,QACT,UAAU,gBASlB;AAWI,6BAJI,SAAS,QACT,UAAU,GACT,YAAY,UAAU,CAAC,CASG;AAK/B,+BAFI,SAAS,uBAGoB;AAOjC;IAHmB,WAAW;IACZ,MAAM;2BAY5B;AAQI,+BALI,GAAG;IAEY,WAAW;IACZ,MAAM;uBAQ9B;qBA5EY,MAAM,SAAS,GAAC,SAAS,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RSA-OAEP is an asymmetric keypair used for encryption
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import * as webcrypto from 'lib0/webcrypto'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {Array<'encrypt'|'decrypt'>} Usages
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @type {Usages}
|
|
13
|
+
*/
|
|
14
|
+
const defaultUsages = ['encrypt', 'decrypt']
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Note that the max data size is limited by the size of the RSA key.
|
|
18
|
+
*
|
|
19
|
+
* @param {CryptoKey} key
|
|
20
|
+
* @param {Uint8Array} data
|
|
21
|
+
*/
|
|
22
|
+
export const encrypt = (key, data) =>
|
|
23
|
+
webcrypto.subtle.encrypt(
|
|
24
|
+
{
|
|
25
|
+
name: 'RSA-OAEP'
|
|
26
|
+
},
|
|
27
|
+
key,
|
|
28
|
+
data
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @experimental The API is not final!
|
|
33
|
+
*
|
|
34
|
+
* Decrypt some data using AES-GCM method.
|
|
35
|
+
*
|
|
36
|
+
* @param {CryptoKey} key
|
|
37
|
+
* @param {Uint8Array} data
|
|
38
|
+
* @return {PromiseLike<Uint8Array>} decrypted buffer
|
|
39
|
+
*/
|
|
40
|
+
export const decrypt = (key, data) =>
|
|
41
|
+
webcrypto.subtle.decrypt(
|
|
42
|
+
{
|
|
43
|
+
name: 'RSA-OAEP'
|
|
44
|
+
},
|
|
45
|
+
key,
|
|
46
|
+
data
|
|
47
|
+
).then(data => new Uint8Array(data))
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @param {CryptoKey} key
|
|
51
|
+
*/
|
|
52
|
+
export const exportKey = key =>
|
|
53
|
+
webcrypto.subtle.exportKey('jwk', key)
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @param {Object} opts
|
|
57
|
+
* @param {boolean} [opts.extractable]
|
|
58
|
+
* @param {Usages} [opts.usages]
|
|
59
|
+
*/
|
|
60
|
+
export const generateKey = ({ extractable = false, usages = defaultUsages } = {}) =>
|
|
61
|
+
webcrypto.subtle.generateKey(
|
|
62
|
+
{
|
|
63
|
+
name: 'RSA-OAEP',
|
|
64
|
+
modulusLength: 4096,
|
|
65
|
+
publicExponent: new Uint8Array([1, 0, 1]),
|
|
66
|
+
hash: 'SHA-256'
|
|
67
|
+
},
|
|
68
|
+
extractable,
|
|
69
|
+
usages
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @param {any} jwk
|
|
74
|
+
* @param {Object} opts
|
|
75
|
+
* @param {boolean} [opts.extractable]
|
|
76
|
+
* @param {Usages} [opts.usages]
|
|
77
|
+
*/
|
|
78
|
+
export const importKey = (jwk, { extractable = false, usages } = {}) => {
|
|
79
|
+
if (usages == null) {
|
|
80
|
+
/* c8 ignore next */
|
|
81
|
+
usages = jwk.key_ops || defaultUsages
|
|
82
|
+
}
|
|
83
|
+
return webcrypto.subtle.importKey('jwk', jwk, { name: 'RSA-OAEP', hash: 'SHA-256' }, extractable, /** @type {Usages} */ (usages))
|
|
84
|
+
}
|
package/crypto.test.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export function testEncryption(tc: t.TestCase): Promise<void>;
|
|
1
2
|
export function testReapeatEncryption(tc: t.TestCase): Promise<void>;
|
|
3
|
+
export function testImportExport(tc: t.TestCase): Promise<void>;
|
|
2
4
|
export function testEncryptionPerformance(tc: t.TestCase): Promise<void>;
|
|
3
5
|
export function testConsistentKeyGeneration(_tc: t.TestCase): Promise<void>;
|
|
4
6
|
export function testSigning(tc: t.TestCase): Promise<void>;
|
package/crypto.test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.test.d.ts","sourceRoot":"","sources":["crypto.test.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto.test.d.ts","sourceRoot":"","sources":["crypto.test.js"],"names":[],"mappings":"AAUO,mCAFI,EAAE,QAAQ,iBAoCpB;AAKM,0CAFI,EAAE,QAAQ,iBA8BpB;AAKM,qCAFI,EAAE,QAAQ,iBAkCpB;AAKM,8CAFI,EAAE,QAAQ,iBAsCpB;AAKM,iDAFI,EAAE,QAAQ,iBA0EpB;AAKM,gCAFI,EAAE,QAAQ,iBAapB"}
|
package/decoding.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoding.d.ts","sourceRoot":"","sources":["decoding.js"],"names":[],"mappings":"AAsCA;;GAEG;AACH;IACE;;OAEG;IACH,wBAFW,UAAU,EAepB;IAZC;;;;OAIG;IACH,KAFU,UAAU,CAEC;IACrB;;;;OAIG;IACH,KAFU,MAAM,CAEJ;CAEf;AAOM,0CAHI,UAAU,GACT,OAAO,CAE+C;AAO3D,oCAHI,OAAO,GACN,OAAO,CAEoD;AAWhE,+BAJI,OAAO,gCAEN,OAAO,CAMlB;AAaM,wCAJI,OAAO,OACP,MAAM,GACL,UAAU,CAMrB;AAYM,2CAHI,OAAO,GACN,UAAU,CAEmE;AAQlF,8CAHI,OAAO,GACN,UAAU,CAEkF;AAQjG,+BAHI,OAAO,GACN,MAAM,CAE2B;AAQtC,mCAHI,OAAO,GACN,MAAM,CAE4C;AASvD,oCAHI,OAAO,GACN,MAAM,CAQjB;AASM,oCAHI,OAAO,GACN,MAAM,CAUjB;AAUM,6CAHI,OAAO,GACN,MAAM,CAUjB;AAUM,mCAHI,OAAO,GACN,MAAM,CAE0C;AAUrD,oCAHI,OAAO,GACN,MAAM,CAImB;AAU9B,oCAHI,OAAO,GACN,MAAM,CAOX;AAYA,qCAHI,OAAO,GACN,MAAM,
|
|
1
|
+
{"version":3,"file":"decoding.d.ts","sourceRoot":"","sources":["decoding.js"],"names":[],"mappings":"AAsCA;;GAEG;AACH;IACE;;OAEG;IACH,wBAFW,UAAU,EAepB;IAZC;;;;OAIG;IACH,KAFU,UAAU,CAEC;IACrB;;;;OAIG;IACH,KAFU,MAAM,CAEJ;CAEf;AAOM,0CAHI,UAAU,GACT,OAAO,CAE+C;AAO3D,oCAHI,OAAO,GACN,OAAO,CAEoD;AAWhE,+BAJI,OAAO,gCAEN,OAAO,CAMlB;AAaM,wCAJI,OAAO,OACP,MAAM,GACL,UAAU,CAMrB;AAYM,2CAHI,OAAO,GACN,UAAU,CAEmE;AAQlF,8CAHI,OAAO,GACN,UAAU,CAEkF;AAQjG,+BAHI,OAAO,GACN,MAAM,CAE2B;AAQtC,mCAHI,OAAO,GACN,MAAM,CAE4C;AASvD,oCAHI,OAAO,GACN,MAAM,CAQjB;AASM,oCAHI,OAAO,GACN,MAAM,CAUjB;AAUM,6CAHI,OAAO,GACN,MAAM,CAUjB;AAUM,mCAHI,OAAO,GACN,MAAM,CAE0C;AAUrD,oCAHI,OAAO,GACN,MAAM,CAImB;AAU9B,oCAHI,OAAO,GACN,MAAM,CAOX;AAYA,qCAHI,OAAO,GACN,MAAM,CAqBjB;AAaM,oCAHI,OAAO,GACN,MAAM,CA2BjB;AASM,qCAHI,OAAO,GACN,MAAM,CAOjB;AASM,oCAHI,OAAO,GACN,MAAM,CAOjB;AAgBM,gDAJI,OAAO,UA2BjB;AAQM,8CAHI,OAAO,UAI4D;AAhCvE,uCAJI,OAAO,UA2BjB;AA8BM,uCAHI,OAAO,GACN,MAAM,CAOjB;AAOM,0CAJI,OAAO,OACP,MAAM,GACL,QAAQ,CAMnB;AAKM,qCAFI,OAAO,UAEqE;AAKhF,qCAFI,OAAO,UAEqE;AAKhF,sCAFI,OAAO,OAE4F;AAKvG,uCAFI,OAAO,OAE8F;AAyCzG,iCAFI,OAAO,OAEqE;AAEvF;;;;GAIG;AACH;IACE;;;OAGG;IACH,wBAHW,UAAU,iBACD,OAAO,KAAE,CAAC,EAc7B;IAVC;;OAEG;IACH,eAPkB,OAAO,KAAE,CAAC,CAOR;IACpB;;;OAGG;IACH,GAFU,CAAC,GAAC,IAAI,CAEH;IACb,cAAc;IAGhB,UAWC;CACF;AAED;IACE;;;OAGG;IACH,wBAHW,UAAU,SACV,MAAM,EAShB;IALC;;;OAGG;IACH,GAFU,MAAM,CAEF;IAGhB;;OAEG;IACH,QAFY,MAAM,CAKjB;CACF;AAED;IACE;;;OAGG;IACH,wBAHW,UAAU,SACV,MAAM,EAUhB;IANC;;;OAGG;IACH,GAFU,MAAM,CAEF;IACd,cAAc;IAGhB;;OAEG;IACH,QAFY,MAAM,CAajB;CACF;AAED;IAMI;;OAEG;IACH,GAFU,MAAM,CAEN;IACV,cAAc;IAGhB,eAaC;CACF;AAED;IAMI;;OAEG;IACH,GAFU,MAAM,CAEN;IACV,cAAc;IAGhB,eAaC;CACF;AAED;IAMI;;OAEG;IACH,GAFU,MAAM,CAEN;IACV,cAAc;IACd,aAAa;IAGf;;OAEG;IACH,QAFY,MAAM,CAgBjB;CACF;AAED;IACE;;OAEG;IACH,wBAFW,UAAU,EASpB;IANC,2BAAgD;IAChD,YAAsC;IACtC;;OAEG;IACH,MAFU,MAAM,CAEH;IAGf;;OAEG;IACH,QAFY,MAAM,CAOjB;CACF"}
|
package/decoding.js
CHANGED
|
@@ -250,10 +250,11 @@ export const readVarUint = decoder => {
|
|
|
250
250
|
if (r < binary.BIT8) {
|
|
251
251
|
return num
|
|
252
252
|
}
|
|
253
|
-
/*
|
|
253
|
+
/* c8 ignore start */
|
|
254
254
|
if (num > number.MAX_SAFE_INTEGER) {
|
|
255
255
|
throw errorIntegerOutOfRange
|
|
256
256
|
}
|
|
257
|
+
/* c8 ignore stop */
|
|
257
258
|
}
|
|
258
259
|
throw errorUnexpectedEndOfArray
|
|
259
260
|
}
|
|
@@ -287,10 +288,11 @@ export const readVarInt = decoder => {
|
|
|
287
288
|
if (r < binary.BIT8) {
|
|
288
289
|
return sign * num
|
|
289
290
|
}
|
|
290
|
-
/*
|
|
291
|
+
/* c8 ignore start */
|
|
291
292
|
if (num > number.MAX_SAFE_INTEGER) {
|
|
292
293
|
throw errorIntegerOutOfRange
|
|
293
294
|
}
|
|
295
|
+
/* c8 ignore stop */
|
|
294
296
|
}
|
|
295
297
|
throw errorUnexpectedEndOfArray
|
|
296
298
|
}
|
|
@@ -336,7 +338,7 @@ export const peekVarInt = decoder => {
|
|
|
336
338
|
* @param {Decoder} decoder
|
|
337
339
|
* @return {String} The read String.
|
|
338
340
|
*/
|
|
339
|
-
/*
|
|
341
|
+
/* c8 ignore start */
|
|
340
342
|
export const _readVarStringPolyfill = decoder => {
|
|
341
343
|
let remainingLen = readVarUint(decoder)
|
|
342
344
|
if (remainingLen === 0) {
|
|
@@ -361,6 +363,7 @@ export const _readVarStringPolyfill = decoder => {
|
|
|
361
363
|
return decodeURIComponent(escape(encodedString))
|
|
362
364
|
}
|
|
363
365
|
}
|
|
366
|
+
/* c8 ignore stop */
|
|
364
367
|
|
|
365
368
|
/**
|
|
366
369
|
* @function
|
|
@@ -379,7 +382,7 @@ export const _readVarStringNative = decoder =>
|
|
|
379
382
|
* @return {String} The read String
|
|
380
383
|
*
|
|
381
384
|
*/
|
|
382
|
-
/*
|
|
385
|
+
/* c8 ignore next */
|
|
383
386
|
export const readVarString = string.utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill
|
|
384
387
|
|
|
385
388
|
/**
|
package/deno.json
ADDED
package/deno.lock
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "2",
|
|
3
|
+
"remote": {
|
|
4
|
+
"https://deno.land/std@0.177.0/_util/asserts.ts": "178dfc49a464aee693a7e285567b3d0b555dc805ff490505a8aae34f9cfb1462",
|
|
5
|
+
"https://deno.land/std@0.177.0/_util/os.ts": "d932f56d41e4f6a6093d56044e29ce637f8dcc43c5a90af43504a889cf1775e3",
|
|
6
|
+
"https://deno.land/std@0.177.0/bytes/index_of_needle.ts": "65c939607df609374c4415598fa4dad04a2f14c4d98cd15775216f0aaf597f24",
|
|
7
|
+
"https://deno.land/std@0.177.0/crypto/_wasm/lib/deno_std_wasm_crypto.generated.mjs": "5dedb7f9aa05f0e18ed017691c58df5f4686e4cbbd70368c6f896e5cca03f2b4",
|
|
8
|
+
"https://deno.land/std@0.177.0/crypto/_wasm/mod.ts": "e2df88236fc061eac7a89e8cb0b97843f5280b08b2a990e473b7397a3e566003",
|
|
9
|
+
"https://deno.land/std@0.177.0/crypto/timing_safe_equal.ts": "8d69ab611c67fe51b6127d97fcfb4d8e7d0e1b6b4f3e0cc4ab86744c3691f965",
|
|
10
|
+
"https://deno.land/std@0.177.0/encoding/base64.ts": "7de04c2f8aeeb41453b09b186480be90f2ff357613b988e99fabb91d2eeceba1",
|
|
11
|
+
"https://deno.land/std@0.177.0/encoding/base64url.ts": "3f1178f6446834457b16bfde8b559c1cd3481727fe384d3385e4a9995dc2d851",
|
|
12
|
+
"https://deno.land/std@0.177.0/encoding/hex.ts": "50f8c95b52eae24395d3dfcb5ec1ced37c5fe7610ef6fffdcc8b0fdc38e3b32f",
|
|
13
|
+
"https://deno.land/std@0.177.0/flags/mod.ts": "d1cdefa18472ef69858a17df5cf7c98445ed27ac10e1460183081303b0ebc270",
|
|
14
|
+
"https://deno.land/std@0.177.0/node/_core.ts": "9a58c0ef98ee77e9b8fcc405511d1b37a003a705eb6a9b6e95f75434d8009adc",
|
|
15
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/base/buffer.js": "c9364c761681134015ec8ba6f33b39c067d6e5dd59860d55face8d5be8522744",
|
|
16
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/base/node.js": "8f7f23bfa300990bbd6db7e7395e9688b54a04e3eb2fab5cab9a9a72e26c525f",
|
|
17
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/base/reporter.js": "788aec7662991da549e5f7f3edbc3e3d6c6cecabc894b18d1a705b0f204e06c3",
|
|
18
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/constants/der.js": "57181db0519bb3864a6cdf4e7eb9bfeb1bf5f80605187fbe80e27083b473e367",
|
|
19
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/decoders/der.js": "fdc4de98c9b0b59db169a2b225895741e2ab34b00e14315ac2ff5e389d6db16e",
|
|
20
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/decoders/pem.js": "fd7f0072c193c82959fec0374f4fd3adf3f4ac38594fd404d66b3e8724107151",
|
|
21
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/encoders/der.js": "137bc4f8fe66b9950c743025e199789e25342f791e2d52353ceb016ad2854b42",
|
|
22
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/encoders/pem.js": "e43bc706973c4c27e1e2f96262daba3d38822cb10f5b494f6944c726ee655160",
|
|
23
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/asn1.js/mod.js": "1f88293688296be7a6c735bd8ea39425f5b274b94db1d6b7968dddfb54ac9d37",
|
|
24
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/bn.js/bn.js": "f3f3c1dae1aa55de9e6472af1d6bec5ccda4b4890ee5c52a90961137fe99564e",
|
|
25
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/aes.js": "698e1ed386b7dff27b2d59fa1c75f506beceec96b78670a15a734e438c08f138",
|
|
26
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/auth_cipher.js": "5c245b5685b066356a7c9529a3a441bf5f57823a6946ce1b0ef2e1af32bb76f4",
|
|
27
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/decrypter.js": "39152b2b3409893b8548feeab7e5997ceb1595f31df0dedaf765708be8f025c0",
|
|
28
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/encrypter.js": "f9cc703d5a7b5255999c1a3600fbf48ff564b65f827744877526803093ceebff",
|
|
29
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/ghash.js": "759d80b760f44cd3a454b4f161fd03a7d6c359901446f0a907a6870cb66d6767",
|
|
30
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/incr32.js": "2bdea27b74b3990ee56807a1a5abe335f118826beabeeb905459c8768094b28f",
|
|
31
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/mod.js": "fe4affebbd210d885b2e5135c668751f9d10bc14aa0cc3905cbfff66f04b4c58",
|
|
32
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/cbc.js": "ff24b4506522a724ba7a03c1403ad8938aba45056f9fd47c7f0b4fcb3a640adf",
|
|
33
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/cfb.js": "643720a1db969b6bcc896c95523630838a8335513d02f340514fd524bb4113cb",
|
|
34
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/cfb1.js": "01c9a46aa3affd84a54ae33652fb0fa0ff7c862be2a459d9cb188cb8e2c4b11e",
|
|
35
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/cfb8.js": "97476cee25103e02a02b196d7fe6f28a9f0f9e47ee344687d7492bc7282a59f8",
|
|
36
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/ctr.js": "1e3835adb753cfe6761e4df8c43d190e31e1ca6a586fd582747c8255c82ed78d",
|
|
37
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/ecb.js": "79677b96d4af50c49f0a4f698e5c7e5a64f1d2926b799e0d2eac2cdd5ec7488c",
|
|
38
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/mod.js": "fe3db429b867a0a8066c64d7b33b840a1f24cad9174156384a763733f68cf518",
|
|
39
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/modes/ofb.js": "3553308f98d078e2006eac39bb6d91818f8bb376b01d962ae98eabf6ee79ad4e",
|
|
40
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/stream_cipher.js": "70f50f37ddec530ae95911ca2f286ebd2ddbd54d914ab0be461ec1dc3c61990f",
|
|
41
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_aes/xor.ts": "7132baacdb39ba82c3bfe325a60e68ca87469c0ed0cdd0508caf6f40bab852b8",
|
|
42
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/browserify_rsa.js": "96e0e4fee7c2cf75ef86d958c709bfc239297a080fd17ace5ea5ab699a1b6174",
|
|
43
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/cipher_base.js": "9ebc6ccc364cf7b23024821054d2e72a2d8da8d8a2a36cacdc5aa6cc6770ef93",
|
|
44
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/evp_bytes_to_key.ts": "7c4c27b6e321b2d7065a6703d90264921e9a805d91d9dfdb21103393228024e2",
|
|
45
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/parse_asn1/asn1.js": "7d99b6df508164169a33377346e8840d519fe2defccb362a023c92c5bd503433",
|
|
46
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/parse_asn1/certificate.js": "5795348417b3ec7aafa4854ba55f364e0148eadfdd29d1566c90e617237621bb",
|
|
47
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/parse_asn1/fix_proc.js": "858dd3e6ce264d75822cadc21bb55114f4e4867a706abde1663548aa2710fc1b",
|
|
48
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/parse_asn1/mod.js": "ea164fbd497ce3d710426742d4b72f71da8954c4ebaeb7eadc33316c5b0060f1",
|
|
49
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/public_encrypt/mgf.js": "dfac5008a550b3e7e6b851c4fb42e984aa9e7fae64707888f47f2aa0991c004d",
|
|
50
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/public_encrypt/mod.js": "0704326ff3ee2bb0764a964995d1aa62b1147b714ad5465e878ba4d57731e3db",
|
|
51
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/public_encrypt/private_decrypt.js": "8a1d11edb176d95d1e3bdf1aff5c3248a986bf9734d1a6b07508e29132d2f65c",
|
|
52
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/public_encrypt/public_encrypt.js": "f88b0e3c228d84096fdbc03e614e86bef86e56013cb9628b2425e31b3b142b2c",
|
|
53
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/public_encrypt/with_public.js": "752da754d253b5743d89c0f2432b6eb6f8815b80efd9ee588683e10a13d34400",
|
|
54
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/public_encrypt/xor.js": "087ebef8f6fcb8ca4c7216cc22de728d9a61ec27b9a036b900681ff25d6409af",
|
|
55
|
+
"https://deno.land/std@0.177.0/node/_crypto/crypto_browserify/randombytes.ts": "23bde8be640e274d7bb88cf10d1da8bba252654252dc6a877fed86a77da5952c",
|
|
56
|
+
"https://deno.land/std@0.177.0/node/_events.d.ts": "1347437fd6b084d7c9a4e16b9fe7435f00b030970086482edeeb3b179d0775af",
|
|
57
|
+
"https://deno.land/std@0.177.0/node/_events.mjs": "d4ba4e629abe3db9f1b14659fd5c282b7da8b2b95eaf13238eee4ebb142a2448",
|
|
58
|
+
"https://deno.land/std@0.177.0/node/_global.d.ts": "2d88342f38b4083b858998e27c706725fb03a74aa14ef8d985dc18438b5188e4",
|
|
59
|
+
"https://deno.land/std@0.177.0/node/_next_tick.ts": "9a3cf107d59b019a355d3cf32275b4c6157282e4b68ea85b46a799cb1d379305",
|
|
60
|
+
"https://deno.land/std@0.177.0/node/_process/exiting.ts": "6e336180aaabd1192bf99ffeb0d14b689116a3dec1dfb34a2afbacd6766e98ab",
|
|
61
|
+
"https://deno.land/std@0.177.0/node/_process/process.ts": "c96bb1f6253824c372f4866ee006dcefda02b7050d46759736e403f862d91051",
|
|
62
|
+
"https://deno.land/std@0.177.0/node/_process/stdio.mjs": "cf17727eac8da3a665851df700b5aca6a12bacc3ebbf33e63e4b919f80ba44a6",
|
|
63
|
+
"https://deno.land/std@0.177.0/node/_stream.d.ts": "112e1a0677cd6db932c3ce0e6e5bbdc7a2ac1874572f449044ecc82afcf5ee2e",
|
|
64
|
+
"https://deno.land/std@0.177.0/node/_stream.mjs": "d6e2c86c1158ac65b4c2ca4fa019d7e84374ff12e21e2175345fe68c0823efe3",
|
|
65
|
+
"https://deno.land/std@0.177.0/node/_utils.ts": "7fd55872a0cf9275e3c080a60e2fa6d45b8de9e956ebcde9053e72a344185884",
|
|
66
|
+
"https://deno.land/std@0.177.0/node/buffer.ts": "85617be2063eccaf177dbb84c7580d1e32023724ed14bd9df4e453b152a26167",
|
|
67
|
+
"https://deno.land/std@0.177.0/node/crypto.ts": "2c94fa0f76e90190fbc34df891dc5c284bddb86c932fae8ac11747de3f75293c",
|
|
68
|
+
"https://deno.land/std@0.177.0/node/events.ts": "d2de352d509de11a375e2cb397d6b98f5fed4e562fc1d41be33214903a38e6b0",
|
|
69
|
+
"https://deno.land/std@0.177.0/node/internal/buffer.d.ts": "bdfa991cd88cb02fd08bf8235d2618550e3e511c970b2a8f2e1a6885a2793cac",
|
|
70
|
+
"https://deno.land/std@0.177.0/node/internal/buffer.mjs": "e92303a3cc6d9aaabcd270a937ad9319825d9ba08cb332650944df4562029b27",
|
|
71
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/_keys.ts": "8f3c3b5a141aa0331a53c205e9338655f1b3b307a08085fd6ff6dda6f7c4190b",
|
|
72
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/_randomBytes.ts": "36dd164747f73b830ba86562abb160a8ac5bea34aaeb816a67f3005a00d41177",
|
|
73
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/_randomFill.ts": "297186f290eba87a1ad7b8aa42a960ff4278a8b6b0c963fa81918c326d5c0b58",
|
|
74
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/_randomInt.ts": "6cf19da9684b67520e67a2d99f2581a3f841140842c7ce2e014d166457550fe1",
|
|
75
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/certificate.ts": "b4a6695f82e70a42e85247c74a7691ed4b3a904646451af0287e49efe1a28814",
|
|
76
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/cipher.ts": "2bae9b4d94c465e4d1c70e5a9e8fd67ce20bcc66fecd2eec6be00d35144ca4eb",
|
|
77
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/constants.ts": "544d605703053218499b08214f2e25cf4310651d535b7ab995891c4b7a217693",
|
|
78
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/diffiehellman.ts": "9cfb219c5b2936db773f559b6affe6d25b0e40531010389f05df3f05ce7eebf5",
|
|
79
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/hash.ts": "d01f5d3ad5477655b432036d2d553c7a0c31a901ac0e1e9e0d8b3975daae7624",
|
|
80
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/hkdf.ts": "5bd801234e56468fbd47466f46e88bdadc66432d625e3616abe38878d410bb66",
|
|
81
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/keygen.ts": "530cc1a00acf71a43719bb876a2dc563b6196095d080eba77c92c9f39658a5b9",
|
|
82
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/keys.ts": "c4dfa5aa3420cf700178b87203593a0989c8a93934bfef2b29adb3399d687958",
|
|
83
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/pbkdf2.ts": "0a0a3e0d3d45db0638fe75a4199c7ed7ca2164405750a520e786e4adebdb45a4",
|
|
84
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/random.ts": "85f3147e14cb45c18e016da45d319a5c663309411232a956fdc09c2317acdd9f",
|
|
85
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/scrypt.ts": "b55a0fcd12b295af4127d05b1c0bc3098b74fc0e3c62321c2a43c20f9ed18209",
|
|
86
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/sig.ts": "25819a89d49c1ebfe3baa1f9464501ec599a36cf53e9b600ec0399e568b9dccc",
|
|
87
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/types.ts": "52feb182bcbd59206f3e2f4a3cb8a5775d4452c2a8045c3e613e2178d32c2a86",
|
|
88
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/util.ts": "db282c0413aeee28bc0665fcfc1c08a65fc96dc12ed4d03282f2da4907fcf0ce",
|
|
89
|
+
"https://deno.land/std@0.177.0/node/internal/crypto/x509.ts": "0e8a541c4f58ecb83862c373d3f7d2371aa8f5108f55bc837b190c4ab3408764",
|
|
90
|
+
"https://deno.land/std@0.177.0/node/internal/error_codes.ts": "8495e33f448a484518d76fa3d41d34fc20fe03c14b30130ad8e936b0035d4b8b",
|
|
91
|
+
"https://deno.land/std@0.177.0/node/internal/errors.ts": "1c699b8a3cb93174f697a348c004b1c6d576b66688eac8a48ebb78e65c720aae",
|
|
92
|
+
"https://deno.land/std@0.177.0/node/internal/fixed_queue.ts": "62bb119afa5b5ae8fc0c7048b50502347bec82e2588017d0b250c4671d6eff8f",
|
|
93
|
+
"https://deno.land/std@0.177.0/node/internal/hide_stack_frames.ts": "9dd1bad0a6e62a1042ce3a51eb1b1ecee2f246907bff44835f86e8f021de679a",
|
|
94
|
+
"https://deno.land/std@0.177.0/node/internal/normalize_encoding.mjs": "fd1d9df61c44d7196432f6e8244621468715131d18cc79cd299fc78ac549f707",
|
|
95
|
+
"https://deno.land/std@0.177.0/node/internal/options.ts": "888f267c3fe8f18dc7b2f2fbdbe7e4a0fd3302ff3e99f5d6645601e924f3e3fb",
|
|
96
|
+
"https://deno.land/std@0.177.0/node/internal/primordials.mjs": "a72d86b5aa55d3d50b8e916b6a59b7cc0dc5a31da8937114b4a113ad5aa08c74",
|
|
97
|
+
"https://deno.land/std@0.177.0/node/internal/streams/destroy.mjs": "b665fc71178919a34ddeac8389d162a81b4bc693ff7dc2557fa41b3a91011967",
|
|
98
|
+
"https://deno.land/std@0.177.0/node/internal/streams/end-of-stream.mjs": "a4fb1c2e32d58dff440d4e716e2c4daaa403b3095304a028bb428575cfeed716",
|
|
99
|
+
"https://deno.land/std@0.177.0/node/internal/streams/utils.mjs": "f2fe2e6bdc506da24c758970890cc2a21642045b129dee618bd3827c60dd9e33",
|
|
100
|
+
"https://deno.land/std@0.177.0/node/internal/streams/writable.mjs": "775928726d0483ace8e45a35f30db2019a22dd7b9a81b67b158420e21cc692c5",
|
|
101
|
+
"https://deno.land/std@0.177.0/node/internal/util.mjs": "f7fe2e1ca5e66f550ad0856b9f5ee4d666f0c071fe212ea7fc7f37cfa81f97a5",
|
|
102
|
+
"https://deno.land/std@0.177.0/node/internal/util/inspect.mjs": "11d7c9cab514b8e485acc3978c74b837263ff9c08ae4537fa18ad56bae633259",
|
|
103
|
+
"https://deno.land/std@0.177.0/node/internal/util/types.ts": "0e587b44ec5e017cf228589fc5ce9983b75beece6c39409c34170cfad49d6417",
|
|
104
|
+
"https://deno.land/std@0.177.0/node/internal/validators.mjs": "e02f2b02dd072a5d623970292588d541204dc82207b4c58985d933a5f4b382e6",
|
|
105
|
+
"https://deno.land/std@0.177.0/node/internal_binding/_libuv_winerror.ts": "30c9569603d4b97a1f1a034d88a3f74800d5ea1f12fcc3d225c9899d4e1a518b",
|
|
106
|
+
"https://deno.land/std@0.177.0/node/internal_binding/_node.ts": "cb2389b0eab121df99853eb6a5e3a684e4537e065fb8bf2cca0cbf219ce4e32e",
|
|
107
|
+
"https://deno.land/std@0.177.0/node/internal_binding/_timingSafeEqual.ts": "7d9732464d3c669ff07713868ce5d25bc974a06112edbfb5f017fc3c70c0853e",
|
|
108
|
+
"https://deno.land/std@0.177.0/node/internal_binding/_utils.ts": "7c58a2fbb031a204dee9583ba211cf9c67922112fe77e7f0b3226112469e9fe1",
|
|
109
|
+
"https://deno.land/std@0.177.0/node/internal_binding/_winerror.ts": "3e8cfdfe22e89f13d2b28529bab35155e6b1730c0221ec5a6fc7077dc037be13",
|
|
110
|
+
"https://deno.land/std@0.177.0/node/internal_binding/buffer.ts": "31729e0537921d6c730ad0afea44a7e8a0a1044d070ade8368226cb6f7390c8b",
|
|
111
|
+
"https://deno.land/std@0.177.0/node/internal_binding/constants.ts": "21ff9d1ee71d0a2086541083a7711842fc6ae25e264dbf45c73815aadce06f4c",
|
|
112
|
+
"https://deno.land/std@0.177.0/node/internal_binding/crypto.ts": "29e8f94f283a2e7d4229d3551369c6a40c2af9737fad948cb9be56bef6c468cd",
|
|
113
|
+
"https://deno.land/std@0.177.0/node/internal_binding/node_options.ts": "0b5cb0bf4379a39278d7b7bb6bb2c2751baf428fe437abe5ed3e8441fae1f18b",
|
|
114
|
+
"https://deno.land/std@0.177.0/node/internal_binding/string_decoder.ts": "54c3c1cbd5a9254881be58bf22637965dc69535483014dab60487e299cb95445",
|
|
115
|
+
"https://deno.land/std@0.177.0/node/internal_binding/types.ts": "2187595a58d2cf0134f4db6cc2a12bf777f452f52b15b6c3aed73fa072aa5fc3",
|
|
116
|
+
"https://deno.land/std@0.177.0/node/internal_binding/util.ts": "808ff3b92740284184ab824adfc420e75398c88c8bccf5111f0c24ac18c48f10",
|
|
117
|
+
"https://deno.land/std@0.177.0/node/internal_binding/uv.ts": "eb0048e30af4db407fb3f95563e30d70efd6187051c033713b0a5b768593a3a3",
|
|
118
|
+
"https://deno.land/std@0.177.0/node/perf_hooks.ts": "c20e1f02f463e065e8f6c1d4fa97b0d3832dc0db5b5d8ea37f99a962ecf11f35",
|
|
119
|
+
"https://deno.land/std@0.177.0/node/stream.ts": "09e348302af40dcc7dc58aa5e40fdff868d11d8d6b0cfb85cbb9c75b9fe450c7",
|
|
120
|
+
"https://deno.land/std@0.177.0/node/string_decoder.ts": "1a17e3572037c512cc5fc4b29076613e90f225474362d18da908cb7e5ccb7e88"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var set = require('./set-
|
|
3
|
+
var set = require('./set-0f209abb.cjs');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Utility module to work with Arrays.
|
|
@@ -173,4 +173,4 @@ exports.last = last;
|
|
|
173
173
|
exports.some = some;
|
|
174
174
|
exports.unique = unique;
|
|
175
175
|
exports.uniqueBy = uniqueBy;
|
|
176
|
-
//# sourceMappingURL=array-
|
|
176
|
+
//# sourceMappingURL=array-a1682de6.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-
|
|
1
|
+
{"version":3,"file":"array-a1682de6.cjs","sources":["../array.js"],"sourcesContent":["/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\nimport * as set from './set.js'\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {ArrayLike<L>} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array<C>}\n */\nexport const create = () => /** @type {Array<C>} */ ([])\n\n/**\n * @template D\n * @param {Array<D>} a\n * @return {Array<D>}\n */\nexport const copy = a => /** @type {Array<D>} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array<M>} dest\n * @param {Array<M>} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike<T>|Iterable<T>} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n * @template {ArrayLike<ITEM>} ARR\n *\n * @param {ARR} arr\n * @param {function(ITEM, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (!f(arr[i], i, arr)) {\n return false\n }\n }\n return true\n}\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @template {ArrayLike<S>} ARR\n * @param {ARR} arr\n * @param {function(S, number, ARR):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n if (f(arr[i], i, arr)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @template ELEM\n *\n * @param {ArrayLike<ELEM>} a\n * @param {ArrayLike<ELEM>} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array<Array<ELEM>>} arr\n * @return {Array<ELEM>}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n\n/**\n * @template T\n * @param {Array<T>} arr\n * @return {Array<T>}\n */\nexport const unique = arr => from(set.from(arr))\n\n/**\n * @template T\n * @template M\n * @param {ArrayLike<T>} arr\n * @param {function(T):M} mapper\n * @return {Array<T>}\n */\nexport const uniqueBy = (arr, mapper) => {\n /**\n * @type {Set<M>}\n */\n const happened = set.create()\n /**\n * @type {Array<T>}\n */\n const result = []\n for (let i = 0; i < arr.length; i++) {\n const el = arr[i]\n const mapped = mapper(el)\n if (!happened.has(mapped)) {\n happened.add(mapped)\n result.push(el)\n }\n }\n return result\n}\n"],"names":["set.from","set.create"],"mappings":"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"}
|
package/dist/array.cjs
CHANGED