{"version":3,"file":"js/application-a4cbfeb6be6a5e61efce.js","mappings":"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","sources":["webpack://abtion-secret/./app/javascript/images/ sync ^\\.\\/.*$","webpack://abtion-secret/./app/javascript/pages/ sync (","webpack://abtion-secret/./app/javascript/components/ClipboardCopyButton/index.jsx","webpack://abtion-secret/./app/javascript/utils/mountComponents.js","webpack://abtion-secret/./app/javascript/entrypoints/application.js","webpack://abtion-secret/./app/javascript/components/SecretForm/index.jsx","webpack://abtion-secret/./app/javascript/utils/generatePassword.js","webpack://abtion-secret/./app/javascript/utils/encryptSecret.js","webpack://abtion-secret/./app/javascript/components/SecretLink/index.jsx","webpack://abtion-secret/./app/javascript/components/SecretReceipt/index.jsx","webpack://abtion-secret/./app/javascript/pages/SecretNew/index.jsx","webpack://abtion-secret/./app/javascript/components/Button/index.jsx","webpack://abtion-secret/./app/javascript/components/AutosizedTextarea/index.jsx","webpack://abtion-secret/./app/javascript/components/SecretInput/index.jsx","webpack://abtion-secret/./app/javascript/pages/SecretShow/index.jsx","webpack://abtion-secret/./app/javascript/utils/decryptSecret.js"],"sourcesContent":["var map = {\n\t\"./muffi-background-image.jpg\": 171,\n\t\"./muffi-logo.svg\": 537\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 190;","var map = {\n\t\"./SecretNew\": 547,\n\t\"./SecretNew/\": 547,\n\t\"./SecretNew/index\": 547,\n\t\"./SecretNew/index.jsx\": 547,\n\t\"./SecretShow\": 947,\n\t\"./SecretShow/\": 947,\n\t\"./SecretShow/index\": 947,\n\t\"./SecretShow/index.jsx\": 947,\n\t\"pages/SecretNew\": 547,\n\t\"pages/SecretNew/\": 547,\n\t\"pages/SecretNew/index\": 547,\n\t\"pages/SecretNew/index.jsx\": 547,\n\t\"pages/SecretShow\": 947,\n\t\"pages/SecretShow/\": 947,\n\t\"pages/SecretShow/index\": 947,\n\t\"pages/SecretShow/index.jsx\": 947\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 226;","import React from \"react\"\n\nimport Button from \"../Button\"\n\nexport default function ClipboardCopyButton({ value, ...restProps }) {\n const handleCopyClick = () => {\n navigator.clipboard.writeText(value)\n }\n\n return \n}\n","import React from \"react\"\nimport { createRoot } from \"react-dom/client\"\n\nfunction getValidPaths(contexts) {\n return contexts.reduce((res, context) => res.concat(context.keys()), [])\n}\n\nfunction requireComponent(requirePath, contexts) {\n for (let context of contexts) {\n try {\n // Loading a component will raise an error if it fails\n // but we want to be able to try multiple contexts\n return context(requirePath)\n } catch (_e) {\n // eslint-disable-line\n }\n }\n}\n\nfunction getConstructor(className, contexts) {\n const parts = className.split(\".\")\n const filename = parts.shift()\n const keys = parts\n const requirePath = `./${filename}`\n\n // Load the module:\n let component = requireComponent(requirePath, contexts)\n\n if (!component) {\n console.error(`Could not load component: ${requirePath}`) // eslint-disable-line\n console.log(\"Valid paths are:\", getValidPaths(contexts)) // eslint-disable-line\n return\n }\n\n // Then access each key:\n keys.forEach(function (k) {\n component = component[k]\n })\n\n // support `export default`\n if (component.__esModule) {\n component = component[\"default\"]\n }\n return component\n}\n\nexport default function mountComponents(...contexts) {\n const nodes = document.querySelectorAll(\"[data-react-component]\")\n\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i]\n const className = node.getAttribute(\"data-react-component\")\n const constructor = getConstructor(className, contexts)\n\n if (!constructor) continue\n\n const propsJson = node.getAttribute(\"data-react-props\")\n const props = propsJson && JSON.parse(propsJson)\n\n const component = React.createElement(constructor, props)\n const root = createRoot(node)\n root.render(component)\n }\n}\n","import mountComponents from \"../utils/mountComponents\"\n\nrequire.context(\"../images\", true)\n\nrequire(\"../stylesheets/application.scss\")\n\nconst pagesContext = require.context(\n \"../pages\",\n true,\n /(? setSecret(event.currentTarget.value)\n\n const handleSubmit = async (event) => {\n event.preventDefault()\n\n const csrfToken = document.querySelector(\"[name=csrf-token]\")?.content\n const password = generatePassword(passwordLength)\n\n const secretBlob = await encryptSecret(secret, password)\n\n const formData = new FormData()\n formData.append(\"secret\", secretBlob)\n\n const response = await fetch(\"/api/secrets\", {\n method: \"POST\",\n headers: { \"X-Api-Version\": \"v1\", \"X-CSRF-Token\": csrfToken },\n body: formData,\n })\n\n const key = await response.json()\n onSecretStored({ secret, keyPass: `${key}#${password}` })\n }\n\n const secretIsTooLong = secret.length > maxSecretChars\n\n return (\n <>\n
Your secure link lasts for 24 hours, and can only be used once
\n\n \n >\n )\n}\n","export default function generatePassword(passwordLength) {\n const hex = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"\n let output = \"\"\n for (let i = 0; i < passwordLength; ++i) {\n output += hex.charAt(Math.floor(Math.random() * hex.length))\n }\n return output\n}\n","import { createMessage, encrypt } from \"openpgp/lightweight\"\n\nexport default async function (secret, password) {\n const message = await createMessage({ text: secret })\n\n const binary = await encrypt({\n message,\n passwords: [password],\n format: \"binary\",\n })\n\n return new Blob([binary])\n}\n","import React from \"react\"\n\nimport ClipboardCopyButton from \"../ClipboardCopyButton\"\n\nimport \"./style.scss\"\n\nexport default function SecretLink({ children, keyPass }) {\n const link = `${location.origin}/${keyPass}`\n\n return (\n <>\nRemember! It can only be used once
\n\nThe link is either invalid or has already been consumed
\n\n \n \n \n >\n )\n }\n\n return (\n <>\nThe link will NOT work again, so don't close it too early!
\n\n