From cfa1c345500a813bc5b3e2e250ec918f6e50aa04 Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Wed, 30 Apr 2025 16:07:50 -0400 Subject: [PATCH 1/8] Selectors were hiding search results. Commented out breaking code until I fix it. Updated "People also ask" selector so it gets hidden --- .../GoogleQuestionSuggestionRemover.user.js | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/Google/GoogleQuestionSuggestionRemover.user.js b/Google/GoogleQuestionSuggestionRemover.user.js index b8dc400..a42f649 100644 --- a/Google/GoogleQuestionSuggestionRemover.user.js +++ b/Google/GoogleQuestionSuggestionRemover.user.js @@ -8,28 +8,34 @@ // @match https://google.com/search?* // @match https://www.google.com/search?* // @icon https://www.google.com/s2/favicons?sz=64&domain=google.com -// @run-at document-end +// @run-at document-start // @grant GM_addStyle // ==/UserScript== -function hideSelector(selector) { - GM_addStyle(`${selector} { display: none !important; }`) -} -function run() { +const HEADER_SELECTOR = 'div.d0fCJc.BOZ6hd' +const QUESTION_SELECTOR = 'div[jsname="yEVEwb"]' +// Note- the parent part of the selector here is common to other sections +const PEOPLE_ALSO_ASK_SELECTOR = 'div.xfX4Ac.JI5uCe.qB9BY.yWNJXb :has(div.cUnQKe)' +//const WHAT_PEOPLE_ARE_SAYING_SELECTOR = 'div.ULSxyf' // This breaks regular search results, check if :has() is a possibile solution +const LEARN_MORE_LABEL_SELECTOR = 'div.ZKfmAf' +const LEARN_MORE_BOX_SELECTOR = 'div.kLMmLc' +const AI_OVERVIEW_IMAGE_SELECTOR = 'div.oLJ4Uc.l3foLb' +//const PEOPLE_ALSO_SEARCH_FOR_SELECTOR = 'div.ULSxyf' // This breaks regular search results (and is same as above selector) - const HEADER_SELECTOR = 'div.d0fCJc.BOZ6hd' - const QUESTION_SELECTOR = 'div[jsname="yEVEwb"]' - const PEOPLE_ALSO_ASK_SELECTOR = 'div.MjjYud div.cUnQKe' - const WHAT_PEOPLE_ARE_SAYING_SELECTOR = 'div.ULSxyf' - const ALL_SELECTORS = - [ - HEADER_SELECTOR - , QUESTION_SELECTOR - , PEOPLE_ALSO_ASK_SELECTOR - , WHAT_PEOPLE_ARE_SAYING_SELECTOR - ] +const SELECTORS_TO_HIDE = [ + HEADER_SELECTOR + , QUESTION_SELECTOR + , PEOPLE_ALSO_ASK_SELECTOR + // , WHAT_PEOPLE_ARE_SAYING_SELECTOR + , LEARN_MORE_LABEL_SELECTOR + , LEARN_MORE_BOX_SELECTOR + , AI_OVERVIEW_IMAGE_SELECTOR + // , PEOPLE_ALSO_SEARCH_FOR_SELECTOR +] +GM_addStyle(`${SELECTORS_TO_HIDE.join(', ')} { display: none !important; }`) - ALL_SELECTORS.forEach(selector => hideSelector(selector)) -} - -run() +// Allow AI Overview to take up full width now that the "Learn More" section is hidden +const AI_OVERVIEW_CONTAINER_SELECTOR = "div.UxeQfc" +const AI_OVERVIEW_SELECTOR = "div.LT6XE" +GM_addStyle(AI_OVERVIEW_CONTAINER_SELECTOR + ' { grid-template-columns: unset; }') +GM_addStyle(AI_OVERVIEW_SELECTOR + ' { max-width: unset; }') From 1253891d013c36141d1e1f538baf2b5bb9e28121 Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Sun, 1 Jun 2025 12:17:36 -0400 Subject: [PATCH 2/8] YouTubeNoComment - now hides Live Chat --- Google/YoutubeNoComment.user.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Google/YoutubeNoComment.user.js b/Google/YoutubeNoComment.user.js index a9ae1e4..ba2011c 100644 --- a/Google/YoutubeNoComment.user.js +++ b/Google/YoutubeNoComment.user.js @@ -2,7 +2,7 @@ // @name YouTube No Comment // @namespace https://github.com/mkazin/OhMonkey // @author Michael Kazin -// @version 1.0 +// @version 1.1 // @description Hides comments to help you avoid engaging // @license BSD-3-Clause // @match https://*.youtube.com/* @@ -20,10 +20,12 @@ const SELECTORS = [ "#comments #action-buttons", // Entire comments section "#comments", + // Chat for live streams + "#chat-container", // Buttons on shorts videos (youtube.com/shorts/) "div#like-button", "div#comments-button", ] -GM_addStyle(`${SELECTORS.join(",")} { display:none; }`) +GM_addStyle(`${SELECTORS.join(", ")} { display:none; }`) From 8b0c3c47e9d194e8e158751fe971debf9193f3b9 Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Tue, 12 Aug 2025 15:01:41 -0400 Subject: [PATCH 3/8] New Amazon script to de-empty extended warranty button Attempt at removing YouTube "Playables" section --- .gitignore | 2 ++ Amazon/AmazonNeutralProtectionButton.user.js | 16 ++++++++++++++++ Amazon/README.md | 9 +++++++++ .../AmazonNeutralProtectionButton-1_Before.png | Bin 0 -> 4555 bytes .../AmazonNeutralProtectionButton-2_After.png | Bin 0 -> 5681 bytes Google/GoogleQuestionSuggestionRemover.user.js | 4 ++-- Google/YoutubeHideNextVideos.user.js | 4 ++++ 7 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 Amazon/AmazonNeutralProtectionButton.user.js create mode 100644 Amazon/img/AmazonNeutralProtectionButton-1_Before.png create mode 100644 Amazon/img/AmazonNeutralProtectionButton-2_After.png diff --git a/.gitignore b/.gitignore index 0f95e2b..3e492db 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +FirewallRemover/ + # Logs logs *.log diff --git a/Amazon/AmazonNeutralProtectionButton.user.js b/Amazon/AmazonNeutralProtectionButton.user.js new file mode 100644 index 0000000..502dd8c --- /dev/null +++ b/Amazon/AmazonNeutralProtectionButton.user.js @@ -0,0 +1,16 @@ +// ==UserScript== +// @name Amazon Neutral Protection Button +// @description Remove the bright yellow background on button labeled "Add Protection" (extended warranty) +// @author https://github.com/mkazin +// @homepage https://github.com/mkazin/OhMonkey/tree/main/Amazon +// @version 0.1 +// @license BSD-3-Clause +// @namespace http://tampermonkey.net/ +// @match https://www.amazon.com/*/dp/* +// @icon https://www.google.com/s2/favicons?sz=64&domain=amazon.com +// @grant GM_addStyle +// ==/UserScript== + +const EITHER_BUTTON_SELECTOR = "div.attach-warranty-button-row span.a-button" + +GM_addStyle(`${EITHER_BUTTON_SELECTOR} { background-color: white; border-color: black; }`) diff --git a/Amazon/README.md b/Amazon/README.md index 9a5e366..abd342a 100644 --- a/Amazon/README.md +++ b/Amazon/README.md @@ -2,6 +2,15 @@ ## Amazon.com +### [Amazon Neutral Protection Button](AmazonNeutralProtectionButton.user.js) +Removes formatting highlighting the button to buy an extended warranty. + +Turns this: + +Into this: + + + ### [Amazon Variation Pricer](AmazonVariationPricer.user.js) Shows prices on every color/size option of item. diff --git a/Amazon/img/AmazonNeutralProtectionButton-1_Before.png b/Amazon/img/AmazonNeutralProtectionButton-1_Before.png new file mode 100644 index 0000000000000000000000000000000000000000..2497bd46b2e50073d04bdfc83dedd51bac8a6c56 GIT binary patch literal 4555 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 literal 0 HcmV?d00001 diff --git a/Amazon/img/AmazonNeutralProtectionButton-2_After.png b/Amazon/img/AmazonNeutralProtectionButton-2_After.png new file mode 100644 index 0000000000000000000000000000000000000000..38e8ab792ed267afdad5e712bad96f5153bdfce4 GIT binary patch literal 5681 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 a=isj26vqW%j_eEG_J+2RRxQdY=Dz^K;7Moz literal 0 HcmV?d00001 diff --git a/Google/GoogleQuestionSuggestionRemover.user.js b/Google/GoogleQuestionSuggestionRemover.user.js index a42f649..ad88691 100644 --- a/Google/GoogleQuestionSuggestionRemover.user.js +++ b/Google/GoogleQuestionSuggestionRemover.user.js @@ -5,8 +5,8 @@ // @version 1.0 // @description Removes the unhelpful sections in Google suggesting worse questions to ask // @license BSD-3-Clause -// @match https://google.com/search?* -// @match https://www.google.com/search?* +// @match https://google.com/search* +// @match https://www.google.com/search* // @icon https://www.google.com/s2/favicons?sz=64&domain=google.com // @run-at document-start // @grant GM_addStyle diff --git a/Google/YoutubeHideNextVideos.user.js b/Google/YoutubeHideNextVideos.user.js index e358e77..130de22 100644 --- a/Google/YoutubeHideNextVideos.user.js +++ b/Google/YoutubeHideNextVideos.user.js @@ -19,6 +19,10 @@ const SELECTORS_TO_HIDE = [ "div.ytp-endscreen-content", // "Related" panel "div#related", + // YouTube "Playables" + // The part preceeding ~ in this selector can also get rid of both Playables and "Shorts". + // Replace everything starting with ~ to get rid of both. + "ytd-rich-section-renderer.style-scope.ytd-rich-grid-renderer:has(h2) ~ ytd-rich-section-renderer.style-scope.ytd-rich-grid-renderer:has(h2)", ] GM_addStyle(`${SELECTORS_TO_HIDE.join(",")} { display:none; }`) From 823d614ade325c68d2338d65e75912ede61c668d Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Tue, 12 Aug 2025 15:04:53 -0400 Subject: [PATCH 4/8] Fix for observer import (#15) --- .../Remove BostonGlobe Sports.user.js | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/BostonGlobe.com/Remove BostonGlobe Sports.user.js b/BostonGlobe.com/Remove BostonGlobe Sports.user.js index a5c7612..8029de5 100644 --- a/BostonGlobe.com/Remove BostonGlobe Sports.user.js +++ b/BostonGlobe.com/Remove BostonGlobe Sports.user.js @@ -7,8 +7,11 @@ // @license BSD-3-Clause // @match http://*.bostonglobe.com/* // @match https://www.bostonglobe.com/* +// @require https://github.com/mkazin/OhMonkey/raw/refs/tags/observer-v0.0.4/_Utils/Observer.js // ==/UserScript== +import { ObserverTracker } from 'https://github.com/mkazin/OhMonkey/raw/refs/tags/observer-v0.0.4/_Utils/Observer.js'; + const SPORTS_TERMS = ['Football', 'NFL', 'Damar Hamlin', 'Basketball', 'NBA', 'Celtics', 'Baseball', 'MLB', 'Major League', 'Sox', @@ -73,19 +76,12 @@ window.cleanSportsPosts = function() { removeMatchingElementsContainingText("h2.headline span", term, grandparentNavigator) }) }; +console.log(ObserverTracker) -// Observe changes in the page and reapply. -// Taken from Navneet Khare's fantastic "Remove Sponsored Posts" TamperMonkey script at: -// https://openuserjs.org/install/finitenessofinfinity/Remove_Sponsored_Posts.user.js -var MutationObserver = window.MutationObserver || window.WebKitMutationObserver; -var target = document.getElementsByTagName("body")[0]; -var config = { attributes: true, childList: true, characterData: true }; - -var mutationObserver = new MutationObserver(function(mutations) { - cleanSportsPosts(); -}); - -mutationObserver.observe(target, config); +async function run() { + whenElementAppears("body", cleanSportsPosts); +} +run(); cleanSportsPosts(); From 62e3cb2c2d55d93fea23fd79d90feab11c3cc649 Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Tue, 2 Sep 2025 13:46:17 -0400 Subject: [PATCH 5/8] Observer- extensive changes, now v0.1.0 : * Split whenElementAppears to onceElementAppears and wheneverElementAppears * Added disconnectOnDetect option to constructor to support this * Added debugName option to constructor to help identify multiple trackers * Added static array of tracker references to avoid garbage collection * Fix: Proper export (fixes #15) * Fix: Matching element passed to handler rather than mutation element * Fix: Iterating over all mutations to search for selector match --- _Utils/Observer.js | 84 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/_Utils/Observer.js b/_Utils/Observer.js index 11ffc6d..d00a0d1 100644 --- a/_Utils/Observer.js +++ b/_Utils/Observer.js @@ -1,29 +1,38 @@ /** * ObserverTracker - A reusable, single-line MutationObserver utility class * - * Sets up a mutation observer to watch for the *first* appearance of a specified selector in the DOM. + * Sets up a mutation observer to watch for the appearance of a specified selector in the DOM. * - * When the selector is found, the provided callback function is invoked with the detected element as a parameter. + * When found, the provided callback function is invoked with the matching element as a parameter. * - * @version 0.0.3 + * @version 0.1.0 * * @param {string} selector - CSS selector to be monitored - * @param {function(Node)} fn - Callback function to invoke when the selector is observed. - * @param {Element} [observationTarget=document] - Optional node to observe for the appearance of the selector. If not provided, the entire DOM will be observed. + * @param {function(Node)} fn - Callback function to invoke when the selector is observed, takes an HTML Element. + * @param {Element} [observationTarget=document] - Optional node to observe for the appearance of the selector. If not provided, the entire document will be observed. * @param {Number} [timeout] - Optional timeout in ms to disable observer. If set to 0, mutationobserver will continue to run until the selector is seen. -*/ + * @param {Boolean} [disconnectOnDetect] - Optional flag to disable automatic disconnection of the observer after the first invocation. + * @param {string} [debugName] - Optional prefix text for debugging purposes, defaults to "ObserverTracker". + */ + class ObserverTracker { - constructor(selector, fn, observationTarget, timeout) { - this.created = new Date().getUTCMilliseconds() + // TODO: make these private- see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_elements + // To avoid garbage collection + static TRACKER_LIST = [] + + constructor(selector, fn, observationTarget, timeout = null, disconnectOnDetect = true, debugName) { this.observer = null; this.selector = selector this.fn = fn this.observationTarget = observationTarget this.timeout = timeout + this.disconnectOnDetect = disconnectOnDetect + this.debugName = `${debugName || "ObserverTracker"}:` this.disconnected = false this.shadowrootTrackers = [] + ObserverTracker.TRACKER_LIST.push(this) - // TBD: should an existing selector yield an immediate invocation and not set up an observer? + // TBD: should an existing selector yield an immediate invocation and not set up an observer if disconnectOnDetect is true? this.observer = new MutationObserver(async (mutations, mutationObserver) => { await this.handleMutations(mutations) @@ -37,7 +46,7 @@ class ObserverTracker { if (timeout) { setTimeout(() => { this.disconnect(); - console.log("Mutation Observer disconnected due to timeout"); + console.log(`${this.debugName} disconnected on timeout`); }, timeout); } @@ -47,7 +56,7 @@ class ObserverTracker { // Recursively check for shadowRoots and set up observers for them checkShadowRoots(node) { if (node.shadowRoot) { - const shadowRootTracker = whenElementAppears(this.selector, this.fn, node.shadowRoot, this.timeout); + const shadowRootTracker = new ObserverTracker(this.selector, this.fn, node.shadowRoot, this.timeout, this.disconnectOnDetect, `${this.debugName}:SR${node.shadowRoot}`); this.shadowrootTrackers.push(shadowRootTracker); } node.childNodes.forEach(child => this.checkShadowRoots(child)); @@ -59,23 +68,38 @@ class ObserverTracker { this.shadowrootTrackers = [] this.disconnected = true this.observer = null + // TBD: Is locking necessary on splice()? See https://www.npmjs.com/package/async-mutex as possible library to use. + ObserverTracker.TRACKER_LIST.splice(ObserverTracker.TRACKER_LIST.indexOf(this), 1); } async handleMutations(mutations) { // Search mutations where nodes were added for a node matching the selector + if (this.disconnected) { + console.debug(`${this.debugName} already disconnected, skipping mutation handling`); + return; + } const foundTarget = mutations.flatMap( mutation => Array.from(mutation.addedNodes)) - .find(node => node.matches(this.selector)); + .map(node => + node.matches && node.matches(this.selector) ? node : + node.querySelector && node.querySelector(this.selector))[0] || undefined + + const foundTargets = mutations.flatMap( + mutation => Array.from(mutation.addedNodes)) + .filter(node => node.matches && node.querySelector(this.selector)) + .map(node => node.matches(this.selector) ? node : node.querySelector(this.selector)); if (foundTarget) { try { - console.debug(`whenElementAppears: observer of ${this.selector} invoking callback`); + console.debug(`${this.debugName} invoking callback for ${this.selector}`); this.fn(foundTarget); - this.disconnect(); + if (this.disconnectOnDetect) { + this.disconnect(); + } return; } catch (error) { // TBD: provide users with an error callback instead? - console.error('whenElementAppears: unexpected error...', error); + console.error(`${this.debugName} unexpected error...`, error); } } else { // TBD: I think I need to add handling in case disconnectAfterDetection is false @@ -83,14 +107,14 @@ class ObserverTracker { // For any new nodes with a shadowRoot, set up a new observer targeting the shadowRoot Array.from(mutation.addedNodes).concat(Array.from(mutation.removedNodes)).forEach(node => { if (node.shadowRoot) { // check if mode is open? - const shadowrootTracker = whenElementAppears(this.selector, this.fn, node.shadowRoot, this.timeout); + const shadowrootTracker = new ObserverTracker(this.selector, this.fn, node.shadowRoot, this.timeout, this.disconnectOnDetect, this.debugName); this.shadowrootTrackers.push(shadowrootTracker); } }); // Check if the mutation target itself has a new shadow root if (mutation.target.shadowRoot && !this.shadowrootTrackers.some(tracker => tracker.observationTarget === mutation.target.shadowRoot)) { - const shadowrootTracker = whenElementAppears(this.selector, this.fn, mutation.target.shadowRoot, this.timeout); + const shadowrootTracker = new ObserverTracker(this.selector, this.fn, mutation.target.shadowRoot, this.timeout, this.disconnectOnDetect, this.debugName); this.shadowrootTrackers.push(shadowrootTracker); } @@ -101,9 +125,25 @@ class ObserverTracker { } -function whenElementAppears(selector, fn, observationTarget = document, timeout = 0) { - console.log(`whenElementAppears(${selector}, ${fn}, ${observationTarget}, ${timeout})`) - return new ObserverTracker(selector, fn, observationTarget, timeout) -}; +function onceElementAppears(selector, fn, observationTarget = document, timeout = 0) { + return new ObserverTracker(selector, fn, observationTarget, timeout, true, "onceElementAppears") +} + +function wheneverElementAppears(selector, fn, observationTarget = document, timeout = 0) { + return new ObserverTracker(selector, fn, observationTarget, timeout, false, "wheneverElementAppears") +} -module.exports = whenElementAppears; +// Expose for userscript (@require) and Node +if (typeof window !== 'undefined') { + window.ObserverTracker = ObserverTracker; + window.onceElementAppears = onceElementAppears; + window.wheneverElementAppears = wheneverElementAppears; +} else if (typeof globalThis !== 'undefined') { + globalThis.ObserverTracker = ObserverTracker; + globalThis.onceElementAppears = onceElementAppears; + globalThis.wheneverElementAppears = wheneverElementAppears; +} + +if (typeof module !== 'undefined' && module.exports) { + module.exports = { ObserverTracker, onceElementAppears, wheneverElementAppears }; +} From 8d1fcc5e72c7dd8d2eca007927413b3e5905630c Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Mon, 10 Nov 2025 12:50:19 -0500 Subject: [PATCH 6/8] Observer 0.1.0 ready for userscript testing --- .gitignore | 1 - .vscode/launch.json | 28 + .vscode/settings.json | 9 + _Utils/Observer.js | 70 +- _Utils/README.md | 30 +- __tests__/_Utils/TestObserver.js | 397 ++++++++--- __tests__/jest.setup.js | 15 + jest.config.js | 10 + package-lock.json | 1058 +++++++++--------------------- package.json | 8 +- 10 files changed, 759 insertions(+), 867 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 __tests__/jest.setup.js create mode 100644 jest.config.js diff --git a/.gitignore b/.gitignore index 3e492db..08c3e19 100644 --- a/.gitignore +++ b/.gitignore @@ -104,4 +104,3 @@ dist # TernJS port file .tern-port -.vscode/settings.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..aaeb41b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,28 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "name": "vscode-jest-tests.v2.OhMonkey", + "request": "launch", + "args": [ + "--runInBand", + "--watchAll=false", + "--testNamePattern", + "${jest.testNamePattern}", + + ], + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "disableOptimisticBPs": true, + "program": "${workspaceFolder}/node_modules/.bin/jest", + "windows": { + "program": "${workspaceFolder}/node_modules/jest/bin/jest" + } + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3e1dccb --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "jest.runMode": "on-demand", + "jest.rootPath": ".", + "testing.automaticallyOpenPeekView": "never", + "jest.jestCommandLine": "npx jest", + "editor.trimWhitespaceOnDelete": true, + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true +} \ No newline at end of file diff --git a/_Utils/Observer.js b/_Utils/Observer.js index d00a0d1..b475ae5 100644 --- a/_Utils/Observer.js +++ b/_Utils/Observer.js @@ -14,11 +14,9 @@ * @param {Boolean} [disconnectOnDetect] - Optional flag to disable automatic disconnection of the observer after the first invocation. * @param {string} [debugName] - Optional prefix text for debugging purposes, defaults to "ObserverTracker". */ - class ObserverTracker { - // TODO: make these private- see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_elements // To avoid garbage collection - static TRACKER_LIST = [] + static #TRACKER_LIST = [] constructor(selector, fn, observationTarget, timeout = null, disconnectOnDetect = true, debugName) { this.observer = null; @@ -28,9 +26,11 @@ class ObserverTracker { this.timeout = timeout this.disconnectOnDetect = disconnectOnDetect this.debugName = `${debugName || "ObserverTracker"}:` - this.disconnected = false + this.wasDisconnected = false this.shadowrootTrackers = [] - ObserverTracker.TRACKER_LIST.push(this) + ObserverTracker.#TRACKER_LIST.push(this) + + this.uid = window.crypto.randomUUID() // TBD: should an existing selector yield an immediate invocation and not set up an observer if disconnectOnDetect is true? @@ -46,7 +46,7 @@ class ObserverTracker { if (timeout) { setTimeout(() => { this.disconnect(); - console.log(`${this.debugName} disconnected on timeout`); + console.debug(`${this.debugName} disconnected on timeout`); }, timeout); } @@ -66,41 +66,35 @@ class ObserverTracker { this.observer?.disconnect() this.shadowrootTrackers.forEach(st => st.disconnect()); this.shadowrootTrackers = [] - this.disconnected = true + this.wasDisconnected = true this.observer = null - // TBD: Is locking necessary on splice()? See https://www.npmjs.com/package/async-mutex as possible library to use. - ObserverTracker.TRACKER_LIST.splice(ObserverTracker.TRACKER_LIST.indexOf(this), 1); + ObserverTracker.#TRACKER_LIST.splice(ObserverTracker.#TRACKER_LIST.indexOf(this), 1); } async handleMutations(mutations) { - // Search mutations where nodes were added for a node matching the selector - if (this.disconnected) { + if (this.wasDisconnected) { console.debug(`${this.debugName} already disconnected, skipping mutation handling`); return; } - const foundTarget = mutations.flatMap( - mutation => Array.from(mutation.addedNodes)) - .map(node => - node.matches && node.matches(this.selector) ? node : - node.querySelector && node.querySelector(this.selector))[0] || undefined - const foundTargets = mutations.flatMap( mutation => Array.from(mutation.addedNodes)) - .filter(node => node.matches && node.querySelector(this.selector)) + .filter(node => node.matches && (node.matches(this.selector) || node.querySelector(this.selector))) .map(node => node.matches(this.selector) ? node : node.querySelector(this.selector)); - if (foundTarget) { - try { - console.debug(`${this.debugName} invoking callback for ${this.selector}`); - this.fn(foundTarget); - if (this.disconnectOnDetect) { - this.disconnect(); + if (foundTargets.length > 0) { + foundTargets.forEach(foundTarget => { + try { + console.debug(`${this.debugName} invoking callback for ${this.selector}`); + this.fn(foundTarget); + if (this.disconnectOnDetect) { + this.disconnect(); + } + return; + } catch (error) { + // TBD: provide users with an error callback instead? + console.error(`${this.debugName} unexpected error...`, error); } - return; - } catch (error) { - // TBD: provide users with an error callback instead? - console.error(`${this.debugName} unexpected error...`, error); - } + }); } else { // TBD: I think I need to add handling in case disconnectAfterDetection is false mutations.forEach(mutation => { @@ -122,15 +116,25 @@ class ObserverTracker { } } + + static generateRandomUUID() { + return `observer#${ObserverTracker.#TRACKER_LIST.length}`; + } + + toString() { + return `ObserverTracker ${this.debugName}: watching for ${this.selector} on ${this.observationTarget}, wasDisconnected=${this.wasDisconnected})`; + } } -function onceElementAppears(selector, fn, observationTarget = document, timeout = 0) { - return new ObserverTracker(selector, fn, observationTarget, timeout, true, "onceElementAppears") +function onceElementAppears(selector, fn, observationTarget = document, timeout = 0, debugName = "onceElementAppears") { + console.debug(`onceElementAppears(${selector}, (fn), ${observationTarget}, ${timeout}, "${debugName}")`) + return new ObserverTracker(selector, fn, observationTarget, timeout, true, debugName) } -function wheneverElementAppears(selector, fn, observationTarget = document, timeout = 0) { - return new ObserverTracker(selector, fn, observationTarget, timeout, false, "wheneverElementAppears") +function wheneverElementAppears(selector, fn, observationTarget = document, timeout = 0, debugName = "wheneverElementAppears") { + console.debug(`wheneverElementAppears(${selector}, (fn), ${observationTarget}, ${timeout}, "${debugName}")`) + return new ObserverTracker(selector, fn, observationTarget, timeout, false, debugName) } // Expose for userscript (@require) and Node diff --git a/_Utils/README.md b/_Utils/README.md index abe8b11..ecc0c30 100644 --- a/_Utils/README.md +++ b/_Utils/README.md @@ -31,19 +31,23 @@ Version 0.0.3 introduced the ability to monitor within an existing [ShadowRoot]( * @param {Number} [timeout] - Optional timeout in ms to disable observer. If set to 0, mutationobserver will continue to run until the selector is seen. * @returns {ObserverTracker} -### Example -See my [YoutubeAutoSpeed.user.js](../Google/YoutubeAutoSpeed.user.js) userscript where this code was first developed. +### Examples -The function's original code was: +1. Waiting for a site event - a frequent use of MutationObserver is waiting until a website loads asynchronously. Sometimes setting `@run-at` to `document-idle` is sufficient and the correct way to go. Other sites may have Javascript which runs even later. - const container = document.querySelector("div#start") - const button = document.createElement("button") - button.onclick = () => { - setSpeed(1.0) - button.textContent = `Speed = 1.0x` - } - button.textContent = `Speed = ${currentSpeed}x` - container.appendChild(button) +YouTube video pages are one example where a necessary element is not available at the time the GreaseMonkey script runs. My +[YoutubeAutoSpeed.user.js](../Google/YoutubeAutoSpeed.user.js) userscript adds a button on the page to allow quickly let a user reset the playback speed to 1x- handy for when the script's code makes a false negative decision on a video where playback shouldn't be adjusted. + +To delay the execution until after the `container` element appears in the DOM, it was wrapped with the following code which passes in that element: + + onceElementAppears("div#start", (container) => { + const button = document.createElement("button") + ... + container.appendChild(button) + } + +2. Another example of pages which load over time is infinite scrolling. In this case, we want a long-running MutationObserver. For this use case we can use the `wheneverElementAppears` function, +which sets *ObserverTracker*'s `disconnectOnDetect` to `false`. To delay the execution until after the `container` element appears in the DOM, it was wrapped with the following code which passes in that element: @@ -53,6 +57,9 @@ To delay the execution until after the `container` element appears in the DOM, i container.appendChild(button) } +3. Tracking changes to an element over time- On the Boston Globe's website the page for a newspaper story displays a counter of the number of reader comments and is updated as new comments come in. This code observes the comment counter's element and console logs the element's text each time it changes. Since we want to track more than a single change, we can also use the *wheneverElementAppears* function or set disconnectOnDetect to false. +window.wheneverElementAppears("span.sharebar_comment_count", (e) => console.log(`Comment count: ${e.textContent}`)); + ### Security Warning As with any browser script, importing code brings risk. Make sure you evaluate the code first. (Please do let me know if you find security concerns I can fix) @@ -84,4 +91,3 @@ I expect code using it would also look better, especially as it's currently taki .then(desiredElement => ...) Timeouts are another possible addition to allow developers to improve user experience when the code will not execute, such as running some fallback or cleanup code. - diff --git a/__tests__/_Utils/TestObserver.js b/__tests__/_Utils/TestObserver.js index 6163c01..79dcaee 100644 --- a/__tests__/_Utils/TestObserver.js +++ b/__tests__/_Utils/TestObserver.js @@ -1,39 +1,196 @@ - -const whenElementAppears = require('../../_Utils/Observer') +let document; +const { ObserverTracker, onceElementAppears, wheneverElementAppears } = require('../../_Utils/Observer') + +/** + * Mock MutationObserver for testing ObserverTracker + * + * This mock allows you to simulate DOM mutations without relying on real DOM changes. + * It provides helper methods to simulate different types of mutations that would + * normally be detected by a real MutationObserver. + * + * Usage: + * 1. Replace global MutationObserver with this mock in beforeEach() + * 2. Create your ObserverTracker instance + * 3. Get the mock instance with MockMutationObserver.getLastInstance() + * 4. Use simulateAddedNodes(), simulateRemovedNodes(), etc. to trigger mutations + * + * Example: + * const tracker = onceElementAppears('#test', callback); + * const mockObserver = MockMutationObserver.getLastInstance(); + * document.body.appendChild(targetElement); + * mockObserver.simulateAddedNodes([targetElement]); + */ +class MockMutationObserver { + constructor(callback) { + this.callback = callback; + this.observedTargets = []; + this.isObserving = false; + MockMutationObserver.instances.push(this); + } + + observe(target, options) { + this.observedTargets.push({ target, options }); + this.isObserving = true; + } + + disconnect() { + this.isObserving = false; + this.observedTargets = []; + } + + takeRecords() { + return []; + } + + // Test helper methods + simulateAddedNodes(addedNodes, target = null) { + + if (!this.isObserving) return; + + const mutationRecord = { + type: 'childList', + target: target || this.observedTargets[0]?.target || document.body, + addedNodes: Array.isArray(addedNodes) ? addedNodes : [addedNodes], + removedNodes: [], + previousSibling: null, + nextSibling: null, + attributeName: null, + attributeNamespace: null, + oldValue: null + }; + + this.callback([mutationRecord], this); + } + + simulateRemovedNodes(removedNodes, target = null) { + if (!this.isObserving) return; + + const mutationRecord = { + type: 'childList', + target: target || this.observedTargets[0]?.target || document.body, + addedNodes: [], + removedNodes: Array.isArray(removedNodes) ? removedNodes : [removedNodes], + previousSibling: null, + nextSibling: null, + attributeName: null, + attributeNamespace: null, + oldValue: null + }; + + this.callback([mutationRecord], this); + } + + simulateAttributeChange(target, attributeName, oldValue = null) { + if (!this.isObserving) return; + + const mutationRecord = { + type: 'attributes', + target: target, + addedNodes: [], + removedNodes: [], + previousSibling: null, + nextSibling: null, + attributeName: attributeName, + attributeNamespace: null, + oldValue: oldValue + }; + + this.callback([mutationRecord], this); + } + + // Static methods for test management + static instances = []; + + static clearInstances() { + this.instances = []; + } + + static getLastInstance() { + return this.instances[this.instances.length - 1]; + } + + static getAllInstances() { + return this.instances; + } +} + +window.randomUUID = crypto.randomUUID || (() => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); +})); beforeEach(() => { // Suppress console output for function's debug messages jest.spyOn(console, 'warn').mockImplementation(() => { }); jest.spyOn(console, 'debug').mockImplementation(() => { }); - // Reset the DOM for test isolation, I'm seeing bleeding from one to another + // Use the Jest-provided global document/window so MutationObserver.observe + // receives Node instances from the same realm as the observer. + document = global.document; + + // Replace MutationObserver with our mock + global.MutationObserver = MockMutationObserver; + MockMutationObserver.clearInstances(); + + // Reset the DOM for test isolation document.body.innerHTML = ''; }); afterEach(() => { jest.restoreAllMocks(); + MockMutationObserver.clearInstances(); +}); + +describe('Exports', () => { + + test('should export onceElementAppears function', () => { + console.log(onceElementAppears); + expect(typeof onceElementAppears).toBe('function'); + }); + test('window should have onceElementAppears function', () => { + expect(typeof window.onceElementAppears).toBe('function'); + }); + test('should export wheneverElementAppears function', () => { + expect(typeof wheneverElementAppears).toBe('function'); + }); + test('window should have wheneverElementAppears function', () => { + expect(typeof window.wheneverElementAppears).toBe('function'); + }); + test('should export ObserverTracker class', () => { + expect(typeof ObserverTracker).toBe('function'); + }); }); -describe('whenElementAppears', () => { +describe('onceElementAppears', () => { test('should observe and call function when element appears', async () => { const mockFn = jest.fn(); - const element = document.createElement('div'); - element.id = 'testElement'; + const targetElement = document.createElement('div'); + targetElement.id = 'testElement'; + document.body.appendChild(targetElement); - whenElementAppears('#testElement', mockFn); + // Create the observer + const tracker = onceElementAppears('#testElement', mockFn, document); expect(mockFn).not.toHaveBeenCalled(); - document.body.appendChild(element); - await new Promise(process.nextTick); + // Get the mock MutationObserver instance + const mockObserver = MockMutationObserver.getLastInstance(); + expect(mockObserver).toBeDefined(); + expect(mockObserver.isObserving).toBe(true); + + mockObserver.simulateAddedNodes([targetElement], document.body); expect(mockFn.mock.calls).toHaveLength(1); - expect(mockFn).toHaveBeenCalledWith(element); + expect(mockFn).toHaveBeenCalledWith(targetElement); - // Further DOM changes should not trigger invocations - element.style.display = 'block'; - document.body.removeChild(element); - await new Promise(process.nextTick); + // Verify observer was disconnected after first detection (onceElementAppears behavior) + expect(mockObserver.isObserving).toBe(false); + + // Further mutations should not trigger the callback since observer was disconnected + const anotherElement = document.createElement('div'); + anotherElement.id = 'testElement'; + document.body.appendChild(anotherElement); + mockObserver.simulateAddedNodes([anotherElement], document.body); expect(mockFn.mock.calls).toHaveLength(1); }); @@ -41,29 +198,33 @@ describe('whenElementAppears', () => { const mockFn = jest.fn(); const firstChild = document.createElement('div'); const secondChild = document.createElement('div'); - const targetElement = document.createElement('div') - document.body.appendChild(firstChild) - document.body.appendChild(secondChild) - document.body.id = 'body' - targetElement.id = "target" - firstChild.id = 'firstChild' - secondChild.id = 'secondChild' - whenElementAppears('#target', mockFn); + const targetElement = document.createElement('div'); + + targetElement.id = "target"; + firstChild.id = 'firstChild'; + secondChild.id = 'secondChild'; + + // Create the observer + onceElementAppears('#target', mockFn); + expect(mockFn).not.toHaveBeenCalled(); + + const mockObserver = MockMutationObserver.getLastInstance(); + + // Simulate multiple mutations - first without target, then with target + mockObserver.simulateAddedNodes([firstChild], document.body); + expect(mockFn).not.toHaveBeenCalled(); + + mockObserver.simulateAddedNodes([secondChild], document.body); expect(mockFn).not.toHaveBeenCalled(); - // The following changes generate three childList mutation records - firstChild.appendChild(targetElement) - secondChild.appendChild(targetElement) - await new Promise(process.nextTick); + // Now simulate adding the target element directly + mockObserver.simulateAddedNodes([targetElement], firstChild); expect(mockFn.mock.calls).toHaveLength(1); expect(mockFn).toHaveBeenCalledWith(targetElement); - // Further DOM changes should not trigger invocations - targetElement.style.display = 'block'; - targetElement.remove(); - await new Promise(process.nextTick); - expect(mockFn.mock.calls).toHaveLength(1); + // Verify observer was disconnected after first detection + expect(mockObserver.isObserving).toBe(false); }); it('should handle multiple calls with different selectors and functions', async () => { @@ -75,15 +236,17 @@ describe('whenElementAppears', () => { const element2 = document.createElement('div'); element2.id = 'testElement2'; - whenElementAppears('#testElement1', mockFn1); - whenElementAppears('#testElement2', mockFn2); + onceElementAppears('#testElement1', mockFn1); + const mockObserver1 = MockMutationObserver.getLastInstance(); + onceElementAppears('#testElement2', mockFn2); + const mockObserver2 = MockMutationObserver.getLastInstance(); expect(mockFn1).not.toHaveBeenCalled(); expect(mockFn2).not.toHaveBeenCalled(); - // Appending the first element should only trigger the first callback + // Simulate multiple mutations - first without target, then with target document.body.appendChild(element1); - await new Promise(process.nextTick); + mockObserver1.simulateAddedNodes([element1], document.body); expect(mockFn1).toHaveBeenCalled(); expect(mockFn1).toHaveBeenCalledWith(element1); @@ -92,15 +255,12 @@ describe('whenElementAppears', () => { // Appending the second element should only trigger the second call, // the first selector should no longer be observed document.body.appendChild(element2); - await new Promise(process.nextTick); + mockObserver2.simulateAddedNodes([element2], document.body); expect(mockFn2).toHaveBeenCalled(); expect(mockFn2).toHaveBeenCalledWith(element2); expect(mockFn1.mock.calls).toHaveLength(1); expect(mockFn2.mock.calls).toHaveLength(1); - - document.body.removeChild(element1); - document.body.removeChild(element2); }); it('should handle multiple calls with the same selector and separate functions', async () => { @@ -109,15 +269,18 @@ describe('whenElementAppears', () => { const element = document.createElement('div'); element.id = 'testElement'; - whenElementAppears('#testElement', mockFn1); - whenElementAppears('#testElement', mockFn2); + onceElementAppears('#testElement', mockFn1); + const mockObserver1 = MockMutationObserver.getLastInstance(); + onceElementAppears('#testElement', mockFn2); + const mockObserver2 = MockMutationObserver.getLastInstance(); expect(mockFn1).not.toHaveBeenCalled(); expect(mockFn2).not.toHaveBeenCalled(); // Appending the first element should only trigger the first callback + mockObserver1.simulateAddedNodes([element], document.body); + mockObserver2.simulateAddedNodes([element], document.body); document.body.appendChild(element); - await new Promise(process.nextTick); expect(mockFn1).toHaveBeenCalled(); expect(mockFn1).toHaveBeenCalledWith(element); @@ -144,7 +307,8 @@ describe('whenElementAppears', () => { observedElement.id = 'observedElement' observedElement.className = 'observationSelector' - whenElementAppears('.observationSelector', observedFn, observationTarget = observedBranch); + onceElementAppears('.observationSelector', observedFn, observedBranch); + const mockObserver = MockMutationObserver.getLastInstance(); expect(ignoredFn).not.toHaveBeenCalled(); expect(observedFn).not.toHaveBeenCalled(); @@ -152,7 +316,7 @@ describe('whenElementAppears', () => { // Append elements with the desired selector to their respective branches ignoredBranch.appendChild(ignoredElement); observedBranch.appendChild(observedElement); - await new Promise(process.nextTick); + mockObserver.simulateAddedNodes([observedElement], observedBranch); // Only one branch's should generate a mutation and have its callback invoked expect(observedFn.mock.calls).toHaveLength(1); @@ -166,19 +330,20 @@ describe('whenElementAppears', () => { const element = document.createElement('div'); element.id = 'testElement'; - const tracker = whenElementAppears('#testElement', mockFn); + const tracker = onceElementAppears('#testElement', mockFn); + const mockObserver = MockMutationObserver.getLastInstance(); expect(mockFn).not.toHaveBeenCalled(); element.style.display = 'block'; document.body.appendChild(element); - await new Promise(process.nextTick); + mockObserver.simulateAddedNodes([element], document.body); expect(mockFn.mock.calls).toHaveLength(1); expect(mockFn).toHaveBeenCalled(); expect(mockFn).toHaveBeenCalledWith(element); - expect(tracker.disconnected).toBe(true); + expect(tracker.wasDisconnected).toBe(true); expect(tracker.observer).toBe(null); document.body.removeChild(element); @@ -190,11 +355,13 @@ describe('whenElementAppears', () => { element.id = 'testElement'; document.body.appendChild(element); - whenElementAppears('#testElement', mockFn); + onceElementAppears('#testElement', mockFn); + const mockObserver = MockMutationObserver.getLastInstance(); expect(mockFn).not.toHaveBeenCalled(); document.body.removeChild(element); + mockObserver.simulateRemovedNodes([element], document.body); element.style.display = 'block'; @@ -208,7 +375,13 @@ describe('whenElementAppears', () => { element.style.display = 'block'; document.body.appendChild(element); - whenElementAppears('#testElement', mockFn); + onceElementAppears('#testElement', mockFn); + const mockObserver = MockMutationObserver.getLastInstance(); + + const otherElement = document.createElement('div'); + otherElement.id = 'otherElement'; + document.body.appendChild(otherElement); + mockObserver.simulateAddedNodes([otherElement], document.body); expect(mockFn).not.toHaveBeenCalled(); @@ -223,28 +396,72 @@ describe('whenElementAppears', () => { element.style.display = 'block'; document.body.appendChild(element); - const tracker = whenElementAppears('#testElement', mockFn, document); + const tracker = onceElementAppears('#testElement', mockFn, document); + const mockObserver = MockMutationObserver.getLastInstance(); element.dataset.att = 'changed'; - await new Promise(process.nextTick); + mockObserver.simulateAttributeChange(element, 'data-att', 'original', 'changed'); expect(mockFn).not.toHaveBeenCalled(); tracker.disconnect(); }); + it('should detect and return a matching descendent of a mutated element ', async () => { + const mockFn = jest.fn(); + const parentElement = document.createElement('div'); + const childElement = document.createElement('div'); + childElement.id = 'testElement'; + parentElement.appendChild(childElement); + + const tracker = onceElementAppears('#testElement', mockFn, document); + const mockObserver = MockMutationObserver.getLastInstance(); + + // Simulate a mutation that adds the parent element + document.body.appendChild(parentElement); + mockObserver.simulateAddedNodes([parentElement], document.body); + + expect(mockFn).toHaveBeenCalled(); + expect(mockFn).toHaveBeenCalledWith(childElement); + + tracker.disconnect(); + }); + + it('should it detect a pre-existing selector element that is moved into an observed element?', async () => { + const mockFn = jest.fn(); + const originParentElement = document.createElement('div'); + const childElement = document.createElement('div'); + childElement.id = 'testElement'; + originParentElement.appendChild(childElement); + document.body.appendChild(originParentElement); + + const tracker = onceElementAppears('#testElement', mockFn, document); + const mockObserver = MockMutationObserver.getLastInstance(); + + // Simulate a mutation that moves the child element + const targetParentElement = document.createElement('div'); + targetParentElement.appendChild(childElement); + document.body.appendChild(targetParentElement); + mockObserver.simulateRemovedNodes([childElement], originParentElement); + mockObserver.simulateAddedNodes([targetParentElement], document.body); + + expect(mockFn).toHaveBeenCalled(); + expect(mockFn.mock.calls).toHaveLength(1); + expect(mockFn).toHaveBeenCalledWith(childElement); + }); + it('should detect elements that appear within a shadow DOM', async () => { const mockFn = jest.fn(); const hostElement = document.createElement('div'); const shadowRoot = hostElement.attachShadow({ mode: 'open' }); document.body.appendChild(hostElement); - whenElementAppears('#testElement', mockFn, document); - await new Promise(process.nextTick); + onceElementAppears('#testElement', mockFn, document); + const mockObserver = MockMutationObserver.getLastInstance(); const element = document.createElement('div'); element.id = 'testElement'; shadowRoot.appendChild(element); - await new Promise(process.nextTick); + mockObserver.simulateAddedNodes([element], shadowRoot); expect(mockFn).toHaveBeenCalled(); expect(mockFn).toHaveBeenCalledWith(element); @@ -253,58 +470,76 @@ describe('whenElementAppears', () => { }); - describe('Interval testing', () => { - it('should disable the mutation observer when the specified interval elapses, having invoked the callback', async () => { + describe('Timeout testing', () => { + let tracker; + + beforeEach(() => { jest.useFakeTimers(); + }); - const TEST_INTERVAL = 1000; + afterEach(() => { + if (tracker) { + tracker.disconnect(); + } + jest.useRealTimers(); + jest.clearAllTimers(); + }); + + it('should disable the mutation observer when invoking the callback before the timeout elapses', () => { + const TEST_TIMEOUT = 1000; const mockFn = jest.fn(); const element = document.createElement('div'); element.id = 'testElement'; - whenElementAppears('#testElement', mockFn, observationTarget = document, interval = TEST_INTERVAL); - - // setTimeout(() => { document.body.appendChild(element); }, TEST_INTERVAL * 0.95); - - expect(mockFn).not.toHaveBeenCalled(); + tracker = onceElementAppears('#testElement', mockFn, document, TEST_TIMEOUT); + const mockObserver = MockMutationObserver.getLastInstance(); // Advance not enough time to trigger the disabling interval - jest.advanceTimersByTime(TEST_INTERVAL / 2); + jest.advanceTimersByTime(TEST_TIMEOUT / 2); expect(mockFn).not.toHaveBeenCalled(); + expect(tracker.wasDisconnected).toBe(false); // Trigger the callback by providing the observer a selector target - jest.useRealTimers(); document.body.appendChild(element); - await new Promise(process.nextTick); + mockObserver.simulateAddedNodes([element], document.body); - expect(mockFn).toHaveBeenCalled(); expect(mockFn).toHaveBeenCalledWith(element); + expect(tracker.wasDisconnected).toBe(true); + expect(mockObserver.isObserving).toBe(false); + + // Advance past original timeout — nothing additional should happen + jest.advanceTimersByTime(TEST_TIMEOUT * 2); + expect(tracker.wasDisconnected).toBe(true); + expect(mockFn.mock.calls.length).toBe(1); + + // Try to trigger a second callback, which should not work since the observer is disconnected + const secondElement = element.cloneNode(true); + document.body.appendChild(secondElement); + mockObserver.simulateAddedNodes([secondElement], document.body); + expect(mockFn.mock.calls.length).toBe(1); }); - it('should disable the mutation observer when the specified interval elapses, without invoking the callback', async () => { - jest.useFakeTimers(); - - const TEST_INTERVAL = 1000; + it('should disable the mutation observer on timeout, without invoking the callback', () => { + const TEST_TIMEOUT = 1000; const mockFn = jest.fn(); const nonMatchingElement = document.createElement('div'); nonMatchingElement.id = 'testElement'; - whenElementAppears('#ImpossibleElement', mockFn, observationTarget = document, interval = TEST_INTERVAL); - - expect(mockFn).not.toHaveBeenCalled(); + tracker = onceElementAppears('#ImpossibleElement', mockFn, document, TEST_TIMEOUT); + const mockObserver = MockMutationObserver.getLastInstance(); - jest.advanceTimersByTime(TEST_INTERVAL / 2); + // Run time forward a bit, trigger the mutation observer, with a non-matching target + jest.advanceTimersByTime(TEST_TIMEOUT / 2); expect(mockFn).not.toHaveBeenCalled(); - - // Run time forward callback without providing the observer a selector target - jest.useRealTimers(); document.body.appendChild(nonMatchingElement); - await new Promise(process.nextTick); - - // jest.advanceTimersByTime(TEST_INTERVAL); + mockObserver.simulateAddedNodes([nonMatchingElement], document.body); + expect(tracker.wasDisconnected).toBe(false); + // Advance time past the timeout, the observer should disconnect without invoking the callback + jest.advanceTimersByTime(TEST_TIMEOUT * 2); expect(mockFn).not.toHaveBeenCalled(); + expect(tracker.wasDisconnected).toBe(true); + expect(mockObserver.isObserving).toBe(false); }); }); - }); diff --git a/__tests__/jest.setup.js b/__tests__/jest.setup.js new file mode 100644 index 0000000..5c2529f --- /dev/null +++ b/__tests__/jest.setup.js @@ -0,0 +1,15 @@ +// TextEncoder and TextDecoder are not available in Node.js by default +// and are required for jsdom. +// In production code, these would be available in the browser environment, +// but for testing we need to polyfill them. +const TextEncoder = require('util').TextEncoder; +const TextDecoder = require('util').TextDecoder; + +if (typeof global.TextEncoder === 'undefined') { + global.TextEncoder = TextEncoder; +} +if (typeof global.TextDecoder === 'undefined') { + global.TextDecoder = TextDecoder; +} +// This polyfill ensures that the randomUUID function is available in all environments +window.crypto.randomUUID = window.crypto.randomUUID ? window.crypto.randomUUID : crypto.randomUUID ? crypto.randomUUID : () => ObserverTracker.generateRandomUUID() diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..4c2b495 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,10 @@ +module.exports = { + setupFilesAfterEnv: ['/__tests__/jest.setup.js'], + testEnvironment: 'jsdom', + // Exclude config files from being treated as test files + testPathIgnorePatterns: [ + 'node_modules/', + '__tests__/jest.config.js', + '__tests__/jest.setup.js' + ] +}; diff --git a/package-lock.json b/package-lock.json index 5625d9b..2fb9c83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,75 +11,28 @@ "devDependencies": { "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "jsdom": "^23.2.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@asamuzakjp/css-color": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-2.8.3.tgz", - "integrity": "sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" - } - }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@asamuzakjp/dom-selector": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-2.0.2.tgz", - "integrity": "sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bidi-js": "^1.0.3", - "css-tree": "^2.3.1", - "is-potential-custom-element-name": "^1.0.1" + "jsdom": "^20.0.3" } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -87,22 +40,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", - "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.9", - "@babel/types": "^7.26.9", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -118,16 +71,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -135,14 +88,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -151,30 +104,40 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -184,9 +147,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -194,9 +157,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -204,9 +167,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -214,9 +177,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -224,27 +187,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", - "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.26.9" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -309,13 +272,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -493,48 +456,48 @@ } }, "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -547,121 +510,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz", - "integrity": "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz", - "integrity": "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -982,34 +830,31 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1024,9 +869,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1086,9 +931,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -1107,13 +952,13 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "node_modules/@types/graceful-fs": { @@ -1252,13 +1097,16 @@ } }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "license": "MIT", + "dependencies": { + "debug": "4" + }, "engines": { - "node": ">= 14" + "node": ">= 6.0.0" } }, "node_modules/ansi-escapes": { @@ -1334,28 +1182,6 @@ "dev": true, "license": "MIT" }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -1390,26 +1216,10 @@ "node": ">=8" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "license": "MIT", "dependencies": { @@ -1430,24 +1240,7 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "node_modules/balanced-match": { @@ -1457,14 +1250,14 @@ "dev": true, "license": "MIT" }, - "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "node_modules/baseline-browser-mapping": { + "version": "2.8.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.25.tgz", + "integrity": "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==", "dev": true, - "license": "MIT", - "dependencies": { - "require-from-string": "^2.0.2" + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" } }, "node_modules/brace-expansion": { @@ -1492,9 +1285,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", "dev": true, "funding": [ { @@ -1512,10 +1305,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" @@ -1562,9 +1356,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", + "version": "1.0.30001754", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", + "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", "dev": true, "funding": [ { @@ -1749,20 +1543,6 @@ "node": ">= 8" } }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -1771,44 +1551,44 @@ "license": "MIT" }, "node_modules/cssstyle": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.2.1.tgz", - "integrity": "sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^2.8.2", - "rrweb-cssom": "^0.8.0" + "cssom": "~0.3.6" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/cssstyle/node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true, "license": "MIT" }, "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -1824,9 +1604,9 @@ } }, "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "dev": true, "license": "MIT" }, @@ -1900,9 +1680,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.100", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.100.tgz", - "integrity": "sha512-u1z9VuzDXV86X2r3vAns0/5ojfXBue9o0+JDUDBKYqGLjxLkSqsSUoPU/6kW0gx76V44frHaf6Zo+QF74TQCMg==", + "version": "1.5.248", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.248.tgz", + "integrity": "sha512-zsur2yunphlyAO4gIubdJEXCK6KOVvtpiuDfCIqbM9FjcnMYiyn0ICa3hWfPr0nc41zcLWobgy1iL7VvoOyA2Q==", "dev": true, "license": "ISC" }, @@ -2231,16 +2011,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2272,16 +2042,16 @@ } }, "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-encoding": "^3.1.1" + "whatwg-encoding": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/html-escaper": { @@ -2292,31 +2062,32 @@ "license": "MIT" }, "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6" } }, "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.2", + "agent-base": "6", "debug": "4" }, "engines": { - "node": ">= 14" + "node": ">= 6" } }, "node_modules/human-signals": { @@ -2709,10 +2480,65 @@ } } }, - "node_modules/jest-diff": { + "node_modules/jest-config/node_modules/babel-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/jest-config/node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-config/node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "license": "MIT", "dependencies": { @@ -2783,215 +2609,6 @@ } } }, - "node_modules/jest-environment-jsdom/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-environment-jsdom/node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-environment-jsdom/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jest-environment-jsdom/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-environment-jsdom/node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/jest-environment-jsdom/node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-environment-jsdom/node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-environment-jsdom/node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12" - } - }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -3410,39 +3027,44 @@ } }, "node_modules/jsdom": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-23.2.0.tgz", - "integrity": "sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==", + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/dom-selector": "^2.0.1", - "cssstyle": "^4.0.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.3", - "w3c-xmlserializer": "^5.0.0", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.16.0", - "xml-name-validator": "^5.0.0" + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=18" + "node": ">=14" }, "peerDependencies": { - "canvas": "^2.11.2" + "canvas": "^2.5.0" }, "peerDependenciesMeta": { "canvas": { @@ -3572,13 +3194,6 @@ "tmpl": "1.0.5" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "license": "CC0-1.0" - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -3668,9 +3283,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, "license": "MIT" }, @@ -3875,9 +3490,9 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", "engines": { @@ -4003,16 +3618,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -4074,13 +3679,6 @@ "node": ">=10" } }, - "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", - "dev": true, - "license": "MIT" - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -4168,16 +3766,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -4369,16 +3957,16 @@ } }, "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "dev": true, "license": "MIT", "dependencies": { - "punycode": "^2.3.1" + "punycode": "^2.1.1" }, "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/type-detect": { @@ -4422,9 +4010,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "dev": true, "funding": [ { @@ -4479,16 +4067,16 @@ } }, "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, "license": "MIT", "dependencies": { - "xml-name-validator": "^5.0.0" + "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=18" + "node": ">=14" } }, "node_modules/walker": { @@ -4512,40 +4100,40 @@ } }, "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/whatwg-url": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.1.tgz", - "integrity": "sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^5.0.0", + "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/which": { @@ -4604,9 +4192,9 @@ } }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -4626,13 +4214,13 @@ } }, "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": ">=12" } }, "node_modules/xmlchars": { diff --git a/package.json b/package.json index c9b4584..271a401 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,16 @@ "main": "utils.js", "scripts": { "coverage": "npx jest --coverage", - "test": "npx jest", + "test": "npx --experimental-vm-module jest", "watch": "npx jest --watch" }, - "jest": { - "testEnvironment": "jsdom" - }, + "engines": {}, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "jsdom": "^23.2.0" + "jsdom": "^20.0.3" } } From 5733fbaf73342bd973bef3fda691dafa7bea9c83 Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Mon, 10 Nov 2025 13:00:56 -0500 Subject: [PATCH 7/8] [SECURITY] Package upgrades --- package-lock.json | 954 +++++++++++++++++++++++++++++++++++++++------- package.json | 4 +- 2 files changed, 826 insertions(+), 132 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2fb9c83..a555a6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,74 @@ "version": "0.0.1", "license": "ISC", "devDependencies": { + "brace-expansion": "^1.1.12", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "jsdom": "^20.0.3" + "jsdom": "^27.1.0" } }, + "node_modules/@acemir/cssom": { + "version": "0.9.23", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.23.tgz", + "integrity": "sha512-2kJ1HxBKzPLbmhZpxBiTZggjtgCwKg1ma5RHShxvd6zgqhDEdEkzpiwe7jLkI2p2BrZvFCXIihdoMkl1H39VnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz", + "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "lru-cache": "^11.2.1" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.4.tgz", + "integrity": "sha512-buQDjkm+wDPXd6c13534URWZqbz0RP5PAhXZ+LIoa5LgwInT9HVJvGIJivg75vi8I13CxDGdTnz+aY5YUJlIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.2" + } + }, + "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -510,6 +573,141 @@ "dev": true, "license": "MIT" }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.15.tgz", + "integrity": "sha512-q0p6zkVq2lJnmzZVPR33doA51G7YOja+FBvRdp5ISIthL0MtFCgYHHhR563z9WFGxcOn0WfjSkPDJ5Qig3H3Sw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1060,9 +1258,9 @@ "license": "BSD-3-Clause" }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -1097,16 +1295,13 @@ } }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "4" - }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/ansi-escapes": { @@ -1260,10 +1455,20 @@ "baseline-browser-mapping": "dist/cli.js" } }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -1335,6 +1540,20 @@ "dev": true, "license": "MIT" }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1543,6 +1762,20 @@ "node": ">= 8" } }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -1551,38 +1784,32 @@ "license": "MIT" }, "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz", + "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==", "dev": true, "license": "MIT", "dependencies": { - "cssom": "~0.3.6" + "@asamuzakjp/css-color": "^4.0.3", + "@csstools/css-syntax-patches-for-csstree": "^1.0.14", + "css-tree": "^3.1.0" }, "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", + "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", "dev": true, "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.0.0" }, "engines": { - "node": ">=12" + "node": ">=20" } }, "node_modules/debug": { @@ -1679,6 +1906,31 @@ "node": ">=12" } }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.248", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.248.tgz", @@ -1729,6 +1981,55 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -1900,14 +2201,16 @@ } }, "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -1966,6 +2269,31 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -1976,6 +2304,20 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -2011,6 +2353,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2028,30 +2383,59 @@ "node": ">=8" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, "engines": { "node": ">= 0.4" } }, "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-encoding": "^2.0.0" + "whatwg-encoding": "^3.1.1" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/html-escaper": { @@ -2062,32 +2446,31 @@ "license": "MIT" }, "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-signals": { @@ -2609,6 +2992,241 @@ } } }, + "node_modules/jest-environment-jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jest-environment-jsdom/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-environment-jsdom/node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -3027,44 +3645,38 @@ } }, "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.1.0.tgz", + "integrity": "sha512-Pcfm3eZ+eO4JdZCXthW9tCDT3nF4K+9dmeZ+5X39n+Kqz0DDIABRP5CAEOHRFZk8RGuC2efksTJxrjp8EXCunQ==", "dev": true, "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", + "@acemir/cssom": "^0.9.19", + "@asamuzakjp/dom-selector": "^6.7.3", + "cssstyle": "^5.3.2", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", + "parse5": "^8.0.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" + "tough-cookie": "^6.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=14" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "canvas": "^2.5.0" + "canvas": "^3.0.0" }, "peerDependenciesMeta": { "canvas": { @@ -3072,6 +3684,32 @@ } } }, + "node_modules/jsdom/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -3194,6 +3832,23 @@ "tmpl": "1.0.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -3313,9 +3968,9 @@ } }, "node_modules/nwsapi": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", - "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "version": "2.2.22", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz", + "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==", "dev": true, "license": "MIT" }, @@ -3618,6 +4273,16 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -3766,6 +4431,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-support": { "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -3920,6 +4595,26 @@ "node": ">=8" } }, + "node_modules/tldts": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz", + "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.17" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz", + "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==", + "dev": true, + "license": "MIT" + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -3941,32 +4636,29 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "tldts": "^7.0.5" }, "engines": { - "node": ">=6" + "node": ">=16" } }, "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, "license": "MIT", "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.1" }, "engines": { - "node": ">=12" + "node": ">=20" } }, "node_modules/type-detect": { @@ -4067,16 +4759,16 @@ } }, "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", "dependencies": { - "xml-name-validator": "^4.0.0" + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/walker": { @@ -4090,50 +4782,50 @@ } }, "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", + "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=12" + "node": ">=20" } }, "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" }, "engines": { - "node": ">=12" + "node": ">=20" } }, "node_modules/which": { @@ -4214,13 +4906,13 @@ } }, "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/xmlchars": { diff --git a/package.json b/package.json index 271a401..de68a89 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,8 @@ "devDependencies": { "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", - "jsdom": "^20.0.3" + "jsdom": "^27.1.0" + + ,"brace-expansion": "^1.1.12" } } From fd166efb4de889c92bb9d1d1472999710ae1e279 Mon Sep 17 00:00:00 2001 From: "Michael, Kazin" Date: Thu, 15 Jan 2026 15:11:47 -0500 Subject: [PATCH 8/8] ObserverTracker 0.1.0 shakedown complete * Documentation updates * Addition of RedditSubredditHider script which uses ObserverTracker --- README.md | 27 ++++++++-- Reddit/README.md | 12 +++++ Reddit/RedditSubredditHider.user.js | 78 ++++++++++++++++++++++++++++ Reddit/img/SubredditHider.png | Bin 0 -> 326093 bytes _Utils/README.md | 63 +++++++++++----------- __tests__/_Utils/TestObserver.js | 1 - 6 files changed, 143 insertions(+), 38 deletions(-) create mode 100644 Reddit/README.md create mode 100644 Reddit/RedditSubredditHider.user.js create mode 100644 Reddit/img/SubredditHider.png diff --git a/README.md b/README.md index e8fdfaf..7e9751f 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,27 @@ # OhMonkey -A collection of GreaseMonkey/TamperMonkey scripts I wrote +A collection of Userscripts I've written for my own use -## What are GreaseMonkey and TamperMonkey? +## What's a "Userscript"? +Userscripts are JavaScript programs which are run in a web browser and can modify webpage content, add new features, automate tasks, and enhance the overall user experience in ways the website owner did not provide. Take a look through my scripts to get an idea of the kind of changes I've introduced. -[GreaseMonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/) and [TamperMonkey](https://www.tampermonkey.net/) are browser extensions that serve as user script managers. They allow users to customize the behavior of websites they visit by running user scripts, which are small snippets of JavaScript code. These scripts can modify webpage content, add new features, automate tasks, and enhance the overall user experience. +A couple good examples I like to show folks: +* [*America's Test Kitchen Amazon Pricing*](AmericasTestKitchen/README.md) - Adds the current Amazon price of the kitchen products reviewed by ATK. +* [*Amazon Variation Pricer*](Amazon/README.md#amazon-variation-pricer) - displays the prices for each color variation of a product +* [*YouTube No Comment*](Google/README.md#no-comment) - hides the comment section on YouTube videos. - GreaseMonkey is the original and ran only on Mozilla Firefox. TamperMonkey was historically used on Google Chrome and other Chromium-based browsers, but has since been implemented on all browsers and is in more active development. +## What's with "Monkey"? +[GreaseMonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/), [TamperMonkey](https://www.tampermonkey.net/), and [ViolentMonkey](https://violentmonkey.github.io/) are browser extensions that serve as userscript managers. They are responsible for running the appropriate scripts when the user visits a supported website. + GreaseMonkey is the original and ran only on Mozilla Firefox. TamperMonkey was historically used on Google Chrome and other Chromium-based browsers, but has since been implemented on all browsers and is in more active development. ViolentMonkey is the newest, is open source, and supports many browsers. + + Why are they called that? I never really thought much about it. "Grease Monkey" is an old slang term for an auto mechanic. Today "monkey" is a verb used by engineers to describe tinkering with technology, possibly tracing back to the original term. "Tamper" seems obvious, whereas "violent"...? Beats me. + +## Ok... and "Oh Monkey"? +Other than the obvious reference to these browser extensions, it's a phrase I adopted from a colleague I worked with long ago. It was a lovely little phrase he'd often use in place of cursing or as an exclamation of surprise or excitement. + +He's a guy I really enjoyed working with, learned a lot from, and still greatly admire as an engineer and human being. So I hope he doesn't mind me stealing and sharing it. Obviously, I didn't name him here out of respect for his privacy. + +Anyway, I found his phrase to be both professional and fun. I started using it later jobs and it tends to get positive- if sometimes confused- reactions from the folks I've worked with since. ## Support Feel free to create an issue to: @@ -18,7 +33,9 @@ Feel free to create an issue to: If you need something more complex, I might be available for hire. Check out my website for info. -Otherwise, if you like these and find them handy, let me know! + Another place you can try is the [/r/GreaseMonkey](https://www.reddit.com/r/GreaseMonkey/) subreddit. The folks there will sometimes help create a script if you ask nicely. + +* Otherwise, if you like these and find them handy, please let me know! Or feel free to hit that button on the right and buy me a coffee. ## In Remembrance diff --git a/Reddit/README.md b/Reddit/README.md new file mode 100644 index 0000000..f6eb814 --- /dev/null +++ b/Reddit/README.md @@ -0,0 +1,12 @@ +# Reddit Scripts + +## Reddit.com main page + +### [Subreddit Hider](RedditSubredditHider.user.js) +Adds a button to filter out subreddits you don't want to see. + +For example, this annoying karma-farming Subreddit: + + + +Does not require an account or being logged in. Stores the list of hidden subreddits in your browser. \ No newline at end of file diff --git a/Reddit/RedditSubredditHider.user.js b/Reddit/RedditSubredditHider.user.js new file mode 100644 index 0000000..5f4bcb1 --- /dev/null +++ b/Reddit/RedditSubredditHider.user.js @@ -0,0 +1,78 @@ +// ==UserScript== +// @name Reddit Subreddit Hider +// @namespace https://github.com/mkazin/OhMonkey +// @author Michael Kazin +// @version 1.0 +// @description Subreddit filter +// @license BSD-3-Clause +// @match https://www.reddit.com/ +// @icon https://www.google.com/s2/favicons?sz=64&domain=reddit.com +// @grant GM_setValue +// @grant GM_getValue +// @grant GM_addStyle +// @run-at document-end +// @require https://raw.githubusercontent.com/mkazin/OhMonkey/refs/heads/main/_Utils/Observer.js +// ==/UserScript== + +const POST_SELECTOR = 'shreddit-post[subreddit-name]'; +const CACHE_KEY = 'rsh-subreddit-list' + +async function init() { + // Hide previously saved subreddits + const subreddits = (await GM_getValue(CACHE_KEY))?.split(',') || []; + subreddits.forEach(name => hideSubreddit(name)); + // console.log(`Loaded list of ${subreddits.length} hidden subreddits: ${subreddits.join(',')}`); + + // Add filter button to posts on page load + document.querySelectorAll(POST_SELECTOR).forEach(postElement => { + const subredditName = postElement.getAttribute('subreddit-name'); + if (!subreddits.includes(subredditName) && !postElement.querySelector('#hide-subreddit-button')) { + createFilterButton(postElement); + } + }); + + // Observe for new posts being added and add a filter button to each + wheneverElementAppears( + POST_SELECTOR, + (postElement) => { createFilterButton(postElement); }, + document, + 0, + "RedditSubredditHider" + ); +} + +function hideSubreddit(subredditName) { + const rule = `article:has(shreddit-post[subreddit-name="${subredditName}"]) { display: none; }`; + GM_addStyle(rule); +} + +function createFilterButton(postElement) { + const newSection = document.createElement('div') + const creditBar = postElement.querySelector(`[id*="feed-post-credit-bar-"]`); + creditBar.prepend(newSection) + + const newButton = document.createElement('button'); + newButton.classList.add('button-primary'); + newButton.id = 'hide-subreddit-button'; + newButton.innerText = 'Hide Subreddit' + newButton.onclick = clickHandler; + newSection.appendChild(newButton); +} + +async function clickHandler(event) { + const subreddits = (await GM_getValue(CACHE_KEY))?.split(',') || []; + const postElement = event.target.closest('shreddit-post'); + const subredditName = postElement.getAttribute('subreddit-name'); + if (subreddits.includes(subredditName)) { + console.warn(`Subreddit ${subredditName} is already hidden.`); + return; + } + + hideSubreddit(subredditName); + subreddits.push(subredditName); + await GM_setValue(CACHE_KEY, subreddits.join(',')); + // console.log(`Subreddit ${subredditName} has been hidden.`); + // console.log(`New list of hidden subreddits: ${subreddits.join(',')}`); +} + +init(); diff --git a/Reddit/img/SubredditHider.png b/Reddit/img/SubredditHider.png new file mode 100644 index 0000000000000000000000000000000000000000..02e3aac1874fdc35da7239759166c8257e950d8f GIT binary patch literal 326093 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

B_FJsX* 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

+5uhn{@nZ%X8F`=-S`}?FATAOZfT+he4GZH7_}P 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

    XGIuZR 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

    &*t$nn2ZR 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 literal 0 HcmV?d00001 diff --git a/_Utils/README.md b/_Utils/README.md index ecc0c30..ca66347 100644 --- a/_Utils/README.md +++ b/_Utils/README.md @@ -5,11 +5,13 @@ This code is vanilla JS and imports no runtime dependencies ## Observer.js -Provides whenElementAppears() - A reusable, single-line MutationObserver utility function. +Provides: +* `ObserverTracker` - a utility class to monitor the DOM for the appearence of a selector. +* `onceElementAppears()` and `wheneverElementAppears()` - Easy-to-use functions to use ObserverTracker for one-time- or ongoing observation, respectively. -Allows scripts to wait for a specific selector to appear on the page prior to running a provided callback function. Whether due to lazy loading, or a high-latency script download. +These allow userscripts to wait for a specific selector to appear on the page prior to running a provided callback function. Whether due to lazy loading, high-latency script download, or scrolling content. -Replaces the numerous lines of fairly boilerplate code which is otherwise required to set up a single-mutation observer, a better technique than the less reliable timeout or interval implementation a developer would otherwise use as a hack. +This replaces the numerous lines of fairly boilerplate code which is otherwise required to set up a single-mutation observer, a better technique than the less reliable timeout or interval implementation some developers use as a hack. Returns an instance of the *ObserverTracker* which allows users to have manual control over disconnecting the mutationObserver and otherwise track its status. @@ -22,36 +24,33 @@ Version 0.0.3 introduced the ability to monitor within an existing [ShadowRoot]( 1. Import the code by adding the following to your userscript header: // @require https://raw.githubusercontent.com/mkazin/OhMonkey/main/_Utils/Observer.js -1. Pass delayed-execution code as a callback to `whenElementAppears()` +1. Pass the desired selector and a callback to `wheneverElementAppears()` or `onceElementAppears()` Parameters: - * @param {string} selector - CSS selector to be monitored - * @param {function} fn - The callback function to invoke the selector is observed. - * @param {DOM element} [observationTarget=document] - Optional node to observe for the appearance of the selector. If not provided, the entire DOM will be observed. Limiting the scope can yield better performance. - * @param {Number} [timeout] - Optional timeout in ms to disable observer. If set to 0, mutationobserver will continue to run until the selector is seen. - * @returns {ObserverTracker} + * `@param {string} selector` - CSS selector to be monitored + * `@param {function} fn` - The callback function to invoke the selector is observed. + * `@param {DOM element} [observationTarget=document]` - Optional node to observe for the appearance of the selector. If not provided, the entire DOM will be observed. Limiting the scope can yield better performance. + * `@param {Number} [timeout]` - Optional timeout in ms to disable observer. By default set to 0 which means it will continue to run until the selector is seen. + * `@param {Boolean} [disconnectOnDetect]` - Optional flag to disable automatic disconnection of the observer after the first invocation (unless already disconnected by the timeout). This parameter does not exist in `wheneverElementAppears()` and `onceElementAppears()` (these hard-code the parameter passed to `ObserverTracker`). + * `@param {string} [debugName]` - Optional prefix text for debugging purposes, defaults to "ObserverTracker". Useful when running multiple observers in your script(s). -### Examples + * `@returns {ObserverTracker}`, providing access to `disconnect()` which can be called manually. -1. Waiting for a site event - a frequent use of MutationObserver is waiting until a website loads asynchronously. Sometimes setting `@run-at` to `document-idle` is sufficient and the correct way to go. Other sites may have Javascript which runs even later. +### Example uses -YouTube video pages are one example where a necessary element is not available at the time the GreaseMonkey script runs. My -[YoutubeAutoSpeed.user.js](../Google/YoutubeAutoSpeed.user.js) userscript adds a button on the page to allow quickly let a user reset the playback speed to 1x- handy for when the script's code makes a false negative decision on a video where playback shouldn't be adjusted. +1. Pages which load content over time such as infinite scrolling. In this case, we want a long-running MutationObserver. For this use case we can use the `wheneverElementAppears` function, +which sets *ObserverTracker*'s `disconnectOnDetect` to `false`. -To delay the execution until after the `container` element appears in the DOM, it was wrapped with the following code which passes in that element: + See my [RedditSubredditHider.user.js](../Reddit/RedditSubredditHider.user.js) userscript in which newly-loaded posts have a "Hide Subreddit" button added to them to trigger the filtering. - onceElementAppears("div#start", (container) => { - const button = document.createElement("button") - ... - container.appendChild(button) - } +2. Waiting for a site event - a frequent use of MutationObserver is waiting until a website loads asynchronously. Sometimes setting `@run-at` to `document-idle` is sufficient and the correct way to go. Other sites may have Javascript which runs even later. -2. Another example of pages which load over time is infinite scrolling. In this case, we want a long-running MutationObserver. For this use case we can use the `wheneverElementAppears` function, -which sets *ObserverTracker*'s `disconnectOnDetect` to `false`. + YouTube video pages are one example where a necessary element is not available at the time the GreaseMonkey script runs. My +[YoutubeAutoSpeed.user.js](../Google/YoutubeAutoSpeed.user.js) userscript adds a button on the page to allow quickly let a user reset the playback speed to 1x- handy for when the script's code makes a false negative decision on a video where playback shouldn't be adjusted. -To delay the execution until after the `container` element appears in the DOM, it was wrapped with the following code which passes in that element: + To delay the execution until after the `container` element appears in the DOM, it was wrapped with the following code which passes in that element: - whenElementAppears("div#start", (container) => { + onceElementAppears("div#start", (container) => { const button = document.createElement("button") ... container.appendChild(button) @@ -61,10 +60,17 @@ To delay the execution until after the `container` element appears in the DOM, i window.wheneverElementAppears("span.sharebar_comment_count", (e) => console.log(`Comment count: ${e.textContent}`)); -### Security Warning +### Security, Forward-compatablity + As with any browser script, importing code brings risk. Make sure you evaluate the code first. (Please do let me know if you find security concerns I can fix) -I recommend avoiding linking directly to the raw copy of the file on the main branch. Rather I prefer to use a tagged version or even locking to a commit identifier which can't be tampered with should my account get hacked. +Due to the nature of git repositories, the content of the above imported link can change, including changes which may break your code, or even mallicious code if the repository is compromised. The utility might even be moved to a different repository. + +I recommend avoiding linking directly to the raw copy of the file on the main branch. Instead, some possible alternatives: + # A tagged version to avoid future compatability issues, or; + # Lock to a commit identifier which can't be tampered with, even should my account get hacked; or + # Self-host your own copy (e.g. fork or copy to a repo you control) + I don't recommend including the code in your own script, but that's a technical option. ### Development / Contributions Pull requests, bug reports, and suggestions are welcome. @@ -75,11 +81,6 @@ Use the `npm run` commands: `test`, `watch`, and `coverage` Pull requests should pass the existing [unit tests](/__tests__/) and have additional tests to cover updates. -### Security, Forward-compatablity -Due to the nature of git repositories, the content of the above imported link can change, including changes which may break your code, or even mallicious code if the repository is compromised. The utility might even be moved to a different repository. - -To avoid this you may lock your code to a specific version by using a commit ID rather than the "main" branch name. - ### Possible future development This implementation serves several possible use-cases, even allowing for having multiple callbacks run on the same selector. That implementation may benefit from an upgrade which reuses the MutationObserver object. It may not be adequate for some more advanced use-cases. @@ -89,5 +90,3 @@ I expect code using it would also look better, especially as it's currently taki .then(waitForSelector("#desiredElement")) .then(desiredElement => ...) - -Timeouts are another possible addition to allow developers to improve user experience when the code will not execute, such as running some fallback or cleanup code. diff --git a/__tests__/_Utils/TestObserver.js b/__tests__/_Utils/TestObserver.js index 79dcaee..efff2e9 100644 --- a/__tests__/_Utils/TestObserver.js +++ b/__tests__/_Utils/TestObserver.js @@ -144,7 +144,6 @@ afterEach(() => { describe('Exports', () => { test('should export onceElementAppears function', () => { - console.log(onceElementAppears); expect(typeof onceElementAppears).toBe('function'); }); test('window should have onceElementAppears function', () => {