{"version":3,"sources":["webpack:///./resources/js/Components/Icons.js","webpack:///./resources/js/Components/Sidebar.js","webpack:///./resources/js/Components/TextInput.js","webpack:///./resources/js/Components/TextArea.js","webpack:///./resources/js/Components/LoadingButton.js","webpack:///./resources/js/Components/FeedbackButton.js","webpack:///./resources/js/Components/Header.js","webpack:///./resources/js/Components/Layout.js","webpack:///./resources/js/Components/ProGuardLogo.js","webpack:///./resources/js/Components/AppSweep.js","webpack:///./resources/js/utils.js","webpack:///./resources/js/Config/config.js","webpack:///./resources/js/Components/LoadingIndicator.js","webpack:///./resources/js/Components/ProgressIndicator.js","webpack:///./resources/js/Components/Uploadzone.js"],"names":["AddIcon","props","fill","stroke","viewBox","xmlns","strokeLinecap","strokeLinejoin","strokeWidth","d","ManualIcon","FeedbackIcon","LoadingIcon","className","cx","cy","r","Sidebar","children","href","src","alt","TextInput","label","name","description","errors","id","length","placeholder","TextArea","LoadingButton","loading","disabled","FeedbackButton","useState","error","setError","isOpen","setIsOpen","isSending","setIsSending","email","feedback","values","setValues","handleChange","e","key","target","value","onClick","aria-hidden","role","aria-modal","aria-labelledby","onChange","fetch","config","prefix","method","body","JSON","stringify","then","res","ok","text","err","Header","title","Layout","sidebarButtons","useEffect","document","headerButtons","CookieBanner","ProGuardLogo","textColors","high","medium","low","bgColors","labels","queued","running","success","failed","timeout","unsupported","classNames","BuildStatus","usePage","data","setData","fetchStatus","useCallback","json","result","useInterval","state","build","status","component","Summary","url","rel","summary","map","severity","idx","stats","packageName","version","getAppSweepBrowserSession","a","credentials","ScanButton","callback","setLoading","browserSession","headers","appSweepBrowserSessionId","sessionID","AppSweepLogo","x","y","xmlSpace","fillRule","clipRule","AppSweep","hasAppSweepScan","canAppSweepScan","useSize","width","Inertia","replace","only","toFormData","formData","FormData","Object","keys","field","append","delay","savedCallback","useRef","current","setInterval","clearInterval","showFlashMessages","msgs","forEach","m","type","toast","Fork","msg","toastStyles","copyToClipboard","navigator","clipboard","writeText","textArea","createElement","style","top","left","position","appendChild","focus","select","execCommand","removeChild","toastMsg","txt","hideProgressBar","autoClose","closeOnClick","bodyClassName","location","AccessFlags","PUBLIC","PRIVATE","PROTECTED","STATIC","FINAL","SYNCHRONIZED","VOLATILE","TRANSIENT","NATIVE","INTERFACE","ABSTRACT","SYNTHETIC","process","env","MIX_PP_PREFIX","LoadingIndicator","ProgressIndicator","progress","transform","Uploadzone","postURL","alternativeOption","onStartCallback","setSending","clientFileError","setClientFileError","setProgress","scanWithAppSweep","setScanWithAppSweep","onDropAccepted","acceptedFiles","appSweepBrowserSessionID","resp","file","post","onCancelToken","cancelToken","cancel","onFinish","onProgress","percentage","onDropRejected","files","message","maxSize","maxFiles","multiple","clickable","accept","getRootProps","getInputProps","isDragActive","stopPropagation","checked","htmlFor"],"mappings":"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","file":"js/0.js?id=135245ed292cfc23b42f","sourcesContent":["import React from 'react'\n\nexport const AddIcon = (props) => (\n \n \n \n)\n\nexport const ManualIcon = (props) => (\n \n \n \n)\n\nexport const SupportIcon = (props) => (\n \n \n \n)\n\nexport const FeedbackIcon = (props) => (\n \n \n \n)\n\nexport const LoadingIcon = (props) => {\n return (\n \n \n \n \n )\n}\n","import React from 'react'\nimport { InertiaLink } from '@inertiajs/inertia-react'\n\nconst Sidebar = ({ children }) => {\n return (\n \n )\n}\n\nexport default Sidebar\n","import React from 'react'\n\nconst TextInput = ({\n label,\n name,\n description,\n className,\n errors = [],\n ...props\n}) => {\n return (\n
\n \n {description &&

{description}

}\n {errors &&
{errors[0]}
}\n
\n )\n}\n\nexport default TextInput\n","import React from 'react'\n\nconst TextArea = ({\n label,\n name,\n description,\n className,\n errors = [],\n ...props\n}) => {\n return (\n
\n \n {description &&

{description}

}\n {errors &&
{errors[0]}
}\n
\n )\n}\n\nexport default TextArea\n","import React from 'react'\n\nconst LoadingButton = ({ loading, className, children, ...props }) => {\n return (\n \n {loading &&
}\n {children}\n \n )\n}\n\nexport default LoadingButton\n","import React, { useState } from 'react'\nimport { FeedbackIcon } from '@/Components/Icons'\nimport TextInput from '@/Components/TextInput'\nimport TextArea from '@/Components/TextArea'\nimport LoadingButton from '@/Components/LoadingButton'\nimport config from '@/Config/config'\n\nconst FeedbackButton = () => {\n const [error, setError] = useState(null)\n const [isOpen, setIsOpen] = useState(false)\n const [isSending, setIsSending] = useState(false)\n\n const [values, setValues] = useState({\n email: '',\n feedback: '',\n })\n\n const handleChange = (e) => {\n const key = e.target.name\n const value = e.target.value\n setValues((values) => ({\n ...values,\n [key]: value,\n }))\n }\n\n const sendFeedback = () => {\n setError(null)\n setIsSending(true)\n fetch(config.prefix + '/feedback', {\n method: 'post',\n body: JSON.stringify(values),\n })\n .then((res) => {\n if (!res.ok) {\n return res.text().then((err) => {\n setError(err)\n })\n }\n setIsOpen(false)\n setValues({\n email: '',\n feedback: '',\n })\n })\n .finally(() => {\n setIsSending(false)\n })\n }\n\n return (\n <>\n setIsOpen(true)}\n className=\"group flex text-gray-600 hover:bg-gray-100 focus:outline-none items-center space-x-1 border border-gray-200 rounded px-2 py-1 text-sm disabled:pointer-events-none disabled:text-gray-400\"\n >\n \n Feedback?\n \n \n
\n
\n
\n
\n\n \n ​\n \n \n
\n

\n
\n \n
\n Feedback\n

\n

\n Use the form below to submit your comments and suggestions\n regarding ProGuard Playground. We would love to hear more about\n what you like, dislike and what you feel can be improved.\n

\n {error && (\n
\n {error}\n
\n )}\n
\n \n \n
\n
\n
\n sendFeedback(false)}\n className=\"w-full inline-flex justify-center rounded-md shadow-sm px-4 py-2 bg-primary-dark text-base font-medium text-white hover:bg-opacity-80 focus:outline-none sm:ml-3 sm:w-auto sm:text-sm disabled:cursor-not-allowed\"\n disabled={values.feedback.length == 0}\n >\n Send!\n \n setIsOpen(false)}\n className=\"w-full inline-flex justify-center rounded-md shadow-sm px-4 py-2 bg-gray-400 text-base font-medium text-white hover:bg-opacity-80 focus:outline-none sm:ml-3 sm:w-auto sm:text-sm\"\n >\n Cancel\n \n
\n
\n
\n \n \n )\n}\n\nexport default FeedbackButton\n","import React from 'react'\nimport FeedbackButton from '@/Components/FeedbackButton'\n\nconst Header = (props) => {\n return (\n
\n \n
\n
\n {props.title}\n \n {props.children}\n
\n \n
\n
\n
\n \n
\n )\n}\n\nexport default Header\n","import React, { useEffect } from 'react'\nimport Sidebar from '@/Components/Sidebar'\nimport Header from '@/Components/Header'\nimport CookieBanner from '@/Components/CookieBanner'\nconst Layout = ({ title, sidebarButtons, ...props }) => {\n useEffect(() => {\n document.title = title\n }, [title])\n\n return (\n
\n {sidebarButtons}\n
\n
{props.headerButtons}
\n
{props.children}
\n
\n \n
\n )\n}\n\nexport default Layout\n","import React from 'react'\n\nconst ProGuardLogo = (props) => (\n \n \n \n \n)\n\nexport default ProGuardLogo\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { useSize } from 'react-use'\nimport { LoadingIcon } from '@/Components/Icons'\nimport { usePage } from '@inertiajs/inertia-react'\nimport config from '@/Config/config'\nimport { Inertia } from '@inertiajs/inertia'\nimport { useInterval } from '@/utils'\n\nconst AppSweep = () => {\n const { hasAppSweepScan, canAppSweepScan, id } = usePage()\n if (!canAppSweepScan) {\n return null\n }\n\n const [sized] = useSize(({ width }) => {\n return (\n
\n 420 ? 'flex space-x-4 h-20' : 'space-y-5'\n }`}\n >\n \n \n \n {hasAppSweepScan ? (\n \n ) : (\n \n Inertia.replace(`${config.prefix}/p/${id}`, {\n method: 'get',\n only: ['hasAppSweepScan'],\n })\n }\n />\n )}\n
\n \n )\n })\n\n return sized\n}\n\nconst textColors = {\n high: 'text-red-500',\n medium: 'text-orange-500',\n low: 'text-yellow-400',\n}\n\nconst bgColors = {\n high: 'bg-red-500',\n medium: 'bg-orange-500',\n low: 'bg-yellow-400',\n}\n\nconst labels = {\n queued: 'Queued',\n running: 'Running',\n success: 'Success',\n failed: 'Failed',\n timeout: 'Timeout',\n unsupported: 'Only Android applications are supported by AppSweep',\n}\n\nconst classNames = {\n queued: 'bg-primary-500 bg-opacity-10 text-primary-500',\n running: 'bg-yellow-100 text-yellow-800',\n success: 'bg-green-100 text-green-800',\n failed: 'bg-red-100 text-red-800',\n timeout: 'bg-red-100 text-red-800',\n unsupported: 'bg-red-100 text-red-800',\n}\n\nconst BuildStatus = () => {\n const { id } = usePage()\n const [data, setData] = useState(null)\n const [error, setError] = useState(false)\n\n const fetchStatus = useCallback(() => {\n setError(false)\n fetch(`${config.prefix}/p/${id}/appsweep/status`)\n .then((res) => res.json())\n .then((result) => {\n setData(result)\n })\n .catch(() => {\n setError(true)\n })\n }, [id])\n\n useEffect(() => {\n fetchStatus()\n }, [id])\n\n useInterval(\n fetchStatus,\n data != null &&\n (data.state === 'scheduling' ||\n data.build.status === 'running' ||\n data.build.status === 'queued')\n ? 5000\n : null,\n )\n\n if (error) {\n return (\n
\n

\n Failed to get build info from AppSweep. Please try again later.\n

\n
\n )\n }\n\n if (!data || data.state === 'scheduling') {\n return (\n
\n \n
\n )\n }\n\n let component = null\n if (data.build.status === 'success') {\n component = \n } else {\n component = (\n \n {labels[data.build.status]}\n {data.status === 'running' && (\n \n )}\n \n )\n }\n\n return (\n \n {component}\n \n )\n}\n\nconst Summary = (summary) => {\n return (\n
\n
\n {['high', 'medium', 'low'].map((severity, idx) => (\n \n \n {summary.stats[severity] ?? 0}\n \n {severity}\n
\n ))}\n
\n
\n {summary.packageName}\n ·\n {summary.version}\n
\n \n )\n}\n\nexport const getAppSweepBrowserSession = async () => {\n return fetch('/appsweep/url')\n .then((r) => r.text())\n .then((url) =>\n fetch(`${url}/api/integrations/playground/session`, {\n credentials: 'include',\n }).then((r) => r.json()),\n )\n}\n\nconst ScanButton = ({ callback }) => {\n const { id } = usePage()\n const [error, setError] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const onClick = async () => {\n try {\n setLoading(true)\n setError(false)\n const browserSession = await getAppSweepBrowserSession()\n fetch(`${config.prefix}/p/${id}/appsweep/schedule`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n appSweepBrowserSessionId: browserSession.sessionID,\n }),\n }).then(callback)\n } catch {\n setError(true)\n setLoading(false)\n }\n }\n\n return (\n
\n \n Learn more\n \n \n \n \n \n Scan now!\n {loading && }\n \n {error && (\n

\n Failed to get build info from AppSweep. Please try again later.\n

\n )}\n
\n )\n}\n\nconst AppSweepLogo = (props) => (\n \n \n \n \n \n)\n\nexport default AppSweep\n","import React, { useEffect, useRef } from 'react'\nimport { toast } from 'react-toastify'\n\n// Transforms key/value pairs to FormData() object\nexport function toFormData(values = {}) {\n const formData = new FormData()\n for (const field of Object.keys(values)) {\n formData.append(field, values[field])\n }\n return formData\n}\n\n// The useInterval hook can be used to perform polling.\nexport function useInterval(callback, delay) {\n const savedCallback = useRef()\n // Remember the latest callback\n useEffect(() => {\n savedCallback.current = callback\n }, [callback])\n\n // Set up the interval\n useEffect(() => {\n function tick() {\n savedCallback.current()\n }\n if (delay != null) {\n const id = setInterval(tick, delay)\n return () => clearInterval(id)\n }\n }, [callback, delay])\n}\n\n/*\n * Flash messages and toasts\n */\n\nexport function showFlashMessages(msgs = []) {\n msgs?.forEach((m) => {\n switch (m.type) {\n case 'fork':\n toast(, toastStyles)\n break\n case 'save':\n toast(, toastStyles)\n break\n case 'trim':\n toast(\n ,\n toastStyles,\n )\n break\n }\n })\n}\n\nexport function copyToClipboard(text) {\n if (navigator?.clipboard) {\n navigator.clipboard.writeText(text)\n } else {\n var textArea = document.createElement('textarea')\n textArea.value = text\n\n // Avoid scrolling to bottom\n textArea.style.top = '0'\n textArea.style.left = '0'\n textArea.style.position = 'fixed'\n\n document.body.appendChild(textArea)\n textArea.focus()\n textArea.select()\n\n document.execCommand('copy')\n document.body.removeChild(textArea)\n }\n}\n\nexport function toastMsg(txt) {\n toast(
{txt}
, toastStyles)\n}\n\nconst toastStyles = {\n hideProgressBar: true,\n autoClose: 5000,\n closeOnClick: true,\n bodyClassName: 'text-xs text-white flex justify-center',\n}\n\nconst Fork = ({ msg }) => {\n let copy = '\\nThe URL was copied into your clipboard.'\n copyToClipboard(document.location)\n return
{msg + copy}
\n}\n\n/**\n * Java access flags\n */\nexport const AccessFlags = {\n PUBLIC: 0x0001,\n PRIVATE: 0x0002,\n PROTECTED: 0x0004,\n STATIC: 0x0008,\n FINAL: 0x0010,\n SYNCHRONIZED: 0x0020,\n VOLATILE: 0x0040,\n TRANSIENT: 0x0080,\n NATIVE: 0x0100,\n INTERFACE: 0x0200,\n ABSTRACT: 0x0400,\n SYNTHETIC: 0x1000,\n}\n","const config = {\n prefix: process.env.MIX_PP_PREFIX || '',\n}\nexport default config\n","import React from 'react'\n\nconst LoadingIndicator = () => (\n \n \n \n \n)\n\nexport default LoadingIndicator\n","import React from 'react'\n\nconst ProgressIndicator = ({ progress }) => {\n return (\n
\n
\n
\n
\n
{`${progress} %`}
\n \n )\n}\n\nexport default ProgressIndicator\n","import React, { useCallback, useState } from 'react'\nimport { Inertia } from '@inertiajs/inertia'\nimport { usePage } from '@inertiajs/inertia-react'\nimport Dropzone from 'react-dropzone'\nimport { toFormData } from '@/utils'\nimport LoadingIndicator from '@/Components/LoadingIndicator'\nimport ProgressIndicator from '@/Components/ProgressIndicator'\nimport { getAppSweepBrowserSession } from '@/Components/AppSweep'\n\nconst Uploadzone = ({\n className,\n postURL,\n alternativeOption,\n onStartCallback,\n}) => {\n const [isSending, setSending] = useState(false)\n const [clientFileError, setClientFileError] = useState(null)\n const [progress, setProgress] = useState(0)\n const [scanWithAppSweep, setScanWithAppSweep] = useState(false)\n const { errors } = usePage()\n\n const onDropAccepted = useCallback(\n async (acceptedFiles) => {\n setClientFileError(null)\n setSending(true)\n setProgress(0)\n let appSweepBrowserSessionID = null\n\n if (scanWithAppSweep) {\n try {\n const resp = await getAppSweepBrowserSession()\n appSweepBrowserSessionID = resp.sessionID\n } catch {\n // In case there's an error, just continue without scanning the app.\n }\n }\n const formData = toFormData({\n scanWithAppSweep: scanWithAppSweep && appSweepBrowserSessionID != null,\n appSweepBrowserSessionID: appSweepBrowserSessionID,\n file: acceptedFiles[0],\n })\n\n Inertia.post(postURL, formData, {\n onCancelToken: (cancelToken) => {\n onStartCallback &&\n onStartCallback(() => {\n cancelToken.cancel()\n })\n },\n onFinish: () => {\n setSending(false)\n },\n onProgress: (e) => {\n setProgress(e.percentage)\n },\n })\n },\n [scanWithAppSweep],\n )\n\n const onDropRejected = useCallback((files) => {\n setClientFileError(files[0]?.errors[0]?.message)\n })\n\n if (isSending) {\n return (\n
\n \n

\n {progress < 100 ? 'Uploading file...' : 'Almost there, hang tight!'}\n

\n \n
\n )\n }\n return (\n \n {({ getRootProps, getInputProps, isDragActive }) => (\n \n \n \n \n \n {isDragActive ? (\n

\n Drop here\n

\n ) : (\n <>\n {errors &&

{errors.file}

}\n {clientFileError && (\n

{clientFileError}

\n )}\n

\n Drag and drop your .apk or .jar file\n here (max 200MB)\n

\n

or

\n \n
\n {\n e.stopPropagation()\n }}\n onChange={() => setScanWithAppSweep(!scanWithAppSweep)}\n checked={scanWithAppSweep}\n />\n \n
\n {alternativeOption}\n \n )}\n \n )}\n \n )\n}\n\nexport default Uploadzone\n"],"sourceRoot":""}