tweb/public/102.e314611ed72b13b03b17.ch...

1 line
22 KiB
Plaintext

{"version":3,"file":"102.e314611ed72b13b03b17.chunk.js","mappings":"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","sources":["webpack://tweb/./src/helpers/blob/readBlobAs.ts","webpack://tweb/./src/helpers/blob/readBlobAsArrayBuffer.ts","webpack://tweb/./src/helpers/blob/readBlobAsUint8Array.ts","webpack://tweb/./src/lib/cacheStorage.ts","webpack://tweb/./src/lib/fileManager.ts","webpack://tweb/./src/pages/loginPage.ts","webpack://tweb/./src/pages/pageSignUp.ts"],"sourcesContent":["/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\n// import { IS_WEB_WORKER } from \"../context\";\n\n// const id = IS_WEB_WORKER ? Math.random() * 0x1000 | 0 : 0;\nexport default function readBlobAs(blob: Blob, method: 'readAsText'): Promise<string>;\nexport default function readBlobAs(blob: Blob, method: 'readAsDataURL'): Promise<string>;\nexport default function readBlobAs(blob: Blob, method: 'readAsArrayBuffer'): Promise<ArrayBuffer>;\nexport default function readBlobAs(blob: Blob, method: 'readAsArrayBuffer' | 'readAsText' | 'readAsDataURL'): Promise<any> {\n // const perf = performance.now();\n return new Promise<any>((resolve) => {\n const reader = new FileReader();\n reader.addEventListener('loadend', (e) => {\n // console.log(`readBlobAs [${id}] ${method} time ${performance.now() - perf}`);\n resolve(e.target.result);\n });\n reader[method](blob);\n });\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport readBlobAs from \"./readBlobAs\";\n\nexport default function readBlobAsArrayBuffer(blob: Blob) {\n return readBlobAs(blob, 'readAsArrayBuffer');\n}\n","/*\n * https://github.com/morethanwords/tweb\n * Copyright (C) 2019-2021 Eduard Kuzmenko\n * https://github.com/morethanwords/tweb/blob/master/LICENSE\n */\n\nimport readBlobAsArrayBuffer from \"./readBlobAsArrayBuffer\";\n\nexport default function readBlobAsUint8Array(blob: Blob) {\n return readBlobAsArrayBuffer(blob).then(buffer => new Uint8Array(buffer));\n}\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\nimport Modes from '../config/modes';\r\nimport blobConstruct from '../helpers/blob/blobConstruct';\r\nimport FileManager from './fileManager';\r\n//import { MOUNT_CLASS_TO } from './mtproto/mtproto_config';\r\n//import { logger } from './polyfill';\r\n\r\nexport type CacheStorageDbName = 'cachedFiles' | 'cachedStreamChunks' | 'cachedAssets';\r\n\r\nexport default class CacheStorageController {\r\n private static STORAGES: CacheStorageController[] = [];\r\n private openDbPromise: Promise<Cache>;\r\n\r\n private useStorage = true;\r\n\r\n //private log: ReturnType<typeof logger> = logger('CS');\r\n\r\n constructor(private dbName: CacheStorageDbName) {\r\n if(Modes.test) {\r\n this.dbName += '_test';\r\n }\r\n\r\n if(CacheStorageController.STORAGES.length) {\r\n this.useStorage = CacheStorageController.STORAGES[0].useStorage;\r\n }\r\n \r\n this.openDatabase();\r\n CacheStorageController.STORAGES.push(this);\r\n }\r\n\r\n private openDatabase(): Promise<Cache> {\r\n return this.openDbPromise ?? (this.openDbPromise = caches.open(this.dbName));\r\n }\r\n\r\n public delete(entryName: string) {\r\n return this.timeoutOperation((cache) => cache.delete('/' + entryName));\r\n }\r\n\r\n public deleteAll() {\r\n return caches.delete(this.dbName);\r\n }\r\n\r\n public get(entryName: string) {\r\n return this.timeoutOperation((cache) => cache.match('/' + entryName));\r\n }\r\n\r\n public save(entryName: string, response: Response) {\r\n // return new Promise((resolve) => {}); // DEBUG\r\n return this.timeoutOperation((cache) => cache.put('/' + entryName, response));\r\n }\r\n\r\n public getFile(fileName: string, method: 'blob' | 'json' | 'text' = 'blob'): Promise<any> {\r\n /* if(method === 'blob') {\r\n return Promise.reject();\r\n } */\r\n\r\n // const str = `get fileName: ${fileName}`;\r\n // console.time(str);\r\n return this.get(fileName).then((response) => {\r\n if(!response) {\r\n //console.warn('getFile:', response, fileName);\r\n throw 'NO_ENTRY_FOUND';\r\n }\r\n\r\n const promise = response[method]();\r\n // promise.then(() => {\r\n // console.timeEnd(str);\r\n // });\r\n return promise;\r\n });\r\n }\r\n\r\n public saveFile(fileName: string, blob: Blob | Uint8Array) {\r\n //return Promise.resolve(blobConstruct([blob]));\r\n if(!(blob instanceof Blob)) {\r\n blob = blobConstruct(blob) as Blob;\r\n }\r\n\r\n const response = new Response(blob, {\r\n headers: {\r\n 'Content-Length': '' + blob.size\r\n }\r\n });\r\n \r\n return this.save(fileName, response).then(() => blob as Blob);\r\n }\r\n\r\n public timeoutOperation<T>(callback: (cache: Cache) => Promise<T>) {\r\n if(!this.useStorage) {\r\n return Promise.reject('STORAGE_OFFLINE');\r\n }\r\n\r\n return new Promise<T>(async(resolve, reject) => {\r\n let rejected = false;\r\n const timeout = setTimeout(() => {\r\n reject();\r\n //console.warn('CACHESTORAGE TIMEOUT');\r\n rejected = true;\r\n }, 15e3);\r\n\r\n try {\r\n const cache = await this.openDatabase();\r\n if(!cache) {\r\n this.useStorage = false;\r\n this.openDbPromise = undefined;\r\n throw 'no cache?';\r\n }\r\n\r\n const res = await callback(cache);\r\n\r\n if(rejected) return;\r\n resolve(res);\r\n } catch(err) {\r\n reject(err);\r\n }\r\n\r\n clearTimeout(timeout);\r\n });\r\n }\r\n\r\n public getFileWriter(fileName: string, mimeType: string) {\r\n const fakeWriter = FileManager.getFakeFileWriter(mimeType, (blob) => {\r\n return this.saveFile(fileName, blob).catch(() => blob);\r\n });\r\n\r\n return Promise.resolve(fakeWriter);\r\n }\r\n\r\n public static toggleStorage(enabled: boolean) {\r\n return Promise.all(this.STORAGES.map(storage => {\r\n storage.useStorage = enabled;\r\n \r\n if(!enabled) {\r\n return storage.deleteAll();\r\n }\r\n }));\r\n }\r\n}\r\n\r\n//const cacheStorage = new CacheStorageController(); \r\n//MOUNT_CLASS_TO.cacheStorage = cacheStorage;\r\n//export default cacheStorage;\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\nimport blobConstruct from \"../helpers/blob/blobConstruct\";\r\nimport readBlobAsUint8Array from \"../helpers/blob/readBlobAsUint8Array\";\r\n\r\nexport class FileManager {\r\n private blobSupported = true;\r\n \r\n constructor() {\r\n try {\r\n blobConstruct([], '');\r\n } catch(e) {\r\n this.blobSupported = false;\r\n }\r\n }\r\n \r\n public isAvailable() {\r\n return this.blobSupported;\r\n }\r\n \r\n public write(fileWriter: ReturnType<FileManager['getFakeFileWriter']>, bytes: Uint8Array | Blob | string): Promise<void> {\r\n if(bytes instanceof Blob) { // is file bytes\r\n return readBlobAsUint8Array(bytes).then(arr => {\r\n return fileWriter.write(arr);\r\n });\r\n } else {\r\n return fileWriter.write(bytes);\r\n }\r\n }\r\n\r\n public getFakeFileWriter(mimeType: string, saveFileCallback?: (blob: Blob) => Promise<Blob>) {\r\n const blobParts: Array<Uint8Array | string> = [];\r\n const fakeFileWriter = {\r\n write: async(part: Uint8Array | string) => {\r\n if(!this.blobSupported) {\r\n throw false;\r\n }\r\n \r\n blobParts.push(part);\r\n },\r\n truncate: () => {\r\n blobParts.length = 0;\r\n },\r\n finalize: (saveToStorage = true) => {\r\n const blob = blobConstruct(blobParts, mimeType);\r\n\r\n if(saveToStorage && saveFileCallback) {\r\n saveFileCallback(blob);\r\n }\r\n \r\n return blob;\r\n }\r\n };\r\n \r\n return fakeFileWriter;\r\n }\r\n}\r\n\r\nexport default new FileManager();\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\nimport { LangPackKey, i18n } from \"../lib/langPack\";\r\n\r\nexport default class LoginPage {\r\n public element: HTMLElement;\r\n public container: HTMLElement;\r\n public imageDiv: HTMLElement;\r\n public inputWrapper: HTMLElement;\r\n public title: HTMLElement;\r\n public subtitle: HTMLParagraphElement;\r\n\r\n constructor(options: {\r\n className: string,\r\n withInputWrapper?: boolean,\r\n titleLangKey?: LangPackKey,\r\n subtitleLangKey?: LangPackKey,\r\n }) {\r\n this.element = document.body.querySelector('.' + options.className) as HTMLDivElement;\r\n //this.element = document.createElement('div');\r\n //this.element.className = 'page-' + options.className;\r\n\r\n this.container = document.createElement('div');\r\n this.container.className = 'container center-align';\r\n\r\n this.imageDiv = document.createElement('div');\r\n this.imageDiv.className = 'auth-image';\r\n\r\n this.title = document.createElement('h4');\r\n if(options.titleLangKey) {\r\n this.title.append(i18n(options.titleLangKey));\r\n }\r\n\r\n this.subtitle = document.createElement('p');\r\n this.subtitle.className = 'subtitle';\r\n if(options.subtitleLangKey) {\r\n this.subtitle.append(i18n(options.subtitleLangKey));\r\n }\r\n \r\n this.container.append(this.imageDiv, this.title, this.subtitle);\r\n\r\n if(options.withInputWrapper) {\r\n this.inputWrapper = document.createElement('div');\r\n this.inputWrapper.className = 'input-wrapper';\r\n this.container.append(this.inputWrapper);\r\n }\r\n\r\n this.element.append(this.container);\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\nimport type { CancellablePromise } from '../helpers/cancellablePromise';\r\nimport type { InputFile } from '../layer';\r\nimport type { AuthState } from '../types';\r\nimport Button from '../components/button';\r\nimport InputField from '../components/inputField';\r\nimport { putPreloader } from '../components/misc';\r\nimport PopupAvatar from '../components/popups/avatar';\r\nimport appStateManager from '../lib/appManagers/appStateManager';\r\nimport I18n, { i18n } from '../lib/langPack';\r\n//import apiManager from '../lib/mtproto/apiManager';\r\nimport apiManager from '../lib/mtproto/mtprotoworker';\r\nimport RichTextProcessor from '../lib/richtextprocessor';\r\nimport LoginPage from './loginPage';\r\nimport Page from './page';\r\nimport blurActiveElement from '../helpers/dom/blurActiveElement';\r\nimport replaceContent from '../helpers/dom/replaceContent';\r\n\r\nlet authCode: AuthState.signUp['authCode'] = null;\r\n\r\nconst onFirstMount = () => import('../lib/appManagers/appProfileManager').then(imported => {\r\n const page = new LoginPage({\r\n className: 'page-signUp',\r\n withInputWrapper: true,\r\n titleLangKey: 'YourName',\r\n subtitleLangKey: 'Login.Register.Subtitle'\r\n });\r\n\r\n page.imageDiv.classList.add('avatar-edit');\r\n\r\n page.title.classList.add('fullName');\r\n\r\n const avatarPreview = document.createElement('canvas');\r\n avatarPreview.id = 'canvas-avatar';\r\n avatarPreview.className = 'avatar-edit-canvas';\r\n\r\n const addIco = document.createElement('span');\r\n addIco.className = 'tgico tgico-cameraadd';\r\n\r\n page.imageDiv.append(avatarPreview, addIco);\r\n \r\n const appProfileManager = imported.default;\r\n\r\n let uploadAvatar: () => CancellablePromise<InputFile>;\r\n page.imageDiv.addEventListener('click', () => {\r\n new PopupAvatar().open(avatarPreview, (_uploadAvatar) => {\r\n uploadAvatar = _uploadAvatar;\r\n });\r\n });\r\n\r\n const handleInput = (e: Event) => {\r\n const name = nameInputField.value || '';\r\n const lastName = lastNameInputField.value || '';\r\n\r\n const fullName = name || lastName \r\n ? (name + ' ' + lastName).trim() \r\n : '';\r\n \r\n if(fullName) replaceContent(page.title, RichTextProcessor.wrapEmojiText(fullName));\r\n else replaceContent(page.title, i18n('YourName'));\r\n };\r\n\r\n let sendAvatar = () => new Promise<void>((resolve, reject) => {\r\n if(!uploadAvatar) {\r\n //console.log('User has not selected avatar');\r\n return resolve();\r\n }\r\n\r\n //console.log('invoking uploadFile...');\r\n uploadAvatar().then((inputFile) => {\r\n //console.log('uploaded smthn', inputFile);\r\n \r\n appProfileManager.uploadProfilePhoto(inputFile).then(resolve, reject);\r\n }, reject);\r\n });\r\n\r\n const nameInputField = new InputField({\r\n label: 'FirstName',\r\n maxLength: 70\r\n });\r\n\r\n const lastNameInputField = new InputField({\r\n label: 'LastName',\r\n maxLength: 64\r\n });\r\n\r\n const btnSignUp = Button('btn-primary btn-color-primary');\r\n const btnI18n = new I18n.IntlElement({key: 'StartMessaging'});\r\n btnSignUp.append(btnI18n.element);\r\n\r\n page.inputWrapper.append(nameInputField.container, lastNameInputField.container, btnSignUp);\r\n\r\n nameInputField.input.addEventListener('input', handleInput);\r\n lastNameInputField.input.addEventListener('input', handleInput);\r\n\r\n btnSignUp.addEventListener('click', function(this: typeof btnSignUp, e) {\r\n if(nameInputField.input.classList.contains('error') || lastNameInputField.input.classList.contains('error')) {\r\n return false;\r\n }\r\n\r\n if(!nameInputField.value.length) {\r\n nameInputField.input.classList.add('error');\r\n return false;\r\n }\r\n\r\n this.disabled = true;\r\n\r\n const name = nameInputField.value.trim();\r\n const lastName = lastNameInputField.value.trim();\r\n\r\n const params = {\r\n phone_number: authCode.phone_number,\r\n phone_code_hash: authCode.phone_code_hash,\r\n first_name: name,\r\n last_name: lastName\r\n };\r\n\r\n //console.log('invoking auth.signUp with params:', params);\r\n\r\n btnI18n.update({key: 'PleaseWait'});\r\n const preloader = putPreloader(this);\r\n\r\n apiManager.invokeApi('auth.signUp', params)\r\n .then((response) => {\r\n //console.log('auth.signUp response:', response);\r\n \r\n switch(response._) {\r\n case 'auth.authorization': // success\r\n apiManager.setUser(response.user);\r\n\r\n sendAvatar().finally(() => {\r\n import('./pageIm').then(m => {\r\n m.default.mount();\r\n });\r\n });\r\n \r\n break;\r\n default:\r\n btnI18n.update({key: response._ as any});\r\n this.removeAttribute('disabled');\r\n preloader.remove();\r\n break;\r\n }\r\n\r\n /* (document.body.getElementsByClassName('page-sign')[0] as HTMLDivElement).style.display = 'none';\r\n pageAuthCode(Object.assign(code, {phoneNumber})); */\r\n }).catch(err => {\r\n this.removeAttribute('disabled');\r\n preloader.remove();\r\n\r\n switch(err.type) {\r\n default:\r\n btnI18n.update({key: err.type});\r\n break;\r\n }\r\n });\r\n });\r\n\r\n blurActiveElement();\r\n return new Promise((resolve) => {\r\n window.requestAnimationFrame(resolve);\r\n });\r\n});\r\n\r\nconst page = new Page('page-signUp', true, onFirstMount, (_authCode: typeof authCode) => {\r\n authCode = _authCode;\r\n\r\n appStateManager.pushToState('authState', {_: 'authStateSignUp', authCode: _authCode});\r\n});\r\n\r\nexport default page;\r\n"],"names":["readBlobAs","blob","method","Promise","resolve","reader","FileReader","addEventListener","e","target","result","readBlobAsArrayBuffer","readBlobAsUint8Array","then","buffer","Uint8Array","CacheStorageController","constructor","dbName","useStorage","this","STORAGES","length","openDatabase","push","openDbPromise","caches","open","delete","entryName","timeoutOperation","cache","deleteAll","get","match","save","response","put","getFile","fileName","saveFile","Blob","Response","headers","size","callback","reject","rejected","timeout","setTimeout","undefined","res","err","clearTimeout","getFileWriter","mimeType","fakeWriter","catch","static","enabled","all","map","storage","blobSupported","isAvailable","write","fileWriter","bytes","arr","getFakeFileWriter","saveFileCallback","blobParts","part","truncate","finalize","saveToStorage","LoginPage","options","element","document","body","querySelector","className","container","createElement","imageDiv","title","titleLangKey","append","i18n","subtitle","subtitleLangKey","withInputWrapper","inputWrapper","authCode","imported","page","classList","add","avatarPreview","id","addIco","appProfileManager","default","uploadAvatar","_uploadAvatar","handleInput","name","nameInputField","value","lastName","lastNameInputField","fullName","trim","label","maxLength","btnSignUp","btnI18n","key","input","contains","disabled","params","phone_number","phone_code_hash","first_name","last_name","update","preloader","_","user","inputFile","uploadProfilePhoto","finally","m","mount","removeAttribute","remove","type","window","requestAnimationFrame","_authCode"],"sourceRoot":""}