@@ -78,7 +78,7 @@ jobs:
|
||||
strategy:
|
||||
max-parallel: 4
|
||||
matrix:
|
||||
variant: ['full', 'lite', 'mac']
|
||||
variant: ['full', 'lite', 'mac', 'beta', 'beta-firefox']
|
||||
|
||||
steps:
|
||||
- name: Build info
|
||||
@@ -128,7 +128,31 @@ jobs:
|
||||
npm run build:lite
|
||||
SUFFIX=lite npm run build-zip
|
||||
|
||||
- name: Build full version
|
||||
- name: Build beta version for Chromium
|
||||
if: matrix.variant == 'beta'
|
||||
shell: bash
|
||||
run: |
|
||||
npm install
|
||||
cross-env NODE_ENV=production BETA=1 webpack
|
||||
SUFFIX=beta npm run build-zip
|
||||
|
||||
- name: Build beta version for Firefox
|
||||
if: matrix.variant == 'beta-firefox'
|
||||
shell: bash
|
||||
run: |
|
||||
npm install
|
||||
cross-env NODE_ENV=production BETA=1 FIREFOX=1 webpack
|
||||
SUFFIX=beta-firefox npm run build-zip
|
||||
|
||||
- name: Build production version for Firefox
|
||||
if: matrix.variant == 'beta-firefox'
|
||||
shell: bash
|
||||
run: |
|
||||
npm install
|
||||
cross-env NODE_ENV=production FIREFOX=1 webpack
|
||||
SUFFIX=firefox npm run build-zip
|
||||
|
||||
- name: Build production version for Chromium
|
||||
if: matrix.variant == 'full'
|
||||
shell: bash
|
||||
run: |
|
||||
|
||||
@@ -39,10 +39,12 @@ All work on SimpleLogin Chrome/Firefox extension happens directly on GitHub.
|
||||
|
||||
This project has been tested with Node v20.2.0 and NPM 9.6.6
|
||||
|
||||
To run the extension locally, please follow these steps:
|
||||
|
||||
- install all dependencies with `npm install`.
|
||||
- run `npm start` to generate the `/dist` folder that can be installed into Chrome.
|
||||
To run the extension locally, please first install all dependencies with `npm install`.
|
||||
|
||||
## Chrome
|
||||
|
||||
Run `npm start` to generate the `/dist` folder that can be installed into Chrome.
|
||||
|
||||
In case of `Error: error:0308010C:digital envelope routines::unsupported` error, the workaround is to accept OPEN SSL by running this command before running `npm start`
|
||||
|
||||
@@ -50,11 +52,11 @@ In case of `Error: error:0308010C:digital envelope routines::unsupported` error,
|
||||
export NODE_OPTIONS=--openssl-legacy-provider
|
||||
````
|
||||
|
||||
On Firefox, it can be done via `web-ext` tool from within the `/dist` folder:
|
||||
## Firefox
|
||||
|
||||
```bash
|
||||
( cd dist/ ; web-ext run )
|
||||
```
|
||||
Run `npm run start:firefox` to generate the `/dist` folder which can then be installed on Firefox, more info on https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension#installing
|
||||
|
||||
## Code formatting
|
||||
|
||||
The code is formatted using `prettier`, make sure to run it before creating the commit, otherwise the GitHub lint workflow will mark the check as not passing:
|
||||
|
||||
|
||||
Generated
+3
-435
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "simplelogin-extension",
|
||||
"version": "2.10.0",
|
||||
"version": "2.11.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "simplelogin-extension",
|
||||
"version": "2.10.0",
|
||||
"version": "2.11.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
||||
@@ -14,7 +14,6 @@
|
||||
"@fortawesome/vue-fontawesome": "^0.1.10",
|
||||
"@sentry/browser": "^5.25.0",
|
||||
"@sentry/integrations": "^5.30.0",
|
||||
"axios": "^0.27.2",
|
||||
"bootstrap": "^4.6.1",
|
||||
"bootstrap-vue": "^2.21.2",
|
||||
"tippy.js": "^6.3.7",
|
||||
@@ -48,8 +47,7 @@
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"web-ext-types": "^2.1.0",
|
||||
"webpack": "^4.46.0",
|
||||
"webpack-cli": "^4.9.2",
|
||||
"webpack-extension-reloader": "^1.1.4"
|
||||
"webpack-cli": "^4.9.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
@@ -2012,58 +2010,6 @@
|
||||
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "17.0.35",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz",
|
||||
"integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/source-list-map": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
|
||||
"integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/tapable": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz",
|
||||
"integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/uglify-js": {
|
||||
"version": "3.13.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.2.tgz",
|
||||
"integrity": "sha512-/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/webpack": {
|
||||
"version": "4.41.32",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz",
|
||||
"integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/tapable": "^1",
|
||||
"@types/uglify-js": "*",
|
||||
"@types/webpack-sources": "*",
|
||||
"anymatch": "^3.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/webpack-sources": {
|
||||
"version": "0.1.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz",
|
||||
"integrity": "sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/source-list-map": "*",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/component-compiler-utils": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz",
|
||||
@@ -2588,11 +2534,6 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"node_modules/atob": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
|
||||
@@ -2605,15 +2546,6 @@
|
||||
"node": ">= 4.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "0.27.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.14.9",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-loader": {
|
||||
"version": "8.2.5",
|
||||
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
|
||||
@@ -3281,26 +3213,6 @@
|
||||
"integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/colors": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
|
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.1.90"
|
||||
}
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dependencies": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "2.20.3",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
@@ -3857,14 +3769,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/des.js": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
|
||||
@@ -4570,25 +4474,6 @@
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
|
||||
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
||||
}
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"debug": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/for-in": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
||||
@@ -4598,19 +4483,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/fragment-cache": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
||||
@@ -5814,25 +5686,6 @@
|
||||
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
@@ -6452,15 +6305,6 @@
|
||||
"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/p-limit": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||
@@ -8251,18 +8095,6 @@
|
||||
"@popperjs/core": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"os-tmpdir": "~1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/to-arraybuffer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
|
||||
@@ -8600,32 +8432,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/useragent": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
|
||||
"integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "4.1.x",
|
||||
"tmp": "0.0.x"
|
||||
}
|
||||
},
|
||||
"node_modules/useragent/node_modules/lru-cache": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
|
||||
"integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"pseudomap": "^1.0.2",
|
||||
"yallist": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/useragent/node_modules/yallist": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
|
||||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/util": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
|
||||
@@ -9284,35 +9090,6 @@
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/webpack-extension-reloader": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/webpack-extension-reloader/-/webpack-extension-reloader-1.1.4.tgz",
|
||||
"integrity": "sha512-PyssJvAiKhztc//QmhpU8yfg7LBR7Bn/cjSM7jadfQJPIDNN1Djxc+SJQRk8uHQ3GQbyWhsWu2DLCMBRcWHIPA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/webpack": "^4.39.8",
|
||||
"@types/webpack-sources": "^0.1.5",
|
||||
"colors": "^1.4.0",
|
||||
"lodash": "^4.17.15",
|
||||
"minimist": "^1.2.0",
|
||||
"useragent": "^2.3.0",
|
||||
"webextension-polyfill": "^0.5.0",
|
||||
"webpack-sources": "^1.4.3",
|
||||
"ws": "^7.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"webpack-extension-reloader": "dist/webpack-extension-reloader-cli.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"webpack": "^4"
|
||||
}
|
||||
},
|
||||
"node_modules/webpack-extension-reloader/node_modules/webextension-polyfill": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.5.0.tgz",
|
||||
"integrity": "sha512-aFrl38x43t1bTboX/paCT8I97+idzX/TY0+fuM52hrIkCpYfROEF9kSn0BXuEIi3J9LTYt2ZZKkhx9NB1qF3nA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/webpack-merge": {
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz",
|
||||
@@ -9603,27 +9380,6 @@
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "7.5.8",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz",
|
||||
"integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8.3.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bufferutil": "^4.0.1",
|
||||
"utf-8-validate": "^5.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bufferutil": {
|
||||
"optional": true
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
@@ -11054,58 +10810,6 @@
|
||||
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "17.0.35",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz",
|
||||
"integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/source-list-map": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
|
||||
"integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/tapable": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz",
|
||||
"integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/uglify-js": {
|
||||
"version": "3.13.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.2.tgz",
|
||||
"integrity": "sha512-/xFrPIo+4zOeNGtVMbf9rUm0N+i4pDf1ynExomqtokIJmVzR3962lJ1UE+MmexMkA0cmN9oTzg5Xcbwge0Ij2Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"@types/webpack": {
|
||||
"version": "4.41.32",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz",
|
||||
"integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/tapable": "^1",
|
||||
"@types/uglify-js": "*",
|
||||
"@types/webpack-sources": "*",
|
||||
"anymatch": "^3.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"@types/webpack-sources": {
|
||||
"version": "0.1.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz",
|
||||
"integrity": "sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/source-list-map": "*",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"@vue/component-compiler-utils": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz",
|
||||
@@ -11576,26 +11280,12 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"atob": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
|
||||
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.27.2",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.14.9",
|
||||
"form-data": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"babel-loader": {
|
||||
"version": "8.2.5",
|
||||
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
|
||||
@@ -12104,20 +11794,6 @@
|
||||
"integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
|
||||
"dev": true
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
|
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.20.3",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
@@ -12578,11 +12254,6 @@
|
||||
"is-descriptor": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
|
||||
},
|
||||
"des.js": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
|
||||
@@ -13175,27 +12846,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.15.1",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
|
||||
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
|
||||
},
|
||||
"for-in": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
||||
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
|
||||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"fragment-cache": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
||||
@@ -14151,19 +13807,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"requires": {
|
||||
"mime-db": "1.52.0"
|
||||
}
|
||||
},
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
@@ -14669,12 +14312,6 @@
|
||||
"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
|
||||
"dev": true
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
||||
"dev": true
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||
@@ -16094,15 +15731,6 @@
|
||||
"@popperjs/core": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-tmpdir": "~1.0.2"
|
||||
}
|
||||
},
|
||||
"to-arraybuffer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
|
||||
@@ -16382,34 +16010,6 @@
|
||||
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
|
||||
"dev": true
|
||||
},
|
||||
"useragent": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
|
||||
"integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "4.1.x",
|
||||
"tmp": "0.0.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"lru-cache": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
|
||||
"integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pseudomap": "^1.0.2",
|
||||
"yallist": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
|
||||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"util": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
|
||||
@@ -17133,31 +16733,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"webpack-extension-reloader": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/webpack-extension-reloader/-/webpack-extension-reloader-1.1.4.tgz",
|
||||
"integrity": "sha512-PyssJvAiKhztc//QmhpU8yfg7LBR7Bn/cjSM7jadfQJPIDNN1Djxc+SJQRk8uHQ3GQbyWhsWu2DLCMBRcWHIPA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/webpack": "^4.39.8",
|
||||
"@types/webpack-sources": "^0.1.5",
|
||||
"colors": "^1.4.0",
|
||||
"lodash": "^4.17.15",
|
||||
"minimist": "^1.2.0",
|
||||
"useragent": "^2.3.0",
|
||||
"webextension-polyfill": "^0.5.0",
|
||||
"webpack-sources": "^1.4.3",
|
||||
"ws": "^7.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"webextension-polyfill": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.5.0.tgz",
|
||||
"integrity": "sha512-aFrl38x43t1bTboX/paCT8I97+idzX/TY0+fuM52hrIkCpYfROEF9kSn0BXuEIi3J9LTYt2ZZKkhx9NB1qF3nA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"webpack-merge": {
|
||||
"version": "5.8.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz",
|
||||
@@ -17217,13 +16792,6 @@
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
},
|
||||
"ws": {
|
||||
"version": "7.5.8",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz",
|
||||
"integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
|
||||
+4
-8
@@ -12,14 +12,12 @@
|
||||
"build": "cross-env NODE_ENV=production webpack",
|
||||
"build:lite": "cross-env NODE_ENV=production LITE=1 webpack",
|
||||
"build:beta": "cross-env NODE_ENV=production BETA=1 webpack",
|
||||
"build:dev": "cross-env NODE_ENV=development BETA=1 webpack",
|
||||
"build:mac": "cross-env NODE_ENV=production MAC=1 webpack",
|
||||
"build-zip": "node scripts/build-zip.js",
|
||||
"generate:buildconfig": "node scripts/generateBuildConfig.js",
|
||||
"watch": "npm run build -- --watch",
|
||||
"watch:dev": "cross-env HMR=true npm run build:dev -- --watch",
|
||||
"start": "cross-env HMR=true npm run build:dev -- --watch",
|
||||
"start:mac": "cross-env HMR=true MAC=1 npm run build:dev -- --watch"
|
||||
"start": "cross-env HMR=true NODE_ENV=development BETA=1 webpack -- --watch",
|
||||
"start:mac": "cross-env HMR=true NODE_ENV=development BETA=1 MAC=1 webpack -- --watch",
|
||||
"start:firefox": "cross-env HMR=true NODE_ENV=development BETA=1 FIREFOX=1 webpack -- --watch"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^1.2.36",
|
||||
@@ -27,7 +25,6 @@
|
||||
"@fortawesome/vue-fontawesome": "^0.1.10",
|
||||
"@sentry/browser": "^5.25.0",
|
||||
"@sentry/integrations": "^5.30.0",
|
||||
"axios": "^0.27.2",
|
||||
"bootstrap": "^4.6.1",
|
||||
"bootstrap-vue": "^2.21.2",
|
||||
"tippy.js": "^6.3.7",
|
||||
@@ -61,7 +58,6 @@
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
"web-ext-types": "^2.1.0",
|
||||
"webpack": "^4.46.0",
|
||||
"webpack-cli": "^4.9.2",
|
||||
"webpack-extension-reloader": "^1.1.4"
|
||||
"webpack-cli": "^4.9.2"
|
||||
}
|
||||
}
|
||||
@@ -14,14 +14,19 @@ async function setupContentScript() {
|
||||
return;
|
||||
}
|
||||
|
||||
browser.tabs.executeScript(tabId, {
|
||||
file: "content_script/input_tools.js",
|
||||
browser.scripting
|
||||
.registerContentScripts([
|
||||
{
|
||||
id: "input-tools",
|
||||
js: ["content_script/input_tools.js"],
|
||||
css: ["content_script/input_tools.css"],
|
||||
persistAcrossSessions: false,
|
||||
matches: ["*://*/*"],
|
||||
runAt: "document_idle",
|
||||
});
|
||||
|
||||
browser.tabs.insertCSS(tabId, {
|
||||
file: "content_script/input_tools.css",
|
||||
});
|
||||
},
|
||||
])
|
||||
.then(() => console.log("registration input tools complete"))
|
||||
.catch((err) => console.warn("unexpected error", err));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,40 +1,7 @@
|
||||
import { handleNewRandomAlias } from "./create-alias";
|
||||
import browser from "webextension-polyfill";
|
||||
|
||||
function generateDialogJS(message) {
|
||||
return `
|
||||
function showSLDialog() {
|
||||
let slDialog = document.createElement("div");
|
||||
slDialog.style.position = "fixed";
|
||||
slDialog.style.bottom = "0";
|
||||
slDialog.style.right = "0";
|
||||
slDialog.style.margin = "0.7em";
|
||||
slDialog.style.padding = "0.7em";
|
||||
slDialog.style.fontFamily = "Verdana, Arial, Helvetica, sans-serif";
|
||||
slDialog.style.fontSize = "1em";
|
||||
slDialog.style.pointerEvents = "none";
|
||||
slDialog.style.zIndex = "999999";
|
||||
slDialog.style.background = "white";
|
||||
slDialog.style.border = "2px solid #777";
|
||||
slDialog.style.borderRadius = "5px";
|
||||
slDialog.innerText = ${JSON.stringify(message)};
|
||||
|
||||
document.body.appendChild(slDialog);
|
||||
|
||||
setTimeout(function () {
|
||||
document.body.removeChild(slDialog);
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
showSLDialog();
|
||||
`;
|
||||
}
|
||||
|
||||
function generateAliasHandlerJS(tab, res) {
|
||||
const dialogJS = generateDialogJS(
|
||||
res.alias ? res.alias + " copied to clipboard" : "ERROR: " + res.error
|
||||
);
|
||||
const js = `
|
||||
function displayAndCopy(alias, error) {
|
||||
function copyTextToClipboard(text) {
|
||||
if (!text) return;
|
||||
var textArea = document.createElement("textarea");
|
||||
@@ -55,13 +22,41 @@ function generateAliasHandlerJS(tab, res) {
|
||||
document.body.removeChild(textArea);
|
||||
}
|
||||
|
||||
${dialogJS}
|
||||
function showSLDialog(message) {
|
||||
let slDialog = document.createElement("div");
|
||||
slDialog.style.position = "fixed";
|
||||
slDialog.style.bottom = "0";
|
||||
slDialog.style.right = "0";
|
||||
slDialog.style.margin = "0.7em";
|
||||
slDialog.style.padding = "0.7em";
|
||||
slDialog.style.fontFamily = "Verdana, Arial, Helvetica, sans-serif";
|
||||
slDialog.style.fontSize = "1em";
|
||||
slDialog.style.pointerEvents = "none";
|
||||
slDialog.style.zIndex = "999999";
|
||||
slDialog.style.background = "white";
|
||||
slDialog.style.border = "2px solid #777";
|
||||
slDialog.style.borderRadius = "5px";
|
||||
slDialog.innerText = JSON.stringify(message);
|
||||
|
||||
copyTextToClipboard(${JSON.stringify(res.alias)});
|
||||
`;
|
||||
browser.tabs.executeScript(tab.id, {
|
||||
code: js,
|
||||
});
|
||||
document.body.appendChild(slDialog);
|
||||
|
||||
setTimeout(function () {
|
||||
document.body.removeChild(slDialog);
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
showSLDialog(alias ? alias + " copied to clipboard" : "ERROR: " + error);
|
||||
copyTextToClipboard(alias);
|
||||
}
|
||||
|
||||
function generateAliasHandlerJS(tab, res) {
|
||||
chrome.scripting
|
||||
.executeScript({
|
||||
target: { tabId: tab.id },
|
||||
func: displayAndCopy,
|
||||
args: [res.alias || null, res.error || null],
|
||||
})
|
||||
.then(() => console.log("injected a function"));
|
||||
}
|
||||
|
||||
async function handleOnClickContextMenu(info, tab) {
|
||||
|
||||
+16
-10
@@ -9,11 +9,8 @@ import {
|
||||
handleOnClickContextMenu,
|
||||
generateAliasHandlerJS,
|
||||
} from "./context-menu";
|
||||
import axios from "axios";
|
||||
import Utils from "../popup/Utils";
|
||||
|
||||
global.isBackgroundJS = true;
|
||||
|
||||
/**
|
||||
* Get app settings
|
||||
*/
|
||||
@@ -30,13 +27,21 @@ async function handleGetAppSettings() {
|
||||
|
||||
async function handleExtensionSetup() {
|
||||
const apiUrl = await SLStorage.get(SLStorage.SETTINGS.API_URL);
|
||||
try {
|
||||
|
||||
const url = apiUrl + API_ROUTE.GET_API_KEY_FROM_COOKIE.path;
|
||||
const res = await axios.post(url, {
|
||||
const res = await fetch(url, {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
device: Utils.getDeviceName(),
|
||||
}),
|
||||
});
|
||||
|
||||
const apiKey = res.data.api_key;
|
||||
if (res.ok) {
|
||||
const apiRes = await res.json();
|
||||
const apiKey = apiRes.api_key;
|
||||
if (apiKey) {
|
||||
await SLStorage.set(SLStorage.SETTINGS.API_KEY, apiKey);
|
||||
|
||||
@@ -52,9 +57,8 @@ async function handleExtensionSetup() {
|
||||
} else {
|
||||
console.error("Received null API Key");
|
||||
}
|
||||
} catch (e) {
|
||||
// Probably the user is not logged in
|
||||
console.error(e);
|
||||
} else {
|
||||
console.error("api error");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,11 +131,13 @@ browser.runtime.onMessage.addListener(async function (request, sender) {
|
||||
* Register context menu
|
||||
*/
|
||||
browser.contextMenus.create({
|
||||
id: "sl-random",
|
||||
title: "Create random email alias (copied)",
|
||||
contexts: ["all"],
|
||||
onclick: handleOnClickContextMenu,
|
||||
});
|
||||
|
||||
browser.contextMenus.onClicked.addListener(handleOnClickContextMenu);
|
||||
|
||||
/**
|
||||
* Shortcuts and hotkeys listener
|
||||
*/
|
||||
|
||||
+15
-8
@@ -3,7 +3,7 @@
|
||||
"short_name": "SimpleLogin",
|
||||
"description": "Easily create a different email for each website to hide your real email. Protect your inbox against spams, phishing, data breaches",
|
||||
"version": null,
|
||||
"manifest_version": 2,
|
||||
"manifest_version": 3,
|
||||
"icons": {
|
||||
"16": "icons/icon_16.png",
|
||||
"32": "icons/icon_32.png",
|
||||
@@ -15,24 +15,31 @@
|
||||
"activeTab",
|
||||
"storage",
|
||||
"contextMenus",
|
||||
"scripting",
|
||||
"tabs"
|
||||
],
|
||||
"host_permissions": [
|
||||
"https://*.simplelogin.io/*",
|
||||
"http://*/*",
|
||||
"https://*/*"
|
||||
],
|
||||
"browser_action": {
|
||||
"action": {
|
||||
"default_title": "SimpleLogin",
|
||||
"default_popup": "popup/popup.html"
|
||||
"default_popup": "popup/popup.html",
|
||||
"default_icon": {
|
||||
"16": "icons/icon_16.png",
|
||||
"32": "icons/icon_32.png",
|
||||
"48": "icons/icon_48.png",
|
||||
"96": "icons/icon_96.png",
|
||||
"128": "icons/icon_128.png"
|
||||
}
|
||||
},
|
||||
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"id": "addon@simplelogin"
|
||||
}
|
||||
},
|
||||
"background": {
|
||||
"scripts": [
|
||||
"background.js"
|
||||
]
|
||||
},
|
||||
"commands": {
|
||||
"generate-random-alias": {
|
||||
"suggested_key": {
|
||||
|
||||
+30
-17
@@ -2,7 +2,6 @@ import EventManager from "./EventManager";
|
||||
import Navigation from "./Navigation";
|
||||
import SLStorage from "./SLStorage";
|
||||
import Utils from "./Utils";
|
||||
import axios from "axios";
|
||||
|
||||
const API_ROUTE = {
|
||||
GET_USER_INFO: { method: "GET", path: "/api/user_info" },
|
||||
@@ -72,28 +71,37 @@ const callAPI = async function (
|
||||
headers["Authentication"] = SETTINGS.apiKey;
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await axios({
|
||||
method,
|
||||
url,
|
||||
headers,
|
||||
data,
|
||||
});
|
||||
|
||||
return res;
|
||||
} catch (err) {
|
||||
if (errHandlerMethod !== API_ON_ERR.IGNORE) {
|
||||
console.error(err);
|
||||
let fetchParam = {
|
||||
method: method,
|
||||
headers: headers,
|
||||
};
|
||||
if (method === "POST" || method === "PUT") {
|
||||
fetchParam.body = JSON.stringify(data);
|
||||
headers["Content-Type"] = "application/json";
|
||||
}
|
||||
|
||||
if (err.response.status === 401 && !global.isBackgroundJS) {
|
||||
let res = await fetch(url, fetchParam);
|
||||
if (res.ok) {
|
||||
const apiRes = await res.json();
|
||||
// wrap apiRes in data to look like axios which was used before
|
||||
return {
|
||||
status: res.status,
|
||||
data: apiRes,
|
||||
};
|
||||
} else {
|
||||
if (errHandlerMethod !== API_ON_ERR.IGNORE) {
|
||||
console.error(res);
|
||||
}
|
||||
|
||||
if (res.status === 401) {
|
||||
await handle401Error();
|
||||
return null;
|
||||
}
|
||||
|
||||
if (errHandlerMethod === API_ON_ERR.TOAST) {
|
||||
if (err.response.data && err.response.data.error) {
|
||||
Utils.showError(err.response.data.error);
|
||||
let apiRes = await res.json();
|
||||
if (apiRes.error) {
|
||||
Utils.showError(apiRes.error);
|
||||
} else {
|
||||
Utils.showError("Unknown error");
|
||||
}
|
||||
@@ -101,7 +109,12 @@ const callAPI = async function (
|
||||
}
|
||||
|
||||
if (errHandlerMethod === API_ON_ERR.THROW) {
|
||||
throw err;
|
||||
throw {
|
||||
response: {
|
||||
status: res.status,
|
||||
data: await res.json(),
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import SLStorage from "../SLStorage";
|
||||
import EventManager from "../EventManager";
|
||||
import Navigation from "../Navigation";
|
||||
@@ -64,21 +63,20 @@ export default {
|
||||
}
|
||||
|
||||
// check api key
|
||||
axios
|
||||
.get(this.apiUrl + API_ROUTE.GET_USER_INFO.path, {
|
||||
const res = await fetch(this.apiUrl + API_ROUTE.GET_USER_INFO.path, {
|
||||
headers: { Authentication: this.apiKey },
|
||||
})
|
||||
.then(async (res) => {
|
||||
const userName = res.data.name || res.data.email;
|
||||
});
|
||||
if (res.ok) {
|
||||
const apiRes = await res.json();
|
||||
const userName = apiRes.name || apiRes.email;
|
||||
await SLStorage.set(SLStorage.SETTINGS.API_KEY, this.apiKey);
|
||||
EventManager.broadcast(EventManager.EVENT.SETTINGS_CHANGED);
|
||||
|
||||
Utils.showSuccess(`Hi ${userName}!`);
|
||||
Navigation.clearHistoryAndNavigateTo(Navigation.PATH.MAIN);
|
||||
})
|
||||
.catch((err) => {
|
||||
} else {
|
||||
Utils.showError("Incorrect API Key.");
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {},
|
||||
|
||||
@@ -14,7 +14,6 @@ import SLStorage from "../SLStorage";
|
||||
import EventManager from "../EventManager";
|
||||
import Navigation from "../Navigation";
|
||||
import Utils from "../Utils";
|
||||
import axios from "axios";
|
||||
import { API_ROUTE } from "../APIService";
|
||||
|
||||
export default {
|
||||
@@ -38,12 +37,17 @@ export default {
|
||||
} else {
|
||||
// try to get api key when user is already logged in
|
||||
const apiUrl = await SLStorage.get(SLStorage.SETTINGS.API_URL);
|
||||
axios
|
||||
.post(apiUrl + API_ROUTE.GET_API_KEY_FROM_COOKIE.path, {
|
||||
|
||||
const res = await fetch(apiUrl + API_ROUTE.GET_API_KEY_FROM_COOKIE.path, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
device: Utils.getDeviceName(),
|
||||
})
|
||||
.then(async (res) => {
|
||||
this.apiKey = res.data.api_key || "";
|
||||
}),
|
||||
});
|
||||
|
||||
if (res.ok) {
|
||||
let apiRes = await res.json();
|
||||
this.apiKey = apiRes.api_key || "";
|
||||
if (this.apiKey) {
|
||||
await SLStorage.set(SLStorage.SETTINGS.API_KEY, this.apiKey);
|
||||
EventManager.broadcast(EventManager.EVENT.SETTINGS_CHANGED);
|
||||
@@ -52,11 +56,10 @@ export default {
|
||||
} else {
|
||||
Navigation.navigateTo(Navigation.PATH.LOGIN, true);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
} else {
|
||||
// user is probably not logged in
|
||||
Navigation.navigateTo(Navigation.PATH.LOGIN, true);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
|
||||
+17
-11
@@ -2,7 +2,6 @@ const webpack = require('webpack');
|
||||
const ejs = require('ejs');
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||
const ExtensionReloader = require('webpack-extension-reloader');
|
||||
const { VueLoaderPlugin } = require('vue-loader');
|
||||
const { version, betaRev } = require('./package.json');
|
||||
const fs = require('fs');
|
||||
@@ -103,7 +102,6 @@ const config = {
|
||||
jsonContent.version = version;
|
||||
|
||||
if (config.mode === 'development') {
|
||||
jsonContent.content_security_policy = "script-src 'self' 'unsafe-eval'; object-src 'self'";
|
||||
jsonContent.permissions = jsonContent.permissions.concat(devConfig.permissions);
|
||||
}
|
||||
|
||||
@@ -118,6 +116,17 @@ const config = {
|
||||
jsonContent.browser_specific_settings.gecko.id = geckoId.replace('@', '-beta@');
|
||||
}
|
||||
|
||||
if (process.env.FIREFOX) {
|
||||
jsonContent.background = {
|
||||
"scripts": ["background.js"]
|
||||
}
|
||||
} else { // CHROME
|
||||
jsonContent.background = {
|
||||
"service_worker": "background.js",
|
||||
"type": "module"
|
||||
}
|
||||
}
|
||||
|
||||
if (process.env.LITE) {
|
||||
// Remove "All sites" permissions
|
||||
const PERMISSIONS_TO_REMOVE = [
|
||||
@@ -179,15 +188,6 @@ if (config.mode === 'production') {
|
||||
]);
|
||||
}
|
||||
|
||||
if (process.env.HMR === 'true') {
|
||||
config.plugins = (config.plugins || []).concat([
|
||||
new ExtensionReloader({
|
||||
manifest: __dirname + '/src/manifest.json',
|
||||
port: 19090
|
||||
}),
|
||||
]);
|
||||
}
|
||||
|
||||
function transformHtml(content) {
|
||||
return ejs.render(content.toString(), {
|
||||
...process.env,
|
||||
@@ -195,4 +195,10 @@ function transformHtml(content) {
|
||||
});
|
||||
}
|
||||
|
||||
if (config.mode === 'production') {
|
||||
config.devtool="source-map";
|
||||
} else {
|
||||
config.devtool="cheap-source-map";
|
||||
}
|
||||
|
||||
module.exports = config;
|
||||
Reference in New Issue
Block a user