Browse Source

Fix AMO disabled extension

pull/410/head
Guillaume Vincent 5 years ago
parent
commit
4d59e89aeb
28 changed files with 3169 additions and 0 deletions
  1. +22
    -0
      .travis.yml
  2. +1
    -0
      web-extension/.gitignore
  3. BIN
      web-extension/extension/dist/674f50d287a8c48dc19ba404d20fe713.eot
  4. +2671
    -0
      web-extension/extension/dist/912ec66d7572ff821749319396470bde.svg
  5. BIN
      web-extension/extension/dist/af7ae505a9eed503f8b8e6982036873e.woff2
  6. BIN
      web-extension/extension/dist/b06871f281fee6b241d60582ae9369b9.ttf
  7. BIN
      web-extension/extension/dist/favicon.ico
  8. BIN
      web-extension/extension/dist/fee66e712a8a08eef5805a46892932ad.woff
  9. +39
    -0
      web-extension/extension/dist/i18n/de.json
  10. +39
    -0
      web-extension/extension/dist/i18n/en.json
  11. +39
    -0
      web-extension/extension/dist/i18n/es.json
  12. +39
    -0
      web-extension/extension/dist/i18n/fr.json
  13. +39
    -0
      web-extension/extension/dist/i18n/pt.json
  14. +39
    -0
      web-extension/extension/dist/i18n/zh-CN.json
  15. +39
    -0
      web-extension/extension/dist/i18n/zh.json
  16. +4
    -0
      web-extension/extension/dist/lesspass.min.css
  17. +28
    -0
      web-extension/extension/dist/lesspass.min.js
  18. +7
    -0
      web-extension/extension/dist/popup.js
  19. BIN
      web-extension/extension/icons/icon-128x128.png
  20. +45
    -0
      web-extension/extension/icons/loading.svg
  21. BIN
      web-extension/extension/icons/logo-32.png
  22. BIN
      web-extension/extension/icons/logo-64.png
  23. BIN
      web-extension/extension/icons/logo.png
  24. +36
    -0
      web-extension/extension/manifest.json
  25. +34
    -0
      web-extension/extension/popup.html
  26. +7
    -0
      web-extension/extension/popup.js
  27. +11
    -0
      web-extension/gulpfile.js
  28. +30
    -0
      web-extension/package.json

+ 22
- 0
.travis.yml View File

@@ -86,3 +86,25 @@ jobs:
tags: true
all_branches: true
condition: "$TRAVIS_TAG =~ ^containers-*$"

- stage: deploy
name: "Deploy web extensions"
language: node_js
node_js:
- "lts/*"
cache:
yarn: true
env:
- EXTENSION_ID=lcmbpoclaodbgkbjafnkbbinogcbnjih
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH=$HOME/.yarn/bin:$PATH
- cd web-extension
install:
- yarn install
script:
- yarn release
on:
tags: true
all_branches: true
condition: "$TRAVIS_TAG =~ ^web-extension-*$"

+ 1
- 0
web-extension/.gitignore View File

@@ -0,0 +1 @@
build/

BIN
web-extension/extension/dist/674f50d287a8c48dc19ba404d20fe713.eot View File


+ 2671
- 0
web-extension/extension/dist/912ec66d7572ff821749319396470bde.svg
File diff suppressed because it is too large
View File


BIN
web-extension/extension/dist/af7ae505a9eed503f8b8e6982036873e.woff2 View File


BIN
web-extension/extension/dist/b06871f281fee6b241d60582ae9369b9.ttf View File


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

Before After

BIN
web-extension/extension/dist/fee66e712a8a08eef5805a46892932ad.woff View File


+ 39
- 0
web-extension/extension/dist/i18n/de.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "Erweiterte Optionen",
"Copied": "Kopiert!",
"Counter": "Zähler",
"CounterFieldHelp": "Erhöhen Sie diesen Wert, um das zu erstellende Passwort zu ändern, ohne Ihr Masterpasswort zu ändern.",
"CreatePassword": "Möchten Sie eines erstellen?",
"DBNotRunning": "Ihre LessPass Datenbank läuft nicht",
"Email": "email",
"EmailAlreadyExist": "Diese email-Adresse ist bereits registriert. Möchten Sie sich einloggen oder Ihr Passwort wiederherstellen?",
"EmailInvalid": "Bitte geben Sie eine gültige email-Adresse ein",
"EmailRequiredError": "Wir benötigen eine email-Adresse, um Ihr Konto zu finden.",
"Encrypt my master password": "Verschlüssele mein Masterpasswort",
"ForgotPassword": "Passwort vergessen?",
"Generate": "Erstelle",
"Length": "Länge",
"LengthDeprecationWarning": "The maximum length of a password is 35 characters.",
"LessPass Database Url": "LessPass Datenbank Url",
"Login": "Login",
"LoginFormInvalid": "LessPass URL, email-Adresse und Passwort sind obligatorisch",
"LoginIncorrectError": "Die email-Adresse und das Passwort, die Sie eingegeben haben, entsprechen nicht unseren Daten. Bitte überprüfen Sie sie und versuchen es nochmal.",
"Master Password": "Masterpasswort",
"Next": "Nächste",
"NoMatchFor": "Ups! Dafür gibt es keine Übereinstimmung",
"NoPassword": "Sie haben kein Passwort-Profil in Ihrer Datenbank gespeichert.",
"PasswordProfileCopied": "Ihr Passwort-Profil wurde kopiert",
"PasswordResetRequired": "Ein Passwort ist erforderlich",
"PasswordResetSuccessful": "Ihr Passwort wurde erfolgreich zurückgesetzt.",
"Previous": "Vorherige",
"Register": "Registrieren",
"Reset my password": "Mein Passwort zurücksetzen",
"ResetLinkExpired": "Der Link zum Zurücksetzen des Passworts ist abgelaufen.",
"Sign In": "Anmelden",
"Site": "Seite",
"SiteLoginMasterPasswordMandatory": "Die Felder für Seite, Anmeldename und Masterpasswort sind obligatorisch.",
"SorryCopy": "Es tut uns leid, dass die Kopie nur auf modernen Browsern funktioniert",
"UpdateYourSearch": "Bitte erweitern Sie Ihre Suche.",
"WelcomeRegister": "Willkommen {email}, danke für die Anmeldung.",
"resetPasswordSuccess": "Wenn die E-Mail-Adresse {email} mit einem LessPass-Konto verknüpft ist, erhalten Sie in Kürze eine E-Mail von LessPass mit Anweisungen zum Zurücksetzen Ihres Passworts."
}

+ 39
- 0
web-extension/extension/dist/i18n/en.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "Advanced options",
"Copied": "copied!",
"Counter": "Counter",
"CounterFieldHelp": "Increment this value to change the generated password without changing your master password.",
"CreatePassword": "Would you like to create one?",
"DBNotRunning": "Your LessPass Database is not running",
"Email": "Email",
"EmailAlreadyExist": "This email is already registered. Want to login or recover your password?",
"EmailInvalid": "Please enter a valid email",
"EmailRequiredError": "We need an email to find your account.",
"Encrypt my master password": "Encrypt my master password",
"ForgotPassword": "Forgot your password?",
"Generate": "Generate",
"Length": "Length",
"LengthDeprecationWarning": "Die maximale Länge eines Passwortes beträgt 35 Zeichen.",
"LessPass Database Url": "LessPass Database Url",
"Login": "Login",
"LoginFormInvalid": "LessPass URL, email, and password are mandatory",
"LoginIncorrectError": "The email and password you entered did not match our records. Please double-check and try again.",
"Master Password": "Master Password",
"Next": "Next",
"NoMatchFor": "Oops! There are no matches for",
"NoPassword": "You don't have any password profile saved in your database.",
"PasswordProfileCopied": "Your password profile has been copied",
"PasswordResetRequired": "A password is required",
"PasswordResetSuccessful": "Your password was reset successfully.",
"Previous": "Previous",
"Register": "Register",
"Reset my password": "Reset my password",
"ResetLinkExpired": "This password reset link has expired.",
"Sign In": "Sign In",
"Site": "Site",
"SiteLoginMasterPasswordMandatory": "Site, login, and master password fields are mandatory.",
"SorryCopy": "We are sorry the copy only works on modern browsers",
"UpdateYourSearch": "Please try broadening your search.",
"WelcomeRegister": "Welcome {email}, thank you for signing up.",
"resetPasswordSuccess": "If the email address {email} is associated with a LessPass account, you will shortly receive an email from LessPass with instructions on how to reset your password."
}

+ 39
- 0
web-extension/extension/dist/i18n/es.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "Opciones avanzadas",
"Copied": "¡ copiado !",
"Counter": "Contador",
"CounterFieldHelp": "Aumente este valor para cambiar la contraseña generada sin cambiar su contraseña maestra.",
"CreatePassword": "¿Quiere crear una?",
"DBNotRunning": "Su base de datos de LessPass no está ejecutando",
"Email": "Correo electrónico",
"EmailAlreadyExist": "Este correo electrónico ya está registrado. ¿Quiere iniciar sesión o recuperar su contraseña?",
"EmailInvalid": "Ingrese un correo elecrónico válido",
"EmailRequiredError": "Necesitamos un correo electrónico para encontrar su cuenta.",
"Encrypt my master password": "Cifrar mi contraseña maestra",
"ForgotPassword": "¿Olvidó su contraseña?",
"Generate": "Generar",
"Length": "Tamaño",
"LengthDeprecationWarning": "La longitud máxima de una contraseña es de 35 caracteres.",
"LessPass Database Url": "URL de la base de datos LessPass",
"Login": "Iniciar sesión",
"LoginFormInvalid": "URL, correo electrónico y contraseña de LessPass URL son obligatorios",
"LoginIncorrectError": "El correo electrónico y la contraseña que ingresó no concuerdan con nuestros registros. Revíselos de nuevo.",
"Master Password": "Contraseña maestra",
"Next": "Después",
"NoMatchFor": "¡Vaya! No ha resultados para",
"NoPassword": "No tiene ningún perfil de contraseñas guardado en su base de datos.",
"PasswordProfileCopied": "Se ha copiado su perfil de contraseña",
"PasswordResetRequired": "Se requiere una contraseña",
"PasswordResetSuccessful": "Su contraseña ha sido reestablecida con éxito.",
"Previous": "Anterior",
"Register": "Registrar",
"Reset my password": "Reestablecer mi contraseña",
"ResetLinkExpired": "El enlace para reestablecer esta contraseña ha expirado.",
"Sign In": "Registrarse",
"Site": "Sitio",
"SiteLoginMasterPasswordMandatory": "Los campos sitio, usuario y contraseña maestra son obligatorios.",
"SorryCopy": "Lamentamos que la copia sólo funcione en navegadores modernos",
"UpdateYourSearch": "Trate de ampliar su búsqueda.",
"WelcomeRegister": "Bienvenido o bienvenida {email}, gracias por registrarse.",
"resetPasswordSuccess": "Si la dirección de correo electrónico {email} está asociada a una cuenta LessPass, recibirá un correo electrónico de LessPass con instrucciones sobre cómo restablecer su contraseña."
}

+ 39
- 0
web-extension/extension/dist/i18n/fr.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "Options avancées",
"Copied": "Copié !",
"Counter": "Compteur",
"CounterFieldHelp": "Augmenter cette valeur pour changer de mot de passe sans changer de mot de passe fort.",
"CreatePassword": "Voulez-vous en créer un ?",
"DBNotRunning": "Votre base de données LessPass n'est pas démarrée.",
"Email": "Email",
"EmailAlreadyExist": "Cet email est déjà enregistré. Vous voulez peut-être vous connecter ?",
"EmailInvalid": "Entrez un email valide",
"EmailRequiredError": "Nous avons besoin d'un email pour trouver votre compte.",
"Encrypt my master password": "Chiffrer mon mot de passe fort",
"ForgotPassword": "Mot de passe oublié ?",
"Generate": "Générer",
"Length": "Longueur",
"LengthDeprecationWarning": "La longueur maximale d'un mot de passe est de 35 caractères.",
"LessPass Database Url": "URL de la base de données LessPass",
"Login": "Login",
"LoginFormInvalid": "L'URL LessPass, l'email et le mot de passe sont obligatoires.",
"LoginIncorrectError": "L'email et le mot de passe ne sont pas dans notre base de données. Vérifiez une nouvelle fois et réessayez.",
"Master Password": "Mot de passe fort",
"Next": "Suivant",
"NoMatchFor": "Oups ! il n'y a aucun resultat pour",
"NoPassword": "Vous n'avez aucun mot de passe enregistré.",
"PasswordProfileCopied": "Votre profil de mot de passe a été copié",
"PasswordResetRequired": "Un mot de passe est requis",
"PasswordResetSuccessful": "Votre mot de passe a été changé avec succès",
"Previous": "Précédent",
"Register": "S'enregistrer",
"Reset my password": "Changer mon mot de passe",
"ResetLinkExpired": "Ce lien a expiré.",
"Sign In": "Se connecter",
"Site": "Site",
"SiteLoginMasterPasswordMandatory": "Les champs site, login et mot de passe fort sont obligatoires.",
"SorryCopy": "Nous sommes désolés, la copie ne fonctionne que sur les navigateurs modernes",
"UpdateYourSearch": "Merci de modifier votre recherche.",
"WelcomeRegister": "Bienvenue {email}, merci de vous être enregistré.",
"resetPasswordSuccess": "Si l'adresse email {email} est associée avec un compte LessPass, vous allez recevoir un email de la part de LessPass avec les instructions pour changer votre mot de passe."
}

+ 39
- 0
web-extension/extension/dist/i18n/pt.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "Opções avançadas",
"Copied": "copiado!",
"Counter": "Contador",
"CounterFieldHelp": "Incremente este valor para mudar a senha gerada sem mudar sua senha mestre.",
"CreatePassword": "Gostaria de criar um?",
"DBNotRunning": "Seu banco de dados LessPass não está rodando",
"Email": "Email",
"EmailAlreadyExist": "Este email já foi registrado. Gostaria de entrar ou recuperar sua senha?",
"EmailInvalid": "Por favor entre um email válido",
"EmailRequiredError": "Nós precisamos de um email para encontrar a sua conta.",
"Encrypt my master password": "Criptografar minha senha mestre",
"ForgotPassword": "Esqueceu sua senha?",
"Generate": "Gerar",
"Length": "Comprimento",
"LengthDeprecationWarning": "O comprimento máximo de uma senha é de 35 caracteres.",
"LessPass Database Url": "URL do banco de dados LessPass",
"Login": "Entrar",
"LoginFormInvalid": "URL, email, e senha do LessPass são obrigatórios",
"LoginIncorrectError": "O email e senha que você digitou não estão de acordo com os nossos registros. Por favor verifique seus dados e tente novamente.",
"Master Password": "Senha mestre",
"Next": "Próximo",
"NoMatchFor": "Opa! Não há resultados para",
"NoPassword": "Você não tem nenhum perfil de senha salvo no seu banco de dados.",
"PasswordProfileCopied": "Seu perfil de senha foi copiado",
"PasswordResetRequired": "Uma senha é necessária",
"PasswordResetSuccessful": "Sua senha foi resetada com sucesso.",
"Previous": "Anterior",
"Register": "Registrar",
"Reset my password": "Resetar minha senha",
"ResetLinkExpired": "Esse link para resetar a senha já expirou.",
"Sign In": "Se autenticar",
"Site": "Site",
"SiteLoginMasterPasswordMandatory": "Campos de site e credenciais de autenticação são obrigatórios.",
"SorryCopy": "Infelizmente a cópia somente funciona em navegadores modernos",
"UpdateYourSearch": "Por favor tente ampliar sua busca.",
"WelcomeRegister": "Bem vindo {email}, obrigado por se registrar.",
"resetPasswordSuccess": "Se o seu endereço de email {email} estiver associado com uma conta LessPass, você receberá logo um email do LessPass com instruções de como resetar a sua senha."
}

+ 39
- 0
web-extension/extension/dist/i18n/zh-CN.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "高级选项",
"Copied": "已复制",
"Counter": "计数器",
"CounterFieldHelp": "增加这个值就可以在不改变主密码的前提下生成全新的密码。",
"CreatePassword": "您要生成一个密码吗?",
"DBNotRunning": "您的 LessPass 数据库没有运行",
"Email": "邮件地址",
"EmailAlreadyExist": "这个邮件地址已被注册。登录或找回您的密码?",
"EmailInvalid": "请输入一个有效的电子邮件地址",
"EmailRequiredError": "我们需要一个电子邮件地址来找到您的账户。",
"Encrypt my master password": "加密我的主密码",
"ForgotPassword": "忘记了您的密码?",
"Generate": "生成",
"Length": "长度",
"LengthDeprecationWarning": "密码的最大长度是35个字符。",
"LessPass Database Url": "LessPass 数据库网址",
"Login": "登录名",
"LoginFormInvalid": "LessPass 网址、电子邮件地址以及密码均为必填信息。",
"LoginIncorrectError": "我们没找到符合您输入的电子邮件地址及密码的记录。请核验后再试。",
"Master Password": "主密码",
"Next": "下一步",
"NoMatchFor": "没有找到符合下列条件的内容:",
"NoPassword": "您的数据库里没有保存任何密码配置。",
"PasswordProfileCopied": "已复制您的密码配置。",
"PasswordResetRequired": "请输入登录密码",
"PasswordResetSuccessful": "已成功重置您的登录密码。",
"Previous": "上一步",
"Register": "注册",
"Reset my password": "重置我的登录密码",
"ResetLinkExpired": "此登录密码重置链接已过期。",
"Sign In": "登录",
"Site": "网站名",
"SiteLoginMasterPasswordMandatory": "网站名、登录名以及主密码均为必填信息。",
"SorryCopy": "很抱歉,但复制功能仅适用于现代浏览器",
"UpdateYourSearch": "请尝试放宽您的搜索条件。",
"WelcomeRegister": "你好 {email},欢迎您的注册。",
"resetPasswordSuccess": "如果电子邮件地址 {email} 与一个 LessPass 账户相关联,您将很快收到 LessPass 的电子邮件,里面提供有重置密码的操作说明。"
}

+ 39
- 0
web-extension/extension/dist/i18n/zh.json View File

@@ -0,0 +1,39 @@
{
"Advanced options": "進階選項",
"Copied": "已複製",
"Counter": "計數器",
"CounterFieldHelp": "改變這個值,就可以在不改變主密碼的狀況下,產生新的密碼。",
"CreatePassword": "您要產生一組密碼嗎?",
"DBNotRunning": "您的 LessPass 資料庫並未執行",
"Email": "郵件位址",
"EmailAlreadyExist": "這個郵件位址已被註冊。想要登入或取回您的密碼嗎?",
"EmailInvalid": "請輸入一個有效的郵件位址",
"EmailRequiredError": "我們需要郵件位址來找到您的帳號。",
"Encrypt my master password": "加密我的主密码",
"ForgotPassword": "忘記您的登入密碼了嗎?",
"Generate": "產生",
"Length": "長度",
"LengthDeprecationWarning": "密碼的最大長度是35個字符。",
"LessPass Database Url": "LessPass數據庫URL",
"Login": "登入帳號",
"LoginFormInvalid": "LessPass URL、郵件位址、登入密碼皆為必填欄位。",
"LoginIncorrectError": "我們查不到您輸入的郵件位址及登入密碼。請確認後再試一次。",
"Master Password": "主密碼",
"Next": "然後",
"NoMatchFor": "喔不!沒有找到跟下列條件相似的結果:",
"NoPassword": "您的資料庫內沒有儲存任何密碼。",
"PasswordProfileCopied": "您的密码配置文件已被复制。",
"PasswordResetRequired": "請輸入登入密碼",
"PasswordResetSuccessful": "已成功重置您的登入密碼。",
"Previous": "以前",
"Register": "註冊",
"Reset my password": "重置我的登入密碼",
"ResetLinkExpired": "此登入密碼重設連結已過期。",
"Sign In": "登入",
"Site": "網站位址",
"SiteLoginMasterPasswordMandatory": "網站位址、登入帳號、主密碼皆為必填欄位。",
"SorryCopy": "我們很抱歉,該副本僅適用於現代瀏覽器",
"UpdateYourSearch": "請試著放寬您的搜尋條件。",
"WelcomeRegister": "歡迎 {email},謝謝您的註冊。",
"resetPasswordSuccess": "如果电子邮件地址 {email} 与LessPass帐户相关联,您将很快收到LessPass的电子邮件,并提供如何重置密码的说明。"
}

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


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


+ 7
- 0
web-extension/extension/dist/popup.js View File

@@ -0,0 +1,7 @@
document.addEventListener("DOMContentLoaded", function() {
let head = document.getElementsByTagName('head')[0];
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'dist/lesspass.min.js';
head.appendChild(script);
});

BIN
web-extension/extension/icons/icon-128x128.png View File

Before After
Width: 128  |  Height: 128  |  Size: 4.7 KiB

+ 45
- 0
web-extension/extension/icons/loading.svg View File

@@ -0,0 +1,45 @@
<svg width="57" height="57" viewBox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#0275d8">
<g fill="none" fill-rule="evenodd">
<g transform="translate(1 1)" stroke-width="2">
<circle cx="5" cy="50" r="5">
<animate attributeName="cy"
begin="0s" dur="2.2s"
values="50;5;50;50"
calcMode="linear"
repeatCount="indefinite"/>
<animate attributeName="cx"
begin="0s" dur="2.2s"
values="5;27;49;5"
calcMode="linear"
repeatCount="indefinite"/>
</circle>
<circle cx="27" cy="5" r="5">
<animate attributeName="cy"
begin="0s" dur="2.2s"
from="5" to="5"
values="5;50;50;5"
calcMode="linear"
repeatCount="indefinite"/>
<animate attributeName="cx"
begin="0s" dur="2.2s"
from="27" to="27"
values="27;49;5;27"
calcMode="linear"
repeatCount="indefinite"/>
</circle>
<circle cx="49" cy="50" r="5">
<animate attributeName="cy"
begin="0s" dur="2.2s"
values="50;50;5;50"
calcMode="linear"
repeatCount="indefinite"/>
<animate attributeName="cx"
from="49" to="49"
begin="0s" dur="2.2s"
values="49;5;27;49"
calcMode="linear"
repeatCount="indefinite"/>
</circle>
</g>
</g>
</svg>

BIN
web-extension/extension/icons/logo-32.png View File

Before After
Width: 32  |  Height: 32  |  Size: 1.1 KiB

BIN
web-extension/extension/icons/logo-64.png View File

Before After
Width: 64  |  Height: 64  |  Size: 2.4 KiB

BIN
web-extension/extension/icons/logo.png View File

Before After
Width: 356  |  Height: 80  |  Size: 9.1 KiB

+ 36
- 0
web-extension/extension/manifest.json View File

@@ -0,0 +1,36 @@
{
"description": "chrome and firefox web extension for lesspass password manager",
"manifest_version": 2,
"name": "LessPass",
"version": "3.1.3",
"homepage_url": "https://github.com/lesspass/webextension",
"icons": {
"64": "icons/logo-64.png"
},
"commands": {
"_execute_browser_action": {
"suggested_key": {
"default": "Ctrl+Shift+L",
"mac": "Command+Shift+L"
}
}
},
"permissions": [
"activeTab"
],
"web_accessible_resources": [
"dist/i18n/*.json"
],
"browser_action": {
"browser_style": false,
"default_icon": "icons/logo-32.png",
"default_title": "LessPass (Ctrl+Shift+L)",
"default_popup": "popup.html"
},
"applications": {
"gecko": {
"id": "contact@lesspass.com",
"strict_min_version": "48.0"
}
}
}

+ 34
- 0
web-extension/extension/popup.html View File

@@ -0,0 +1,34 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>LessPass</title>
<meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="dist/lesspass.min.css">
<style>
body {
width: 420px;
height: 460px;
}

.loading {
width: 64px;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
</style>
</head>
<body>
<div class="lesspass--unbordered lesspass--full-width">
<div id="lesspass">
<img src="icons/loading.svg" alt="loading" class="loading">
</div>
</div>
<script src="dist/popup.js"></script>
</body>
</html>

+ 7
- 0
web-extension/extension/popup.js View File

@@ -0,0 +1,7 @@
document.addEventListener("DOMContentLoaded", function() {
let head = document.getElementsByTagName('head')[0];
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'dist/lesspass.min.js';
head.appendChild(script);
});

+ 11
- 0
web-extension/gulpfile.js View File

@@ -0,0 +1,11 @@
const { src, dest, parallel } = require("gulp");

function js() {
return src([
"node_modules/lesspass-pure/dist/**/*",
"extension/popup.js"
]).pipe(dest("extension/dist/"));
}

exports.js = js;
exports.default = parallel(js);

+ 30
- 0
web-extension/package.json View File

@@ -0,0 +1,30 @@
{
"name": "lesspass-webextension",
"description": "LessPass web extension",
"version": "3.1.3",
"license": "GPL-3.0",
"private": true,
"author": "Guillaume Vincent <guillaume@oslab.fr>",
"scripts": {
"clean": "rm -rf extension/dist/ && mkdir extension/dist/ && rm -rf build && mkdir build",
"version": "dot-json extension/manifest.json version $npm_package_version",
"zip:firefox": "cp build/lesspass.zip build/lesspass.firefox-v$npm_package_version.xpi",
"zip:chrome": "cp build/lesspass.zip build/lesspass.chrome-v$npm_package_version.zip",
"zip": "cd extension && git archive -o ../build/lesspass.zip HEAD && cd .. && npm run zip:firefox && npm run zip:chrome && rm build/lesspass.zip",
"build": "npm run clean && gulp",
"release": "npm run zip && npm run build && npm run release-cws && npm run release-amo",
"release-amo": "cd extension && webext submit",
"release-cws": "webstore upload --source build/lesspass.chrome-v$npm_package_version.zip --auto-publish",
"dev": "cd extension && web-ext run",
"test": "echo 'no test'"
},
"dependencies": {
"lesspass-pure": "5.1.4"
},
"devDependencies": {
"chrome-webstore-upload-cli": "^1.2.0",
"dot-json": "^1.1.0",
"gulp": "^4.0.0",
"webext": "1.9.1-with-submit.1"
}
}

Loading…
Cancel
Save