diff --git a/app.js b/app.js index 5b50ff3..4764be0 100644 --- a/app.js +++ b/app.js @@ -31981,7 +31981,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(f /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/index.js\");\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ant-design/icons */ \"./node_modules/@ant-design/icons/es/index.js\");\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n\n\n\n\nconst downloadLink = (name, url) => {\n const downloadLink = document.createElement('a');\n downloadLink.href = url;\n downloadLink.download = name;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n};\n\nconst icons = {\n encrypting: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"SyncOutlined\"], {\n spin: true\n }),\n failed: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"IssuesCloseOutlined\"], null),\n encrypted: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"LockOutlined\"], null)\n};\n\nconst IconText = ({\n icon,\n text,\n ...props\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"Button\"], _extends({}, props, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(icon)\n}), text);\n\nconst FileView = ({\n file,\n remove\n}) => {\n const icon = icons[file.status];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"List\"].Item, {\n actions: file.link ? [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconText, {\n icon: _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"DeleteOutlined\"],\n danger: true,\n text: \"Delete\",\n onClick: remove\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconText, {\n icon: _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"DeleteOutlined\"],\n type: \"primary\",\n text: \"Download\",\n onClick: () => downloadLink(file.name, file.link)\n })] : []\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"List\"].Item.Meta, {\n avatar: icon,\n title: file.name,\n description: `Encrypted for ${file.reciever}`\n }));\n};\n\nconst _default = FileView;\n/* harmony default export */ __webpack_exports__[\"default\"] = (_default);\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(downloadLink, \"downloadLink\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(icons, \"icons\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(IconText, \"IconText\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(FileView, \"FileView\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(_default, \"default\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///./src/components/File.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/index.js\");\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ant-design/icons */ \"./node_modules/@ant-design/icons/es/index.js\");\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n\n\n\n\nconst downloadLink = (name, blob) => {\n const url = URL.createObjectURL(blob);\n const downloadLink = document.createElement('a');\n downloadLink.href = url;\n downloadLink.download = name;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n};\n\nconst icons = {\n encrypting: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"SyncOutlined\"], {\n spin: true\n }),\n failed: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"IssuesCloseOutlined\"], null),\n encrypted: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"LockOutlined\"], null)\n};\n\nconst share = async (file, fileData) => {\n try {\n navigator.share({\n title: file.name,\n files: fileData\n });\n } catch (err) {\n alert(err);\n }\n};\n\nconst IconText = ({\n icon,\n text,\n ...props\n}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"Button\"], _extends({}, props, {\n icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(icon)\n}), text);\n\nconst FileView = ({\n file,\n remove\n}) => {\n const icon = icons[file.status];\n const fileData = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(() => [new File([file.link || ''], file.name, {\n type: 'text/plain'\n })], [file]);\n const actions = [];\n\n if (file.link) {\n actions.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconText, {\n icon: _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"DeleteOutlined\"],\n danger: true,\n text: \"Delete\",\n onClick: remove\n }));\n }\n\n if (!!navigator.share && navigator.canSare && navigator.canShare({\n files: fileData\n })) {\n actions.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconText, {\n icon: _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"ShareAltOutlined\"],\n text: \"Share\",\n onClick: () => share(file, fileData)\n }));\n }\n\n if (file.link) {\n actions.push( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(IconText, {\n icon: _ant_design_icons__WEBPACK_IMPORTED_MODULE_2__[\"DownloadOutlined\"],\n type: \"primary\",\n text: \"Download\",\n onClick: () => downloadLink(file.name, file.link)\n }));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"List\"].Item, {\n actions: actions\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"List\"].Item.Meta, {\n avatar: icon,\n title: file.name,\n description: `Encrypted for ${file.reciever}`\n }));\n};\n\n__signature__(FileView, \"useMemo{fileData}\");\n\nconst _default = FileView;\n/* harmony default export */ __webpack_exports__[\"default\"] = (_default);\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(downloadLink, \"downloadLink\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(icons, \"icons\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(share, \"share\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(IconText, \"IconText\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(FileView, \"FileView\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n reactHotLoader.register(_default, \"default\", \"/home/runner/work/parcel/parcel/src/components/File.tsx\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///./src/components/File.tsx?"); /***/ }), @@ -32029,7 +32029,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(f /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EncryptionProvider\", function() { return EncryptionProvider; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var openpgp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! openpgp */ \"./node_modules/openpgp/dist/openpgp.js\");\n/* harmony import */ var openpgp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(openpgp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! nanoid */ \"./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/index.js\");\n/* harmony import */ var _Github__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Github */ \"./src/contexts/Github.tsx\");\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n\n\n\n\n\nconst EncryptionContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])({\n files: {},\n addFile: async () => {\n throw new Error('Not using provider');\n },\n addText: async () => {\n throw new Error('Not using provider');\n },\n deleteFile: async () => {\n throw new Error('Not using provider');\n }\n});\n\nconst encrypt = async (keys, content) => {\n const armoredKeys = await Promise.all(keys.map(openpgp__WEBPACK_IMPORTED_MODULE_1__[\"key\"].readArmored));\n console.log(armoredKeys);\n const message = openpgp__WEBPACK_IMPORTED_MODULE_1__[\"message\"].fromText(content);\n const encrypted = await openpgp__WEBPACK_IMPORTED_MODULE_1__[\"encrypt\"]({\n message,\n armor: true,\n publicKeys: armoredKeys.reduce((output, key) => [...output, ...key.keys], [])\n });\n const {\n data\n } = encrypted;\n const blob = new Blob([data], {\n type: 'text/text'\n });\n const url = URL.createObjectURL(blob);\n return url;\n};\n\nconst EncryptionProvider = ({\n children\n}) => {\n const {\n username,\n keys\n } = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"])(_Github__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n const [files, setFiles] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])({});\n const deleteFile = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(id => {\n delete files[id];\n setFiles({ ...files\n });\n }, [files]);\n\n const add = name => {\n const id = Object(nanoid__WEBPACK_IMPORTED_MODULE_2__[\"nanoid\"])();\n antd__WEBPACK_IMPORTED_MODULE_3__[\"message\"].info(`Beginning to encrypt ${name}`);\n const file = {\n name: `${name}.asc`,\n reciever: username,\n status: 'encrypting'\n };\n setFiles(files => ({ ...files,\n [id]: file\n }));\n\n const setError = err => {\n console.error(err);\n setFiles(files => ({ ...files,\n [id]: { ...files[id],\n status: 'failed',\n error: err\n }\n }));\n antd__WEBPACK_IMPORTED_MODULE_3__[\"message\"].error(`Failed to encrypt ${name}`);\n };\n\n const setContent = (text, keys) => {\n const run = async () => {\n try {\n const encrypted = await encrypt(keys, text);\n setFiles(files => ({ ...files,\n [id]: { ...files[id],\n link: encrypted,\n status: 'encrypted'\n }\n }));\n antd__WEBPACK_IMPORTED_MODULE_3__[\"message\"].success(`Done encrypting ${name}`);\n } catch (err) {\n setError(err);\n }\n };\n\n run();\n };\n\n return {\n setContent,\n setError\n };\n };\n\n const addFile = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(async file => {\n if (!keys) return;\n const addedFile = add(file.name);\n const reader = new FileReader();\n reader.onabort = addedFile.setError, reader.onerror = addedFile.setError, reader.onload = () => {\n addedFile.setContent(reader.result, keys);\n };\n reader.readAsText(file);\n }, [keys, username]);\n const addText = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(async (text, name) => {\n if (!keys) return;\n const file = add(`${name}.txt`);\n file.setContent(text, keys);\n }, [keys, username]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(EncryptionContext.Provider, {\n value: {\n files,\n addFile,\n addText,\n deleteFile\n }\n }, children);\n};\n\n__signature__(EncryptionProvider, \"useContext{{ username, keys }}\\nuseState{[files, setFiles]({})}\\nuseCallback{deleteFile}\\nuseCallback{addFile}\\nuseCallback{addText}\");\n\n\nconst _default = EncryptionContext;\n/* harmony default export */ __webpack_exports__[\"default\"] = (_default);\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(EncryptionContext, \"EncryptionContext\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n reactHotLoader.register(encrypt, \"encrypt\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n reactHotLoader.register(EncryptionProvider, \"EncryptionProvider\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n reactHotLoader.register(_default, \"default\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///./src/contexts/Encryption.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EncryptionProvider\", function() { return EncryptionProvider; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var openpgp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! openpgp */ \"./node_modules/openpgp/dist/openpgp.js\");\n/* harmony import */ var openpgp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(openpgp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! nanoid */ \"./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/index.js\");\n/* harmony import */ var _Github__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Github */ \"./src/contexts/Github.tsx\");\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n\n\n\n\n\nconst EncryptionContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])({\n files: {},\n addFile: async () => {\n throw new Error('Not using provider');\n },\n addText: async () => {\n throw new Error('Not using provider');\n },\n deleteFile: async () => {\n throw new Error('Not using provider');\n }\n});\n\nconst encrypt = async (keys, content) => {\n const armoredKeys = await Promise.all(keys.map(openpgp__WEBPACK_IMPORTED_MODULE_1__[\"key\"].readArmored));\n console.log(armoredKeys);\n const message = openpgp__WEBPACK_IMPORTED_MODULE_1__[\"message\"].fromText(content);\n const encrypted = await openpgp__WEBPACK_IMPORTED_MODULE_1__[\"encrypt\"]({\n message,\n armor: true,\n publicKeys: armoredKeys.reduce((output, key) => [...output, ...key.keys], [])\n });\n const {\n data\n } = encrypted;\n const blob = new Blob([data], {\n type: 'text/text'\n }); //const url = URL.createObjectURL(blob);\n\n return blob;\n};\n\nconst EncryptionProvider = ({\n children\n}) => {\n const {\n username,\n keys\n } = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"])(_Github__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n const [files, setFiles] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])({});\n const deleteFile = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(id => {\n delete files[id];\n setFiles({ ...files\n });\n }, [files]);\n\n const add = name => {\n const id = Object(nanoid__WEBPACK_IMPORTED_MODULE_2__[\"nanoid\"])();\n antd__WEBPACK_IMPORTED_MODULE_3__[\"message\"].info(`Beginning to encrypt ${name}`);\n const file = {\n name: `${name}.asc`,\n reciever: username,\n status: 'encrypting'\n };\n setFiles(files => ({ ...files,\n [id]: file\n }));\n\n const setError = err => {\n console.error(err);\n setFiles(files => ({ ...files,\n [id]: { ...files[id],\n status: 'failed',\n error: err\n }\n }));\n antd__WEBPACK_IMPORTED_MODULE_3__[\"message\"].error(`Failed to encrypt ${name}`);\n };\n\n const setContent = (text, keys) => {\n const run = async () => {\n try {\n const encrypted = await encrypt(keys, text);\n setFiles(files => ({ ...files,\n [id]: { ...files[id],\n link: encrypted,\n status: 'encrypted'\n }\n }));\n antd__WEBPACK_IMPORTED_MODULE_3__[\"message\"].success(`Done encrypting ${name}`);\n } catch (err) {\n setError(err);\n }\n };\n\n run();\n };\n\n return {\n setContent,\n setError\n };\n };\n\n const addFile = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(async file => {\n if (!keys) return;\n const addedFile = add(file.name);\n const reader = new FileReader();\n reader.onabort = addedFile.setError, reader.onerror = addedFile.setError, reader.onload = () => {\n addedFile.setContent(reader.result, keys);\n };\n reader.readAsText(file);\n }, [keys, username]);\n const addText = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(async (text, name) => {\n if (!keys) return;\n const file = add(`${name}.txt`);\n file.setContent(text, keys);\n }, [keys, username]);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(EncryptionContext.Provider, {\n value: {\n files,\n addFile,\n addText,\n deleteFile\n }\n }, children);\n};\n\n__signature__(EncryptionProvider, \"useContext{{ username, keys }}\\nuseState{[files, setFiles]({})}\\nuseCallback{deleteFile}\\nuseCallback{addFile}\\nuseCallback{addText}\");\n\n\nconst _default = EncryptionContext;\n/* harmony default export */ __webpack_exports__[\"default\"] = (_default);\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(EncryptionContext, \"EncryptionContext\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n reactHotLoader.register(encrypt, \"encrypt\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n reactHotLoader.register(EncryptionProvider, \"EncryptionProvider\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n reactHotLoader.register(_default, \"default\", \"/home/runner/work/parcel/parcel/src/contexts/Encryption.tsx\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///./src/contexts/Encryption.tsx?"); /***/ }), @@ -32041,7 +32041,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(f /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GithubProvider\", function() { return GithubProvider; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/index.js\");\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n\n\n\nconst Loader = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"Layout\"], {\n style: {\n position: 'fixed',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%'\n }\n}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"Spin\"], {\n size: \"large\"\n}));\n\nconst GithubContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])({\n username: 'unknown',\n state: 'failed'\n});\n\nconst GithubProvider = ({\n username,\n children\n}) => {\n const [keys, setKeys] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])();\n const [state, setState] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('loading');\n const [error, setError] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])();\n const [user, setUser] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])();\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n const run = async () => {\n try {\n const keysRes = await fetch(`https://api.github.com/users/${username}/gpg_keys`);\n const userRes = await fetch(`https://api.github.com/users/${username}`);\n const keys = await keysRes.json();\n const user = await userRes.json();\n setState('ready');\n setKeys(keys.map(key => key.raw_key));\n setUser(user);\n } catch (err) {\n setState('failed');\n setError(err);\n }\n };\n\n run();\n }, [username]);\n\n if (state === 'loading') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Loader, null);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(GithubContext.Provider, {\n value: {\n username,\n user,\n keys,\n state,\n error\n }\n }, children);\n};\n\n__signature__(GithubProvider, \"useState{[keys, setKeys]}\\nuseState{[state, setState]('loading')}\\nuseState{[error, setError]}\\nuseState{[user, setUser]}\\nuseEffect{}\");\n\n\nconst _default = GithubContext;\n/* harmony default export */ __webpack_exports__[\"default\"] = (_default);\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(Loader, \"Loader\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(GithubContext, \"GithubContext\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(GithubProvider, \"GithubProvider\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(_default, \"default\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///./src/contexts/Github.tsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GithubProvider\", function() { return GithubProvider; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/index.js\");\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n\n\n\nconst Loader = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"Layout\"], {\n style: {\n position: 'fixed',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%'\n }\n}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(antd__WEBPACK_IMPORTED_MODULE_1__[\"Spin\"], {\n size: \"large\"\n}));\n\nconst GithubContext = /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])({\n username: 'unknown',\n state: 'failed'\n});\nconst headers = {\n authorization: \"token 22924bb3da8465e7e8575740f2fc0a4971c908db\"\n};\n\nconst GithubProvider = ({\n username,\n children\n}) => {\n const [keys, setKeys] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])();\n const [state, setState] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])('loading');\n const [error, setError] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])();\n const [user, setUser] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])();\n Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(() => {\n const run = async () => {\n try {\n const keysRes = await fetch(`https://api.github.com/users/${username}/gpg_keys`, {\n headers\n });\n const userRes = await fetch(`https://api.github.com/users/${username}`, {\n headers\n });\n const keys = await keysRes.json();\n const user = await userRes.json();\n setState('ready');\n setKeys(keys.map(key => key.raw_key));\n setUser(user);\n } catch (err) {\n setState('failed');\n setError(err);\n }\n };\n\n run();\n }, [username]);\n\n if (state === 'loading') {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Loader, null);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(GithubContext.Provider, {\n value: {\n username,\n user,\n keys,\n state,\n error\n }\n }, children);\n};\n\n__signature__(GithubProvider, \"useState{[keys, setKeys]}\\nuseState{[state, setState]('loading')}\\nuseState{[error, setError]}\\nuseState{[user, setUser]}\\nuseEffect{}\");\n\n\nconst _default = GithubContext;\n/* harmony default export */ __webpack_exports__[\"default\"] = (_default);\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(Loader, \"Loader\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(GithubContext, \"GithubContext\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(headers, \"headers\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(GithubProvider, \"GithubProvider\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n reactHotLoader.register(_default, \"default\", \"/home/runner/work/parcel/parcel/src/contexts/Github.tsx\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/harmony-module.js */ \"./node_modules/webpack/buildin/harmony-module.js\")(module)))\n\n//# sourceURL=webpack:///./src/contexts/Github.tsx?"); /***/ }),