@secrecy/lib 1.0.0-dev.64 → 1.0.0-dev.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/dist/BaseClient-15fdf493.d.ts +351 -0
- package/dist/BaseClient.cjs +2 -0
- package/dist/BaseClient.cjs.map +1 -0
- package/dist/BaseClient.d.ts +16 -104
- package/dist/BaseClient.js +2 -430
- package/dist/BaseClient.js.map +1 -0
- package/dist/PopupTools.cjs +2 -0
- package/dist/PopupTools.cjs.map +1 -0
- package/dist/PopupTools.d.ts +5 -4
- package/dist/PopupTools.js +2 -196
- package/dist/PopupTools.js.map +1 -0
- package/dist/ZeusThunder.cjs +2 -0
- package/dist/ZeusThunder.cjs.map +1 -0
- package/dist/ZeusThunder.d.ts +6 -2
- package/dist/ZeusThunder.js +2 -65
- package/dist/ZeusThunder.js.map +1 -0
- package/dist/cache.cjs +2 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.ts +22 -4
- package/dist/cache.js +2 -4
- package/dist/cache.js.map +1 -0
- package/dist/chunk-5WPCTUWH.cjs +2 -0
- package/dist/chunk-5WPCTUWH.cjs.map +1 -0
- package/dist/chunk-KMTF2BZE.js +2 -0
- package/dist/chunk-KMTF2BZE.js.map +1 -0
- package/dist/client/SecrecyAppClient.cjs +2 -0
- package/dist/client/SecrecyAppClient.cjs.map +1 -0
- package/dist/client/SecrecyAppClient.d.ts +16 -17
- package/dist/client/SecrecyAppClient.js +2 -227
- package/dist/client/SecrecyAppClient.js.map +1 -0
- package/dist/client/SecrecyCloudClient.cjs +2 -0
- package/dist/client/SecrecyCloudClient.cjs.map +1 -0
- package/dist/client/SecrecyCloudClient.d.ts +16 -89
- package/dist/client/SecrecyCloudClient.js +2 -1411
- package/dist/client/SecrecyCloudClient.js.map +1 -0
- package/dist/client/SecrecyDbClient.cjs +2 -0
- package/dist/client/SecrecyDbClient.cjs.map +1 -0
- package/dist/client/SecrecyDbClient.d.ts +16 -21
- package/dist/client/SecrecyDbClient.js +2 -177
- package/dist/client/SecrecyDbClient.js.map +1 -0
- package/dist/client/SecrecyMailClient.cjs +2 -0
- package/dist/client/SecrecyMailClient.cjs.map +1 -0
- package/dist/client/SecrecyMailClient.d.ts +16 -42
- package/dist/client/SecrecyMailClient.js +2 -1022
- package/dist/client/SecrecyMailClient.js.map +1 -0
- package/dist/client/SecrecyPayClient.cjs +2 -0
- package/dist/client/SecrecyPayClient.cjs.map +1 -0
- package/dist/client/SecrecyPayClient.d.ts +16 -7
- package/dist/client/SecrecyPayClient.js +2 -36
- package/dist/client/SecrecyPayClient.js.map +1 -0
- package/dist/client/SecrecyWalletClient.cjs +2 -0
- package/dist/client/SecrecyWalletClient.cjs.map +1 -0
- package/dist/client/SecrecyWalletClient.d.ts +16 -30
- package/dist/client/SecrecyWalletClient.js +2 -73
- package/dist/client/SecrecyWalletClient.js.map +1 -0
- package/dist/client/convert/file.cjs +2 -0
- package/dist/client/convert/file.cjs.map +1 -0
- package/dist/client/convert/file.d.ts +11 -5
- package/dist/client/convert/file.js +2 -33
- package/dist/client/convert/file.js.map +1 -0
- package/dist/client/convert/mail.cjs +2 -0
- package/dist/client/convert/mail.cjs.map +1 -0
- package/dist/client/convert/mail.d.ts +13 -3
- package/dist/client/convert/mail.js +2 -43
- package/dist/client/convert/mail.js.map +1 -0
- package/dist/client/convert/node.cjs +2 -0
- package/dist/client/convert/node.cjs.map +1 -0
- package/dist/client/convert/node.d.ts +18 -9
- package/dist/client/convert/node.js +2 -88
- package/dist/client/convert/node.js.map +1 -0
- package/dist/client/helpers.cjs +2 -0
- package/dist/client/helpers.cjs.map +1 -0
- package/dist/client/helpers.d.ts +16 -28
- package/dist/client/helpers.js +2 -113
- package/dist/client/helpers.js.map +1 -0
- package/dist/client/index.cjs +2 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.ts +16 -34
- package/dist/client/index.js +2 -46
- package/dist/client/index.js.map +1 -0
- package/dist/client/storage.cjs +2 -0
- package/dist/client/storage.cjs.map +1 -0
- package/dist/client/storage.d.ts +6 -3
- package/dist/client/storage.js +2 -12
- package/dist/client/storage.js.map +1 -0
- package/dist/client/types/File.cjs +1 -0
- package/dist/client/types/File.cjs.map +1 -0
- package/dist/client/types/File.d.ts +9 -5
- package/dist/client/types/File.js +1 -3
- package/dist/client/types/File.js.map +1 -0
- package/dist/client/types/Inputs.cjs +1 -0
- package/dist/client/types/Inputs.cjs.map +1 -0
- package/dist/client/types/Inputs.d.ts +6 -4
- package/dist/client/types/Inputs.js +1 -3
- package/dist/client/types/Inputs.js.map +1 -0
- package/dist/client/types/Node.cjs +1 -0
- package/dist/client/types/Node.cjs.map +1 -0
- package/dist/client/types/Node.d.ts +9 -56
- package/dist/client/types/Node.js +1 -3
- package/dist/client/types/Node.js.map +1 -0
- package/dist/client/types/UserAppNotifications.cjs +1 -0
- package/dist/client/types/UserAppNotifications.cjs.map +1 -0
- package/dist/client/types/UserAppNotifications.d.ts +3 -1
- package/dist/client/types/UserAppNotifications.js +1 -3
- package/dist/client/types/UserAppNotifications.js.map +1 -0
- package/dist/client/types/UserAppSettings.cjs +1 -0
- package/dist/client/types/UserAppSettings.cjs.map +1 -0
- package/dist/client/types/UserAppSettings.d.ts +3 -1
- package/dist/client/types/UserAppSettings.js +1 -3
- package/dist/client/types/UserAppSettings.js.map +1 -0
- package/dist/client/types/index.cjs +2 -0
- package/dist/client/types/index.cjs.map +1 -0
- package/dist/client/types/index.d.ts +86 -30
- package/dist/client/types/index.js +2 -8
- package/dist/client/types/index.js.map +1 -0
- package/dist/client/types/selectors.cjs +2 -0
- package/dist/client/types/selectors.cjs.map +1 -0
- package/dist/client/types/selectors.d.ts +7 -5
- package/dist/client/types/selectors.js +2 -135
- package/dist/client/types/selectors.js.map +1 -0
- package/dist/crypto/file.cjs +2 -0
- package/dist/crypto/file.cjs.map +1 -0
- package/dist/crypto/file.d.ts +8 -6
- package/dist/crypto/file.js +2 -195
- package/dist/crypto/file.js.map +1 -0
- package/dist/crypto/index.cjs +2 -0
- package/dist/crypto/index.cjs.map +1 -0
- package/dist/crypto/index.d.ts +11 -9
- package/dist/crypto/index.js +2 -45
- package/dist/crypto/index.js.map +1 -0
- package/dist/error.cjs +1 -0
- package/dist/error.cjs.map +1 -0
- package/dist/error.d.ts +12 -10
- package/dist/error.js +1 -3
- package/dist/error.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -11
- package/dist/index.js +2 -9
- package/dist/index.js.map +1 -0
- package/dist/minify/index.cjs +2 -0
- package/dist/minify/index.cjs.map +1 -0
- package/dist/minify/index.d.ts +4 -2
- package/dist/minify/index.js +2 -23
- package/dist/minify/index.js.map +1 -0
- package/dist/minify/lz4.cjs +3 -0
- package/dist/minify/lz4.cjs.map +1 -0
- package/dist/minify/lz4.d.ts +7 -5
- package/dist/minify/lz4.js +3 -539
- package/dist/minify/lz4.js.map +1 -0
- package/dist/sodium.cjs +2 -0
- package/dist/sodium.cjs.map +1 -0
- package/dist/sodium.d.ts +5 -3
- package/dist/sodium.js +2 -6
- package/dist/sodium.js.map +1 -0
- package/dist/utils/store-buddy.cjs +2 -0
- package/dist/utils/store-buddy.cjs.map +1 -0
- package/dist/utils/store-buddy.d.ts +4 -3
- package/dist/utils/store-buddy.js +2 -58
- package/dist/utils/store-buddy.js.map +1 -0
- package/dist/utils/time.cjs +2 -0
- package/dist/utils/time.cjs.map +1 -0
- package/dist/utils/time.d.ts +4 -2
- package/dist/utils/time.js +2 -12
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/utils.cjs +2 -0
- package/dist/utils/utils.cjs.map +1 -0
- package/dist/utils/utils.d.ts +6 -4
- package/dist/utils/utils.js +2 -47
- package/dist/utils/utils.js.map +1 -0
- package/dist/worker/md5.cjs +2 -0
- package/dist/worker/md5.cjs.map +1 -0
- package/dist/worker/md5.d.ts +3 -1
- package/dist/worker/md5.js +2 -24
- package/dist/worker/md5.js.map +1 -0
- package/dist/worker/sodium.cjs +2 -0
- package/dist/worker/sodium.cjs.map +1 -0
- package/dist/worker/sodium.d.ts +6 -3
- package/dist/worker/sodium.js +2 -118
- package/dist/worker/sodium.js.map +1 -0
- package/dist/worker/workerCodes.cjs +254 -0
- package/dist/worker/workerCodes.cjs.map +1 -0
- package/dist/worker/workerCodes.d.ts +4 -2
- package/dist/worker/workerCodes.js +4 -5
- package/dist/worker/workerCodes.js.map +1 -0
- package/dist/zeus/const.cjs +2 -0
- package/dist/zeus/const.cjs.map +1 -0
- package/dist/zeus/const.d.ts +5 -3
- package/dist/zeus/const.js +2 -1287
- package/dist/zeus/const.js.map +1 -0
- package/dist/zeus/index.cjs +5 -0
- package/dist/zeus/index.cjs.map +1 -0
- package/dist/zeus/index.d.ts +80 -78
- package/dist/zeus/index.js +5 -562
- package/dist/zeus/index.js.map +1 -0
- package/package.json +17 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/minify/lz4.ts"],"sourcesContent":["// lz4-ts @license BSD-3-Clause / Copyright (c) 2015, Pierre Curto / 2016, oov. All rights reserved.\n/**\n * Copyright (c) 2015, Pierre Curto\n * Copyright (c) 2016, oov\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * * Neither the name of xxHash nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst errInvalidSource = new Error(\"invalid source\");\nconst errShortBuffer = new Error(\"short buffer\");\n\n// The following constants are used to setup the compression algorithm.\nconst minMatch = 4; // the minimum size of the match sequence size (4 bytes)\nconst winSizeLog = 16; // LZ4 64Kb window size limit\nconst winSize = 1 << winSizeLog;\nconst winMask = winSize - 1; // 64Kb window of previous data for dependent blocks\n\n// hashSizeLog determines the size of the hash table used to quickly find a previous match position.\n// Its value influences the compression speed and memory usage, the lower the faster,\n// but at the expense of the compression ratio.\n// 16 seems to be the best compromise.\nconst hashSizeLog = 16;\nconst hashSize = 1 << hashSizeLog;\nconst hashShift = minMatch * 8 - hashSizeLog;\n\nconst mfLimit = 8 + minMatch; // The last match cannot start within the last 12 bytes.\nconst skipStrength = 6; // variable step for fast scan\n\nconst hasher = 2654435761 | 0; // prime number used to hash minMatch\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Math/imul#Polyfill\nfunction imulPolyfill(a: number, b: number): number {\n const ah = (a >>> 16) & 0xffff;\n const al = a & 0xffff;\n const bh = (b >>> 16) & 0xffff;\n const bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl + (((ah * bl + al * bh) << 16) >>> 0)) | 0;\n}\nconst imul = Math.imul ? Math.imul : imulPolyfill;\n\nfunction getUint32(a: Uint8Array, i: number): number {\n return a[i + 3] | (a[i + 2] << 8) | (a[i + 1] << 16) | (a[i] << 24);\n}\n\nfunction copy(\n dest: Uint8Array,\n src: Uint8Array,\n di: number,\n si: number,\n len: number\n): void {\n for (let i = 0; i < len; ++i) {\n dest[di++] = src[si++];\n }\n}\n\nexport function calcUncompressedLen(src: Uint8Array): number {\n const sn = src.length;\n if (sn === 0) {\n return 0;\n }\n\n let si = 0;\n let di = 0;\n\n while (true) {\n // literals and match lengths (token)\n let lLen = src[si] >> 4;\n let mLen = src[si] & 0xf;\n if (++si === sn) {\n throw errInvalidSource;\n }\n\n // literals\n if (lLen > 0) {\n if (lLen === 0xf) {\n while (src[si] === 0xff) {\n lLen += 0xff;\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n lLen += src[si];\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n di += lLen;\n si += lLen;\n if (si >= sn) {\n return di;\n }\n }\n\n si += 2;\n if (si >= sn) {\n throw errInvalidSource;\n }\n const offset = src[si - 2] | (src[si - 1] << 8);\n if (di - offset < 0 || offset === 0) {\n throw errInvalidSource;\n }\n\n // match\n if (mLen === 0xf) {\n while (src[si] === 0xff) {\n mLen += 0xff;\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n mLen += src[si];\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n // minimum match length is 4\n mLen += 4;\n\n // copy the match (NB. match is at least 4 bytes long)\n for (; mLen >= offset; mLen -= offset) {\n di += offset;\n }\n di += mLen;\n }\n}\n\nexport function uncompressBlock(src: Uint8Array, dest: Uint8Array): number {\n const sn = src.length;\n const dn = dest.length;\n if (sn === 0) {\n return 0;\n }\n\n let si = 0;\n let di = 0;\n\n while (true) {\n // literals and match lengths (token)\n let lLen = src[si] >> 4;\n let mLen = src[si] & 0xf;\n if (++si === sn) {\n throw errInvalidSource;\n }\n\n // literals\n if (lLen > 0) {\n if (lLen === 0xf) {\n while (src[si] === 0xff) {\n lLen += 0xff;\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n lLen += src[si];\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n if (dn - di < lLen || si + lLen > sn) {\n throw errShortBuffer;\n }\n copy(dest, src, di, si, lLen);\n di += lLen;\n si += lLen;\n if (si >= sn) {\n return di;\n }\n }\n\n si += 2;\n if (si >= sn) {\n throw errInvalidSource;\n }\n const offset = src[si - 2] | (src[si - 1] << 8);\n if (di - offset < 0 || offset === 0) {\n throw errInvalidSource;\n }\n\n // match\n if (mLen === 0xf) {\n while (src[si] === 0xff) {\n mLen += 0xff;\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n mLen += src[si];\n if (++si === sn) {\n throw errInvalidSource;\n }\n }\n // minimum match length is 4\n mLen += 4;\n if (dn - di <= mLen) {\n throw errShortBuffer;\n }\n\n // copy the match (NB. match is at least 4 bytes long)\n for (; mLen >= offset; mLen -= offset) {\n copy(dest, dest, di, di - offset, offset);\n di += offset;\n }\n copy(dest, dest, di, di - offset, mLen);\n di += mLen;\n }\n}\n\nexport function compressBlockBound(n: number): number {\n return n + ((n / 255) | 0) + 16;\n}\n\nexport function compressBlock(\n src: Uint8Array,\n dest: Uint8Array,\n soffset: number\n): number {\n const sn = src.length - mfLimit;\n const dn = dest.length;\n if (sn <= 0 || dn === 0 || soffset >= sn) {\n return 0;\n }\n let si = 0,\n di = 0;\n\n // fast scan strategy:\n // we only need a hash table to store the last sequences (4 bytes)\n const hashTable = new Uint32Array(hashSize);\n\n // Initialise the hash table with the first 64Kb of the input buffer\n // (used when compressing dependent blocks)\n while (si < soffset) {\n const h = imul(getUint32(src, si), hasher) >>> hashShift;\n hashTable[h] = ++si;\n }\n\n let anchor = si;\n let fma = 1 << skipStrength;\n while (si < sn - minMatch) {\n // hash the next 4 bytes (sequence)...\n const h = imul(getUint32(src, si), hasher) >>> hashShift;\n // -1 to separate existing entries from new ones\n const ref = hashTable[h] - 1;\n // ...and store the position of the hash in the hash table (+1 to compensate the -1 upon saving)\n hashTable[h] = si + 1;\n // no need to check the last 3 bytes in the first literal 4 bytes as\n // this guarantees that the next match, if any, is compressed with\n // a lower size, since to have some compression we must have:\n // ll+ml-overlap > 1 + (ll-15)/255 + (ml-4-15)/255 + 2 (uncompressed size>compressed size)\n // => ll+ml>3+2*overlap => ll+ml>= 4+2*overlap\n // and by definition we do have:\n // ll >= 1, ml >= 4\n // => ll+ml >= 5\n // => so overlap must be 0\n\n // the sequence is new, out of bound (64kb) or not valid: try next sequence\n if (\n ref < 0 || //(fma & ((1 << skipStrength) - 1)) < 4 || // this code seems has a big penalty for size...\n (si - ref) >> winSizeLog > 0 ||\n src[ref] !== src[si] ||\n src[ref + 1] !== src[si + 1] ||\n src[ref + 2] !== src[si + 2] ||\n src[ref + 3] !== src[si + 3]\n ) {\n // variable step: improves performance on non-compressible data\n si += fma >> skipStrength;\n ++fma;\n continue;\n }\n // match found\n fma = 1 << skipStrength;\n const lLen = si - anchor;\n const offset = si - ref;\n\n // encode match length part 1\n si += minMatch;\n let mLen = si; // match length has minMatch already\n while (si <= sn && src[si] === src[si - offset]) {\n si++;\n }\n mLen = si - mLen;\n if (mLen < 0xf) {\n dest[di] = mLen;\n } else {\n dest[di] = 0xf;\n }\n\n // encode literals length\n if (lLen < 0xf) {\n dest[di] |= lLen << 4;\n } else {\n dest[di] |= 0xf0;\n if (++di === dn) {\n throw errShortBuffer;\n }\n let l = lLen - 0xf;\n for (; l >= 0xff; l -= 0xff) {\n dest[di] = 0xff;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n dest[di] = l & 0xff;\n }\n if (++di === dn) {\n throw errShortBuffer;\n }\n\n // literals\n if (di + lLen >= dn) {\n throw errShortBuffer;\n }\n copy(dest, src, di, anchor, lLen);\n di += lLen;\n anchor = si;\n\n // encode offset\n di += 2;\n if (di >= dn) {\n throw errShortBuffer;\n }\n dest[di - 2] = offset;\n dest[di - 1] = offset >> 8;\n\n // encode match length part 2\n if (mLen >= 0xf) {\n for (mLen -= 0xf; mLen >= 0xff; mLen -= 0xff) {\n dest[di] = 0xff;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n dest[di] = mLen;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n }\n\n if (anchor === 0) {\n // incompressible\n return 0;\n }\n\n // last literals\n let lLen = src.length - anchor;\n if (lLen < 0xf) {\n dest[di] = lLen << 4;\n } else {\n dest[di] = 0xf0;\n if (++di === dn) {\n throw errShortBuffer;\n }\n for (lLen -= 0xf; lLen >= 0xff; lLen -= 0xff) {\n dest[di] = 0xff;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n dest[di] = lLen;\n }\n if (++di === dn) {\n throw errShortBuffer;\n }\n\n // write literals\n const lastLen = src.length - anchor;\n const n = di + lastLen;\n if (n > dn) {\n throw errShortBuffer;\n } else if (n >= sn) {\n // incompressible\n return 0;\n }\n copy(dest, src, di, anchor, lastLen);\n di += lastLen;\n return di;\n}\n\nexport function compressBlockHC(\n src: Uint8Array,\n dest: Uint8Array,\n soffset: number\n): number {\n const sn = src.length - mfLimit;\n const dn = dest.length;\n if (sn <= 0 || dn === 0 || soffset >= sn) {\n return 0;\n }\n let si = 0;\n let di = 0;\n\n // Hash Chain strategy:\n // we need a hash table and a chain table\n // the chain table cannot contain more entries than the window size (64Kb entries)\n const hashTable = new Uint32Array(hashSize);\n const chainTable = new Uint32Array(winSize);\n\n // Initialise the hash table with the first 64Kb of the input buffer\n // (used when compressing dependent blocks)\n while (si < soffset) {\n const h = imul(getUint32(src, si), hasher) >>> hashShift;\n chainTable[si & winMask] = hashTable[h];\n hashTable[h] = ++si;\n }\n\n let anchor = si;\n while (si < sn - minMatch) {\n // hash the next 4 bytes (sequence)...\n const h = imul(getUint32(src, si), hasher) >>> hashShift;\n\n // follow the chain until out of window and give the longest match\n let mLen = 0;\n let offset = 0;\n for (\n let next = hashTable[h] - 1;\n next > 0 && next > si - winSize;\n next = chainTable[next & winMask] - 1\n ) {\n // the first (mLen==0) or next byte (mLen>=minMatch) at current match length must match to improve on the match length\n if (src[next + mLen] === src[si + mLen]) {\n for (let ml = 0; ; ++ml) {\n if (src[next + ml] !== src[si + ml] || si + ml > sn) {\n // found a longer match, keep its position and length\n if (mLen < ml && ml >= minMatch) {\n mLen = ml;\n offset = si - next;\n }\n break;\n }\n }\n }\n }\n chainTable[si & winMask] = hashTable[h];\n hashTable[h] = si + 1;\n\n // no match found\n if (mLen === 0) {\n ++si;\n continue;\n }\n\n let si2 = si + 1;\n const ml = si + mLen;\n\n // match found\n // update hash/chain tables with overlaping bytes:\n // si already hashed, add everything from si+1 up to the match length\n while (si2 < ml) {\n const h = imul(getUint32(src, si2), hasher) >>> hashShift;\n chainTable[si2 & winMask] = hashTable[h];\n hashTable[h] = ++si2;\n }\n\n const lLen = si - anchor;\n si += mLen;\n mLen -= minMatch; // match length does not include minMatch\n\n if (mLen < 0xf) {\n dest[di] = mLen;\n } else {\n dest[di] = 0xf;\n }\n\n // encode literals length\n if (lLen < 0xf) {\n dest[di] |= lLen << 4;\n } else {\n dest[di] |= 0xf0;\n if (++di === dn) {\n throw errShortBuffer;\n }\n let l = lLen - 0xf;\n for (; l >= 0xff; l -= 0xff) {\n dest[di] = 0xff;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n dest[di] = l & 0xff;\n }\n if (++di === dn) {\n throw errShortBuffer;\n }\n\n // literals\n if (di + lLen >= dn) {\n throw errShortBuffer;\n }\n copy(dest, src, di, anchor, lLen);\n di += lLen;\n anchor = si;\n\n // encode offset\n di += 2;\n if (di >= dn) {\n throw errShortBuffer;\n }\n dest[di - 2] = offset;\n dest[di - 1] = offset >> 8;\n\n // encode match length part 2\n if (mLen >= 0xf) {\n for (mLen -= 0xf; mLen >= 0xff; mLen -= 0xff) {\n dest[di] = 0xff;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n dest[di] = mLen;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n }\n\n if (anchor === 0) {\n // incompressible\n return 0;\n }\n\n // last literals\n let lLen = src.length - anchor;\n if (lLen < 0xf) {\n dest[di] = lLen << 4;\n } else {\n dest[di] = 0xf0;\n if (++di === dn) {\n throw errShortBuffer;\n }\n for (lLen -= 0xf; lLen >= 0xff; lLen -= 0xff) {\n dest[di] = 0xff;\n if (++di === dn) {\n throw errShortBuffer;\n }\n }\n dest[di] = lLen;\n }\n if (++di === dn) {\n throw errShortBuffer;\n }\n\n // write literals\n const lastLen = src.length - anchor;\n const n = di + lastLen;\n if (n > dn) {\n throw errShortBuffer;\n } else if (n >= sn) {\n // incompressible\n return 0;\n }\n copy(dest, src, di, anchor, lastLen);\n di += lastLen;\n return di;\n}\n"],"mappings":"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","names":["errInvalidSource","errShortBuffer","minMatch","winSizeLog","winSize","winMask","hashSizeLog","hashSize","hashShift","mfLimit","skipStrength","hasher","imulPolyfill","a","b","ah","al","bh","bl","imul","getUint32","copy","dest","src","di","si","len","i","calcUncompressedLen","sn","lLen","mLen","offset","uncompressBlock","dn","compressBlockBound","n","compressBlock","soffset","hashTable","h","anchor","fma","ref","l","lastLen","compressBlockHC","chainTable","next","ml","si2"]}
|
package/dist/sodium.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }require('./chunk-5WPCTUWH.cjs');var _libsodiumwrappers = require('libsodium-wrappers'); var _libsodiumwrappers2 = _interopRequireDefault(_libsodiumwrappers);async function r(){await _libsodiumwrappers2.default.ready}exports.setup = r; exports.sodium = _libsodiumwrappers2.default;
|
|
2
|
+
//# sourceMappingURL=sodium.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sodium.ts"],"names":["sodium","setup"],"mappings":"6BAAA,OAAOA,MAAY,qBAEnB,eAAsBC,GAAuB,CAC3C,MAAMD,EAAO,KACf","sourcesContent":["import sodium from \"libsodium-wrappers\";\n\nexport async function setup(): Promise<void> {\n await sodium.ready;\n}\n\nexport { sodium };\n"]}
|
package/dist/sodium.d.ts
CHANGED
package/dist/sodium.js
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
await sodium.ready;
|
|
4
|
-
}
|
|
5
|
-
export { sodium };
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzb2RpdW0iLCJzZXR1cCIsInJlYWR5Il0sInNvdXJjZXMiOlsiLi4vc3JjL3NvZGl1bS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc29kaXVtIGZyb20gXCJsaWJzb2RpdW0td3JhcHBlcnNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldHVwKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBzb2RpdW0ucmVhZHk7XG59XG5cbmV4cG9ydCB7IHNvZGl1bSB9O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sb0JBQW9CO0FBRXZDLE9BQU8sZUFBZUMsS0FBSyxHQUFrQjtFQUMzQyxNQUFNRCxNQUFNLENBQUNFLEtBQUs7QUFDcEI7QUFFQSxTQUFTRixNQUFNIn0=
|
|
1
|
+
import"./chunk-KMTF2BZE.js";import o from"libsodium-wrappers";async function r(){await o.ready}export{r as setup,o as sodium};
|
|
2
|
+
//# sourceMappingURL=sodium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sodium.ts"],"sourcesContent":["import sodium from \"libsodium-wrappers\";\n\nexport async function setup(): Promise<void> {\n await sodium.ready;\n}\n\nexport { sodium };\n"],"mappings":"4BAAA,OAAOA,MAAY,qBAEnB,eAAsBC,GAAuB,CAC3C,MAAMD,EAAO,KACf","names":["sodium","setup"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');function d(t,o=!1){return{init(s){const e=o?sessionStorage:localStorage;return e.getItem(t)||e.setItem(t,JSON.stringify(s)),{load(){const r=e.getItem(t);if(!r)throw new Error("store-buddy: data has not been set or cannot be recognised");return JSON.parse(r)},save:r=>e.setItem(t,JSON.stringify(r)),reset:()=>e.setItem(t,JSON.stringify(s)),clear:()=>e.removeItem(t)}}}}exports.storeBuddy = d;
|
|
2
|
+
//# sourceMappingURL=store-buddy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/store-buddy.ts"],"names":["storeBuddy","key","session","initialData","sessionOrLocal","raw","data"],"mappings":"8BAwIO,SAASA,EAAcC,EAAaC,EAAU,GAA0B,CAC7E,MAAO,CACL,KAAKC,EAA8C,CACjD,MAAMC,EAAiBF,EAAU,eAAiB,aAElD,OAAKE,EAAe,QAAQH,CAAG,GAC7BG,EAAe,QAAQH,EAAK,KAAK,UAAUE,CAAW,CAAC,EAGlD,CACL,MAAyB,CACvB,MAAME,EAAMD,EAAe,QAAQH,CAAG,EAEtC,GAAI,CAACI,EACH,MAAM,IAAI,MACR,4DACF,EAIF,OADa,KAAK,MAAMA,CAAG,CAE7B,EACA,KAAOC,GACLF,EAAe,QAAQH,EAAK,KAAK,UAAUK,CAAI,CAAC,EAClD,MAAO,IACLF,EAAe,QAAQH,EAAK,KAAK,UAAUE,CAAW,CAAC,EACzD,MAAO,IAAYC,EAAe,WAAWH,CAAG,CAClD,CACF,CACF,CACF","sourcesContent":["type IsEmptyObject<O> = O extends { [key: string]: never }\n ? Record<string, unknown>\n : O;\n\ninterface StoreBuddyInit<T> {\n /**\n * Initialise the storeBuddy instance with 'default' (first-load) data. This\n * behaves in the same way as the `save` method in the main `StoreBuddy`\n * interface but doesn't save any data if the storage entry already exists\n * (to prevent new data being overwritten by its older, default form).\n * @param data The data to save to localStorage or sessionStorage.\n * @returns The main `StoreBuddy` interface with methods like `load`, etc.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * // The \"foo\" entry is initialised with the default data \"bar\"\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n *\n * // The \"hello\" entry is initialised with a default object literal\n * const storage2 = storeBuddy(\"hello\").init({ prop1: \"world\", prop2: false });\n * ```\n */\n init(data: IsEmptyObject<T>): StoreBuddy<T>;\n}\n\nexport interface StoreBuddy<T> {\n /**\n * Retrieve the current data set using this instance.\n * @returns The data from localStorage or sessionStorage, throwing an error\n * if no data is found.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n * storage1.load(); // returns \"bar\"\n * ```\n */\n load(): IsEmptyObject<T>;\n\n /**\n * Set new data or overwrite old data in localStorage or sessionStorage. For\n * TS developers, saving data of a _different_ type to the one specified in\n * the type parameter is prevented.\n * @param data The data to save to localStorage or sessionStorage.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * // Saves the string \"bar\" to the localStorage entry with the key \"foo\"\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n *\n * // Overwrites that same string with different data. Note that, without\n * // specifying a specific type when initialising, there is no type safety\n * // provided for TypeScript developers\n * storage1.save(\"baz\");\n * storage1.save(123);\n *\n * // This is type-safe...\n * const storage2 = storeBuddy<number>(\"foo\").init(123);\n *\n * // ...so this works...\n * storage2.save(456);\n *\n * // ...and this does not work :)\n * storage2.save(\"I am not a number\");\n * ```\n */\n save(data: IsEmptyObject<T>): void;\n\n /**\n * Reset the data back to its original value set with the `init` method.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * const storage = storeBuddy(\"foo\").init(\"bar\");\n * storage.save(\"hello\");\n * storage.reset();\n * storage.load(); // returns \"bar\"\n * ```\n */\n reset(): void;\n\n /**\n * Remove all data set using this instance.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * const storage = storeBuddy(\"foo\").init(\"bar\");\n * storage.load(); // returns \"bar\"\n * storage.clear();\n * storage.load(); // throws an error (no data exists)\n * ```\n */\n clear(): void;\n}\n\n/**\n * Create persistent or temporary client-side storage with a portable,\n * type-safe wrapper around the [Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API).\n * @param key The key used to access the stored value.\n * @param [session] Save data in sessionStorage (`true`) or in localStorage\n * (`false`). Default is `false`.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * // \"foo\" is the key used to access the stored value, which is created in the\n * // method `init`\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n *\n * // Using sessionStorage instead of localStorage is possible by specifying\n * // `true` in the `session` parameter\n * const storage2 = storeBuddy(\"foo\", true).init(\"bar\");\n *\n * // Type safety can be enabled by providing an argument to the type parameter\n * type Data = {\n * hello: string;\n * world: number;\n * }\n *\n * const storage3 = storeBuddy<Data>(\"foo\").init({\n * hello: \"foo\",\n * world: 123\n * })\n * ```\n */\nexport function storeBuddy<T>(key: string, session = false): StoreBuddyInit<T> {\n return {\n init(initialData: IsEmptyObject<T>): StoreBuddy<T> {\n const sessionOrLocal = session ? sessionStorage : localStorage;\n\n if (!sessionOrLocal.getItem(key)) {\n sessionOrLocal.setItem(key, JSON.stringify(initialData));\n }\n\n return {\n load(): IsEmptyObject<T> {\n const raw = sessionOrLocal.getItem(key);\n\n if (!raw) {\n throw new Error(\n \"store-buddy: data has not been set or cannot be recognised\"\n );\n }\n\n const data = JSON.parse(raw);\n return data;\n },\n save: (data: IsEmptyObject<T>): void =>\n sessionOrLocal.setItem(key, JSON.stringify(data)),\n reset: (): void =>\n sessionOrLocal.setItem(key, JSON.stringify(initialData)),\n clear: (): void => sessionOrLocal.removeItem(key)\n };\n }\n };\n}\n"]}
|
|
@@ -4,11 +4,12 @@ declare type IsEmptyObject<O> = O extends {
|
|
|
4
4
|
interface StoreBuddyInit<T> {
|
|
5
5
|
init(data: IsEmptyObject<T>): StoreBuddy<T>;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
interface StoreBuddy<T> {
|
|
8
8
|
load(): IsEmptyObject<T>;
|
|
9
9
|
save(data: IsEmptyObject<T>): void;
|
|
10
10
|
reset(): void;
|
|
11
11
|
clear(): void;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
declare function storeBuddy<T>(key: string, session?: boolean): StoreBuddyInit<T>;
|
|
14
|
+
|
|
15
|
+
export { StoreBuddy, storeBuddy };
|
|
@@ -1,58 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* type-safe wrapper around the [Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API).
|
|
4
|
-
* @param key The key used to access the stored value.
|
|
5
|
-
* @param [session] Save data in sessionStorage (`true`) or in localStorage
|
|
6
|
-
* (`false`). Default is `false`.
|
|
7
|
-
* @example
|
|
8
|
-
*
|
|
9
|
-
* ```ts
|
|
10
|
-
* import storeBuddy from "store-buddy";
|
|
11
|
-
*
|
|
12
|
-
* // "foo" is the key used to access the stored value, which is created in the
|
|
13
|
-
* // method `init`
|
|
14
|
-
* const storage1 = storeBuddy("foo").init("bar");
|
|
15
|
-
*
|
|
16
|
-
* // Using sessionStorage instead of localStorage is possible by specifying
|
|
17
|
-
* // `true` in the `session` parameter
|
|
18
|
-
* const storage2 = storeBuddy("foo", true).init("bar");
|
|
19
|
-
*
|
|
20
|
-
* // Type safety can be enabled by providing an argument to the type parameter
|
|
21
|
-
* type Data = {
|
|
22
|
-
* hello: string;
|
|
23
|
-
* world: number;
|
|
24
|
-
* }
|
|
25
|
-
*
|
|
26
|
-
* const storage3 = storeBuddy<Data>("foo").init({
|
|
27
|
-
* hello: "foo",
|
|
28
|
-
* world: 123
|
|
29
|
-
* })
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export function storeBuddy(key, session) {
|
|
33
|
-
if (session === void 0) {
|
|
34
|
-
session = false;
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
init(initialData) {
|
|
38
|
-
const sessionOrLocal = session ? sessionStorage : localStorage;
|
|
39
|
-
if (!sessionOrLocal.getItem(key)) {
|
|
40
|
-
sessionOrLocal.setItem(key, JSON.stringify(initialData));
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
load() {
|
|
44
|
-
const raw = sessionOrLocal.getItem(key);
|
|
45
|
-
if (!raw) {
|
|
46
|
-
throw new Error("store-buddy: data has not been set or cannot be recognised");
|
|
47
|
-
}
|
|
48
|
-
const data = JSON.parse(raw);
|
|
49
|
-
return data;
|
|
50
|
-
},
|
|
51
|
-
save: data => sessionOrLocal.setItem(key, JSON.stringify(data)),
|
|
52
|
-
reset: () => sessionOrLocal.setItem(key, JSON.stringify(initialData)),
|
|
53
|
-
clear: () => sessionOrLocal.removeItem(key)
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdG9yZUJ1ZGR5Iiwia2V5Iiwic2Vzc2lvbiIsImluaXQiLCJpbml0aWFsRGF0YSIsInNlc3Npb25PckxvY2FsIiwic2Vzc2lvblN0b3JhZ2UiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwic2V0SXRlbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJsb2FkIiwicmF3IiwiRXJyb3IiLCJkYXRhIiwicGFyc2UiLCJzYXZlIiwicmVzZXQiLCJjbGVhciIsInJlbW92ZUl0ZW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc3RvcmUtYnVkZHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBJc0VtcHR5T2JqZWN0PE8+ID0gTyBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogbmV2ZXIgfVxuICA/IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIDogTztcblxuaW50ZXJmYWNlIFN0b3JlQnVkZHlJbml0PFQ+IHtcbiAgLyoqXG4gICAqIEluaXRpYWxpc2UgdGhlIHN0b3JlQnVkZHkgaW5zdGFuY2Ugd2l0aCAnZGVmYXVsdCcgKGZpcnN0LWxvYWQpIGRhdGEuIFRoaXNcbiAgICogYmVoYXZlcyBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlIGBzYXZlYCBtZXRob2QgaW4gdGhlIG1haW4gYFN0b3JlQnVkZHlgXG4gICAqIGludGVyZmFjZSBidXQgZG9lc24ndCBzYXZlIGFueSBkYXRhIGlmIHRoZSBzdG9yYWdlIGVudHJ5IGFscmVhZHkgZXhpc3RzXG4gICAqICh0byBwcmV2ZW50IG5ldyBkYXRhIGJlaW5nIG92ZXJ3cml0dGVuIGJ5IGl0cyBvbGRlciwgZGVmYXVsdCBmb3JtKS5cbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2F2ZSB0byBsb2NhbFN0b3JhZ2Ugb3Igc2Vzc2lvblN0b3JhZ2UuXG4gICAqIEByZXR1cm5zIFRoZSBtYWluIGBTdG9yZUJ1ZGR5YCBpbnRlcmZhY2Ugd2l0aCBtZXRob2RzIGxpa2UgYGxvYWRgLCBldGMuXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGltcG9ydCBzdG9yZUJ1ZGR5IGZyb20gXCJzdG9yZS1idWRkeVwiO1xuICAgKlxuICAgKiAvLyBUaGUgXCJmb29cIiBlbnRyeSBpcyBpbml0aWFsaXNlZCB3aXRoIHRoZSBkZWZhdWx0IGRhdGEgXCJiYXJcIlxuICAgKiBjb25zdCBzdG9yYWdlMSA9IHN0b3JlQnVkZHkoXCJmb29cIikuaW5pdChcImJhclwiKTtcbiAgICpcbiAgICogLy8gVGhlIFwiaGVsbG9cIiBlbnRyeSBpcyBpbml0aWFsaXNlZCB3aXRoIGEgZGVmYXVsdCBvYmplY3QgbGl0ZXJhbFxuICAgKiBjb25zdCBzdG9yYWdlMiA9IHN0b3JlQnVkZHkoXCJoZWxsb1wiKS5pbml0KHsgcHJvcDE6IFwid29ybGRcIiwgcHJvcDI6IGZhbHNlIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGluaXQoZGF0YTogSXNFbXB0eU9iamVjdDxUPik6IFN0b3JlQnVkZHk8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVCdWRkeTxUPiB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBkYXRhIHNldCB1c2luZyB0aGlzIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyBUaGUgZGF0YSBmcm9tIGxvY2FsU3RvcmFnZSBvciBzZXNzaW9uU3RvcmFnZSwgdGhyb3dpbmcgYW4gZXJyb3JcbiAgICogaWYgbm8gZGF0YSBpcyBmb3VuZC5cbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IHN0b3JlQnVkZHkgZnJvbSBcInN0b3JlLWJ1ZGR5XCI7XG4gICAqXG4gICAqIGNvbnN0IHN0b3JhZ2UxID0gc3RvcmVCdWRkeShcImZvb1wiKS5pbml0KFwiYmFyXCIpO1xuICAgKiBzdG9yYWdlMS5sb2FkKCk7IC8vIHJldHVybnMgXCJiYXJcIlxuICAgKiBgYGBcbiAgICovXG4gIGxvYWQoKTogSXNFbXB0eU9iamVjdDxUPjtcblxuICAvKipcbiAgICogU2V0IG5ldyBkYXRhIG9yIG92ZXJ3cml0ZSBvbGQgZGF0YSBpbiBsb2NhbFN0b3JhZ2Ugb3Igc2Vzc2lvblN0b3JhZ2UuIEZvclxuICAgKiBUUyBkZXZlbG9wZXJzLCBzYXZpbmcgZGF0YSBvZiBhIF9kaWZmZXJlbnRfIHR5cGUgdG8gdGhlIG9uZSBzcGVjaWZpZWQgaW5cbiAgICogdGhlIHR5cGUgcGFyYW1ldGVyIGlzIHByZXZlbnRlZC5cbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gc2F2ZSB0byBsb2NhbFN0b3JhZ2Ugb3Igc2Vzc2lvblN0b3JhZ2UuXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGltcG9ydCBzdG9yZUJ1ZGR5IGZyb20gXCJzdG9yZS1idWRkeVwiO1xuICAgKlxuICAgKiAvLyBTYXZlcyB0aGUgc3RyaW5nIFwiYmFyXCIgdG8gdGhlIGxvY2FsU3RvcmFnZSBlbnRyeSB3aXRoIHRoZSBrZXkgXCJmb29cIlxuICAgKiBjb25zdCBzdG9yYWdlMSA9IHN0b3JlQnVkZHkoXCJmb29cIikuaW5pdChcImJhclwiKTtcbiAgICpcbiAgICogLy8gT3ZlcndyaXRlcyB0aGF0IHNhbWUgc3RyaW5nIHdpdGggZGlmZmVyZW50IGRhdGEuIE5vdGUgdGhhdCwgd2l0aG91dFxuICAgKiAvLyBzcGVjaWZ5aW5nIGEgc3BlY2lmaWMgdHlwZSB3aGVuIGluaXRpYWxpc2luZywgdGhlcmUgaXMgbm8gdHlwZSBzYWZldHlcbiAgICogLy8gcHJvdmlkZWQgZm9yIFR5cGVTY3JpcHQgZGV2ZWxvcGVyc1xuICAgKiBzdG9yYWdlMS5zYXZlKFwiYmF6XCIpO1xuICAgKiBzdG9yYWdlMS5zYXZlKDEyMyk7XG4gICAqXG4gICAqIC8vIFRoaXMgaXMgdHlwZS1zYWZlLi4uXG4gICAqIGNvbnN0IHN0b3JhZ2UyID0gc3RvcmVCdWRkeTxudW1iZXI+KFwiZm9vXCIpLmluaXQoMTIzKTtcbiAgICpcbiAgICogLy8gLi4uc28gdGhpcyB3b3Jrcy4uLlxuICAgKiBzdG9yYWdlMi5zYXZlKDQ1Nik7XG4gICAqXG4gICAqIC8vIC4uLmFuZCB0aGlzIGRvZXMgbm90IHdvcmsgOilcbiAgICogc3RvcmFnZTIuc2F2ZShcIkkgYW0gbm90IGEgbnVtYmVyXCIpO1xuICAgKiBgYGBcbiAgICovXG4gIHNhdmUoZGF0YTogSXNFbXB0eU9iamVjdDxUPik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBkYXRhIGJhY2sgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIHNldCB3aXRoIHRoZSBgaW5pdGAgbWV0aG9kLlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbXBvcnQgc3RvcmVCdWRkeSBmcm9tIFwic3RvcmUtYnVkZHlcIjtcbiAgICpcbiAgICogY29uc3Qgc3RvcmFnZSA9IHN0b3JlQnVkZHkoXCJmb29cIikuaW5pdChcImJhclwiKTtcbiAgICogc3RvcmFnZS5zYXZlKFwiaGVsbG9cIik7XG4gICAqIHN0b3JhZ2UucmVzZXQoKTtcbiAgICogc3RvcmFnZS5sb2FkKCk7IC8vIHJldHVybnMgXCJiYXJcIlxuICAgKiBgYGBcbiAgICovXG4gIHJlc2V0KCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgZGF0YSBzZXQgdXNpbmcgdGhpcyBpbnN0YW5jZS5cbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogYGBgdHNcbiAgICogaW1wb3J0IHN0b3JlQnVkZHkgZnJvbSBcInN0b3JlLWJ1ZGR5XCI7XG4gICAqXG4gICAqIGNvbnN0IHN0b3JhZ2UgPSBzdG9yZUJ1ZGR5KFwiZm9vXCIpLmluaXQoXCJiYXJcIik7XG4gICAqIHN0b3JhZ2UubG9hZCgpOyAvLyByZXR1cm5zIFwiYmFyXCJcbiAgICogc3RvcmFnZS5jbGVhcigpO1xuICAgKiBzdG9yYWdlLmxvYWQoKTsgLy8gdGhyb3dzIGFuIGVycm9yIChubyBkYXRhIGV4aXN0cylcbiAgICogYGBgXG4gICAqL1xuICBjbGVhcigpOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZSBwZXJzaXN0ZW50IG9yIHRlbXBvcmFyeSBjbGllbnQtc2lkZSBzdG9yYWdlIHdpdGggYSBwb3J0YWJsZSxcbiAqIHR5cGUtc2FmZSB3cmFwcGVyIGFyb3VuZCB0aGUgW1dlYiBTdG9yYWdlIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dlYl9TdG9yYWdlX0FQSSkuXG4gKiBAcGFyYW0ga2V5IFRoZSBrZXkgdXNlZCB0byBhY2Nlc3MgdGhlIHN0b3JlZCB2YWx1ZS5cbiAqIEBwYXJhbSBbc2Vzc2lvbl0gU2F2ZSBkYXRhIGluIHNlc3Npb25TdG9yYWdlIChgdHJ1ZWApIG9yIGluIGxvY2FsU3RvcmFnZVxuICogKGBmYWxzZWApLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgc3RvcmVCdWRkeSBmcm9tIFwic3RvcmUtYnVkZHlcIjtcbiAqXG4gKiAvLyBcImZvb1wiIGlzIHRoZSBrZXkgdXNlZCB0byBhY2Nlc3MgdGhlIHN0b3JlZCB2YWx1ZSwgd2hpY2ggaXMgY3JlYXRlZCBpbiB0aGVcbiAqIC8vIG1ldGhvZCBgaW5pdGBcbiAqIGNvbnN0IHN0b3JhZ2UxID0gc3RvcmVCdWRkeShcImZvb1wiKS5pbml0KFwiYmFyXCIpO1xuICpcbiAqIC8vIFVzaW5nIHNlc3Npb25TdG9yYWdlIGluc3RlYWQgb2YgbG9jYWxTdG9yYWdlIGlzIHBvc3NpYmxlIGJ5IHNwZWNpZnlpbmdcbiAqIC8vIGB0cnVlYCBpbiB0aGUgYHNlc3Npb25gIHBhcmFtZXRlclxuICogY29uc3Qgc3RvcmFnZTIgPSBzdG9yZUJ1ZGR5KFwiZm9vXCIsIHRydWUpLmluaXQoXCJiYXJcIik7XG4gKlxuICogLy8gVHlwZSBzYWZldHkgY2FuIGJlIGVuYWJsZWQgYnkgcHJvdmlkaW5nIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIHBhcmFtZXRlclxuICogdHlwZSBEYXRhID0ge1xuICogICBoZWxsbzogc3RyaW5nO1xuICogICB3b3JsZDogbnVtYmVyO1xuICogfVxuICpcbiAqIGNvbnN0IHN0b3JhZ2UzID0gc3RvcmVCdWRkeTxEYXRhPihcImZvb1wiKS5pbml0KHtcbiAqICAgaGVsbG86IFwiZm9vXCIsXG4gKiAgIHdvcmxkOiAxMjNcbiAqIH0pXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlQnVkZHk8VD4oa2V5OiBzdHJpbmcsIHNlc3Npb24gPSBmYWxzZSk6IFN0b3JlQnVkZHlJbml0PFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBpbml0KGluaXRpYWxEYXRhOiBJc0VtcHR5T2JqZWN0PFQ+KTogU3RvcmVCdWRkeTxUPiB7XG4gICAgICBjb25zdCBzZXNzaW9uT3JMb2NhbCA9IHNlc3Npb24gPyBzZXNzaW9uU3RvcmFnZSA6IGxvY2FsU3RvcmFnZTtcblxuICAgICAgaWYgKCFzZXNzaW9uT3JMb2NhbC5nZXRJdGVtKGtleSkpIHtcbiAgICAgICAgc2Vzc2lvbk9yTG9jYWwuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KGluaXRpYWxEYXRhKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxvYWQoKTogSXNFbXB0eU9iamVjdDxUPiB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc2Vzc2lvbk9yTG9jYWwuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgICAgaWYgKCFyYXcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgXCJzdG9yZS1idWRkeTogZGF0YSBoYXMgbm90IGJlZW4gc2V0IG9yIGNhbm5vdCBiZSByZWNvZ25pc2VkXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmF3KTtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZTogKGRhdGE6IElzRW1wdHlPYmplY3Q8VD4pOiB2b2lkID0+XG4gICAgICAgICAgc2Vzc2lvbk9yTG9jYWwuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KGRhdGEpKSxcbiAgICAgICAgcmVzZXQ6ICgpOiB2b2lkID0+XG4gICAgICAgICAgc2Vzc2lvbk9yTG9jYWwuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KGluaXRpYWxEYXRhKSksXG4gICAgICAgIGNsZWFyOiAoKTogdm9pZCA9PiBzZXNzaW9uT3JMb2NhbC5yZW1vdmVJdGVtKGtleSlcbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUF5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNBLFVBQVUsQ0FBSUMsR0FBVyxFQUFFQyxPQUFPLEVBQTZCO0VBQUEsSUFBcENBLE9BQU87SUFBUEEsT0FBTyxHQUFHLEtBQUs7RUFBQTtFQUN4RCxPQUFPO0lBQ0xDLElBQUksQ0FBQ0MsV0FBNkIsRUFBaUI7TUFDakQsTUFBTUMsY0FBYyxHQUFHSCxPQUFPLEdBQUdJLGNBQWMsR0FBR0MsWUFBWTtNQUU5RCxJQUFJLENBQUNGLGNBQWMsQ0FBQ0csT0FBTyxDQUFDUCxHQUFHLENBQUMsRUFBRTtRQUNoQ0ksY0FBYyxDQUFDSSxPQUFPLENBQUNSLEdBQUcsRUFBRVMsSUFBSSxDQUFDQyxTQUFTLENBQUNQLFdBQVcsQ0FBQyxDQUFDO01BQzFEO01BRUEsT0FBTztRQUNMUSxJQUFJLEdBQXFCO1VBQ3ZCLE1BQU1DLEdBQUcsR0FBR1IsY0FBYyxDQUFDRyxPQUFPLENBQUNQLEdBQUcsQ0FBQztVQUV2QyxJQUFJLENBQUNZLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSUMsS0FBSyxDQUNiLDREQUE0RCxDQUM3RDtVQUNIO1VBRUEsTUFBTUMsSUFBSSxHQUFHTCxJQUFJLENBQUNNLEtBQUssQ0FBQ0gsR0FBRyxDQUFDO1VBQzVCLE9BQU9FLElBQUk7UUFDYixDQUFDO1FBQ0RFLElBQUksRUFBR0YsSUFBc0IsSUFDM0JWLGNBQWMsQ0FBQ0ksT0FBTyxDQUFDUixHQUFHLEVBQUVTLElBQUksQ0FBQ0MsU0FBUyxDQUFDSSxJQUFJLENBQUMsQ0FBQztRQUNuREcsS0FBSyxFQUFFLE1BQ0xiLGNBQWMsQ0FBQ0ksT0FBTyxDQUFDUixHQUFHLEVBQUVTLElBQUksQ0FBQ0MsU0FBUyxDQUFDUCxXQUFXLENBQUMsQ0FBQztRQUMxRGUsS0FBSyxFQUFFLE1BQVlkLGNBQWMsQ0FBQ2UsVUFBVSxDQUFDbkIsR0FBRztNQUNsRCxDQUFDO0lBQ0g7RUFDRixDQUFDO0FBQ0gifQ==
|
|
1
|
+
import"../chunk-KMTF2BZE.js";function d(t,o=!1){return{init(s){const e=o?sessionStorage:localStorage;return e.getItem(t)||e.setItem(t,JSON.stringify(s)),{load(){const r=e.getItem(t);if(!r)throw new Error("store-buddy: data has not been set or cannot be recognised");return JSON.parse(r)},save:r=>e.setItem(t,JSON.stringify(r)),reset:()=>e.setItem(t,JSON.stringify(s)),clear:()=>e.removeItem(t)}}}}export{d as storeBuddy};
|
|
2
|
+
//# sourceMappingURL=store-buddy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/store-buddy.ts"],"sourcesContent":["type IsEmptyObject<O> = O extends { [key: string]: never }\n ? Record<string, unknown>\n : O;\n\ninterface StoreBuddyInit<T> {\n /**\n * Initialise the storeBuddy instance with 'default' (first-load) data. This\n * behaves in the same way as the `save` method in the main `StoreBuddy`\n * interface but doesn't save any data if the storage entry already exists\n * (to prevent new data being overwritten by its older, default form).\n * @param data The data to save to localStorage or sessionStorage.\n * @returns The main `StoreBuddy` interface with methods like `load`, etc.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * // The \"foo\" entry is initialised with the default data \"bar\"\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n *\n * // The \"hello\" entry is initialised with a default object literal\n * const storage2 = storeBuddy(\"hello\").init({ prop1: \"world\", prop2: false });\n * ```\n */\n init(data: IsEmptyObject<T>): StoreBuddy<T>;\n}\n\nexport interface StoreBuddy<T> {\n /**\n * Retrieve the current data set using this instance.\n * @returns The data from localStorage or sessionStorage, throwing an error\n * if no data is found.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n * storage1.load(); // returns \"bar\"\n * ```\n */\n load(): IsEmptyObject<T>;\n\n /**\n * Set new data or overwrite old data in localStorage or sessionStorage. For\n * TS developers, saving data of a _different_ type to the one specified in\n * the type parameter is prevented.\n * @param data The data to save to localStorage or sessionStorage.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * // Saves the string \"bar\" to the localStorage entry with the key \"foo\"\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n *\n * // Overwrites that same string with different data. Note that, without\n * // specifying a specific type when initialising, there is no type safety\n * // provided for TypeScript developers\n * storage1.save(\"baz\");\n * storage1.save(123);\n *\n * // This is type-safe...\n * const storage2 = storeBuddy<number>(\"foo\").init(123);\n *\n * // ...so this works...\n * storage2.save(456);\n *\n * // ...and this does not work :)\n * storage2.save(\"I am not a number\");\n * ```\n */\n save(data: IsEmptyObject<T>): void;\n\n /**\n * Reset the data back to its original value set with the `init` method.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * const storage = storeBuddy(\"foo\").init(\"bar\");\n * storage.save(\"hello\");\n * storage.reset();\n * storage.load(); // returns \"bar\"\n * ```\n */\n reset(): void;\n\n /**\n * Remove all data set using this instance.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * const storage = storeBuddy(\"foo\").init(\"bar\");\n * storage.load(); // returns \"bar\"\n * storage.clear();\n * storage.load(); // throws an error (no data exists)\n * ```\n */\n clear(): void;\n}\n\n/**\n * Create persistent or temporary client-side storage with a portable,\n * type-safe wrapper around the [Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API).\n * @param key The key used to access the stored value.\n * @param [session] Save data in sessionStorage (`true`) or in localStorage\n * (`false`). Default is `false`.\n * @example\n *\n * ```ts\n * import storeBuddy from \"store-buddy\";\n *\n * // \"foo\" is the key used to access the stored value, which is created in the\n * // method `init`\n * const storage1 = storeBuddy(\"foo\").init(\"bar\");\n *\n * // Using sessionStorage instead of localStorage is possible by specifying\n * // `true` in the `session` parameter\n * const storage2 = storeBuddy(\"foo\", true).init(\"bar\");\n *\n * // Type safety can be enabled by providing an argument to the type parameter\n * type Data = {\n * hello: string;\n * world: number;\n * }\n *\n * const storage3 = storeBuddy<Data>(\"foo\").init({\n * hello: \"foo\",\n * world: 123\n * })\n * ```\n */\nexport function storeBuddy<T>(key: string, session = false): StoreBuddyInit<T> {\n return {\n init(initialData: IsEmptyObject<T>): StoreBuddy<T> {\n const sessionOrLocal = session ? sessionStorage : localStorage;\n\n if (!sessionOrLocal.getItem(key)) {\n sessionOrLocal.setItem(key, JSON.stringify(initialData));\n }\n\n return {\n load(): IsEmptyObject<T> {\n const raw = sessionOrLocal.getItem(key);\n\n if (!raw) {\n throw new Error(\n \"store-buddy: data has not been set or cannot be recognised\"\n );\n }\n\n const data = JSON.parse(raw);\n return data;\n },\n save: (data: IsEmptyObject<T>): void =>\n sessionOrLocal.setItem(key, JSON.stringify(data)),\n reset: (): void =>\n sessionOrLocal.setItem(key, JSON.stringify(initialData)),\n clear: (): void => sessionOrLocal.removeItem(key)\n };\n }\n };\n}\n"],"mappings":"6BAwIO,SAASA,EAAcC,EAAaC,EAAU,GAA0B,CAC7E,MAAO,CACL,KAAKC,EAA8C,CACjD,MAAMC,EAAiBF,EAAU,eAAiB,aAElD,OAAKE,EAAe,QAAQH,CAAG,GAC7BG,EAAe,QAAQH,EAAK,KAAK,UAAUE,CAAW,CAAC,EAGlD,CACL,MAAyB,CACvB,MAAME,EAAMD,EAAe,QAAQH,CAAG,EAEtC,GAAI,CAACI,EACH,MAAM,IAAI,MACR,4DACF,EAIF,OADa,KAAK,MAAMA,CAAG,CAE7B,EACA,KAAOC,GACLF,EAAe,QAAQH,EAAK,KAAK,UAAUK,CAAI,CAAC,EAClD,MAAO,IACLF,EAAe,QAAQH,EAAK,KAAK,UAAUE,CAAW,CAAC,EACzD,MAAO,IAAYC,EAAe,WAAWH,CAAG,CAClD,CACF,CACF,CACF","names":["storeBuddy","key","session","initialData","sessionOrLocal","raw","data"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');const n=s=>new Promise(o=>setTimeout(o,s)),e=s=>o=>Math.round(o*s),r= exports.ms ={seconds:e(1e3),minutes:e(6e4),hours:e(36e5),days:e(864e5),weeks:e(6048e5),months:e(26298e5),years:e(315576e5)};exports.ms = r; exports.sleep = n;
|
|
2
|
+
//# sourceMappingURL=time.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/time.ts"],"names":["sleep","ms","r","calc","m","n"],"mappings":"8BAAO,MAAMA,EAASC,GACpB,IAAI,QAAcC,GAAK,WAAWA,EAAGD,CAAE,CAAC,EAEpCE,EACHC,GACAC,GACC,KAAK,MAAMA,EAAID,CAAC,EAEPH,EAAK,CAChB,QAASE,EAAK,GAAG,EACjB,QAASA,EAAK,GAAG,EACjB,MAAOA,EAAK,IAAI,EAChB,KAAMA,EAAK,KAAK,EAChB,MAAOA,EAAK,MAAM,EAClB,OAAQA,EAAK,OAAO,EACpB,MAAOA,EAAK,QAAQ,CACtB","sourcesContent":["export const sleep = (ms: number): Promise<void> =>\n new Promise<void>(r => setTimeout(r, ms));\n\nconst calc =\n (m: number) =>\n (n: number): number =>\n Math.round(n * m);\n\nexport const ms = {\n seconds: calc(1e3),\n minutes: calc(6e4),\n hours: calc(36e5),\n days: calc(864e5),\n weeks: calc(6048e5),\n months: calc(26298e5),\n years: calc(315576e5)\n};\n"]}
|
package/dist/utils/time.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
declare const sleep: (ms: number) => Promise<void>;
|
|
2
|
+
declare const ms: {
|
|
3
3
|
seconds: (n: number) => number;
|
|
4
4
|
minutes: (n: number) => number;
|
|
5
5
|
hours: (n: number) => number;
|
|
@@ -8,3 +8,5 @@ export declare const ms: {
|
|
|
8
8
|
months: (n: number) => number;
|
|
9
9
|
years: (n: number) => number;
|
|
10
10
|
};
|
|
11
|
+
|
|
12
|
+
export { ms, sleep };
|
package/dist/utils/time.js
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export const ms = {
|
|
4
|
-
seconds: calc(1e3),
|
|
5
|
-
minutes: calc(6e4),
|
|
6
|
-
hours: calc(36e5),
|
|
7
|
-
days: calc(864e5),
|
|
8
|
-
weeks: calc(6048e5),
|
|
9
|
-
months: calc(26298e5),
|
|
10
|
-
years: calc(315576e5)
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzbGVlcCIsIm1zIiwiUHJvbWlzZSIsInIiLCJzZXRUaW1lb3V0IiwiY2FsYyIsIm0iLCJuIiwiTWF0aCIsInJvdW5kIiwic2Vjb25kcyIsIm1pbnV0ZXMiLCJob3VycyIsImRheXMiLCJ3ZWVrcyIsIm1vbnRocyIsInllYXJzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3RpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNsZWVwID0gKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+ID0+XG4gIG5ldyBQcm9taXNlPHZvaWQ+KHIgPT4gc2V0VGltZW91dChyLCBtcykpO1xuXG5jb25zdCBjYWxjID1cbiAgKG06IG51bWJlcikgPT5cbiAgKG46IG51bWJlcik6IG51bWJlciA9PlxuICAgIE1hdGgucm91bmQobiAqIG0pO1xuXG5leHBvcnQgY29uc3QgbXMgPSB7XG4gIHNlY29uZHM6IGNhbGMoMWUzKSxcbiAgbWludXRlczogY2FsYyg2ZTQpLFxuICBob3VyczogY2FsYygzNmU1KSxcbiAgZGF5czogY2FsYyg4NjRlNSksXG4gIHdlZWtzOiBjYWxjKDYwNDhlNSksXG4gIG1vbnRoczogY2FsYygyNjI5OGU1KSxcbiAgeWVhcnM6IGNhbGMoMzE1NTc2ZTUpXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLEtBQUssR0FBSUMsRUFBVSxJQUM5QixJQUFJQyxPQUFPLENBQU9DLENBQUMsSUFBSUMsVUFBVSxDQUFDRCxDQUFDLEVBQUVGLEVBQUUsQ0FBQyxDQUFDO0FBRTNDLE1BQU1JLElBQUksR0FDUEMsQ0FBUyxJQUNUQyxDQUFTLElBQ1JDLElBQUksQ0FBQ0MsS0FBSyxDQUFDRixDQUFDLEdBQUdELENBQUMsQ0FBQztBQUVyQixPQUFPLE1BQU1MLEVBQUUsR0FBRztFQUNoQlMsT0FBTyxFQUFFTCxJQUFJLENBQUMsR0FBRyxDQUFDO0VBQ2xCTSxPQUFPLEVBQUVOLElBQUksQ0FBQyxHQUFHLENBQUM7RUFDbEJPLEtBQUssRUFBRVAsSUFBSSxDQUFDLElBQUksQ0FBQztFQUNqQlEsSUFBSSxFQUFFUixJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2pCUyxLQUFLLEVBQUVULElBQUksQ0FBQyxNQUFNLENBQUM7RUFDbkJVLE1BQU0sRUFBRVYsSUFBSSxDQUFDLE9BQU8sQ0FBQztFQUNyQlcsS0FBSyxFQUFFWCxJQUFJLENBQUMsUUFBUTtBQUN0QixDQUFDIn0=
|
|
1
|
+
import"../chunk-KMTF2BZE.js";const n=s=>new Promise(o=>setTimeout(o,s)),e=s=>o=>Math.round(o*s),r={seconds:e(1e3),minutes:e(6e4),hours:e(36e5),days:e(864e5),weeks:e(6048e5),months:e(26298e5),years:e(315576e5)};export{r as ms,n as sleep};
|
|
2
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/time.ts"],"sourcesContent":["export const sleep = (ms: number): Promise<void> =>\n new Promise<void>(r => setTimeout(r, ms));\n\nconst calc =\n (m: number) =>\n (n: number): number =>\n Math.round(n * m);\n\nexport const ms = {\n seconds: calc(1e3),\n minutes: calc(6e4),\n hours: calc(36e5),\n days: calc(864e5),\n weeks: calc(6048e5),\n months: calc(26298e5),\n years: calc(315576e5)\n};\n"],"mappings":"6BAAO,MAAMA,EAASC,GACpB,IAAI,QAAcC,GAAK,WAAWA,EAAGD,CAAE,CAAC,EAEpCE,EACHC,GACAC,GACC,KAAK,MAAMA,EAAID,CAAC,EAEPH,EAAK,CAChB,QAASE,EAAK,GAAG,EACjB,QAASA,EAAK,GAAG,EACjB,MAAOA,EAAK,IAAI,EAChB,KAAMA,EAAK,KAAK,EAChB,MAAOA,EAAK,MAAM,EAClB,OAAQA,EAAK,OAAO,EACpB,MAAOA,EAAK,QAAQ,CACtB","names":["sleep","ms","r","calc","m","n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');function u(...n){let e=0;for(const o of n)e+=o.length;const t=new Uint8Array(e);let i=0;for(const o of n)t.set(o,i),i+=o.length;return t}function*m(n){let e=0;for(const t of n)yield[e,t],e++}function*f(n,e){for(let t=0;t<n.length;t+=e)yield n.slice(t,t+e)}const d=async(n,e)=>{const t=e.slice(0,n),i=e.slice(n),o=[],a=async(s,r,l)=>{o[r]=await s(),await l()},c=async()=>{const s=e.length-i.length,r=i.shift();r!==void 0&&await a(r,s,c)};return await Promise.all(t.map((s,r)=>a(s,r,c))),o};exports.chunks = f; exports.concatenate = u; exports.enumerate = m; exports.promiseAllLimit = d;
|
|
2
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/utils.ts"],"names":["concatenate","arrays","totalLength","arr","result","offset","enumerate","iterable","i","x","chunks","n","promiseAllLimit","list","head","tail","execute","promise","runNext"],"mappings":"8BAAO,SAASA,KAAeC,EAAkC,CAC/D,IAAIC,EAAc,EAClB,UAAWC,KAAOF,EAChBC,GAAeC,EAAI,OAErB,MAAMC,EAAS,IAAI,WAAWF,CAAW,EACzC,IAAIG,EAAS,EACb,UAAWF,KAAOF,EAChBG,EAAO,IAAID,EAAKE,CAAM,EACtBA,GAAUF,EAAI,OAEhB,OAAOC,CACT,CAEO,SAAUE,EACfC,EAC+B,CAC/B,IAAIC,EAAI,EAER,UAAWC,KAAKF,EACd,KAAM,CAACC,EAAGC,CAAC,EACXD,GAEJ,CAEO,SAAUE,EACfP,EACAQ,EACsC,CACtC,QAASH,EAAI,EAAGA,EAAIL,EAAI,OAAQK,GAAKG,EACnC,MAAMR,EAAI,MAAMK,EAAGA,EAAIG,CAAC,CAE5B,CAEO,MAAMC,EAAkB,MAC7B,EACAC,IACiB,CACjB,MAAMC,EAAOD,EAAK,MAAM,EAAG,CAAC,EACtBE,EAAOF,EAAK,MAAM,CAAC,EACnBT,EAAc,CAAC,EACfY,EAAU,MACdC,EACAT,EACAU,IACkB,CAClBd,EAAOI,GAAK,MAAMS,EAAQ,EAC1B,MAAMC,EAAQ,CAChB,EACMA,EAAU,SAA2B,CACzC,MAAMV,EAAIK,EAAK,OAASE,EAAK,OACvBE,EAAUF,EAAK,MAAM,EACvBE,IAAY,QACd,MAAMD,EAAQC,EAAST,EAAGU,CAAO,CAErC,EACA,aAAM,QAAQ,IAAIJ,EAAK,IAAI,CAACG,EAAST,IAAMQ,EAAQC,EAAST,EAAGU,CAAO,CAAC,CAAC,EACjEd,CACT","sourcesContent":["export function concatenate(...arrays: Uint8Array[]): Uint8Array {\n let totalLength = 0;\n for (const arr of arrays) {\n totalLength += arr.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function* enumerate<T>(\n iterable: Iterable<T>\n): IterableIterator<[number, T]> {\n let i = 0;\n\n for (const x of iterable) {\n yield [i, x];\n i++;\n }\n}\n\nexport function* chunks(\n arr: Uint8Array,\n n: number\n): Generator<Uint8Array, void, unknown> {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nexport const promiseAllLimit = async <T>(\n n: number,\n list: (() => Promise<T>)[]\n): Promise<T[]> => {\n const head = list.slice(0, n);\n const tail = list.slice(n);\n const result: T[] = [];\n const execute = async (\n promise: () => Promise<T>,\n i: number,\n runNext: () => Promise<void>\n ): Promise<void> => {\n result[i] = await promise();\n await runNext();\n };\n const runNext = async (): Promise<void> => {\n const i = list.length - tail.length;\n const promise = tail.shift();\n if (promise !== undefined) {\n await execute(promise, i, runNext);\n }\n };\n await Promise.all(head.map((promise, i) => execute(promise, i, runNext)));\n return result;\n};\n"]}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
declare function concatenate(...arrays: Uint8Array[]): Uint8Array;
|
|
2
|
+
declare function enumerate<T>(iterable: Iterable<T>): IterableIterator<[number, T]>;
|
|
3
|
+
declare function chunks(arr: Uint8Array, n: number): Generator<Uint8Array, void, unknown>;
|
|
4
|
+
declare const promiseAllLimit: <T>(n: number, list: (() => Promise<T>)[]) => Promise<T[]>;
|
|
5
|
+
|
|
6
|
+
export { chunks, concatenate, enumerate, promiseAllLimit };
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,47 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
4
|
-
arrays[_key] = arguments[_key];
|
|
5
|
-
}
|
|
6
|
-
for (const arr of arrays) {
|
|
7
|
-
totalLength += arr.length;
|
|
8
|
-
}
|
|
9
|
-
const result = new Uint8Array(totalLength);
|
|
10
|
-
let offset = 0;
|
|
11
|
-
for (const arr of arrays) {
|
|
12
|
-
result.set(arr, offset);
|
|
13
|
-
offset += arr.length;
|
|
14
|
-
}
|
|
15
|
-
return result;
|
|
16
|
-
}
|
|
17
|
-
export function* enumerate(iterable) {
|
|
18
|
-
let i = 0;
|
|
19
|
-
for (const x of iterable) {
|
|
20
|
-
yield [i, x];
|
|
21
|
-
i++;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export function* chunks(arr, n) {
|
|
25
|
-
for (let i = 0; i < arr.length; i += n) {
|
|
26
|
-
yield arr.slice(i, i + n);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
export const promiseAllLimit = async (n, list) => {
|
|
30
|
-
const head = list.slice(0, n);
|
|
31
|
-
const tail = list.slice(n);
|
|
32
|
-
const result = [];
|
|
33
|
-
const execute = async (promise, i, runNext) => {
|
|
34
|
-
result[i] = await promise();
|
|
35
|
-
await runNext();
|
|
36
|
-
};
|
|
37
|
-
const runNext = async () => {
|
|
38
|
-
const i = list.length - tail.length;
|
|
39
|
-
const promise = tail.shift();
|
|
40
|
-
if (promise !== undefined) {
|
|
41
|
-
await execute(promise, i, runNext);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
await Promise.all(head.map((promise, i) => execute(promise, i, runNext)));
|
|
45
|
-
return result;
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25jYXRlbmF0ZSIsInRvdGFsTGVuZ3RoIiwiYXJyYXlzIiwiYXJyIiwibGVuZ3RoIiwicmVzdWx0IiwiVWludDhBcnJheSIsIm9mZnNldCIsInNldCIsImVudW1lcmF0ZSIsIml0ZXJhYmxlIiwiaSIsIngiLCJjaHVua3MiLCJuIiwic2xpY2UiLCJwcm9taXNlQWxsTGltaXQiLCJsaXN0IiwiaGVhZCIsInRhaWwiLCJleGVjdXRlIiwicHJvbWlzZSIsInJ1bk5leHQiLCJzaGlmdCIsInVuZGVmaW5lZCIsIlByb21pc2UiLCJhbGwiLCJtYXAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbmNhdGVuYXRlKC4uLmFycmF5czogVWludDhBcnJheVtdKTogVWludDhBcnJheSB7XG4gIGxldCB0b3RhbExlbmd0aCA9IDA7XG4gIGZvciAoY29uc3QgYXJyIG9mIGFycmF5cykge1xuICAgIHRvdGFsTGVuZ3RoICs9IGFyci5sZW5ndGg7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkodG90YWxMZW5ndGgpO1xuICBsZXQgb2Zmc2V0ID0gMDtcbiAgZm9yIChjb25zdCBhcnIgb2YgYXJyYXlzKSB7XG4gICAgcmVzdWx0LnNldChhcnIsIG9mZnNldCk7XG4gICAgb2Zmc2V0ICs9IGFyci5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBlbnVtZXJhdGU8VD4oXG4gIGl0ZXJhYmxlOiBJdGVyYWJsZTxUPlxuKTogSXRlcmFibGVJdGVyYXRvcjxbbnVtYmVyLCBUXT4ge1xuICBsZXQgaSA9IDA7XG5cbiAgZm9yIChjb25zdCB4IG9mIGl0ZXJhYmxlKSB7XG4gICAgeWllbGQgW2ksIHhdO1xuICAgIGkrKztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGNodW5rcyhcbiAgYXJyOiBVaW50OEFycmF5LFxuICBuOiBudW1iZXJcbik6IEdlbmVyYXRvcjxVaW50OEFycmF5LCB2b2lkLCB1bmtub3duPiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBuKSB7XG4gICAgeWllbGQgYXJyLnNsaWNlKGksIGkgKyBuKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcHJvbWlzZUFsbExpbWl0ID0gYXN5bmMgPFQ+KFxuICBuOiBudW1iZXIsXG4gIGxpc3Q6ICgoKSA9PiBQcm9taXNlPFQ+KVtdXG4pOiBQcm9taXNlPFRbXT4gPT4ge1xuICBjb25zdCBoZWFkID0gbGlzdC5zbGljZSgwLCBuKTtcbiAgY29uc3QgdGFpbCA9IGxpc3Quc2xpY2Uobik7XG4gIGNvbnN0IHJlc3VsdDogVFtdID0gW107XG4gIGNvbnN0IGV4ZWN1dGUgPSBhc3luYyAoXG4gICAgcHJvbWlzZTogKCkgPT4gUHJvbWlzZTxUPixcbiAgICBpOiBudW1iZXIsXG4gICAgcnVuTmV4dDogKCkgPT4gUHJvbWlzZTx2b2lkPlxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICByZXN1bHRbaV0gPSBhd2FpdCBwcm9taXNlKCk7XG4gICAgYXdhaXQgcnVuTmV4dCgpO1xuICB9O1xuICBjb25zdCBydW5OZXh0ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGkgPSBsaXN0Lmxlbmd0aCAtIHRhaWwubGVuZ3RoO1xuICAgIGNvbnN0IHByb21pc2UgPSB0YWlsLnNoaWZ0KCk7XG4gICAgaWYgKHByb21pc2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgZXhlY3V0ZShwcm9taXNlLCBpLCBydW5OZXh0KTtcbiAgICB9XG4gIH07XG4gIGF3YWl0IFByb21pc2UuYWxsKGhlYWQubWFwKChwcm9taXNlLCBpKSA9PiBleGVjdXRlKHByb21pc2UsIGksIHJ1bk5leHQpKSk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVNBLFdBQVcsR0FBc0M7RUFDL0QsSUFBSUMsV0FBVyxHQUFHLENBQUM7RUFBQyxrQ0FEU0MsTUFBTTtJQUFOQSxNQUFNO0VBQUE7RUFFbkMsS0FBSyxNQUFNQyxHQUFHLElBQUlELE1BQU0sRUFBRTtJQUN4QkQsV0FBVyxJQUFJRSxHQUFHLENBQUNDLE1BQU07RUFDM0I7RUFDQSxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsVUFBVSxDQUFDTCxXQUFXLENBQUM7RUFDMUMsSUFBSU0sTUFBTSxHQUFHLENBQUM7RUFDZCxLQUFLLE1BQU1KLEdBQUcsSUFBSUQsTUFBTSxFQUFFO0lBQ3hCRyxNQUFNLENBQUNHLEdBQUcsQ0FBQ0wsR0FBRyxFQUFFSSxNQUFNLENBQUM7SUFDdkJBLE1BQU0sSUFBSUosR0FBRyxDQUFDQyxNQUFNO0VBQ3RCO0VBQ0EsT0FBT0MsTUFBTTtBQUNmO0FBRUEsT0FBTyxVQUFVSSxTQUFTLENBQ3hCQyxRQUFxQixFQUNVO0VBQy9CLElBQUlDLENBQUMsR0FBRyxDQUFDO0VBRVQsS0FBSyxNQUFNQyxDQUFDLElBQUlGLFFBQVEsRUFBRTtJQUN4QixNQUFNLENBQUNDLENBQUMsRUFBRUMsQ0FBQyxDQUFDO0lBQ1pELENBQUMsRUFBRTtFQUNMO0FBQ0Y7QUFFQSxPQUFPLFVBQVVFLE1BQU0sQ0FDckJWLEdBQWUsRUFDZlcsQ0FBUyxFQUM2QjtFQUN0QyxLQUFLLElBQUlILENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR1IsR0FBRyxDQUFDQyxNQUFNLEVBQUVPLENBQUMsSUFBSUcsQ0FBQyxFQUFFO0lBQ3RDLE1BQU1YLEdBQUcsQ0FBQ1ksS0FBSyxDQUFDSixDQUFDLEVBQUVBLENBQUMsR0FBR0csQ0FBQyxDQUFDO0VBQzNCO0FBQ0Y7QUFFQSxPQUFPLE1BQU1FLGVBQWUsR0FBRyxPQUM3QkYsQ0FBUyxFQUNURyxJQUEwQixLQUNUO0VBQ2pCLE1BQU1DLElBQUksR0FBR0QsSUFBSSxDQUFDRixLQUFLLENBQUMsQ0FBQyxFQUFFRCxDQUFDLENBQUM7RUFDN0IsTUFBTUssSUFBSSxHQUFHRixJQUFJLENBQUNGLEtBQUssQ0FBQ0QsQ0FBQyxDQUFDO0VBQzFCLE1BQU1ULE1BQVcsR0FBRyxFQUFFO0VBQ3RCLE1BQU1lLE9BQU8sR0FBRyxPQUNkQyxPQUF5QixFQUN6QlYsQ0FBUyxFQUNUVyxPQUE0QixLQUNWO0lBQ2xCakIsTUFBTSxDQUFDTSxDQUFDLENBQUMsR0FBRyxNQUFNVSxPQUFPLEVBQUU7SUFDM0IsTUFBTUMsT0FBTyxFQUFFO0VBQ2pCLENBQUM7RUFDRCxNQUFNQSxPQUFPLEdBQUcsWUFBMkI7SUFDekMsTUFBTVgsQ0FBQyxHQUFHTSxJQUFJLENBQUNiLE1BQU0sR0FBR2UsSUFBSSxDQUFDZixNQUFNO0lBQ25DLE1BQU1pQixPQUFPLEdBQUdGLElBQUksQ0FBQ0ksS0FBSyxFQUFFO0lBQzVCLElBQUlGLE9BQU8sS0FBS0csU0FBUyxFQUFFO01BQ3pCLE1BQU1KLE9BQU8sQ0FBQ0MsT0FBTyxFQUFFVixDQUFDLEVBQUVXLE9BQU8sQ0FBQztJQUNwQztFQUNGLENBQUM7RUFDRCxNQUFNRyxPQUFPLENBQUNDLEdBQUcsQ0FBQ1IsSUFBSSxDQUFDUyxHQUFHLENBQUMsQ0FBQ04sT0FBTyxFQUFFVixDQUFDLEtBQUtTLE9BQU8sQ0FBQ0MsT0FBTyxFQUFFVixDQUFDLEVBQUVXLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDekUsT0FBT2pCLE1BQU07QUFDZixDQUFDIn0=
|
|
1
|
+
import"../chunk-KMTF2BZE.js";function u(...n){let e=0;for(const o of n)e+=o.length;const t=new Uint8Array(e);let i=0;for(const o of n)t.set(o,i),i+=o.length;return t}function*m(n){let e=0;for(const t of n)yield[e,t],e++}function*f(n,e){for(let t=0;t<n.length;t+=e)yield n.slice(t,t+e)}const d=async(n,e)=>{const t=e.slice(0,n),i=e.slice(n),o=[],a=async(s,r,l)=>{o[r]=await s(),await l()},c=async()=>{const s=e.length-i.length,r=i.shift();r!==void 0&&await a(r,s,c)};return await Promise.all(t.map((s,r)=>a(s,r,c))),o};export{f as chunks,u as concatenate,m as enumerate,d as promiseAllLimit};
|
|
2
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/utils.ts"],"sourcesContent":["export function concatenate(...arrays: Uint8Array[]): Uint8Array {\n let totalLength = 0;\n for (const arr of arrays) {\n totalLength += arr.length;\n }\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n\nexport function* enumerate<T>(\n iterable: Iterable<T>\n): IterableIterator<[number, T]> {\n let i = 0;\n\n for (const x of iterable) {\n yield [i, x];\n i++;\n }\n}\n\nexport function* chunks(\n arr: Uint8Array,\n n: number\n): Generator<Uint8Array, void, unknown> {\n for (let i = 0; i < arr.length; i += n) {\n yield arr.slice(i, i + n);\n }\n}\n\nexport const promiseAllLimit = async <T>(\n n: number,\n list: (() => Promise<T>)[]\n): Promise<T[]> => {\n const head = list.slice(0, n);\n const tail = list.slice(n);\n const result: T[] = [];\n const execute = async (\n promise: () => Promise<T>,\n i: number,\n runNext: () => Promise<void>\n ): Promise<void> => {\n result[i] = await promise();\n await runNext();\n };\n const runNext = async (): Promise<void> => {\n const i = list.length - tail.length;\n const promise = tail.shift();\n if (promise !== undefined) {\n await execute(promise, i, runNext);\n }\n };\n await Promise.all(head.map((promise, i) => execute(promise, i, runNext)));\n return result;\n};\n"],"mappings":"6BAAO,SAASA,KAAeC,EAAkC,CAC/D,IAAIC,EAAc,EAClB,UAAWC,KAAOF,EAChBC,GAAeC,EAAI,OAErB,MAAMC,EAAS,IAAI,WAAWF,CAAW,EACzC,IAAIG,EAAS,EACb,UAAWF,KAAOF,EAChBG,EAAO,IAAID,EAAKE,CAAM,EACtBA,GAAUF,EAAI,OAEhB,OAAOC,CACT,CAEO,SAAUE,EACfC,EAC+B,CAC/B,IAAIC,EAAI,EAER,UAAWC,KAAKF,EACd,KAAM,CAACC,EAAGC,CAAC,EACXD,GAEJ,CAEO,SAAUE,EACfP,EACAQ,EACsC,CACtC,QAASH,EAAI,EAAGA,EAAIL,EAAI,OAAQK,GAAKG,EACnC,MAAMR,EAAI,MAAMK,EAAGA,EAAIG,CAAC,CAE5B,CAEO,MAAMC,EAAkB,MAC7B,EACAC,IACiB,CACjB,MAAMC,EAAOD,EAAK,MAAM,EAAG,CAAC,EACtBE,EAAOF,EAAK,MAAM,CAAC,EACnBT,EAAc,CAAC,EACfY,EAAU,MACdC,EACAT,EACAU,IACkB,CAClBd,EAAOI,GAAK,MAAMS,EAAQ,EAC1B,MAAMC,EAAQ,CAChB,EACMA,EAAU,SAA2B,CACzC,MAAMV,EAAIK,EAAK,OAASE,EAAK,OACvBE,EAAUF,EAAK,MAAM,EACvBE,IAAY,QACd,MAAMD,EAAQC,EAAST,EAAGU,CAAO,CAErC,EACA,aAAM,QAAQ,IAAIJ,EAAK,IAAI,CAACG,EAAST,IAAMQ,EAAQC,EAAST,EAAGU,CAAO,CAAC,CAAC,EACjEd,CACT","names":["concatenate","arrays","totalLength","arr","result","offset","enumerate","iterable","i","x","chunks","n","promiseAllLimit","list","head","tail","execute","promise","runNext"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _workerCodesjs = require('./workerCodes.js');async function a(n){return new Promise((s,r)=>{const e=new Worker(URL.createObjectURL(new Blob([_workerCodesjs.workerMd5Script],{type:"text/javascript"})));e.addEventListener("error",r),e.addEventListener("messageerror",r),e.addEventListener("message",({data:t})=>{if(t.event==="md5-result")return e.terminate(),s(t.data)}),e.postMessage({event:"md5",data:n})})}exports.md5 = a;
|
|
2
|
+
//# sourceMappingURL=md5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/worker/md5.ts"],"names":["workerMd5Script","md5","data","resolve","reject","worker"],"mappings":"8BAAA,OAAS,mBAAAA,MAAuB,mBAEhC,eAAsBC,EAAIC,EAAmC,CAC3D,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,MAAMC,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACL,CAAe,EAAG,CAAE,KAAM,iBAAkB,CAAC,CACzD,CACF,EACAK,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAH,CAAK,IAAM,CAC/C,GAAIA,EAAK,QAAU,aACjB,OAAAG,EAAO,UAAU,EACVF,EAAQD,EAAK,IAAI,CAE5B,CAAC,EAEDG,EAAO,YAAY,CACjB,MAAO,MACP,KAAAH,CACF,CAAC,CACH,CAAC,CACH","sourcesContent":["import { workerMd5Script } from \"./workerCodes.js\";\n\nexport async function md5(data: Uint8Array): Promise<string> {\n return new Promise((resolve, reject) => {\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerMd5Script], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n if (data.event === \"md5-result\") {\n worker.terminate();\n return resolve(data.data);\n }\n });\n\n worker.postMessage({\n event: \"md5\",\n data\n });\n });\n}\n"]}
|
package/dist/worker/md5.d.ts
CHANGED
package/dist/worker/md5.js
CHANGED
|
@@ -1,24 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
return new Promise((resolve, reject) => {
|
|
4
|
-
const worker = new Worker(URL.createObjectURL(new Blob([workerMd5Script], {
|
|
5
|
-
type: "text/javascript"
|
|
6
|
-
})));
|
|
7
|
-
worker.addEventListener("error", reject);
|
|
8
|
-
worker.addEventListener("messageerror", reject);
|
|
9
|
-
worker.addEventListener("message", _ref => {
|
|
10
|
-
let {
|
|
11
|
-
data
|
|
12
|
-
} = _ref;
|
|
13
|
-
if (data.event === "md5-result") {
|
|
14
|
-
worker.terminate();
|
|
15
|
-
return resolve(data.data);
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
worker.postMessage({
|
|
19
|
-
event: "md5",
|
|
20
|
-
data
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3b3JrZXJNZDVTY3JpcHQiLCJtZDUiLCJkYXRhIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ3b3JrZXIiLCJXb3JrZXIiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJCbG9iIiwidHlwZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJldmVudCIsInRlcm1pbmF0ZSIsInBvc3RNZXNzYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dvcmtlci9tZDUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd29ya2VyTWQ1U2NyaXB0IH0gZnJvbSBcIi4vd29ya2VyQ29kZXMuanNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1kNShkYXRhOiBVaW50OEFycmF5KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKFxuICAgICAgVVJMLmNyZWF0ZU9iamVjdFVSTChcbiAgICAgICAgbmV3IEJsb2IoW3dvcmtlck1kNVNjcmlwdF0sIHsgdHlwZTogXCJ0ZXh0L2phdmFzY3JpcHRcIiB9KVxuICAgICAgKVxuICAgICk7XG4gICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLCByZWplY3QpO1xuICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZWVycm9yXCIsIHJlamVjdCk7XG5cbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKHsgZGF0YSB9KSA9PiB7XG4gICAgICBpZiAoZGF0YS5ldmVudCA9PT0gXCJtZDUtcmVzdWx0XCIpIHtcbiAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZShkYXRhLmRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgd29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgIGV2ZW50OiBcIm1kNVwiLFxuICAgICAgZGF0YVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZUFBZSxRQUFRLGtCQUFrQjtBQUVsRCxPQUFPLGVBQWVDLEdBQUcsQ0FBQ0MsSUFBZ0IsRUFBbUI7RUFDM0QsT0FBTyxJQUFJQyxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7SUFDdEMsTUFBTUMsTUFBTSxHQUFHLElBQUlDLE1BQU0sQ0FDdkJDLEdBQUcsQ0FBQ0MsZUFBZSxDQUNqQixJQUFJQyxJQUFJLENBQUMsQ0FBQ1YsZUFBZSxDQUFDLEVBQUU7TUFBRVcsSUFBSSxFQUFFO0lBQWtCLENBQUMsQ0FBQyxDQUN6RCxDQUNGO0lBQ0RMLE1BQU0sQ0FBQ00sZ0JBQWdCLENBQUMsT0FBTyxFQUFFUCxNQUFNLENBQUM7SUFDeENDLE1BQU0sQ0FBQ00sZ0JBQWdCLENBQUMsY0FBYyxFQUFFUCxNQUFNLENBQUM7SUFFL0NDLE1BQU0sQ0FBQ00sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQWM7TUFBQSxJQUFiO1FBQUVWO01BQUssQ0FBQztNQUMxQyxJQUFJQSxJQUFJLENBQUNXLEtBQUssS0FBSyxZQUFZLEVBQUU7UUFDL0JQLE1BQU0sQ0FBQ1EsU0FBUyxFQUFFO1FBQ2xCLE9BQU9WLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDQSxJQUFJLENBQUM7TUFDM0I7SUFDRixDQUFDLENBQUM7SUFFRkksTUFBTSxDQUFDUyxXQUFXLENBQUM7TUFDakJGLEtBQUssRUFBRSxLQUFLO01BQ1pYO0lBQ0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0oifQ==
|
|
1
|
+
import"../chunk-KMTF2BZE.js";import{workerMd5Script as o}from"./workerCodes.js";async function a(n){return new Promise((s,r)=>{const e=new Worker(URL.createObjectURL(new Blob([o],{type:"text/javascript"})));e.addEventListener("error",r),e.addEventListener("messageerror",r),e.addEventListener("message",({data:t})=>{if(t.event==="md5-result")return e.terminate(),s(t.data)}),e.postMessage({event:"md5",data:n})})}export{a as md5};
|
|
2
|
+
//# sourceMappingURL=md5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/worker/md5.ts"],"sourcesContent":["import { workerMd5Script } from \"./workerCodes.js\";\n\nexport async function md5(data: Uint8Array): Promise<string> {\n return new Promise((resolve, reject) => {\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerMd5Script], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n if (data.event === \"md5-result\") {\n worker.terminate();\n return resolve(data.data);\n }\n });\n\n worker.postMessage({\n event: \"md5\",\n data\n });\n });\n}\n"],"mappings":"6BAAA,OAAS,mBAAAA,MAAuB,mBAEhC,eAAsBC,EAAIC,EAAmC,CAC3D,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,MAAMC,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACL,CAAe,EAAG,CAAE,KAAM,iBAAkB,CAAC,CACzD,CACF,EACAK,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAH,CAAK,IAAM,CAC/C,GAAIA,EAAK,QAAU,aACjB,OAAAG,EAAO,UAAU,EACVF,EAAQD,EAAK,IAAI,CAE5B,CAAC,EAEDG,EAAO,YAAY,CACjB,MAAO,MACP,KAAAH,CACF,CAAC,CACH,CAAC,CACH","names":["workerMd5Script","md5","data","resolve","reject","worker"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-5WPCTUWH.cjs');var _workerCodesjs = require('./workerCodes.js');async function m(i,c,e,n){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([_workerCodesjs.workerSodiumScript],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"encrypt",data:c,key:i};t.postMessage(r,[r.data.buffer]);break}case"encrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"encrypt-result":return t.terminate(),d(o.data)}})})}async function s(i,c,e,n){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([_workerCodesjs.workerSodiumScript],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"decrypt",key:i,data:c};t.postMessage(r,[r.data.buffer]);break}case"decrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"decrypt-result":return t.terminate(),d(o.data)}})})}exports.decrypt = s; exports.encrypt = m;
|
|
2
|
+
//# sourceMappingURL=sodium.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/worker/sodium.ts"],"names":["workerSodiumScript","encrypt","key","dataToEncrypt","progress","signal","resolve","reject","worker","data","postData","abortError","decrypt","dataToDecrypt"],"mappings":"8BACA,OAAS,sBAAAA,MAA0B,mBAenC,eAAsBC,EACpBC,EACAC,EACAC,EACAC,EACwB,CACxB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCH,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOD,EAAc,UACvB,GACA,MAAMK,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACR,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAQ,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAC9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,KAAMP,EACN,IAAAD,CACF,EACAM,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIL,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMM,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAP,GAAA,MAAAA,EAAWK,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH,CAEA,eAAsBG,EACpBV,EACAW,EACAT,EACAC,EACqB,CACrB,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCH,GAAA,MAAAA,EAAW,CACT,QAAS,EACT,QAAS,EACT,MAAOS,EAAc,UACvB,GACA,MAAML,EAAS,IAAI,OACjB,IAAI,gBACF,IAAI,KAAK,CAACR,CAAkB,EAAG,CAAE,KAAM,iBAAkB,CAAC,CAC5D,CACF,EACAQ,EAAO,iBAAiB,QAASD,CAAM,EACvCC,EAAO,iBAAiB,eAAgBD,CAAM,EAE9CC,EAAO,iBAAiB,UAAW,CAAC,CAAE,KAAAC,CAAK,IAAM,CAC/C,OAAQA,EAAK,WACN,QAAS,CACZ,MAAMC,EAAW,CACf,MAAO,UACP,IAAAR,EACA,KAAMW,CACR,EACAL,EAAO,YACLE,EACA,CAACA,EAAS,KAAK,MAAM,CAGvB,EACA,KACF,KACK,mBAAoB,CACvB,GAAIL,GAAA,MAAAA,EAAQ,QAAS,CACnB,MAAMM,EAAa,IAAI,MAAM,SAAS,EACtCA,EAAW,KAAO,aAClBH,EAAO,UAAU,EACjBD,EAAOI,CAAU,CACnB,CACAP,GAAA,MAAAA,EAAWK,EAAK,MAChB,KACF,KACK,iBACH,OAAAD,EAAO,UAAU,EACVF,EAAQG,EAAK,IAAI,EAG9B,CAAC,CACH,CAAC,CACH","sourcesContent":["import type { EncryptedFile, Progress } from \"../crypto/file.js\";\nimport { workerSodiumScript } from \"./workerCodes.js\";\n\n// const ensureNonDetachedUniqueBuffers = (\n// values: Transferable[]\n// ): Set<Transferable> =>\n// new Set(\n// values.filter(v => {\n// if (v instanceof ArrayBuffer) {\n// return v.byteLength === 0;\n// } else {\n// return true;\n// }\n// })\n// );\n\nexport async function encrypt(\n key: Uint8Array,\n dataToEncrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<EncryptedFile> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToEncrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"encrypt\",\n data: dataToEncrypt,\n key\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"encrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"encrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n\nexport async function decrypt(\n key: Uint8Array,\n dataToDecrypt: Uint8Array,\n progress?: (progress: Progress) => Promise<void>,\n signal?: AbortSignal\n): Promise<Uint8Array> {\n return new Promise((resolve, reject) => {\n progress?.({\n current: 0,\n percent: 0,\n total: dataToDecrypt.byteLength\n });\n const worker = new Worker(\n URL.createObjectURL(\n new Blob([workerSodiumScript], { type: \"text/javascript\" })\n )\n );\n worker.addEventListener(\"error\", reject);\n worker.addEventListener(\"messageerror\", reject);\n\n worker.addEventListener(\"message\", ({ data }) => {\n switch (data.event) {\n case \"ready\": {\n const postData = {\n event: \"decrypt\",\n key,\n data: dataToDecrypt\n };\n worker.postMessage(\n postData,\n [postData.data.buffer]\n // // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.\n // ensureNonDetachedUniqueBuffers([postData.data.buffer])\n );\n break;\n }\n case \"decrypt-progress\": {\n if (signal?.aborted) {\n const abortError = new Error(\"Aborted\");\n abortError.name = \"AbortError\";\n worker.terminate();\n reject(abortError);\n }\n progress?.(data.data);\n break;\n }\n case \"decrypt-result\": {\n worker.terminate();\n return resolve(data.data);\n }\n }\n });\n });\n}\n"]}
|
package/dist/worker/sodium.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Progress, EncryptedFile } from '../crypto/file.js';
|
|
2
|
+
|
|
3
|
+
declare function encrypt(key: Uint8Array, dataToEncrypt: Uint8Array, progress?: (progress: Progress) => Promise<void>, signal?: AbortSignal): Promise<EncryptedFile>;
|
|
4
|
+
declare function decrypt(key: Uint8Array, dataToDecrypt: Uint8Array, progress?: (progress: Progress) => Promise<void>, signal?: AbortSignal): Promise<Uint8Array>;
|
|
5
|
+
|
|
6
|
+
export { decrypt, encrypt };
|
package/dist/worker/sodium.js
CHANGED
|
@@ -1,118 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// const ensureNonDetachedUniqueBuffers = (
|
|
4
|
-
// values: Transferable[]
|
|
5
|
-
// ): Set<Transferable> =>
|
|
6
|
-
// new Set(
|
|
7
|
-
// values.filter(v => {
|
|
8
|
-
// if (v instanceof ArrayBuffer) {
|
|
9
|
-
// return v.byteLength === 0;
|
|
10
|
-
// } else {
|
|
11
|
-
// return true;
|
|
12
|
-
// }
|
|
13
|
-
// })
|
|
14
|
-
// );
|
|
15
|
-
|
|
16
|
-
export async function encrypt(key, dataToEncrypt, progress, signal) {
|
|
17
|
-
return new Promise((resolve, reject) => {
|
|
18
|
-
progress == null ? void 0 : progress({
|
|
19
|
-
current: 0,
|
|
20
|
-
percent: 0,
|
|
21
|
-
total: dataToEncrypt.byteLength
|
|
22
|
-
});
|
|
23
|
-
const worker = new Worker(URL.createObjectURL(new Blob([workerSodiumScript], {
|
|
24
|
-
type: "text/javascript"
|
|
25
|
-
})));
|
|
26
|
-
worker.addEventListener("error", reject);
|
|
27
|
-
worker.addEventListener("messageerror", reject);
|
|
28
|
-
worker.addEventListener("message", _ref => {
|
|
29
|
-
let {
|
|
30
|
-
data
|
|
31
|
-
} = _ref;
|
|
32
|
-
switch (data.event) {
|
|
33
|
-
case "ready":
|
|
34
|
-
{
|
|
35
|
-
const postData = {
|
|
36
|
-
event: "encrypt",
|
|
37
|
-
data: dataToEncrypt,
|
|
38
|
-
key
|
|
39
|
-
};
|
|
40
|
-
worker.postMessage(postData, [postData.data.buffer]
|
|
41
|
-
// // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.
|
|
42
|
-
// ensureNonDetachedUniqueBuffers([postData.data.buffer])
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
case "encrypt-progress":
|
|
48
|
-
{
|
|
49
|
-
if (signal != null && signal.aborted) {
|
|
50
|
-
const abortError = new Error("Aborted");
|
|
51
|
-
abortError.name = "AbortError";
|
|
52
|
-
worker.terminate();
|
|
53
|
-
reject(abortError);
|
|
54
|
-
}
|
|
55
|
-
progress == null ? void 0 : progress(data.data);
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
case "encrypt-result":
|
|
59
|
-
{
|
|
60
|
-
worker.terminate();
|
|
61
|
-
return resolve(data.data);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
export async function decrypt(key, dataToDecrypt, progress, signal) {
|
|
68
|
-
return new Promise((resolve, reject) => {
|
|
69
|
-
progress == null ? void 0 : progress({
|
|
70
|
-
current: 0,
|
|
71
|
-
percent: 0,
|
|
72
|
-
total: dataToDecrypt.byteLength
|
|
73
|
-
});
|
|
74
|
-
const worker = new Worker(URL.createObjectURL(new Blob([workerSodiumScript], {
|
|
75
|
-
type: "text/javascript"
|
|
76
|
-
})));
|
|
77
|
-
worker.addEventListener("error", reject);
|
|
78
|
-
worker.addEventListener("messageerror", reject);
|
|
79
|
-
worker.addEventListener("message", _ref2 => {
|
|
80
|
-
let {
|
|
81
|
-
data
|
|
82
|
-
} = _ref2;
|
|
83
|
-
switch (data.event) {
|
|
84
|
-
case "ready":
|
|
85
|
-
{
|
|
86
|
-
const postData = {
|
|
87
|
-
event: "decrypt",
|
|
88
|
-
key,
|
|
89
|
-
data: dataToDecrypt
|
|
90
|
-
};
|
|
91
|
-
worker.postMessage(postData, [postData.data.buffer]
|
|
92
|
-
// // @ts-expect-error - Typescript expects the transfer list to be an Array, but it can actually be any iterable.
|
|
93
|
-
// ensureNonDetachedUniqueBuffers([postData.data.buffer])
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
98
|
-
case "decrypt-progress":
|
|
99
|
-
{
|
|
100
|
-
if (signal != null && signal.aborted) {
|
|
101
|
-
const abortError = new Error("Aborted");
|
|
102
|
-
abortError.name = "AbortError";
|
|
103
|
-
worker.terminate();
|
|
104
|
-
reject(abortError);
|
|
105
|
-
}
|
|
106
|
-
progress == null ? void 0 : progress(data.data);
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
case "decrypt-result":
|
|
110
|
-
{
|
|
111
|
-
worker.terminate();
|
|
112
|
-
return resolve(data.data);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3b3JrZXJTb2RpdW1TY3JpcHQiLCJlbmNyeXB0Iiwia2V5IiwiZGF0YVRvRW5jcnlwdCIsInByb2dyZXNzIiwic2lnbmFsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjdXJyZW50IiwicGVyY2VudCIsInRvdGFsIiwiYnl0ZUxlbmd0aCIsIndvcmtlciIsIldvcmtlciIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsIkJsb2IiLCJ0eXBlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRhdGEiLCJldmVudCIsInBvc3REYXRhIiwicG9zdE1lc3NhZ2UiLCJidWZmZXIiLCJhYm9ydGVkIiwiYWJvcnRFcnJvciIsIkVycm9yIiwibmFtZSIsInRlcm1pbmF0ZSIsImRlY3J5cHQiLCJkYXRhVG9EZWNyeXB0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dvcmtlci9zb2RpdW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbmNyeXB0ZWRGaWxlLCBQcm9ncmVzcyB9IGZyb20gXCIuLi9jcnlwdG8vZmlsZS5qc1wiO1xuaW1wb3J0IHsgd29ya2VyU29kaXVtU2NyaXB0IH0gZnJvbSBcIi4vd29ya2VyQ29kZXMuanNcIjtcblxuLy8gY29uc3QgZW5zdXJlTm9uRGV0YWNoZWRVbmlxdWVCdWZmZXJzID0gKFxuLy8gICB2YWx1ZXM6IFRyYW5zZmVyYWJsZVtdXG4vLyApOiBTZXQ8VHJhbnNmZXJhYmxlPiA9PlxuLy8gICBuZXcgU2V0KFxuLy8gICAgIHZhbHVlcy5maWx0ZXIodiA9PiB7XG4vLyAgICAgICBpZiAodiBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4vLyAgICAgICAgIHJldHVybiB2LmJ5dGVMZW5ndGggPT09IDA7XG4vLyAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcbi8vICAgICAgIH1cbi8vICAgICB9KVxuLy8gICApO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdChcbiAga2V5OiBVaW50OEFycmF5LFxuICBkYXRhVG9FbmNyeXB0OiBVaW50OEFycmF5LFxuICBwcm9ncmVzcz86IChwcm9ncmVzczogUHJvZ3Jlc3MpID0+IFByb21pc2U8dm9pZD4sXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsXG4pOiBQcm9taXNlPEVuY3J5cHRlZEZpbGU+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBwcm9ncmVzcz8uKHtcbiAgICAgIGN1cnJlbnQ6IDAsXG4gICAgICBwZXJjZW50OiAwLFxuICAgICAgdG90YWw6IGRhdGFUb0VuY3J5cHQuYnl0ZUxlbmd0aFxuICAgIH0pO1xuICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIoXG4gICAgICBVUkwuY3JlYXRlT2JqZWN0VVJMKFxuICAgICAgICBuZXcgQmxvYihbd29ya2VyU29kaXVtU2NyaXB0XSwgeyB0eXBlOiBcInRleHQvamF2YXNjcmlwdFwiIH0pXG4gICAgICApXG4gICAgKTtcbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlZXJyb3JcIiwgcmVqZWN0KTtcbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKHsgZGF0YSB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKGRhdGEuZXZlbnQpIHtcbiAgICAgICAgY2FzZSBcInJlYWR5XCI6IHtcbiAgICAgICAgICBjb25zdCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIGV2ZW50OiBcImVuY3J5cHRcIixcbiAgICAgICAgICAgIGRhdGE6IGRhdGFUb0VuY3J5cHQsXG4gICAgICAgICAgICBrZXlcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShcbiAgICAgICAgICAgIHBvc3REYXRhLFxuICAgICAgICAgICAgW3Bvc3REYXRhLmRhdGEuYnVmZmVyXVxuICAgICAgICAgICAgLy8gLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGVzY3JpcHQgZXhwZWN0cyB0aGUgdHJhbnNmZXIgbGlzdCB0byBiZSBhbiBBcnJheSwgYnV0IGl0IGNhbiBhY3R1YWxseSBiZSBhbnkgaXRlcmFibGUuXG4gICAgICAgICAgICAvLyBlbnN1cmVOb25EZXRhY2hlZFVuaXF1ZUJ1ZmZlcnMoW3Bvc3REYXRhLmRhdGEuYnVmZmVyXSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJlbmNyeXB0LXByb2dyZXNzXCI6IHtcbiAgICAgICAgICBpZiAoc2lnbmFsPy5hYm9ydGVkKSB7XG4gICAgICAgICAgICBjb25zdCBhYm9ydEVycm9yID0gbmV3IEVycm9yKFwiQWJvcnRlZFwiKTtcbiAgICAgICAgICAgIGFib3J0RXJyb3IubmFtZSA9IFwiQWJvcnRFcnJvclwiO1xuICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgcmVqZWN0KGFib3J0RXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9ncmVzcz8uKGRhdGEuZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVuY3J5cHQtcmVzdWx0XCI6IHtcbiAgICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHQoXG4gIGtleTogVWludDhBcnJheSxcbiAgZGF0YVRvRGVjcnlwdDogVWludDhBcnJheSxcbiAgcHJvZ3Jlc3M/OiAocHJvZ3Jlc3M6IFByb2dyZXNzKSA9PiBQcm9taXNlPHZvaWQ+LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbFxuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcHJvZ3Jlc3M/Lih7XG4gICAgICBjdXJyZW50OiAwLFxuICAgICAgcGVyY2VudDogMCxcbiAgICAgIHRvdGFsOiBkYXRhVG9EZWNyeXB0LmJ5dGVMZW5ndGhcbiAgICB9KTtcbiAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKFxuICAgICAgVVJMLmNyZWF0ZU9iamVjdFVSTChcbiAgICAgICAgbmV3IEJsb2IoW3dvcmtlclNvZGl1bVNjcmlwdF0sIHsgdHlwZTogXCJ0ZXh0L2phdmFzY3JpcHRcIiB9KVxuICAgICAgKVxuICAgICk7XG4gICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLCByZWplY3QpO1xuICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZWVycm9yXCIsIHJlamVjdCk7XG5cbiAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgKHsgZGF0YSB9KSA9PiB7XG4gICAgICBzd2l0Y2ggKGRhdGEuZXZlbnQpIHtcbiAgICAgICAgY2FzZSBcInJlYWR5XCI6IHtcbiAgICAgICAgICBjb25zdCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIGV2ZW50OiBcImRlY3J5cHRcIixcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGRhdGE6IGRhdGFUb0RlY3J5cHRcbiAgICAgICAgICB9O1xuICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShcbiAgICAgICAgICAgIHBvc3REYXRhLFxuICAgICAgICAgICAgW3Bvc3REYXRhLmRhdGEuYnVmZmVyXVxuICAgICAgICAgICAgLy8gLy8gQHRzLWV4cGVjdC1lcnJvciAtIFR5cGVzY3JpcHQgZXhwZWN0cyB0aGUgdHJhbnNmZXIgbGlzdCB0byBiZSBhbiBBcnJheSwgYnV0IGl0IGNhbiBhY3R1YWxseSBiZSBhbnkgaXRlcmFibGUuXG4gICAgICAgICAgICAvLyBlbnN1cmVOb25EZXRhY2hlZFVuaXF1ZUJ1ZmZlcnMoW3Bvc3REYXRhLmRhdGEuYnVmZmVyXSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJkZWNyeXB0LXByb2dyZXNzXCI6IHtcbiAgICAgICAgICBpZiAoc2lnbmFsPy5hYm9ydGVkKSB7XG4gICAgICAgICAgICBjb25zdCBhYm9ydEVycm9yID0gbmV3IEVycm9yKFwiQWJvcnRlZFwiKTtcbiAgICAgICAgICAgIGFib3J0RXJyb3IubmFtZSA9IFwiQWJvcnRFcnJvclwiO1xuICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICAgICAgcmVqZWN0KGFib3J0RXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9ncmVzcz8uKGRhdGEuZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImRlY3J5cHQtcmVzdWx0XCI6IHtcbiAgICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGF0YS5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0Esa0JBQWtCLFFBQVEsa0JBQWtCOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTyxlQUFlQyxPQUFPLENBQzNCQyxHQUFlLEVBQ2ZDLGFBQXlCLEVBQ3pCQyxRQUFnRCxFQUNoREMsTUFBb0IsRUFDSTtFQUN4QixPQUFPLElBQUlDLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztJQUN0Q0osUUFBUSxvQkFBUkEsUUFBUSxDQUFHO01BQ1RLLE9BQU8sRUFBRSxDQUFDO01BQ1ZDLE9BQU8sRUFBRSxDQUFDO01BQ1ZDLEtBQUssRUFBRVIsYUFBYSxDQUFDUztJQUN2QixDQUFDLENBQUM7SUFDRixNQUFNQyxNQUFNLEdBQUcsSUFBSUMsTUFBTSxDQUN2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
|
|
1
|
+
import"../chunk-KMTF2BZE.js";import{workerSodiumScript as y}from"./workerCodes.js";async function m(i,c,e,n){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([y],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"encrypt",data:c,key:i};t.postMessage(r,[r.data.buffer]);break}case"encrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"encrypt-result":return t.terminate(),d(o.data)}})})}async function s(i,c,e,n){return new Promise((d,a)=>{e==null||e({current:0,percent:0,total:c.byteLength});const t=new Worker(URL.createObjectURL(new Blob([y],{type:"text/javascript"})));t.addEventListener("error",a),t.addEventListener("messageerror",a),t.addEventListener("message",({data:o})=>{switch(o.event){case"ready":{const r={event:"decrypt",key:i,data:c};t.postMessage(r,[r.data.buffer]);break}case"decrypt-progress":{if(n!=null&&n.aborted){const r=new Error("Aborted");r.name="AbortError",t.terminate(),a(r)}e==null||e(o.data);break}case"decrypt-result":return t.terminate(),d(o.data)}})})}export{s as decrypt,m as encrypt};
|
|
2
|
+
//# sourceMappingURL=sodium.js.map
|