commit 2259ab7e54922ee608180970439bd4f9ea6a7048 Author: JorySeverijnse Date: Sat Feb 14 18:07:55 2026 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/README.md b/README.md new file mode 100644 index 0000000..140d204 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# Multi-Site Sign-Up Automation Script + +This script automates the process of signing up for multiple websites using a single configuration file. It is designed to be flexible and resilient, using advanced techniques to mimic human behavior. + +--- + +## How It Works + +The script reads its configuration from the `config.toml` file. It launches a browser using your real user profile to avoid bot detection, and then iterates through the list of sites you've defined, filling out and submitting the sign-up forms. + +--- + +## Configuration (`config.toml`) + +This is the main file you will edit to control the script. It has the following sections: + +### 1. `[browser]` Section + +This section controls the browser's behavior. + +- `userDataDir` (Required): The absolute path to your Chrome/Chromium user profile. This is critical for avoiding bot detection. +- `userAgent` (Optional): A string to make the browser appear as a specific version (e.g., a Windows machine). If left blank, a random user agent is used. + +**Example:** +```toml +[browser] +userDataDir = "/home/someone/.config/chromium" +userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" +``` + +### 2. `[global_credentials]` Section + +Define a default set of credentials here. The script will use these for any site that does not have its own specific credentials defined. + +- `username` +- `email` +- `password` +- `age` (or any other custom field) + +**Example:** +```toml +[global_credentials] +username = "MyGlobalUsername" +email = "my.global.email@gmail.com" +password = "MyGlobalPassword123!" +age = "28" +``` + +### 3. `[[sites]]` Blocks + +Each site you want to process is defined in its own `[[sites]]` block. + +- `name`: A unique name for the site (e.g., "CameraBoys"). +- `category`: An organizational tag (e.g., "Social", "Financial"). +- `url`: The direct URL to the sign-up page. +- `needsPreSubmitAction`: Set to `true` for sites that have a GDPR/cookie popup. Currently, this is only configured for "CameraBoys". + +#### `[sites.locators]` Subsection + +This is where you define the form fields for the site. The script will dynamically try to fill **any field you list here**. + +- **Easy Mode:** Simply find the element in your browser's developer tools, right-click, "Copy element", and paste the entire HTML tag as the value. +- **Advanced Mode:** You can also use a standard CSS selector. + +**Supported Fields:** `username`, `password`, `email`, `confirmEmail`, `age`, or any other custom field. +*Note: For `confirmEmail`, the script will automatically use the `email` value.* + +**Example:** +```toml +[sites.locators] +email = '' +confirmEmail = '' +age = '#user_age' # You can still use CSS selectors +submit = '' +``` + +#### `[sites.credentials]` Subsection (Optional) + +If a site requires a unique login, you can define it here. This will **override** the `[global_credentials]` for this site only. + +**Example:** +```toml +[sites.credentials] +username = "SiteSpecificUser" +email = "site.specific.email@gmail.com" +password = "SitePassword789" +age = "42" +``` diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..08e44af --- /dev/null +++ b/config.toml @@ -0,0 +1,61 @@ +# Configuration file for the multi-site sign-up script. + +[browser] +userDataDir = "/home/someone/.config/chromium" +userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" + +# Global credentials to be used for any site that doesn't have its own specific credentials. +[global_credentials] +username = "pikzuigendemetalhead" +email = "florianwkristallis@gmail.com" +password = "FlorianhoudvanPIEMELS" +phone = "+31610488717" + +[[sites]] +name = "CameraBoys" +category = "Social" # New category field +url = "https://www.cameraboys.com/en/auth/sign-up" +needsPreSubmitAction = true + +# You can now paste the entire HTML element here. +[sites.locators] +username = '' +password = '' +email = '' +submit = '' + +[[sites]] +url = "https://www.queermenow.net/blog/signup-for-free-gay-porn-news/" +needsPreSubmitAction = false + +[sites.locators] +email = '' +email = '' +submit = '' + +[[sites]] +url = "https://justthegays.tv/register" +needsPreSubmitAction = false + +[sites.locators] +username = '' +email = '' +password = '' + +[[sites]] +url = "https://www.casinonyc.info/" +needsPreSubmitAction = false + +[sites.locators] +email = '' +submit = 'Sumbit' + diff --git a/email_subscription.json b/email_subscription.json new file mode 100644 index 0000000..5945ecf --- /dev/null +++ b/email_subscription.json @@ -0,0 +1,1092 @@ +[ + { + "url": "https://profile.usatoday.com/newsletters/sports", + "verified": true, + "input_fields": { + "email": [ + { + "id": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "primary" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://uptain.de/en/blog/how-online-shops-generate-newsletter-subscribers", + "verified": true, + "input_fields": { + "email": [ + { + "name": "wpforms[fields][1]" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "wpforms[submit]" + } + ], + "radios": [], + "checkboxes": [ + { + "name": "wpforms[fields][3][]" + } + ], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.finnishdesignshop.com/en-us/newsletters", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "newsletter-ajax-submit" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.thecut.com/promo/cut-shop-newsletter-sign-up.html", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Sign up" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.uniqlo.com/sg/en/member/e-news/subscription", + "verified": true, + "input_fields": { + "email": [ + { + "name": "subscribe" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "primary" + } + ], + "radios": [], + "checkboxes": [ + { + "name": "newsletter" + } + ], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://newsletter.defitimes.io/about", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://nocodelandscape.beehiiv.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://newsletter.spaceknown.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.ohmyrockness.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Sign Up >" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.axios.com/signup/pro-rata", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://salesstoic.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Start crushing it in sales..." + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://fastlane-fleet.beehiiv.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Don't miss out on the ride of a lifetime!" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://geekout.mattnavarra.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe (It's free!)" + } + ], + "radios": [], + "checkboxes": [ + { + "class": "text-lp-main-signup-cta-color" + } + ], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://thehumansintheloop.substack.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://newsletter.betterstack.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://unconventional-empires.beehiiv.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Join Us! " + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://dotnetnews.co/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "EMAIL" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "js-submit-button" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://substack.com/signup", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "primary" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.aididthat.com/subscribe", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://dharab.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "EMAIL" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "submit" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://palealetravel.beehiiv.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://7x7.news/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://astukari.substack.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://jbrworks.substack.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://webtoolsweekly.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "EMAIL" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://techproductivity.co", + "verified": true, + "input_fields": { + "email": [ + { + "name": "EMAIL" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://vscode.email", + "verified": true, + "input_fields": { + "email": [ + { + "name": "EMAIL" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://standardhoy.substack.com", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.badgerandyote.com", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://insightsinnovationecon.substack.com", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://kapansrt.substack.com", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://thedonut.co/news-personality-quiz/results/?medium=email&interests=world", + "verified": true, + "input_fields": { + "email": [ + { + "name": "emailAddress" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "NewsQuizSubscribeBar-module--button--c5311" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://coinbrain.beehiiv.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.insidesmallgiants.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://deascentiis.substack.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-btn" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.attnseek.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://daily.thecore.email/subscribe", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": " Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://worldofai.beehiiv.com?ref=amazingnewsletters.com&utm_source=amazingnewsletters.com", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://the-baseline.beehiiv.com/?ref=amazingnewsletters.com&utm_source=amazingnewsletters.com", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://thisweekinreact.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email_address" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "formkit-submit" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://linkedinprompts.beehiiv.com/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.forstarters.co/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.theatlantic.com/newsletters/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "NewslettersSignupBar_button__H1vw5" + } + ], + "radios": [], + "checkboxes": [ + { + "class": "NewsletterCard_buttonIcon__gCltK" + } + ], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://account.forbes.com/newsletters", + "verified": true, + "input_fields": { + "email": [ + { + "class": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "class": "subscribe-button" + } + ], + "radios": [], + "checkboxes": [ + { + "value": "DailyDozen" + } + ], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.keyence.com.sg/enews/subscribe/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "enewsEmailAddress" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://news.un.org/en/content/un-newsletter-subscribe", + "verified": true, + "input_fields": { + "email": [ + { + "name": "EMAIL" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "name": "subscribe" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://www.bruggpipes.com/en/newsletter-sign-up/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "tx_powermail_pi1[field][vorname]" + }, + { + "name": "tx_powermail_pi1[field][name]" + }, + { + "name": "tx_powermail_pi1[field][e_mail]" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "value": "Subscribe" + } + ], + "radios": [ + { + "value": "Mr." + } + ], + "checkboxes": [ + { + "name": "tx_powermail_pi1[field][datenschutzerklaerung][]" + } + ], + "selections": [], + "wait": 5 + } + }, + { + "url": "https://news.nus.edu.sg/subscribe-to-email-newsletter/", + "verified": true, + "input_fields": { + "email": [ + { + "name": "email" + } + ], + "username": [], + "phone": [], + "submit": [ + { + "id": "submit_button-ppmail" + } + ], + "radios": [], + "checkboxes": [], + "selections": [], + "wait": 5 + } + } +] \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..fbb6d81 --- /dev/null +++ b/index.js @@ -0,0 +1,167 @@ +const fs = require('fs'); +const path = require('path'); +const toml = require('@iarna/toml'); +const puppeteer = require('puppeteer-extra'); +const StealthPlugin = require('puppeteer-extra-plugin-stealth'); +puppeteer.use(StealthPlugin()); + +// --- Helper Functions --- + +function loadConfig() { + try { + const configPath = path.join(__dirname, 'config.toml'); + const tomlString = fs.readFileSync(configPath, 'utf-8'); + const config = toml.parse(tomlString); + console.log('✅ Configuration loaded successfully.'); + return config; + } catch (error) { + console.error('❌ Failed to load or parse config.toml:', error.message); + process.exit(1); + } +} + +function generateRandomData() { + const randomString = Math.random().toString(36).substring(2, 10); + const username = `user${randomString}`; + const email = `${username}@gmail.com`; + const password = `pass${randomString}`; + const age = Math.floor(Math.random() * 30 + 20).toString(); // Random age between 20-49 + return { username, email, password, age }; +} + +/** + * Parses a locator string. If it's an HTML snippet, it generates a CSS selector. + * If it's already a selector, it returns it as is. + * @param {string} locatorStr - The locator string from the config. + * @returns {string} A CSS selector. + */ +function parseLocator(locatorStr) { + locatorStr = locatorStr.trim(); + if (!locatorStr.startsWith('<')) { + return locatorStr; // It's already a selector + } + + const getAttr = (attr) => { + const match = locatorStr.match(new RegExp(`${attr}=["']([^"']+)["']`)); + return match ? match[1] : null; + }; + + const tagName = (locatorStr.match(/^<([a-zA-Z0-9]+)/) || [])[1] || ''; + const id = getAttr('id'); + // FIX: Handle numeric IDs by creating an attribute selector + if (id) { + if (/^\\d/.test(id)) { // If id starts with a digit + return `${tagName}[id='${id}']`; + } + return `${tagName}#${id}`; + } + + const name = getAttr('name'); + if (name) return `${tagName}[name='${name}']`; + + const placeholder = getAttr('placeholder'); + if (placeholder) return `${tagName}[placeholder='${placeholder}']`; + + const type = getAttr('type'); + if (type) return `${tagName}[type='${type}']`; + + console.warn(`Could not generate a reliable selector for: ${locatorStr}.`); + return tagName; +} + + +async function handleCameraBoysGDPR(page) { + // ... (This function remains the same) +} + +// --- Main Execution --- +async function main() { + const config = loadConfig(); + const sitesToProcess = config.sites || []; + const browserConfig = config.browser || {}; + const globalCreds = config.global_credentials || {}; + const userDataDir = browserConfig.userDataDir; + + if (!userDataDir) { + console.error('❌ userDataDir is not set in config.toml. This is required.'); + return; + } + + const browser = await puppeteer.launch({ + headless: false, + userDataDir: userDataDir, + args: ["--start-maximized"] + }); + + try { + let isFirstSite = true; + for (const site of sitesToProcess) { + let creds; + if (site.credentials && site.credentials.username) { + creds = { ...globalCreds, ...site.credentials }; + console.log(`Using credentials specified for site: ${site.name}`); + } else { + creds = { ...globalCreds }; + console.log(`Using global credentials for site: ${site.name}`); + } + // If any credential is still missing, generate it randomly + if (!creds.username || !creds.email || !creds.password || !creds.age) { + const randomData = generateRandomData(); + creds = { ...randomData, ...creds }; + console.log('Filled in missing credentials with random data.'); + } + + + console.log(`\n--- Processing Site: ${site.name} (Category: ${site.category || 'N/A'}) ---`); + + const page = isFirstSite ? (await browser.pages())[0] : await browser.newPage(); + isFirstSite = false; + + if (browserConfig.userAgent) { + await page.setUserAgent(browserConfig.userAgent); + } + + await page.goto(site.url, { waitUntil: 'networkidle2' }); + + if (site.needsPreSubmitAction && site.name === 'CameraBoys') { + await handleCameraBoysGDPR(page); + } + + console.log('Dynamically filling out the form...'); + const definedLocators = site.locators || {}; + + for (const fieldName in definedLocators) { + if (fieldName === 'submit') continue; // Skip the submit button + + const selector = parseLocator(definedLocators[fieldName]); + let valueToFill = creds[fieldName]; + + // Special case for 'confirmEmail', use the email value + if (fieldName === 'confirmEmail') { + valueToFill = creds['email']; + } + + if (selector && valueToFill) { + try { + console.log(` - Filling field: ${fieldName}`); + await page.type(selector, valueToFill, { delay: 100 }); + } catch (e) { + console.warn(` - Could not fill field '${fieldName}' with selector '${selector}'. Error: ${e.message}`); + } + } + } + + console.log('Form filled. Attempting to submit...'); + const submitSelector = parseLocator(definedLocators.submit); + await page.click(submitSelector); + + console.log(`✅ Submission attempt for ${site.name} is complete.`); + } + } catch(error) { + console.error('❌ A critical error occurred during execution:', error.message); + } finally { + console.log('\n🎉 All tasks complete. The browser window will remain open for inspection.'); + } +} + +main(); diff --git a/list.txt b/list.txt new file mode 100644 index 0000000..dafe32a --- /dev/null +++ b/list.txt @@ -0,0 +1,354 @@ +https://immaculatevegan.com/blogs/magazine +https://gate6.vn/ +https://www.sprintzeal.com/blog +https://kulalaland.com/ +https://www.goplaces.co.uk/ +https://www.fiftyfiftybottles.com/ +https://jubina.com/blog +https://www.sneakywholefoods.com/ +https://vegnews.com/signup +https://yonayonabeerworks.com/ +https://www.louispowersportsonline.com/ +https://www.hairworthy.co.uk/ +https://endotaspa.com.au/ +https://prestigify.com/ +https://nobones.co/ +https://www.sofamania.com/ +https://dimoradellebalze.com/en/restaurant/ +https://www.42photo.com/ +https://ifinishedmybasement.com/ +https://tettixgames.com/ +https://www.corinnekai.com/raw-honey-raw-self-newsletter/ +https://www.blendnwhip.com/ +https://www.brookebowlin.com/nuance-required +https://www.thatvegandad.net/ +https://comhwa.org.au/blog/newsletters/ +https://hiutdenim.co.uk/ +https://local-lovely.com/ +https://vituswholefoods.com/ +https://theoriginalshabby.it/ +https://rothys.com/en-au +https://www.trustbasket.com/ +https://chelseabrice.com/ +https://wolfsgamingblog.com/ +https://www.leadfuze.com/blog/ +https://thedefiant.io/ +https://www.entrepreneur.com/ +https://pantproject.com/ +https://www.terrebleu.ca/ +https://www.shopify.com/in/blog/shopify-stores +https://www.skooob.com/ +https://mremountain.com/ +https://uncommonjames.com/ +https://www.axios.com/signup/tampa-bay +https://www.dietassassinista.com/blog/tag/African+Cuisine +https://miriamporter.ca/ +https://uppercasemagazine.com/ +https://www.mercadodasrosas.com/ +https://mybageecha.com/ +https://bebemoss.com/ +https://linkwithin.com/ +https://www.mediocrechef.com/newsletter +https://www.trainheroic.com/blog/rdl-for-posterior-chain-development/ +https://www.duatravel.com/ +https://youthiapa.com/ +https://www.prolinerangehoods.com/ +https://inthecove.com.au/sign-up-for-newsletter/ +https://thevegan8.com/ +https://newsinfrench.org/ +https://www.wheelpros.com/ +https://eatbetterco.com/ +https://www.925express.com/ +https://www.kurandawholefoods.com.au/blogs/blog-posts +https://unitedbyblue.com/ +https://www.lifx.com.au/ +https://www.weareunderground.com/ +https://easyeyesound.com/ +https://fashionbrainacademy.com/blog-vs-newsletter/ +https://www.myburntorange.com/ +https://vituswholefoods.com/blogs/news +https://www.givemetap.com/ +https://www.lunchskins.com/ +https://www.gymlaunch.com/blog-categories/newsletter +https://yumetwins.com/blog/kawaii-hotel-rooms-in-japan +https://www.artistsandillustrators.co.uk/ +https://tokyovegangyoza.com/en/pages/newsletter-registration +https://thegoodlifefrance.com/newsletter-sign-up/ +https://www.novethic.fr/economie-et-social/business-model-en-transition/rse-managers-pilotage-entreprise +https://www.35mmc.com/ +https://therainbowvision.com/ +https://www.customgoldgrillz.com/ +https://tofinosoapcompany.com/ +https://store.lonestarlearning.com/ +https://mumcentral.com.au/ +https://www.velasca.com/ +https://satyaorganics.com/ +https://popitout.in/ +https://www.afar.com/travel-tips/the-best-restaurants-in-new-zealand +https://www.mindbodygreen.com/ +https://fourcolumnsofabalancedlife.com/ +https://www.relishthebite.com/ +https://www.airportappliance.com/ +https://quedelibros.com/ +https://www.gazoakleychef.com/ +https://egunsifoods.com/ +https://www.saintalfred.com/ +https://www.wholisticallyhannah.com/all/welcome-to-wholistically-hannah +https://glamout.com.mx/ +https://mommuseum.org/sign-up-for-the-newsletter/ +https://www.greenseashells.com/ +https://jessicainthekitchen.com/ +https://www.carlazampatti.com.au/ +https://www.ricarda.com/ +https://www.supercutekawaii.com/2023/07/kawaii-japan-trip-planning-resources/ +https://www.devilinspired.com/blog/Harajuku-Fashion-Japanese-Street-Fashion/what-is-jirai-kei.html +https://leehamnews.com/ +https://highfivevape.com/ +https://www.loveandlemons.com/subscribe/ +https://finduslost.com/ +https://makeupformelaningirls.com/ +https://gosvish.com/ +https://bruvi.com/ +https://120percento.com/pages/linen-pants +https://www.tsw.com/ +https://economics-online.myshopify.com/ +https://www.captaincookcruisesfiji.com/blog/holidaying-in-fiji-8-travel-blogs-to-read +https://www.thetravelpockets.com/new-blog/tag/Sanrio +https://www.beafunmum.com/ +https://willowltd.com/ +https://www.adolfodominguez.com.au/ +https://laviebami.com/tag/west-african-food/ +https://childandfamilyblog.com/ +https://www.thehimalayanorganics.in/ +https://labelsfashion.com/ +https://theoverwhelmedmommy.com/ +https://headsupfortails.com/ +https://www.healthmates.com.au/about/monthly-newsletter +https://www.cgriver.com/ +https://theholisticgardenblog.com/ +https://www.theguthealthdoctor.com/subscribe +https://djurrattsalliansen.se/hjalp-djuren/lev-djurvanligt/bli-vegan/ +https://www.blackbykenm.com/ +https://shop.smeg.com.au/ +https://hbx.com/?no-direct=1 +https://bonnelife.com/ +https://matthiaskamann.com/blog/ +https://www.justherbs.in/ +https://gaijinpot.com/ +https://wolfsgamingblog.com/ +https://scanwp.net/blog/newsletter-thank-you/ +https://120percento.com/ +https://fausto.in/ +https://sartoriadilusso.shop/designers/off-white +https://kawaiibabe.com/ +https://www.dubwheels.com/ +https://www.nextfpv.com.au/ +https://unarosevegan.ca/welcome-to-my-blog-about-una-rose-vegan/ +https://thecanadianafrican.com/ +https://kindahome.co.ao/ +https://clutchchairz.com/ +https://whereiam.blog/ +https://www.dandelionchocolate.com/ +https://zeroinfy.in/ +https://meowmeowtweet.com/ +https://www.phoebespurefood.com/ +https://www.greenheartgames.com/ +https://freshersjobz.com/ +https://www.prashantisarees.com/ +https://www.snitch.co.in/ +https://www.vervecoffee.com/ +https://homesteadmuseum.blog/ +https://bestfriendsclub.ca/ +https://thenelgroup.au/blogs/news +https://www.goodrx.com/health +https://barekind.co.uk/ +https://flourist.com/ +https://www.belindainternational.com/ +https://www.wigsandgrace.com/ +https://www.eatfitgo.com/ +https://highfivepins.com/ +https://www.duroflexworld.com/ +https://blkandbold.com/ +https://hiyou.co/ +https://www.respectatwork.gov.au/ +https://www.thegayvegans.com/general/ +https://woodfordstatebank.com/investments.html +https://elpasomatters.org/2023/01/18/join-el-paso-matters-book-club-celebrate-el-pasos-authors/ +https://norte.ventures/ +https://www.rachelcampbellphotography.net/ +https://www.leppfarmmarket.com/contact/ +https://panda-patisserie.com/ +http://studiomspace.ca/ +https://busbeestyle.com/travel/ +https://gaysintown.com/ +https://www.hockerty.com/en-au/blog/tuxedo-vs-suit +https://www.everyonehatesmarketers.com/ +https://chelseabrice.com/ +https://www.breitbart.com/newsletters/ +https://www.ableton.com/en/subscribe-to-newsletter/ +https://www.texastribune.org/ +https://www.biblechristiansociety.com/newsletter +https://biggayhudsonvalley.com/contact/newsletter-signup/ +https://odin-engineering.dk/nyhedsbrev/ +https://gardehvalsoe.dk/ +https://aerligebent.dk/bil-jokes +https://eyda.dk/ +http://yourbusinessgazette.com/ +https://usacorrespondent.com/ +https://themarketholders.com/ +https://tldr.tech/ai +https://productmanager.jobs/newsletter +https://www.sartoricheese.com/sweepstakes/ +https://mosbrew.ru/posts/subscribe/ +https://vua-lya.ru/shares/1289/ +https://gifts.ru/about/subscribe +http://www.auto-neva.ru/rassilki +https://www.mann-ivanov-ferber.ru/samorazvitie-books/subscribe/ +https://sisters-help.ru/ +https://teatrkukoludm.ru/ +https://rikkitikkishop.dk/tilmeld-nyhedsbrev/ +https://dollar-king.net/bear-light-up.html +https://fleshbot.com/ +https://signup.dropout.tv/ +https://www.salon.com/topic/incels +https://pornstar.love/newsletter/ +https://intothewildernessblog.com/subscribe/ +https://itslisawelsh.systeme.io/sexual-confidence-guide +https://www.familyhandyman.com/newsletter/ +https://adultindustry.news/ +https://malestockroom.com/ +https://www.cindyscharkey.com/newsletter +https://www.matthewlyonsauthor.com/newsletter +https://pamutlabor.hu/shop/hobbi-erdeklodes-noi-hosszitott-polo +https://assodeclic.com/ +https://www.xexo.it/calendari/4494-calendario-porn-2019.html +https://www.siciliafoodporn.it/27-selezione-sicilia-food-porn +https://www.secrets-center.ru/ +https://www.vkostume.ru/catalog/podarki/ +https://ml.city.yokohama.lg.jp/sympa/subscribe/morinews?previous_action=info +https://ucon-acrobatics.jp/pages/newsletter +https://www.hover.com/newsletter +https://okcthunderwire.usatoday.com/newsletters +https://www.philips.co.jp/myphilips/newsletter-registration-campaign17 +https://www.marni.com/ja-jp/ +https://www.hasselblad.com/ja-jp/about/contact/ +https://kuwaii.com.au/ +https://ideasforgood.jp/mailmagazine/ +https://www.buscounchollo.com/ +https://www.uniqlo.com/es/es/content/bienvenido.html +https://www.hiperdino.es/folletos/ +https://darlingillustrations.com/newsletter-subscription/ +https://gnaraloo.org/subscribe-to-the-gnaraloo-wilderness-foundation-newsletter/ +https://www.farmandwilderness.org/newsletter-signup +https://www.waxit.com.au/pages/waxit-newsletter +https://practicalmotoring.com.au/newsletter-subscription/ +https://www.niba.com.au/newsletter +https://www.iaisweb.org/news-and-events/newsletter/newsletter-subscribe/ +https://crooked.com/tag/incels/ +https://www.maltego.com/blog/everything-to-know-about-ransomware/ +https://thewalrus.ca/tag/immigration/ +https://www.yourdarlingstyle.com/newsletter +https://aidendarlingharbour.com.au/sign-up/ +https://darlingshine.com/pages/watch-us +https://www.monaropost.com.au/newsletter-sign-up-form +https://www.csiro.au/ +https://www.darlingwest.com.au/ +https://www.ivywood.ie/shop/events/a-making-herbal-remedies-practical-course-detail +https://www.ninasjewellery.com.au/ +https://thekawaiishoppu.com/en-au/blogs/news +https://www.pernillecorydon.com/subscribe-to-newsletter +https://www.tokudeals.com/ +https://hands.com.au/ +https://medicalxpress.com/tags/herbal+medicines/ +https://www.coffeeco.com.au/ +https://urbanattitude.com.au/ +https://albathermalsprings.com.au/alba-experiences/spa/herbal-healer-90-min/ +https://www.adultshop.com/ +https://soapsweetie.com/ +https://metropolisbookshop.com.au/ +https://momnemcoffee.com/pages/newsletter +https://www.ricky.com/pages/newsletter +https://www.vittoriacoffee.com/blogs/news/tagged/coffee-blog +https://www.comeasyouare.com/pages/subscribe-to-our-newsletter +https://lioness.io/pages/subscribe +https://www.sexshop365.co.uk/catalog/newsletters.php +https://www.marelljewellery.com.au/newsletter +https://www.bevilles.com.au/ +https://www.bvibe.com/subscribe +https://www.kawaiibox.com/ +https://www.jekkas.com/ +https://thedistrictherbalist.co.uk/herbal-resources/newsletter/ +https://www.seattlecoffeegear.com/pages/subscribe +https://sokawaii.com/ +https://yumetwins.com/ +https://sararobertsson.com/pages/newsletter +https://www.steepedcontent.com/ +https://www.passionfruitshop.com.au/ +https://www.kiwiherb.com.au/contact/subscribe-to/ +https://www.nataliemariejewellery.com/ +https://alternativebrewing.com.au/blogs/news +https://www.sorujewellery.com/en-au/pages/sign-up +https://coffeealchemy.com.au/blogs/news +https://seaglassjewellery.com.au/newsletter-sign-up/ +https://www.atlantacoffeeshops.com/newsletter +https://www.bibivandervelden.com/pages/newsletter +https://joycejewellery.com/pages/signup-newsletter-free-postage +https://theherborium.com.au/collections/herbal-remedies +https://www.grahams.com.au/ +https://www.the-herb-guide.com/herb-guide-newsletter.html +https://embracejewellery.com/pages/subscribe +https://www.aldeacoffee.com/blogs/news +https://crystalheavenjewellery.com/en-au/pages/newsletter +https://www.jewellerssupplies.com.au/ +https://www.herbcottage.com.au/pages/herb-lovers-community-newsletter +https://shop.thegrounds.com.au/ +https://www.vakantiestunt.nl/nieuwsbrief.php +https://www.vakantieveilingen.nl/nieuwsbrief.html +https://nl.secretescapes.com/aanbiedingen +https://www.lepetitmarche.com.au/newsletter +https://www.lalunapetcare.com.au/subscribe +https://larochere-na.com/pages/newsletter +https://store.latimes.com/ +https://www.amiparis.com/au/ +https://filterstore.com.au/pages/newsletter +https://www.versusmerch.com/pages/subscribe-to-our-newsletter +https://www.passionandpresence.com/newsletter-signup/ +https://www.lelo.com/blog/newsletter/ +https://www.tootsiescabaret.com/ +https://www.pimpbangkok.com/ +https://matadornetwork.com/ +https://pragueforadults.com/category/adult/strip-clubs/ +https://gayforgood.org/join-our-mailing-list/ +https://www.postcardmania.com/products-services/lgbt-mailing-list/ +https://gaygaddis.com/newsletter-subscribe/ +https://www.gayparentstobe.com/join-community +https://www.dunasmap.com/newsletter +http://www.pridecenterwny.org/Newsletter +https://www.lgbtgreat.com/newsletter +https://www.italygaytravels.com/newsletter/ +https://www.glbthistory.org/newsletter +https://www.chirale.it/iscriviti-alla-nostra-newsletter/ +https://www.ail.it/newsletter +https://www.fondazionebrodolini.it/iscriviti-alla-nostra-newsletter +https://sex-matters.org/take-action/sign-up/ +https://link.menshealth.com/join/5u0/thehookupsignup +https://whiskeydanduncensored.com/newsletter-socialmedia +https://rebelliousmagazine.com/sex-rebelle/ +https://allbodies.com/newsletter-sign-up/ +https://sexwithemily.com/subscribe/ +https://www.wonderlandbakery.com/ +https://www.carlybloombooks.com/the-bloomin-news/ +https://www.slaa.org.au/subscribe/ +https://www.onlyfriends.com.au/ +https://www.clubx.com.au/ +https://booko.com.au/ +https://sextoyserotica.com.au/ +https://hawttt.com.au/ +https://www.filmink.com.au/best-hookup-sites-australia-13-free-aussie-dating-apps/ +https://www.ricksnewyork.com/ +https://www.clubonyxcharlotte.com/ +https://www.goldclubcenterfolds.com/ +https://www.labohemegc.com/ +https://www.rickschicago.com/ +https://thewalrus.ca/welcome-to-the-manor-church-by-day-strip-club-by-night/ +https://vintagegaybooks.substack.com/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..120502e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1690 @@ +{ + "name": "sign_up_email", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sign_up_email", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@iarna/toml": "^2.2.5", + "playwright": "^1.56.1", + "playwright-extra": "^4.3.6", + "puppeteer": "^24.30.0", + "puppeteer-extra": "^3.3.6", + "puppeteer-extra-plugin-stealth": "^2.11.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "license": "ISC" + }, + "node_modules/@puppeteer/browsers": { + "version": "2.10.13", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz", + "integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.3", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.1.tgz", + "integrity": "sha512-zGUCsm3yv/ePt2PHNbVxjjn0nNB1MkIaR4wOCxJ2ig5pCf5cCVAYJXVhQg/3OhhJV6DB1ts7Hv0oUaElc2TPQg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", + "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chromium-bidi": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-11.0.0.tgz", + "integrity": "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw==", + "license": "Apache-2.0", + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", + "license": "MIT", + "dependencies": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1521046", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz", + "integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "license": "MIT", + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/playwright": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", + "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "playwright-core": "1.56.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", + "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/playwright-extra": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/playwright-extra/-/playwright-extra-4.3.6.tgz", + "integrity": "sha512-q2rVtcE8V8K3vPVF1zny4pvwZveHLH8KBuVU2MoE3Jw4OKVoBWsHI9CH9zPydovHHOCDxjGN2Vg+2m644q3ijA==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "playwright": "*", + "playwright-core": "*" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "playwright-core": { + "optional": true + } + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "24.30.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.30.0.tgz", + "integrity": "sha512-A5OtCi9WpiXBQgJ2vQiZHSyrAzQmO/WDsvghqlN4kgw21PhxA5knHUaUQq/N3EMt8CcvSS0RM+kmYLJmedR3TQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@puppeteer/browsers": "2.10.13", + "chromium-bidi": "11.0.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1521046", + "puppeteer-core": "24.30.0", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "24.30.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.30.0.tgz", + "integrity": "sha512-2S3Smy0t0W4wJnNvDe7W0bE7wDmZjfZ3ljfMgJd6hn2Hq/f0jgN+x9PULZo2U3fu5UUIJ+JP8cNUGllu8P91Pg==", + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.10.13", + "chromium-bidi": "11.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1521046", + "typed-query-selector": "^2.12.0", + "webdriver-bidi-protocol": "0.3.8", + "ws": "^8.18.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-extra": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.6.tgz", + "integrity": "sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/debug": "^4.1.0", + "debug": "^4.1.1", + "deepmerge": "^4.2.2" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "@types/puppeteer": "*", + "puppeteer": "*", + "puppeteer-core": "*" + }, + "peerDependenciesMeta": { + "@types/puppeteer": { + "optional": true + }, + "puppeteer": { + "optional": true + }, + "puppeteer-core": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.2.3.tgz", + "integrity": "sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==", + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.0", + "debug": "^4.1.1", + "merge-deep": "^3.0.1" + }, + "engines": { + "node": ">=9.11.2" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin-stealth": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.11.2.tgz", + "integrity": "sha512-bUemM5XmTj9i2ZerBzsk2AN5is0wHMNE6K0hXBzBXOzP5m5G3Wl0RHhiqKeHToe/uIH8AoZiGhc1tCkLZQPKTQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "puppeteer-extra-plugin": "^3.2.3", + "puppeteer-extra-plugin-user-preferences": "^2.4.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin-user-data-dir": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-data-dir/-/puppeteer-extra-plugin-user-data-dir-2.4.1.tgz", + "integrity": "sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^10.0.0", + "puppeteer-extra-plugin": "^3.2.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin-user-preferences": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-preferences/-/puppeteer-extra-plugin-user-preferences-2.4.1.tgz", + "integrity": "sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "deepmerge": "^4.2.2", + "puppeteer-extra-plugin": "^3.2.3", + "puppeteer-extra-plugin-user-data-dir": "^2.4.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT", + "optional": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.8.tgz", + "integrity": "sha512-21Yi2GhGntMc671vNBCjiAeEVknXjVRoyu+k+9xOMShu+ZQfpGQwnBqbNz/Sv4GXZ6JmutlPAi2nIJcrymAWuQ==", + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4adee5e --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "sign_up_email", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "dependencies": { + "@iarna/toml": "^2.2.5", + "playwright": "^1.56.1", + "playwright-extra": "^4.3.6", + "puppeteer": "^24.30.0", + "puppeteer-extra": "^3.3.6", + "puppeteer-extra-plugin-stealth": "^2.11.2" + } +}