From 0c797360ebcc5d7266e9739dbdc2485f8f417d7b Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Mon, 23 Feb 2026 23:39:33 -0800 Subject: [PATCH 01/15] Updates --- README.md | 22 +++++++++++----------- manifest-chrome.json | 2 +- src/js/export.js | 1 + 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ec8d4b1..1489a70 100644 --- a/README.md +++ b/README.md @@ -183,20 +183,20 @@ If there is enough popularity/requests for these features, there are a couple op ## Support -For help using the web extension, see: - -- Documentation: https://auto-auth.cssnr.com/docs/ -- Q&A Discussion: https://github.com/cssnr/auto-auth/discussions/categories/q-a -- Request a Feature: https://github.com/cssnr/auto-auth/discussions/categories/feature-requests +Logs can be found inspecting the page (Ctrl+Shift+I), clicking on the Console, and; +Firefox: toggling Debug logs, Chrome: toggling Verbose from levels dropdown. -If you are experiencing an issue/bug or getting unexpected results, you can: +If you run into any issues or need help getting started, please do one of the following: -- Report an Issue: https://github.com/cssnr/auto-auth/issues -- Chat with us on Discord: https://discord.gg/wXy6m2X8wY -- Provide General Feedback: https://cssnr.github.io/feedback +- Report an Issue: +- Q&A Discussion: +- Request a Feature: +- Chat with us on Discord: -Logs can be found inspecting the page (Ctrl+Shift+I), clicking on the Console, and; -Firefox: toggling Debug logs, Chrome: toggling Verbose from levels dropdown. +[![Features](https://img.shields.io/badge/features-brightgreen?style=for-the-badge&logo=rocket&logoColor=white)](https://github.com/cssnr/auto-auth/issues/new?template=1-feature.yaml) +[![Issues](https://img.shields.io/badge/issues-red?style=for-the-badge&logo=southwestairlines&logoColor=white)](https://github.com/cssnr/auto-auth/issues) +[![Discussions](https://img.shields.io/badge/discussions-blue?style=for-the-badge&logo=livechat&logoColor=white)](https://github.com/cssnr/auto-auth/discussions) +[![Discord](https://img.shields.io/badge/discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/wXy6m2X8wY) To support this project, see the [Contributing](#Contributing) section at the bottom. diff --git a/manifest-chrome.json b/manifest-chrome.json index 946500d..7c16a6d 100644 --- a/manifest-chrome.json +++ b/manifest-chrome.json @@ -2,5 +2,5 @@ "background": { "service_worker": "js/service-worker.js" }, - "minimum_chrome_version": "120" + "minimum_chrome_version": "127" } diff --git a/src/js/export.js b/src/js/export.js index cba43dc..1125e52 100644 --- a/src/js/export.js +++ b/src/js/export.js @@ -484,6 +484,7 @@ export async function onRemoved(permissions) { /** * Open Popup Click Callback + * NOTE: Requires Chrome>=127 * @function openPopup * @param {Event} [event] */ From 45b133bd0ef4834dbac59409eb5189276a1d79f8 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Mon, 23 Feb 2026 23:58:11 -0800 Subject: [PATCH 02/15] Updates --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1489a70..d215cf9 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ # Auto Auth - -Install Release + +Auto Auth - [Install](#Install) - [Features](#Features) From ac61a395cddcc42f719ddd67b7f6c9a16bbc3b4f Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Tue, 24 Feb 2026 00:11:46 -0800 Subject: [PATCH 03/15] Updates --- src/js/export.js | 5 ++++- src/js/service-worker.js | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/js/export.js b/src/js/export.js index 1125e52..55aab74 100644 --- a/src/js/export.js +++ b/src/js/export.js @@ -342,7 +342,10 @@ export async function updateManifest() { export async function updateBrowser() { let selector = '.chrome' // noinspection JSUnresolvedReference - if (typeof browser?.runtime?.getBrowserInfo === 'function') { + if ( + typeof browser !== 'undefined' && + typeof browser?.runtime?.getBrowserInfo === 'function' + ) { selector = '.firefox' } console.debug('updateBrowser:', selector) diff --git a/src/js/service-worker.js b/src/js/service-worker.js index ccbfdac..4e86139 100644 --- a/src/js/service-worker.js +++ b/src/js/service-worker.js @@ -189,7 +189,10 @@ async function onStartup() { // console.debug('options:', options) await updateIcon(options) // noinspection JSUnresolvedReference - if (typeof browser?.runtime?.getBrowserInfo === 'function') { + if ( + typeof browser !== 'undefined' && + typeof browser?.runtime?.getBrowserInfo === 'function' + ) { console.log('Firefox CTX Menu Workaround') if (options.contextMenu) { createContextMenus() From 16b1cbac7b51796f889668d3b8262bf4892d2747 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Tue, 24 Feb 2026 11:55:13 -0800 Subject: [PATCH 04/15] Updates --- src/html/options.html | 10 +++++----- src/js/service-worker.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/html/options.html b/src/html/options.html index 21c5df0..4acdc08 100644 --- a/src/html/options.html +++ b/src/html/options.html @@ -172,15 +172,15 @@
Saved Credentials
- Export + Export - + - Import File + Import File - Import Text -
+ Import Text + diff --git a/src/js/service-worker.js b/src/js/service-worker.js index 4e86139..fe41405 100644 --- a/src/js/service-worker.js +++ b/src/js/service-worker.js @@ -390,8 +390,8 @@ function createContextMenus() { const contexts = [ // [['all'], 'showPanel', 'Open Panel'], // [['all'], 'separator'], - [['all'], 'openPopup', 'Open Popup'], - [['all'], 'openOptions', 'Auto Auth Options'], + [['all'], 'openPopup', 'Activate Popup'], + [['all'], 'openOptions', 'Open Options'], ] contexts.forEach(addContext) } From 4669489b38144a9bd364b0376e3069fee0730470 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Tue, 24 Feb 2026 12:34:29 -0800 Subject: [PATCH 05/15] Updates --- .github/ISSUE_TEMPLATE/0-bug.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/0-bug.yaml b/.github/ISSUE_TEMPLATE/0-bug.yaml index 494fe42..024c8f3 100644 --- a/.github/ISSUE_TEMPLATE/0-bug.yaml +++ b/.github/ISSUE_TEMPLATE/0-bug.yaml @@ -31,14 +31,14 @@ body: - type: textarea id: logs validations: - required: false + required: true attributes: - label: Log Output - description: Paste any relevant logs or output in this box. + label: Support Information + description: Open the extension options, scroll to the bottom, click Copy Support Information and paste below. placeholder: Output is automatically wrapped in a code block. render: shell - type: markdown attributes: value: | - Thank you for taking the time to make this report! + All issues/bugs that we can verify will be fixed. Thank you for taking the time to make this report! From 4a27a1784005bd16d9800ba14520e6f37d732921 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Tue, 24 Feb 2026 18:06:45 -0800 Subject: [PATCH 06/15] Updates --- README.md | 7 +++---- package-lock.json | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index d215cf9..8f50a10 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,7 @@ Long-term Goals for Improved Security: > [!TIP] > **Don't see your feature here?** -> Request one on -> the [Feature Request Discussion](https://github.com/cssnr/auto-auth/discussions/categories/feature-requests). +> Submit a [Feature Request](https://github.com/cssnr/auto-auth/issues/new?template=1-feature.yaml). ### Known Issues @@ -107,7 +106,7 @@ Long-term Goals for Improved Security: > [!TIP] > **Don't see your issue here?** -> Open one on the [Issues](https://github.com/cssnr/auto-auth/issues). +> Open a [New Issues](https://github.com/cssnr/auto-auth/issues). ## Configuration @@ -166,7 +165,7 @@ You can do this yourself, or get ChatGPT to convert the data for you. Convert th To import the data, visit the extension's Options Page, click `Import Text` and paste the JSON text. -You can also [request a migration](https://github.com/cssnr/auto-auth/discussions/categories/feature-requests) be added +You can also [request a migration](https://github.com/cssnr/auto-auth/issues/new?template=1-feature.yaml) be added for your extension. If it is popular enough, it might get added. ## Security diff --git a/package-lock.json b/package-lock.json index e07b136..4f8edf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -285,9 +285,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.3.tgz", - "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", + "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", "dev": true, "license": "ISC", "dependencies": { @@ -1090,9 +1090,9 @@ "license": "MIT" }, "node_modules/addons-linter/node_modules/minimatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.3.tgz", - "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", + "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", "dev": true, "license": "ISC", "dependencies": { @@ -4542,9 +4542,9 @@ } }, "node_modules/minimatch": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.2.tgz", - "integrity": "sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", + "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -4619,9 +4619,9 @@ } }, "node_modules/multimatch/node_modules/minimatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.3.tgz", - "integrity": "sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", + "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", "dev": true, "license": "ISC", "dependencies": { From 8ea0b47bd1d393777a5ac1a00d601d7bbf0191a9 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Tue, 24 Feb 2026 18:25:25 -0800 Subject: [PATCH 07/15] Updates --- .github/ISSUE_TEMPLATE/0-bug.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/0-bug.yaml b/.github/ISSUE_TEMPLATE/0-bug.yaml index 024c8f3..f175b39 100644 --- a/.github/ISSUE_TEMPLATE/0-bug.yaml +++ b/.github/ISSUE_TEMPLATE/0-bug.yaml @@ -35,7 +35,6 @@ body: attributes: label: Support Information description: Open the extension options, scroll to the bottom, click Copy Support Information and paste below. - placeholder: Output is automatically wrapped in a code block. render: shell - type: markdown From 1fa620e154f20aed94db544cdf594909bccaad9a Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Wed, 25 Feb 2026 00:25:50 -0800 Subject: [PATCH 08/15] Updates --- README.md | 28 ++++++++++++++-------------- package.json | 1 + src/js/service-worker.js | 2 +- src/js/theme.js | 1 - 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8f50a10..03f9263 100644 --- a/README.md +++ b/README.md @@ -26,20 +26,20 @@ Auto Auth -- [Install](#Install) -- [Features](#Features) - - [Upcoming Features](#Upcoming-Features) - - [Known Issues](#Known-Issues) -- [Configuration](#Configuration) -- [Migration](#Migration) - - [AutoAuth](#AutoAuth) - - [Basic Authentication](#Basic-Authentication) - - [Other or Manual](#Other-or-Manual) -- [Security](#Security) -- [Support](#Support) -- [Development](#Development) - - [Building](#Building) -- [Contributing](#Contributing) +- [Install](#install) +- [Features](#features) + - [Upcoming Features](#upcoming-features) + - [Known Issues](#known-Issues) +- [Configuration](#configuration) +- [Migration](#migration) + - [AutoAuth](#autoauth) + - [Basic Authentication](#basic-authentication) + - [Other or Manual](#other-or-manual) +- [Security](#security) +- [Support](#support) +- [Development](#development) + - [Building](#building) +- [Contributing](#contributing) Modern Chrome Web Extension and Firefox Browser Addon for Automatic Basic HTTP Authentication with many Options and Features. diff --git a/package.json b/package.json index 4cb4645..03400c5 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "auto-auth", + "private": true, "scripts": { "postinstall": "npx gulp", "lint:eslint": "npx eslint src/js tests", diff --git a/src/js/service-worker.js b/src/js/service-worker.js index fe41405..94f973e 100644 --- a/src/js/service-worker.js +++ b/src/js/service-worker.js @@ -399,7 +399,7 @@ function createContextMenus() { /** * Add Context from Array * @function addContext - * @param {[chrome.contextMenus.ContextType[],String,String,chrome.contextMenus.ContextType?]} context + * @param {[chrome.contextMenus.ContextType[],String,String?,chrome.contextMenus.ContextType?]} context */ function addContext(context) { console.debug('addContext:', context) diff --git a/src/js/theme.js b/src/js/theme.js index e59722d..b44f207 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -74,7 +74,6 @@ document.querySelectorAll('[data-bs-theme-value]').forEach((el) => { el.addEventListener('click', () => { - // const value = el.getAttribute('data-bs-theme-value') const value = el.dataset.bsThemeValue setStoredTheme(value) setTheme(value) From 897085b476b8f0edfdd144e1a532746bfffc6277 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Wed, 25 Feb 2026 00:48:14 -0800 Subject: [PATCH 09/15] Updates --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 03f9263..889e4ee 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ # Auto Auth - + Auto Auth - [Install](#install) From 37e6bba0dea96e845046124f5e96ff55c8e9b03a Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Wed, 25 Feb 2026 12:23:58 -0800 Subject: [PATCH 10/15] Updates --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 889e4ee..ca9dfe0 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ # Auto Auth -Auto Auth +Auto Auth - [Install](#install) - [Features](#features) From 810afd1924cc44232db96c5371dfacab0a75503c Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Wed, 25 Feb 2026 12:52:22 -0800 Subject: [PATCH 11/15] Updates --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ca9dfe0..218b227 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ Long-term Goals for Improved Security: - Add Optional Password Encryption Feature - Add a Sync Service for Cross-Browser Synchronization -> [!TIP] +> [!TIP] > **Don't see your feature here?** > Submit a [Feature Request](https://github.com/cssnr/auto-auth/issues/new?template=1-feature.yaml). @@ -104,7 +104,7 @@ Long-term Goals for Improved Security: - Chrome: Shows a default credentials prompt, Cancel and press `Ctrl+F5` - This behavior may continue after saving credentials. -> [!TIP] +> [!TIP] > **Don't see your issue here?** > Open a [New Issues](https://github.com/cssnr/auto-auth/issues). From 6657b3b5e2df4388e32ae601a053506da51c8295 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:44:35 -0800 Subject: [PATCH 12/15] Updates --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 218b227..88b532c 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ # Auto Auth - + Auto Auth - [Install](#install) From 0461544b9b7123c41494877687e3ee0915d234a3 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Fri, 27 Feb 2026 02:52:48 -0800 Subject: [PATCH 13/15] Updates --- manifest-firefox.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest-firefox.json b/manifest-firefox.json index 23ef5a1..6bc5dc9 100644 --- a/manifest-firefox.json +++ b/manifest-firefox.json @@ -10,7 +10,7 @@ "required": ["none"] } }, - "gecko_android ": { + "gecko_android": { "strict_min_version": "128.0" } } From 489305697bb9fb79afecc62ce88cc85df15e41e0 Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Fri, 6 Mar 2026 13:04:48 -0800 Subject: [PATCH 14/15] Username Updates --- src/js/options.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/js/options.js b/src/js/options.js index f46e2ac..ae41397 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -79,10 +79,12 @@ const bgVideoInput = document.getElementById('bgVideoInput') const editHostname = document.getElementById('hostname') const editUsername = document.getElementById('username') const editPassword = document.getElementById('password') +const usernameSwitch = document.getElementById('usernameSwitch') -document - .getElementById('usernameSwitch') - .addEventListener('change', (e) => (editUsername.required = !e.currentTarget.checked)) +usernameSwitch.addEventListener( + 'change', + (e) => (editUsername.required = !e.currentTarget.checked), +) const confirmDelete = document.getElementById('confirm-delete') const confirmDeleteHost = document.getElementById('delete-host') @@ -247,11 +249,12 @@ async function deleteHost(event) { * @param {MouseEvent} event */ async function editClick(event) { - console.debug('editClick:', event) const target = event.currentTarget + console.debug('editClick:', target) const inputs = editModalEl.querySelectorAll('input') if (target.dataset.action === 'add') { // Process Add + usernameSwitch.checked = false console.debug('%c Add Host editClick', 'color: Lime') document.getElementById('edit-modal-label').textContent = 'Add Host' editForm.dataset.action = 'add' @@ -277,6 +280,7 @@ async function editClick(event) { editPassword.value = password editPassword.dataset.original = password editPassword.type = 'password' + usernameSwitch.checked = username === '' editModal.show() } From e4a9e5a9071cadf104d3d8be14c06cf4d82bcedf Mon Sep 17 00:00:00 2001 From: Shane <6071159+smashedr@users.noreply.github.com> Date: Fri, 6 Mar 2026 13:34:34 -0800 Subject: [PATCH 15/15] Updates --- .eslintrc.json | 17 -- package-lock.json | 337 ++++++++++++++++----------------------- package.json | 4 +- src/js/export.js | 14 +- src/js/service-worker.js | 15 +- 5 files changed, 155 insertions(+), 232 deletions(-) delete mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 5337977..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "env": { - "browser": true, - "es2021": true, - "jquery": true, - "webextensions": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "rules": { - "no-undef": "off", - "no-extra-semi": "off" - } -} diff --git a/package-lock.json b/package-lock.json index 4f8edf0..d8919e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,8 +19,8 @@ "gulp": "^5.0.1", "json-merger": "^3.0.0", "prettier": "^3.8.1", - "puppeteer": "^24.37.5", - "web-ext": "^9.3.0" + "puppeteer": "^24.38.0", + "web-ext": "^9.4.0" } }, "node_modules/@babel/code-frame": { @@ -212,9 +212,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz", - "integrity": "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { @@ -225,7 +225,7 @@ "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", - "minimatch": "^3.1.3", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -285,9 +285,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", - "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -461,9 +461,9 @@ } }, "node_modules/@mdn/browser-compat-data": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-7.3.0.tgz", - "integrity": "sha512-B7X53zLkrQOVNzsWg4d+iE5vbrreOYB9H/2Ikeit9LPb3tqRNRsEAxysQduFLODBJBSgFGr2FkJLq7tMQkqLZQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-7.3.3.tgz", + "integrity": "sha512-kjpAS3PlCvm0Ab59lXsGMaF6afnUiKwyNmRFOWFh3nXXhsKnTmPPrBg3LFngIZ38GVYxSBPzPlsnz+3cW3LKkA==", "dev": true, "license": "CC0-1.0" }, @@ -685,9 +685,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", - "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "version": "25.3.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.5.tgz", + "integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==", "dev": true, "license": "MIT", "dependencies": { @@ -700,6 +700,7 @@ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "license": "MIT", + "optional": true, "dependencies": { "@types/node": "*" } @@ -728,33 +729,33 @@ } }, "node_modules/addons-linter": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-9.6.0.tgz", - "integrity": "sha512-hoZFDg/4Ial7xw2SDrnQJ6iyLtf0KdP/NRhLP1bX+SKNmFLJskDIvWOCbDAC1qUq7cNrt4yCvGlr3UO0VZaluw==", + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/addons-linter/-/addons-linter-9.9.1.tgz", + "integrity": "sha512-cgvE3s8dGAkK41LL0Ykyz91d1zHKWn2T/60V2HwyLarphKfniAMFcAqljwTqynwepSsaSOsQLEDl6+S1gn+YcA==", "dev": true, "license": "MPL-2.0", "dependencies": { "@fluent/syntax": "0.19.0", "@fregante/relaxed-json": "2.0.0", - "@mdn/browser-compat-data": "7.3.0", + "@mdn/browser-compat-data": "7.3.3", "addons-moz-compare": "1.3.0", - "addons-scanner-utils": "10.2.0", - "ajv": "8.17.1", + "addons-scanner-utils": "12.0.0", + "ajv": "8.18.0", "chalk": "4.1.2", "cheerio": "1.2.0", "columnify": "1.6.0", "common-tags": "1.8.2", "deepmerge": "4.3.1", "eslint": "9.39.2", - "eslint-plugin-no-unsanitized": "4.1.4", - "eslint-visitor-keys": "5.0.0", - "espree": "11.1.0", + "eslint-plugin-no-unsanitized": "4.1.5", + "eslint-visitor-keys": "5.0.1", + "espree": "11.1.1", "esprima": "4.0.1", "fast-json-patch": "3.1.1", "image-size": "2.0.2", "json-merge-patch": "1.0.2", - "pino": "10.3.0", - "semver": "7.7.3", + "pino": "10.3.1", + "semver": "7.7.4", "source-map-support": "0.5.21", "upath": "2.0.1", "yargs": "17.7.2", @@ -768,15 +769,15 @@ } }, "node_modules/addons-linter/node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -846,9 +847,9 @@ } }, "node_modules/addons-linter/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", "dependencies": { @@ -955,16 +956,6 @@ } } }, - "node_modules/addons-linter/node_modules/eslint-plugin-no-unsanitized": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.1.4.tgz", - "integrity": "sha512-cjAoZoq3J+5KJuycYYOWrc0/OpZ7pl2Z3ypfFq4GtaAgheg+L7YGxUo2YS3avIvo/dYU5/zR2hXu3v81M9NxhQ==", - "dev": true, - "license": "MPL-2.0", - "peerDependencies": { - "eslint": "^8 || ^9" - } - }, "node_modules/addons-linter/node_modules/eslint-scope": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", @@ -982,19 +973,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/addons-linter/node_modules/eslint-visitor-keys": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz", - "integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/addons-linter/node_modules/eslint/node_modules/ajv": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", @@ -1050,24 +1028,6 @@ "dev": true, "license": "MIT" }, - "node_modules/addons-linter/node_modules/espree": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.0.tgz", - "integrity": "sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/addons-linter/node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1090,9 +1050,9 @@ "license": "MIT" }, "node_modules/addons-linter/node_modules/minimatch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", - "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -1102,42 +1062,6 @@ "node": "*" } }, - "node_modules/addons-linter/node_modules/pino": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-10.3.0.tgz", - "integrity": "sha512-0GNPNzHXBKw6U/InGe79A3Crzyk9bcSyObF9/Gfo9DLEf5qj5RF50RSjsu0W1rZ6ZqRGdzDFCRBQvi9/rSGPtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pinojs/redact": "^0.4.0", - "atomic-sleep": "^1.0.0", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^3.0.0", - "pino-std-serializers": "^7.0.0", - "process-warning": "^5.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^4.0.1", - "thread-stream": "^4.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/addons-linter/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/addons-linter/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -1193,23 +1117,21 @@ "license": "MPL-2.0" }, "node_modules/addons-scanner-utils": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-10.2.0.tgz", - "integrity": "sha512-U6XRBTP/2EhLnTN/GHioBWvzaJAKwjVhoGjytwHdA+dIUx8n/9Hr7YTJwsBwJN5GpqV/3Ma87RQh+vEE4X4fwA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-12.0.0.tgz", + "integrity": "sha512-EPjnj+0svVq5eFYgSynRgBKTD0WiRxUpne5a2IERACc9Xs6rhLXAg13ao8yvjSRgBkC8kIiZ5MMErh34CQmCeQ==", "dev": true, "license": "MPL-2.0", "dependencies": { - "@types/yauzl": "2.10.3", "common-tags": "1.8.2", "first-chunk-stream": "3.0.0", "strip-bom-stream": "4.0.0", "upath": "2.0.1", - "yauzl": "2.10.0" + "yauzl": "3.2.0" }, "peerDependencies": { "body-parser": "2.2.2", "express": "5.2.1", - "node-fetch": "2.6.11", "safe-compare": "1.1.4" }, "peerDependenciesMeta": { @@ -1219,14 +1141,25 @@ "express": { "optional": true }, - "node-fetch": { - "optional": true - }, "safe-compare": { "optional": true } } }, + "node_modules/addons-scanner-utils/node_modules/yauzl": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/adm-zip": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", @@ -1492,12 +1425,11 @@ } }, "node_modules/bare-fs": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.4.tgz", - "integrity": "sha512-POK4oplfA7P7gqvetNmCs4CNtm9fNsx+IAh7jH7GgU0OJdge2rso0R20TNWVq6VoWcCvsTdlNDaleLHGaKx8CA==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.5.tgz", + "integrity": "sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w==", "dev": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", @@ -1518,12 +1450,11 @@ } }, "node_modules/bare-os": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", - "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.7.1.tgz", + "integrity": "sha512-ebvMaS5BgZKmJlvuWh14dg9rbUI84QeV3WlWn6Ph6lFI8jJoh7ADtVTyD2c93euwbe+zgi0DVrl4YmqXeM9aIA==", "dev": true, "license": "Apache-2.0", - "optional": true, "engines": { "bare": ">=1.14.0" } @@ -1534,7 +1465,6 @@ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "dev": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "bare-os": "^3.0.1" } @@ -1545,7 +1475,6 @@ "integrity": "sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA==", "dev": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "streamx": "^2.21.0", "teex": "^1.0.1" @@ -1569,7 +1498,6 @@ "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", "dev": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "bare-path": "^3.0.0" } @@ -1738,13 +1666,13 @@ } }, "node_modules/boxen/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -1754,9 +1682,9 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { @@ -2225,9 +2153,9 @@ "license": "MIT" }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2483,9 +2411,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1566079", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1566079.tgz", - "integrity": "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==", + "version": "0.0.1581282", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1581282.tgz", + "integrity": "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ==", "dev": true, "license": "BSD-3-Clause" }, @@ -2777,6 +2705,16 @@ } } }, + "node_modules/eslint-plugin-no-unsanitized": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.1.5.tgz", + "integrity": "sha512-MSB4hXPVFQrI8weqzs6gzl7reP2k/qSjtCoL2vUMSDejIIq9YL1ZKvq5/ORBXab/PvfBBrWO2jWviYpL+4Ghfg==", + "dev": true, + "license": "MPL-2.0", + "peerDependencies": { + "eslint": "^9 || ^10" + } + }, "node_modules/eslint-scope": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.1.tgz", @@ -3160,9 +3098,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.4.tgz", + "integrity": "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==", "dev": true, "license": "ISC" }, @@ -3190,9 +3128,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", "dev": true, "license": "MIT", "dependencies": { @@ -4286,9 +4224,9 @@ } }, "node_modules/jsonpath": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.2.1.tgz", - "integrity": "sha512-Jl6Jhk0jG+kP3yk59SSeGq7LFPR4JQz1DU0K+kXTysUhMostbhU3qh5mjTuf0PqFcXpAT7kvmMt9WxV10NyIgQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.3.0.tgz", + "integrity": "sha512-0kjkYHJBkAy50Z5QzArZ7udmvxrJzkpKYW27fiF//BrMY7TQibYLl+FYIXN2BiYmwMIVzSfD8aDRj6IzgBX2/w==", "dev": true, "license": "MIT", "dependencies": { @@ -4542,9 +4480,9 @@ } }, "node_modules/minimatch": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", - "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -4619,9 +4557,9 @@ } }, "node_modules/multimatch/node_modules/minimatch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", - "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -5256,9 +5194,9 @@ "license": "MIT" }, "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", "dev": true, "license": "MIT", "dependencies": { @@ -5293,9 +5231,9 @@ } }, "node_modules/puppeteer": { - "version": "24.37.5", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.37.5.tgz", - "integrity": "sha512-3PAOIQLceyEmn1Fi76GkGO2EVxztv5OtdlB1m8hMUZL3f8KDHnlvXbvCXv+Ls7KzF1R0KdKBqLuT/Hhrok12hQ==", + "version": "24.38.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.38.0.tgz", + "integrity": "sha512-abnJOBVoL9PQTLKSbYGm9mjNFyIPaTVj77J/6cS370dIQtcZMpx8wyZoAuBzR71Aoon6yvI71NEVFUsl3JU82g==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -5303,9 +5241,9 @@ "@puppeteer/browsers": "2.13.0", "chromium-bidi": "14.0.0", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1566079", - "puppeteer-core": "24.37.5", - "typed-query-selector": "^2.12.0" + "devtools-protocol": "0.0.1581282", + "puppeteer-core": "24.38.0", + "typed-query-selector": "^2.12.1" }, "bin": { "puppeteer": "lib/cjs/puppeteer/node/cli.js" @@ -5315,17 +5253,17 @@ } }, "node_modules/puppeteer-core": { - "version": "24.37.5", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.5.tgz", - "integrity": "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==", + "version": "24.38.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.38.0.tgz", + "integrity": "sha512-zB3S/tksIhgi2gZRndUe07AudBz5SXOB7hqG0kEa9/YXWrGwlVlYm3tZtwKgfRftBzbmLQl5iwHkQQl04n/mWw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.13.0", "chromium-bidi": "14.0.0", "debug": "^4.4.3", - "devtools-protocol": "0.0.1566079", - "typed-query-selector": "^2.12.0", + "devtools-protocol": "0.0.1581282", + "typed-query-selector": "^2.12.1", "webdriver-bidi-protocol": "0.4.1", "ws": "^8.19.0" }, @@ -5614,9 +5552,9 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", - "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", + "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -6011,9 +5949,9 @@ } }, "node_modules/tar-fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", - "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", + "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", "dev": true, "license": "MIT", "dependencies": { @@ -6026,13 +5964,14 @@ } }, "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", + "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", "dev": true, "license": "MIT", "dependencies": { "b4a": "^1.6.4", + "bare-fs": "^4.5.5", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } @@ -6153,9 +6092,9 @@ } }, "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.1.tgz", + "integrity": "sha512-uzR+FzI8qrUEIu96oaeBJmd9E7CFEiQ3goA5qCVgc4s5llSubcfGHq9yUstZx/k4s9dXHVKsE35YWoFyvEqEHA==", "dev": true, "license": "MIT" }, @@ -6441,15 +6380,15 @@ } }, "node_modules/web-ext": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-9.3.0.tgz", - "integrity": "sha512-RDAJvyIyJ/iIFssx2w7VrD7mtkc4X+8VJFPq8Ax3mL2auF4KQsV9ZQmPZOzqP9Ji0k0D6YKAzGZ1Ae67qavDVQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/web-ext/-/web-ext-9.4.0.tgz", + "integrity": "sha512-uecruQ2BVkgfArZDcVMeE4vGAmYeuN7G/4eGJkZbCAA3MyZbVXYNZZWLOi5bSfUfpgo4GTawJ4kjdAh/2HkPgw==", "dev": true, "license": "MPL-2.0", "dependencies": { "@babel/runtime": "7.28.6", "@devicefarmer/adbkit": "3.3.8", - "addons-linter": "9.6.0", + "addons-linter": "9.9.1", "camelcase": "8.0.0", "chrome-launcher": "1.2.0", "debounce": "1.2.1", @@ -6679,13 +6618,13 @@ } }, "node_modules/widest-line/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -6781,13 +6720,13 @@ } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" diff --git a/package.json b/package.json index 03400c5..2b41e2a 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "gulp": "^5.0.1", "json-merger": "^3.0.0", "prettier": "^3.8.1", - "puppeteer": "^24.37.5", - "web-ext": "^9.3.0" + "puppeteer": "^24.38.0", + "web-ext": "^9.4.0" } } diff --git a/src/js/export.js b/src/js/export.js index 55aab74..2f36314 100644 --- a/src/js/export.js +++ b/src/js/export.js @@ -2,6 +2,11 @@ export const githubURL = 'https://github.com/cssnr/auto-auth' +// noinspection JSUnresolvedReference +export const isFirefox = + typeof browser !== 'undefined' && + typeof browser?.runtime?.getBrowserInfo === 'function' + export class Hosts { /** @type {[String]} */ static keys = [...'abcdefghijklmnopqrstuvwxyz0123456789'] @@ -340,14 +345,7 @@ export async function updateManifest() { * @return {Promise} */ export async function updateBrowser() { - let selector = '.chrome' - // noinspection JSUnresolvedReference - if ( - typeof browser !== 'undefined' && - typeof browser?.runtime?.getBrowserInfo === 'function' - ) { - selector = '.firefox' - } + const selector = isFirefox ? '.firefox' : '.chrome' console.debug('updateBrowser:', selector) document.querySelectorAll(selector).forEach((el) => el.classList.remove('d-none')) } diff --git a/src/js/service-worker.js b/src/js/service-worker.js index 94f973e..39fc5fa 100644 --- a/src/js/service-worker.js +++ b/src/js/service-worker.js @@ -1,6 +1,13 @@ // JS Background Service Worker -import { Hosts, checkPerms, showPanel, githubURL, openPopup } from './export.js' +import { + Hosts, + checkPerms, + openPopup, + showPanel, + githubURL, + isFirefox, +} from './export.js' chrome.runtime.onInstalled.addListener(onInstalled) chrome.runtime.onStartup.addListener(onStartup) @@ -188,11 +195,7 @@ async function onStartup() { const { options } = await chrome.storage.sync.get(['options']) // console.debug('options:', options) await updateIcon(options) - // noinspection JSUnresolvedReference - if ( - typeof browser !== 'undefined' && - typeof browser?.runtime?.getBrowserInfo === 'function' - ) { + if (isFirefox) { console.log('Firefox CTX Menu Workaround') if (options.contextMenu) { createContextMenus()