├── .gitattributes ├── .github └── ISSUE_TEMPLATE │ └── feature_request.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── package.json ├── public ├── dh1.png └── dh2.png ├── web ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── src │ ├── App.js │ ├── components │ │ ├── CardCourse │ │ │ └── index.js │ │ ├── CardVagas │ │ │ └── index.js │ │ ├── Loader │ │ │ ├── index.js │ │ │ └── styles.js │ │ └── navbar │ │ │ └── index.js │ ├── images │ │ ├── js.svg │ │ ├── node.svg │ │ └── react.svg │ ├── include │ │ ├── bootstrap.js │ │ ├── jquery.js │ │ └── popper.js │ ├── index.css │ ├── index.js │ ├── pages │ │ ├── Desafios │ │ │ └── Desafios.js │ │ ├── Home │ │ │ └── index.js │ │ ├── JavaScript │ │ │ └── index.js │ │ └── Vagas │ │ │ ├── index.js │ │ │ └── styles.js │ ├── services │ │ └── api.js │ └── styles │ │ └── global.js └── yarn.lock └── yarn.lock /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /.pnp 5 | .pnp.js 6 | 7 | # testing 8 | /coverage 9 | 10 | # production 11 | /build 12 | 13 | # misc 14 | .DS_Store 15 | .env.local 16 | .env.development.local 17 | .env.test.local 18 | .env.production.local 19 | 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | 24 | 25 | # Created by https://www.gitignore.io/api/node,react 26 | # Edit at https://www.gitignore.io/?templates=node,react 27 | 28 | ### Node ### 29 | # Logs 30 | logs 31 | *.log 32 | npm-debug.log* 33 | yarn-debug.log* 34 | yarn-error.log* 35 | lerna-debug.log* 36 | 37 | # Diagnostic reports (https://nodejs.org/api/report.html) 38 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 39 | 40 | # Runtime data 41 | pids 42 | *.pid 43 | *.seed 44 | *.pid.lock 45 | 46 | # Directory for instrumented libs generated by jscoverage/JSCover 47 | lib-cov 48 | 49 | # Coverage directory used by tools like istanbul 50 | coverage 51 | *.lcov 52 | 53 | # nyc test coverage 54 | .nyc_output 55 | 56 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 57 | .grunt 58 | 59 | # Bower dependency directory (https://bower.io/) 60 | bower_components 61 | 62 | # node-waf configuration 63 | .lock-wscript 64 | 65 | # Compiled binary addons (https://nodejs.org/api/addons.html) 66 | build/Release 67 | 68 | # Dependency directories 69 | node_modules/ 70 | jspm_packages/ 71 | 72 | # TypeScript v1 declaration files 73 | typings/ 74 | 75 | # TypeScript cache 76 | *.tsbuildinfo 77 | 78 | # Optional npm cache directory 79 | .npm 80 | 81 | # Optional eslint cache 82 | .eslintcache 83 | 84 | # Optional REPL history 85 | .node_repl_history 86 | 87 | # Output of 'npm pack' 88 | *.tgz 89 | 90 | # Yarn Integrity file 91 | .yarn-integrity 92 | 93 | # dotenv environment variables file 94 | .env 95 | .env.test 96 | 97 | # parcel-bundler cache (https://parceljs.org/) 98 | .cache 99 | 100 | # next.js build output 101 | .next 102 | 103 | # nuxt.js build output 104 | .nuxt 105 | 106 | # rollup.js default build output 107 | dist/ 108 | 109 | # Uncomment the public line if your project uses Gatsby 110 | # https://nextjs.org/blog/next-9-1#public-directory-support 111 | # https://create-react-app.dev/docs/using-the-public-folder/#docsNav 112 | # public 113 | 114 | # Storybook build outputs 115 | .out 116 | .storybook-out 117 | 118 | # vuepress build output 119 | .vuepress/dist 120 | 121 | # Serverless directories 122 | .serverless/ 123 | 124 | # FuseBox cache 125 | .fusebox/ 126 | 127 | # DynamoDB Local files 128 | .dynamodb/ 129 | 130 | # Temporary folders 131 | tmp/ 132 | temp/ 133 | 134 | ### react ### 135 | .DS_* 136 | **/*.backup.* 137 | **/*.back.* 138 | 139 | node_modules 140 | 141 | *.sublime* 142 | 143 | psd 144 | thumb 145 | sketch 146 | 147 | # End of https://www.gitignore.io/api/node,react -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at felipepassosc@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Felipe Passos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | DEVHIPSTER 3 | 4 | 5 | 6 |

7 | 8 |

Hall da Fama

9 | 10 | [![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/0)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/0)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/1)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/1)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/2)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/2)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/3)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/3)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/4)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/4)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/5)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/5)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/6)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/6)[![](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/images/7)](https://sourcerer.io/fame/felipepassosdev/felipepassosdev/devhipster/links/7) 11 | 12 | 13 | ## Sobre 14 | 15 | Com o intuito de ajudar a comunidade, criei esse projeto. 16 | 17 | Devido a falta de um projeto em português e gratuito criei o Devhipster com o intuito de ajudar a comunidade, uma plataforma gratuita e open sorce de programação.
18 | Os vídeos vão ser postados no meu canal do [youtube](https://www.youtube.com/channel/UCdkEqWvQ05cNpI0wlRMyNWw)
19 | As atualizações vão ser postadas no meu [instagram](https://www.instagram.com/felipepassosdev/?hl=pt-br). 20 | 21 | --- 22 | 23 | ## Tecnologias utilizadas 24 | 25 | - [ReactJs](https://pt-br.reactjs.org/) 26 | - [NodeJs](https://nodejs.org/en/) 27 | 28 | --- 29 | 30 | ## Como executar o projeto 31 | 32 | Para executar o projeto é necessário ter instalado o [NodeJs](https://nodejs.org/en/) e recomendamos a utilização do [Yarn](https://classic.yarnpkg.com/pt-BR/docs/install/) 33 | 34 | Clonar o repositório 35 | ```bash 36 | $ git clone git@github.com:felipepassosdev/devhipster.git 37 | ``` 38 | Acessar o diretório clonado 39 | ```bash 40 | $ cd devhipster 41 | ``` 42 | Instalar as dependencias 43 | ```bash 44 | $ yarn 45 | 46 | ou 47 | 48 | $ npm install 49 | ``` 50 | Executar o projeto 51 | ```bash 52 | $ yarn start 53 | 54 | ou 55 | 56 | $ npm run start 57 | ``` 58 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "react-spinners": "^0.8.3" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /public/dh1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipepassosdev/Devhipster/121b8e5a60710632253a8301fb3bf9515857ce32/public/dh1.png -------------------------------------------------------------------------------- /public/dh2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipepassosdev/Devhipster/121b8e5a60710632253a8301fb3bf9515857ce32/public/dh2.png -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "devhipster", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "axios": "^0.19.2", 7 | "bootstrap": "^4.5.0", 8 | "jquery": "^3.4.1", 9 | "popper.js": "^1.16.0", 10 | "react": "^16.12.0", 11 | "react-bootstrap": "^1.0.1", 12 | "react-dom": "^16.12.0", 13 | "react-icons": "^3.10.0", 14 | "react-router-dom": "^5.1.2", 15 | "react-scripts": "3.2.0", 16 | "react-spinners": "^0.8.3", 17 | "styled-components": "^5.1.0" 18 | }, 19 | "scripts": { 20 | "start": "react-scripts start", 21 | "build": "react-scripts build", 22 | "test": "react-scripts test", 23 | "eject": "react-scripts eject" 24 | }, 25 | "eslintConfig": { 26 | "extends": "react-app" 27 | }, 28 | "browserslist": { 29 | "production": [ 30 | ">0.2%", 31 | "not dead", 32 | "not op_mini all" 33 | ], 34 | "development": [ 35 | "last 1 chrome version", 36 | "last 1 firefox version", 37 | "last 1 safari version" 38 | ] 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipepassosdev/Devhipster/121b8e5a60710632253a8301fb3bf9515857ce32/web/public/favicon.ico -------------------------------------------------------------------------------- /web/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | React App 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /web/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipepassosdev/Devhipster/121b8e5a60710632253a8301fb3bf9515857ce32/web/public/logo192.png -------------------------------------------------------------------------------- /web/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipepassosdev/Devhipster/121b8e5a60710632253a8301fb3bf9515857ce32/web/public/logo512.png -------------------------------------------------------------------------------- /web/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /web/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /web/src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import NavigationBar from './components/navbar' 3 | import { Switch, Route } from 'react-router-dom'; 4 | import Home from './pages/Home'; 5 | import Javascript from './pages/JavaScript'; 6 | import GlobalStyle from './styles/global'; 7 | import Vagas from './pages/Vagas'; 8 | import Desafios from './pages/Desafios/Desafios'; 9 | 10 | function App() { 11 | return ( 12 | <> 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | ); 23 | } 24 | 25 | export default App; 26 | -------------------------------------------------------------------------------- /web/src/components/CardCourse/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useHistory } from 'react-router-dom'; 3 | import { Col, Card, Button, Image } from 'react-bootstrap'; 4 | import Loader from '../Loader'; 5 | 6 | function CardCourse({ title, description, icon, url, color }) { 7 | 8 | const history = useHistory(); 9 | 10 | function handleClick() { 11 | history.push(url); 12 | } 13 | 14 | return ( 15 | 16 | 17 | 18 | 19 |

{title}

20 |
21 | 22 |
{description}
23 | 29 |
30 |
31 | 32 | ); 33 | } 34 | 35 | export default CardCourse; 36 | -------------------------------------------------------------------------------- /web/src/components/CardVagas/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | 3 | import { Container, Card, Row, Col } from 'react-bootstrap'; 4 | import api from '../../services/api' 5 | 6 | import Loader from '../Loader'; 7 | 8 | class CardVagas extends Component { 9 | state = { 10 | vagas: [], 11 | loading: true 12 | } 13 | 14 | componentDidMount = () => { 15 | this.apiVagas() 16 | } 17 | 18 | apiVagas = async () => { 19 | const response = await api.get(`/repos/frontendbr/vagas/issues`, { 20 | params: { 21 | state: 'open', 22 | }, 23 | }) 24 | console.log(response.data) 25 | 26 | this.setState({ 27 | vagas: response.data, 28 | loading: false 29 | }) 30 | } 31 | 32 | 33 | 34 | render() { 35 | const { vagas, loading } = this.state; 36 | return ( 37 | <> 38 | { loading ? : ( 39 | 40 |
41 |

Vagas Front end

42 | 43 | {vagas.map(vaga => ( 44 | 45 |
46 | 47 | {vaga.state ? 'ABERTA' : 'FECHADA'} 48 | 49 | {vaga.title} 50 | 51 |
{vaga.labels.map(label => ( 52 | 53 |
#{label.name}
54 |
55 | ))}
56 |
57 | 58 | ))} 59 |
60 |
61 | ) } 62 | 63 | ) 64 | } 65 | } 66 | 67 | export default CardVagas -------------------------------------------------------------------------------- /web/src/components/Loader/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ClipLoader from 'react-spinners/ClipLoader'; 3 | 4 | import { LoaderContainer } from './styles'; 5 | 6 | export default function Loader() { 7 | return ( 8 | 9 | 14 | 15 | ) 16 | } -------------------------------------------------------------------------------- /web/src/components/Loader/styles.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | 3 | export const LoaderContainer = styled.div` 4 | width: 100%; 5 | height: 80vh; 6 | display: flex; 7 | justify-content: center; 8 | align-items: center; 9 | `; -------------------------------------------------------------------------------- /web/src/components/navbar/index.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react' 2 | import { Navbar, Nav } from 'react-bootstrap'; 3 | 4 | class NavigationBar extends Component { 5 | render() { 6 | return ( 7 | 11 |

DevHipster

12 | 15 | 16 | 43 | 44 |
45 | ) 46 | } 47 | } 48 | 49 | export default NavigationBar; 50 | -------------------------------------------------------------------------------- /web/src/images/js.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /web/src/images/node.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /web/src/images/react.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /web/src/include/bootstrap.js: -------------------------------------------------------------------------------- 1 | import './jquery' 2 | import './popper' 3 | 4 | import 'bootstrap' 5 | import 'bootstrap/dist/css/bootstrap.min.css' -------------------------------------------------------------------------------- /web/src/include/jquery.js: -------------------------------------------------------------------------------- 1 | import * as $ from 'jquery' 2 | 3 | window.jQuery = window.$ = $ -------------------------------------------------------------------------------- /web/src/include/popper.js: -------------------------------------------------------------------------------- 1 | import Popper from 'popper.js' 2 | 3 | window.Popper = Popper -------------------------------------------------------------------------------- /web/src/index.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/icon?family=Material+Icons'); 2 | 3 | * { 4 | margin: 0; 5 | padding: 0; 6 | outline: 0; 7 | box-sizing: border-box; 8 | } 9 | 10 | html, 11 | body, 12 | #root { 13 | height: 100%; 14 | } 15 | 16 | body { 17 | font-family: Arial, Helvetica, sans-serif; 18 | background: rgb(11, 10, 13) !important; 19 | /* background-image: url(bg.png); */ 20 | } 21 | 22 | code { 23 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 24 | monospace; 25 | } 26 | -------------------------------------------------------------------------------- /web/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | import './include/bootstrap' 5 | import { BrowserRouter } from 'react-router-dom'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , document.getElementById('root')); 11 | 12 | -------------------------------------------------------------------------------- /web/src/pages/Desafios/Desafios.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | // import { Container } from './styles'; 4 | 5 | function Desafios() { 6 | return
; 7 | } 8 | 9 | export default Desafios; -------------------------------------------------------------------------------- /web/src/pages/Home/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Container, Row } from 'react-bootstrap'; 3 | 4 | import CardCourse from '../../components/CardCourse'; 5 | 6 | import js from '../../images/js.svg'; 7 | import react from '../../images/react.svg'; 8 | import node from '../../images/node.svg'; 9 | 10 | const courses = [ 11 | { 12 | title:

Curso JavaScript

, 13 | icon: js, 14 | color: 'yellow', 15 | description: <>Aprenda uma das tecnologias mais usadas atualmente, o JavaScript, 16 | url: '/javascript' 17 | }, 18 | { 19 | title:

Curso React

, 20 | icon: react, 21 | color: 'blue', 22 | description: <>Aprenda uma das biblioteca mais amadas do mundo do JS o React, 23 | url: '/javascript' 24 | }, 25 | { 26 | title:

Curso NodeJS

, 27 | icon: node, 28 | color: 'green', 29 | description: <>Aprenda usar JavaScript no backend da sua aplicação usando o NodeJS, 30 | url: '/javascript' 31 | }, 32 | 33 | ]; 34 | 35 | function Home() { 36 | return ( 37 | 38 |
39 | 40 | {courses.map((course, index) => 41 | 49 | )} 50 | 51 |
52 | ); 53 | } 54 | 55 | export default Home; 56 | -------------------------------------------------------------------------------- /web/src/pages/JavaScript/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Container, Row, Col, ResponsiveEmbed, Card } from 'react-bootstrap'; 3 | 4 | function JavaScript() { 5 | return ( 6 | 7 |
8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Curso Javascript
20 |
    21 |
  • Apresentação
  • 22 |
23 |
24 |
25 | 26 |
27 |
28 | ); 29 | } 30 | 31 | export default JavaScript; 32 | -------------------------------------------------------------------------------- /web/src/pages/Vagas/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import CardVagas from '../../components/CardVagas'; 4 | 5 | function Vagas() { 6 | 7 | return ( 8 | <> 9 | 10 | 11 | ) 12 | } 13 | 14 | export default Vagas -------------------------------------------------------------------------------- /web/src/pages/Vagas/styles.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | 3 | export const Loading = styled.div` 4 | 5 | `; 6 | 7 | 8 | -------------------------------------------------------------------------------- /web/src/services/api.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | const api = axios.create({ 4 | baseURL: 'https://api.github.com', 5 | }) 6 | 7 | export default api -------------------------------------------------------------------------------- /web/src/styles/global.js: -------------------------------------------------------------------------------- 1 | 2 | import { createGlobalStyle } from 'styled-components' 3 | 4 | export default createGlobalStyle` 5 | 6 | /* * { 7 | margin: 0; 8 | padding: 0; 9 | outline: 0; 10 | box-sizing: border-box; 11 | } */ 12 | 13 | html, 14 | body, 15 | #root { 16 | height: 100%; 17 | } 18 | 19 | body { 20 | font-family: Arial, Helvetica, sans-serif; 21 | background: rgb(11, 10, 13) !important; 22 | /* background-image: url(bg.png); */ 23 | } 24 | 25 | code { 26 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 27 | monospace; 28 | } 29 | 30 | 31 | .bg-gradiente { 32 | background: linear-gradient(to right, rgb(240, 0, 80), rgb(255, 115, 80)); 33 | } 34 | 35 | .text-vermelho { 36 | color: rgb(240, 0, 80); 37 | } 38 | 39 | .x { 40 | height: 400px; 41 | width: 400px; 42 | background: linear-gradient(to right, rgb(240, 0, 80), rgb(255, 115, 80)); 43 | } 44 | 45 | .card { 46 | min-height: 376px; 47 | } 48 | 49 | .img-fluid { 50 | width: 308px; 51 | height: 308px !important; 52 | } 53 | 54 | .col-md-4-col-sm-1 { 55 | padding-bottom: 34px; 56 | } 57 | 58 | .dark { 59 | background: rgb(17, 17, 22); 60 | } 61 | 62 | h2 { 63 | font-size: 1.9rem !important; 64 | } 65 | 66 | footer { 67 | padding-bottom: 3px; 68 | } 69 | 70 | .bg-laranja { 71 | background: linear-gradient(to right, rgb(240, 0, 80), rgb(255, 115, 80)); 72 | } 73 | 74 | .margin-bottom { 75 | margin-bottom: 35px; 76 | } 77 | 78 | button{ 79 | width: 100%; 80 | } 81 | 82 | .dark { 83 | background: rgb(17, 17, 22) !important; 84 | } 85 | 86 | .yellow:hover { 87 | transform: translateY(-7px); 88 | border-color: #ffdb58; 89 | } 90 | 91 | .btn-yellow { 92 | background-color: #ffdb58 !important; 93 | } 94 | 95 | .yellow { 96 | color: #ffdb58 !important; 97 | } 98 | 99 | .btn-blue { 100 | background-color: rgb(17, 208, 241) !important; 101 | } 102 | 103 | .blue { 104 | color: rgb(17, 208, 241) !important; 105 | } 106 | 107 | .btn-green { 108 | background-color: #8cc84b!important; 109 | } 110 | 111 | .green { 112 | color: #8cc84b!important; 113 | } 114 | 115 | .blue:hover { 116 | transform: translateY(-7px); 117 | border-color: rgb(17, 208, 241); 118 | } 119 | 120 | .green:hover { 121 | transform: translateY(-7px); 122 | border-color: rgb(16, 119, 33); 123 | } 124 | 125 | .card { 126 | width: 100%; 127 | max-width: 1426px; 128 | padding: 30px; 129 | } 130 | `; 131 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.8.3" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" 8 | integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== 9 | dependencies: 10 | "@babel/highlight" "^7.8.3" 11 | 12 | "@babel/helper-module-imports@^7.0.0": 13 | version "7.8.3" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" 15 | integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== 16 | dependencies: 17 | "@babel/types" "^7.8.3" 18 | 19 | "@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": 20 | version "7.9.5" 21 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" 22 | integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== 23 | 24 | "@babel/highlight@^7.8.3": 25 | version "7.9.0" 26 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" 27 | integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== 28 | dependencies: 29 | "@babel/helper-validator-identifier" "^7.9.0" 30 | chalk "^2.0.0" 31 | js-tokens "^4.0.0" 32 | 33 | "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2": 34 | version "7.9.6" 35 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" 36 | integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== 37 | dependencies: 38 | regenerator-runtime "^0.13.4" 39 | 40 | "@babel/types@^7.8.3": 41 | version "7.9.6" 42 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" 43 | integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== 44 | dependencies: 45 | "@babel/helper-validator-identifier" "^7.9.5" 46 | lodash "^4.17.13" 47 | to-fast-properties "^2.0.0" 48 | 49 | "@emotion/cache@^10.0.27": 50 | version "10.0.29" 51 | resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" 52 | integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ== 53 | dependencies: 54 | "@emotion/sheet" "0.9.4" 55 | "@emotion/stylis" "0.8.5" 56 | "@emotion/utils" "0.11.3" 57 | "@emotion/weak-memoize" "0.2.5" 58 | 59 | "@emotion/core@^10.0.15": 60 | version "10.0.28" 61 | resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.28.tgz#bb65af7262a234593a9e952c041d0f1c9b9bef3d" 62 | integrity sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA== 63 | dependencies: 64 | "@babel/runtime" "^7.5.5" 65 | "@emotion/cache" "^10.0.27" 66 | "@emotion/css" "^10.0.27" 67 | "@emotion/serialize" "^0.11.15" 68 | "@emotion/sheet" "0.9.4" 69 | "@emotion/utils" "0.11.3" 70 | 71 | "@emotion/css@^10.0.27": 72 | version "10.0.27" 73 | resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c" 74 | integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw== 75 | dependencies: 76 | "@emotion/serialize" "^0.11.15" 77 | "@emotion/utils" "0.11.3" 78 | babel-plugin-emotion "^10.0.27" 79 | 80 | "@emotion/hash@0.8.0": 81 | version "0.8.0" 82 | resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" 83 | integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== 84 | 85 | "@emotion/memoize@0.7.4": 86 | version "0.7.4" 87 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" 88 | integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== 89 | 90 | "@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": 91 | version "0.11.16" 92 | resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" 93 | integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg== 94 | dependencies: 95 | "@emotion/hash" "0.8.0" 96 | "@emotion/memoize" "0.7.4" 97 | "@emotion/unitless" "0.7.5" 98 | "@emotion/utils" "0.11.3" 99 | csstype "^2.5.7" 100 | 101 | "@emotion/sheet@0.9.4": 102 | version "0.9.4" 103 | resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" 104 | integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== 105 | 106 | "@emotion/stylis@0.8.5": 107 | version "0.8.5" 108 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" 109 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== 110 | 111 | "@emotion/unitless@0.7.5": 112 | version "0.7.5" 113 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" 114 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== 115 | 116 | "@emotion/utils@0.11.3": 117 | version "0.11.3" 118 | resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" 119 | integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== 120 | 121 | "@emotion/weak-memoize@0.2.5": 122 | version "0.2.5" 123 | resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" 124 | integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== 125 | 126 | "@types/parse-json@^4.0.0": 127 | version "4.0.0" 128 | resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" 129 | integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 130 | 131 | ansi-styles@^3.2.1: 132 | version "3.2.1" 133 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 134 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 135 | dependencies: 136 | color-convert "^1.9.0" 137 | 138 | babel-plugin-emotion@^10.0.27: 139 | version "10.0.33" 140 | resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03" 141 | integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ== 142 | dependencies: 143 | "@babel/helper-module-imports" "^7.0.0" 144 | "@emotion/hash" "0.8.0" 145 | "@emotion/memoize" "0.7.4" 146 | "@emotion/serialize" "^0.11.16" 147 | babel-plugin-macros "^2.0.0" 148 | babel-plugin-syntax-jsx "^6.18.0" 149 | convert-source-map "^1.5.0" 150 | escape-string-regexp "^1.0.5" 151 | find-root "^1.1.0" 152 | source-map "^0.5.7" 153 | 154 | babel-plugin-macros@^2.0.0: 155 | version "2.8.0" 156 | resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" 157 | integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== 158 | dependencies: 159 | "@babel/runtime" "^7.7.2" 160 | cosmiconfig "^6.0.0" 161 | resolve "^1.12.0" 162 | 163 | babel-plugin-syntax-jsx@^6.18.0: 164 | version "6.18.0" 165 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 166 | integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= 167 | 168 | callsites@^3.0.0: 169 | version "3.1.0" 170 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 171 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 172 | 173 | chalk@^2.0.0: 174 | version "2.4.2" 175 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 176 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 177 | dependencies: 178 | ansi-styles "^3.2.1" 179 | escape-string-regexp "^1.0.5" 180 | supports-color "^5.3.0" 181 | 182 | color-convert@^1.9.0: 183 | version "1.9.3" 184 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 185 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 186 | dependencies: 187 | color-name "1.1.3" 188 | 189 | color-name@1.1.3: 190 | version "1.1.3" 191 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 192 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 193 | 194 | convert-source-map@^1.5.0: 195 | version "1.7.0" 196 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" 197 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 198 | dependencies: 199 | safe-buffer "~5.1.1" 200 | 201 | cosmiconfig@^6.0.0: 202 | version "6.0.0" 203 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" 204 | integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== 205 | dependencies: 206 | "@types/parse-json" "^4.0.0" 207 | import-fresh "^3.1.0" 208 | parse-json "^5.0.0" 209 | path-type "^4.0.0" 210 | yaml "^1.7.2" 211 | 212 | csstype@^2.5.7: 213 | version "2.6.10" 214 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" 215 | integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== 216 | 217 | error-ex@^1.3.1: 218 | version "1.3.2" 219 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 220 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 221 | dependencies: 222 | is-arrayish "^0.2.1" 223 | 224 | escape-string-regexp@^1.0.5: 225 | version "1.0.5" 226 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 227 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 228 | 229 | find-root@^1.1.0: 230 | version "1.1.0" 231 | resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" 232 | integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== 233 | 234 | has-flag@^3.0.0: 235 | version "3.0.0" 236 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 237 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 238 | 239 | import-fresh@^3.1.0: 240 | version "3.2.1" 241 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" 242 | integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== 243 | dependencies: 244 | parent-module "^1.0.0" 245 | resolve-from "^4.0.0" 246 | 247 | is-arrayish@^0.2.1: 248 | version "0.2.1" 249 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 250 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 251 | 252 | js-tokens@^4.0.0: 253 | version "4.0.0" 254 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 255 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 256 | 257 | json-parse-better-errors@^1.0.1: 258 | version "1.0.2" 259 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 260 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 261 | 262 | lines-and-columns@^1.1.6: 263 | version "1.1.6" 264 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" 265 | integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 266 | 267 | lodash@^4.17.13: 268 | version "4.17.15" 269 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 270 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 271 | 272 | parent-module@^1.0.0: 273 | version "1.0.1" 274 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 275 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 276 | dependencies: 277 | callsites "^3.0.0" 278 | 279 | parse-json@^5.0.0: 280 | version "5.0.0" 281 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" 282 | integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== 283 | dependencies: 284 | "@babel/code-frame" "^7.0.0" 285 | error-ex "^1.3.1" 286 | json-parse-better-errors "^1.0.1" 287 | lines-and-columns "^1.1.6" 288 | 289 | path-parse@^1.0.6: 290 | version "1.0.6" 291 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 292 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 293 | 294 | path-type@^4.0.0: 295 | version "4.0.0" 296 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 297 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 298 | 299 | react-spinners@^0.8.3: 300 | version "0.8.3" 301 | resolved "https://registry.yarnpkg.com/react-spinners/-/react-spinners-0.8.3.tgz#d08ed753aec4a7ef9f5d9b907ee0161271c932ee" 302 | integrity sha512-fuYNjH0megp5FLuUqQXWM9mPgBXUjvYD6IkMOiwNGOOlI2UdOP1ZC3vejUAa3Y/q4qWJ6yx8rjfMjIBgEji+9A== 303 | dependencies: 304 | "@emotion/core" "^10.0.15" 305 | 306 | regenerator-runtime@^0.13.4: 307 | version "0.13.5" 308 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" 309 | integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== 310 | 311 | resolve-from@^4.0.0: 312 | version "4.0.0" 313 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 314 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 315 | 316 | resolve@^1.12.0: 317 | version "1.17.0" 318 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 319 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 320 | dependencies: 321 | path-parse "^1.0.6" 322 | 323 | safe-buffer@~5.1.1: 324 | version "5.1.2" 325 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 326 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 327 | 328 | source-map@^0.5.7: 329 | version "0.5.7" 330 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 331 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 332 | 333 | supports-color@^5.3.0: 334 | version "5.5.0" 335 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 336 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 337 | dependencies: 338 | has-flag "^3.0.0" 339 | 340 | to-fast-properties@^2.0.0: 341 | version "2.0.0" 342 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 343 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 344 | 345 | yaml@^1.7.2: 346 | version "1.10.0" 347 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" 348 | integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== 349 | --------------------------------------------------------------------------------