Merge pull request #51 from wanhose/v6.0.0

6.0.0
This commit is contained in:
wanhose 2022-08-04 17:00:10 +02:00 committed by GitHub
commit 3c97f8ee84
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 247 additions and 221 deletions

View File

@ -9,9 +9,9 @@
}, },
"dependencies": { "dependencies": {
"@fastify/cors": "^8.0.0", "@fastify/cors": "^8.0.0",
"@fastify/rate-limit": "^7.1.0", "@fastify/rate-limit": "^7.3.0",
"dotenv": "^16.0.1", "dotenv": "^16.0.1",
"fastify": "^4.2.1", "fastify": "^4.3.0",
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7",
"nodemailer": "^6.7.7" "nodemailer": "^6.7.7"
}, },
@ -20,9 +20,9 @@
"@types/node": "^16.11.33", "@types/node": "^16.11.33",
"@types/node-fetch": "^2.6.2", "@types/node-fetch": "^2.6.2",
"@types/nodemailer": "^6.4.4", "@types/nodemailer": "^6.4.4",
"@typescript-eslint/eslint-plugin": "^5.30.6", "@typescript-eslint/eslint-plugin": "^5.32.0",
"@typescript-eslint/parser": "^5.30.6", "@typescript-eslint/parser": "^5.32.0",
"eslint": "^8.19.0", "eslint": "^8.21.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"nodemon": "^2.0.19", "nodemon": "^2.0.19",

View File

@ -8,34 +8,21 @@
## Compatibility ## Compatibility
- Google Chrome 51+. - All browsers based on Chromium 88+ (Blisk, Brave, Colibri, Epic Browser, Iron Browser, Vivaldi and many more)
- Microsoft Edge 15+. - Google Chrome 88+
- Mozilla Firefox 54+. - Microsoft Edge 88+
- Opera 38+. - ~~Mozilla Firefox 54+~~ (development stalled until further notice, you can still download and use this extension in its **5.5.5** version)
## Installation (on Google Chrome) ## Installation (only for developers)
1. Clone this repository. 1. Clone this repository and then run `yarn install`
2. Go to [chrome://extensions](chrome://extensions). 2. Build this repository running the command `yarn workspace browser-extension run build`
3. Enable **Developer mode** by clicking the toggle switch next to **Developer Mode**. 3. Go to [yourbrowser://extensions](yourbrowser://extensions) (different URL based on your browser)
4. Then, click the **LOAD UNPACKED** button and select the cloned folder. 4. Enable **Developer mode**
5. That's all, you have a development build of this extension. 5. Then, click the **Load unpacked** button and select the generated `build` folder
6. That's all, you have a development build of this extension
## Installation (on Mozilla Firefox) Please note, each time you want to see changes made in the code you will need to rebuild and refresh the extension
1. Clone this repository.
2. Go to [about:debugging](about:debugging).
3. Enter **This Firefox** section.
4. Then, click the **LOAD TEMPORARY ADD-ON** button and select any file inside the cloned folder.
5. That's all, you have a development build of this extension.
## Installation (on Microsoft Edge)
1. Clone this repository.
2. Go to [edge://extensions](edge://extensions).
3. Enable **Developer mode** by clicking the toggle switch next to **Developer Mode**.
4. Then, click the **LOAD UNPACKED** button and select the cloned folder.
5. That's all, you have a development build of this extension.
## Contributing ## Contributing

View File

@ -7,7 +7,7 @@
}, },
"devDependencies": { "devDependencies": {
"@types/chrome": "^0.0.193", "@types/chrome": "^0.0.193",
"eslint": "^8.19.0", "eslint": "^8.21.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"minify": "^9.1.0", "minify": "^9.1.0",

View File

@ -1,7 +1,7 @@
{ {
"manifest_version": 2, "manifest_version": 3,
"name": "Cookie Dialog Monster", "name": "Cookie Dialog Monster",
"version": "5.5.7", "version": "6.0.0",
"default_locale": "en", "default_locale": "en",
"description": "__MSG_appDesc__", "description": "__MSG_appDesc__",
"icons": { "icons": {
@ -9,13 +9,13 @@
"48": "assets/icons/48.png", "48": "assets/icons/48.png",
"128": "assets/icons/128.png" "128": "assets/icons/128.png"
}, },
"browser_action": { "action": {
"default_icon": "assets/icons/disabled.png", "default_icon": "assets/icons/disabled.png",
"default_title": "Cookie Dialog Monster" "default_title": "Cookie Dialog Monster"
}, },
"author": "wanhose", "author": "wanhose",
"background": { "background": {
"scripts": ["scripts/background.js"] "service_worker": "scripts/background.js"
}, },
"content_scripts": [ "content_scripts": [
{ {
@ -32,6 +32,6 @@
"run_at": "document_start" "run_at": "document_start"
} }
], ],
"permissions": ["contextMenus", "http://*/*", "https://*/*", "storage", "tabs"], "host_permissions": ["http://*/*", "https://*/*"],
"web_accessible_resources": ["assets/fonts/*", "scripts/popup.js", "styles/*"] "permissions": ["contextMenus", "storage", "tabs"]
} }

View File

@ -10,25 +10,6 @@
<body> <body>
<header> <header>
<h1 class="header-title">Cookie Dialog Monster</h1> <h1 class="header-title">Cookie Dialog Monster</h1>
<div class="header-actions">
<button aria-label="Reload page" id="reload">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="23 4 23 10 17 10"></polyline>
<polyline points="1 20 1 14 7 14"></polyline>
<path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path>
</svg>
</button>
</div>
</header> </header>
<main> <main>
<label class="switch-label"> <label class="switch-label">

View File

@ -50,7 +50,7 @@ const report = async (tab) => {
}; };
/** /**
* @description Listens to context menus * @description Listens to context menus clicked
*/ */
chrome.contextMenus.onClicked.addListener((info, tab) => { chrome.contextMenus.onClicked.addListener((info, tab) => {
@ -63,25 +63,6 @@ chrome.contextMenus.onClicked.addListener((info, tab) => {
} }
}); });
/**
* @description Creates the context menu
*/
chrome.contextMenus.create({
contexts: ['all'],
documentUrlPatterns: chrome.runtime.getManifest().content_scripts[0].matches,
id: reportMenuItemId,
title: chrome.i18n.getMessage('contextMenuText'),
});
/**
* @description Listens to first start
*/
chrome.runtime.onStartup.addListener(() => {
refreshData();
});
/** /**
* @description Listens to messages * @description Listens to messages
*/ */
@ -92,13 +73,13 @@ chrome.runtime.onMessage.addListener((message, sender, callback) => {
switch (message.type) { switch (message.type) {
case 'DISABLE_ICON': case 'DISABLE_ICON':
if (tabId) chrome.browserAction.setIcon({ path: 'assets/icons/disabled.png', tabId }); if (tabId) chrome.action.setIcon({ path: '/assets/icons/disabled.png', tabId });
break; break;
case 'ENABLE_ICON': case 'ENABLE_ICON':
if (tabId) chrome.browserAction.setIcon({ path: 'assets/icons/enabled.png', tabId }); if (tabId) chrome.action.setIcon({ path: '/assets/icons/enabled.png', tabId });
break; break;
case 'ENABLE_POPUP': case 'ENABLE_POPUP':
if (tabId) chrome.browserAction.setPopup({ popup: 'popup.html', tabId }); if (tabId) chrome.action.setPopup({ popup: '/popup.html', tabId });
break; break;
case 'GET_DATA': case 'GET_DATA':
chrome.storage.local.get('data', ({ data }) => { chrome.storage.local.get('data', ({ data }) => {
@ -122,3 +103,24 @@ chrome.runtime.onMessage.addListener((message, sender, callback) => {
return true; return true;
}); });
/**
* @description Listens to extension installed
*/
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
contexts: ['all'],
documentUrlPatterns: chrome.runtime.getManifest().content_scripts[0].matches,
id: reportMenuItemId,
title: chrome.i18n.getMessage('contextMenuText'),
});
});
/**
* @description Listens to first start
*/
chrome.runtime.onStartup.addListener(() => {
refreshData();
});

View File

@ -43,15 +43,25 @@ const preview = hostname.startsWith('consent.') || hostname.startsWith('myprivac
* @returns {boolean} * @returns {boolean}
*/ */
const match = (node) => const match = (node) => {
node instanceof HTMLElement && if (!(node instanceof HTMLElement)) return false;
node.parentElement &&
!forbiddenTags.includes(node.tagName?.toUpperCase?.()) && const rect = node.getBoundingClientRect();
node.matches(data?.elements ?? []); const isFullscreen = rect.bottom + rect.top > 0 && rect.bottom - rect.top === 0;
const isVisible = rect.top <= (window.innerHeight || document.documentElement.clientHeight);
return (
!forbiddenTags.includes(node.tagName?.toUpperCase?.()) &&
(isFullscreen || isVisible) &&
(node.offsetParent || window.getComputedStyle(node).position === 'fixed') &&
node.parentElement &&
node.matches(data?.elements ?? [])
);
};
/** /**
* @description Cleans DOM * @description Cleans DOM
* @param {HTMLElement[]} nodes * @param {Element[]} nodes
* @param {boolean?} skipMatch * @param {boolean?} skipMatch
* @returns {void} * @returns {void}
*/ */
@ -119,33 +129,36 @@ const observer = new MutationObserver((mutations) => {
}); });
/** /**
* @async
* @description Fixes bfcache issues * @description Fixes bfcache issues
* @listens window#pageshow * @listens window#pageshow
*/ */
window.addEventListener('pageshow', (event) => { window.addEventListener('pageshow', async (event) => {
if (event.persisted) { if (event.persisted) {
dispatch({ hostname, type: 'GET_STATE' }, null, (state) => { const state = await dispatch({ hostname, type: 'GET_STATE' });
if (data?.elements.length && state?.enabled && !preview) {
fix(); if (data?.elements?.length && state?.enabled && !preview) {
clean(Array.from(document.querySelectorAll(data.elements)), true); const nodes = [...document.querySelectorAll(data.elements)];
}
}); fix();
if (nodes.length) clean(nodes, true);
}
} }
}); });
/** /**
* @async
* @description Sets up everything * @description Sets up everything
*/ */
dispatch({ hostname, type: 'GET_STATE' }, null, (state) => { (async () => {
const state = await dispatch({ hostname, type: 'GET_STATE' });
dispatch({ type: 'ENABLE_POPUP' }); dispatch({ type: 'ENABLE_POPUP' });
if (state?.enabled) { if (state?.enabled) {
dispatch({ hostname, type: 'GET_DATA' }, null, (result) => { data = await dispatch({ hostname, type: 'GET_DATA' });
data = result; observer.observe(document.body ?? document.documentElement, options);
observer.observe(document.body ?? document.documentElement, options); dispatch({ type: 'ENABLE_ICON' });
dispatch({ type: 'ENABLE_ICON' });
});
} }
}); })();

View File

@ -59,10 +59,10 @@ const isFirefox = navigator.userAgent.indexOf('Firefox') !== -1;
*/ */
const handlePowerChange = async () => { const handlePowerChange = async () => {
dispatch({ hostname, type: 'GET_STATE' }, null, (state) => { const state = await dispatch({ hostname, type: 'GET_STATE' });
dispatch({ hostname, state: { enabled: !state?.enabled }, type: 'UPDATE_STATE' });
chrome.tabs.reload({ bypassCache: true }); dispatch({ hostname, state: { enabled: !state?.enabled }, type: 'UPDATE_STATE' });
}); chrome.tabs.reload({ bypassCache: true });
}; };
/** /**
@ -89,37 +89,35 @@ const handleRate = (event) => {
}; };
/** /**
* @async
* @description Setup stars handlers and result message links * @description Setup stars handlers and result message links
*/ */
const handleContentLoaded = () => { const handleContentLoaded = async () => {
dispatch({ type: 'GET_TAB' }, null, (tab) => { const state = await dispatch({ hostname, type: 'GET_STATE' });
hostname = tab?.url const tab = await dispatch({ type: 'GET_TAB' });
? new URL(tab.url).hostname.split('.').slice(-3).join('.').replace('www.', '')
: undefined;
dispatch({ hostname, type: 'GET_STATE' }, null, (state) => { hostname = tab?.url
translate(); ? new URL(tab.url).hostname.split('.').slice(-3).join('.').replace('www.', '')
: undefined;
const host = document.getElementById('host'); translate();
const like = document.getElementById('like');
const power = document.getElementById('power');
const reload = document.getElementById('reload');
const store = document.getElementById('store');
const unlike = document.getElementById('unlike');
like.addEventListener('click', handleRate); const host = document.getElementById('host');
power.addEventListener('change', handlePowerChange); const like = document.getElementById('like');
reload.addEventListener('click', () => chrome.tabs.reload({ bypassCache: true })); const power = document.getElementById('power');
unlike.addEventListener('click', handleRate); const store = document.getElementById('store');
const unlike = document.getElementById('unlike');
host.innerText = hostname ?? 'unknown'; like.addEventListener('click', handleRate);
if (isEdge) store?.setAttribute('href', edgeUrl); power.addEventListener('change', handlePowerChange);
else if (isChromium) store?.setAttribute('href', chromeUrl); unlike.addEventListener('click', handleRate);
else if (isFirefox) store?.setAttribute('href', firefoxUrl);
if (!state.enabled) power.removeAttribute('checked'); host.innerText = hostname ?? 'unknown';
}); if (isEdge) store?.setAttribute('href', edgeUrl);
}); else if (isChromium) store?.setAttribute('href', chromeUrl);
else if (isFirefox) store?.setAttribute('href', firefoxUrl);
if (!state.enabled) power.removeAttribute('checked');
}; };
/** /**

View File

@ -1,39 +1,39 @@
#report-confirmation { #report-confirmation {
bottom: 30px; bottom: 30px !important;
font-family: 'Lato', Arial, Helvetica, sans-serif !important; font-family: 'Lato', Arial, Helvetica, sans-serif !important;
min-width: 250px; min-width: 250px !important;
position: fixed; position: fixed;
right: 10px; right: 10px !important;
text-align: left; text-align: left !important;
visibility: hidden; visibility: hidden !important;
z-index: 99999; z-index: 99999 !important;
} }
#report-confirmation:not([hidden]) { #report-confirmation:not([hidden]) {
animation: fadeIn 0.5s, fadeOut 0.5s 3.5s; animation: fadeIn 0.5s, fadeOut 0.5s 3.5s !important;
visibility: visible !important; visibility: visible !important;
} }
#report-confirmation:not([hidden]) #report-confirmation-bar { #report-confirmation:not([hidden]) #report-confirmation-bar {
animation: roundTime 3.5s linear forwards; animation: roundTime 3.5s linear forwards !important;
} }
#report-confirmation-content { #report-confirmation-content {
align-items: center; align-items: center !important;
background-color: #34495e !important; background-color: #34495e !important;
border-radius: 2px; border-radius: 2px !important;
color: #fff !important; color: #fff !important;
display: flex; display: flex !important;
font-size: 14px !important; font-size: 14px !important;
gap: 16px; gap: 16px !important;
overflow: hidden; overflow: hidden !important;
padding: 16px; padding: 16px !important;
} }
#report-confirmation-bar { #report-confirmation-bar {
background-color: #3dd9eb !important; background-color: #3dd9eb !important;
height: 4px; height: 4px !important;
transform-origin: left center; transform-origin: left center !important;
} }
@keyframes fadeIn { @keyframes fadeIn {

View File

@ -9,7 +9,7 @@
"minify": "^9.1.0", "minify": "^9.1.0",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"serve": "^14.0.1", "serve": "^14.0.1",
"tailwindcss": "^3.1.6" "tailwindcss": "^3.1.7"
}, },
"engines": { "engines": {
"node": "16.x" "node": "16.x"

199
yarn.lock
View File

@ -284,14 +284,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@fastify/rate-limit@npm:^7.1.0": "@fastify/rate-limit@npm:^7.3.0":
version: 7.1.0 version: 7.3.0
resolution: "@fastify/rate-limit@npm:7.1.0" resolution: "@fastify/rate-limit@npm:7.3.0"
dependencies: dependencies:
fastify-plugin: ^4.0.0 fastify-plugin: ^4.0.0
ms: ^2.1.3 ms: ^2.1.3
tiny-lru: ^8.0.1 tiny-lru: ^8.0.1
checksum: c754cefa0e4bdbc45cb833c25d306223ddebe881d0f4c7f16fe544173669d95ab46c36b48c687c15392aa56182941513e25594b63805c1c99a1d52cf803ddd85 checksum: 7b32d90f5436d917561b72861d8cb63093a048c7201dcd3b85ccedef0e3f270822c9b31411253a99ee9ea1287b62f23bcdce42b0676a57f10a91045033c64114
languageName: node languageName: node
linkType: hard linkType: hard
@ -302,14 +302,21 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@humanwhocodes/config-array@npm:^0.9.2": "@humanwhocodes/config-array@npm:^0.10.4":
version: 0.9.5 version: 0.10.4
resolution: "@humanwhocodes/config-array@npm:0.9.5" resolution: "@humanwhocodes/config-array@npm:0.10.4"
dependencies: dependencies:
"@humanwhocodes/object-schema": ^1.2.1 "@humanwhocodes/object-schema": ^1.2.1
debug: ^4.1.1 debug: ^4.1.1
minimatch: ^3.0.4 minimatch: ^3.0.4
checksum: 8ba6281bc0590f6c6eadeefc14244b5a3e3f5903445aadd1a32099ed80e753037674026ce1b3c945ab93561bea5eb29e3c5bff67060e230c295595ba517a3492 checksum: d480e5d57e6d787565b6cff78e27c3d1b380692d4ffb0ada7d7f5957a56c9032f034da05a3e443065dbd0671ebf4d859036ced34e96b325bbc1badbae3c05300
languageName: node
linkType: hard
"@humanwhocodes/gitignore-to-minimatch@npm:^1.0.2":
version: 1.0.2
resolution: "@humanwhocodes/gitignore-to-minimatch@npm:1.0.2"
checksum: aba5c40c9e3770ed73a558b0bfb53323842abfc2ce58c91d7e8b1073995598e6374456d38767be24ab6176915f0a8d8b23eaae5c85e2b488c0dccca6d795e2ad
languageName: node languageName: node
linkType: hard linkType: hard
@ -527,13 +534,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/eslint-plugin@npm:^5.30.6": "@typescript-eslint/eslint-plugin@npm:^5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/eslint-plugin@npm:5.30.6" resolution: "@typescript-eslint/eslint-plugin@npm:5.32.0"
dependencies: dependencies:
"@typescript-eslint/scope-manager": 5.30.6 "@typescript-eslint/scope-manager": 5.32.0
"@typescript-eslint/type-utils": 5.30.6 "@typescript-eslint/type-utils": 5.32.0
"@typescript-eslint/utils": 5.30.6 "@typescript-eslint/utils": 5.32.0
debug: ^4.3.4 debug: ^4.3.4
functional-red-black-tree: ^1.0.1 functional-red-black-tree: ^1.0.1
ignore: ^5.2.0 ignore: ^5.2.0
@ -546,42 +553,42 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: ee020a171c057a99061ca70583473df1beb0df3229b4c9404b85d4a6ce96b03708935e2aa4418d74a877337d407ca30cdf53c9cf2f7b9eec0d79288d245267d1 checksum: 9785c34d9742b51130237bfe244924ca6dfd529bdcc5932a5cf81558f0235099c963a11125df393037db51ce451f7ab9442aba3c3a8bb2e0607569a0e31480c8
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/parser@npm:^5.30.6": "@typescript-eslint/parser@npm:^5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/parser@npm:5.30.6" resolution: "@typescript-eslint/parser@npm:5.32.0"
dependencies: dependencies:
"@typescript-eslint/scope-manager": 5.30.6 "@typescript-eslint/scope-manager": 5.32.0
"@typescript-eslint/types": 5.30.6 "@typescript-eslint/types": 5.32.0
"@typescript-eslint/typescript-estree": 5.30.6 "@typescript-eslint/typescript-estree": 5.32.0
debug: ^4.3.4 debug: ^4.3.4
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 3e02bb447d21af65adefbaddb46380ced3fb88045ef2e122d6522cc354d414898cd2222b4ce05fa0ee1fbc8c01e9a7833fe57e52b844e3fba30c89d20e006b56 checksum: 3fcfa183cad125c3198fd63701c6e13dad1cc984d309e8cd40ec9a2eb857902abfd7e9ee3f030b18eb1c18c795a61ea289ef147a7f9dfac38df905e7514316af
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/scope-manager@npm:5.30.6": "@typescript-eslint/scope-manager@npm:5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/scope-manager@npm:5.30.6" resolution: "@typescript-eslint/scope-manager@npm:5.32.0"
dependencies: dependencies:
"@typescript-eslint/types": 5.30.6 "@typescript-eslint/types": 5.32.0
"@typescript-eslint/visitor-keys": 5.30.6 "@typescript-eslint/visitor-keys": 5.32.0
checksum: 454c32339869694a400c6e3e4e44729da3c02359cb086c1e9315e2aeb93af3a6e1c87d274f9eb0066a081f99e4ffda3a036565d17c78dd8649d19f18199419c6 checksum: 69bdeb029f39d1112299dc0cb0ddef30e51bdb782fdb79cc4e72fa448e00d71e39938d3bff3fa4ee43b3416c2e3b4564de2c37252914772b07eeedafb14412d6
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/type-utils@npm:5.30.6": "@typescript-eslint/type-utils@npm:5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/type-utils@npm:5.30.6" resolution: "@typescript-eslint/type-utils@npm:5.32.0"
dependencies: dependencies:
"@typescript-eslint/utils": 5.30.6 "@typescript-eslint/utils": 5.32.0
debug: ^4.3.4 debug: ^4.3.4
tsutils: ^3.21.0 tsutils: ^3.21.0
peerDependencies: peerDependencies:
@ -589,23 +596,23 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 19b9479961c07e66230d73f9a396e5352bcdf6fa3f5fc175fad86ac617783fa61a5db53c872025974c196a44452b3b10afb0dd10b661dce37d04b2b86ee25ba2 checksum: 4063808ca054789bebc6adb376d15c13e38f8ea14fa2842c38ae616d77fb77681b67a04b77887cf9ceb6f801ab3fc5eddfb6325779ab821404c62f36c56310bb
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/types@npm:5.30.6": "@typescript-eslint/types@npm:5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/types@npm:5.30.6" resolution: "@typescript-eslint/types@npm:5.32.0"
checksum: 47c621dae5929d5b39b2b27c6f2ecb8daab1da22566867443873c0681322019f99e205629910bfe04e64077349aec05c84e0d4571f189619b609f4173a9d0f36 checksum: 6758f54d8d7763893cd7c1753f525ef1777eee8b558bf3d54fd2a2ce691ca0cf813c68a26e4db83a1deae4e4a62b247f1195e15a1f3577f1293849f9e55a232c
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/typescript-estree@npm:5.30.6": "@typescript-eslint/typescript-estree@npm:5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/typescript-estree@npm:5.30.6" resolution: "@typescript-eslint/typescript-estree@npm:5.32.0"
dependencies: dependencies:
"@typescript-eslint/types": 5.30.6 "@typescript-eslint/types": 5.32.0
"@typescript-eslint/visitor-keys": 5.30.6 "@typescript-eslint/visitor-keys": 5.32.0
debug: ^4.3.4 debug: ^4.3.4
globby: ^11.1.0 globby: ^11.1.0
is-glob: ^4.0.3 is-glob: ^4.0.3
@ -614,33 +621,33 @@ __metadata:
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
checksum: 5621c03f1a6ca8866d91014cd30b53a37f9c4d664eb97bc2740294bcbf7efc0178e8699def752b86c97472e7b1b0cd9b6c0d9aa07a04decfe78bd16c21f93c4b checksum: 6aee08be5d36603d038fb8340f324f5cb38519150c9b37c012f0c1ff2a4d8cf22fbc6835de31d069949c2b3d8ed3e729076a724ef29db4289d9fe73b97c9d310
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/utils@npm:5.30.6": "@typescript-eslint/utils@npm:5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/utils@npm:5.30.6" resolution: "@typescript-eslint/utils@npm:5.32.0"
dependencies: dependencies:
"@types/json-schema": ^7.0.9 "@types/json-schema": ^7.0.9
"@typescript-eslint/scope-manager": 5.30.6 "@typescript-eslint/scope-manager": 5.32.0
"@typescript-eslint/types": 5.30.6 "@typescript-eslint/types": 5.32.0
"@typescript-eslint/typescript-estree": 5.30.6 "@typescript-eslint/typescript-estree": 5.32.0
eslint-scope: ^5.1.1 eslint-scope: ^5.1.1
eslint-utils: ^3.0.0 eslint-utils: ^3.0.0
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: fc6f9ccf558d658cbeaa85c63bc1853385630c9522c8ae42524b652a6b3c69689fba67a49d79ce1fae2b4ec9c45e5aa9b791ac027d205edef27984d088ed1c3a checksum: cfd88d93508c8fb0db17d2726691e1383db390357fa0637bd8111558fbe72da5130d995294001d71b1d929d620fbce3f20a70b277a77ca21a4241b3b470dc758
languageName: node languageName: node
linkType: hard linkType: hard
"@typescript-eslint/visitor-keys@npm:5.30.6": "@typescript-eslint/visitor-keys@npm:5.32.0":
version: 5.30.6 version: 5.32.0
resolution: "@typescript-eslint/visitor-keys@npm:5.30.6" resolution: "@typescript-eslint/visitor-keys@npm:5.32.0"
dependencies: dependencies:
"@typescript-eslint/types": 5.30.6 "@typescript-eslint/types": 5.32.0
eslint-visitor-keys: ^3.3.0 eslint-visitor-keys: ^3.3.0
checksum: e4ec0541d685d211274724c9f1887b6cdd03c7fc4fbdd1ea74c18311c3a5a9a2d4c676448ea714687ca13cc881ec5c73605de75fbf38f302ba8ea86d2b77897f checksum: 1f9b756d648c2346a6e8538ffde729d3d9ce6621fded3d9f15c96aa0ebf8f511daf8232470423fb36359c2113538a4daaf3336181be78a0cfbfd297af91ce9ba
languageName: node languageName: node
linkType: hard linkType: hard
@ -739,6 +746,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"acorn@npm:^8.8.0":
version: 8.8.0
resolution: "acorn@npm:8.8.0"
bin:
acorn: bin/acorn
checksum: 7270ca82b242eafe5687a11fea6e088c960af712683756abf0791b68855ea9cace3057bd5e998ffcef50c944810c1e0ca1da526d02b32110e13c722aa959afdc
languageName: node
linkType: hard
"agent-base@npm:6, agent-base@npm:^6.0.2": "agent-base@npm:6, agent-base@npm:^6.0.2":
version: 6.0.2 version: 6.0.2
resolution: "agent-base@npm:6.0.2" resolution: "agent-base@npm:6.0.2"
@ -879,18 +895,18 @@ __metadata:
resolution: "api@workspace:packages/api" resolution: "api@workspace:packages/api"
dependencies: dependencies:
"@fastify/cors": ^8.0.0 "@fastify/cors": ^8.0.0
"@fastify/rate-limit": ^7.1.0 "@fastify/rate-limit": ^7.3.0
"@tsconfig/node16": ^1.0.3 "@tsconfig/node16": ^1.0.3
"@types/node": ^16.11.33 "@types/node": ^16.11.33
"@types/node-fetch": ^2.6.2 "@types/node-fetch": ^2.6.2
"@types/nodemailer": ^6.4.4 "@types/nodemailer": ^6.4.4
"@typescript-eslint/eslint-plugin": ^5.30.6 "@typescript-eslint/eslint-plugin": ^5.32.0
"@typescript-eslint/parser": ^5.30.6 "@typescript-eslint/parser": ^5.32.0
dotenv: ^16.0.1 dotenv: ^16.0.1
eslint: ^8.19.0 eslint: ^8.21.0
eslint-config-prettier: ^8.5.0 eslint-config-prettier: ^8.5.0
eslint-plugin-prettier: ^4.2.1 eslint-plugin-prettier: ^4.2.1
fastify: ^4.2.1 fastify: ^4.3.0
node-fetch: ^2.6.7 node-fetch: ^2.6.7
nodemailer: ^6.7.7 nodemailer: ^6.7.7
nodemon: ^2.0.19 nodemon: ^2.0.19
@ -1070,7 +1086,7 @@ __metadata:
resolution: "browser-extension@workspace:packages/browser-extension" resolution: "browser-extension@workspace:packages/browser-extension"
dependencies: dependencies:
"@types/chrome": ^0.0.193 "@types/chrome": ^0.0.193
eslint: ^8.19.0 eslint: ^8.21.0
eslint-config-prettier: ^8.3.0 eslint-config-prettier: ^8.3.0
eslint-plugin-prettier: ^4.2.1 eslint-plugin-prettier: ^4.2.1
minify: ^9.1.0 minify: ^9.1.0
@ -1917,12 +1933,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"eslint@npm:^8.19.0": "eslint@npm:^8.21.0":
version: 8.19.0 version: 8.21.0
resolution: "eslint@npm:8.19.0" resolution: "eslint@npm:8.21.0"
dependencies: dependencies:
"@eslint/eslintrc": ^1.3.0 "@eslint/eslintrc": ^1.3.0
"@humanwhocodes/config-array": ^0.9.2 "@humanwhocodes/config-array": ^0.10.4
"@humanwhocodes/gitignore-to-minimatch": ^1.0.2
ajv: ^6.10.0 ajv: ^6.10.0
chalk: ^4.0.0 chalk: ^4.0.0
cross-spawn: ^7.0.2 cross-spawn: ^7.0.2
@ -1932,14 +1949,17 @@ __metadata:
eslint-scope: ^7.1.1 eslint-scope: ^7.1.1
eslint-utils: ^3.0.0 eslint-utils: ^3.0.0
eslint-visitor-keys: ^3.3.0 eslint-visitor-keys: ^3.3.0
espree: ^9.3.2 espree: ^9.3.3
esquery: ^1.4.0 esquery: ^1.4.0
esutils: ^2.0.2 esutils: ^2.0.2
fast-deep-equal: ^3.1.3 fast-deep-equal: ^3.1.3
file-entry-cache: ^6.0.1 file-entry-cache: ^6.0.1
find-up: ^5.0.0
functional-red-black-tree: ^1.0.1 functional-red-black-tree: ^1.0.1
glob-parent: ^6.0.1 glob-parent: ^6.0.1
globals: ^13.15.0 globals: ^13.15.0
globby: ^11.1.0
grapheme-splitter: ^1.0.4
ignore: ^5.2.0 ignore: ^5.2.0
import-fresh: ^3.0.0 import-fresh: ^3.0.0
imurmurhash: ^0.1.4 imurmurhash: ^0.1.4
@ -1958,7 +1978,7 @@ __metadata:
v8-compile-cache: ^2.0.3 v8-compile-cache: ^2.0.3
bin: bin:
eslint: bin/eslint.js eslint: bin/eslint.js
checksum: 0bc9df1a3a09dcd5a781ec728f280aa8af3ab19c2d1f14e2668b5ee5b8b1fb0e72dde5c3acf738e7f4281685fb24ec149b6154255470b06cf41de76350bca7a4 checksum: 1d39ddb08772ea230cb7d74f7f81f85b9d46965d3600725c7eb39a27bcdaf28cb2a780dacf6cfa1cfbf2da606b57a5e7e3ab373ab474cbcf0ba042076821f501
languageName: node languageName: node
linkType: hard linkType: hard
@ -1973,6 +1993,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"espree@npm:^9.3.3":
version: 9.3.3
resolution: "espree@npm:9.3.3"
dependencies:
acorn: ^8.8.0
acorn-jsx: ^5.3.2
eslint-visitor-keys: ^3.3.0
checksum: 33e8a36fc15d082e68672e322e22a53856b564d60aad8f291a667bfc21b2c900c42412d37dd3c7a0f18b9d0d8f8858dabe8776dbd4b4c2f72c5cf4d6afeabf65
languageName: node
linkType: hard
"esquery@npm:^1.4.0": "esquery@npm:^1.4.0":
version: 1.4.0 version: 1.4.0
resolution: "esquery@npm:1.4.0" resolution: "esquery@npm:1.4.0"
@ -2137,9 +2168,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"fastify@npm:^4.2.1": "fastify@npm:^4.3.0":
version: 4.2.1 version: 4.3.0
resolution: "fastify@npm:4.2.1" resolution: "fastify@npm:4.3.0"
dependencies: dependencies:
"@fastify/ajv-compiler": ^3.1.1 "@fastify/ajv-compiler": ^3.1.1
"@fastify/error": ^3.0.0 "@fastify/error": ^3.0.0
@ -2155,7 +2186,7 @@ __metadata:
secure-json-parse: ^2.4.0 secure-json-parse: ^2.4.0
semver: ^7.3.7 semver: ^7.3.7
tiny-lru: ^8.0.2 tiny-lru: ^8.0.2
checksum: 443c634d1a65016649f2ee782c057b8e7f02dcaab45ef5b3c1a22663a2c88ecb361f301f1cc92c3ad27c0a1c434c53d9ae051ce4474bee55abcd73ebf6c7af2d checksum: a70abb6552601aecd3315713b86a0bc790bb6d02bc000d75dc83464e20e01cdb09db7a46720072615b2c6e7796ff32f18a4777ab5b8ccb17d1dca7376df94bb4
languageName: node languageName: node
linkType: hard linkType: hard
@ -2450,6 +2481,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"grapheme-splitter@npm:^1.0.4":
version: 1.0.4
resolution: "grapheme-splitter@npm:1.0.4"
checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620
languageName: node
linkType: hard
"hard-rejection@npm:^2.1.0": "hard-rejection@npm:^2.1.0":
version: 2.1.0 version: 2.1.0
resolution: "hard-rejection@npm:2.1.0" resolution: "hard-rejection@npm:2.1.0"
@ -2928,6 +2966,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lilconfig@npm:^2.0.6":
version: 2.0.6
resolution: "lilconfig@npm:2.0.6"
checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d
languageName: node
linkType: hard
"lines-and-columns@npm:^1.1.6": "lines-and-columns@npm:^1.1.6":
version: 1.2.4 version: 1.2.4
resolution: "lines-and-columns@npm:1.2.4" resolution: "lines-and-columns@npm:1.2.4"
@ -4816,9 +4861,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tailwindcss@npm:^3.1.6": "tailwindcss@npm:^3.1.7":
version: 3.1.6 version: 3.1.7
resolution: "tailwindcss@npm:3.1.6" resolution: "tailwindcss@npm:3.1.7"
dependencies: dependencies:
arg: ^5.0.2 arg: ^5.0.2
chokidar: ^3.5.3 chokidar: ^3.5.3
@ -4829,7 +4874,7 @@ __metadata:
fast-glob: ^3.2.11 fast-glob: ^3.2.11
glob-parent: ^6.0.2 glob-parent: ^6.0.2
is-glob: ^4.0.3 is-glob: ^4.0.3
lilconfig: ^2.0.5 lilconfig: ^2.0.6
normalize-path: ^3.0.0 normalize-path: ^3.0.0
object-hash: ^3.0.0 object-hash: ^3.0.0
picocolors: ^1.0.0 picocolors: ^1.0.0
@ -4847,7 +4892,7 @@ __metadata:
bin: bin:
tailwind: lib/cli.js tailwind: lib/cli.js
tailwindcss: lib/cli.js tailwindcss: lib/cli.js
checksum: 90719c6fd0dcdda5c8e2882ad421048c9dd90890e0c118d12ff3ec31adba53eb2df8fed1ed203e728e5b32297e1cc207df463a6b196d37344a63fde9f67c52b6 checksum: adbc9869b72f741e9a0fc281b79710863617a588fd5d897316b676f789b6482c79f46f324223300ca962afbe55bed3ec16a37a6ccf4bb2c99c53cf8c5dd9700d
languageName: node languageName: node
linkType: hard linkType: hard
@ -5281,7 +5326,7 @@ __metadata:
minify: ^9.1.0 minify: ^9.1.0
rimraf: ^3.0.2 rimraf: ^3.0.2
serve: ^14.0.1 serve: ^14.0.1
tailwindcss: ^3.1.6 tailwindcss: ^3.1.7
languageName: unknown languageName: unknown
linkType: soft linkType: soft