lib0 0.2.86 → 0.2.87
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/buffer.d.ts.map +1 -1
- package/buffer.js +3 -6
- package/coverage/tmp/coverage-29846-1697198852740-0.json +1 -0
- package/decoding.d.ts.map +1 -1
- package/decoding.js +1 -2
- package/dist/aes-gcm.cjs +8 -13
- package/dist/aes-gcm.cjs.map +1 -1
- package/dist/{broadcastchannel-036aba21.cjs → broadcastchannel-554b85cd.cjs} +4 -4
- package/dist/{broadcastchannel-036aba21.cjs.map → broadcastchannel-554b85cd.cjs.map} +1 -1
- package/dist/broadcastchannel.cjs +6 -4
- package/dist/broadcastchannel.cjs.map +1 -1
- package/dist/buffer-f9b1a143.cjs +198 -0
- package/dist/buffer-f9b1a143.cjs.map +1 -0
- package/dist/buffer.cjs +18 -16
- package/dist/buffer.cjs.map +1 -1
- package/dist/buffer.d.ts.map +1 -1
- package/dist/decoding-fca97826.cjs +791 -0
- package/dist/decoding-fca97826.cjs.map +1 -0
- package/dist/decoding.cjs +40 -45
- package/dist/decoding.cjs.map +1 -1
- package/dist/decoding.d.ts.map +1 -1
- package/dist/{buffer-bc255c75.cjs → encoding-5bb79b9b.cjs} +9 -983
- package/dist/encoding-5bb79b9b.cjs.map +1 -0
- package/dist/encoding.cjs +1 -8
- package/dist/encoding.cjs.map +1 -1
- package/dist/encoding.d.ts.map +1 -1
- package/dist/{environment-ad129e4d.cjs → environment-819e9403.cjs} +4 -4
- package/dist/environment-819e9403.cjs.map +1 -0
- package/dist/environment.cjs +1 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/index.cjs +11 -9
- package/dist/index.cjs.map +1 -1
- package/dist/{indexeddb-2dd34f7d.cjs → indexeddb-8d495848.cjs} +1 -4
- package/dist/indexeddb-8d495848.cjs.map +1 -0
- package/dist/indexeddb.cjs +1 -1
- package/dist/indexeddb.d.ts.map +1 -1
- package/dist/jwt.cjs +9 -7
- package/dist/jwt.cjs.map +1 -1
- package/dist/logging.cjs +1 -1
- package/dist/logging.common.cjs +1 -1
- package/dist/logging.node.cjs +1 -1
- package/dist/observable.cjs +5 -5
- package/dist/observable.cjs.map +1 -1
- package/dist/observable.d.ts +10 -12
- package/dist/observable.d.ts.map +1 -1
- package/dist/{prng-d6655349.cjs → prng-33ae0b2e.cjs} +3 -3
- package/dist/{prng-d6655349.cjs.map → prng-33ae0b2e.cjs.map} +1 -1
- package/dist/prng.cjs +5 -3
- package/dist/prng.cjs.map +1 -1
- package/dist/rabin-gf2-polynomial.cjs +6 -4
- package/dist/rabin-gf2-polynomial.cjs.map +1 -1
- package/dist/rabin-uncached.cjs +6 -4
- package/dist/rabin-uncached.cjs.map +1 -1
- package/dist/rabin.cjs +7 -5
- package/dist/rabin.cjs.map +1 -1
- package/dist/storage.cjs +1 -1
- package/dist/storage.cjs.map +1 -1
- package/dist/testing.cjs +5 -3
- package/dist/testing.cjs.map +1 -1
- package/dist/{websocket-aa53d26d.cjs → websocket-ccb9bf5d.cjs} +1 -1
- package/dist/{websocket-aa53d26d.cjs.map → websocket-ccb9bf5d.cjs.map} +1 -1
- package/dist/websocket.cjs +1 -1
- package/encoding.d.ts.map +1 -1
- package/encoding.js +2 -3
- package/environment.d.ts.map +1 -1
- package/environment.js +3 -3
- package/indexeddb.d.ts.map +1 -1
- package/indexeddb.js +0 -3
- package/observable.d.ts +10 -12
- package/observable.d.ts.map +1 -1
- package/observable.js +5 -5
- package/package.json +21 -2
- package/storage.js +1 -1
- package/coverage/tmp/coverage-12951-1695475540140-0.json +0 -1
- package/dist/buffer-bc255c75.cjs.map +0 -1
- package/dist/environment-ad129e4d.cjs.map +0 -1
- package/dist/indexeddb-2dd34f7d.cjs.map +0 -1
package/decoding.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoding.d.ts","sourceRoot":"","sources":["decoding.js"],"names":[],"mappings":"
|
|
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;AA2BM,kDAHI,OAAO,GACN,UAAU,CAerB;AAMM,8CAHI,OAAO,GACN,MAAM,CAEiF;AAS5F,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
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
* @module decoding
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
|
-
import * as buffer from './buffer.js'
|
|
30
29
|
import * as binary from './binary.js'
|
|
31
30
|
import * as math from './math.js'
|
|
32
31
|
import * as number from './number.js'
|
|
@@ -101,7 +100,7 @@ export const clone = (decoder, newPos = decoder.pos) => {
|
|
|
101
100
|
* @return {Uint8Array}
|
|
102
101
|
*/
|
|
103
102
|
export const readUint8Array = (decoder, len) => {
|
|
104
|
-
const view =
|
|
103
|
+
const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len)
|
|
105
104
|
decoder.pos += len
|
|
106
105
|
return view
|
|
107
106
|
}
|
package/dist/aes-gcm.cjs
CHANGED
|
@@ -2,21 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var encoding = require('./
|
|
5
|
+
var encoding = require('./encoding-5bb79b9b.cjs');
|
|
6
|
+
var decoding = require('./decoding-fca97826.cjs');
|
|
6
7
|
var webcrypto = require('lib0/webcrypto');
|
|
7
8
|
var string = require('./string-6d104757.cjs');
|
|
8
9
|
var common = require('./common.cjs');
|
|
9
|
-
require('./environment-ad129e4d.cjs');
|
|
10
|
-
require('./map-9a5915e4.cjs');
|
|
11
|
-
require('./conditions-f5c0c102.cjs');
|
|
12
|
-
require('./storage.cjs');
|
|
13
|
-
require('./function-314fdc56.cjs');
|
|
14
|
-
require('./array-704ca50e.cjs');
|
|
15
|
-
require('./set-0f209abb.cjs');
|
|
16
|
-
require('./object-fecf6a7b.cjs');
|
|
17
10
|
require('./math-08e068f9.cjs');
|
|
18
|
-
require('./binary-ac8e39e2.cjs');
|
|
19
11
|
require('./number-466d8922.cjs');
|
|
12
|
+
require('./binary-ac8e39e2.cjs');
|
|
13
|
+
require('./array-704ca50e.cjs');
|
|
14
|
+
require('./set-0f209abb.cjs');
|
|
20
15
|
require('./error-8582d695.cjs');
|
|
21
16
|
|
|
22
17
|
function _interopNamespace(e) {
|
|
@@ -84,9 +79,9 @@ const encrypt = (key, data) => {
|
|
|
84
79
|
* @return {PromiseLike<Uint8Array>} decrypted buffer
|
|
85
80
|
*/
|
|
86
81
|
const decrypt = (key, data) => {
|
|
87
|
-
const dataDecoder =
|
|
88
|
-
const iv =
|
|
89
|
-
const cipher =
|
|
82
|
+
const dataDecoder = decoding.createDecoder(data);
|
|
83
|
+
const iv = decoding.readUint8Array(dataDecoder, 16);
|
|
84
|
+
const cipher = decoding.readVarUint8Array(dataDecoder);
|
|
90
85
|
return webcrypto__namespace.subtle.decrypt(
|
|
91
86
|
{
|
|
92
87
|
name: 'AES-GCM',
|
package/dist/aes-gcm.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-gcm.cjs","sources":["../crypto/aes-gcm.js"],"sourcesContent":["/**\n * AES-GCM is a symmetric key for encryption\n */\n\nimport * as encoding from '../encoding.js'\nimport * as decoding from '../decoding.js'\nimport * as webcrypto from 'lib0/webcrypto'\nimport * as string from '../string.js'\nexport { exportKeyJwk, exportKeyRaw } from './common.js'\n\n/**\n * @typedef {Array<'encrypt'|'decrypt'>} Usages\n */\n\n/**\n * @type {Usages}\n */\nconst defaultUsages = ['encrypt', 'decrypt']\n\n/**\n * @param {CryptoKey} key\n * @param {Uint8Array} data\n */\nexport const encrypt = (key, data) => {\n const iv = webcrypto.getRandomValues(new Uint8Array(16)) // 92bit is enough. 128bit is recommended if space is not an issue.\n return webcrypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv\n },\n key,\n data\n ).then(cipher => {\n const encryptedDataEncoder = encoding.createEncoder()\n // iv may be sent in the clear to the other peers\n encoding.writeUint8Array(encryptedDataEncoder, iv)\n encoding.writeVarUint8Array(encryptedDataEncoder, new Uint8Array(cipher))\n return encoding.toUint8Array(encryptedDataEncoder)\n })\n}\n\n/**\n * @experimental The API is not final!\n *\n * Decrypt some data using AES-GCM method.\n *\n * @param {CryptoKey} key\n * @param {Uint8Array} data\n * @return {PromiseLike<Uint8Array>} decrypted buffer\n */\nexport const decrypt = (key, data) => {\n const dataDecoder = decoding.createDecoder(data)\n const iv = decoding.readUint8Array(dataDecoder, 16)\n const cipher = decoding.readVarUint8Array(dataDecoder)\n return webcrypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv\n },\n key,\n cipher\n ).then(data => new Uint8Array(data))\n}\n\nconst aesAlgDef = {\n name: 'AES-GCM',\n length: 256\n}\n\n/**\n * @param {any} jwk\n * @param {Object} opts\n * @param {Usages} [opts.usages]\n * @param {boolean} [opts.extractable]\n */\nexport const importKeyJwk = (jwk, { usages, extractable = false } = {}) => {\n if (usages == null) {\n /* c8 ignore next */\n usages = jwk.key_ops || defaultUsages\n }\n return webcrypto.subtle.importKey('jwk', jwk, 'AES-GCM', extractable, /** @type {Usages} */ (usages))\n}\n\n/**\n * Only suited for importing public keys.\n *\n * @param {Uint8Array} raw\n * @param {Object} opts\n * @param {Usages} [opts.usages]\n * @param {boolean} [opts.extractable]\n */\nexport const importKeyRaw = (raw, { usages = defaultUsages, extractable = false } = {}) =>\n webcrypto.subtle.importKey('raw', raw, aesAlgDef, extractable, /** @type {Usages} */ (usages))\n\n/**\n * @param {Uint8Array | string} data\n */\n/* c8 ignore next */\nconst toBinary = data => typeof data === 'string' ? string.encodeUtf8(data) : data\n\n/**\n * @experimental The API is not final!\n *\n * Derive an symmetric key using the Password-Based-Key-Derivation-Function-2.\n *\n * @param {Uint8Array|string} secret\n * @param {Uint8Array|string} salt\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const deriveKey = (secret, salt, { extractable = false, usages = defaultUsages } = {}) =>\n webcrypto.subtle.importKey(\n 'raw',\n toBinary(secret),\n 'PBKDF2',\n false,\n ['deriveKey']\n ).then(keyMaterial =>\n webcrypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt: toBinary(salt), // NIST recommends at least 64 bits\n iterations: 600000, // OWASP recommends 600k iterations\n hash: 'SHA-256'\n },\n keyMaterial,\n aesAlgDef,\n extractable,\n usages\n )\n )\n"],"names":["webcrypto","encoding.createEncoder","encoding.writeUint8Array","encoding.writeVarUint8Array","encoding.toUint8Array","decoding.createDecoder","decoding.readUint8Array","decoding.readVarUint8Array","string.encodeUtf8"],"mappings":"
|
|
1
|
+
{"version":3,"file":"aes-gcm.cjs","sources":["../crypto/aes-gcm.js"],"sourcesContent":["/**\n * AES-GCM is a symmetric key for encryption\n */\n\nimport * as encoding from '../encoding.js'\nimport * as decoding from '../decoding.js'\nimport * as webcrypto from 'lib0/webcrypto'\nimport * as string from '../string.js'\nexport { exportKeyJwk, exportKeyRaw } from './common.js'\n\n/**\n * @typedef {Array<'encrypt'|'decrypt'>} Usages\n */\n\n/**\n * @type {Usages}\n */\nconst defaultUsages = ['encrypt', 'decrypt']\n\n/**\n * @param {CryptoKey} key\n * @param {Uint8Array} data\n */\nexport const encrypt = (key, data) => {\n const iv = webcrypto.getRandomValues(new Uint8Array(16)) // 92bit is enough. 128bit is recommended if space is not an issue.\n return webcrypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv\n },\n key,\n data\n ).then(cipher => {\n const encryptedDataEncoder = encoding.createEncoder()\n // iv may be sent in the clear to the other peers\n encoding.writeUint8Array(encryptedDataEncoder, iv)\n encoding.writeVarUint8Array(encryptedDataEncoder, new Uint8Array(cipher))\n return encoding.toUint8Array(encryptedDataEncoder)\n })\n}\n\n/**\n * @experimental The API is not final!\n *\n * Decrypt some data using AES-GCM method.\n *\n * @param {CryptoKey} key\n * @param {Uint8Array} data\n * @return {PromiseLike<Uint8Array>} decrypted buffer\n */\nexport const decrypt = (key, data) => {\n const dataDecoder = decoding.createDecoder(data)\n const iv = decoding.readUint8Array(dataDecoder, 16)\n const cipher = decoding.readVarUint8Array(dataDecoder)\n return webcrypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv\n },\n key,\n cipher\n ).then(data => new Uint8Array(data))\n}\n\nconst aesAlgDef = {\n name: 'AES-GCM',\n length: 256\n}\n\n/**\n * @param {any} jwk\n * @param {Object} opts\n * @param {Usages} [opts.usages]\n * @param {boolean} [opts.extractable]\n */\nexport const importKeyJwk = (jwk, { usages, extractable = false } = {}) => {\n if (usages == null) {\n /* c8 ignore next */\n usages = jwk.key_ops || defaultUsages\n }\n return webcrypto.subtle.importKey('jwk', jwk, 'AES-GCM', extractable, /** @type {Usages} */ (usages))\n}\n\n/**\n * Only suited for importing public keys.\n *\n * @param {Uint8Array} raw\n * @param {Object} opts\n * @param {Usages} [opts.usages]\n * @param {boolean} [opts.extractable]\n */\nexport const importKeyRaw = (raw, { usages = defaultUsages, extractable = false } = {}) =>\n webcrypto.subtle.importKey('raw', raw, aesAlgDef, extractable, /** @type {Usages} */ (usages))\n\n/**\n * @param {Uint8Array | string} data\n */\n/* c8 ignore next */\nconst toBinary = data => typeof data === 'string' ? string.encodeUtf8(data) : data\n\n/**\n * @experimental The API is not final!\n *\n * Derive an symmetric key using the Password-Based-Key-Derivation-Function-2.\n *\n * @param {Uint8Array|string} secret\n * @param {Uint8Array|string} salt\n * @param {Object} opts\n * @param {boolean} [opts.extractable]\n * @param {Usages} [opts.usages]\n */\nexport const deriveKey = (secret, salt, { extractable = false, usages = defaultUsages } = {}) =>\n webcrypto.subtle.importKey(\n 'raw',\n toBinary(secret),\n 'PBKDF2',\n false,\n ['deriveKey']\n ).then(keyMaterial =>\n webcrypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt: toBinary(salt), // NIST recommends at least 64 bits\n iterations: 600000, // OWASP recommends 600k iterations\n hash: 'SHA-256'\n },\n keyMaterial,\n aesAlgDef,\n extractable,\n usages\n )\n )\n"],"names":["webcrypto","encoding.createEncoder","encoding.writeUint8Array","encoding.writeVarUint8Array","encoding.toUint8Array","decoding.createDecoder","decoding.readUint8Array","decoding.readVarUint8Array","string.encodeUtf8"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var map = require('./map-9a5915e4.cjs');
|
|
4
4
|
var set = require('./set-0f209abb.cjs');
|
|
5
|
-
var
|
|
5
|
+
var buffer = require('./buffer-f9b1a143.cjs');
|
|
6
6
|
var storage = require('./storage.cjs');
|
|
7
7
|
|
|
8
8
|
/* eslint-env browser */
|
|
@@ -32,7 +32,7 @@ class LocalStoragePolyfill {
|
|
|
32
32
|
/**
|
|
33
33
|
* @param {any} e
|
|
34
34
|
*/
|
|
35
|
-
this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data:
|
|
35
|
+
this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') });
|
|
36
36
|
storage.onChange(this._onChange);
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -40,7 +40,7 @@ class LocalStoragePolyfill {
|
|
|
40
40
|
* @param {ArrayBuffer} buf
|
|
41
41
|
*/
|
|
42
42
|
postMessage (buf) {
|
|
43
|
-
storage.varStorage.setItem(this.room,
|
|
43
|
+
storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)));
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
close () {
|
|
@@ -125,4 +125,4 @@ exports.broadcastchannel = broadcastchannel;
|
|
|
125
125
|
exports.publish = publish;
|
|
126
126
|
exports.subscribe = subscribe;
|
|
127
127
|
exports.unsubscribe = unsubscribe;
|
|
128
|
-
//# sourceMappingURL=broadcastchannel-
|
|
128
|
+
//# sourceMappingURL=broadcastchannel-554b85cd.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcastchannel-
|
|
1
|
+
{"version":3,"file":"broadcastchannel-554b85cd.cjs","sources":["../broadcastchannel.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers for cross-tab communication using broadcastchannel with LocalStorage fallback.\n *\n * ```js\n * // In browser window A:\n * broadcastchannel.subscribe('my events', data => console.log(data))\n * broadcastchannel.publish('my events', 'Hello world!') // => A: 'Hello world!' fires synchronously in same tab\n *\n * // In browser window B:\n * broadcastchannel.publish('my events', 'hello from tab B') // => A: 'hello from tab B'\n * ```\n *\n * @module broadcastchannel\n */\n\n// @todo before next major: use Uint8Array instead as buffer object\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as buffer from './buffer.js'\nimport * as storage from './storage.js'\n\n/**\n * @typedef {Object} Channel\n * @property {Set<function(any, any):any>} Channel.subs\n * @property {any} Channel.bc\n */\n\n/**\n * @type {Map<string, Channel>}\n */\nconst channels = new Map()\n\n/* c8 ignore start */\nclass LocalStoragePolyfill {\n /**\n * @param {string} room\n */\n constructor (room) {\n this.room = room\n /**\n * @type {null|function({data:ArrayBuffer}):void}\n */\n this.onmessage = null\n /**\n * @param {any} e\n */\n this._onChange = e => e.key === room && this.onmessage !== null && this.onmessage({ data: buffer.fromBase64(e.newValue || '') })\n storage.onChange(this._onChange)\n }\n\n /**\n * @param {ArrayBuffer} buf\n */\n postMessage (buf) {\n storage.varStorage.setItem(this.room, buffer.toBase64(buffer.createUint8ArrayFromArrayBuffer(buf)))\n }\n\n close () {\n storage.offChange(this._onChange)\n }\n}\n/* c8 ignore stop */\n\n// Use BroadcastChannel or Polyfill\n/* c8 ignore next */\nconst BC = typeof BroadcastChannel === 'undefined' ? LocalStoragePolyfill : BroadcastChannel\n\n/**\n * @param {string} room\n * @return {Channel}\n */\nconst getChannel = room =>\n map.setIfUndefined(channels, room, () => {\n const subs = set.create()\n const bc = new BC(room)\n /**\n * @param {{data:ArrayBuffer}} e\n */\n /* c8 ignore next */\n bc.onmessage = e => subs.forEach(sub => sub(e.data, 'broadcastchannel'))\n return {\n bc, subs\n }\n })\n\n/**\n * Subscribe to global `publish` events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const subscribe = (room, f) => {\n getChannel(room).subs.add(f)\n return f\n}\n\n/**\n * Unsubscribe from `publish` global events.\n *\n * @function\n * @param {string} room\n * @param {function(any, any):any} f\n */\nexport const unsubscribe = (room, f) => {\n const channel = getChannel(room)\n const unsubscribed = channel.subs.delete(f)\n if (unsubscribed && channel.subs.size === 0) {\n channel.bc.close()\n channels.delete(room)\n }\n return unsubscribed\n}\n\n/**\n * Publish data to all subscribers (including subscribers on this tab)\n *\n * @function\n * @param {string} room\n * @param {any} data\n * @param {any} [origin]\n */\nexport const publish = (room, data, origin = null) => {\n const c = getChannel(room)\n c.bc.postMessage(data)\n c.subs.forEach(sub => sub(data, origin))\n}\n"],"names":["buffer.fromBase64","storage.onChange","storage.varStorage","buffer.toBase64","buffer.createUint8ArrayFromArrayBuffer","storage.offChange","map.setIfUndefined","set.create"],"mappings":"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"}
|
|
@@ -4,18 +4,20 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
require('./map-9a5915e4.cjs');
|
|
6
6
|
require('./set-0f209abb.cjs');
|
|
7
|
-
require('./buffer-
|
|
7
|
+
require('./buffer-f9b1a143.cjs');
|
|
8
8
|
require('./storage.cjs');
|
|
9
|
-
var broadcastchannel = require('./broadcastchannel-
|
|
9
|
+
var broadcastchannel = require('./broadcastchannel-554b85cd.cjs');
|
|
10
10
|
require('./string-6d104757.cjs');
|
|
11
11
|
require('./array-704ca50e.cjs');
|
|
12
|
-
require('./environment-
|
|
12
|
+
require('./environment-819e9403.cjs');
|
|
13
13
|
require('./conditions-f5c0c102.cjs');
|
|
14
14
|
require('./function-314fdc56.cjs');
|
|
15
15
|
require('./object-fecf6a7b.cjs');
|
|
16
16
|
require('./math-08e068f9.cjs');
|
|
17
|
-
require('./
|
|
17
|
+
require('./encoding-5bb79b9b.cjs');
|
|
18
18
|
require('./number-466d8922.cjs');
|
|
19
|
+
require('./binary-ac8e39e2.cjs');
|
|
20
|
+
require('./decoding-fca97826.cjs');
|
|
19
21
|
require('./error-8582d695.cjs');
|
|
20
22
|
|
|
21
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcastchannel.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"broadcastchannel.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var string = require('./string-6d104757.cjs');
|
|
4
|
+
var environment = require('./environment-819e9403.cjs');
|
|
5
|
+
var array = require('./array-704ca50e.cjs');
|
|
6
|
+
var math = require('./math-08e068f9.cjs');
|
|
7
|
+
var encoding = require('./encoding-5bb79b9b.cjs');
|
|
8
|
+
var decoding = require('./decoding-fca97826.cjs');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Utility functions to work with buffers (Uint8Array).
|
|
12
|
+
*
|
|
13
|
+
* @module buffer
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @param {number} len
|
|
18
|
+
*/
|
|
19
|
+
const createUint8ArrayFromLen = len => new Uint8Array(len);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Create Uint8Array with initial content from buffer
|
|
23
|
+
*
|
|
24
|
+
* @param {ArrayBuffer} buffer
|
|
25
|
+
* @param {number} byteOffset
|
|
26
|
+
* @param {number} length
|
|
27
|
+
*/
|
|
28
|
+
const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Create Uint8Array with initial content from buffer
|
|
32
|
+
*
|
|
33
|
+
* @param {ArrayBuffer} buffer
|
|
34
|
+
*/
|
|
35
|
+
const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer);
|
|
36
|
+
|
|
37
|
+
/* c8 ignore start */
|
|
38
|
+
/**
|
|
39
|
+
* @param {Uint8Array} bytes
|
|
40
|
+
* @return {string}
|
|
41
|
+
*/
|
|
42
|
+
const toBase64Browser = bytes => {
|
|
43
|
+
let s = '';
|
|
44
|
+
for (let i = 0; i < bytes.byteLength; i++) {
|
|
45
|
+
s += string.fromCharCode(bytes[i]);
|
|
46
|
+
}
|
|
47
|
+
// eslint-disable-next-line no-undef
|
|
48
|
+
return btoa(s)
|
|
49
|
+
};
|
|
50
|
+
/* c8 ignore stop */
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @param {Uint8Array} bytes
|
|
54
|
+
* @return {string}
|
|
55
|
+
*/
|
|
56
|
+
const toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64');
|
|
57
|
+
|
|
58
|
+
/* c8 ignore start */
|
|
59
|
+
/**
|
|
60
|
+
* @param {string} s
|
|
61
|
+
* @return {Uint8Array}
|
|
62
|
+
*/
|
|
63
|
+
const fromBase64Browser = s => {
|
|
64
|
+
// eslint-disable-next-line no-undef
|
|
65
|
+
const a = atob(s);
|
|
66
|
+
const bytes = createUint8ArrayFromLen(a.length);
|
|
67
|
+
for (let i = 0; i < a.length; i++) {
|
|
68
|
+
bytes[i] = a.charCodeAt(i);
|
|
69
|
+
}
|
|
70
|
+
return bytes
|
|
71
|
+
};
|
|
72
|
+
/* c8 ignore stop */
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @param {string} s
|
|
76
|
+
*/
|
|
77
|
+
const fromBase64Node = s => {
|
|
78
|
+
const buf = Buffer.from(s, 'base64');
|
|
79
|
+
return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/* c8 ignore next */
|
|
83
|
+
const toBase64 = environment.isBrowser ? toBase64Browser : toBase64Node;
|
|
84
|
+
|
|
85
|
+
/* c8 ignore next */
|
|
86
|
+
const fromBase64 = environment.isBrowser ? fromBase64Browser : fromBase64Node;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5
|
|
90
|
+
* @param {Uint8Array} buf
|
|
91
|
+
*/
|
|
92
|
+
const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '');
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* @param {string} base64
|
|
96
|
+
*/
|
|
97
|
+
const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'));
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Base64 is always a more efficient choice. This exists for utility purposes only.
|
|
101
|
+
*
|
|
102
|
+
* @param {Uint8Array} buf
|
|
103
|
+
*/
|
|
104
|
+
const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('');
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Note: This function expects that the hex doesn't start with 0x..
|
|
108
|
+
*
|
|
109
|
+
* @param {string} hex
|
|
110
|
+
*/
|
|
111
|
+
const fromHexString = hex => {
|
|
112
|
+
const hlen = hex.length;
|
|
113
|
+
const buf = new Uint8Array(math.ceil(hlen / 2));
|
|
114
|
+
for (let i = 0; i < hlen; i += 2) {
|
|
115
|
+
buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16);
|
|
116
|
+
}
|
|
117
|
+
return buf
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Copy the content of an Uint8Array view to a new ArrayBuffer.
|
|
122
|
+
*
|
|
123
|
+
* @param {Uint8Array} uint8Array
|
|
124
|
+
* @return {Uint8Array}
|
|
125
|
+
*/
|
|
126
|
+
const copyUint8Array = uint8Array => {
|
|
127
|
+
const newBuf = createUint8ArrayFromLen(uint8Array.byteLength);
|
|
128
|
+
newBuf.set(uint8Array);
|
|
129
|
+
return newBuf
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.
|
|
134
|
+
* See encoding.writeAny for more information.
|
|
135
|
+
*
|
|
136
|
+
* @param {any} data
|
|
137
|
+
* @return {Uint8Array}
|
|
138
|
+
*/
|
|
139
|
+
const encodeAny = data =>
|
|
140
|
+
encoding.encode(encoder => encoding.writeAny(encoder, data));
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Decode an any-encoded value.
|
|
144
|
+
*
|
|
145
|
+
* @param {Uint8Array} buf
|
|
146
|
+
* @return {any}
|
|
147
|
+
*/
|
|
148
|
+
const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf));
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Shift Byte Array {N} bits to the left. Does not expand byte array.
|
|
152
|
+
*
|
|
153
|
+
* @param {Uint8Array} bs
|
|
154
|
+
* @param {number} N should be in the range of [0-7]
|
|
155
|
+
*/
|
|
156
|
+
const shiftNBitsLeft = (bs, N) => {
|
|
157
|
+
if (N === 0) return bs
|
|
158
|
+
bs = new Uint8Array(bs);
|
|
159
|
+
bs[0] <<= N;
|
|
160
|
+
for (let i = 1; i < bs.length; i++) {
|
|
161
|
+
bs[i - 1] |= bs[i] >>> (8 - N);
|
|
162
|
+
bs[i] <<= N;
|
|
163
|
+
}
|
|
164
|
+
return bs
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
var buffer = /*#__PURE__*/Object.freeze({
|
|
168
|
+
__proto__: null,
|
|
169
|
+
createUint8ArrayFromLen: createUint8ArrayFromLen,
|
|
170
|
+
createUint8ArrayViewFromArrayBuffer: createUint8ArrayViewFromArrayBuffer,
|
|
171
|
+
createUint8ArrayFromArrayBuffer: createUint8ArrayFromArrayBuffer,
|
|
172
|
+
toBase64: toBase64,
|
|
173
|
+
fromBase64: fromBase64,
|
|
174
|
+
toBase64UrlEncoded: toBase64UrlEncoded,
|
|
175
|
+
fromBase64UrlEncoded: fromBase64UrlEncoded,
|
|
176
|
+
toHexString: toHexString,
|
|
177
|
+
fromHexString: fromHexString,
|
|
178
|
+
copyUint8Array: copyUint8Array,
|
|
179
|
+
encodeAny: encodeAny,
|
|
180
|
+
decodeAny: decodeAny,
|
|
181
|
+
shiftNBitsLeft: shiftNBitsLeft
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
exports.buffer = buffer;
|
|
185
|
+
exports.copyUint8Array = copyUint8Array;
|
|
186
|
+
exports.createUint8ArrayFromArrayBuffer = createUint8ArrayFromArrayBuffer;
|
|
187
|
+
exports.createUint8ArrayFromLen = createUint8ArrayFromLen;
|
|
188
|
+
exports.createUint8ArrayViewFromArrayBuffer = createUint8ArrayViewFromArrayBuffer;
|
|
189
|
+
exports.decodeAny = decodeAny;
|
|
190
|
+
exports.encodeAny = encodeAny;
|
|
191
|
+
exports.fromBase64 = fromBase64;
|
|
192
|
+
exports.fromBase64UrlEncoded = fromBase64UrlEncoded;
|
|
193
|
+
exports.fromHexString = fromHexString;
|
|
194
|
+
exports.shiftNBitsLeft = shiftNBitsLeft;
|
|
195
|
+
exports.toBase64 = toBase64;
|
|
196
|
+
exports.toBase64UrlEncoded = toBase64UrlEncoded;
|
|
197
|
+
exports.toHexString = toHexString;
|
|
198
|
+
//# sourceMappingURL=buffer-f9b1a143.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer-f9b1a143.cjs","sources":["../buffer.js"],"sourcesContent":["/**\n * Utility functions to work with buffers (Uint8Array).\n *\n * @module buffer\n */\n\nimport * as string from './string.js'\nimport * as env from './environment.js'\nimport * as array from './array.js'\nimport * as math from './math.js'\nimport * as encoding from './encoding.js'\nimport * as decoding from './decoding.js'\n\n/**\n * @param {number} len\n */\nexport const createUint8ArrayFromLen = len => new Uint8Array(len)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n * @param {number} byteOffset\n * @param {number} length\n */\nexport const createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length) => new Uint8Array(buffer, byteOffset, length)\n\n/**\n * Create Uint8Array with initial content from buffer\n *\n * @param {ArrayBuffer} buffer\n */\nexport const createUint8ArrayFromArrayBuffer = buffer => new Uint8Array(buffer)\n\n/* c8 ignore start */\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Browser = bytes => {\n let s = ''\n for (let i = 0; i < bytes.byteLength; i++) {\n s += string.fromCharCode(bytes[i])\n }\n // eslint-disable-next-line no-undef\n return btoa(s)\n}\n/* c8 ignore stop */\n\n/**\n * @param {Uint8Array} bytes\n * @return {string}\n */\nconst toBase64Node = bytes => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString('base64')\n\n/* c8 ignore start */\n/**\n * @param {string} s\n * @return {Uint8Array}\n */\nconst fromBase64Browser = s => {\n // eslint-disable-next-line no-undef\n const a = atob(s)\n const bytes = createUint8ArrayFromLen(a.length)\n for (let i = 0; i < a.length; i++) {\n bytes[i] = a.charCodeAt(i)\n }\n return bytes\n}\n/* c8 ignore stop */\n\n/**\n * @param {string} s\n */\nconst fromBase64Node = s => {\n const buf = Buffer.from(s, 'base64')\n return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n\n/* c8 ignore next */\nexport const toBase64 = env.isBrowser ? toBase64Browser : toBase64Node\n\n/* c8 ignore next */\nexport const fromBase64 = env.isBrowser ? fromBase64Browser : fromBase64Node\n\n/**\n * Implements base64url - see https://datatracker.ietf.org/doc/html/rfc4648#section-5\n * @param {Uint8Array} buf\n */\nexport const toBase64UrlEncoded = buf => toBase64(buf).replaceAll('+', '-').replaceAll('/', '_').replaceAll('=', '')\n\n/**\n * @param {string} base64\n */\nexport const fromBase64UrlEncoded = base64 => fromBase64(base64.replaceAll('-', '+').replaceAll('_', '/'))\n\n/**\n * Base64 is always a more efficient choice. This exists for utility purposes only.\n *\n * @param {Uint8Array} buf\n */\nexport const toHexString = buf => array.map(buf, b => b.toString(16).padStart(2, '0')).join('')\n\n/**\n * Note: This function expects that the hex doesn't start with 0x..\n *\n * @param {string} hex\n */\nexport const fromHexString = hex => {\n const hlen = hex.length\n const buf = new Uint8Array(math.ceil(hlen / 2))\n for (let i = 0; i < hlen; i += 2) {\n buf[buf.length - i / 2 - 1] = Number.parseInt(hex.slice(hlen - i - 2, hlen - i), 16)\n }\n return buf\n}\n\n/**\n * Copy the content of an Uint8Array view to a new ArrayBuffer.\n *\n * @param {Uint8Array} uint8Array\n * @return {Uint8Array}\n */\nexport const copyUint8Array = uint8Array => {\n const newBuf = createUint8ArrayFromLen(uint8Array.byteLength)\n newBuf.set(uint8Array)\n return newBuf\n}\n\n/**\n * Encode anything as a UInt8Array. It's a pun on typescripts's `any` type.\n * See encoding.writeAny for more information.\n *\n * @param {any} data\n * @return {Uint8Array}\n */\nexport const encodeAny = data =>\n encoding.encode(encoder => encoding.writeAny(encoder, data))\n\n/**\n * Decode an any-encoded value.\n *\n * @param {Uint8Array} buf\n * @return {any}\n */\nexport const decodeAny = buf => decoding.readAny(decoding.createDecoder(buf))\n\n/**\n * Shift Byte Array {N} bits to the left. Does not expand byte array.\n *\n * @param {Uint8Array} bs\n * @param {number} N should be in the range of [0-7]\n */\nexport const shiftNBitsLeft = (bs, N) => {\n if (N === 0) return bs\n bs = new Uint8Array(bs)\n bs[0] <<= N\n for (let i = 1; i < bs.length; i++) {\n bs[i - 1] |= bs[i] >>> (8 - N)\n bs[i] <<= N\n }\n return bs\n}\n"],"names":["string.fromCharCode","env.isBrowser","array.map","math.ceil","encoding.encode","encoding.writeAny","decoding.readAny","decoding.createDecoder"],"mappings":"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"}
|
package/dist/buffer.cjs
CHANGED
|
@@ -3,33 +3,35 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
require('./string-6d104757.cjs');
|
|
6
|
-
require('./environment-
|
|
6
|
+
require('./environment-819e9403.cjs');
|
|
7
7
|
require('./array-704ca50e.cjs');
|
|
8
8
|
require('./math-08e068f9.cjs');
|
|
9
|
-
|
|
9
|
+
require('./encoding-5bb79b9b.cjs');
|
|
10
|
+
require('./decoding-fca97826.cjs');
|
|
11
|
+
var buffer = require('./buffer-f9b1a143.cjs');
|
|
10
12
|
require('./map-9a5915e4.cjs');
|
|
11
13
|
require('./conditions-f5c0c102.cjs');
|
|
12
14
|
require('./storage.cjs');
|
|
13
15
|
require('./function-314fdc56.cjs');
|
|
14
16
|
require('./object-fecf6a7b.cjs');
|
|
15
17
|
require('./set-0f209abb.cjs');
|
|
16
|
-
require('./binary-ac8e39e2.cjs');
|
|
17
18
|
require('./number-466d8922.cjs');
|
|
19
|
+
require('./binary-ac8e39e2.cjs');
|
|
18
20
|
require('./error-8582d695.cjs');
|
|
19
21
|
|
|
20
22
|
|
|
21
23
|
|
|
22
|
-
exports.copyUint8Array =
|
|
23
|
-
exports.createUint8ArrayFromArrayBuffer =
|
|
24
|
-
exports.createUint8ArrayFromLen =
|
|
25
|
-
exports.createUint8ArrayViewFromArrayBuffer =
|
|
26
|
-
exports.decodeAny =
|
|
27
|
-
exports.encodeAny =
|
|
28
|
-
exports.fromBase64 =
|
|
29
|
-
exports.fromBase64UrlEncoded =
|
|
30
|
-
exports.fromHexString =
|
|
31
|
-
exports.shiftNBitsLeft =
|
|
32
|
-
exports.toBase64 =
|
|
33
|
-
exports.toBase64UrlEncoded =
|
|
34
|
-
exports.toHexString =
|
|
24
|
+
exports.copyUint8Array = buffer.copyUint8Array;
|
|
25
|
+
exports.createUint8ArrayFromArrayBuffer = buffer.createUint8ArrayFromArrayBuffer;
|
|
26
|
+
exports.createUint8ArrayFromLen = buffer.createUint8ArrayFromLen;
|
|
27
|
+
exports.createUint8ArrayViewFromArrayBuffer = buffer.createUint8ArrayViewFromArrayBuffer;
|
|
28
|
+
exports.decodeAny = buffer.decodeAny;
|
|
29
|
+
exports.encodeAny = buffer.encodeAny;
|
|
30
|
+
exports.fromBase64 = buffer.fromBase64;
|
|
31
|
+
exports.fromBase64UrlEncoded = buffer.fromBase64UrlEncoded;
|
|
32
|
+
exports.fromHexString = buffer.fromHexString;
|
|
33
|
+
exports.shiftNBitsLeft = buffer.shiftNBitsLeft;
|
|
34
|
+
exports.toBase64 = buffer.toBase64;
|
|
35
|
+
exports.toBase64UrlEncoded = buffer.toBase64UrlEncoded;
|
|
36
|
+
exports.toHexString = buffer.toHexString;
|
|
35
37
|
//# sourceMappingURL=buffer.cjs.map
|
package/dist/buffer.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buffer.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/buffer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../buffer.js"],"names":[],"mappings":"AAgBO,6CAFI,MAAM,cAEgD;AAS1D,4DAJI,WAAW,cACX,MAAM,UACN,MAAM,cAE4G;AAOtH,wDAFI,WAAW,cAEyD;AAG/E;;;GAGG;AACH,gCAHW,UAAU,GACT,MAAM,CASjB;AAUD;;;GAGG;AACH,8BAHW,MAAM,GACL,UAAU,CAUrB;AAqBM,wCAFI,UAAU,UAE+F;AAK7G,6CAFI,MAAM,cAEyF;AAOnG,iCAFI,UAAU,UAE0E;AAOxF,mCAFI,MAAM,cAShB;AAQM,2CAHI,UAAU,GACT,UAAU,CAMrB;AASM,gCAHI,GAAG,GACF,UAAU,
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../buffer.js"],"names":[],"mappings":"AAgBO,6CAFI,MAAM,cAEgD;AAS1D,4DAJI,WAAW,cACX,MAAM,UACN,MAAM,cAE4G;AAOtH,wDAFI,WAAW,cAEyD;AAG/E;;;GAGG;AACH,gCAHW,UAAU,GACT,MAAM,CASjB;AAUD;;;GAGG;AACH,8BAHW,MAAM,GACL,UAAU,CAUrB;AAqBM,wCAFI,UAAU,UAE+F;AAK7G,6CAFI,MAAM,cAEyF;AAOnG,iCAFI,UAAU,UAE0E;AAOxF,mCAFI,MAAM,cAShB;AAQM,2CAHI,UAAU,GACT,UAAU,CAMrB;AASM,gCAHI,GAAG,GACF,UAAU,CAGwC;AAQvD,+BAHI,UAAU,GACT,GAAG,CAE8D;AAQtE,mCAHI,UAAU,KACV,MAAM,cAWhB"}
|