From 6f3be4b754f8d99ecef1156e6390aa49e49dec1c Mon Sep 17 00:00:00 2001 From: CoNET Project Date: Tue, 2 Jul 2024 01:20:00 -0700 Subject: [PATCH] add files --- package.json | 56 + src/define.d.ts | 670 +++++++++ src/encrypt.ts | 94 ++ src/favicon.ico | Bin 0 -> 328085 bytes src/util.ts | 59 + src/workers/Buffer.js | 3071 +++++++++++++++++++++++++++++++++++++++++ src/workers/main.ts | 0 tsconfig.build.json | 6 + tsconfig.json | 75 + 9 files changed, 4031 insertions(+) create mode 100644 package.json create mode 100644 src/define.d.ts create mode 100644 src/encrypt.ts create mode 100644 src/favicon.ico create mode 100644 src/util.ts create mode 100644 src/workers/Buffer.js create mode 100644 src/workers/main.ts create mode 100644 tsconfig.build.json create mode 100644 tsconfig.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..db2a719 --- /dev/null +++ b/package.json @@ -0,0 +1,56 @@ +{ + "name": "@conet.project/conet-game", + "version": "0.0.1", + "license": "UNLICENSED", + "files": [ + "./build" + ], + "private": false, + "main": "./build/index.js", + "types": "./build/index.d.ts", + "scripts": { + "lint": "echo 'no linter available'", + "test": "echo 'no linter available'", + "build": "tsc --project ./tsconfig.build.json && cp src/favicon.ico build && cp -r src/workers/* build/workers/", + "clean": "rm -rf ./node_modules ./build", + "local": "node build/localServer/index", + "buildRun": "tsc --project ./tsconfig.build.json && cp src/favicon.ico build/localServer/workers/ && cp src/localServer/workers/utilities/*.js build/localServer/workers/utilities && cp src/index.d.ts build && node build/localServer/index", + "build:docker": "docker buildx create --name conet-platform --use --bootstrap && docker buildx build --push --platform linux/amd64,linux/arm64 --tag conetnetwork/conet:platform ." + }, + "dependencies": { + "async": "^3.2.5", + "colors": "^1.4.0", + "cors": "^2.8.5", + "express": "^4.19.2", + "fs-extra": "^11.2.0", + "uuid": "^10.0.0", + "yargs": "^17.7.2", + "hexdump-nodejs": "^0.1.0", + "ip": "^2.0.1", + "ethers": "^6.13.1", + "eth-crypto": "^2.6.0" + }, + "devDependencies": { + "@types/async": "^3.2.24", + "@types/express": "^4.17.21", + "@types/fs-extra": "^11.0.4", + "@types/jest": "^29.5.12", + "@types/node": "^20.14.9", + "@types/pouchdb": "^6.4.2", + "@types/uuid": "^10.0.0", + "@typescript-eslint/eslint-plugin": "^7.14.1", + "@typescript-eslint/parser": "^7.14.1", + "eslint": "^9.6.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "jszip": "^3.10.1", + "openpgp": "^5.11.2", + "pouchdb": "^9.0.0", + "ts-jest": "^29.1.5", + "ts-node": "^10.9.2", + "typescript": "^5.5.2" + }, + "bin": { + "conet-platform": "./build/index.js" + } +} \ No newline at end of file diff --git a/src/define.d.ts b/src/define.d.ts new file mode 100644 index 0000000..62a7040 --- /dev/null +++ b/src/define.d.ts @@ -0,0 +1,670 @@ + +declare const openpgp +declare const buffer: any +declare const scrypt: any +declare const async: any +declare const JSZip: any +declare const PouchDB: any + + +interface imapConnect { + imapServer: string + imapUserName: string + imapUserPassword: string + imapPortNumber: number | number[] + imapSsl: boolean + imapIgnoreCertificate?: boolean +} + +interface connectRequest { + kloak_account_armor: string + device_armor: string + client_folder_name: string + use_kloak_shared_imap_account: boolean + imap_account: imap_setup + next_time_connect?: next_time_connect + error?: string + server_folder: string + encrypted_response?: string + encrypted_request: string + connect_info?: connect_imap_reqponse +} + +type nodes_info = { + country: string + customs_review_total?: number + ip_addr: string + last_online: boolean + lat?: number + lon?: number + outbound_total?: number + region: string + armoredPublicKey: string + publicKeyObj?: any +} + +interface connect_imap_reqponse { + imap_account: imap_setup + server_folder: string + client_folder: string +} + +interface imap_setup { + imap_username: string + imap_user_password: string + imap_port_number: number + imap_server: string +} + +interface next_time_connect { + imap_account: imap_setup + server_folder: string +} + +interface postData { + connectUUID?: string + encryptedMessage: string + status?: string + +} + +interface Window { + postMessage(message: any, transfer?: Transferable[]): void; +} + +type keyOpenPGP_obj = { + publicKeyObj: any + privateKeyObj: any +} + +type CryptoAssetHistory = { + status: 'Pending'|'Confirmed' + Nonce?: number + to?: string + transactionFee?: string + gasLimit?: string + gasUsed?: string + baseFee?: number + priorityFee?: number + totalGasFee?: number + maxFeePerGas?: number + transactionHash?: string + time: string + blockHash?: string + blockNumber?: number + contractAddress?: string + effectiveGasPrice?: number + cumulativeGasUsed?: number + from?: string + logs?: any[] + logsBloom?: string + transactionIndex?: number + type?: string + value: number + isSend: boolean + cCNTPBurn?: boolean + epoch?: number + rate?: string +} + +interface TokenPreferences { + networkName: string // + RpcURL: string // Token Contract Address + chainID: number // Token Decimal + currencySymbol: string // Token Symbol + blockExplorerURL: string +} + +interface CryptoAsset { + balance: string + history: CryptoAssetHistory[] + network: string + decimal: number + contract: string + name: string + unlocked?: boolean +} + + +interface passInit { + charSet: string + salt: Buffer + N: number + r: number + p: number + dkLen: number + passcode: string + _passcode: string + password: string +} + +declare type WorkerCommandError = 'NOT_READY'|'INVALID_DATA'|'NO_UUID'|'INVALID_COMMAND'|'OPENPGP_RUNNING_ERROR'| 'TIMEOUT'| +'PouchDB_ERROR'|'GENERATE_PASSCODE_ERROR'|'FAILURE'|'COUNTDOWN'| netWorkError | verification |seguroError|conetMiner|conetError + +declare type netWorkError = 'NOT_INTERNET'|'NOT_STRIPE'|'ALL_EMAIL_SERVER_CAN_NOT_CONNECTING'|'LOCAL_SERVER_ERROR'|'WAITING_SEGURO_RESPONSE_TIMEOUT'| +'EMAIL_ACCOUNT_AUTH_ERROR'|'UNKNOW_ERROR'|'LOCAL_RESPONE_NO_JSON_DATA' + +declare type seguroError = 'TIMEOUT_EMAIL_SERVER' | 'TIMEOUT_SEGURO_NETWORK' | +'NO_INTERNET' | 'CONNECTING_ACCESS_POINT' | +'CONNECTING_SEGURO_NETWORK'|'INIT'|'NOT_STRIPE'| +'LOCAL_SERVER_ERROR'|'INVITATION_CODE_ERROR'|'SEGURO_DATA_FORMAT_ERROR'| +'SEGURO_ERROR' + +declare type conetError = 'CONET_API_SERVER_unreachable' + +declare type verification = 'INCORRECT_CODE'|'Err_Server_Unreachable'|'Err_Multiple_IP'|'Err_Existed' + +declare type conetMiner = 'Err_Server_Unreachable'|'Err_Multiple_IP' + +declare type WorkerCommand = 'READY'|'getRegiestNodes'|'beforeunload'|'createAccount'|'testPasscode'|'showSRP'|'unlock_cCNTP'| + 'encrypt_TestPasscode'|'encrypt_createPasscode'|'encrypt_lock'|'invitation'|'encrypt_deletePasscode'|'preBurnCCNTP'| + 'storePreferences'|'newProfile'|'storeProfile'|'urlProxy'|'saveDomain'|'getDomain'|'setRegion'|'getGuardianRegion'| + 'getFaucet'|'isAddress'|'syncAssetV1'|'sendAsset'|'getUSDCPrice'|'buyUSDC'|'getWorkerClientID'|'getAllOtherAssets'| + 'mintCoNETCash'|'getSINodes'|'getRecipientCoNETCashAddress'|'getUserProfile'|'burnCCNTP'|'showLeaderboard'| + 'sendMessage'|'incomeData'|'WORKER_MESSAGE'|'getCONETBalance'|'startProxy'|'registerReferrer'| + 'SaaSRegister'|'getContainer'|'ipaddress'|'startLiveness'|'stopLiveness'|'isLivenessRunning'|'importWallet'|'startMining'|'stopMining'| + // from service worker + 'urlProxy'|'saveDomain'|'getDomain'|'getWorkerClientID'|'getRefereesList'|'getAllNodes'|'getAllProfiles'|'updateProfile'|'addProfile'|'resetPasscode'| + 'getAssetsPrice'|'recoverAccount'|'CONETFaucet'|'prePurchase'|'guardianPurchase'|'fx168PrePurchase'|'claimToken' | 'transferToken' | 'estimateGas' | 'startSilentPass' + +type SINodesSortby = 'CUSTOMER_REVIEW'|'TOTAL_ONLINE_TIME'| + 'STORAGE_PRICE_LOW'|'STORAGE_PRICE_HIGH'|'OUTBOUND_PRICE_HIGH'|'OUTBOUND_PRICE_LOW' + +type SINodesRegion = 'USA'|'UK'|'ES'|'DE' +type worker_command = { + cmd: WorkerCommand + data: any[] + uuid?: string + err?: WorkerCommandError + clientID?: string +} +type walletKey = { + address: string + index: number + privateKey: string +} +type CoNETCash = { + assets: { + key: walletKey + id: string + history: CryptoAssetHistory[] + }[] + Total: number +} + +interface keyPair { + keyID: string + publicKeyArmor?: string + privateKeyArmor?: string + keyObj?:{ + publicKeyObj: any + privateKeyObj: any + } +} +type regionType = { + us: boolean, + uk: boolean, + ge: boolean, + sp: boolean, + fr: boolean +} + +interface conet_tokens { + // CONET Holesky + conet:CryptoAsset + CNTP: CryptoAsset + CNTPV1: CryptoAsset + cCNTP: CryptoAsset + + dWBNB: CryptoAsset + dWETH: CryptoAsset + dUSDT: CryptoAsset + + // CONET Holesky Claimable + cUSDB: CryptoAsset + cBNBUSDT: CryptoAsset + // cBlastETH: CryptoAsset + // cBNB: CryptoAsset + // cETH: CryptoAsset + cUSDT: CryptoAsset + CGPNs: CryptoAsset + CGPN2s: CryptoAsset + // blast mainchain + + blastETH: CryptoAsset + usdb: CryptoAsset + + // ETH + eth: CryptoAsset + usdt:CryptoAsset + + // BSC + bnb: CryptoAsset + wbnb: CryptoAsset + wusdt: CryptoAsset +} + +interface profile extends keyPair { + isPrimary?: boolean + pgpKey?: pgpKeyPair + privateKeyArmor: string + emailAddr?: string + hdPath: string + index: number + tokens: conet_tokens + isNode: boolean + referrer: string|null|undefined + data?: any + burnCCNTP?: CryptoAssetHistory + nodeID?: number + nodeIP_address?: string + nodeRegion?: string +} + +interface publicProfile { + nickname: string + tags: string[] + bio: string + profileImg: string +} + +interface ICoNET_Router_Base { + gpgPublicKeyID?: string + armoredPublicKey: string + walletAddr: string + signPgpKeyID?: string + walletAddrSign: string +} + +interface ICoNET_Profile extends ICoNET_Router_Base { + nickName: string + profileImg: string + emailAddr: string + routerPublicKeyID: string + routerArmoredPublicKey: string +} + + +type ColorTheme = 'LIGHT' | 'DARK' +type Language = 'en-CA' | 'fr-CA' | 'ja-JP' | 'zh-CN' | 'zh-TW' +type PasscodeStatus = 'LOCKED' | 'UNLOCKED' | 'NOT_SET' + +type recipientNode = { + keyID: string + publicKey: string +} + +interface FragmentClass { + mainFragmentName: string + failures: number +} + +interface fx168_Order { + publishTx?: string + timestamp: number + status: 'pending'|'active'|'problem' + uuid: string + nodes: number +} + +type encrypt_keys_object = { + profiles?: profile[] + isReady: boolean + ver: number + preferences?: any + encryptedString?: string + passcode?: Passcode + mnemonicPhrase: string + fragmentClass?: FragmentClass + nonce: number + fx168Order?: fx168_Order[] + upgradev2?: boolean +} + +type pgpKeyPair = { + privateKeyArmor: string + publicKeyArmor: string + publicKeyObj?: any + privateKeyObj?: any +} + +type Passcode = { + status: PasscodeStatus +} + +interface imap_connect { + imap_username: string + imap_user_password: string + imap_port_number: string + imap_server: string +} + + +type SeguroNetworkStatus = +'TIMEOUT_EMAIL_SERVER' | 'TIMEOUT_SEGURO_NETWORK' | +'NO_INTERNET' | 'CONNECTING_ACCESS_POINT' | 'WAITING_SEGURO_RESPONSE'| +'CONNECTING_SEGURO_NETWORK'| +'INIT'|'FINISHED' + +interface ISeguroNetwork { + SeguroStatus: SeguroNetworkStatus + SeguroObject: webEndpointConnect| {} +} + +interface testImapResult { + error: string + n: { + server: string + port: number + } + time: number +} + +interface SeguroInvitation { + imapTest: string + device_publickey_armor: string + seguro_key_armor: string + client_folder_name?: string + sharedDeviceInvitation?: string[] + shardInvitation?: string[] + invitation: string + imap_connect?: imap_connect +} + +interface webEndpointConnect { + imap_connect: imap_connect + server_listening_folder: string + client_listening_folder: string + shardInvitation: string[] + sharedDeviceInvitation: string[] + endPoints: string[] + nextNoticeBlock: string + NoticeBody: string +} + +interface CoNET_Module { + EthCrypto: any + Web3Providers: any + Web3EthAccounts: any + Web3Eth: any + Web3Utils: any + forge: any + aesGcmEncrypt: (plaintext: string, password: string) => Promise + aesGcmDecrypt: (ciphertext: string, password: string) => Promise +} + +type systemInitialization = { + preferences: any + passcode: Passcode +} + +type CoNETIndexDBInit = { + id: passInit + preferences: any +} + +type SICommandObj_Command = 'getCoNETCashAccount'|'regiestRecipient'|'connecting'|'SaaS_Proxy'|'SaaS_Sock5'|'SaaS_Sock5_Data_Entry' + +interface SICommandObj { + command: SICommandObj_Command + responseError?: string|null + responseData?: any[] + algorithm: 'aes-256-cbc' + Securitykey: string + requestData: any[] + walletAddress: string +} + +interface ethSignedObj { + message: string + messageHash: string + r: string + s: string + signature: string + v: string +} + +// interface CoNETCash_authorized { +// id: string +// to: string +// amount: number +// type: 'USDC' +// from: string +// } + +type clientProfile = { + armoredPublicKey: string + gpgPublicKeyID: string + nickName: string + profileImg: string + walletAddr: string + routerArmoredPublicKey: string + routerPublicKeyID: string +} +interface urlData { + href: string + port: number + method: string + json: ArrayBuffer|null +} + +type fetchCashStorageData = { + headers: { + [key: string]: string | boolean + } + body: string + status: number + statusText: string +} + +interface clientPool { + clientId: { + resultingClientId: string + clientId: string + } + siteOrigin: URL + node: any +} + +interface workPromise { + cmd: IWorker_command + uuid: string + _promise: (value: IWorker_command | PromiseLike) => void +} + +interface urlData { + href: string + port: number + method: string + json: string +} + +type IWorker_command = { + cmd: WorkerCommand + data: any[] + uuid: string + err?: string +} + +interface clientPoolWroker { + domain: URL + id: string + node: any +} + +interface requestObj { + remotePort: number|undefined + remoteAddress: string|undefined + targetHost: string|null + targetPort: number + methods: string + uuid: string|undefined + socks?: string +} +interface VE_IPptpStream { + type?: string + buffer: string + host: string|null + port: number + cmd: string + //ATYP: number + uuid?: string + length?:number + randomBuffer?: Buffer + ssl: boolean + order: number +} + +type proxyLogs = { + hostInfo: string + ssl: Boolean, + startTime: number, + download: number, + upload: number, + nodeIpaddress: string, + endTime: number +} + +interface nodesBalance { + balance: string + minerAddr: string +} + +interface startLivenessSSEData { + balance: { + CONETBalance: string + COTPBalance: string + } + masterBalance: masterBalance + + nodesBalance: nodeType[] + +} + + +interface nodeType { + ip_addr: string + minerAddr: string + running: boolean + wallet_addr: string + balance: string + country: string +} + +interface masterBalance { + CNTPMasterBalance: string + CNTPReferralBalance: string +} + +interface node { + masterBalance: masterBalance + node: nodeType[] +} + +interface getBalanceAPIresult { + CNTP_Balance: string + CONET_Balance:string + Referee: string + lastTime: number +} +interface blockscout_token { + address: string + circulating_market_cap: string + decimals: string + exchange_rate: string + holders: string + icon_url: string + name: string + symbol: string + total_supply: string + type: "ERC-20"|"ERC-721"|"ERC-1155" +} +interface blockscout_address_token { + token: blockscout_token + token_id: string + token_instance: string + value: string +} +interface blockscout_result { + items: blockscout_address_token[] + next_page_params: string +} + +interface blockscout_address { + block_number_balance_updated_at: number + coin_balance: string +} + + +type listenState = 'referrer'|'system'|'conet'|'cntp'|'cntp-balance'|'nodes'|'beforeunload'|'toFrontEnd' + + +interface CONETPlatfromSystemData { + +} + +interface conetPlatform { + passcode: 'LOCKED'|'UNLOCKED'|'NONE' +} + +type command = 'profileVer'|'assets'|'purchaseStatus'|'miningStatus' | 'tokenTransferStatus' +interface channelWroker { + cmd: command, + data: any[] +} + + +/** + * + * + */ +interface fragmentsObj { + localEncryptedText: string + remoteEncryptedText: string + fileName: string +} + +interface assetsStructure { + currency_name: string + timestamp: string + usd_price: string +} + +interface transferTx { + from: string + gasLimit: number + hash: string + maxFeePerGas: number + maxPriorityFeePerGas: BigInt + value: BigInt + gasPrice: number + nonce: number + to: string + wait: ()=> Promise +} + +interface referrals_rate_list { + cntpRate: string + referrals: string + wallet: string +} + +interface leaderboardData { + epoch: number + free_cntp?: referrals_rate_list[] + free_referrals?: referrals_rate_list[] + minerRate?: string + totalMiner?: string + free?:referrals_rate_list + guardian?: referrals_rate_list +} + +type ITypeTransferCount = { + hostInfo: string + upload: number + download: number + startTime: number + endTime: number + nodeIpaddress: string + ssl: boolean +} \ No newline at end of file diff --git a/src/encrypt.ts b/src/encrypt.ts new file mode 100644 index 0000000..42d350e --- /dev/null +++ b/src/encrypt.ts @@ -0,0 +1,94 @@ + + +/** + * CONET Platform + * + */ + +const workerReadyChannel = 'conet-platform' +const workerProcessChannel = 'workerLoader' +const channelWrokerListenName = 'toMainWroker' +const responseChannel = new BroadcastChannel('toServiceWroker') + + +const channel = new BroadcastChannel(channelWrokerListenName) + + + + +const backGroundPoolWorker: clientPoolWroker[] = [] + +self.onhashchange = () => { + channel.removeEventListener('message', channelWorkerDoCommand) +} + +const initEncryptWorker = async () => { + + const baseUrl = self.name + 'workers/' + const channelLoading = new BroadcastChannel(workerProcessChannel) + const channelPlatform = new BroadcastChannel(workerReadyChannel) + self.importScripts ( baseUrl + 'Buffer.js' ) + channelLoading.postMessage(10) + + self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/uuid/8.3.2/uuid.min.js' ) + self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/pouchdb/9.0.0/pouchdb.min.js' ) + self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/async/3.2.5/async.min.js' ) + self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js' ) + self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/jimp/0.22.12/jimp.min.js') + channelLoading.postMessage(30) + // self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/forge/1.3.1/forge.min.js' ) + //self.importScripts ( baseUrl + 'Pouchdb.js' ) + // self.importScripts ( baseUrl + 'PouchdbFind.js' ) + self.importScripts ( baseUrl + 'main.js' ) + self.importScripts ( 'https://cdnjs.cloudflare.com/ajax/libs/ethers/6.13.1/ethers.umd.min.js' ) + + channelLoading.postMessage(90) + channel.addEventListener('message', channelWorkerDoCommand ) +} + + +const returnUUIDChannel = (cmd: worker_command) => { + if (!cmd.uuid) { + return logger(`getPrimaryBalance cmd uuid is null`, cmd) + } + const sendChannel = new BroadcastChannel(cmd.uuid) + sendChannel.postMessage (JSON.stringify(cmd)) + sendChannel.close() +} + + +const channelWorkerDoCommand = (async e => { + const jsonData = buffer.Buffer.from ( e.data ).toString() + let cmd: worker_command + try { + cmd = JSON.parse ( jsonData ) + } catch ( ex ) { + return console.dir ( ex ) + } + + processCmd(cmd) + +}) + + +let getFaucetCount = 0 + +const processCmd = async (cmd: worker_command) => { + switch (cmd.cmd) { + + default: { + cmd.err = 'INVALID_COMMAND' + responseChannel.postMessage(JSON.stringify(cmd)) + console.log (`channelWorkerDoCommand unknow command!`, cmd) + return returnUUIDChannel(cmd) + } + } +} + +/** + * + */ + + +initEncryptWorker() + diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e33f156c27057a36f1a67f93f10dd8836c4ac448 GIT binary patch literal 328085 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 +nl0ra%YW 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 literal 0 HcmV?d00001 diff --git a/src/util.ts b/src/util.ts new file mode 100644 index 0000000..d57012f --- /dev/null +++ b/src/util.ts @@ -0,0 +1,59 @@ +const CoNETModule: CoNET_Module = { + EthCrypto: null, + Web3Providers: null, + Web3EthAccounts: null, + Web3Eth: null, + Web3Utils: null, + forge: null, + aesGcmEncrypt: async (plaintext: string, password: string) => { + const pwUtf8 = new TextEncoder().encode(password) // encode password as UTF-8 + const pwHash = await crypto.subtle.digest('SHA-256', pwUtf8) // hash the password + + const iv = crypto.getRandomValues(new Uint8Array(12)) // get 96-bit random iv + const ivStr = Array.from(iv).map(b => String.fromCharCode(b)).join('') // iv as utf-8 string + + const alg = { name: 'AES-GCM', iv: iv } // specify algorithm to use + + const key = await crypto.subtle.importKey('raw', pwHash, alg, false, ['encrypt']) // generate key from pw + + const ptUint8 = new TextEncoder().encode(plaintext) // encode plaintext as UTF-8 + const ctBuffer = await crypto.subtle.encrypt(alg, key, ptUint8) // encrypt plaintext using key + + const ctArray = Array.from(new Uint8Array(ctBuffer)) // ciphertext as byte array + const ctStr = ctArray.map(byte => String.fromCharCode(byte)).join('') // ciphertext as string + + return btoa(ivStr+ctStr) + }, + + aesGcmDecrypt: async (ciphertext: string, password: string) => { + const pwUtf8 = new TextEncoder().encode(password) // encode password as UTF-8 + const pwHash = await crypto.subtle.digest('SHA-256', pwUtf8) // hash the password + + const ivStr = atob(ciphertext).slice(0,12) // decode base64 iv + const iv = new Uint8Array(Array.from(ivStr).map(ch => ch.charCodeAt(0))) // iv as Uint8Array + + const alg = { name: 'AES-GCM', iv: iv } // specify algorithm to use + + const key = await crypto.subtle.importKey('raw', pwHash, alg, false, ['decrypt']) // generate key from pw + + const ctStr = atob(ciphertext).slice(12) // decode base64 ciphertext + const ctUint8 = new Uint8Array(Array.from(ctStr).map(ch => ch.charCodeAt(0))) // ciphertext as Uint8Array + // note: why doesn't ctUint8 = new TextEncoder().encode(ctStr) work? + + try { + const plainBuffer = await crypto.subtle.decrypt(alg, key, ctUint8) // decrypt ciphertext using key + const plaintext = new TextDecoder().decode(plainBuffer) // plaintext from ArrayBuffer + return plaintext // return the plaintext + } catch (e) { + throw new Error('Decrypt failed') + } + } +} + +// @ts-ignore +const logger = (...argv: any ) => { + const date = new Date () + const dateStrang = `%c [Seguro-worker INFO ${ date.getHours() }:${ date.getMinutes() }:${ date.getSeconds() }:${ date.getMilliseconds ()}]` + + return console.log ( dateStrang, 'color: #dcde56', ...argv) +} \ No newline at end of file diff --git a/src/workers/Buffer.js b/src/workers/Buffer.js new file mode 100644 index 0000000..ef006a4 --- /dev/null +++ b/src/workers/Buffer.js @@ -0,0 +1,3071 @@ +!(function (t) { + if ("object" == typeof exports && "undefined" != typeof module) + module.exports = t(); + else if ("function" == typeof define && define.amd) define([], t); + else { + ("undefined" != typeof window + ? window + : "undefined" != typeof global + ? global + : "undefined" != typeof self + ? self + : this + ).buffer = t(); + } +})(function () { + return (function () { + return function t(r, e, n) { + function i(f, u) { + if (!e[f]) { + if (!r[f]) { + var s = "function" == typeof require && require; + if (!u && s) return s(f, !0); + if (o) return o(f, !0); + var h = new Error("Cannot find module '" + f + "'"); + throw ((h.code = "MODULE_NOT_FOUND"), h); + } + var a = (e[f] = { exports: {} }); + r[f][0].call( + a.exports, + function (t) { + return i(r[f][1][t] || t); + }, + a, + a.exports, + t, + r, + e, + n + ); + } + return e[f].exports; + } + for ( + var o = "function" == typeof require && require, f = 0; + f < n.length; + f++ + ) + i(n[f]); + return i; + }; + })()( + { + 1: [ + function (t, r, e) { + "use strict"; + (e.byteLength = function (t) { + var r = h(t), + e = r[0], + n = r[1]; + return (3 * (e + n)) / 4 - n; + }), + (e.toByteArray = function (t) { + var r, + e, + n = h(t), + f = n[0], + u = n[1], + s = new o( + (function (t, r, e) { + return (3 * (r + e)) / 4 - e; + })(0, f, u) + ), + a = 0, + c = u > 0 ? f - 4 : f; + for (e = 0; e < c; e += 4) + (r = + (i[t.charCodeAt(e)] << 18) | + (i[t.charCodeAt(e + 1)] << 12) | + (i[t.charCodeAt(e + 2)] << 6) | + i[t.charCodeAt(e + 3)]), + (s[a++] = (r >> 16) & 255), + (s[a++] = (r >> 8) & 255), + (s[a++] = 255 & r); + 2 === u && + ((r = + (i[t.charCodeAt(e)] << 2) | (i[t.charCodeAt(e + 1)] >> 4)), + (s[a++] = 255 & r)); + 1 === u && + ((r = + (i[t.charCodeAt(e)] << 10) | + (i[t.charCodeAt(e + 1)] << 4) | + (i[t.charCodeAt(e + 2)] >> 2)), + (s[a++] = (r >> 8) & 255), + (s[a++] = 255 & r)); + return s; + }), + (e.fromByteArray = function (t) { + for ( + var r, e = t.length, i = e % 3, o = [], f = 0, u = e - i; + f < u; + f += 16383 + ) + o.push(a(t, f, f + 16383 > u ? u : f + 16383)); + 1 === i + ? ((r = t[e - 1]), o.push(n[r >> 2] + n[(r << 4) & 63] + "==")) + : 2 === i && + ((r = (t[e - 2] << 8) + t[e - 1]), + o.push( + n[r >> 10] + n[(r >> 4) & 63] + n[(r << 2) & 63] + "=" + )); + return o.join(""); + }); + for ( + var n = [], + i = [], + o = "undefined" != typeof Uint8Array ? Uint8Array : Array, + f = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + u = 0, + s = f.length; + u < s; + ++u + ) + (n[u] = f[u]), (i[f.charCodeAt(u)] = u); + function h(t) { + var r = t.length; + if (r % 4 > 0) + throw new Error("Invalid string. Length must be a multiple of 4"); + var e = t.indexOf("="); + return -1 === e && (e = r), [e, e === r ? 0 : 4 - (e % 4)]; + } + function a(t, r, e) { + for (var i, o, f = [], u = r; u < e; u += 3) + (i = + ((t[u] << 16) & 16711680) + + ((t[u + 1] << 8) & 65280) + + (255 & t[u + 2])), + f.push( + n[((o = i) >> 18) & 63] + + n[(o >> 12) & 63] + + n[(o >> 6) & 63] + + n[63 & o] + ); + return f.join(""); + } + (i["-".charCodeAt(0)] = 62), (i["_".charCodeAt(0)] = 63); + }, + {}, + ], + 2: [ + function (t, r, e) { + (function (r) { + "use strict"; + var n = t("base64-js"), + i = t("ieee754"); + (e.Buffer = r), + (e.SlowBuffer = function (t) { + +t != t && (t = 0); + return r.alloc(+t); + }), + (e.INSPECT_MAX_BYTES = 50); + var o = 2147483647; + function f(t) { + if (t > o) + throw new RangeError( + 'The value "' + t + '" is invalid for option "size"' + ); + var e = new Uint8Array(t); + return (e.__proto__ = r.prototype), e; + } + function r(t, r, e) { + if ("number" == typeof t) { + if ("string" == typeof r) + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ); + return h(t); + } + return u(t, r, e); + } + function u(t, e, n) { + if ("string" == typeof t) + return (function (t, e) { + ("string" == typeof e && "" !== e) || (e = "utf8"); + if (!r.isEncoding(e)) + throw new TypeError("Unknown encoding: " + e); + var n = 0 | p(t, e), + i = f(n), + o = i.write(t, e); + o !== n && (i = i.slice(0, o)); + return i; + })(t, e); + if (ArrayBuffer.isView(t)) return a(t); + if (null == t) + throw TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + + typeof t + ); + if (j(t, ArrayBuffer) || (t && j(t.buffer, ArrayBuffer))) + return (function (t, e, n) { + if (e < 0 || t.byteLength < e) + throw new RangeError( + '"offset" is outside of buffer bounds' + ); + if (t.byteLength < e + (n || 0)) + throw new RangeError( + '"length" is outside of buffer bounds' + ); + var i; + i = + void 0 === e && void 0 === n + ? new Uint8Array(t) + : void 0 === n + ? new Uint8Array(t, e) + : new Uint8Array(t, e, n); + return (i.__proto__ = r.prototype), i; + })(t, e, n); + if ("number" == typeof t) + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ); + var i = t.valueOf && t.valueOf(); + if (null != i && i !== t) return r.from(i, e, n); + var o = (function (t) { + if (r.isBuffer(t)) { + var e = 0 | c(t.length), + n = f(e); + return 0 === n.length ? n : (t.copy(n, 0, 0, e), n); + } + if (void 0 !== t.length) + return "number" != typeof t.length || F(t.length) + ? f(0) + : a(t); + if ("Buffer" === t.type && Array.isArray(t.data)) + return a(t.data); + })(t); + if (o) return o; + if ( + "undefined" != typeof Symbol && + null != Symbol.toPrimitive && + "function" == typeof t[Symbol.toPrimitive] + ) + return r.from(t[Symbol.toPrimitive]("string"), e, n); + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + + typeof t + ); + } + function s(t) { + if ("number" != typeof t) + throw new TypeError('"size" argument must be of type number'); + if (t < 0) + throw new RangeError( + 'The value "' + t + '" is invalid for option "size"' + ); + } + function h(t) { + return s(t), f(t < 0 ? 0 : 0 | c(t)); + } + function a(t) { + for ( + var r = t.length < 0 ? 0 : 0 | c(t.length), e = f(r), n = 0; + n < r; + n += 1 + ) + e[n] = 255 & t[n]; + return e; + } + function c(t) { + if (t >= o) + throw new RangeError( + "Attempt to allocate Buffer larger than maximum size: 0x" + + o.toString(16) + + " bytes" + ); + return 0 | t; + } + function p(t, e) { + if (r.isBuffer(t)) return t.length; + if (ArrayBuffer.isView(t) || j(t, ArrayBuffer)) + return t.byteLength; + if ("string" != typeof t) + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + + typeof t + ); + var n = t.length, + i = arguments.length > 2 && !0 === arguments[2]; + if (!i && 0 === n) return 0; + for (var o = !1; ; ) + switch (e) { + case "ascii": + case "latin1": + case "binary": + return n; + case "utf8": + case "utf-8": + return P(t).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return 2 * n; + case "hex": + return n >>> 1; + case "base64": + return k(t).length; + default: + if (o) return i ? -1 : P(t).length; + (e = ("" + e).toLowerCase()), (o = !0); + } + } + function l(t, r, e) { + var n = t[r]; + (t[r] = t[e]), (t[e] = n); + } + function y(t, e, n, i, o) { + if (0 === t.length) return -1; + if ( + ("string" == typeof n + ? ((i = n), (n = 0)) + : n > 2147483647 + ? (n = 2147483647) + : n < -2147483648 && (n = -2147483648), + F((n = +n)) && (n = o ? 0 : t.length - 1), + n < 0 && (n = t.length + n), + n >= t.length) + ) { + if (o) return -1; + n = t.length - 1; + } else if (n < 0) { + if (!o) return -1; + n = 0; + } + if (("string" == typeof e && (e = r.from(e, i)), r.isBuffer(e))) + return 0 === e.length ? -1 : g(t, e, n, i, o); + if ("number" == typeof e) + return ( + (e &= 255), + "function" == typeof Uint8Array.prototype.indexOf + ? o + ? Uint8Array.prototype.indexOf.call(t, e, n) + : Uint8Array.prototype.lastIndexOf.call(t, e, n) + : g(t, [e], n, i, o) + ); + throw new TypeError("val must be string, number or Buffer"); + } + function g(t, r, e, n, i) { + var o, + f = 1, + u = t.length, + s = r.length; + if ( + void 0 !== n && + ("ucs2" === (n = String(n).toLowerCase()) || + "ucs-2" === n || + "utf16le" === n || + "utf-16le" === n) + ) { + if (t.length < 2 || r.length < 2) return -1; + (f = 2), (u /= 2), (s /= 2), (e /= 2); + } + function h(t, r) { + return 1 === f ? t[r] : t.readUInt16BE(r * f); + } + if (i) { + var a = -1; + for (o = e; o < u; o++) + if (h(t, o) === h(r, -1 === a ? 0 : o - a)) { + if ((-1 === a && (a = o), o - a + 1 === s)) return a * f; + } else -1 !== a && (o -= o - a), (a = -1); + } else + for (e + s > u && (e = u - s), o = e; o >= 0; o--) { + for (var c = !0, p = 0; p < s; p++) + if (h(t, o + p) !== h(r, p)) { + c = !1; + break; + } + if (c) return o; + } + return -1; + } + function w(t, r, e, n) { + e = Number(e) || 0; + var i = t.length - e; + n ? (n = Number(n)) > i && (n = i) : (n = i); + var o = r.length; + n > o / 2 && (n = o / 2); + for (var f = 0; f < n; ++f) { + var u = parseInt(r.substr(2 * f, 2), 16); + if (F(u)) return f; + t[e + f] = u; + } + return f; + } + function d(t, r, e, n) { + return $(P(r, t.length - e), t, e, n); + } + function b(t, r, e, n) { + return $( + (function (t) { + for (var r = [], e = 0; e < t.length; ++e) + r.push(255 & t.charCodeAt(e)); + return r; + })(r), + t, + e, + n + ); + } + function m(t, r, e, n) { + return b(t, r, e, n); + } + function E(t, r, e, n) { + return $(k(r), t, e, n); + } + function v(t, r, e, n) { + return $( + (function (t, r) { + for ( + var e, n, i, o = [], f = 0; + f < t.length && !((r -= 2) < 0); + ++f + ) + (e = t.charCodeAt(f)), + (n = e >> 8), + (i = e % 256), + o.push(i), + o.push(n); + return o; + })(r, t.length - e), + t, + e, + n + ); + } + function B(t, r, e) { + return 0 === r && e === t.length + ? n.fromByteArray(t) + : n.fromByteArray(t.slice(r, e)); + } + function A(t, r, e) { + e = Math.min(t.length, e); + for (var n = [], i = r; i < e; ) { + var o, + f, + u, + s, + h = t[i], + a = null, + c = h > 239 ? 4 : h > 223 ? 3 : h > 191 ? 2 : 1; + if (i + c <= e) + switch (c) { + case 1: + h < 128 && (a = h); + break; + case 2: + 128 == (192 & (o = t[i + 1])) && + (s = ((31 & h) << 6) | (63 & o)) > 127 && + (a = s); + break; + case 3: + (o = t[i + 1]), + (f = t[i + 2]), + 128 == (192 & o) && + 128 == (192 & f) && + (s = ((15 & h) << 12) | ((63 & o) << 6) | (63 & f)) > + 2047 && + (s < 55296 || s > 57343) && + (a = s); + break; + case 4: + (o = t[i + 1]), + (f = t[i + 2]), + (u = t[i + 3]), + 128 == (192 & o) && + 128 == (192 & f) && + 128 == (192 & u) && + (s = + ((15 & h) << 18) | + ((63 & o) << 12) | + ((63 & f) << 6) | + (63 & u)) > 65535 && + s < 1114112 && + (a = s); + } + null === a + ? ((a = 65533), (c = 1)) + : a > 65535 && + ((a -= 65536), + n.push(((a >>> 10) & 1023) | 55296), + (a = 56320 | (1023 & a))), + n.push(a), + (i += c); + } + return (function (t) { + var r = t.length; + if (r <= I) return String.fromCharCode.apply(String, t); + var e = "", + n = 0; + for (; n < r; ) + e += String.fromCharCode.apply(String, t.slice(n, (n += I))); + return e; + })(n); + } + (e.kMaxLength = o), + (r.TYPED_ARRAY_SUPPORT = (function () { + try { + var t = new Uint8Array(1); + return ( + (t.__proto__ = { + __proto__: Uint8Array.prototype, + foo: function () { + return 42; + }, + }), + 42 === t.foo() + ); + } catch (t) { + return !1; + } + })()), + r.TYPED_ARRAY_SUPPORT || + "undefined" == typeof console || + "function" != typeof console.error || + console.error( + "This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support." + ), + Object.defineProperty(r.prototype, "parent", { + enumerable: !0, + get: function () { + if (r.isBuffer(this)) return this.buffer; + }, + }), + Object.defineProperty(r.prototype, "offset", { + enumerable: !0, + get: function () { + if (r.isBuffer(this)) return this.byteOffset; + }, + }), + "undefined" != typeof Symbol && + null != Symbol.species && + r[Symbol.species] === r && + Object.defineProperty(r, Symbol.species, { + value: null, + configurable: !0, + enumerable: !1, + writable: !1, + }), + (r.poolSize = 8192), + (r.from = function (t, r, e) { + return u(t, r, e); + }), + (r.prototype.__proto__ = Uint8Array.prototype), + (r.__proto__ = Uint8Array), + (r.alloc = function (t, r, e) { + return (function (t, r, e) { + return ( + s(t), + t <= 0 + ? f(t) + : void 0 !== r + ? "string" == typeof e + ? f(t).fill(r, e) + : f(t).fill(r) + : f(t) + ); + })(t, r, e); + }), + (r.allocUnsafe = function (t) { + return h(t); + }), + (r.allocUnsafeSlow = function (t) { + return h(t); + }), + (r.isBuffer = function (t) { + return null != t && !0 === t._isBuffer && t !== r.prototype; + }), + (r.compare = function (t, e) { + if ( + (j(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), + j(e, Uint8Array) && (e = r.from(e, e.offset, e.byteLength)), + !r.isBuffer(t) || !r.isBuffer(e)) + ) + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ); + if (t === e) return 0; + for ( + var n = t.length, i = e.length, o = 0, f = Math.min(n, i); + o < f; + ++o + ) + if (t[o] !== e[o]) { + (n = t[o]), (i = e[o]); + break; + } + return n < i ? -1 : i < n ? 1 : 0; + }), + (r.isEncoding = function (t) { + switch (String(t).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return !0; + default: + return !1; + } + }), + (r.concat = function (t, e) { + if (!Array.isArray(t)) + throw new TypeError( + '"list" argument must be an Array of Buffers' + ); + if (0 === t.length) return r.alloc(0); + var n; + if (void 0 === e) + for (e = 0, n = 0; n < t.length; ++n) e += t[n].length; + var i = r.allocUnsafe(e), + o = 0; + for (n = 0; n < t.length; ++n) { + var f = t[n]; + if ((j(f, Uint8Array) && (f = r.from(f)), !r.isBuffer(f))) + throw new TypeError( + '"list" argument must be an Array of Buffers' + ); + f.copy(i, o), (o += f.length); + } + return i; + }), + (r.byteLength = p), + (r.prototype._isBuffer = !0), + (r.prototype.swap16 = function () { + var t = this.length; + if (t % 2 != 0) + throw new RangeError( + "Buffer size must be a multiple of 16-bits" + ); + for (var r = 0; r < t; r += 2) l(this, r, r + 1); + return this; + }), + (r.prototype.swap32 = function () { + var t = this.length; + if (t % 4 != 0) + throw new RangeError( + "Buffer size must be a multiple of 32-bits" + ); + for (var r = 0; r < t; r += 4) + l(this, r, r + 3), l(this, r + 1, r + 2); + return this; + }), + (r.prototype.swap64 = function () { + var t = this.length; + if (t % 8 != 0) + throw new RangeError( + "Buffer size must be a multiple of 64-bits" + ); + for (var r = 0; r < t; r += 8) + l(this, r, r + 7), + l(this, r + 1, r + 6), + l(this, r + 2, r + 5), + l(this, r + 3, r + 4); + return this; + }), + (r.prototype.toString = function () { + var t = this.length; + return 0 === t + ? "" + : 0 === arguments.length + ? A(this, 0, t) + : function (t, r, e) { + var n = !1; + if (((void 0 === r || r < 0) && (r = 0), r > this.length)) + return ""; + if ( + ((void 0 === e || e > this.length) && (e = this.length), + e <= 0) + ) + return ""; + if ((e >>>= 0) <= (r >>>= 0)) return ""; + for (t || (t = "utf8"); ; ) + switch (t) { + case "hex": + return T(this, r, e); + case "utf8": + case "utf-8": + return A(this, r, e); + case "ascii": + return U(this, r, e); + case "latin1": + case "binary": + return R(this, r, e); + case "base64": + return B(this, r, e); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return _(this, r, e); + default: + if (n) + throw new TypeError("Unknown encoding: " + t); + (t = (t + "").toLowerCase()), (n = !0); + } + }.apply(this, arguments); + }), + (r.prototype.toLocaleString = r.prototype.toString), + (r.prototype.equals = function (t) { + if (!r.isBuffer(t)) + throw new TypeError("Argument must be a Buffer"); + return this === t || 0 === r.compare(this, t); + }), + (r.prototype.inspect = function () { + var t = "", + r = e.INSPECT_MAX_BYTES; + return ( + (t = this.toString("hex", 0, r) + .replace(/(.{2})/g, "$1 ") + .trim()), + this.length > r && (t += " ... "), + "" + ); + }), + (r.prototype.compare = function (t, e, n, i, o) { + if ( + (j(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), + !r.isBuffer(t)) + ) + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. Received type ' + + typeof t + ); + if ( + (void 0 === e && (e = 0), + void 0 === n && (n = t ? t.length : 0), + void 0 === i && (i = 0), + void 0 === o && (o = this.length), + e < 0 || n > t.length || i < 0 || o > this.length) + ) + throw new RangeError("out of range index"); + if (i >= o && e >= n) return 0; + if (i >= o) return -1; + if (e >= n) return 1; + if (this === t) return 0; + for ( + var f = (o >>>= 0) - (i >>>= 0), + u = (n >>>= 0) - (e >>>= 0), + s = Math.min(f, u), + h = this.slice(i, o), + a = t.slice(e, n), + c = 0; + c < s; + ++c + ) + if (h[c] !== a[c]) { + (f = h[c]), (u = a[c]); + break; + } + return f < u ? -1 : u < f ? 1 : 0; + }), + (r.prototype.includes = function (t, r, e) { + return -1 !== this.indexOf(t, r, e); + }), + (r.prototype.indexOf = function (t, r, e) { + return y(this, t, r, e, !0); + }), + (r.prototype.lastIndexOf = function (t, r, e) { + return y(this, t, r, e, !1); + }), + (r.prototype.write = function (t, r, e, n) { + if (void 0 === r) (n = "utf8"), (e = this.length), (r = 0); + else if (void 0 === e && "string" == typeof r) + (n = r), (e = this.length), (r = 0); + else { + if (!isFinite(r)) + throw new Error( + "Buffer.write(string, encoding, offset[, length]) is no longer supported" + ); + (r >>>= 0), + isFinite(e) + ? ((e >>>= 0), void 0 === n && (n = "utf8")) + : ((n = e), (e = void 0)); + } + var i = this.length - r; + if ( + ((void 0 === e || e > i) && (e = i), + (t.length > 0 && (e < 0 || r < 0)) || r > this.length) + ) + throw new RangeError( + "Attempt to write outside buffer bounds" + ); + n || (n = "utf8"); + for (var o = !1; ; ) + switch (n) { + case "hex": + return w(this, t, r, e); + case "utf8": + case "utf-8": + return d(this, t, r, e); + case "ascii": + return b(this, t, r, e); + case "latin1": + case "binary": + return m(this, t, r, e); + case "base64": + return E(this, t, r, e); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return v(this, t, r, e); + default: + if (o) throw new TypeError("Unknown encoding: " + n); + (n = ("" + n).toLowerCase()), (o = !0); + } + }), + (r.prototype.toJSON = function () { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0), + }; + }); + var I = 4096; + function U(t, r, e) { + var n = ""; + e = Math.min(t.length, e); + for (var i = r; i < e; ++i) n += String.fromCharCode(127 & t[i]); + return n; + } + function R(t, r, e) { + var n = ""; + e = Math.min(t.length, e); + for (var i = r; i < e; ++i) n += String.fromCharCode(t[i]); + return n; + } + function T(t, r, e) { + var n = t.length; + (!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n); + for (var i = "", o = r; o < e; ++o) i += N(t[o]); + return i; + } + function _(t, r, e) { + for (var n = t.slice(r, e), i = "", o = 0; o < n.length; o += 2) + i += String.fromCharCode(n[o] + 256 * n[o + 1]); + return i; + } + function L(t, r, e) { + if (t % 1 != 0 || t < 0) + throw new RangeError("offset is not uint"); + if (t + r > e) + throw new RangeError("Trying to access beyond buffer length"); + } + function S(t, e, n, i, o, f) { + if (!r.isBuffer(t)) + throw new TypeError( + '"buffer" argument must be a Buffer instance' + ); + if (e > o || e < f) + throw new RangeError('"value" argument is out of bounds'); + if (n + i > t.length) throw new RangeError("Index out of range"); + } + function O(t, r, e, n, i, o) { + if (e + n > t.length) throw new RangeError("Index out of range"); + if (e < 0) throw new RangeError("Index out of range"); + } + function C(t, r, e, n, o) { + return ( + (r = +r), + (e >>>= 0), + o || O(t, 0, e, 4), + i.write(t, r, e, n, 23, 4), + e + 4 + ); + } + function x(t, r, e, n, o) { + return ( + (r = +r), + (e >>>= 0), + o || O(t, 0, e, 8), + i.write(t, r, e, n, 52, 8), + e + 8 + ); + } + (r.prototype.slice = function (t, e) { + var n = this.length; + (t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), + (e = void 0 === e ? n : ~~e) < 0 + ? (e += n) < 0 && (e = 0) + : e > n && (e = n), + e < t && (e = t); + var i = this.subarray(t, e); + return (i.__proto__ = r.prototype), i; + }), + (r.prototype.readUIntLE = function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || L(t, r, this.length); + for (var n = this[t], i = 1, o = 0; ++o < r && (i *= 256); ) + n += this[t + o] * i; + return n; + }), + (r.prototype.readUIntBE = function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || L(t, r, this.length); + for (var n = this[t + --r], i = 1; r > 0 && (i *= 256); ) + n += this[t + --r] * i; + return n; + }), + (r.prototype.readUInt8 = function (t, r) { + return (t >>>= 0), r || L(t, 1, this.length), this[t]; + }), + (r.prototype.readUInt16LE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 2, this.length), + this[t] | (this[t + 1] << 8) + ); + }), + (r.prototype.readUInt16BE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 2, this.length), + (this[t] << 8) | this[t + 1] + ); + }), + (r.prototype.readUInt32LE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 4, this.length), + (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + + 16777216 * this[t + 3] + ); + }), + (r.prototype.readUInt32BE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 4, this.length), + 16777216 * this[t] + + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]) + ); + }), + (r.prototype.readIntLE = function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || L(t, r, this.length); + for (var n = this[t], i = 1, o = 0; ++o < r && (i *= 256); ) + n += this[t + o] * i; + return n >= (i *= 128) && (n -= Math.pow(2, 8 * r)), n; + }), + (r.prototype.readIntBE = function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || L(t, r, this.length); + for (var n = r, i = 1, o = this[t + --n]; n > 0 && (i *= 256); ) + o += this[t + --n] * i; + return o >= (i *= 128) && (o -= Math.pow(2, 8 * r)), o; + }), + (r.prototype.readInt8 = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 1, this.length), + 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t] + ); + }), + (r.prototype.readInt16LE = function (t, r) { + (t >>>= 0), r || L(t, 2, this.length); + var e = this[t] | (this[t + 1] << 8); + return 32768 & e ? 4294901760 | e : e; + }), + (r.prototype.readInt16BE = function (t, r) { + (t >>>= 0), r || L(t, 2, this.length); + var e = this[t + 1] | (this[t] << 8); + return 32768 & e ? 4294901760 | e : e; + }), + (r.prototype.readInt32LE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 4, this.length), + this[t] | + (this[t + 1] << 8) | + (this[t + 2] << 16) | + (this[t + 3] << 24) + ); + }), + (r.prototype.readInt32BE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 4, this.length), + (this[t] << 24) | + (this[t + 1] << 16) | + (this[t + 2] << 8) | + this[t + 3] + ); + }), + (r.prototype.readFloatLE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 4, this.length), + i.read(this, t, !0, 23, 4) + ); + }), + (r.prototype.readFloatBE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 4, this.length), + i.read(this, t, !1, 23, 4) + ); + }), + (r.prototype.readDoubleLE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 8, this.length), + i.read(this, t, !0, 52, 8) + ); + }), + (r.prototype.readDoubleBE = function (t, r) { + return ( + (t >>>= 0), + r || L(t, 8, this.length), + i.read(this, t, !1, 52, 8) + ); + }), + (r.prototype.writeUIntLE = function (t, r, e, n) { + ((t = +t), (r >>>= 0), (e >>>= 0), n) || + S(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); + var i = 1, + o = 0; + for (this[r] = 255 & t; ++o < e && (i *= 256); ) + this[r + o] = (t / i) & 255; + return r + e; + }), + (r.prototype.writeUIntBE = function (t, r, e, n) { + ((t = +t), (r >>>= 0), (e >>>= 0), n) || + S(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); + var i = e - 1, + o = 1; + for (this[r + i] = 255 & t; --i >= 0 && (o *= 256); ) + this[r + i] = (t / o) & 255; + return r + e; + }), + (r.prototype.writeUInt8 = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 1, 255, 0), + (this[r] = 255 & t), + r + 1 + ); + }), + (r.prototype.writeUInt16LE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 2, 65535, 0), + (this[r] = 255 & t), + (this[r + 1] = t >>> 8), + r + 2 + ); + }), + (r.prototype.writeUInt16BE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 2, 65535, 0), + (this[r] = t >>> 8), + (this[r + 1] = 255 & t), + r + 2 + ); + }), + (r.prototype.writeUInt32LE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 4, 4294967295, 0), + (this[r + 3] = t >>> 24), + (this[r + 2] = t >>> 16), + (this[r + 1] = t >>> 8), + (this[r] = 255 & t), + r + 4 + ); + }), + (r.prototype.writeUInt32BE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 4, 4294967295, 0), + (this[r] = t >>> 24), + (this[r + 1] = t >>> 16), + (this[r + 2] = t >>> 8), + (this[r + 3] = 255 & t), + r + 4 + ); + }), + (r.prototype.writeIntLE = function (t, r, e, n) { + if (((t = +t), (r >>>= 0), !n)) { + var i = Math.pow(2, 8 * e - 1); + S(this, t, r, e, i - 1, -i); + } + var o = 0, + f = 1, + u = 0; + for (this[r] = 255 & t; ++o < e && (f *= 256); ) + t < 0 && 0 === u && 0 !== this[r + o - 1] && (u = 1), + (this[r + o] = (((t / f) >> 0) - u) & 255); + return r + e; + }), + (r.prototype.writeIntBE = function (t, r, e, n) { + if (((t = +t), (r >>>= 0), !n)) { + var i = Math.pow(2, 8 * e - 1); + S(this, t, r, e, i - 1, -i); + } + var o = e - 1, + f = 1, + u = 0; + for (this[r + o] = 255 & t; --o >= 0 && (f *= 256); ) + t < 0 && 0 === u && 0 !== this[r + o + 1] && (u = 1), + (this[r + o] = (((t / f) >> 0) - u) & 255); + return r + e; + }), + (r.prototype.writeInt8 = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 1, 127, -128), + t < 0 && (t = 255 + t + 1), + (this[r] = 255 & t), + r + 1 + ); + }), + (r.prototype.writeInt16LE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 2, 32767, -32768), + (this[r] = 255 & t), + (this[r + 1] = t >>> 8), + r + 2 + ); + }), + (r.prototype.writeInt16BE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 2, 32767, -32768), + (this[r] = t >>> 8), + (this[r + 1] = 255 & t), + r + 2 + ); + }), + (r.prototype.writeInt32LE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 4, 2147483647, -2147483648), + (this[r] = 255 & t), + (this[r + 1] = t >>> 8), + (this[r + 2] = t >>> 16), + (this[r + 3] = t >>> 24), + r + 4 + ); + }), + (r.prototype.writeInt32BE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || S(this, t, r, 4, 2147483647, -2147483648), + t < 0 && (t = 4294967295 + t + 1), + (this[r] = t >>> 24), + (this[r + 1] = t >>> 16), + (this[r + 2] = t >>> 8), + (this[r + 3] = 255 & t), + r + 4 + ); + }), + (r.prototype.writeFloatLE = function (t, r, e) { + return C(this, t, r, !0, e); + }), + (r.prototype.writeFloatBE = function (t, r, e) { + return C(this, t, r, !1, e); + }), + (r.prototype.writeDoubleLE = function (t, r, e) { + return x(this, t, r, !0, e); + }), + (r.prototype.writeDoubleBE = function (t, r, e) { + return x(this, t, r, !1, e); + }), + (r.prototype.copy = function (t, e, n, i) { + if (!r.isBuffer(t)) + throw new TypeError("argument should be a Buffer"); + if ( + (n || (n = 0), + i || 0 === i || (i = this.length), + e >= t.length && (e = t.length), + e || (e = 0), + i > 0 && i < n && (i = n), + i === n) + ) + return 0; + if (0 === t.length || 0 === this.length) return 0; + if (e < 0) throw new RangeError("targetStart out of bounds"); + if (n < 0 || n >= this.length) + throw new RangeError("Index out of range"); + if (i < 0) throw new RangeError("sourceEnd out of bounds"); + i > this.length && (i = this.length), + t.length - e < i - n && (i = t.length - e + n); + var o = i - n; + if ( + this === t && + "function" == typeof Uint8Array.prototype.copyWithin + ) + this.copyWithin(e, n, i); + else if (this === t && n < e && e < i) + for (var f = o - 1; f >= 0; --f) t[f + e] = this[f + n]; + else Uint8Array.prototype.set.call(t, this.subarray(n, i), e); + return o; + }), + (r.prototype.fill = function (t, e, n, i) { + if ("string" == typeof t) { + if ( + ("string" == typeof e + ? ((i = e), (e = 0), (n = this.length)) + : "string" == typeof n && ((i = n), (n = this.length)), + void 0 !== i && "string" != typeof i) + ) + throw new TypeError("encoding must be a string"); + if ("string" == typeof i && !r.isEncoding(i)) + throw new TypeError("Unknown encoding: " + i); + if (1 === t.length) { + var o = t.charCodeAt(0); + (("utf8" === i && o < 128) || "latin1" === i) && (t = o); + } + } else "number" == typeof t && (t &= 255); + if (e < 0 || this.length < e || this.length < n) + throw new RangeError("Out of range index"); + if (n <= e) return this; + var f; + if ( + ((e >>>= 0), + (n = void 0 === n ? this.length : n >>> 0), + t || (t = 0), + "number" == typeof t) + ) + for (f = e; f < n; ++f) this[f] = t; + else { + var u = r.isBuffer(t) ? t : r.from(t, i), + s = u.length; + if (0 === s) + throw new TypeError( + 'The value "' + t + '" is invalid for argument "value"' + ); + for (f = 0; f < n - e; ++f) this[f + e] = u[f % s]; + } + return this; + }); + var M = /[^+\/0-9A-Za-z-_]/g; + function N(t) { + return t < 16 ? "0" + t.toString(16) : t.toString(16); + } + function P(t, r) { + var e; + r = r || 1 / 0; + for (var n = t.length, i = null, o = [], f = 0; f < n; ++f) { + if ((e = t.charCodeAt(f)) > 55295 && e < 57344) { + if (!i) { + if (e > 56319) { + (r -= 3) > -1 && o.push(239, 191, 189); + continue; + } + if (f + 1 === n) { + (r -= 3) > -1 && o.push(239, 191, 189); + continue; + } + i = e; + continue; + } + if (e < 56320) { + (r -= 3) > -1 && o.push(239, 191, 189), (i = e); + continue; + } + e = 65536 + (((i - 55296) << 10) | (e - 56320)); + } else i && (r -= 3) > -1 && o.push(239, 191, 189); + if (((i = null), e < 128)) { + if ((r -= 1) < 0) break; + o.push(e); + } else if (e < 2048) { + if ((r -= 2) < 0) break; + o.push((e >> 6) | 192, (63 & e) | 128); + } else if (e < 65536) { + if ((r -= 3) < 0) break; + o.push( + (e >> 12) | 224, + ((e >> 6) & 63) | 128, + (63 & e) | 128 + ); + } else { + if (!(e < 1114112)) throw new Error("Invalid code point"); + if ((r -= 4) < 0) break; + o.push( + (e >> 18) | 240, + ((e >> 12) & 63) | 128, + ((e >> 6) & 63) | 128, + (63 & e) | 128 + ); + } + } + return o; + } + function k(t) { + return n.toByteArray( + (function (t) { + if ( + (t = (t = t.split("=")[0]).trim().replace(M, "")).length < 2 + ) + return ""; + for (; t.length % 4 != 0; ) t += "="; + return t; + })(t) + ); + } + function $(t, r, e, n) { + for ( + var i = 0; + i < n && !(i + e >= r.length || i >= t.length); + ++i + ) + r[i + e] = t[i]; + return i; + } + function j(t, r) { + return ( + t instanceof r || + (null != t && + null != t.constructor && + null != t.constructor.name && + t.constructor.name === r.name) + ); + } + function F(t) { + return t != t; + } + }).call(this, t("buffer").Buffer); + }, + { "base64-js": 1, buffer: 2, ieee754: 3 }, + ], + 3: [ + function (t, r, e) { + (e.read = function (t, r, e, n, i) { + var o, + f, + u = 8 * i - n - 1, + s = (1 << u) - 1, + h = s >> 1, + a = -7, + c = e ? i - 1 : 0, + p = e ? -1 : 1, + l = t[r + c]; + for ( + c += p, o = l & ((1 << -a) - 1), l >>= -a, a += u; + a > 0; + o = 256 * o + t[r + c], c += p, a -= 8 + ); + for ( + f = o & ((1 << -a) - 1), o >>= -a, a += n; + a > 0; + f = 256 * f + t[r + c], c += p, a -= 8 + ); + if (0 === o) o = 1 - h; + else { + if (o === s) return f ? NaN : (1 / 0) * (l ? -1 : 1); + (f += Math.pow(2, n)), (o -= h); + } + return (l ? -1 : 1) * f * Math.pow(2, o - n); + }), + (e.write = function (t, r, e, n, i, o) { + var f, + u, + s, + h = 8 * o - i - 1, + a = (1 << h) - 1, + c = a >> 1, + p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + l = n ? 0 : o - 1, + y = n ? 1 : -1, + g = r < 0 || (0 === r && 1 / r < 0) ? 1 : 0; + for ( + r = Math.abs(r), + isNaN(r) || r === 1 / 0 + ? ((u = isNaN(r) ? 1 : 0), (f = a)) + : ((f = Math.floor(Math.log(r) / Math.LN2)), + r * (s = Math.pow(2, -f)) < 1 && (f--, (s *= 2)), + (r += f + c >= 1 ? p / s : p * Math.pow(2, 1 - c)) * s >= + 2 && (f++, (s /= 2)), + f + c >= a + ? ((u = 0), (f = a)) + : f + c >= 1 + ? ((u = (r * s - 1) * Math.pow(2, i)), (f += c)) + : ((u = r * Math.pow(2, c - 1) * Math.pow(2, i)), + (f = 0))); + i >= 8; + t[e + l] = 255 & u, l += y, u /= 256, i -= 8 + ); + for ( + f = (f << i) | u, h += i; + h > 0; + t[e + l] = 255 & f, l += y, f /= 256, h -= 8 + ); + t[e + l - y] |= 128 * g; + }); + }, + {}, + ], + 4: [ + function (t, r, e) { + (function (r) { + "use strict"; + const n = t("base64-js"), + i = t("ieee754"), + o = + "function" == typeof Symbol && "function" == typeof Symbol.for + ? Symbol.for("nodejs.util.inspect.custom") + : null; + (e.Buffer = r), + (e.SlowBuffer = function (t) { + +t != t && (t = 0); + return r.alloc(+t); + }), + (e.INSPECT_MAX_BYTES = 50); + const f = 2147483647; + function u(t) { + if (t > f) + throw new RangeError( + 'The value "' + t + '" is invalid for option "size"' + ); + const e = new Uint8Array(t); + return Object.setPrototypeOf(e, r.prototype), e; + } + function r(t, r, e) { + if ("number" == typeof t) { + if ("string" == typeof r) + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ); + return a(t); + } + return s(t, r, e); + } + function s(t, e, n) { + if ("string" == typeof t) + return (function (t, e) { + ("string" == typeof e && "" !== e) || (e = "utf8"); + if (!r.isEncoding(e)) + throw new TypeError("Unknown encoding: " + e); + const n = 0 | y(t, e); + let i = u(n); + const o = i.write(t, e); + o !== n && (i = i.slice(0, o)); + return i; + })(t, e); + if (ArrayBuffer.isView(t)) + return (function (t) { + if (W(t, Uint8Array)) { + const r = new Uint8Array(t); + return p(r.buffer, r.byteOffset, r.byteLength); + } + return c(t); + })(t); + if (null == t) + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + + typeof t + ); + if (W(t, ArrayBuffer) || (t && W(t.buffer, ArrayBuffer))) + return p(t, e, n); + if ( + "undefined" != typeof SharedArrayBuffer && + (W(t, SharedArrayBuffer) || + (t && W(t.buffer, SharedArrayBuffer))) + ) + return p(t, e, n); + if ("number" == typeof t) + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ); + const i = t.valueOf && t.valueOf(); + if (null != i && i !== t) return r.from(i, e, n); + const o = (function (t) { + if (r.isBuffer(t)) { + const r = 0 | l(t.length), + e = u(r); + return 0 === e.length ? e : (t.copy(e, 0, 0, r), e); + } + if (void 0 !== t.length) + return "number" != typeof t.length || X(t.length) + ? u(0) + : c(t); + if ("Buffer" === t.type && Array.isArray(t.data)) + return c(t.data); + })(t); + if (o) return o; + if ( + "undefined" != typeof Symbol && + null != Symbol.toPrimitive && + "function" == typeof t[Symbol.toPrimitive] + ) + return r.from(t[Symbol.toPrimitive]("string"), e, n); + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + + typeof t + ); + } + function h(t) { + if ("number" != typeof t) + throw new TypeError('"size" argument must be of type number'); + if (t < 0) + throw new RangeError( + 'The value "' + t + '" is invalid for option "size"' + ); + } + function a(t) { + return h(t), u(t < 0 ? 0 : 0 | l(t)); + } + function c(t) { + const r = t.length < 0 ? 0 : 0 | l(t.length), + e = u(r); + for (let n = 0; n < r; n += 1) e[n] = 255 & t[n]; + return e; + } + function p(t, e, n) { + if (e < 0 || t.byteLength < e) + throw new RangeError('"offset" is outside of buffer bounds'); + if (t.byteLength < e + (n || 0)) + throw new RangeError('"length" is outside of buffer bounds'); + let i; + return ( + (i = + void 0 === e && void 0 === n + ? new Uint8Array(t) + : void 0 === n + ? new Uint8Array(t, e) + : new Uint8Array(t, e, n)), + Object.setPrototypeOf(i, r.prototype), + i + ); + } + function l(t) { + if (t >= f) + throw new RangeError( + "Attempt to allocate Buffer larger than maximum size: 0x" + + f.toString(16) + + " bytes" + ); + return 0 | t; + } + function y(t, e) { + if (r.isBuffer(t)) return t.length; + if (ArrayBuffer.isView(t) || W(t, ArrayBuffer)) + return t.byteLength; + if ("string" != typeof t) + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + + typeof t + ); + const n = t.length, + i = arguments.length > 2 && !0 === arguments[2]; + if (!i && 0 === n) return 0; + let o = !1; + for (;;) + switch (e) { + case "ascii": + case "latin1": + case "binary": + return n; + case "utf8": + case "utf-8": + return q(t).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return 2 * n; + case "hex": + return n >>> 1; + case "base64": + return G(t).length; + default: + if (o) return i ? -1 : q(t).length; + (e = ("" + e).toLowerCase()), (o = !0); + } + } + function g(t, r, e) { + const n = t[r]; + (t[r] = t[e]), (t[e] = n); + } + function w(t, e, n, i, o) { + if (0 === t.length) return -1; + if ( + ("string" == typeof n + ? ((i = n), (n = 0)) + : n > 2147483647 + ? (n = 2147483647) + : n < -2147483648 && (n = -2147483648), + X((n = +n)) && (n = o ? 0 : t.length - 1), + n < 0 && (n = t.length + n), + n >= t.length) + ) { + if (o) return -1; + n = t.length - 1; + } else if (n < 0) { + if (!o) return -1; + n = 0; + } + if (("string" == typeof e && (e = r.from(e, i)), r.isBuffer(e))) + return 0 === e.length ? -1 : d(t, e, n, i, o); + if ("number" == typeof e) + return ( + (e &= 255), + "function" == typeof Uint8Array.prototype.indexOf + ? o + ? Uint8Array.prototype.indexOf.call(t, e, n) + : Uint8Array.prototype.lastIndexOf.call(t, e, n) + : d(t, [e], n, i, o) + ); + throw new TypeError("val must be string, number or Buffer"); + } + function d(t, r, e, n, i) { + let o, + f = 1, + u = t.length, + s = r.length; + if ( + void 0 !== n && + ("ucs2" === (n = String(n).toLowerCase()) || + "ucs-2" === n || + "utf16le" === n || + "utf-16le" === n) + ) { + if (t.length < 2 || r.length < 2) return -1; + (f = 2), (u /= 2), (s /= 2), (e /= 2); + } + function h(t, r) { + return 1 === f ? t[r] : t.readUInt16BE(r * f); + } + if (i) { + let n = -1; + for (o = e; o < u; o++) + if (h(t, o) === h(r, -1 === n ? 0 : o - n)) { + if ((-1 === n && (n = o), o - n + 1 === s)) return n * f; + } else -1 !== n && (o -= o - n), (n = -1); + } else + for (e + s > u && (e = u - s), o = e; o >= 0; o--) { + let e = !0; + for (let n = 0; n < s; n++) + if (h(t, o + n) !== h(r, n)) { + e = !1; + break; + } + if (e) return o; + } + return -1; + } + function b(t, r, e, n) { + e = Number(e) || 0; + const i = t.length - e; + n ? (n = Number(n)) > i && (n = i) : (n = i); + const o = r.length; + let f; + for (n > o / 2 && (n = o / 2), f = 0; f < n; ++f) { + const n = parseInt(r.substr(2 * f, 2), 16); + if (X(n)) return f; + t[e + f] = n; + } + return f; + } + function m(t, r, e, n) { + return V(q(r, t.length - e), t, e, n); + } + function E(t, r, e, n) { + return V( + (function (t) { + const r = []; + for (let e = 0; e < t.length; ++e) + r.push(255 & t.charCodeAt(e)); + return r; + })(r), + t, + e, + n + ); + } + function v(t, r, e, n) { + return V(G(r), t, e, n); + } + function B(t, r, e, n) { + return V( + (function (t, r) { + let e, n, i; + const o = []; + for (let f = 0; f < t.length && !((r -= 2) < 0); ++f) + (e = t.charCodeAt(f)), + (n = e >> 8), + (i = e % 256), + o.push(i), + o.push(n); + return o; + })(r, t.length - e), + t, + e, + n + ); + } + function A(t, r, e) { + return 0 === r && e === t.length + ? n.fromByteArray(t) + : n.fromByteArray(t.slice(r, e)); + } + function I(t, r, e) { + e = Math.min(t.length, e); + const n = []; + let i = r; + for (; i < e; ) { + const r = t[i]; + let o = null, + f = r > 239 ? 4 : r > 223 ? 3 : r > 191 ? 2 : 1; + if (i + f <= e) { + let e, n, u, s; + switch (f) { + case 1: + r < 128 && (o = r); + break; + case 2: + 128 == (192 & (e = t[i + 1])) && + (s = ((31 & r) << 6) | (63 & e)) > 127 && + (o = s); + break; + case 3: + (e = t[i + 1]), + (n = t[i + 2]), + 128 == (192 & e) && + 128 == (192 & n) && + (s = ((15 & r) << 12) | ((63 & e) << 6) | (63 & n)) > + 2047 && + (s < 55296 || s > 57343) && + (o = s); + break; + case 4: + (e = t[i + 1]), + (n = t[i + 2]), + (u = t[i + 3]), + 128 == (192 & e) && + 128 == (192 & n) && + 128 == (192 & u) && + (s = + ((15 & r) << 18) | + ((63 & e) << 12) | + ((63 & n) << 6) | + (63 & u)) > 65535 && + s < 1114112 && + (o = s); + } + } + null === o + ? ((o = 65533), (f = 1)) + : o > 65535 && + ((o -= 65536), + n.push(((o >>> 10) & 1023) | 55296), + (o = 56320 | (1023 & o))), + n.push(o), + (i += f); + } + return (function (t) { + const r = t.length; + if (r <= U) return String.fromCharCode.apply(String, t); + let e = "", + n = 0; + for (; n < r; ) + e += String.fromCharCode.apply(String, t.slice(n, (n += U))); + return e; + })(n); + } + (e.kMaxLength = f), + (r.TYPED_ARRAY_SUPPORT = (function () { + try { + const t = new Uint8Array(1), + r = { + foo: function () { + return 42; + }, + }; + return ( + Object.setPrototypeOf(r, Uint8Array.prototype), + Object.setPrototypeOf(t, r), + 42 === t.foo() + ); + } catch (t) { + return !1; + } + })()), + r.TYPED_ARRAY_SUPPORT || + "undefined" == typeof console || + "function" != typeof console.error || + console.error( + "This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support." + ), + Object.defineProperty(r.prototype, "parent", { + enumerable: !0, + get: function () { + if (r.isBuffer(this)) return this.buffer; + }, + }), + Object.defineProperty(r.prototype, "offset", { + enumerable: !0, + get: function () { + if (r.isBuffer(this)) return this.byteOffset; + }, + }), + (r.poolSize = 8192), + (r.from = function (t, r, e) { + return s(t, r, e); + }), + Object.setPrototypeOf(r.prototype, Uint8Array.prototype), + Object.setPrototypeOf(r, Uint8Array), + (r.alloc = function (t, r, e) { + return (function (t, r, e) { + return ( + h(t), + t <= 0 + ? u(t) + : void 0 !== r + ? "string" == typeof e + ? u(t).fill(r, e) + : u(t).fill(r) + : u(t) + ); + })(t, r, e); + }), + (r.allocUnsafe = function (t) { + return a(t); + }), + (r.allocUnsafeSlow = function (t) { + return a(t); + }), + (r.isBuffer = function (t) { + return null != t && !0 === t._isBuffer && t !== r.prototype; + }), + (r.compare = function (t, e) { + if ( + (W(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), + W(e, Uint8Array) && (e = r.from(e, e.offset, e.byteLength)), + !r.isBuffer(t) || !r.isBuffer(e)) + ) + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ); + if (t === e) return 0; + let n = t.length, + i = e.length; + for (let r = 0, o = Math.min(n, i); r < o; ++r) + if (t[r] !== e[r]) { + (n = t[r]), (i = e[r]); + break; + } + return n < i ? -1 : i < n ? 1 : 0; + }), + (r.isEncoding = function (t) { + switch (String(t).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return !0; + default: + return !1; + } + }), + (r.concat = function (t, e) { + if (!Array.isArray(t)) + throw new TypeError( + '"list" argument must be an Array of Buffers' + ); + if (0 === t.length) return r.alloc(0); + let n; + if (void 0 === e) + for (e = 0, n = 0; n < t.length; ++n) e += t[n].length; + const i = r.allocUnsafe(e); + let o = 0; + for (n = 0; n < t.length; ++n) { + let e = t[n]; + if (W(e, Uint8Array)) + o + e.length > i.length + ? (r.isBuffer(e) || (e = r.from(e)), e.copy(i, o)) + : Uint8Array.prototype.set.call(i, e, o); + else { + if (!r.isBuffer(e)) + throw new TypeError( + '"list" argument must be an Array of Buffers' + ); + e.copy(i, o); + } + o += e.length; + } + return i; + }), + (r.byteLength = y), + (r.prototype._isBuffer = !0), + (r.prototype.swap16 = function () { + const t = this.length; + if (t % 2 != 0) + throw new RangeError( + "Buffer size must be a multiple of 16-bits" + ); + for (let r = 0; r < t; r += 2) g(this, r, r + 1); + return this; + }), + (r.prototype.swap32 = function () { + const t = this.length; + if (t % 4 != 0) + throw new RangeError( + "Buffer size must be a multiple of 32-bits" + ); + for (let r = 0; r < t; r += 4) + g(this, r, r + 3), g(this, r + 1, r + 2); + return this; + }), + (r.prototype.swap64 = function () { + const t = this.length; + if (t % 8 != 0) + throw new RangeError( + "Buffer size must be a multiple of 64-bits" + ); + for (let r = 0; r < t; r += 8) + g(this, r, r + 7), + g(this, r + 1, r + 6), + g(this, r + 2, r + 5), + g(this, r + 3, r + 4); + return this; + }), + (r.prototype.toString = function () { + const t = this.length; + return 0 === t + ? "" + : 0 === arguments.length + ? I(this, 0, t) + : function (t, r, e) { + let n = !1; + if (((void 0 === r || r < 0) && (r = 0), r > this.length)) + return ""; + if ( + ((void 0 === e || e > this.length) && (e = this.length), + e <= 0) + ) + return ""; + if ((e >>>= 0) <= (r >>>= 0)) return ""; + for (t || (t = "utf8"); ; ) + switch (t) { + case "hex": + return _(this, r, e); + case "utf8": + case "utf-8": + return I(this, r, e); + case "ascii": + return R(this, r, e); + case "latin1": + case "binary": + return T(this, r, e); + case "base64": + return A(this, r, e); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return L(this, r, e); + default: + if (n) + throw new TypeError("Unknown encoding: " + t); + (t = (t + "").toLowerCase()), (n = !0); + } + }.apply(this, arguments); + }), + (r.prototype.toLocaleString = r.prototype.toString), + (r.prototype.equals = function (t) { + if (!r.isBuffer(t)) + throw new TypeError("Argument must be a Buffer"); + return this === t || 0 === r.compare(this, t); + }), + (r.prototype.inspect = function () { + let t = ""; + const r = e.INSPECT_MAX_BYTES; + return ( + (t = this.toString("hex", 0, r) + .replace(/(.{2})/g, "$1 ") + .trim()), + this.length > r && (t += " ... "), + "" + ); + }), + o && (r.prototype[o] = r.prototype.inspect), + (r.prototype.compare = function (t, e, n, i, o) { + if ( + (W(t, Uint8Array) && (t = r.from(t, t.offset, t.byteLength)), + !r.isBuffer(t)) + ) + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. Received type ' + + typeof t + ); + if ( + (void 0 === e && (e = 0), + void 0 === n && (n = t ? t.length : 0), + void 0 === i && (i = 0), + void 0 === o && (o = this.length), + e < 0 || n > t.length || i < 0 || o > this.length) + ) + throw new RangeError("out of range index"); + if (i >= o && e >= n) return 0; + if (i >= o) return -1; + if (e >= n) return 1; + if (this === t) return 0; + let f = (o >>>= 0) - (i >>>= 0), + u = (n >>>= 0) - (e >>>= 0); + const s = Math.min(f, u), + h = this.slice(i, o), + a = t.slice(e, n); + for (let t = 0; t < s; ++t) + if (h[t] !== a[t]) { + (f = h[t]), (u = a[t]); + break; + } + return f < u ? -1 : u < f ? 1 : 0; + }), + (r.prototype.includes = function (t, r, e) { + return -1 !== this.indexOf(t, r, e); + }), + (r.prototype.indexOf = function (t, r, e) { + return w(this, t, r, e, !0); + }), + (r.prototype.lastIndexOf = function (t, r, e) { + return w(this, t, r, e, !1); + }), + (r.prototype.write = function (t, r, e, n) { + if (void 0 === r) (n = "utf8"), (e = this.length), (r = 0); + else if (void 0 === e && "string" == typeof r) + (n = r), (e = this.length), (r = 0); + else { + if (!isFinite(r)) + throw new Error( + "Buffer.write(string, encoding, offset[, length]) is no longer supported" + ); + (r >>>= 0), + isFinite(e) + ? ((e >>>= 0), void 0 === n && (n = "utf8")) + : ((n = e), (e = void 0)); + } + const i = this.length - r; + if ( + ((void 0 === e || e > i) && (e = i), + (t.length > 0 && (e < 0 || r < 0)) || r > this.length) + ) + throw new RangeError( + "Attempt to write outside buffer bounds" + ); + n || (n = "utf8"); + let o = !1; + for (;;) + switch (n) { + case "hex": + return b(this, t, r, e); + case "utf8": + case "utf-8": + return m(this, t, r, e); + case "ascii": + case "latin1": + case "binary": + return E(this, t, r, e); + case "base64": + return v(this, t, r, e); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return B(this, t, r, e); + default: + if (o) throw new TypeError("Unknown encoding: " + n); + (n = ("" + n).toLowerCase()), (o = !0); + } + }), + (r.prototype.toJSON = function () { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0), + }; + }); + const U = 4096; + function R(t, r, e) { + let n = ""; + e = Math.min(t.length, e); + for (let i = r; i < e; ++i) n += String.fromCharCode(127 & t[i]); + return n; + } + function T(t, r, e) { + let n = ""; + e = Math.min(t.length, e); + for (let i = r; i < e; ++i) n += String.fromCharCode(t[i]); + return n; + } + function _(t, r, e) { + const n = t.length; + (!r || r < 0) && (r = 0), (!e || e < 0 || e > n) && (e = n); + let i = ""; + for (let n = r; n < e; ++n) i += J[t[n]]; + return i; + } + function L(t, r, e) { + const n = t.slice(r, e); + let i = ""; + for (let t = 0; t < n.length - 1; t += 2) + i += String.fromCharCode(n[t] + 256 * n[t + 1]); + return i; + } + function S(t, r, e) { + if (t % 1 != 0 || t < 0) + throw new RangeError("offset is not uint"); + if (t + r > e) + throw new RangeError("Trying to access beyond buffer length"); + } + function O(t, e, n, i, o, f) { + if (!r.isBuffer(t)) + throw new TypeError( + '"buffer" argument must be a Buffer instance' + ); + if (e > o || e < f) + throw new RangeError('"value" argument is out of bounds'); + if (n + i > t.length) throw new RangeError("Index out of range"); + } + function C(t, r, e, n, i) { + F(r, n, i, t, e, 7); + let o = Number(r & BigInt(4294967295)); + (t[e++] = o), + (o >>= 8), + (t[e++] = o), + (o >>= 8), + (t[e++] = o), + (o >>= 8), + (t[e++] = o); + let f = Number((r >> BigInt(32)) & BigInt(4294967295)); + return ( + (t[e++] = f), + (f >>= 8), + (t[e++] = f), + (f >>= 8), + (t[e++] = f), + (f >>= 8), + (t[e++] = f), + e + ); + } + function x(t, r, e, n, i) { + F(r, n, i, t, e, 7); + let o = Number(r & BigInt(4294967295)); + (t[e + 7] = o), + (o >>= 8), + (t[e + 6] = o), + (o >>= 8), + (t[e + 5] = o), + (o >>= 8), + (t[e + 4] = o); + let f = Number((r >> BigInt(32)) & BigInt(4294967295)); + return ( + (t[e + 3] = f), + (f >>= 8), + (t[e + 2] = f), + (f >>= 8), + (t[e + 1] = f), + (f >>= 8), + (t[e] = f), + e + 8 + ); + } + function M(t, r, e, n, i, o) { + if (e + n > t.length) throw new RangeError("Index out of range"); + if (e < 0) throw new RangeError("Index out of range"); + } + function N(t, r, e, n, o) { + return ( + (r = +r), + (e >>>= 0), + o || M(t, 0, e, 4), + i.write(t, r, e, n, 23, 4), + e + 4 + ); + } + function P(t, r, e, n, o) { + return ( + (r = +r), + (e >>>= 0), + o || M(t, 0, e, 8), + i.write(t, r, e, n, 52, 8), + e + 8 + ); + } + (r.prototype.slice = function (t, e) { + const n = this.length; + (t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), + (e = void 0 === e ? n : ~~e) < 0 + ? (e += n) < 0 && (e = 0) + : e > n && (e = n), + e < t && (e = t); + const i = this.subarray(t, e); + return Object.setPrototypeOf(i, r.prototype), i; + }), + (r.prototype.readUintLE = r.prototype.readUIntLE = + function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || S(t, r, this.length); + let n = this[t], + i = 1, + o = 0; + for (; ++o < r && (i *= 256); ) n += this[t + o] * i; + return n; + }), + (r.prototype.readUintBE = r.prototype.readUIntBE = + function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || S(t, r, this.length); + let n = this[t + --r], + i = 1; + for (; r > 0 && (i *= 256); ) n += this[t + --r] * i; + return n; + }), + (r.prototype.readUint8 = r.prototype.readUInt8 = + function (t, r) { + return (t >>>= 0), r || S(t, 1, this.length), this[t]; + }), + (r.prototype.readUint16LE = r.prototype.readUInt16LE = + function (t, r) { + return ( + (t >>>= 0), + r || S(t, 2, this.length), + this[t] | (this[t + 1] << 8) + ); + }), + (r.prototype.readUint16BE = r.prototype.readUInt16BE = + function (t, r) { + return ( + (t >>>= 0), + r || S(t, 2, this.length), + (this[t] << 8) | this[t + 1] + ); + }), + (r.prototype.readUint32LE = r.prototype.readUInt32LE = + function (t, r) { + return ( + (t >>>= 0), + r || S(t, 4, this.length), + (this[t] | (this[t + 1] << 8) | (this[t + 2] << 16)) + + 16777216 * this[t + 3] + ); + }), + (r.prototype.readUint32BE = r.prototype.readUInt32BE = + function (t, r) { + return ( + (t >>>= 0), + r || S(t, 4, this.length), + 16777216 * this[t] + + ((this[t + 1] << 16) | (this[t + 2] << 8) | this[t + 3]) + ); + }), + (r.prototype.readBigUInt64LE = Z(function (t) { + z((t >>>= 0), "offset"); + const r = this[t], + e = this[t + 7]; + (void 0 !== r && void 0 !== e) || D(t, this.length - 8); + const n = + r + + 256 * this[++t] + + 65536 * this[++t] + + this[++t] * 2 ** 24, + i = + this[++t] + + 256 * this[++t] + + 65536 * this[++t] + + e * 2 ** 24; + return BigInt(n) + (BigInt(i) << BigInt(32)); + })), + (r.prototype.readBigUInt64BE = Z(function (t) { + z((t >>>= 0), "offset"); + const r = this[t], + e = this[t + 7]; + (void 0 !== r && void 0 !== e) || D(t, this.length - 8); + const n = + r * 2 ** 24 + + 65536 * this[++t] + + 256 * this[++t] + + this[++t], + i = + this[++t] * 2 ** 24 + + 65536 * this[++t] + + 256 * this[++t] + + e; + return (BigInt(n) << BigInt(32)) + BigInt(i); + })), + (r.prototype.readIntLE = function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || S(t, r, this.length); + let n = this[t], + i = 1, + o = 0; + for (; ++o < r && (i *= 256); ) n += this[t + o] * i; + return n >= (i *= 128) && (n -= Math.pow(2, 8 * r)), n; + }), + (r.prototype.readIntBE = function (t, r, e) { + (t >>>= 0), (r >>>= 0), e || S(t, r, this.length); + let n = r, + i = 1, + o = this[t + --n]; + for (; n > 0 && (i *= 256); ) o += this[t + --n] * i; + return o >= (i *= 128) && (o -= Math.pow(2, 8 * r)), o; + }), + (r.prototype.readInt8 = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 1, this.length), + 128 & this[t] ? -1 * (255 - this[t] + 1) : this[t] + ); + }), + (r.prototype.readInt16LE = function (t, r) { + (t >>>= 0), r || S(t, 2, this.length); + const e = this[t] | (this[t + 1] << 8); + return 32768 & e ? 4294901760 | e : e; + }), + (r.prototype.readInt16BE = function (t, r) { + (t >>>= 0), r || S(t, 2, this.length); + const e = this[t + 1] | (this[t] << 8); + return 32768 & e ? 4294901760 | e : e; + }), + (r.prototype.readInt32LE = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 4, this.length), + this[t] | + (this[t + 1] << 8) | + (this[t + 2] << 16) | + (this[t + 3] << 24) + ); + }), + (r.prototype.readInt32BE = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 4, this.length), + (this[t] << 24) | + (this[t + 1] << 16) | + (this[t + 2] << 8) | + this[t + 3] + ); + }), + (r.prototype.readBigInt64LE = Z(function (t) { + z((t >>>= 0), "offset"); + const r = this[t], + e = this[t + 7]; + (void 0 !== r && void 0 !== e) || D(t, this.length - 8); + const n = + this[t + 4] + + 256 * this[t + 5] + + 65536 * this[t + 6] + + (e << 24); + return ( + (BigInt(n) << BigInt(32)) + + BigInt( + r + + 256 * this[++t] + + 65536 * this[++t] + + this[++t] * 2 ** 24 + ) + ); + })), + (r.prototype.readBigInt64BE = Z(function (t) { + z((t >>>= 0), "offset"); + const r = this[t], + e = this[t + 7]; + (void 0 !== r && void 0 !== e) || D(t, this.length - 8); + const n = + (r << 24) + 65536 * this[++t] + 256 * this[++t] + this[++t]; + return ( + (BigInt(n) << BigInt(32)) + + BigInt( + this[++t] * 2 ** 24 + + 65536 * this[++t] + + 256 * this[++t] + + e + ) + ); + })), + (r.prototype.readFloatLE = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 4, this.length), + i.read(this, t, !0, 23, 4) + ); + }), + (r.prototype.readFloatBE = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 4, this.length), + i.read(this, t, !1, 23, 4) + ); + }), + (r.prototype.readDoubleLE = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 8, this.length), + i.read(this, t, !0, 52, 8) + ); + }), + (r.prototype.readDoubleBE = function (t, r) { + return ( + (t >>>= 0), + r || S(t, 8, this.length), + i.read(this, t, !1, 52, 8) + ); + }), + (r.prototype.writeUintLE = r.prototype.writeUIntLE = + function (t, r, e, n) { + if (((t = +t), (r >>>= 0), (e >>>= 0), !n)) { + O(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); + } + let i = 1, + o = 0; + for (this[r] = 255 & t; ++o < e && (i *= 256); ) + this[r + o] = (t / i) & 255; + return r + e; + }), + (r.prototype.writeUintBE = r.prototype.writeUIntBE = + function (t, r, e, n) { + if (((t = +t), (r >>>= 0), (e >>>= 0), !n)) { + O(this, t, r, e, Math.pow(2, 8 * e) - 1, 0); + } + let i = e - 1, + o = 1; + for (this[r + i] = 255 & t; --i >= 0 && (o *= 256); ) + this[r + i] = (t / o) & 255; + return r + e; + }), + (r.prototype.writeUint8 = r.prototype.writeUInt8 = + function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 1, 255, 0), + (this[r] = 255 & t), + r + 1 + ); + }), + (r.prototype.writeUint16LE = r.prototype.writeUInt16LE = + function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 2, 65535, 0), + (this[r] = 255 & t), + (this[r + 1] = t >>> 8), + r + 2 + ); + }), + (r.prototype.writeUint16BE = r.prototype.writeUInt16BE = + function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 2, 65535, 0), + (this[r] = t >>> 8), + (this[r + 1] = 255 & t), + r + 2 + ); + }), + (r.prototype.writeUint32LE = r.prototype.writeUInt32LE = + function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 4, 4294967295, 0), + (this[r + 3] = t >>> 24), + (this[r + 2] = t >>> 16), + (this[r + 1] = t >>> 8), + (this[r] = 255 & t), + r + 4 + ); + }), + (r.prototype.writeUint32BE = r.prototype.writeUInt32BE = + function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 4, 4294967295, 0), + (this[r] = t >>> 24), + (this[r + 1] = t >>> 16), + (this[r + 2] = t >>> 8), + (this[r + 3] = 255 & t), + r + 4 + ); + }), + (r.prototype.writeBigUInt64LE = Z(function (t, r = 0) { + return C(this, t, r, BigInt(0), BigInt("0xffffffffffffffff")); + })), + (r.prototype.writeBigUInt64BE = Z(function (t, r = 0) { + return x(this, t, r, BigInt(0), BigInt("0xffffffffffffffff")); + })), + (r.prototype.writeIntLE = function (t, r, e, n) { + if (((t = +t), (r >>>= 0), !n)) { + const n = Math.pow(2, 8 * e - 1); + O(this, t, r, e, n - 1, -n); + } + let i = 0, + o = 1, + f = 0; + for (this[r] = 255 & t; ++i < e && (o *= 256); ) + t < 0 && 0 === f && 0 !== this[r + i - 1] && (f = 1), + (this[r + i] = (((t / o) >> 0) - f) & 255); + return r + e; + }), + (r.prototype.writeIntBE = function (t, r, e, n) { + if (((t = +t), (r >>>= 0), !n)) { + const n = Math.pow(2, 8 * e - 1); + O(this, t, r, e, n - 1, -n); + } + let i = e - 1, + o = 1, + f = 0; + for (this[r + i] = 255 & t; --i >= 0 && (o *= 256); ) + t < 0 && 0 === f && 0 !== this[r + i + 1] && (f = 1), + (this[r + i] = (((t / o) >> 0) - f) & 255); + return r + e; + }), + (r.prototype.writeInt8 = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 1, 127, -128), + t < 0 && (t = 255 + t + 1), + (this[r] = 255 & t), + r + 1 + ); + }), + (r.prototype.writeInt16LE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 2, 32767, -32768), + (this[r] = 255 & t), + (this[r + 1] = t >>> 8), + r + 2 + ); + }), + (r.prototype.writeInt16BE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 2, 32767, -32768), + (this[r] = t >>> 8), + (this[r + 1] = 255 & t), + r + 2 + ); + }), + (r.prototype.writeInt32LE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 4, 2147483647, -2147483648), + (this[r] = 255 & t), + (this[r + 1] = t >>> 8), + (this[r + 2] = t >>> 16), + (this[r + 3] = t >>> 24), + r + 4 + ); + }), + (r.prototype.writeInt32BE = function (t, r, e) { + return ( + (t = +t), + (r >>>= 0), + e || O(this, t, r, 4, 2147483647, -2147483648), + t < 0 && (t = 4294967295 + t + 1), + (this[r] = t >>> 24), + (this[r + 1] = t >>> 16), + (this[r + 2] = t >>> 8), + (this[r + 3] = 255 & t), + r + 4 + ); + }), + (r.prototype.writeBigInt64LE = Z(function (t, r = 0) { + return C( + this, + t, + r, + -BigInt("0x8000000000000000"), + BigInt("0x7fffffffffffffff") + ); + })), + (r.prototype.writeBigInt64BE = Z(function (t, r = 0) { + return x( + this, + t, + r, + -BigInt("0x8000000000000000"), + BigInt("0x7fffffffffffffff") + ); + })), + (r.prototype.writeFloatLE = function (t, r, e) { + return N(this, t, r, !0, e); + }), + (r.prototype.writeFloatBE = function (t, r, e) { + return N(this, t, r, !1, e); + }), + (r.prototype.writeDoubleLE = function (t, r, e) { + return P(this, t, r, !0, e); + }), + (r.prototype.writeDoubleBE = function (t, r, e) { + return P(this, t, r, !1, e); + }), + (r.prototype.copy = function (t, e, n, i) { + if (!r.isBuffer(t)) + throw new TypeError("argument should be a Buffer"); + if ( + (n || (n = 0), + i || 0 === i || (i = this.length), + e >= t.length && (e = t.length), + e || (e = 0), + i > 0 && i < n && (i = n), + i === n) + ) + return 0; + if (0 === t.length || 0 === this.length) return 0; + if (e < 0) throw new RangeError("targetStart out of bounds"); + if (n < 0 || n >= this.length) + throw new RangeError("Index out of range"); + if (i < 0) throw new RangeError("sourceEnd out of bounds"); + i > this.length && (i = this.length), + t.length - e < i - n && (i = t.length - e + n); + const o = i - n; + return ( + this === t && + "function" == typeof Uint8Array.prototype.copyWithin + ? this.copyWithin(e, n, i) + : Uint8Array.prototype.set.call(t, this.subarray(n, i), e), + o + ); + }), + (r.prototype.fill = function (t, e, n, i) { + if ("string" == typeof t) { + if ( + ("string" == typeof e + ? ((i = e), (e = 0), (n = this.length)) + : "string" == typeof n && ((i = n), (n = this.length)), + void 0 !== i && "string" != typeof i) + ) + throw new TypeError("encoding must be a string"); + if ("string" == typeof i && !r.isEncoding(i)) + throw new TypeError("Unknown encoding: " + i); + if (1 === t.length) { + const r = t.charCodeAt(0); + (("utf8" === i && r < 128) || "latin1" === i) && (t = r); + } + } else + "number" == typeof t + ? (t &= 255) + : "boolean" == typeof t && (t = Number(t)); + if (e < 0 || this.length < e || this.length < n) + throw new RangeError("Out of range index"); + if (n <= e) return this; + let o; + if ( + ((e >>>= 0), + (n = void 0 === n ? this.length : n >>> 0), + t || (t = 0), + "number" == typeof t) + ) + for (o = e; o < n; ++o) this[o] = t; + else { + const f = r.isBuffer(t) ? t : r.from(t, i), + u = f.length; + if (0 === u) + throw new TypeError( + 'The value "' + t + '" is invalid for argument "value"' + ); + for (o = 0; o < n - e; ++o) this[o + e] = f[o % u]; + } + return this; + }); + const k = {}; + function $(t, r, e) { + k[t] = class extends e { + constructor() { + super(), + Object.defineProperty(this, "message", { + value: r.apply(this, arguments), + writable: !0, + configurable: !0, + }), + (this.name = `${this.name} [${t}]`), + this.stack, + delete this.name; + } + get code() { + return t; + } + set code(t) { + Object.defineProperty(this, "code", { + configurable: !0, + enumerable: !0, + value: t, + writable: !0, + }); + } + toString() { + return `${this.name} [${t}]: ${this.message}`; + } + }; + } + function j(t) { + let r = "", + e = t.length; + const n = "-" === t[0] ? 1 : 0; + for (; e >= n + 4; e -= 3) r = `_${t.slice(e - 3, e)}${r}`; + return `${t.slice(0, e)}${r}`; + } + function F(t, r, e, n, i, o) { + if (t > e || t < r) { + const n = "bigint" == typeof r ? "n" : ""; + let i; + throw ( + ((i = + o > 3 + ? 0 === r || r === BigInt(0) + ? `>= 0${n} and < 2${n} ** ${8 * (o + 1)}${n}` + : `>= -(2${n} ** ${8 * (o + 1) - 1}${n}) and < 2 ** ` + + `${8 * (o + 1) - 1}${n}` + : `>= ${r}${n} and <= ${e}${n}`), + new k.ERR_OUT_OF_RANGE("value", i, t)) + ); + } + !(function (t, r, e) { + z(r, "offset"), + (void 0 !== t[r] && void 0 !== t[r + e]) || + D(r, t.length - (e + 1)); + })(n, i, o); + } + function z(t, r) { + if ("number" != typeof t) + throw new k.ERR_INVALID_ARG_TYPE(r, "number", t); + } + function D(t, r, e) { + if (Math.floor(t) !== t) + throw ( + (z(t, e), + new k.ERR_OUT_OF_RANGE(e || "offset", "an integer", t)) + ); + if (r < 0) throw new k.ERR_BUFFER_OUT_OF_BOUNDS(); + throw new k.ERR_OUT_OF_RANGE( + e || "offset", + `>= ${e ? 1 : 0} and <= ${r}`, + t + ); + } + $( + "ERR_BUFFER_OUT_OF_BOUNDS", + function (t) { + return t + ? `${t} is outside of buffer bounds` + : "Attempt to access memory outside buffer bounds"; + }, + RangeError + ), + $( + "ERR_INVALID_ARG_TYPE", + function (t, r) { + return `The "${t}" argument must be of type number. Received type ${typeof r}`; + }, + TypeError + ), + $( + "ERR_OUT_OF_RANGE", + function (t, r, e) { + let n = `The value of "${t}" is out of range.`, + i = e; + return ( + Number.isInteger(e) && Math.abs(e) > 2 ** 32 + ? (i = j(String(e))) + : "bigint" == typeof e && + ((i = String(e)), + (e > BigInt(2) ** BigInt(32) || + e < -(BigInt(2) ** BigInt(32))) && + (i = j(i)), + (i += "n")), + (n += ` It must be ${r}. Received ${i}`) + ); + }, + RangeError + ); + const Y = /[^+\/0-9A-Za-z-_]/g; + function q(t, r) { + let e; + r = r || 1 / 0; + const n = t.length; + let i = null; + const o = []; + for (let f = 0; f < n; ++f) { + if ((e = t.charCodeAt(f)) > 55295 && e < 57344) { + if (!i) { + if (e > 56319) { + (r -= 3) > -1 && o.push(239, 191, 189); + continue; + } + if (f + 1 === n) { + (r -= 3) > -1 && o.push(239, 191, 189); + continue; + } + i = e; + continue; + } + if (e < 56320) { + (r -= 3) > -1 && o.push(239, 191, 189), (i = e); + continue; + } + e = 65536 + (((i - 55296) << 10) | (e - 56320)); + } else i && (r -= 3) > -1 && o.push(239, 191, 189); + if (((i = null), e < 128)) { + if ((r -= 1) < 0) break; + o.push(e); + } else if (e < 2048) { + if ((r -= 2) < 0) break; + o.push((e >> 6) | 192, (63 & e) | 128); + } else if (e < 65536) { + if ((r -= 3) < 0) break; + o.push( + (e >> 12) | 224, + ((e >> 6) & 63) | 128, + (63 & e) | 128 + ); + } else { + if (!(e < 1114112)) throw new Error("Invalid code point"); + if ((r -= 4) < 0) break; + o.push( + (e >> 18) | 240, + ((e >> 12) & 63) | 128, + ((e >> 6) & 63) | 128, + (63 & e) | 128 + ); + } + } + return o; + } + function G(t) { + return n.toByteArray( + (function (t) { + if ( + (t = (t = t.split("=")[0]).trim().replace(Y, "")).length < 2 + ) + return ""; + for (; t.length % 4 != 0; ) t += "="; + return t; + })(t) + ); + } + function V(t, r, e, n) { + let i; + for (i = 0; i < n && !(i + e >= r.length || i >= t.length); ++i) + r[i + e] = t[i]; + return i; + } + function W(t, r) { + return ( + t instanceof r || + (null != t && + null != t.constructor && + null != t.constructor.name && + t.constructor.name === r.name) + ); + } + function X(t) { + return t != t; + } + const J = (function () { + const t = new Array(256); + for (let r = 0; r < 16; ++r) { + const e = 16 * r; + for (let n = 0; n < 16; ++n) + t[e + n] = "0123456789abcdef"[r] + "0123456789abcdef"[n]; + } + return t; + })(); + function Z(t) { + return "undefined" == typeof BigInt ? H : t; + } + function H() { + throw new Error("BigInt not supported"); + } + }).call(this, t("buffer").Buffer); + }, + { "base64-js": 5, buffer: 2, ieee754: 6 }, + ], + 5: [ + function (t, r, e) { + "use strict"; + (e.byteLength = function (t) { + var r = h(t), + e = r[0], + n = r[1]; + return (3 * (e + n)) / 4 - n; + }), + (e.toByteArray = function (t) { + var r, + e, + n = h(t), + f = n[0], + u = n[1], + s = new o( + (function (t, r, e) { + return (3 * (r + e)) / 4 - e; + })(0, f, u) + ), + a = 0, + c = u > 0 ? f - 4 : f; + for (e = 0; e < c; e += 4) + (r = + (i[t.charCodeAt(e)] << 18) | + (i[t.charCodeAt(e + 1)] << 12) | + (i[t.charCodeAt(e + 2)] << 6) | + i[t.charCodeAt(e + 3)]), + (s[a++] = (r >> 16) & 255), + (s[a++] = (r >> 8) & 255), + (s[a++] = 255 & r); + 2 === u && + ((r = + (i[t.charCodeAt(e)] << 2) | (i[t.charCodeAt(e + 1)] >> 4)), + (s[a++] = 255 & r)); + 1 === u && + ((r = + (i[t.charCodeAt(e)] << 10) | + (i[t.charCodeAt(e + 1)] << 4) | + (i[t.charCodeAt(e + 2)] >> 2)), + (s[a++] = (r >> 8) & 255), + (s[a++] = 255 & r)); + return s; + }), + (e.fromByteArray = function (t) { + for ( + var r, e = t.length, i = e % 3, o = [], f = 0, u = e - i; + f < u; + f += 16383 + ) + o.push(a(t, f, f + 16383 > u ? u : f + 16383)); + 1 === i + ? ((r = t[e - 1]), o.push(n[r >> 2] + n[(r << 4) & 63] + "==")) + : 2 === i && + ((r = (t[e - 2] << 8) + t[e - 1]), + o.push( + n[r >> 10] + n[(r >> 4) & 63] + n[(r << 2) & 63] + "=" + )); + return o.join(""); + }); + for ( + var n = [], + i = [], + o = "undefined" != typeof Uint8Array ? Uint8Array : Array, + f = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + u = 0, + s = f.length; + u < s; + ++u + ) + (n[u] = f[u]), (i[f.charCodeAt(u)] = u); + function h(t) { + var r = t.length; + if (r % 4 > 0) + throw new Error("Invalid string. Length must be a multiple of 4"); + var e = t.indexOf("="); + return -1 === e && (e = r), [e, e === r ? 0 : 4 - (e % 4)]; + } + function a(t, r, e) { + for (var i, o, f = [], u = r; u < e; u += 3) + (i = + ((t[u] << 16) & 16711680) + + ((t[u + 1] << 8) & 65280) + + (255 & t[u + 2])), + f.push( + n[((o = i) >> 18) & 63] + + n[(o >> 12) & 63] + + n[(o >> 6) & 63] + + n[63 & o] + ); + return f.join(""); + } + (i["-".charCodeAt(0)] = 62), (i["_".charCodeAt(0)] = 63); + }, + {}, + ], + 6: [ + function (t, r, e) { + (e.read = function (t, r, e, n, i) { + var o, + f, + u = 8 * i - n - 1, + s = (1 << u) - 1, + h = s >> 1, + a = -7, + c = e ? i - 1 : 0, + p = e ? -1 : 1, + l = t[r + c]; + for ( + c += p, o = l & ((1 << -a) - 1), l >>= -a, a += u; + a > 0; + o = 256 * o + t[r + c], c += p, a -= 8 + ); + for ( + f = o & ((1 << -a) - 1), o >>= -a, a += n; + a > 0; + f = 256 * f + t[r + c], c += p, a -= 8 + ); + if (0 === o) o = 1 - h; + else { + if (o === s) return f ? NaN : (1 / 0) * (l ? -1 : 1); + (f += Math.pow(2, n)), (o -= h); + } + return (l ? -1 : 1) * f * Math.pow(2, o - n); + }), + (e.write = function (t, r, e, n, i, o) { + var f, + u, + s, + h = 8 * o - i - 1, + a = (1 << h) - 1, + c = a >> 1, + p = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + l = n ? 0 : o - 1, + y = n ? 1 : -1, + g = r < 0 || (0 === r && 1 / r < 0) ? 1 : 0; + for ( + r = Math.abs(r), + isNaN(r) || r === 1 / 0 + ? ((u = isNaN(r) ? 1 : 0), (f = a)) + : ((f = Math.floor(Math.log(r) / Math.LN2)), + r * (s = Math.pow(2, -f)) < 1 && (f--, (s *= 2)), + (r += f + c >= 1 ? p / s : p * Math.pow(2, 1 - c)) * s >= + 2 && (f++, (s /= 2)), + f + c >= a + ? ((u = 0), (f = a)) + : f + c >= 1 + ? ((u = (r * s - 1) * Math.pow(2, i)), (f += c)) + : ((u = r * Math.pow(2, c - 1) * Math.pow(2, i)), + (f = 0))); + i >= 8; + t[e + l] = 255 & u, l += y, u /= 256, i -= 8 + ); + for ( + f = (f << i) | u, h += i; + h > 0; + t[e + l] = 255 & f, l += y, f /= 256, h -= 8 + ); + t[e + l - y] |= 128 * g; + }); + }, + {}, + ], + }, + {}, + [4] + )(4); +}); diff --git a/src/workers/main.ts b/src/workers/main.ts new file mode 100644 index 0000000..e69de29 diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..456617f --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.json", + "exclude": [ + "**/*.test.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..827509f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,75 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + "resolveJsonModule": true, + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "ES2022", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + // "lib": [], /* Specify library files to be included in the compilation. */ + "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + //"declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "declarationDir": "./build/types", /* Output directory for corresponding '.d.ts' files. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./build", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true, /* Enable all strict type-checking options. */ + "noImplicitAny": false, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + "strictPropertyInitialization": false, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true, /* Skip type checking of declaration files. */ + "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ + }, + "include": [ + "src/**/*.ts" +, "src/localServer/num.js", "src/localServer/workers/sw.ts.old" ] +}