{"version":3,"sources":["pages/homePage/homePage.jsx","pages/succesfulLoginPage/succesfulLoginPage.jsx","pages/FAQPage/faqPage.jsx","pages/legal/privacyPolicy/privacyPolicy.md","pages/legal/privacyPolicy/privacyPolicyPage.jsx","pages/legal/userAgreement/user_agreement.md","pages/legal/userAgreement/userAgreementPage.jsx","main/main.jsx","App.js","serviceWorker.js","index.js","pages/homePage/google-play-badge.png","pages/homePage/mockup.png","logo.svg"],"names":["HomePage","className","src","logo","alt","href","require","SuccesfulLoginPage","Component","FAQPage","role","aria-label","PrivacyPolicyPage","source","textFile","UserAgreementPage","Main","props","exact","path","component","App","Boolean","window","location","hostname","match","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","module","exports"],"mappings":"yPAkDeA,MA9Cf,WACE,OACE,yBAAKC,UAAU,iBACb,yBAAKA,UAAU,cACb,yBAAKC,IAAKC,IAAMF,UAAU,OAAOG,IAAI,SACrC,yBAAKH,UAAU,SAAf,aAEF,yBAAKA,UAAU,SACb,yBAAKA,UAAU,QACb,iDAEE,6BAFF,YAKA,6BACA,iJAGE,6BAHF,sEAKA,yBAAKA,UAAU,UACb,uBAAGI,KAAK,qEACN,yBACEH,IAAKI,EAAQ,IACbF,IAAI,oCAKZ,yBAAKH,UAAU,SACb,yBACEA,UAAU,aACVC,IAAKI,EAAQ,IACbF,IAAI,mBAIV,gCACE,uBAAGC,KAAK,oBAAR,kBACA,uBAAGA,KAAK,wBAAR,wBACA,uBAAGA,KAAK,UAAR,e,wCC5BOE,G,uLAVX,OACE,yBAAKN,UAAU,sBACb,4BAAQA,UAAU,mC,GAJOO,c,MCwElBC,MAxEf,WACE,OACE,yBAAKR,UAAU,oBACb,yBAAKA,UAAU,cACb,uBAAGI,KAAK,KACN,yBAAKH,IAAKC,IAAMF,UAAU,OAAOG,IAAI,UAEvC,yBAAKH,UAAU,SAAf,aAEF,yBAAKA,UAAU,QAAf,SACA,yBAAKA,UAAU,QACb,uBAAGA,UAAU,YAAb,oEAGA,uBAAGA,UAAU,UAAb,6GAKF,yBAAKA,UAAU,QACb,uBAAGA,UAAU,YAAb,qEAGA,uBAAGA,UAAU,UAAb,8CAIF,yBAAKA,UAAU,QACb,uBAAGA,UAAU,YAAb,oCACA,uBAAGA,UAAU,UAAb,sDAIF,yBAAKA,UAAU,QACb,uBAAGA,UAAU,YAAb,4FAIA,uBAAGA,UAAU,UAAb,wDAIF,yBAAKA,UAAU,QACb,uBAAGA,UAAU,YAAb,0EAEe,IACb,0BAAMS,KAAK,MAAMC,aAAW,eAA5B,iBAIF,uBAAGV,UAAU,UAAb,0IAEyE,IACvE,0BAAMS,KAAK,MAAMC,aAAW,mBAA5B,kBAKJ,yBAAKV,UAAU,QACb,uBAAGA,UAAU,YAAb,gDACA,uBAAGA,UAAU,UAAb,gOAOF,yBAAKA,UAAU,a,iBCvEN,G,OAAA,o3MCeAW,MARf,WACE,OACE,yBAAKX,UAAU,aACb,kBAAC,IAAD,CAAeY,OAAQC,MCVd,G,OAAA,g1GCeAC,MARf,WACE,OACE,yBAAKd,UAAU,oBACb,kBAAC,IAAD,CAAeY,OAAQC,MCQdE,EAVF,SAAAC,GAAK,OACd,kBAAC,IAAD,KACI,kBAAC,IAAD,CAAOC,OAAK,EAACC,KAAK,IAAIC,UAAWpB,IACjC,kBAAC,IAAD,CAAOmB,KAAK,mBAAmBC,UAAWb,IAC1C,kBAAC,IAAD,CAAOY,KAAK,QAAQC,UAAWX,IAC/B,kBAAC,IAAD,CAAOU,KAAK,kBAAkBC,UAAWR,IACzC,kBAAC,IAAD,CAAOO,KAAK,sBAAsBC,UAAWL,MCLtCM,MANf,WACE,OACE,kBAAC,EAAD,OCOgBC,QACW,cAA7BC,OAAOC,SAASC,UAEa,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MACvB,2D,YCXJC,IAASC,OACL,kBAAC,IAAD,KACI,kBAAC,EAAD,OAEJC,SAASC,eAAe,SDwHtB,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMC,MAAK,SAAAC,GACjCA,EAAaC,iB,gGErInBC,EAAOC,QAAU,0xN,mBCAjBD,EAAOC,QAAU,IAA0B,oC,4DCA3CD,EAAOC,QAAU,IAA0B,mC","file":"static/js/main.ca3f84ca.chunk.js","sourcesContent":["import React from \"react\";\nimport logo from \"../../logo.svg\";\nimport \"./Styles/homePage.css\";\n\nfunction HomePage() {\n return (\n
\n
\n \"logo\"\n
Trackify
\n
\n
\n
\n

\n Never miss another\n
\n release!\n

\n
\n

\n Trackify is a simple app which uses Spotify’s API to understand when\n your favourite artists release new music.\n
It’s 100% free to use with no ads or limitations whatsoever.\n

\n
\n \n \n \n
\n
\n
\n \n
\n
\n \n
\n );\n}\n\nexport default HomePage;\n","import React, { Component } from \"react\";\nimport logo from \"../../logo.svg\";\nimport \"./Styles/succesfulLogin.css\";\n\nclass SuccesfulLoginPage extends Component {\n render() {\n return (\n
\n
\n \n
\n
\n );\n }\n}\n\nexport default SuccesfulLoginPage;\n","import React from \"react\";\nimport logo from \"../../logo.svg\";\nimport \"./Styles/faqPage.css\";\n\nfunction FAQPage() {\n return (\n
\n
\n \n \"logo\"\n \n
Trackify
\n
\n
FAQs:
\n
\n

\n Q: Do I need to have Spotify installed in order to use Trackify?\n

\n

\n A: It is recommended for better user experience but it's not\n mandatory: you only need a Spotify account.\n

\n
\n
\n

\n Q: Is there a limit to the number of releases I get notified for?\n

\n

\n A: There isn't: you will get all of them!\n

\n
\n
\n

Q: Does it sync between devices?

\n

\n A: No, everything is done locally on each device.\n

\n
\n
\n

\n Q: Is there any limit to the number of artists I follow or how many\n notifications I get?\n

\n

\n A: No limit, this app is free and for you to enjoy!\n

\n
\n
\n

\n Q: I love Trackify but it's not in my language. Can I help\n translating?{\" \"}\n \n 🌐\n \n

\n

\n A: Sure! If you would like to help me translate this app in your\n language (or any other) just ask and I will send you all the necessary{\" \"}\n \n 👍\n \n

\n
\n
\n

Q: Do/Will I have to pay for using this app?

\n

\n A: No. I am releasing this app free and ad-free and will not require\n any payment now nor in the future. The app has in app purchases for\n donations which I would very much appreciate but nothing requires you\n to make one.\n

\n
\n
\n
\n );\n}\n\nexport default FAQPage;\n","export default \"The terms 'Service', 'Application' and 'App' in this document all refer to Trackify\\n\\n## Summary:\\n\\nThis App has not been made for profit but for you to enjoy it. I have no interest in collecting, sharing or selling any of your personal data.\\n\\nAll the information this App will have access to about you comes from Spotify's API, will be used according to this policy. [Spotify](https://spotify.com/) has the right (and possibly also third-parties through Spotify) to collect data about you as you interact with its services which are present inside the App and use those data accordingly to their policies, I take no responsibility nor liability for that.\\n\\nThe collection and use of your data are subject to this privacy policy. If you choose to use this Service, then you agree to the collection and use of your information with respect to this policy.\\n\\nIn order to effectively use this application, you are required to sign in with a Spotify account so I assume you comply with both Spotify's [user agreement](https://www.spotify.com/legal/end-user-agreement/) and [privacy policy](https://www.spotify.com/legal/privacy-policy/).\\n\\n## Information Collection and Use\\n\\nFor a better experience, while using our Service, you will need to log in with a Spotify account. Any information this App is able to access belonging to that account may be retained locally on your device (including but not limited to your Spotify username, Spotify profile picture URL and followed artists' Spotify IDs). \\nIf you decide to log out through the settings menu you will be asked if you want to delete your data managed locally by Trackify.\\n\\n## Cookies\\n\\nCookies are files with a small amount of data that is commonly used as an anonymous unique identifier. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.\\n\\nThis Service does not use these “cookies” explicitly. However, the App does use third party code and libraries which may use “cookies” to collect information (possibly including but not necessarily limited to information about your browsing activities) and/or to improve their services.\\nYou can delete your data including eventual cookies when logging out through the settings menu.\\n\\n## Spotify Account Data\\n\\nThis section contains a complete list of the scopes relative to your Spotify account that this App needs to access and why they are necessary.\\nThis application will not modify or delete any of your information in your Spotify account: it will only create a playlist (private by default) if it does not exist and add tracks to it.\\n\\nThis App needs to:\\n\\n- View your Spotify account data: to display your username and Spotify profile picture inside the App and to check if you already have a trackify playlist as public.\\n- Take actions in Spotify on your behalf: in order to be able to add new tracks to your playlist and let you follow/unfollow artists from the app and let you modify your playlist image.\\n- View your activity on Spotify: to know which artists you are following and to read which private playlists you have to see if trackify is already present.\\n\\nYou can withdraw Trackify's access to your Spotify account at any time through [this page](https://www.spotify.com/account/apps/). Already issued authentication tokens may still be valid and accepted by Spotify for up to 3600 seconds from the moment you withdraw your consent, so you (or Trackify) may still be able to access your information in that time; if you want to prevent this I advise you to first log out from the App or simply uninstall it and then withdraw the consent.\\n\\n## Security\\n\\nAll the data generated through this app is stored locally on your device. Remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable so I can not guarantee the integrity of the data nor their confidentiality or availability although I strive to provide them.\\n\\n## California Residents\\n\\nFollowing California Consumer Privacy Act (CCPA), this App does not sell, rent, or share personal information with third parties as defined under the California Consumer Privacy Act of 2018 (California Civil Code Sec. 1798.100 et seq.), nor does it (the App) sell, rent, or share personal information with third parties for their direct marketing purposes as defined under California Civil Code Sec. 1798.83.\\n\\n## GDPR\\n\\nPersonal Identifiable Information: Trackify does store locally on your device your public Spotify username and your public Spotify picture URL.\\n\\nAll the information Trackify stores about you are limited to the data on your Spotify profile you've given access to. Some of those data may be stored locally on your device to improve performance or because it is essential for the app to work. Manually deleting this app's data or choosing to do so during the logout process in the settings screen allows you to delete those cached data.\\n\\n## Links to Other Sites\\n\\nThis Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over -and assume no responsibility for- the content, privacy policies, or practices of any third-party sites or services.\\n\\n## Children’s Privacy\\n\\nThis Service does not address anyone under the age of 13.\\nIf you are a parent or guardian and you have reason to believe that your child has provided this App with personal information please proceed in logging out through the settings menu, deleting the App's data and contacting me in case of further concerns.\\n\\n## Changes to This Privacy Policy\\n\\nIn this section, the term 'Page' will refer to the webpage [https://trackify-web.netlify.com/privacy-policy](https://trackify-web.netlify.com/privacy-policy) where a copy of this Privacy Policy will be hosted. \\nI may update this Privacy Policy from time to time (even if I don't currently plan to). Thus, you are advised to review the Page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on the Page. These changes are effective immediately after they are posted on the Page.\\n\\nIf you have any doubts, complaint or suggestions regarding this Privacy Policy or anything else in the App do not hesitate to [contact me](mailto:logicbrics+trackify.privacy@gmail.com).\\n\";","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport \"./Styles/style.css\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport textFile from \"!!raw-loader!./privacyPolicy.md\";\n\nfunction PrivacyPolicyPage() {\n return (\n
\n \n
\n );\n}\n\nexport default PrivacyPolicyPage;\n","export default \"**End-User License Agreement**\\n\\nLast updated: January 31, 2020\\n\\nAnyone using this Application is required to agree to and comply with the following terms.\\n\\nThe terms 'App', 'Application', 'Product' and 'Service' in this document will all refer to Trackify.\\n\\nThis App is provided at no cost and is intended for use as is.\\n\\nThis Application is provided \\\"as is\\\", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with this Application or the use or other dealings in this Application. You agree to use this Application at your own risk: I decline every responsibility for any damage (including but not limited to any eventual loss of data, service interruption or pecuniary loss) arising out of the use of, or inability to use, this Application.\\n\\nBy accepting these terms you state that you are not an individual under the age of 13 or under 18 without verifiable parental consent. You also state that you comply with both Spotify's [end user agreement](https://www.spotify.com/legal/end-user-agreement/) and [privacy policy](https://www.spotify.com/legal/privacy-policy/) and will cease to use this Product if for any reason you do not comply anymore.\\n\\n## From Spotify Developer Terms of Service\\n\\nIn order to use Spotify's services, I am required to comply with [Spotify Developer's Terms of Service](https://developer.spotify.com/terms/). If you notice any violation I strongly invite you to [contact me](mailto:logicbrics+trackify.terms@gmail.com).\\n\\nSpecifically I hereby\\n\\n- state that:\\n\\n 1. I do not make any warranties or representations on behalf of Spotify and disclaim all implied warranties with respect to the Spotify Platform, Spotify Service and Spotify Content, including the implied warranties of merchantability, fitness for a particular purpose and non-infringement;\\n 2. I disclaim any liability regarding this Product on the part of third parties (e.g., Spotify);\\n 3. Spotify is a third party beneficiary of your end-user license agreement and privacy policy and is entitled to directly enforce your end-user license agreement;\\n\\n- require you (the user) to agree not to:\\n 1. modify or create derivative works based on the Spotify Platform, Spotify Service or Spotify Content;\\n 2. decompile, reverse-engineer, disassemble, and otherwise reduce the Spotify Platform, Spotify Service, and Spotify Content to source code or other human-perceivable form, to the full extent allowed by law;\\n\\nBy using Spotify's services I have agreed to the following clause: \\n\\\"Spotify may limit the number of service calls that your SDA may make, the volume of Spotify Content that may be accessed, or anything else about the Spotify Service as Spotify deems appropriate, in its sole discretion, without notice. Spotify may use technical measures to prevent over-usage or stop usage of the Spotify Platform.\\\" So I can not guarantee that this application will be able to be always functional given that it needs Spotify's data.\\n\\n## Final words\\n\\nThis app has been made with you in mind, I hope that you enjoy my work and that it helps you, even a little.\\n\";","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport \"./Styles/style.css\";\n\n/* eslint import/no-webpack-loader-syntax: off */\nimport textFile from \"!!raw-loader!./user_agreement.md\";\n\nfunction UserAgreementPage() {\n return (\n
\n \n
\n );\n}\n\nexport default UserAgreementPage;\n","import React from 'react';\nimport { Switch, Route } from 'react-router-dom';\nimport HomePage from '../pages/homePage/homePage';\nimport SuccesfulLoginPage from '../pages/succesfulLoginPage/succesfulLoginPage';\nimport FAQPage from '../pages/FAQPage/faqPage';\nimport PrivacyPolicyPage from '../pages/legal/privacyPolicy/privacyPolicyPage';\nimport UserAgreementPage from '../pages/legal/userAgreement/userAgreementPage';\n\nconst Main = props =>\n \n \n \n \n \n \n \n\n\nexport default Main;","import React from 'react';\nimport Main from './main/main';\n\nfunction App() {\n return (\n
\n );\n}\n\nexport default App;\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.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter } from 'react-router-dom';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/mockup.dc9a8dbc.png\";","module.exports = __webpack_public_path__ + \"static/media/logo.5b6df597.svg\";"],"sourceRoot":""}