From 2e16a8b4f4bb778ef1b2825c5f98dddb374ec358 Mon Sep 17 00:00:00 2001 From: Weirdo Date: Sat, 17 Oct 2020 21:02:28 +0200 Subject: [PATCH] Updates --- asset-manifest.json | 8 ++++---- index.html | 2 +- ... precache-manifest.764e21fef07d15bce1c0764aa01da88e.js | 8 ++++---- service-worker.js | 2 +- static/js/main.4d5bdc4a.chunk.js | 2 ++ static/js/main.4d5bdc4a.chunk.js.map | 1 + static/js/main.c1c4efa9.chunk.js | 2 -- static/js/main.c1c4efa9.chunk.js.map | 1 - 8 files changed, 13 insertions(+), 13 deletions(-) rename precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js => precache-manifest.764e21fef07d15bce1c0764aa01da88e.js (76%) create mode 100644 static/js/main.4d5bdc4a.chunk.js create mode 100644 static/js/main.4d5bdc4a.chunk.js.map delete mode 100644 static/js/main.c1c4efa9.chunk.js delete mode 100644 static/js/main.c1c4efa9.chunk.js.map diff --git a/asset-manifest.json b/asset-manifest.json index e4486a0..8a885d7 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,14 +1,14 @@ { "files": { "main.css": "/static/css/main.5f361e03.chunk.css", - "main.js": "/static/js/main.c1c4efa9.chunk.js", - "main.js.map": "/static/js/main.c1c4efa9.chunk.js.map", + "main.js": "/static/js/main.4d5bdc4a.chunk.js", + "main.js.map": "/static/js/main.4d5bdc4a.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.e9d18258.js", "runtime-main.js.map": "/static/js/runtime-main.e9d18258.js.map", "static/js/2.bfe76566.chunk.js": "/static/js/2.bfe76566.chunk.js", "static/js/2.bfe76566.chunk.js.map": "/static/js/2.bfe76566.chunk.js.map", "index.html": "/index.html", - "precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js": "/precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js", + "precache-manifest.764e21fef07d15bce1c0764aa01da88e.js": "/precache-manifest.764e21fef07d15bce1c0764aa01da88e.js", "service-worker.js": "/service-worker.js", "static/css/main.5f361e03.chunk.css.map": "/static/css/main.5f361e03.chunk.css.map", "static/js/2.bfe76566.chunk.js.LICENSE.txt": "/static/js/2.bfe76566.chunk.js.LICENSE.txt", @@ -18,6 +18,6 @@ "static/js/runtime-main.e9d18258.js", "static/js/2.bfe76566.chunk.js", "static/css/main.5f361e03.chunk.css", - "static/js/main.c1c4efa9.chunk.js" + "static/js/main.4d5bdc4a.chunk.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 1826244..8de3c20 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -React App
\ No newline at end of file +React App
\ No newline at end of file diff --git a/precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js b/precache-manifest.764e21fef07d15bce1c0764aa01da88e.js similarity index 76% rename from precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js rename to precache-manifest.764e21fef07d15bce1c0764aa01da88e.js index c8b49e4..acfb3a7 100644 --- a/precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js +++ b/precache-manifest.764e21fef07d15bce1c0764aa01da88e.js @@ -1,10 +1,10 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "237733404df6a3a4baa3e530f788fcc9", + "revision": "c97586fca5f037c595b753cecfe3752f", "url": "/index.html" }, { - "revision": "bc912965137a2eba31a1", + "revision": "d7d8e58e4fd3ba984552", "url": "/static/css/main.5f361e03.chunk.css" }, { @@ -16,8 +16,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/js/2.bfe76566.chunk.js.LICENSE.txt" }, { - "revision": "bc912965137a2eba31a1", - "url": "/static/js/main.c1c4efa9.chunk.js" + "revision": "d7d8e58e4fd3ba984552", + "url": "/static/js/main.4d5bdc4a.chunk.js" }, { "revision": "d271f6cd182fc1f92a38", diff --git a/service-worker.js b/service-worker.js index 57ed112..de59e70 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.111a0176e9ae72d6704987b77b2be2a8.js" + "/precache-manifest.764e21fef07d15bce1c0764aa01da88e.js" ); self.addEventListener('message', (event) => { diff --git a/static/js/main.4d5bdc4a.chunk.js b/static/js/main.4d5bdc4a.chunk.js new file mode 100644 index 0000000..21454e8 --- /dev/null +++ b/static/js/main.4d5bdc4a.chunk.js @@ -0,0 +1,2 @@ +(this["webpackJsonpmaterial-pg-01"]=this["webpackJsonpmaterial-pg-01"]||[]).push([[0],{71:function(e,t,a){e.exports=a(87)},76:function(e,t,a){},77:function(e,t,a){e.exports=a.p+"static/media/logo.5d5d9eef.svg"},78:function(e,t,a){},87:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(9),o=a.n(i),c=(a(76),a(77),a(78),a(52),a(5)),s=a(123),l=a(119),u=a(118),m=a(121),p=a(115),d=a(122),h=a(34),v=a.n(h),f=a(88),g=a(116),y=a(117);Object(g.a)((function(e){return{paper:{marginTop:e.spacing(8),display:"flex",flexDirection:"column",alignItems:"center"},avatar:{margin:e.spacing(1),backgroundColor:e.palette.secondary.main},form:{width:"100%",marginTop:e.spacing(1)}}})),Object(c.a)({root:{marginRight:8,"& .MuiInputBase-root.Mui-disabled":{color:"rgba(0, 0, 0, 0.6)"}}})(m.a);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var b=a(36),k=a.n(b),E=a(45),x=a(46),w=a(47),C=a(53),B=a(51),j=a(50),O=a(120),A=a(49),I=a.n(A),D=a(48);function N(){return r.a.createElement(f.a,{variant:"body2",color:"textSecondary",align:"center"},"Copyright \xa9 ",r.a.createElement(p.a,{color:"inherit",href:"https://audible-tools.github.io/"},"audible-tools")," ",(new Date).getFullYear(),".")}var W=function(e){Object(C.a)(a,e);var t=Object(B.a)(a);function a(e){var n;return Object(x.a)(this,a),(n=t.call(this,e)).DarkerDisabledTextField=Object(c.a)({root:{marginRight:8,"& .MuiInputBase-root.Mui-disabled":{color:"rgba(0, 0, 0, 0.6)"}}})(m.a),n.setChecksum=function(e){e.length>40||n.setState({checksum:e})},n.isChecksumValid=function(){var e=n.state.checksum;return RegExp("[a-f0-9]{40}").test(e)},n.isInputInvalid=function(){var e=n.state.checksum;return!(!e||""===e)&&!n.isChecksumValid()},n.requestActivationBytes=function(){var e=n.state.checksum;fetch("https://aax.api.j-kit.me/api/v2/activation/"+e).then((function(e){return e.json()})).then((function(e){var t=e.success;e.activationBytes;!0===t?n.setState({activationBytes:e.activationBytes}):n.setState({activationBytes:"UNKNOWN"})}),(function(e){n.setState({activationBytes:"UNKNOWN"})}))},n.acceptFile=function(){var e=Object(E.a)(k.a.mark((function e(t){var a,r,i;return k.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((a=t[0]).name.toLowerCase().endsWith(".aax")){e.next=4;break}return alert("FileType not supported!"),e.abrupt("return");case 4:return r=a.slice(653,673),e.t0=n,e.next=8,r.arrayBuffer();case 8:e.t1=e.sent,i=e.t0.buf2hex.call(e.t0,e.t1),n.setChecksum(i),n.requestActivationBytes();case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),n.state={checksum:""},n}return Object(w.a)(a,[{key:"buf2hex",value:function(e){return Array.prototype.map.call(new Uint8Array(e),(function(e){return("00"+e.toString(16)).slice(-2)})).join("")}},{key:"render",value:function(){var e=this,t=this.props.classes,a=this.state,n=a.checksum,i=a.activationBytes;return r.a.createElement(y.a,{component:"main",maxWidth:"xs"},r.a.createElement(u.a,null),r.a.createElement("div",{className:t.paper},r.a.createElement(s.a,{className:t.avatar},r.a.createElement(v.a,null)),r.a.createElement(f.a,{component:"h1",variant:"h5"},"AAX Checksum Resolver"),r.a.createElement("form",{className:t.form,noValidate:!0},r.a.createElement(j.a,{noClick:!0,onDrop:function(t){console.log(t),e.acceptFile(t)}},(function(t){var a=t.getRootProps,i=t.getInputProps;return r.a.createElement("section",null,r.a.createElement("div",a(),r.a.createElement("input",i()),r.a.createElement(m.a,{error:e.isInputInvalid(),variant:"outlined",margin:"normal",required:!0,fullWidth:!0,id:"checksum",label:"Checksum or Drag&Drop .aax file -",name:"checksum",autoComplete:"checksum",autoFocus:!0,onChange:function(t){return e.setChecksum(t.target.value)},value:n})))})),r.a.createElement(l.a,{fullWidth:!0,variant:"contained",onClick:function(){e.requestActivationBytes()},disabled:!this.isChecksumValid()},"Request Activation Bytes"),r.a.createElement(this.DarkerDisabledTextField,{value:i,disabled:!0,variant:"outlined",margin:"normal",fullWidth:!0,id:"activationBytes",label:i?"":"Activation Bytes",name:"activationBytes",autoComplete:"activationBytes","aria-readonly":!0,InputProps:{readOnly:!0,endAdornment:r.a.createElement(D.CopyToClipboard,{text:i},r.a.createElement(O.a,null,r.a.createElement(I.a,null)))}}))),r.a.createElement(d.a,{mt:1},r.a.createElement(N,null)))}}]),a}(r.a.Component),T=Object(c.a)((function(e){return{paper:{marginTop:e.spacing(8),display:"flex",flexDirection:"column",alignItems:"center"},avatar:{margin:e.spacing(1),backgroundColor:e.palette.secondary.main},form:{width:"100%",marginTop:e.spacing(1)}}}))(W),F=a(37);F.a.initialize("UA-174657678-1"),F.a.pageview(window.location.pathname+window.location.search),o.a.render(r.a.createElement(T,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))}},[[71,1,2]]]); +//# sourceMappingURL=main.4d5bdc4a.chunk.js.map \ No newline at end of file diff --git a/static/js/main.4d5bdc4a.chunk.js.map b/static/js/main.4d5bdc4a.chunk.js.map new file mode 100644 index 0000000..b968346 --- /dev/null +++ b/static/js/main.4d5bdc4a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["logo.svg","SignIn.js","serviceWorker.js","ChecksumResolver.js","index.js"],"names":["module","exports","makeStyles","theme","paper","marginTop","spacing","display","flexDirection","alignItems","avatar","margin","backgroundColor","palette","secondary","main","form","width","withStyles","root","marginRight","color","TextField","Boolean","window","location","hostname","match","Copyright","Typography","variant","align","Link","href","Date","getFullYear","ChecksumResolver","props","DarkerDisabledTextField","setChecksum","value","length","setState","checksum","isChecksumValid","state","RegExp","test","isInputInvalid","requestActivationBytes","fetch","then","res","json","result","success","activationBytes","error","acceptFile","files","a","file","name","toLowerCase","endsWith","alert","slic","slice","arrayBuffer","results","buf2hex","buffer","Array","prototype","map","call","Uint8Array","x","toString","join","classes","this","Container","component","maxWidth","CssBaseline","className","Avatar","noValidate","noClick","onDrop","acceptedFiles","console","log","getRootProps","getInputProps","required","fullWidth","id","label","autoComplete","autoFocus","onChange","target","Button","onClick","disabled","aria-readonly","InputProps","readOnly","endAdornment","text","IconButton","Box","mt","React","Component","ReactGA","initialize","pageview","pathname","search","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","message"],"mappings":"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","file":"static/js/main.4d5bdc4a.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.5d5d9eef.svg\";","import React, { useState } from 'react';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport Link from '@material-ui/core/Link';\r\nimport Box from '@material-ui/core/Box';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Container from '@material-ui/core/Container';\r\n\r\nfunction Copyright() {\r\n return (\r\n \r\n {'Copyright © '}\r\n \r\n Your Website\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(8),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n }\r\n\r\n}));\r\n\r\nconst DarkerDisabledTextField = withStyles({\r\n root: {\r\n marginRight: 8,\r\n \"& .MuiInputBase-root.Mui-disabled\": {\r\n color: \"rgba(0, 0, 0, 0.6)\" // (default alpha is 0.38)\r\n }\r\n }\r\n})(TextField);\r\n\r\nexport default function SignIn() {\r\n const classes = useStyles();\r\n\r\n const [checksumValue, setChecksumValue] = useState(\"\");\r\n\r\n return (\r\n \r\n {/*
\r\n

You clicked {count} times

\r\n \r\n
*/}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n AAX Checksum Resolver\r\n \r\n
\r\n setChecksumValue(x.target.value)}\r\n />\r\n\r\n { alert(checksumValue) }}\r\n >\r\n Request Activation Bytes\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React, { useState } from 'react';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport Link from '@material-ui/core/Link';\r\nimport Box from '@material-ui/core/Box';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\n\r\nimport Dropzone from 'react-dropzone'\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FileCopyOutlined from '@material-ui/icons/FileCopyOutlined';\r\n\r\n\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\n\r\n\r\nconst useStyles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(8),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\n\r\nfunction Copyright() {\r\n return (\r\n \r\n {'Copyright © '}\r\n \r\n audible-tools\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n );\r\n}\r\n\r\nclass ChecksumResolver extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checksum: \"\"\r\n }\r\n }\r\n\r\n\r\n DarkerDisabledTextField = withStyles({\r\n root: {\r\n marginRight: 8,\r\n \"& .MuiInputBase-root.Mui-disabled\": {\r\n color: \"rgba(0, 0, 0, 0.6)\" \r\n }\r\n }\r\n })(TextField);\r\n\r\n setChecksum = (value) => {\r\n if (value.length > 40) {\r\n return;\r\n }\r\n this.setState({ checksum: value })\r\n }\r\n\r\n isChecksumValid = () => {\r\n const { checksum } = this.state;\r\n const regex = RegExp('[a-f0-9]{40}');\r\n const testResults = regex.test(checksum);\r\n\r\n return testResults;\r\n }\r\n\r\n isInputInvalid = ()=>{\r\n const { checksum } = this.state;\r\n if(!checksum || checksum === ''){\r\n return false;\r\n }\r\n return !this.isChecksumValid();\r\n };\r\n\r\n requestActivationBytes = () => {\r\n const { checksum } = this.state;\r\n\r\n // fetch(\"https://aaxactivationserviceapi.azurewebsites.net/api/v2/activation/\" + checksum)\r\n // fetch(\"https://localhost:32768/api/v2/activation/\" + checksum)\r\n fetch(\"https://aax.api.j-kit.me/api/v2/activation/\" + checksum)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n const { success, activationBytes } = result;\r\n if (success === true) {\r\n this.setState({ activationBytes: result.activationBytes });\r\n } else {\r\n this.setState({ activationBytes: 'UNKNOWN' });\r\n }\r\n\r\n\r\n },\r\n (error) => {\r\n this.setState({ activationBytes: 'UNKNOWN' });\r\n }\r\n )\r\n }\r\n\r\n buf2hex(buffer) { // buffer is an ArrayBuffer\r\n return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');\r\n }\r\n\r\n acceptFile = async files => {\r\n const file = files[0];\r\n if (!file.name.toLowerCase().endsWith(\".aax\")) {\r\n alert('FileType not supported!');\r\n return;\r\n }\r\n\r\n const slic = file.slice(653, 653 + 20);\r\n const results = this.buf2hex(await slic.arrayBuffer());\r\n this.setChecksum(results)\r\n this.requestActivationBytes();\r\n\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { checksum, activationBytes } = this.state;\r\n\r\n return (\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n AAX Checksum Resolver\r\n \r\n\r\n
\r\n {\r\n console.log(acceptedFiles);\r\n this.acceptFile(acceptedFiles);\r\n //const file = document.getElementById('fileInput').files[0];\r\n\r\n\r\n }}>\r\n {({ getRootProps, getInputProps }) => (\r\n
\r\n
\r\n \r\n this.setChecksum(x.target.value)}\r\n value={checksum}\r\n\r\n />\r\n
\r\n
\r\n )}\r\n \r\n\r\n {\r\n this.requestActivationBytes();\r\n }}\r\n disabled={!this.isChecksumValid()}\r\n >\r\n Request Activation Bytes\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n\r\n />\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(useStyles)(ChecksumResolver);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport ChecksumResolver from './ChecksumResolver';\r\n\r\nimport ReactGA from 'react-ga';\r\nReactGA.initialize('UA-174657678-1');\r\nReactGA.pageview(window.location.pathname + window.location.search);\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.c1c4efa9.chunk.js b/static/js/main.c1c4efa9.chunk.js deleted file mode 100644 index 8eeeb06..0000000 --- a/static/js/main.c1c4efa9.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(this["webpackJsonpmaterial-pg-01"]=this["webpackJsonpmaterial-pg-01"]||[]).push([[0],{71:function(e,t,a){e.exports=a(87)},76:function(e,t,a){},77:function(e,t,a){e.exports=a.p+"static/media/logo.5d5d9eef.svg"},78:function(e,t,a){},87:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),i=a(9),o=a.n(i),c=(a(76),a(77),a(78),a(52),a(5)),s=a(123),l=a(119),u=a(118),m=a(121),p=a(115),d=a(122),h=a(34),v=a.n(h),f=a(88),g=a(116),y=a(117);Object(g.a)((function(e){return{paper:{marginTop:e.spacing(8),display:"flex",flexDirection:"column",alignItems:"center"},avatar:{margin:e.spacing(1),backgroundColor:e.palette.secondary.main},form:{width:"100%",marginTop:e.spacing(1)}}})),Object(c.a)({root:{marginRight:8,"& .MuiInputBase-root.Mui-disabled":{color:"rgba(0, 0, 0, 0.6)"}}})(m.a);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var b=a(36),k=a.n(b),E=a(45),x=a(46),w=a(47),B=a(53),C=a(51),j=a(50),O=a(120),A=a(49),I=a.n(A),D=a(48);function N(){return r.a.createElement(f.a,{variant:"body2",color:"textSecondary",align:"center"},"Copyright \xa9 ",r.a.createElement(p.a,{color:"inherit",href:"https://audible-tools.github.io/"},"audible-tools")," ",(new Date).getFullYear(),".")}var W=function(e){Object(B.a)(a,e);var t=Object(C.a)(a);function a(e){var n;return Object(x.a)(this,a),(n=t.call(this,e)).DarkerDisabledTextField=Object(c.a)({root:{marginRight:8,"& .MuiInputBase-root.Mui-disabled":{color:"rgba(0, 0, 0, 0.6)"}}})(m.a),n.setChecksum=function(e){e.length>40||n.setState({checksum:e})},n.isChecksumValid=function(){var e=n.state.checksum;return RegExp("[a-f0-9]{40}").test(e)},n.isInputInvalid=function(){var e=n.state.checksum;return!(!e||""===e)&&!n.isChecksumValid()},n.requestActivationBytes=function(){var e=n.state.checksum;fetch("https://aax.api.j-kit.me/api/v2/activation/"+e).then((function(e){return e.json()})).then((function(e){var t=e.success;e.activationBytes;!0===t?n.setState({activationBytes:e.activationBytes}):n.setState({activationBytes:"UNKNOWN"})}),(function(e){n.setState({activationBytes:"UNKNOWN"})}))},n.acceptFile=function(){var e=Object(E.a)(k.a.mark((function e(t){var a,r,i;return k.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((a=t[0]).name.endsWith(".aax")){e.next=4;break}return alert("FileType not supported!"),e.abrupt("return");case 4:return r=a.slice(653,673),e.t0=n,e.next=8,r.arrayBuffer();case 8:e.t1=e.sent,i=e.t0.buf2hex.call(e.t0,e.t1),n.setChecksum(i),n.requestActivationBytes();case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),n.state={checksum:""},n}return Object(w.a)(a,[{key:"buf2hex",value:function(e){return Array.prototype.map.call(new Uint8Array(e),(function(e){return("00"+e.toString(16)).slice(-2)})).join("")}},{key:"render",value:function(){var e=this,t=this.props.classes,a=this.state,n=a.checksum,i=a.activationBytes;return r.a.createElement(y.a,{component:"main",maxWidth:"xs"},r.a.createElement(u.a,null),r.a.createElement("div",{className:t.paper},r.a.createElement(s.a,{className:t.avatar},r.a.createElement(v.a,null)),r.a.createElement(f.a,{component:"h1",variant:"h5"},"AAX Checksum Resolver"),r.a.createElement("form",{className:t.form,noValidate:!0},r.a.createElement(j.a,{noClick:!0,onDrop:function(t){console.log(t),e.acceptFile(t)}},(function(t){var a=t.getRootProps,i=t.getInputProps;return r.a.createElement("section",null,r.a.createElement("div",a(),r.a.createElement("input",i()),r.a.createElement(m.a,{error:e.isInputInvalid(),variant:"outlined",margin:"normal",required:!0,fullWidth:!0,id:"checksum",label:"Checksum or Drag&Drop .aax file -",name:"checksum",autoComplete:"checksum",autoFocus:!0,onChange:function(t){return e.setChecksum(t.target.value)},value:n})))})),r.a.createElement(l.a,{fullWidth:!0,variant:"contained",onClick:function(){e.requestActivationBytes()},disabled:!this.isChecksumValid()},"Request Activation Bytes"),r.a.createElement(this.DarkerDisabledTextField,{value:i,disabled:!0,variant:"outlined",margin:"normal",fullWidth:!0,id:"activationBytes",label:i?"":"Activation Bytes",name:"activationBytes",autoComplete:"activationBytes","aria-readonly":!0,InputProps:{readOnly:!0,endAdornment:r.a.createElement(D.CopyToClipboard,{text:i},r.a.createElement(O.a,null,r.a.createElement(I.a,null)))}}))),r.a.createElement(d.a,{mt:1},r.a.createElement(N,null)))}}]),a}(r.a.Component),T=Object(c.a)((function(e){return{paper:{marginTop:e.spacing(8),display:"flex",flexDirection:"column",alignItems:"center"},avatar:{margin:e.spacing(1),backgroundColor:e.palette.secondary.main},form:{width:"100%",marginTop:e.spacing(1)}}}))(W),F=a(37);F.a.initialize("UA-174657678-1"),F.a.pageview(window.location.pathname+window.location.search),o.a.render(r.a.createElement(T,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))}},[[71,1,2]]]); -//# sourceMappingURL=main.c1c4efa9.chunk.js.map \ No newline at end of file diff --git a/static/js/main.c1c4efa9.chunk.js.map b/static/js/main.c1c4efa9.chunk.js.map deleted file mode 100644 index 1375d00..0000000 --- a/static/js/main.c1c4efa9.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["logo.svg","SignIn.js","serviceWorker.js","ChecksumResolver.js","index.js"],"names":["module","exports","makeStyles","theme","paper","marginTop","spacing","display","flexDirection","alignItems","avatar","margin","backgroundColor","palette","secondary","main","form","width","withStyles","root","marginRight","color","TextField","Boolean","window","location","hostname","match","Copyright","Typography","variant","align","Link","href","Date","getFullYear","ChecksumResolver","props","DarkerDisabledTextField","setChecksum","value","length","setState","checksum","isChecksumValid","state","RegExp","test","isInputInvalid","requestActivationBytes","fetch","then","res","json","result","success","activationBytes","error","acceptFile","files","a","file","name","endsWith","alert","slic","slice","arrayBuffer","results","buf2hex","buffer","Array","prototype","map","call","Uint8Array","x","toString","join","classes","this","Container","component","maxWidth","CssBaseline","className","Avatar","noValidate","noClick","onDrop","acceptedFiles","console","log","getRootProps","getInputProps","required","fullWidth","id","label","autoComplete","autoFocus","onChange","target","Button","onClick","disabled","aria-readonly","InputProps","readOnly","endAdornment","text","IconButton","Box","mt","React","Component","ReactGA","initialize","pageview","pathname","search","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","message"],"mappings":"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","file":"static/js/main.c1c4efa9.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.5d5d9eef.svg\";","import React, { useState } from 'react';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport Link from '@material-ui/core/Link';\r\nimport Box from '@material-ui/core/Box';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Container from '@material-ui/core/Container';\r\n\r\nfunction Copyright() {\r\n return (\r\n \r\n {'Copyright © '}\r\n \r\n Your Website\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginTop: theme.spacing(8),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n }\r\n\r\n}));\r\n\r\nconst DarkerDisabledTextField = withStyles({\r\n root: {\r\n marginRight: 8,\r\n \"& .MuiInputBase-root.Mui-disabled\": {\r\n color: \"rgba(0, 0, 0, 0.6)\" // (default alpha is 0.38)\r\n }\r\n }\r\n})(TextField);\r\n\r\nexport default function SignIn() {\r\n const classes = useStyles();\r\n\r\n const [checksumValue, setChecksumValue] = useState(\"\");\r\n\r\n return (\r\n \r\n {/*
\r\n

You clicked {count} times

\r\n \r\n
*/}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n AAX Checksum Resolver\r\n \r\n
\r\n setChecksumValue(x.target.value)}\r\n />\r\n\r\n { alert(checksumValue) }}\r\n >\r\n Request Activation Bytes\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React, { useState } from 'react';\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Button from '@material-ui/core/Button';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport Link from '@material-ui/core/Link';\r\nimport Box from '@material-ui/core/Box';\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Container from '@material-ui/core/Container';\r\n\r\nimport Dropzone from 'react-dropzone'\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FileCopyOutlined from '@material-ui/icons/FileCopyOutlined';\r\n\r\n\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\n\r\n\r\nconst useStyles = theme => ({\r\n paper: {\r\n marginTop: theme.spacing(8),\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n avatar: {\r\n margin: theme.spacing(1),\r\n backgroundColor: theme.palette.secondary.main,\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n marginTop: theme.spacing(1),\r\n }\r\n});\r\n\r\n\r\nfunction Copyright() {\r\n return (\r\n \r\n {'Copyright © '}\r\n \r\n audible-tools\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n );\r\n}\r\n\r\nclass ChecksumResolver extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n checksum: \"\"\r\n }\r\n }\r\n\r\n\r\n DarkerDisabledTextField = withStyles({\r\n root: {\r\n marginRight: 8,\r\n \"& .MuiInputBase-root.Mui-disabled\": {\r\n color: \"rgba(0, 0, 0, 0.6)\" \r\n }\r\n }\r\n })(TextField);\r\n\r\n setChecksum = (value) => {\r\n if (value.length > 40) {\r\n return;\r\n }\r\n this.setState({ checksum: value })\r\n }\r\n\r\n isChecksumValid = () => {\r\n const { checksum } = this.state;\r\n const regex = RegExp('[a-f0-9]{40}');\r\n const testResults = regex.test(checksum);\r\n\r\n return testResults;\r\n }\r\n\r\n isInputInvalid = ()=>{\r\n const { checksum } = this.state;\r\n if(!checksum || checksum === ''){\r\n return false;\r\n }\r\n return !this.isChecksumValid();\r\n };\r\n\r\n requestActivationBytes = () => {\r\n const { checksum } = this.state;\r\n\r\n //fetch(\"https://aaxactivationserviceapi.azurewebsites.net/api/v2/activation/\" + checksum)\r\n fetch(\"https://aax.api.j-kit.me/api/v2/activation/\" + checksum)\r\n //fetch(\"https://localhost:32768/api/v2/activation/\" + checksum)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n const { success, activationBytes } = result;\r\n if (success === true) {\r\n this.setState({ activationBytes: result.activationBytes });\r\n } else {\r\n this.setState({ activationBytes: 'UNKNOWN' });\r\n }\r\n\r\n\r\n },\r\n (error) => {\r\n this.setState({ activationBytes: 'UNKNOWN' });\r\n }\r\n )\r\n }\r\n\r\n buf2hex(buffer) { // buffer is an ArrayBuffer\r\n return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');\r\n }\r\n\r\n acceptFile = async files => {\r\n const file = files[0];\r\n if (!file.name.endsWith(\".aax\")) {\r\n alert('FileType not supported!');\r\n return;\r\n }\r\n\r\n const slic = file.slice(653, 653 + 20);\r\n const results = this.buf2hex(await slic.arrayBuffer());\r\n this.setChecksum(results)\r\n this.requestActivationBytes();\r\n\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { checksum, activationBytes } = this.state;\r\n\r\n return (\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n AAX Checksum Resolver\r\n \r\n\r\n
\r\n {\r\n console.log(acceptedFiles);\r\n this.acceptFile(acceptedFiles);\r\n //const file = document.getElementById('fileInput').files[0];\r\n\r\n\r\n }}>\r\n {({ getRootProps, getInputProps }) => (\r\n
\r\n
\r\n \r\n this.setChecksum(x.target.value)}\r\n value={checksum}\r\n\r\n />\r\n
\r\n
\r\n )}\r\n \r\n\r\n {\r\n this.requestActivationBytes();\r\n }}\r\n disabled={!this.isChecksumValid()}\r\n >\r\n Request Activation Bytes\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n\r\n />\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(useStyles)(ChecksumResolver);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport ChecksumResolver from './ChecksumResolver';\r\n\r\nimport ReactGA from 'react-ga';\r\nReactGA.initialize('UA-174657678-1');\r\nReactGA.pageview(window.location.pathname + window.location.search);\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""} \ No newline at end of file