@@ -3,7 +3,7 @@ name: deploy-cli | |||||
on: | on: | ||||
push: | push: | ||||
paths: | paths: | ||||
- 'cli/lesspass/version.py' | |||||
- "cli/lesspass/version.py" | |||||
jobs: | jobs: | ||||
test-cli: | test-cli: | ||||
@@ -12,7 +12,7 @@ jobs: | |||||
- uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||
- uses: actions/setup-python@v1 | - uses: actions/setup-python@v1 | ||||
with: | with: | ||||
python-version: '3.6' | |||||
python-version: "3.6" | |||||
- name: test cli | - name: test cli | ||||
run: | | run: | | ||||
cd cli | cd cli | ||||
@@ -24,7 +24,7 @@ jobs: | |||||
- uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||
- uses: actions/setup-python@v1 | - uses: actions/setup-python@v1 | ||||
with: | with: | ||||
python-version: '3.6' | |||||
python-version: "3.6" | |||||
- name: deploy cli | - name: deploy cli | ||||
run: | | run: | | ||||
cd cli | cd cli | ||||
@@ -32,4 +32,3 @@ jobs: | |||||
env: | env: | ||||
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | ||||
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||||
@@ -3,7 +3,7 @@ name: deploy-containers | |||||
on: | on: | ||||
push: | push: | ||||
paths: | paths: | ||||
- 'containers/**' | |||||
- "containers/**" | |||||
jobs: | jobs: | ||||
test-containers: | test-containers: | ||||
@@ -12,7 +12,7 @@ jobs: | |||||
- uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||
- name: test containers | - name: test containers | ||||
run: | | run: | | ||||
cd container | |||||
cd containers | |||||
./test | ./test | ||||
deploy-containers: | deploy-containers: | ||||
@@ -3,7 +3,7 @@ name: deploy-packages | |||||
on: | on: | ||||
push: | push: | ||||
paths: | paths: | ||||
- 'packages/**' | |||||
- "packages/**" | |||||
jobs: | jobs: | ||||
test-packages: | test-packages: | ||||
@@ -58,5 +58,5 @@ jobs: | |||||
- uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||
- name: test containers | - name: test containers | ||||
run: | | run: | | ||||
cd container | |||||
./test | |||||
cd containers | |||||
./test |
@@ -1,4 +1,4 @@ | |||||
version: '2' | |||||
version: "2" | |||||
services: | services: | ||||
db: | db: | ||||
restart: always | restart: always | ||||
@@ -6,14 +6,14 @@ services: | |||||
volumes: | volumes: | ||||
- postgresql:/var/lib/postgresql/data | - postgresql:/var/lib/postgresql/data | ||||
environment: | environment: | ||||
POSTGRES_DB: 'postgres' | |||||
POSTGRES_USER: 'postgres' | |||||
POSTGRES_DB: "postgres" | |||||
POSTGRES_USER: "postgres" | |||||
POSTGRES_PASSWORD: ${DATABASE_PASSWORD} | POSTGRES_PASSWORD: ${DATABASE_PASSWORD} | ||||
backend: | backend: | ||||
restart: always | restart: always | ||||
image: lesspass/backend:latest | image: lesspass/backend:latest | ||||
expose: | expose: | ||||
- '8000' | |||||
- "8000" | |||||
volumes: | volumes: | ||||
- www:/backend/www | - www:/backend/www | ||||
links: | links: | ||||
@@ -21,11 +21,11 @@ services: | |||||
env_file: | env_file: | ||||
- .env | - .env | ||||
environment: | environment: | ||||
DATABASE_ENGINE: 'django.db.backends.postgresql' | |||||
DATABASE_NAME: 'postgres' | |||||
DATABASE_USER: 'postgres' | |||||
DATABASE_HOST: 'db' | |||||
DATABASE_PORT: '5432' | |||||
DATABASE_ENGINE: "django.db.backends.postgresql" | |||||
DATABASE_NAME: "postgres" | |||||
DATABASE_USER: "postgres" | |||||
DATABASE_HOST: "db" | |||||
DATABASE_PORT: "5432" | |||||
frontend: | frontend: | ||||
restart: always | restart: always | ||||
image: lesspass/frontend:latest | image: lesspass/frontend:latest | ||||
@@ -33,8 +33,8 @@ services: | |||||
restart: always | restart: always | ||||
image: lesspass/nginx:letsencrypt | image: lesspass/nginx:letsencrypt | ||||
ports: | ports: | ||||
- '80:80' | |||||
- '443:443' | |||||
- "80:80" | |||||
- "443:443" | |||||
volumes_from: | volumes_from: | ||||
- backend | - backend | ||||
volumes: | volumes: | ||||
@@ -30,8 +30,8 @@ | |||||
"copy-webpack-plugin": "^5.0.3", | "copy-webpack-plugin": "^5.0.3", | ||||
"cross-env": "^5.2.0", | "cross-env": "^5.2.0", | ||||
"css-loader": "^3.0.0", | "css-loader": "^3.0.0", | ||||
"cypress": "^3.4.0", | |||||
"cypress-plugin-tab": "^1.0.3", | |||||
"cypress": "^4.5.0", | |||||
"cypress-plugin-tab": "^1.0.5", | |||||
"express": "^4.17.1", | "express": "^4.17.1", | ||||
"file-loader": "^4.0.0", | "file-loader": "^4.0.0", | ||||
"html-webpack-plugin": "^3.2.0", | "html-webpack-plugin": "^3.2.0", | ||||
@@ -9,7 +9,8 @@ describe("Connected Mode", function() { | |||||
cy.get("#fingerprint .fa-btc").should("be.visible"); | cy.get("#fingerprint .fa-btc").should("be.visible"); | ||||
cy.get("#fingerprint .fa-subway").should("be.visible"); | cy.get("#fingerprint .fa-subway").should("be.visible"); | ||||
cy.get("#signInButton").click(); | cy.get("#signInButton").click(); | ||||
cy.get("#siteField").type("lesspass.com").blur(); | |||||
cy.wait(500); | |||||
cy.get("#siteField").type("lesspass.com"); | |||||
cy.get("#login").type("test@lesspass.com"); | cy.get("#login").type("test@lesspass.com"); | ||||
cy.get("#passwordField").type("test@lesspass.com"); | cy.get("#passwordField").type("test@lesspass.com"); | ||||
cy.get("#generatePassword__btn").click(); | cy.get("#generatePassword__btn").click(); | ||||
@@ -130,6 +130,7 @@ describe("Password Generation", function() { | |||||
}); | }); | ||||
it("should generate password with 2 tabs and enter", function() { | it("should generate password with 2 tabs and enter", function() { | ||||
cy.visit("/"); | cy.visit("/"); | ||||
cy.wait(500); | |||||
cy.get("#siteField") | cy.get("#siteField") | ||||
.type("lesspass.com") | .type("lesspass.com") | ||||
.tab() | .tab() | ||||
@@ -1,23 +0,0 @@ | |||||
# 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* |
@@ -1,39 +0,0 @@ | |||||
{ | |||||
"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" | |||||
] | |||||
} | |||||
} |
@@ -1,43 +0,0 @@ | |||||
<!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> |
@@ -1,25 +0,0 @@ | |||||
{ | |||||
"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" | |||||
} |
@@ -1,3 +0,0 @@ | |||||
# https://www.robotstxt.org/robotstxt.html | |||||
User-agent: * | |||||
Disallow: / |
@@ -1,9 +0,0 @@ | |||||
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(); | |||||
}); |
@@ -1,7 +0,0 @@ | |||||
import React from "react"; | |||||
function App() { | |||||
return <div className="App">App</div>; | |||||
} | |||||
export default App; |
@@ -1,11 +0,0 @@ | |||||
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") | |||||
); |
@@ -1,5 +0,0 @@ | |||||
// 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'; |
@@ -1,25 +0,0 @@ | |||||
{ | |||||
"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" | |||||
] | |||||
} |