@@ -0,0 +1,23 @@ | |||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | |||||
# dependencies | |||||
/node_modules | |||||
/.pnp | |||||
.pnp.js | |||||
# testing | |||||
/coverage | |||||
# production | |||||
/build | |||||
# misc | |||||
.DS_Store | |||||
.env.local | |||||
.env.development.local | |||||
.env.test.local | |||||
.env.production.local | |||||
npm-debug.log* | |||||
yarn-debug.log* | |||||
yarn-error.log* |
@@ -0,0 +1,39 @@ | |||||
{ | |||||
"name": "lesspass-web-component", | |||||
"version": "0.1.0", | |||||
"private": true, | |||||
"dependencies": { | |||||
"@testing-library/jest-dom": "^4.2.4", | |||||
"@testing-library/react": "^9.3.2", | |||||
"@testing-library/user-event": "^7.1.2", | |||||
"@types/jest": "^24.0.0", | |||||
"@types/node": "^12.0.0", | |||||
"@types/react": "^16.9.0", | |||||
"@types/react-dom": "^16.9.0", | |||||
"react": "^16.13.1", | |||||
"react-dom": "^16.13.1", | |||||
"react-scripts": "3.4.1", | |||||
"typescript": "~3.7.2" | |||||
}, | |||||
"scripts": { | |||||
"start": "react-scripts start", | |||||
"build": "react-scripts build", | |||||
"test": "react-scripts test", | |||||
"eject": "react-scripts eject" | |||||
}, | |||||
"eslintConfig": { | |||||
"extends": "react-app" | |||||
}, | |||||
"browserslist": { | |||||
"production": [ | |||||
">0.2%", | |||||
"not dead", | |||||
"not op_mini all" | |||||
], | |||||
"development": [ | |||||
"last 1 chrome version", | |||||
"last 1 firefox version", | |||||
"last 1 safari version" | |||||
] | |||||
} | |||||
} |
@@ -0,0 +1,43 @@ | |||||
<!DOCTYPE html> | |||||
<html lang="en"> | |||||
<head> | |||||
<meta charset="utf-8" /> | |||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1" /> | |||||
<meta name="theme-color" content="#3366cc" /> | |||||
<meta | |||||
name="description" | |||||
content="LessPass web component" | |||||
/> | |||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> | |||||
<!-- | |||||
manifest.json provides metadata used when your web app is installed on a | |||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ | |||||
--> | |||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> | |||||
<!-- | |||||
Notice the use of %PUBLIC_URL% in the tags above. | |||||
It will be replaced with the URL of the `public` folder during the build. | |||||
Only files inside the `public` folder can be referenced from the HTML. | |||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will | |||||
work correctly both with client-side routing and a non-root public URL. | |||||
Learn how to configure a non-root public URL by running `npm run build`. | |||||
--> | |||||
<title>LessPass</title> | |||||
</head> | |||||
<body> | |||||
<noscript>You need to enable JavaScript to run this app.</noscript> | |||||
<div id="root"></div> | |||||
<!-- | |||||
This HTML file is a template. | |||||
If you open it directly in the browser, you will see an empty page. | |||||
You can add webfonts, meta tags, or analytics to this file. | |||||
The build step will place the bundled scripts into the <body> tag. | |||||
To begin the development, run `npm start` or `yarn start`. | |||||
To create a production bundle, use `npm run build` or `yarn build`. | |||||
--> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,25 @@ | |||||
{ | |||||
"short_name": "LessPass", | |||||
"name": "LessPass web component", | |||||
"icons": [ | |||||
{ | |||||
"src": "favicon.ico", | |||||
"sizes": "64x64 32x32 24x24 16x16", | |||||
"type": "image/x-icon" | |||||
}, | |||||
{ | |||||
"src": "logo192.png", | |||||
"type": "image/png", | |||||
"sizes": "192x192" | |||||
}, | |||||
{ | |||||
"src": "logo512.png", | |||||
"type": "image/png", | |||||
"sizes": "512x512" | |||||
} | |||||
], | |||||
"start_url": ".", | |||||
"display": "standalone", | |||||
"theme_color": "#3366cc", | |||||
"background_color": "#ffffff" | |||||
} |
@@ -0,0 +1,3 @@ | |||||
# https://www.robotstxt.org/robotstxt.html | |||||
User-agent: * | |||||
Disallow: / |
@@ -0,0 +1,9 @@ | |||||
import React from 'react'; | |||||
import { render } from '@testing-library/react'; | |||||
import App from './App'; | |||||
test('renders learn react link', () => { | |||||
const { getByText } = render(<App />); | |||||
const linkElement = getByText(/learn react/i); | |||||
expect(linkElement).toBeInTheDocument(); | |||||
}); |
@@ -0,0 +1,7 @@ | |||||
import React from "react"; | |||||
function App() { | |||||
return <div className="App">App</div>; | |||||
} | |||||
export default App; |
@@ -0,0 +1,11 @@ | |||||
import React from "react"; | |||||
import ReactDOM from "react-dom"; | |||||
import "./index.css"; | |||||
import App from "./App"; | |||||
ReactDOM.render( | |||||
<React.StrictMode> | |||||
<App /> | |||||
</React.StrictMode>, | |||||
document.getElementById("root") | |||||
); |
@@ -0,0 +1,5 @@ | |||||
// jest-dom adds custom jest matchers for asserting on DOM nodes. | |||||
// allows you to do things like: | |||||
// expect(element).toHaveTextContent(/react/i) | |||||
// learn more: https://github.com/testing-library/jest-dom | |||||
import '@testing-library/jest-dom/extend-expect'; |
@@ -0,0 +1,25 @@ | |||||
{ | |||||
"compilerOptions": { | |||||
"target": "es5", | |||||
"lib": [ | |||||
"dom", | |||||
"dom.iterable", | |||||
"esnext" | |||||
], | |||||
"allowJs": true, | |||||
"skipLibCheck": true, | |||||
"esModuleInterop": true, | |||||
"allowSyntheticDefaultImports": true, | |||||
"strict": true, | |||||
"forceConsistentCasingInFileNames": true, | |||||
"module": "esnext", | |||||
"moduleResolution": "node", | |||||
"resolveJsonModule": true, | |||||
"isolatedModules": true, | |||||
"noEmit": true, | |||||
"jsx": "react" | |||||
}, | |||||
"include": [ | |||||
"src" | |||||
] | |||||
} |