Browse Source

Refactor CICD

tags/site-v9.3.1
Guillaume Vincent 2 years ago
parent
commit
8d78f2e161
65 changed files with 489 additions and 6133 deletions
  1. +0
    -46
      .github/workflows/build-lesspass-pure-package.yml
  2. +21
    -0
      .github/workflows/cli-publish.yml
  3. +24
    -0
      .github/workflows/cli-test.yml
  4. +19
    -0
      .github/workflows/containers-publish.yml
  5. +45
    -0
      .github/workflows/containers-test.yml
  6. +0
    -35
      .github/workflows/deploy-cli.yml
  7. +0
    -30
      .github/workflows/deploy-containers.yml
  8. +0
    -35
      .github/workflows/deploy-lesspass-crypto-package.yml
  9. +0
    -35
      .github/workflows/deploy-lesspass-entropy-package.yml
  10. +0
    -35
      .github/workflows/deploy-lesspass-fingerprint-package.yml
  11. +0
    -35
      .github/workflows/deploy-lesspass-package.yml
  12. +0
    -37
      .github/workflows/deploy-lesspass-pure-package.yml
  13. +0
    -35
      .github/workflows/deploy-lesspass-render-password-package.yml
  14. +22
    -0
      .github/workflows/lesspass-crypto-publish.yml
  15. +24
    -0
      .github/workflows/lesspass-crypto-test.yml
  16. +21
    -0
      .github/workflows/lesspass-entropy-publish.yml
  17. +24
    -0
      .github/workflows/lesspass-entropy-test.yml
  18. +22
    -0
      .github/workflows/lesspass-fingerprint-publish.yml
  19. +24
    -0
      .github/workflows/lesspass-fingerprint-test.yml
  20. +21
    -0
      .github/workflows/lesspass-publish.yml
  21. +22
    -0
      .github/workflows/lesspass-pure-publish.yml
  22. +24
    -0
      .github/workflows/lesspass-pure-test.yml
  23. +21
    -0
      .github/workflows/lesspass-render-password-publish.yml
  24. +24
    -0
      .github/workflows/lesspass-render-password-test.yml
  25. +24
    -0
      .github/workflows/lesspass-test.yml
  26. +28
    -0
      .github/workflows/lesspass-web-extension-publish.yml
  27. +24
    -0
      .github/workflows/lesspass-web-extension-test.yml
  28. +20
    -0
      .github/workflows/mobile-test.yml
  29. +0
    -67
      .github/workflows/test.yml
  30. +0
    -115
      bin/build_web_extensions
  31. +0
    -113
      bin/build_web_site
  32. +0
    -28
      bin/deploy_web_extensions
  33. +2
    -1
      package.json
  34. +0
    -21
      packages/deploy
  35. +1
    -1
      packages/lesspass-crypto/package.json
  36. +1
    -1
      packages/lesspass-entropy/package.json
  37. +1
    -1
      packages/lesspass-fingerprint/package.json
  38. +1
    -0
      packages/lesspass-pure/.gitignore
  39. BIN
      packages/lesspass-pure/dist/favicon.ico
  40. BIN
      packages/lesspass-pure/dist/fonts/fontawesome-webfont.674f50d2.eot
  41. BIN
      packages/lesspass-pure/dist/fonts/fontawesome-webfont.af7ae505.woff2
  42. BIN
      packages/lesspass-pure/dist/fonts/fontawesome-webfont.b06871f2.ttf
  43. BIN
      packages/lesspass-pure/dist/fonts/fontawesome-webfont.fee66e71.woff
  44. +0
    -2671
      packages/lesspass-pure/dist/img/fontawesome-webfont.912ec66d.svg
  45. +0
    -12
      packages/lesspass-pure/dist/index.html
  46. +0
    -12
      packages/lesspass-pure/dist/lesspass.min.css
  47. +0
    -22
      packages/lesspass-pure/dist/lesspass.min.js
  48. +0
    -1
      packages/lesspass-pure/dist/lesspass.min.js.map
  49. +9
    -6
      packages/lesspass-pure/package.json
  50. +1
    -1
      packages/lesspass-render-password/package.json
  51. +1
    -1
      packages/lesspass-site/package.json
  52. +5
    -0
      packages/lesspass-web-extension/.gitignore
  53. BIN
      packages/lesspass-web-extension/extension/dist/favicon.ico
  54. BIN
      packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.674f50d2.eot
  55. BIN
      packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.af7ae505.woff2
  56. BIN
      packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.b06871f2.ttf
  57. BIN
      packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.fee66e71.woff
  58. +0
    -2671
      packages/lesspass-web-extension/extension/dist/img/fontawesome-webfont.912ec66d.svg
  59. +0
    -12
      packages/lesspass-web-extension/extension/dist/index.html
  60. +0
    -12
      packages/lesspass-web-extension/extension/dist/lesspass.min.css
  61. +0
    -22
      packages/lesspass-web-extension/extension/dist/lesspass.min.js
  62. +0
    -1
      packages/lesspass-web-extension/extension/dist/lesspass.min.js.map
  63. +1
    -1
      packages/lesspass-web-extension/package.json
  64. +3
    -3
      packages/lesspass/package.json
  65. +9
    -14
      yarn.lock

+ 0
- 46
.github/workflows/build-lesspass-pure-package.yml View File

@@ -1,46 +0,0 @@
name: build-lesspass-pure-package

on:
push:
paths:
- "packages/lesspass-pure/**"
- "!packages/lesspass-pure/dist/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: git hash
run: |
git rev-parse HEAD
- name: test lesspass-pure package
run: |
yarn install
yarn workspace lesspass-pure run test

build-and-commit-and-push:
runs-on: ubuntu-18.04
needs: test
steps:
- uses: actions/checkout@v2
with:
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: build lesspass-pure package
run: |
cd packages/lesspass-pure
yarn install
yarn build
- name: commit build and push
run: |
git config --global user.name 'botsito'
git config --global user.email 'botsito@lesspass.com'
git add .
git commit -m "Auto build for lesspass-pure"
git push

+ 21
- 0
.github/workflows/cli-publish.yml View File

@@ -0,0 +1,21 @@
name: cli-publish
on:
workflow_run:
workflows: ["cli-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.6"
- run: |
cd cli
./deploy
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}

+ 24
- 0
.github/workflows/cli-test.yml View File

@@ -0,0 +1,24 @@
name: cli-test
on:
push:
paths:
- "cli/**"
pull_request:
paths:
- "cli/**"
jobs:
test:
name: Python ${{ matrix.python-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
python-version:
- "3.6"
- "3.8"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- run: cd cli
- run: ./test

+ 19
- 0
.github/workflows/containers-publish.yml View File

@@ -0,0 +1,19 @@
name: containers-publish
on:
workflow_run:
workflows: ["containers-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: deploy containers
run: |
cd containers
./deploy
env:
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}

+ 45
- 0
.github/workflows/containers-test.yml View File

@@ -0,0 +1,45 @@
name: containers-test
on:
push:
paths:
- "containers/**"
- "packages/lesspass-site/**"
pull_request:
paths:
- "containers/**"
- "packages/lesspass-site/**"
jobs:
test-backend:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.8"
- run: |
cd containers/backend
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python manage.py test
test-site:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-site run test
test-integration:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- run: |
cd containers
./test

+ 0
- 35
.github/workflows/deploy-cli.yml View File

@@ -1,35 +0,0 @@
name: deploy-cli

on:
push:
paths:
- "cli/lesspass/version.py"

jobs:
test-cli:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.6"
- name: test cli
run: |
cd cli
./test

deploy-cli:
runs-on: ubuntu-18.04
needs: test-cli
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.6"
- name: deploy cli
run: |
cd cli
./deploy
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}

+ 0
- 30
.github/workflows/deploy-containers.yml View File

@@ -1,30 +0,0 @@
name: deploy-containers

on:
push:
paths:
- "containers/**"
- "packages/lesspass-site/**"

jobs:
test-containers:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: test containers
run: |
cd containers
./test

deploy-containers:
runs-on: ubuntu-18.04
needs: test-containers
steps:
- uses: actions/checkout@v2
- name: deploy containers
run: |
cd containers
./deploy
env:
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}

+ 0
- 35
.github/workflows/deploy-lesspass-crypto-package.yml View File

@@ -1,35 +0,0 @@
name: deploy-lesspass-crypto-package

on:
push:
paths:
- "packages/lesspass-crypto/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test lesspass-crypto package
run: |
yarn install
yarn workspace lesspass-crypto run test

deploy:
runs-on: ubuntu-18.04
needs: test
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: deploy lesspass-crypto package
run: |
cd packages
./deploy lesspass-crypto
continue-on-error: true
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 0
- 35
.github/workflows/deploy-lesspass-entropy-package.yml View File

@@ -1,35 +0,0 @@
name: deploy-lesspass-entropy-package

on:
push:
paths:
- "packages/lesspass-entropy/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test lesspass-entropy package
run: |
yarn install
yarn workspace lesspass-entropy run test

deploy:
runs-on: ubuntu-18.04
needs: test
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: deploy lesspass-entropy package
run: |
cd packages
./deploy lesspass-entropy
continue-on-error: true
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 0
- 35
.github/workflows/deploy-lesspass-fingerprint-package.yml View File

@@ -1,35 +0,0 @@
name: deploy-lesspass-fingerprint-package

on:
push:
paths:
- "packages/lesspass-fingerprint/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test lesspass-fingerprint package
run: |
yarn install
yarn workspace lesspass-fingerprint run test

deploy:
runs-on: ubuntu-18.04
needs: test
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: deploy lesspass-fingerprint package
run: |
cd packages
./deploy lesspass-fingerprint
continue-on-error: true
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 0
- 35
.github/workflows/deploy-lesspass-package.yml View File

@@ -1,35 +0,0 @@
name: deploy-lesspass-package

on:
push:
paths:
- "packages/lesspass/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test lesspass package
run: |
yarn install
yarn workspace lesspass run test

deploy:
runs-on: ubuntu-18.04
needs: test
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: deploy lesspass package
run: |
cd packages
./deploy lesspass
continue-on-error: true
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 0
- 37
.github/workflows/deploy-lesspass-pure-package.yml View File

@@ -1,37 +0,0 @@
name: deploy-lesspass-pure-package

on:
push:
paths:
- "packages/lesspass-pure/dist/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test lesspass-pure package
run: |
yarn install
yarn workspace lesspass-pure run test

deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: git hash
run: |
git rev-parse HEAD
- name: deploy lesspass-pure package
run: |
cd packages
./deploy lesspass-pure
continue-on-error: true
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 0
- 35
.github/workflows/deploy-lesspass-render-password-package.yml View File

@@ -1,35 +0,0 @@
name: deploy-lesspass-render-password-package

on:
push:
paths:
- "packages/lesspass-render-password/**"

jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test lesspass-render-password package
run: |
yarn install
yarn workspace lesspass-render-password run test

deploy:
runs-on: ubuntu-18.04
needs: test
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: deploy lesspass-render-password package
run: |
cd packages
./deploy lesspass-render-password
continue-on-error: true
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 22
- 0
.github/workflows/lesspass-crypto-publish.yml View File

@@ -0,0 +1,22 @@
name: lesspass-crypto-publish
on:
workflow_run:
workflows: ["lesspass-crypto-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
registry-url: "https://registry.npmjs.org"
- run: yarn install
- run: yarn workspace lesspass-crypto run build
- run: yarn workspace lesspass-crypto run publish
continue-on-error: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 24
- 0
.github/workflows/lesspass-crypto-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-crypto-test
on:
push:
paths:
- "packages/lesspass-crypto/**"
pull_request:
paths:
- "packages/lesspass-crypto/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-crypto run test

+ 21
- 0
.github/workflows/lesspass-entropy-publish.yml View File

@@ -0,0 +1,21 @@
name: lesspass-entropy-publish
on:
workflow_run:
workflows: ["lesspass-entropy-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
registry-url: "https://registry.npmjs.org"
- run: yarn install
- run: yarn workspace lesspass-entropy run publish
continue-on-error: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 24
- 0
.github/workflows/lesspass-entropy-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-entropy-test
on:
push:
paths:
- "packages/lesspass-entropy/**"
pull_request:
paths:
- "packages/lesspass-entropy/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-entropy run test

+ 22
- 0
.github/workflows/lesspass-fingerprint-publish.yml View File

@@ -0,0 +1,22 @@
name: lesspass-fingerprint-publish
on:
workflow_run:
workflows: ["lesspass-fingerprint-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
registry-url: "https://registry.npmjs.org"
- run: yarn install
- run: yarn workspace lesspass-fingerprint run build
- run: yarn workspace lesspass-fingerprint run publish
continue-on-error: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 24
- 0
.github/workflows/lesspass-fingerprint-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-fingerprint-test
on:
push:
paths:
- "packages/lesspass-fingerprint/**"
pull_request:
paths:
- "packages/lesspass-fingerprint/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-fingerprint run test

+ 21
- 0
.github/workflows/lesspass-publish.yml View File

@@ -0,0 +1,21 @@
name: lesspass-publish
on:
workflow_run:
workflows: ["lesspass-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
registry-url: "https://registry.npmjs.org"
- run: yarn install
- run: yarn workspace lesspass run publish
continue-on-error: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 22
- 0
.github/workflows/lesspass-pure-publish.yml View File

@@ -0,0 +1,22 @@
name: lesspass-pure-publish
on:
workflow_run:
workflows: ["lesspass-pure-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
registry-url: "https://registry.npmjs.org"
- run: yarn install
- run: yarn workspace lesspass-pure run build
- run: yarn workspace lesspass-pure run publish
continue-on-error: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 24
- 0
.github/workflows/lesspass-pure-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-pure-test
on:
push:
paths:
- "packages/lesspass-pure/**"
pull_request:
paths:
- "packages/lesspass-pure/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-pure run test

+ 21
- 0
.github/workflows/lesspass-render-password-publish.yml View File

@@ -0,0 +1,21 @@
name: lesspass-render-password-publish
on:
workflow_run:
workflows: ["lesspass-render-password-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
registry-url: "https://registry.npmjs.org"
- run: yarn install
- run: yarn workspace lesspass-render-password run publish
continue-on-error: true
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 24
- 0
.github/workflows/lesspass-render-password-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-render-password-test
on:
push:
paths:
- "packages/lesspass-render-password/**"
pull_request:
paths:
- "packages/lesspass-render-password/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-render-password run test

+ 24
- 0
.github/workflows/lesspass-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-test
on:
push:
paths:
- "packages/lesspass/**"
pull_request:
paths:
- "packages/lesspass/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass run test

+ 28
- 0
.github/workflows/lesspass-web-extension-publish.yml View File

@@ -0,0 +1,28 @@
name: lesspass-web-extension-publish
on:
workflow_run:
workflows: ["lesspass-web-extension-test"]
branches: [main]
types:
- completed
jobs:
publish:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
- run: yarn install
- run: yarn --version
- run: ls packages/lesspass-web-extension/node_modules
- run: ls packages/lesspass-web-extension/node_modules/lesspass-pure
- run: yarn workspace lesspass-web-extension run build
- run: yarn workspace lesspass-web-extension run release
continue-on-error: true
env:
WEB_EXT_API_KEY: ${{ secrets.WEB_EXT_API_KEY }}
WEB_EXT_API_SECRET: ${{ secrets.WEB_EXT_API_SECRET }}
EXTENSION_ID: ${{ secrets.EXTENSION_ID }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
REFRESH_TOKEN: ${{ secrets.REFRESH_TOKEN }}

+ 24
- 0
.github/workflows/lesspass-web-extension-test.yml View File

@@ -0,0 +1,24 @@
name: lesspass-web-extension-test
on:
push:
paths:
- "packages/lesspass-web-extension/**"
pull_request:
paths:
- "packages/lesspass-web-extension/**"
jobs:
test:
name: Node.js ${{ matrix.node-version }}
runs-on: ubuntu-18.04
strategy:
matrix:
node-version:
- "14"
- "16"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn workspace lesspass-web-extension run test

+ 20
- 0
.github/workflows/mobile-test.yml View File

@@ -0,0 +1,20 @@
name: mobile-test
on:
push:
paths:
- "mobile/**"
pull_request:
paths:
- "mobile/**"
jobs:
test-mobile:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
- run: |
cd mobile
yarn install
yarn test

+ 0
- 67
.github/workflows/test.yml View File

@@ -1,67 +0,0 @@
name: test

on: [push, pull_request]

jobs:
test-packages:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- run: |
yarn install
yarn workspaces run test

test-mobile:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "14"
- name: test mobile
run: |
cd mobile
yarn install
yarn test

test-cli:
runs-on: ubuntu-18.04
strategy:
max-parallel: 3
matrix:
python-version: [3.6, 3.7, 3.8]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: test cli
run: |
cd cli
./test

test-backend:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.8"
- name: test backend
run: |
cd containers/backend
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python manage.py test

test-containers:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: test containers
run: |
cd containers
./test

+ 0
- 115
bin/build_web_extensions View File

@@ -1,115 +0,0 @@
#!/usr/bin/env bash

RED='\033[0;31m'
NOCOLOR='\033[0m'

function print_error {
echo -e "${RED}$1${NOCOLOR}"
}

function check_current_directory_is_root {
if [ ! -f README.md ]; then
print_error "You seems to be in the wrong directory"
print_error "Execute this script from the root of lesspass with ./bin/${0##*/}"
exit 1
fi
}

function check_repository_is_clean {
git remote update
git add .
git status
git diff-index --quiet HEAD
if [ $? == 1 ]
then
print_error "Git repository not clean. Aborting."
exit 1
fi
if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]
then
print_error "Git branch diverged. Aborting."
exit 1
fi
}

function check_branch_is_main {
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
if [ $BRANCH_NAME != "main" ]
then
print_error "Current branch is not main. Aborting."
exit 1
fi
}

function check_bump_type_is_defined {
bump_type="${1}"
if [ "${bump_type}" != "major" ] && [ "${bump_type}" != "minor" ] && [ "${bump_type}" != "patch" ]
then
print_error "Error: No bump type specified (major, minor, patch). Aborting."
exit 1
fi
}

set +o errexit

bump_type="${1:-}"
check_bump_type_is_defined ${bump_type}
check_branch_is_main
check_current_directory_is_root
check_repository_is_clean

set -o errexit
set -o pipefail
set -o nounset

function increment_version {
IFS='.' read -a versions <<< "${1}"

major=${versions[0]}
minor=${versions[1]}
patch=${versions[2]}

case "${2}" in
"major")
major=$((major + 1))
minor=0
patch=0
;;
"minor")
minor=$((minor + 1))
patch=0
;;
"patch")
patch=$((patch + 1))
;;
esac

new_version="$major.$minor.$patch"
echo ${new_version}
}

function build {
pushd packages/lesspass-web-extension/
yarn install
yarn upgrade --latest lesspass-pure
yarn build
popd
}


function commit {
git add .
git commit --message="Auto build for lesspass-web-extension"
}

current_version=$( grep -m1 version packages/lesspass-web-extension/package.json | cut -d '"' -f4 )
echo "Current lesspass-web-extension version is ${current_version}"
new_version=$( increment_version ${current_version} ${bump_type} )
echo "New lesspass-web-extension version is ${new_version}"
latest_lesspass_pure_version=$( yarn info -s lesspass-pure version )
echo "Latest lesspass-pure version is ${latest_lesspass_pure_version}"
sed -i -E "s/\"lesspass-pure\": \"([0-9]+)\.([0-9]+)\.([0-9]+)\"/\"lesspass-pure\": \"${latest_lesspass_pure_version}\"/g" packages/lesspass-web-extension/package.json
sed -i -E "s/\"version\": \"([0-9]+)\.([0-9]+)\.([0-9]+)\"/\"version\": \"${new_version}\"/g" packages/lesspass-web-extension/package.json
sed -i -E "s/\"version\": \"([0-9]+)\.([0-9]+)\.([0-9]+)\"/\"version\": \"${new_version}\"/g" packages/lesspass-web-extension/extension/manifest.json
build
commit

+ 0
- 113
bin/build_web_site View File

@@ -1,113 +0,0 @@
#!/usr/bin/env bash

RED='\033[0;31m'
NOCOLOR='\033[0m'

function print_error {
echo -e "${RED}$1${NOCOLOR}"
}

function check_current_directory_is_root {
if [ ! -f README.md ]; then
print_error "You seems to be in the wrong directory"
print_error "Execute this script from the root of lesspass with ./bin/${0##*/}"
exit 1
fi
}

function check_repository_is_clean {
git remote update
git add .
git status
git diff-index --quiet HEAD
if [ $? == 1 ]
then
print_error "Git repository not clean. Aborting."
exit 1
fi
if [ $(git rev-parse HEAD) != $(git rev-parse @{u}) ]
then
print_error "Git branch diverged. Aborting."
exit 1
fi
}

function check_branch_is_main {
BRANCH_NAME=$(git branch | grep \* | cut -d ' ' -f2)
if [ $BRANCH_NAME != "main" ]
then
print_error "Current branch is not main. Aborting."
exit 1
fi
}

function check_bump_type_is_defined {
bump_type="${1}"
if [ "${bump_type}" != "major" ] && [ "${bump_type}" != "minor" ] && [ "${bump_type}" != "patch" ]
then
print_error "Error: No bump type specified (major, minor, patch). Aborting."
exit 1
fi
}

set +o errexit

bump_type="${1:-}"
check_bump_type_is_defined ${bump_type}
check_branch_is_main
check_current_directory_is_root
check_repository_is_clean

set -o errexit
set -o pipefail
set -o nounset

function increment_version {
IFS='.' read -a versions <<< "${1}"

major=${versions[0]}
minor=${versions[1]}
patch=${versions[2]}

case "${2}" in
"major")
major=$((major + 1))
minor=0
patch=0
;;
"minor")
minor=$((minor + 1))
patch=0
;;
"patch")
patch=$((patch + 1))
;;
esac

new_version="$major.$minor.$patch"
echo ${new_version}
}

function build {
cd packages/lesspass-site
yarn install
yarn run build
cd ../../
}


function commit {
git add .
git commit --message="Auto build for lesspass-site"
}

current_version=$( grep -Po '(?<="version": ")[^"]*' packages/lesspass-site/package.json )
echo "Current lesspass-site version is ${current_version}"
new_version=$( increment_version ${current_version} ${bump_type} )
echo "New lesspass-site version is ${new_version}"
latest_lesspass_pure_version=$( yarn info -s lesspass-pure version )
echo "Latest lesspass-pure version is ${latest_lesspass_pure_version}"
sed -i -E "s/\"lesspass-pure\": \"([0-9]+)\.([0-9]+)\.([0-9]+)\"/\"lesspass-pure\": \"${latest_lesspass_pure_version}\"/g" packages/lesspass-site/package.json
sed -i -E "s/\"version\": \"([0-9]+)\.([0-9]+)\.([0-9]+)\"/\"version\": \"${new_version}\"/g" packages/lesspass-site/package.json
build
commit

+ 0
- 28
bin/deploy_web_extensions View File

@@ -1,28 +0,0 @@
#!/usr/bin/env bash

function check_env_variables_are_setted {
if [ -z "${EXTENSION_ID}" ] || [ -z "${CLIENT_ID}" ] || [ -z "${REFRESH_TOKEN}" ] || [ -z "${WEB_EXT_API_KEY}" ] || [ -z "${WEB_EXT_API_SECRET}" ]; then
echo "Need to set EXTENSION_ID, CLIENT_ID, REFRESH_TOKEN, WEB_EXT_API_KEY and WEB_EXT_API_SECRET env variables to release web extensions"
exit 1
fi
}

set +o errexit

check_env_variables_are_setted

set -o errexit
set -o pipefail
set -o nounset

function release_web_extensions {
cd packages/lesspass-web-extension
yarn install
yarn run release
commit=$( git rev-parse HEAD )
wget http://github.com/lesspass/lesspass/archive/${commit}.zip
echo "Sources saved in ${commit}.zip"
echo "Upload them on https://addons.mozilla.org/en-US/developers/"
}

release_web_extensions

+ 2
- 1
package.json View File

@@ -10,7 +10,8 @@
"packages/*"
],
"nohoist": [
"**/lesspass-pure"
"**/lesspass-pure",
"**/lesspass-pure/**"
]
},
"devDependencies": {


+ 0
- 21
packages/deploy View File

@@ -1,21 +0,0 @@
#!/usr/bin/env bash

if [ -z "${NPM_TOKEN}" ]; then
echo "Need to set NPM_TOKEN env variable to release node modules"
exit 1
fi

if [ $# -eq 0 ]; then
echo "No arguments provided"
exit 1
fi

touch ~/.npmrc
grep --fixed-strings --line-regexp --silent "//registry.npmjs.org/:_authToken=$NPM_TOKEN" ~/.npmrc || echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >> ~/.npmrc
for project in $@
do
pushd ${project}
yarn publish --non-interactive
pwd
popd
done

+ 1
- 1
packages/lesspass-crypto/package.json View File

@@ -16,7 +16,7 @@
"build": "yarn clean && yarn build:cjs && yarn build:esm",
"build:cjs": "tsc --module CommonJS --outDir dist/cjs",
"build:esm": "tsc --module ESNext --outDir dist/esm --declaration",
"prepare": "npm run build"
"prepare": "yarn build"
},
"jest": {
"preset": "ts-jest/presets/default-esm",


+ 1
- 1
packages/lesspass-entropy/package.json View File

@@ -17,6 +17,6 @@
"test:browser": "karma start test/karma.conf.js"
},
"dependencies": {
"lesspass-crypto": "9.1.10"
"lesspass-crypto": "^9.2.0"
}
}

+ 1
- 1
packages/lesspass-fingerprint/package.json View File

@@ -17,6 +17,6 @@
"test:browser": "karma start test/karma.conf.js"
},
"dependencies": {
"lesspass-crypto": "9.1.10"
"lesspass-crypto": "^9.2.0"
}
}

+ 1
- 0
packages/lesspass-pure/.gitignore View File

@@ -1,2 +1,3 @@
dist/
tests/e2e/videos
tests/e2e/screenshots

BIN
packages/lesspass-pure/dist/favicon.ico View File

Before After

BIN
packages/lesspass-pure/dist/fonts/fontawesome-webfont.674f50d2.eot View File


BIN
packages/lesspass-pure/dist/fonts/fontawesome-webfont.af7ae505.woff2 View File


BIN
packages/lesspass-pure/dist/fonts/fontawesome-webfont.b06871f2.ttf View File


BIN
packages/lesspass-pure/dist/fonts/fontawesome-webfont.fee66e71.woff View File


+ 0
- 2671
packages/lesspass-pure/dist/img/fontawesome-webfont.912ec66d.svg
File diff suppressed because it is too large
View File


+ 0
- 12
packages/lesspass-pure/dist/index.html View File

@@ -1,12 +0,0 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>LessPass</title><style>div.center {
max-width: 420px;
display: block;
margin-left: auto;
margin-right: auto;
}

@media (min-width: 544px) {
#lesspass {
margin-top: 3em;
}
}</style><link href="/lesspass.min.css" rel="preload" as="style"><link href="/lesspass.min.js" rel="preload" as="script"><link href="/lesspass.min.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but LessPass doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div class="center lesspass--full-width"><div id="lesspass"></div></div><script src="/lesspass.min.js"></script></body></html>

+ 0
- 12
packages/lesspass-pure/dist/lesspass.min.css
File diff suppressed because it is too large
View File


+ 0
- 22
packages/lesspass-pure/dist/lesspass.min.js
File diff suppressed because it is too large
View File


+ 0
- 1
packages/lesspass-pure/dist/lesspass.min.js.map
File diff suppressed because it is too large
View File


+ 9
- 6
packages/lesspass-pure/package.json View File

@@ -1,6 +1,6 @@
{
"name": "lesspass-pure",
"version": "9.5.3",
"version": "9.5.4",
"description": "LessPass web component",
"license": "GPL-3.0",
"author": "Guillaume Vincent <guillaume@oslab.fr>",
@@ -16,6 +16,9 @@
"test:e2e": "vue-cli-service test:e2e --headless",
"lint": "vue-cli-service lint"
},
"files": [
"dist"
],
"jest": {
"preset": "@vue/cli-plugin-unit-jest"
},
@@ -67,11 +70,11 @@
"vuex-router-sync": "^5.0.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-e2e-cypress": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-unit-jest": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/cli-plugin-babel": "^4.5.0",
"@vue/cli-plugin-e2e-cypress": "^4.5.0",
"@vue/cli-plugin-eslint": "^4.5.0",
"@vue/cli-plugin-unit-jest": "^4.5.0",
"@vue/cli-service": "^4.5.0",
"@vue/test-utils": "^1.0.3",
"axios-mock-adapter": "^1.20.0",
"babel-eslint": "^10.1.0",


+ 1
- 1
packages/lesspass-render-password/package.json View File

@@ -13,6 +13,6 @@
"test": "jest"
},
"dependencies": {
"big-integer": "1.6.48"
"big-integer": "^1.6.48"
}
}

+ 1
- 1
packages/lesspass-site/package.json View File

@@ -12,7 +12,7 @@
},
"dependencies": {
"express": "^4.17.1",
"lesspass-pure": "9.5.2"
"lesspass-pure": "^9.5.2"
},
"devDependencies": {
"favicons": "^6.2.1",


+ 5
- 0
packages/lesspass-web-extension/.gitignore View File

@@ -1 +1,6 @@
build/
extension/fonts
extension/img
extension/favicon.ico
extension/index.html
extension/lesspass.min.*

BIN
packages/lesspass-web-extension/extension/dist/favicon.ico View File

Before After

BIN
packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.674f50d2.eot View File


BIN
packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.af7ae505.woff2 View File


BIN
packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.b06871f2.ttf View File


BIN
packages/lesspass-web-extension/extension/dist/fonts/fontawesome-webfont.fee66e71.woff View File


+ 0
- 2671
packages/lesspass-web-extension/extension/dist/img/fontawesome-webfont.912ec66d.svg
File diff suppressed because it is too large
View File


+ 0
- 12
packages/lesspass-web-extension/extension/dist/index.html View File

@@ -1,12 +0,0 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>LessPass</title><style>div.center {
max-width: 420px;
display: block;
margin-left: auto;
margin-right: auto;
}

@media (min-width: 544px) {
#lesspass {
margin-top: 3em;
}
}</style><link href="/lesspass.min.css" rel="preload" as="style"><link href="/lesspass.min.js" rel="preload" as="script"><link href="/lesspass.min.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but LessPass doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div class="center lesspass--full-width"><div id="lesspass"></div></div><script src="/lesspass.min.js"></script></body></html>

+ 0
- 12
packages/lesspass-web-extension/extension/dist/lesspass.min.css
File diff suppressed because it is too large
View File


+ 0
- 22
packages/lesspass-web-extension/extension/dist/lesspass.min.js
File diff suppressed because it is too large
View File


+ 0
- 1
packages/lesspass-web-extension/extension/dist/lesspass.min.js.map
File diff suppressed because it is too large
View File


+ 1
- 1
packages/lesspass-web-extension/package.json View File

@@ -13,7 +13,7 @@
"release:cws": "cd extension && webstore upload --auto-publish"
},
"dependencies": {
"lesspass-pure": "9.5.2"
"lesspass-pure": "^9.5.2"
},
"devDependencies": {
"chrome-webstore-upload-cli": "^1.2.1",


+ 3
- 3
packages/lesspass/package.json View File

@@ -12,8 +12,8 @@
"test": "jest"
},
"dependencies": {
"lesspass-entropy": "9.1.9",
"lesspass-fingerprint": "9.1.9",
"lesspass-render-password": "9.1.9"
"lesspass-entropy": "^9.1.9",
"lesspass-fingerprint": "^9.1.9",
"lesspass-render-password": "^9.1.9"
}
}

+ 9
- 14
yarn.lock View File

@@ -2258,7 +2258,7 @@
resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.15.tgz#0700fd6bad39336d4189ba3ff7d25e638e818c9c"
integrity sha512-0zI0kANAVmjFO2LWGUIzdGPMeE3+9k+KeRDXsUqB30YfRF7abjfiiRPq5BU9pOzlJbVdpRkisschBrvdJqDuDg==

"@vue/cli-plugin-babel@~4.5.0":
"@vue/cli-plugin-babel@^4.5.0":
version "4.5.15"
resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.15.tgz#ae4fb2ed54255fe3d84df381dab68509641179ed"
integrity sha512-hBLrwYfFkHldEe34op/YNgPhpOWI5n5DB2Qt9I/1Epeif4M4iFaayrgjvOR9AVM6WbD3Yx7WCFszYpWrQZpBzQ==
@@ -2271,7 +2271,7 @@
thread-loader "^2.1.3"
webpack "^4.0.0"

"@vue/cli-plugin-e2e-cypress@~4.5.0":
"@vue/cli-plugin-e2e-cypress@^4.5.0":
version "4.5.15"
resolved "https://registry.yarnpkg.com/@vue/cli-plugin-e2e-cypress/-/cli-plugin-e2e-cypress-4.5.15.tgz#f50199ffa8ade11eb3d0b26ffa5d6c070a25d35c"
integrity sha512-zVQe5tUlmYl20ZRMXoZ0x38gQPOFP3H5VGF0+v0Er2seJIMs507AfN08zuzs+DH864J33OKLJRVQruWFkkkOnQ==
@@ -2280,7 +2280,7 @@
cypress "^3.8.3"
eslint-plugin-cypress "^2.10.3"

"@vue/cli-plugin-eslint@~4.5.0":
"@vue/cli-plugin-eslint@^4.5.0":
version "4.5.15"
resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.15.tgz#5781824a941f34c26336a67b1f6584a06c6a24ff"
integrity sha512-/2Fl6wY/5bz3HD035oSnFRMsKNxDxU396KqBdpCQdwdvqk4mm6JAbXqihpcBRTNPeTO6w+LwGe6FE56PVbJdbg==
@@ -2299,7 +2299,7 @@
dependencies:
"@vue/cli-shared-utils" "^4.5.15"

"@vue/cli-plugin-unit-jest@~4.5.0":
"@vue/cli-plugin-unit-jest@^4.5.0":
version "4.5.15"
resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-4.5.15.tgz#7be914ca1507ca344487eb377ed925c9db0b772a"
integrity sha512-oE3RDMerb21P6ALg70Zh2zU+RYYjoe09/7ZXYUj03uTb2obqUbcINpFfeVwM0B/J6H1YmqWJpnNBxWURhrqQHg==
@@ -2325,7 +2325,7 @@
resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.15.tgz#466c1f02777d02fef53a9bb49a36cc3a3bcfec4e"
integrity sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg==

"@vue/cli-service@~4.5.0":
"@vue/cli-service@^4.5.0":
version "4.5.15"
resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.15.tgz#0e9a186d51550027d0e68e95042077eb4d115b45"
integrity sha512-sFWnLYVCn4zRfu45IcsIE9eXM0YpDV3S11vlM2/DVbIPAGoYo5ySpSof6aHcIvkeGsIsrHFpPHzNvDZ/efs7jA==
@@ -3564,10 +3564,10 @@ bfj@^6.1.1:
hoopy "^0.1.4"
tryer "^1.0.1"

big-integer@1.6.48:
version "1.6.48"
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e"
integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==
big-integer@^1.6.48:
version "1.6.51"
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==

big.js@^3.1.3:
version "3.2.0"
@@ -10442,11 +10442,6 @@ left-pad@^1.3.0:
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==

lesspass-crypto@9.1.10:
version "9.1.10"
resolved "https://registry.yarnpkg.com/lesspass-crypto/-/lesspass-crypto-9.1.10.tgz#8f0be67dfbed517676e1de535977a9eda014c047"
integrity sha512-s0Ci9+sFjjm1kXhz+p92ATGh0h21siTE+KpjNwtoAo4iWeMbROuL+slVq6RxZTZL5jka3nycOr3cd9NCnEM5KA==

leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"


Loading…
Cancel
Save