tweb/public/18.11f2b281b3b843fd7a77.chunk.js.map
Eduard Kuzmenko 9f80f6c1b1 Build
2021-04-22 20:59:14 +04:00

1 line
12 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/lib/polyfill.ts","webpack:///./src/helpers/random.ts","webpack:///./src/helpers/bytes.ts"],"names":["Object","defineProperty","Uint8Array","prototype","get","this","set","str","enumerable","configurable","randomize","i","length","concat","args","toJSON","Array","findAndSplice","verify","index","findIndex","splice","undefined","String","toHHMMSS","leadZero","sec_num","parseInt","hours","Math","floor","minutes","seconds","Promise","finally","fn","onFinally","callback","resolve","then","result","reason","reject","nextRandomInt","maxValue","random","randomLong","bytesToHex","bytes","arr","push","toString","join","bytesFromHex","hexString","len","start","charAt","substr","bytesToBase64","mod3","nLen","nUint24","nIdx","fromCharCode","uint6ToBase64","replace","nUint6","bytesCmp","bytes1","bytes2","convertToArrayBuffer","ArrayBuffer","buffer","byteLength","BYTES_PER_ELEMENT","bufferConcats","forEach","b","tmp","lastLength"],"mappings":"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","file":"18.11f2b281b3b843fd7a77.chunk.js","sourcesContent":["/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nimport { bytesToHex, bytesFromHex, bufferConcats } from '../helpers/bytes';\r\nimport { nextRandomInt } from '../helpers/random';\r\n\r\n//export const secureRandom = new SecureRandom();\r\n\r\nObject.defineProperty(Uint8Array.prototype, 'hex', {\r\n get: function(): string {\r\n return bytesToHex([...this]);\r\n },\r\n \r\n set: function(str: string) {\r\n this.set(bytesFromHex(str));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n});\r\n\r\nUint8Array.prototype.randomize = function() {\r\n //secureRandom.nextBytes(this);\r\n for(let i = 0; i < this.length; ++i) {\r\n this[i] = nextRandomInt(255);\r\n }\r\n return this;\r\n};\r\n\r\nUint8Array.prototype.concat = function(...args: Array<Uint8Array | ArrayBuffer | number[]>) {\r\n return bufferConcats(this, ...args);\r\n};\r\n\r\n/* Uint8Array.prototype.toString = function() {\r\n return String.fromCharCode.apply(null, [...this]);\r\n}; */\r\n\r\nUint8Array.prototype.toJSON = function() {\r\n return [...this];\r\n //return {type: 'bytes', value: [...this]};\r\n};\r\n\r\nArray.prototype.findAndSplice = function<T>(verify: (value: T, index?: number, array?: Array<T>) => boolean) {\r\n let index = this.findIndex(verify);\r\n return index !== -1 ? this.splice(index, 1)[0] : undefined;\r\n};\r\n\r\nString.prototype.toHHMMSS = function(leadZero = false) {\r\n const sec_num = parseInt(this + '', 10);\r\n const hours = Math.floor(sec_num / 3600);\r\n let minutes: any = Math.floor((sec_num - (hours * 3600)) / 60);\r\n let seconds: any = sec_num - (hours * 3600) - (minutes * 60);\r\n \r\n if(hours) leadZero = true;\r\n if(minutes < 10) minutes = leadZero ? \"0\" + minutes : minutes;\r\n if(seconds < 10) seconds = \"0\" + seconds;\r\n return (hours ? /* ('0' + hours).slice(-2) */hours + ':' : '') + minutes + ':' + seconds;\r\n};\r\n\r\n/* Promise.prototype.finally = Promise.prototype.finally || {\r\n finally(fn: () => any) {\r\n const onFinally = (callback: typeof fn) => Promise.resolve(fn()).then(callback);\r\n return this.then(\r\n result => onFinally(() => result),\r\n reason => onFinally(() => Promise.reject(reason))\r\n );\r\n }\r\n}.finally; */\r\nPromise.prototype.finally = Promise.prototype.finally || function<T>(this: Promise<T>, fn: () => any) {\r\n const onFinally = (callback: typeof fn) => Promise.resolve(fn()).then(callback);\r\n return this.then(\r\n result => onFinally(() => result),\r\n reason => onFinally(() => Promise.reject(reason))\r\n );\r\n};\r\n\r\ndeclare global {\r\n interface Uint8Array {\r\n hex: string;\r\n randomize: () => Uint8Array,\r\n concat: (...args: Array<Uint8Array | ArrayBuffer | number[]>) => Uint8Array,\r\n //toString: () => string,\r\n toJSON: () => number[],\r\n //toJSON: () => {type: 'bytes', value: number[]},\r\n }\r\n \r\n interface Array<T> {\r\n findAndSplice(verify: (value: T, index?: number, array?: Array<T>) => boolean): T;\r\n }\r\n \r\n interface String {\r\n toHHMMSS(leadZero?: boolean): string;\r\n }\r\n\r\n interface Promise<T> {\r\n finally: (onfinally?: () => void) => Promise<T>;\r\n }\r\n}\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n */\r\n\r\nexport function nextRandomInt(maxValue: number) {\r\n return Math.floor(Math.random() * maxValue);\r\n}\r\n\r\nexport function randomLong() {\r\n return '' + nextRandomInt(0xFFFFFFFF) + nextRandomInt(0xFFFFFF);\r\n //return '' + parseInt(nextRandomInt(0xFFFFFFFF).toString(16) + nextRandomInt(0xFFFFFFFF).toString(16), 16);\r\n}\r\n","/*\r\n * https://github.com/morethanwords/tweb\r\n * Copyright (C) 2019-2021 Eduard Kuzmenko\r\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\r\n * \r\n * Originally from:\r\n * https://github.com/zhukov/webogram\r\n * Copyright (C) 2014 Igor Zhukov <igor.beatle@gmail.com>\r\n * https://github.com/zhukov/webogram/blob/master/LICENSE\r\n */\r\n\r\nexport function bytesToHex(bytes: ArrayLike<number>) {\r\n bytes = bytes || [];\r\n let arr: string[] = [];\r\n for(let i = 0; i < bytes.length; ++i) {\r\n arr.push((bytes[i] < 16 ? '0' : '') + (bytes[i] || 0).toString(16));\r\n }\r\n return arr.join('');\r\n}\r\n\r\nexport function bytesFromHex(hexString: string) {\r\n const len = hexString.length;\r\n let start = 0;\r\n let bytes: number[] = [];\r\n\r\n if(len % 2) { // read 0x581 as 0x0581\r\n bytes.push(parseInt(hexString.charAt(0), 16));\r\n ++start;\r\n }\r\n\r\n for(let i = start; i < len; i += 2) {\r\n bytes.push(parseInt(hexString.substr(i, 2), 16));\r\n }\r\n\r\n return bytes;\r\n}\r\n\r\nexport function bytesToBase64(bytes: number[] | Uint8Array) {\r\n let mod3: number;\r\n let result = '';\r\n\r\n for(let nLen = bytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; ++nIdx) {\r\n mod3 = nIdx % 3;\r\n nUint24 |= bytes[nIdx] << (16 >>> mod3 & 24);\r\n if(mod3 === 2 || nLen - nIdx === 1) {\r\n result += String.fromCharCode(\r\n uint6ToBase64(nUint24 >>> 18 & 63),\r\n uint6ToBase64(nUint24 >>> 12 & 63),\r\n uint6ToBase64(nUint24 >>> 6 & 63),\r\n uint6ToBase64(nUint24 & 63)\r\n );\r\n nUint24 = 0;\r\n }\r\n }\r\n\r\n return result.replace(/A(?=A$|$)/g, '=');\r\n}\r\n\r\nexport function uint6ToBase64(nUint6: number) {\r\n return nUint6 < 26\r\n ? nUint6 + 65\r\n : nUint6 < 52\r\n ? nUint6 + 71\r\n : nUint6 < 62\r\n ? nUint6 - 4\r\n : nUint6 === 62\r\n ? 43\r\n : nUint6 === 63\r\n ? 47\r\n : 65\r\n}\r\n\r\nexport function bytesCmp(bytes1: number[] | Uint8Array, bytes2: number[] | Uint8Array) {\r\n const len = bytes1.length;\r\n if(len !== bytes2.length) {\r\n return false;\r\n }\r\n\r\n for(let i = 0; i < len; ++i) {\r\n if(bytes1[i] !== bytes2[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport function bytesXor(bytes1: number[] | Uint8Array, bytes2: number[] | Uint8Array) {\r\n const len = bytes1.length;\r\n const bytes: number[] = [];\r\n\r\n for(let i = 0; i < len; ++i) {\r\n bytes[i] = bytes1[i] ^ bytes2[i];\r\n }\r\n\r\n return bytes;\r\n}\r\n\r\nexport function bytesToArrayBuffer(b: number[]) {\r\n return (new Uint8Array(b)).buffer;\r\n}\r\n\r\nexport function convertToArrayBuffer(bytes: any | ArrayBuffer | Uint8Array) {\r\n // Be careful with converting subarrays!!\r\n if(bytes instanceof ArrayBuffer) {\r\n return bytes;\r\n }\r\n if(bytes.buffer !== undefined &&\r\n bytes.buffer.byteLength === bytes.length * bytes.BYTES_PER_ELEMENT) {\r\n return bytes.buffer;\r\n }\r\n return bytesToArrayBuffer(bytes);\r\n}\r\n\r\nexport function convertToUint8Array(bytes: Uint8Array | number[]): Uint8Array {\r\n if((bytes as Uint8Array).buffer !== undefined) {\r\n return bytes as Uint8Array;\r\n }\r\n\r\n return new Uint8Array(bytes);\r\n}\r\n\r\nexport function bytesFromArrayBuffer(buffer: ArrayBuffer) {\r\n const len = buffer.byteLength;\r\n const byteView = new Uint8Array(buffer);\r\n const bytes: number[] = [];\r\n\r\n for(let i = 0; i < len; ++i) {\r\n bytes[i] = byteView[i];\r\n }\r\n\r\n return bytes;\r\n}\r\n\r\nexport function bufferConcat(buffer1: any, buffer2: any) {\r\n const l1 = buffer1.byteLength || buffer1.length;\r\n const l2 = buffer2.byteLength || buffer2.length;\r\n const tmp = new Uint8Array(l1 + l2);\r\n tmp.set(buffer1 instanceof ArrayBuffer ? new Uint8Array(buffer1) : buffer1, 0);\r\n tmp.set(buffer2 instanceof ArrayBuffer ? new Uint8Array(buffer2) : buffer2, l1);\r\n\r\n return tmp.buffer;\r\n}\r\n\r\nexport function bufferConcats(...args: any[]) {\r\n let length = 0;\r\n args.forEach(b => length += b.byteLength || b.length);\r\n\r\n const tmp = new Uint8Array(length);\r\n \r\n let lastLength = 0;\r\n args.forEach(b => {\r\n tmp.set(b instanceof ArrayBuffer ? new Uint8Array(b) : b, lastLength);\r\n lastLength += b.byteLength || b.length;\r\n });\r\n\r\n return tmp/* .buffer */;\r\n}\r\n\r\nexport function bytesFromWordss(input: Uint32Array) {\r\n const o: number[] = [];\r\n for(let i = 0, length = input.length * 4; i < length; ++i) {\r\n o.push((input[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff);\r\n }\r\n\r\n return o;\r\n}\r\n\r\nexport function bytesToWordss(input: ArrayBuffer | Uint8Array) {\r\n let bytes: Uint8Array;\r\n if(input instanceof ArrayBuffer) bytes = new Uint8Array(input);\r\n else bytes = input;\r\n\r\n const words: number[] = [];\r\n for(let i = 0, len = bytes.length; i < len; ++i) {\r\n words[i >>> 2] |= bytes[i] << (24 - (i % 4) * 8);\r\n }\r\n\r\n return new Uint32Array(words);\r\n}\r\n\r\n// * https://stackoverflow.com/a/52827031\r\n/* export const isBigEndian = (() => {\r\n const array = new Uint8Array(4);\r\n const view = new Uint32Array(array.buffer);\r\n return !((view[0] = 1) & array[0]);\r\n})(); */\r\n"],"sourceRoot":""}