diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml
deleted file mode 100644
index ea56f096eb..0000000000
--- a/.github/workflows/link-checker.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-name: Link Checker
-
-on:
- pull_request:
- push:
- paths:
- - 'docs/**'
- workflow_dispatch:
-
-env:
- ALGOLIA_APP_ID: ${{secrets.ALGOLIA_APP_ID}}
- ALGOLIA_KEY: ${{secrets.ALGOLIA_KEY}}
- SLACK_LINK: ${{secrets.SLACK_LINK}}
- GITLAB_TOKEN: ${{secrets.GITLAB_TOKEN}}
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
-
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version-file: '.nvmrc'
- cache: 'npm'
-
- - name: Setup Python
- uses: actions/setup-python@v5
- with:
- python-version: '3.12'
-
- - name: Install Dependencies
- run: |
- npm install
-
- - name: Build
- run: |
- npm run build
-
- - name: Serve Docs
- working-directory: build
- run: |
- python3 -m http.server 8000 &
-
- - name: Install Test Dependencies
- working-directory: tests/sauce-docs-checker
- run: |
- npm install
-
- - name: Check Links
- working-directory: tests/sauce-docs-checker
- run: |
- npm start -- $GITHUB_RUN_ID
diff --git a/tests/sauce-docs-checker/.gitignore b/tests/sauce-docs-checker/.gitignore
deleted file mode 100644
index 743169ddf5..0000000000
--- a/tests/sauce-docs-checker/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-node_modules
-*.txt
-.idea/
-.DS_Store
diff --git a/tests/sauce-docs-checker/README.md b/tests/sauce-docs-checker/README.md
deleted file mode 100644
index 7d436d1efc..0000000000
--- a/tests/sauce-docs-checker/README.md
+++ /dev/null
@@ -1,198 +0,0 @@
-# Sauce Docs Checker
-
-**Table of Contents**
-* [Overview](#overview)
-* [How to Read the Output](#how-to-read-the-output)
- * [Wiki Reference Example](#wiki-reference-example)
- * [Broken Link Example](#broken-link-example)
- * [Full Output Example](#full-output-example)
-
-## Overview
-The script in this repo checks for wiki references and broken links in [https://docs.saucelabs.com](https://docs.saucelabs.com). More specifically it checks for:
-
-* `href` tags that reference `wiki.saucelabs.com`
-* Broken link references to docs.saucelabs.com (`404 Not Found` or malformed URLs)
-
-## How to Read the Output
-
-The script is scheduled daily via `.gitlab-ci.yaml`. After a job completes, the output is rendered in the pipeline along with a notification sent to the [`#sauce-docs-checker`](C024QEX7C2G) Slack channel.
-
-The slack message will often read like this:
-
-```bash
-Date MM YYYY
-Summary
-- docs pages parsed = 390
-- docs pages broken = 18
-- wiki ref count = 7
- - matched = 5
- - unmatched = 2
-- broken link count = 23
-```
-
-What this means is that there are:
-
-* **18** pages that have either links to the old wiki or broken links
-* **7** instances where a doc page links to the old wiki
-* **23** pages that contain a link to another page in `docs.saucelabs.com` that returns a `404 Not Found` error
-
-> NOTE: `matched` means that there is a replacement link, and it is included in the output. `unmatched` means that there is no obvious replacement link.
-
-### Wiki Reference Example
-Consider the following output:
-
-```bash
-**** REFERENCES ****
-https://docs.saucelabs.com/overview
- WIKI | Selenium | https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Selenium+for+Automated+Website+Testing => https://docs.saucelabs.comdocs.saucelabs.com/web-apps/selenium
-```
-
-This means that the url: `https://docs.saucelabs.com/overview` has a wiki reference (`href` tag) on that page, in this case it's `https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Selenium+for+Automated+Website+Testing`.
-
-The output indicates that the correct link should be `https://docs.saucelabs.com/web-apps/selenium`. This is an example of a `matched` entry.
-
-### Broken Link Example
-Consider the following output:
-
-```bash
-https://docs.saucelabs.com/dev/test-configuration-options
- BROKEN | Application Storage | https://docs.saucelabs.com/dev/mobile-apps/app-storage | UNMATCHED
- BROKEN | Dynamic Allocation | https://docs.saucelabs.com/dev/mobile-apps/automated-testing/appium/real-devices | UNMATCHED
- BROKEN | Device Management for Real Devices | https://docs.saucelabs.com/dev/mobile-apps/supported-devices | UNMATCHED
-```
-
-This means that the url:
-
- `https://docs.saucelabs.com/dev/test-configuration-options`
-
-contains three references to pages located in:
-
- `docs.saucelabs.com`
-
-that return a `404 Not Found` error code. This could be for multiple reasons:
-
-* The page was moved/removed, and the URL changed
-* There's a typo in the URL / reference tag
-
-At the end of each broken link entry contains the word `UNMATCHED`, this indicates that there is no obvious replacement link in our `301` redirect repo. In the cases above, the files were moved and no longer exist in the `/dev` location, so by simple removing that part of the URL fixes the problem.
-
-### Full Output Example
-Below is an example of a full output message that includes multiple examples of wiki references and broken links.
-
-> NOTE: **About the Format**
->
-> The indentation represents the source page that includes the wiki reference/broken links e.g.
->
-> ```bash
-> Link-In-Question
-> WIKI/BROKEN | Section Name | Problem Link | MATCHED/UNMATCHED
-> ```
-
-
- Click here to see the full output
-
-```bash
-**** PARSING https://docs.saucelabs.com/ ****
-*18 docs pages broken*
-- docs pages parsed = 390
-- wiki ref count = 7
- - matched = 5
- - unmatched = 2
-- broken link count = 23
-************************************
-**** REFERENCES ****
-https://docs.saucelabs.com/overview
- WIKI | Selenium | https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Selenium+for+Automated+Website+Testing => https://docs.saucelabs.comdocs.saucelabs.com/web-apps/selenium
- WIKI | Appium | https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Appium+for+Mobile+Application+Testing => https://docs.saucelabs.comdocs.saucelabs.com/mobile-apps/automated-testing/appium
- WIKI | Jenkins | https://wiki.saucelabs.com/display/DOCS/Setting+Up+Sauce+Labs+with+Jenkins => https://docs.saucelabs.comdocs.saucelabs.com/ci/jenkins
- WIKI | Bamboo | https://wiki.saucelabs.com/display/DOCS/Setting+Up+Sauce+Labs+with+Bamboo => https://docs.saucelabs.comdocs.saucelabs.com/ci/bamboo
-https://docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/specialized-environments
- WIKI | Creating a Sauce Connect Tunnel for Legacy Real Device Cloud | https://wiki.saucelabs.com/display/DOCS/Creating+a+Sauce+Connect+Tunnel+for+Legacy+Real+Device+Cloud | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/automated-testing/appium/using-appium
- WIKI | Appium Bootcamp | https://wiki.saucelabs.com/pages/viewpage.action?pageId=63480380 | UNMATCHED
-https://docs.saucelabs.com/insights/history
- WIKI | Debugging Tests with JavaScript Console Logs and HAR Files (Extended Debugging) | https://wiki.saucelabs.com/pages/viewpage.action?pageId=70072943 => https://docs.saucelabs.comdocs.saucelabs.com/insights/debug
-https://docs.saucelabs.com/dev/test-configuration-options
- BROKEN | Application Storage | https://docs.saucelabs.com/dev/mobile-apps/app-storage | UNMATCHED
- BROKEN | Dynamic Allocation | https://docs.saucelabs.com/dev/mobile-apps/automated-testing/appium/real-devices | UNMATCHED
- BROKEN | Device Management for Real Devices | https://docs.saucelabs.com/dev/mobile-apps/supported-devices | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/supported-devices/
- BROKEN | Test Configuration Options | https://docs.saucelabs.com/mobile-apps/dev/test-configuration-options | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/features/index.html
- BROKEN | Virtual USB for Sauce Labs Real Devices | https://docs.saucelabs.com/mobile-apps/mobile-apps/virtual-usb | UNMATCHED
-https://docs.saucelabs.com/dev/glossary
- BROKEN | Test Configuration Options | https://docs.saucelabs.com/dev/dev/test-configuration-options | UNMATCHED
- BROKEN | Sauce Connect Proxy Tunnel Modes: Ephemeral and Long-Running | https://docs.saucelabs.com/dev/secure-connections/sauce-connect/proxy-tunnels | UNMATCHED
- BROKEN | Live Testing for Native Mobile Apps on Real Devices | https://docs.saucelabs.com/dev/mobile-apps/live-testing/live-mobile-app-testing | UNMATCHED
- BROKEN | Mobile App Testing with Espresso and XCUITest | https://docs.saucelabs.com/dev/mobile-apps/automated-testing/espresso-xcuitest | UNMATCHED
- BROKEN | Live Cross Browser Testing | https://docs.saucelabs.com/dev/web-apps/live-testing/live-cross-browser-testing | UNMATCHED
-https://docs.saucelabs.com/testrunner-toolkit/configuration/common-syntax
- BROKEN | XCUITest | https://docs.saucelabs.com/testrunner-toolkit/configuration/testrunner-toolkit/configuration/xcuitest | UNMATCHED
-https://docs.saucelabs.com/testrunner-toolkit/configuration/puppeteer
- BROKEN | Visual Studio Code | https://docs.saucelabs.com/testrunner-toolkit/configuration/testrunner-toolkit/ide-integrations/vscode | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/index.html
- BROKEN | real device cloud requirements | https://docs.saucelabs.com/mobile-apps/automated-testing/appium/mobile-apps/supported-devices | UNMATCHED
- BROKEN | Test Configuration Options | https://docs.saucelabs.com/mobile-apps/automated-testing/appium/dev/test-configuration-options | UNMATCHED
- BROKEN | iOS and/or Android real devices for your tests | https://docs.saucelabs.com/mobile-apps/automated-testing/appium/mobile-apps/automated-testing/appium/real-devices | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/real-devices
- BROKEN | Sauce Runner for Real Devices CLI Reference | https://docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/dev/cli/espresso-xcuitest/real-devices | UNMATCHED
-https://docs.saucelabs.com/dev/cli/espresso-xcuitest/yaml-config
- BROKEN | Sauce Runner RDC CLI Options | https://docs.saucelabs.com/dev/cli/espresso-xcuitest/dev/cli/espresso-xcuitest/real-devices | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/creating-ipa-files
- BROKEN | Real Device Testing with Espresso and XCUITest | https://docs.saucelabs.com/mobile-apps/mobile-apps/automated-testing/espresso-xcuitest/real-devices | UNMATCHED
-https://docs.saucelabs.com/mobile-apps/automated-testing
- BROKEN | Supported Mobile Devices | https://docs.saucelabs.com/mobile-apps/mobile-apps/supported-devices | UNMATCHED
-https://docs.saucelabs.com/secure-connections/sauce-connect/installation
- BROKEN | Sauce Connect Proxy Command-Line Reference | https://docs.saucelabs.com/secure-connections/sauce-connect/dev/cli/sauce-connect-proxy | UNMATCHED
-https://docs.saucelabs.com/dev/cli/virtual-usb/find-sessionid
- BROKEN | connect | https://docs.saucelabs.com/dev/cli/virtual-usb/dev/cli/virtual-usb/connect-session | UNMATCHED
-https://docs.saucelabs.com/dev/cli/virtual-usb/delete-session
- BROKEN | startSession | https://docs.saucelabs.com/dev/cli/virtual-usb/dev/cli/virtual-usb/start-session | UNMATCHED
- BROKEN | sessions | https://docs.saucelabs.com/dev/cli/virtual-usb/dev/cli/virtual-usb/find-sessionid | UNMATCHED
-************************************
-***** Matched *****
-https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Selenium+for+Automated+Website+Testing
- => https://docs.saucelabs.comdocs.saucelabs.com/web-apps/selenium
-https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Appium+for+Mobile+Application+Testing
- => https://docs.saucelabs.comdocs.saucelabs.com/mobile-apps/automated-testing/appium
-https://wiki.saucelabs.com/display/DOCS/Setting+Up+Sauce+Labs+with+Jenkins
- => https://docs.saucelabs.comdocs.saucelabs.com/ci/jenkins
-https://wiki.saucelabs.com/display/DOCS/Setting+Up+Sauce+Labs+with+Bamboo
- => https://docs.saucelabs.comdocs.saucelabs.com/ci/bamboo
-https://wiki.saucelabs.com/pages/viewpage.action?pageId=70072943
- => https://docs.saucelabs.comdocs.saucelabs.com/insights/debug
-************************************
-***** Unmatched *****
-https://wiki.saucelabs.com/display/DOCS/Creating+a+Sauce+Connect+Tunnel+for+Legacy+Real+Device+Cloud
-https://wiki.saucelabs.com/pages/viewpage.action?pageId=63480380
-************************************
-***** Broken *****
-https://docs.saucelabs.com/dev/mobile-apps/app-storage
-https://docs.saucelabs.com/mobile-apps/dev/test-configuration-options
-https://docs.saucelabs.com/dev/mobile-apps/automated-testing/appium/real-devices
-https://docs.saucelabs.com/dev/mobile-apps/supported-devices
-https://docs.saucelabs.com/mobile-apps/mobile-apps/virtual-usb
-https://docs.saucelabs.com/dev/dev/test-configuration-options
-https://docs.saucelabs.com/dev/secure-connections/sauce-connect/proxy-tunnels
-https://docs.saucelabs.com/dev/mobile-apps/live-testing/live-mobile-app-testing
-https://docs.saucelabs.com/dev/mobile-apps/automated-testing/espresso-xcuitest
-https://docs.saucelabs.com/dev/web-apps/live-testing/live-cross-browser-testing
-https://docs.saucelabs.com/testrunner-toolkit/configuration/testrunner-toolkit/configuration/xcuitest
-https://docs.saucelabs.com/testrunner-toolkit/configuration/testrunner-toolkit/ide-integrations/vscode
-https://docs.saucelabs.com/mobile-apps/automated-testing/appium/mobile-apps/supported-devices
-https://docs.saucelabs.com/mobile-apps/automated-testing/appium/dev/test-configuration-options
-https://docs.saucelabs.com/mobile-apps/automated-testing/appium/mobile-apps/automated-testing/appium/real-devices
-https://docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/dev/cli/espresso-xcuitest/real-devices
-https://docs.saucelabs.com/dev/cli/espresso-xcuitest/dev/cli/espresso-xcuitest/real-devices
-https://docs.saucelabs.com/mobile-apps/mobile-apps/automated-testing/espresso-xcuitest/real-devices
-https://docs.saucelabs.com/mobile-apps/mobile-apps/supported-devices
-https://docs.saucelabs.com/secure-connections/sauce-connect/dev/cli/sauce-connect-proxy
-https://docs.saucelabs.com/dev/cli/virtual-usb/dev/cli/virtual-usb/connect-session
-https://docs.saucelabs.com/dev/cli/virtual-usb/dev/cli/virtual-usb/start-session
-https://docs.saucelabs.com/dev/cli/virtual-usb/dev/cli/virtual-usb/find-sessionid
-August 11, 2021
-OK
-```
-
-
-In the above example
diff --git a/tests/sauce-docs-checker/index.js b/tests/sauce-docs-checker/index.js
deleted file mode 100644
index 29fe51a53d..0000000000
--- a/tests/sauce-docs-checker/index.js
+++ /dev/null
@@ -1,254 +0,0 @@
-// Author: Clara Ko
-// Co-authored / refactored by: James Tacker
-
-let fs = require('fs');
-let axios = require('axios');
-let cheerio = require('cheerio');
-let fastcsv = require('fast-csv');
-let moment = require('moment');
-
-// github actions package
-// javascript
-const core = require('@actions/core');
-
-let wiki_url = 'https://wiki.saucelabs.com';
-let docs_url = 'http://127.0.0.1:8000/';
-let result = {};
-let wiki_result = {};
-let wiki_map = {};
-let matched_result = {};
-let matched_list = [];
-let unmatched_result = {};
-let broken_result = {};
-
-let page_count = 0;
-let wiki_count = 0;
-
-let ref_map = {};
-
-let args = process.argv;
-let joburl = args[args.length-1];
-// https://gitlab.prod.sjc3.saucelabs.net/clara.ko/sauce-docs-checker/-/jobs/4314130
-console.log(joburl)
-if(joburl.includes('index.js')) joburl = null
-
-run();
-
-async function run() {
- console.log(`**** PARSING ${docs_url} ****`)
- await parse_docs(docs_url); // no logging
- await parse_wiki_map();
- await match_wiki_links();
-
- let summary_str = get_summary()
- let ref_str = get_references(ref_map)
- let matched_str = get_links(matched_result,'Matched')
- let unmatched_str = get_links(unmatched_result,'Unmatched')
- let broken_str = get_links(broken_result,'Broken')
-
- if(joburl!==null) {
- let arr = [ref_str,matched_str,unmatched_str,broken_str]
- await exit_code(summary_str,arr,Object.keys(ref_map).length)
- }
-}
-
-async function exit_code(summary_str,arr,broken_count) {
- let date_str = moment().format('LL')
- console.log(date_str)
- if(broken_count>0) core.setFailed(`Action failed with error ${broken_count} Broken Links`);
-}
-
-/* This function was no longer needed as results output in pipeline and prevent merging */
-
-// async function send_slack(summary_str,arr,broken_count) {
-// let url = process.env.SLACK_LINK
-// let date_str = moment().format('LL')
-// console.log(date_str)
-// let color = "#36a64f"
-// if(broken_count>0) color = "#ff0f0f"
-// let obj = {
-// "attachments": [
-// {
-// "color": color,
-// "blocks": [
-// {
-// "type": "header",
-// "text": {
-// "type": "plain_text",
-// "text": date_str,
-// "emoji": true
-// }
-// },
-// {
-// "type": "section",
-// "text": {
-// "type": "mrkdwn",
-// "text": summary_str
-// }
-// },
-// {
-// "type": "section",
-// "text": {
-// "type": "mrkdwn",
-// "text": `<${joburl}|See Details>`
-// }
-// }
-// ]
-// }
-// ]
-// }
-// try {
-// let res = await axios.post(url, obj);
-// console.log(res.statusText)
-// }
-// catch(err) {
-// console.log(err)
-// }
-// }
-
-async function match_wiki_links() {
- let links = Object.keys(wiki_result);
- for(let i=0;i',to);
- matched_result[from] = to;
- matched_list.push({from:from,to:to});
- }
- else {
- unmatched_result[from] = from;
- }
- }
-}
-
-function get_summary() {
- let str = `*${Object.keys(ref_map).length} docs pages broken*\n`+
- `- docs pages parsed = ${page_count}\n`+
- `- wiki ref count = ${wiki_count}\n`+
- `\t- matched = ${Object.keys(matched_result).length}\n`+
- `\t- unmatched = ${Object.keys(unmatched_result).length}\n`+
- `- broken link count = ${Object.keys(broken_result).length}`;
- console.log(str+'\n')
- return str
-}
-
-function get_references(map) {
- let keys = Object.keys(map)
- if(keys.length===0) return null
- let str = `************************************\n`
- str += `**** REFERENCES ****\n`
- for(let i=0;i ${match}`
- str += `\t${item.type} | ${item.text} | ${item.to} ${match_str}\n`
- }
- }
- console.log(str)
- return str
-}
-
-function get_links(map,title) {
- let keys = Object.keys(map)
- if(keys.length===0) return null
- let str = `************************************\n`
- str += `***** ${title} *****\n`
- for(let i=0;i ${value}\n`
- }
- console.log(str)
- return str
-}
-
-async function parse_wiki_map() {
- const text = fs.readFileSync('map.conf', 'utf-8')
- let arr = text.split('\n');
- for(let i=0;i
- /display/DOCS/Getting+Started+with+Selenium+for+Automated+Website+Testing docs.saucelabs.com/web-apps/automated-testing/selenium/;
- /display/DOCS/Creating+an+ipa+File docs.saucelabs.com/mobile-apps/automated-testing/ipa-files/;
- /display/DOCS/Test+Configuration+Options docs.saucelabs.com/dev/test-configuration-options/;
- /display/DOCS/Using+Labels+for+Resource+Assignment+and+Job+Queuing+in+Jenkins docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/;
- /display/DOCS/Parallel+Testing+in+Java+with+Maven+and+TestNG training.saucelabs.com/SeleniumJava/;
- /display/DOCS/Appium+Capabilities+for+Real+Device+Testing docs.saucelabs.com/dev/test-configuration-options/;
- /display/DOCS/Common+Error+Messages docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Mobile+Application+Testing+with+Camera+Image+Injection docs.saucelabs.com/mobile-apps/features/camera-image-injection/;
- /display/DOCS/Platform+Configurator saucelabs.com/platform/platform-configurator/;
- /display/DOCS/Examples+of+Appium+Desired+Capabilities+for+Mobile+Application+Tests docs.saucelabs.com/dev/test-configuration-options/#mobile-app-capabilities-appium-settings--required;
- /display/DOCS/Setting+Test+Status+to+Pass+or+Fail docs.saucelabs.com/test-results/test-status/#update-test-status-in-session;
- /display/DOCS/W3C+Capabilities+Support docs.saucelabs.com/dev/w3c-webdriver-capabilities/;
- /display/DOCS/Getting+Started+with+Appium+for+Mobile+Application+Testing docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/Desired+Capabilities+Required+for+Selenium+and+Appium+Tests docs.saucelabs.com/dev/test-configuration-options/;
- /display/DOCS/Best+Practice:+Use+Environment+Variables+for+Authentication+Credentials docs.saucelabs.com/basics/environment-variables/;
- /display/DOCS/Automated+Testing+with+Real+Devices docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /display/DOCS/Basic+Sauce+Connect+Proxy+Setup docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/;
- /display/DOCS/Example+Appium+Scripts+for+Android+Mobile+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/The+Sauce+Labs+REST+API docs.saucelabs.com/dev/api/;
- /display/DOCS/Best+Practices+for+Running+Tests community.saucelabs.com/search?q=Best%20Practice%20for%20Running%20Tests/;
- /display/DOCS/Uploading+your+Application+to+Emulators+and+Simulators docs.saucelabs.com/mobile-apps/app-storage/;
- /display/DOCS/Downloading+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/installation/;
- /display/DOCS/Automated+Testing+with+Emulators+and+Simulators docs.saucelabs.com/mobile-apps/automated-testing/appium/virtual-devices/;
- /display/DOCS/Best+Practice:+Use+Explicit+Waits community.saucelabs.com/unit-testing-friends-6/best-practice-use-explicit-waits-152/;
- /display/DOCS/Sauce+Connect+Proxy+Command-Line+Quick+Reference+Guide docs.saucelabs.com/dev/cli/sauce-connect-proxy/;
- /display/DOCS/Python+Example+Script+for+Android+Mobile+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/Application+Storage docs.saucelabs.com/mobile-apps/app-storage/;
- /display/DOCS/Best+Practice:+Use+Build+IDs,+Tags,+and+Names+to+Identify+Your+Tests docs.saucelabs.com/basics/test-config-annotation/test-annotation/;
- /display/DOCS/How+to+Deal+with+Flaky+Java+Tests community.saucelabs.com/unit-testing-friends-6/best-practice-how-to-deal-with-flaky-java-tests-163/;
- /pages/viewpage.action?pageId=48365900 docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/;
- /display/DOCS/Java+Test+Setup+Example docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /display/DOCS/Running+Parallel+Tests+with+Jenkins docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Sauce+Connect+Proxy+Troubleshooting docs.saucelabs.com/secure-connections/sauce-connect/troubleshooting/;
- /display/DOCS/Real+Device+FAQs docs.saucelabs.com/mobile-apps/faq/;
- /display/DOCS/Uploading+your+Application+to+Sauce+Storage docs.saucelabs.com/mobile-apps/app-storage/#uploading-to-legacy-sauce-storage;
- /display/DOCS/Testing+with+Virtual+USB+on+Real+Devices docs.saucelabs.com/mobile-apps/features/virtual-usb/;
- /display/DOCS/Best+Practice:+Imperative+v.+Declarative+Testing+Scenarios community.saucelabs.com/unit-testing-friends-6/best-practice-imperative-v-declarative-testing-scenarios-160/;
- /pages/viewpage.action?pageId=70072943 docs.saucelabs.com/insights/debug/;
- /display/DOCS/Automated+Web+App+Testing+on+Desktop+and+Mobile+Browsers docs.saucelabs.com/basics/quickstarts/;
- /display/DOCS/Biometric+Authentication+in+Automated+Mobile+App+Testing docs.saucelabs.com/mobile-apps/features/biometric-authentication/;
- /display/DOCS/Sauce+Connect+Proxy+FAQs docs.saucelabs.com/secure-connections/sauce-connect/faq/;
- /display/DOCS/Things+That+Can+Go+Wrong+with+Running+Java+Tests+in+Parallel,+and+How+to+Debug+Them training.saucelabs.com/SeleniumJava/;
- /display/DOCS/Setting+Up+Sauce+Labs+with+Jenkins docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Using+Sauce+Connect+Tunnel+Identifiers docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/basic-setup/#using-tunnel-identifiers;
- /display/DOCS/Data+Center+Endpoints docs.saucelabs.com/basics/data-center-endpoints/;
- /display/DOCS/Mobile+Application+Testing docs.saucelabs.com/mobile-apps/automated-testing/;
- /display/DOCS/Sauce+Connect+Proxy+Setup+with+Additional+Proxies docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/additional-proxies/;
- /display/DOCS/Using+Frameworks+to+Run+Tests+in+Parallel docs.saucelabs.com/web-apps/automated-testing/selenium/;
- /display/DOCS/Measure+Page+Load+Performance+Using+Test+Automation docs.saucelabs.com/performance/transitions/;
- /pages/viewpage.action?pageId=102716835 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=115062393 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=64720259 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=115066081 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=110206507 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=92675573 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=88811568 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=110207564 changelog.saucelabs.com/en;
- /pages/viewpage.action?pageId=99649977 changelog.saucelabs.com/en;
-
- # <---------------basics section--------------->
- /display/DOCS/Account+and+Team+Management docs.saucelabs.com/basics/acct-team-mgmt-hub/;
- /display/DOCS/Managing+Organizations docs.saucelabs.com/basics/acct-team-mgmt/org-settings/;
- /display/DOCS/Job%2C+User%2C+and+Integrations+Settings+for+Organizations docs.saucelabs.com/basics/acct-team-mgmt/org-settings/;
- /display/DOCS/Security+Settings+for+Organizations docs.saucelabs.com/basics/acct-team-mgmt/org-settings/;
- /display/DOCS/Single+Sign-On+Settings+for+Organizations docs.saucelabs.com/basics/acct-team-mgmt/org-settings/;
- /display/DOCS/Understanding+Concurrency+Limits+and+Team+Accounts docs.saucelabs.com/basics/acct-team-mgmt/concurrency-limits/;
- /display/DOCS/Adding+Users+to+Your+Account docs.saucelabs.com/basics/acct-team-mgmt/adding-deactivating-users/;
- /display/DOCS/Deleting+Users docs.saucelabs.com/basics/acct-team-mgmt/adding-deactivating-users/;
- /display/DOCS/Managing+User+Info+and+Accounts docs.saucelabs.com/basics/acct-team-mgmt/managing-user-info/;
- /display/DOCS/Resetting+User+Access+Tokens docs.saucelabs.com/basics/acct-team-mgmt/managing-user-info/;
- /display/DOCS/User+Account+Types docs.saucelabs.com/basics/acct-team-mgmt/managing-user-info/;
- /display/DOCS/Viewing+and+Exporting+Usage+Data docs.saucelabs.com/basics/acct-team-mgmt/assigning-removing-users-teams/;
- /display/DOCS/Sharing+Sauce+Connect+Proxy+Tunnels+-+Extended+Team+Management docs.saucelabs.com/basics/acct-team-mgmt/sauce-connect-proxy-tunnels/;
- /display/DOCS/Account+and+Team+Management+for+Real+Devices docs.saucelabs.com/basics/acct-team-mgmt/real-devices/;
- /display/DOCS/Setting+Up+Single+Sign-On docs.saucelabs.com/basics/sso/setting-up-single-sign-on/;
- /display/DOCS/Configuring+Active+Directory+Federated+Service+for+Sauce+Labs+SSO docs.saucelabs.com/basics/sso/config-adfs/;
- /display/DOCS/Configuring+Okta+for+Sauce+Labs+SSO docs.saucelabs.com/basics/sso/config-okta/;
- /display/DOCS/Test+Configuration+and+Annotation docs.saucelabs.com/basics/test-config-annotation/test-config/;
- /display/DOCS/Configuring+Tests+with+the+Platform+Configurator docs.saucelabs.com/basics/platform-configurator/;
- /display/DOCS/Annotating+Tests+with+Selenium%27s+JavaScript+Executor docs.saucelabs.com/basics/test-config-annotation/test-annotation/;
- /display/DOCS/Annotating+Tests+with+the+Sauce+Labs+REST+API docs.saucelabs.com/basics/test-config-annotation/test-annotation/;
- /display/DOCS/Best+Practice%3A+Use+Build+IDs%2C+Tags%2C+and+Names+to+Identify+Your+Tests docs.saucelabs.com/basics/test-config-annotation/test-annotation/;
- /display/DOCS/Examples+of+Test+Configuration+Options+for+Website+Tests saucelabs.com/platform/platform-configurator/;
- /display/DOCS/Sauce+Labs+Basics docs.saucelabs.com/overview/;
- /display/DOCS/Sauce+Labs+FAQs docs.saucelabs.com/overview/;
- /display/DOCS/Sauce+Labs+Onboarding+Guide docs.saucelabs.com/overview/;
- /display/DOCS/Early+Access+Australian+Data+Center docs.saucelabs.com/basics/data-center-endpoints/aust-early-access/;
- /display/DOCS/Getting+Started docs.saucelabs.com/sauce-basics/;
-
- # <---------------mobile apps section--------------->
- /display/DOCS/Automated+Mobile+Application+Testing+with+Sauce+Labs docs.saucelabs.com/mobile-apps/supported-devices/;
- /display/DOCS/Mobile+Application+Testing+Admin+Guide docs.saucelabs.com/mobile-apps/supported-devices/;
- /display/DOCS/Real+Device+Testing+Admin+Guide docs.saucelabs.com/mobile-apps/supported-devices/;
- /display/DOCS/Emulator+and+Simulator+Testing+Admin+Guide docs.saucelabs.com/mobile-apps/supported-devices/;
- /display/DOCS/Monitoring+Real+Device+Performance+for+Automated+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /display/DOCS/Appium+Capabilities+and+Example+Scripts+for+Emulators%2C+Simulators%2C+and+Real+Devices docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /display/DOCS/Appium+Capabilities+and+Example+Scripts+for+Emulators+and+Simulators docs.saucelabs.com/mobile-apps/automated-testing/appium/virtual-devices/;
- /display/DOCS/Example+Appium+Scripts+for+iOS+Mobile+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/Example+Appium+Scripts+for+Mobile+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/Python+Example+Script+for+iOS+Mobile+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/Node.js+Example+Script+for+Android+Mobile+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/virtual-devices/;
- /display/DOCS/Automated+Mobile+Application+Testing+on+Virtual+Devices docs.saucelabs.com/mobile-apps/automated-testing/appium/virtual-devices/;
- /display/DOCS/Mobile+Testing+with+Appium+and+Sauce+Labs docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /display/DOCS/Mobile+App+Testing+with+Native+Frameworks+on+Virtual+and+Real+Devices+with+Sauce+Labs docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Using+Sauce+Runner+with+Native+Frameworks+for+Real+Device+Testing docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Example+Espresso+Tests+for+a+React-Native+App+on+Virtual+Devices docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Creating+a+Sauce+Runner+for+Real+Devices+Configuration+File docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Using+Espresso+for+Real+Device+Testing docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Using+XCUITest+for+Real+Device+Testing docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Uploading+the+App+and+Test+Files+to+Storage+Before+Execution docs.saucelabs.com/mobile-apps/app-storage/;
- /display/DOCS/Using+Sauce+Runner+with+Native+Frameworks+for+Virtual+Device+Testing docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Using+Espresso+for+Virtual+Device+Testing docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Installing+Sauce+Runner+for+Virtual+Devices docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Troubleshooting+Espresso+Testing+for+Virtual+Devices docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/App+Center+Integration docs.saucelabs.com/mobile-apps/ms-app-center/;
- /display/DOCS/Troubleshooting+Automated+Mobile+Application+Tests docs.saucelabs.com/dev/error-messages/;
- /pages/viewpage.action?pageId=88811563 docs.saucelabs.com/mobile-apps/;
- /display/DOCS/Live+Testing+for+Native+Mobile+Apps+on+Real+Devices docs.saucelabs.com/mobile-apps/live-testing/live-mobile-app-testing/;
- /display/DOCS/Live+Mobile+Application+Testing+with+Sauce+Labs docs.saucelabs.com/mobile-apps/live-testing/live-mobile-app-testing/;
- /display/DOCS/Using+Third+Party+Apps+and+Accounts+for+Live+Testing+on+Real+Devices docs.saucelabs.com/mobile-apps/live-testing/live-mobile-app-testing/;
- /display/DOCS/Device+Vitals+for+Mobile+Applications docs.saucelabs.com/mobile-apps/live-testing/live-mobile-app-testing/;
- /display/DOCS/Best+Practices+for+Live+Testing docs.saucelabs.com/mobile-apps/live-testing/live-mobile-app-testing/;
- /pages/viewpage.action?pageId=63477340 docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /pages/viewpage.action?pageId=96835829 docs.saucelabs.com/mobile-apps/automated-testing/appium/;
- /pages/viewpage.action?pageId=92677798 docs.saucelabs.com/mobile-apps/faq/;
- /pages/viewpage.action?pageId=92677184 docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /pages/viewpage.action?pageId=92677219 docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /pages/viewpage.action?pageId=72746736 docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /pages/viewpage.action?pageId=120271039 docs.saucelabs.com/mobile-apps/automated-testing/;
- /pages/viewpage.action?pageId=92677229 docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /pages/viewpage.action?pageId=102721137 docs.saucelabs.com/mobile-apps/app-storage/;
- /pages/viewpage.action?pageId=110205666 docs.saucelabs.com/;
-
- # <---------------web apps section------------------------->
- /display/DOCS/Using+Pre-Run+Executables+to+Configure+Browsers+and+Virtual+Machines docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Setting+Up+Pre-Run+Executables docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/An+Introduction+to+Pre-Run+Executables docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Setting+Up+Silent+Mode+for+Pre-Run+Executables docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Setting+Basic+Authentication+in+Safari+with+a+Pre-Run+Executable docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Downloading+Files+to+a+Sauce+Labs+Virtual+Machine+Prior+to+Testing docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Editing+the+Virtual+Machine%27s+Host+File docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Creating+JSON+Objects+for+Multiple+Pre-Run+Executable+Arguments docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Creating+JSON+Objects+for+Multiple+Pre-Run+Executable+Arguments+in+Java+Test+Scripts docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Running+an+AutoIt+Script+as+a+Pre-run+Executable+to+Handle+Windows+Security+Authentication+Dialogs docs.saucelabs.com/web-apps/automated-testing/selenium/pre-run-executables/;
- /display/DOCS/Automated+Testing+of+Web+Apps+with+Sauce+Labs docs.saucelabs.com/web-apps/;
- /display/DOCS/Example+Selenium+Scripts+for+Automated+Web+App+Tests docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /display/DOCS/Ruby+Test+Setup+Example docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /display/DOCS/Python+Test+Setup+Example docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /display/DOCS/Node.js+Test+Setup+Example docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /pages/viewpage.action?pageId=48365749 docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /display/DOCS/Troubleshooting+Automated+Web+App+Tests docs.saucelabs.com/web-apps/automated-testing/selenium/sel-trouble/;
- /display/DOCS/Web+Application+Testing docs.saucelabs.com/web-apps/;
- /display/DOCS/Live+Testing+of+Web+Apps+with+Sauce+Labs docs.saucelabs.com/web-apps/live-testing/live-cross-browser-testing/;
- /display/DOCS/Live+Web+App+Testing+on+Mobile+Browsers+with+Virtual+and+Real+Devices docs.saucelabs.com/web-apps/live-testing/live-cross-browser-testing/;
- /display/DOCS/Live+Web+App+Testing+on+Desktop+Browsers docs.saucelabs.com/web-apps/live-testing/live-cross-browser-testing/;
- /display/DOCS/Troubleshooting+Live+Web+App+Tests docs.saucelabs.com/web-apps/live-testing/live-cross-browser-testing/;
- /display/DOCS/Troubleshooting+Parallel+Tests docs.saucelabs.com/web-apps/automated-testing/selenium/sel-trouble/;
- /display/DOCS/Sauce+Labs+Demonstration+Scripts docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /display/DOCS/Java+Demonstration+Scripts docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/#java;
- /display/DOCS/Python+Demonstration+Scripts docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/#python;
- /display/DOCS/Ruby+Demonstration+Scripts docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/#ruby;
- /display/DOCS/Node.js+Demonstration+Scripts docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/#nodejs;
- /pages/viewpage.action?pageId=48365799 docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/#c-sharp;
- /display/DOCS/Instant+Selenium+PHP+Tests docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/;
- /spaces/flyingpdf/pdfpageexport.action?pageId=48365740 docs.saucelabs.com/web-apps/automated-testing/selenium/sample-scripts/#java;
-
- # <---------------secure connections section--------------->
- /display/DOCS/Getting+Started+with+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/;
- /display/DOCS/Setting+Up+Sauce+Connect docs.saucelabs.com/secure-connections/sauce-connect/;
- /display/DOCS/Why+Sauce+Labs+Recommends+Sauce+Connect+Proxy+Over+Whitelisting+IP+Addresses docs.saucelabs.com/secure-connections/sauce-connect/;
- /display/DOCS/System+and+Network+Requirements+for+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/system-requirements/;
- /display/DOCS/Verifying+Sauce+Connect+Proxy+Network+Routes+on+Your+Host+Machine docs.saucelabs.com/secure-connections/sauce-connect/system-requirements/;
- /display/DOCS/Sauce+Connect+Proxy+Setup+and+Configuration docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/;
- /display/DOCS/High+Availability+Sauce+Connect+Proxy+Setup docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/;
- /display/DOCS/Sauce+Connect+Proxy+Setup+for+Real+Device+Cloud docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/;
- /display/DOCS/Headless+Sauce+Connect+Proxy+Setup docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/;
- /display/DOCS/Sauce+Connect+Proxy+Bamboo+Configuration docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/;
- /display/DOCS/Environment+Variables+Used+by+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/environment-variables/;
- /display/DOCS/Best+Practice%3A+Use+Environment+Variables+for+Authentication+Credentials docs.saucelabs.com/basics/environment-variables/;
- /display/DOCS/Using+--auth+with+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/security-authentication/;
- /display/DOCS/Sauce+Connect+Proxy+Performance+Metrics docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/;
- /display/DOCS/Improving+Sauce+Connect+Proxy+Performance docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/;
- /display/DOCS/Monitoring+Sauce+Connect+Proxy+with+Service+Management+Tools docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/;
- /display/DOCS/Running+Sauce+Connect+Proxy+as+a+Microsoft+Windows+Service docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/;
- /display/DOCS/Using+the+Selenium+Relay+with+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/#using-the-selenium-relay;
- /display/DOCS/Sauce+Connect+Proxy+and+Network+Security docs.saucelabs.com/secure-connections/sauce-connect/security-authentication/;
- /display/DOCS/Securing+Sauce+Connect+Proxy docs.saucelabs.com/secure-connections/sauce-connect/security-authentication/;
- /display/DOCS/Sauce+Connect+Proxy+Authentication docs.saucelabs.com/secure-connections/sauce-connect/security-authentication/;
- /display/DOCS/Sauce+Connect+Proxy+Certificate+Handling docs.saucelabs.com/secure-connections/sauce-connect/security-authentication/;
- /display/DOCS/Sauce+Connect+Proxy+and+SSL+Certificate+Bumping docs.saucelabs.com/secure-connections/sauce-connect/security-authentication/;
- /display/DOCS/Sauce+Connect+Proxy+Debugging+and+Diagnostics+with+--doctor+flag docs.saucelabs.com/secure-connections/sauce-connect/troubleshooting/;
- /display/DOCS/What+Not+to+Do%3A+Common+Mistakes+in+Sauce+Connect+Proxy+Network+Configurations docs.saucelabs.com/secure-connections/sauce-connect/troubleshooting/;
- /display/DOCS/IPSec+VPN docs.saucelabs.com/secure-connections/ipsec-vpn/;
- /display/DOCS/IPSec+VPN+Architecture+and+Security docs.saucelabs.com/secure-connections/ipsec-vpn/;
- /display/DOCS/IPSec+VPN+Network+Requirements docs.saucelabs.com/secure-connections/ipsec-vpn/;
- /display/DOCS/Using+an+IPSec+VPN+Tunnel docs.saucelabs.com/secure-connections/ipsec-vpn/;
- /display/DOCS/Sharing+IPSec+VPN+Tunnels docs.saucelabs.com/secure-connections/ipsec-vpn/;
- /display/DOCS/IPSec+VPN+FAQs docs.saucelabs.com/secure-connections/ipsec-vpn/;
- /pages/viewpage.action?pageId=66292142 docs.saucelabs.com/secure-connections/sauce-connect/proxy-tunnels/;
-
- # <---------------CI/CD section--------------->
- /display/DOCS/Using+Sauce+Labs+with+Continuous+Integration+Platforms docs.saucelabs.com/ci/;
- /display/DOCS/Setting+Up+Tests+to+Run+in+a+Continuous+Integration+Environment docs.saucelabs.com/ci/;
- /display/DOCS/Setting+Up+CI+Platform+Integrations+with+Sauce+Plugins docs.saucelabs.com/ci/;
- /display/DOCS/Other+CI+Platform+Integrations+with+Sauce+Labs docs.saucelabs.com/ci/;
- /display/DOCS/Setting+Up+Sauce+Labs+with+Bamboo docs.saucelabs.com/ci/bamboo/;
- /display/DOCS/Installing+and+Configuring+the+Sauce+Labs+Plugin+for+Bamboo docs.saucelabs.com/ci/bamboo/;
- /display/DOCS/Configuring+Bamboo+for+a+Java+Project+with+Sauce+Labs docs.saucelabs.com/ci/bamboo/;
- /display/DOCS/Configuring+Bamboo+for+a+Python+Project+with+Sauce+Labs docs.saucelabs.com/ci/bamboo/;
- /display/DOCS/Referencing+Environment+Variables+for+Bamboo+Jobs docs.saucelabs.com/ci/bamboo/;
- /display/DOCS/Outputting+the+Bamboo+Session+ID+to+stdout docs.saucelabs.com/ci/bamboo/;
- /display/DOCS/Setting+Up+Sauce+Labs+and+Bitbucket+Pipelines docs.saucelabs.com/ci/bitbucket/;
- /display/DOCS/Installing+and+Configuring+the+Sauce+OnDemand+Plugin+for+Jenkins docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Configuring+Sauce+Connect+Proxy+with+the+Jenkins+Plugin docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Setting+Desired+Capabilities+for+Jenkins+Projects docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Environment+Variables+Used+by+the+Jenkins+Plugin docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Configuring+Jenkins+Matrix+Projects+with+Sauce docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Setting+Up+Parameterized+Builds+for+Jenkins+and+Sauce docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Setting+Up+Reporting+between+Sauce+Labs+and+Jenkins docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Using+the+Sauce+Labs+Jenkins+Plugin+with+Jenkins+Pipeline docs.saucelabs.com/ci/jenkins/;
- /display/DOCS/Setting+Up+Sauce+Labs+with+TeamCity docs.saucelabs.com/ci/teamcity/;
- /display/DOCS/Installing+and+Configuring+the+Sauce+OnDemand+Plugin+for+TeamCity docs.saucelabs.com/ci/teamcity/;
- /display/DOCS/Configuring+TeamCity+for+a+Java+Project+with+Sauce+Labs docs.saucelabs.com/ci/teamcity/;
- /display/DOCS/Referencing+Environment+Variables+for+TeamCity+Jobs docs.saucelabs.com/ci/teamcity/;
- /display/DOCS/Outputting+the+TeamCity+Session+ID+to+stdout docs.saucelabs.com/ci/teamcity/;
- /display/DOCS/Setting+Up+Sauce+for+Visual+Studio+Team+Services docs.saucelabs.com/ci/;
-
- # <---------------Insights section--------------->
- /display/DOCS/Guide+to+Sauce+Insights docs.saucelabs.com/insights/;
- /display/DOCS/Filtering+for+Mobile+Application+and+Website+Tests docs.saucelabs.com/insights/scope/;
- /display/DOCS/insights+FAQs docs.saucelabs.com/insights/scope/;
- /display/DOCS/Test+History docs.saucelabs.com/insights/history/;
- /display/DOCS/Analyzing+Trends docs.saucelabs.com/insights/trends/;
- /display/DOCS/Improving+the+Efficiency+of+Your+Builds docs.saucelabs.com/insights/trends/;
- /display/DOCS/Using+Failure+Analysis docs.saucelabs.com/insights/failure-analysis/;
- /display/DOCS/Failure+Analysis+FAQs docs.saucelabs.com/insights/failure-analysis/;
- /display/DOCS/Guide+to+the+Analytics+Interface docs.saucelabs.com/insights/;
- /display/DOCS/Custom+Sauce+Labs+Webdriver+Extensions+for+Network+and+Log+Commands docs.saucelabs.com/insights/debug/;
-
- # <---------------Performance section--------------->
- /display/DOCS/Getting+Started+with+Sauce+Front+End+Performance docs.saucelabs.com/performance/;
- /display/DOCS/Sauce+Performance+Basics docs.saucelabs.com/performance/about/;
- /display/DOCS/FAQ docs.saucelabs.com/performance/about/;
- /display/DOCS/Test+Performance+Using+Speedo docs.saucelabs.com/performance/one-page/;
- /display/DOCS/Configuration+Options docs.saucelabs.com/performance/one-page/;
- /pages/viewpage.action?pageId=85230663 docs.saucelabs.com/performance/one-page/;
- /display/DOCS/Page+Load+Metrics+Reference docs.saucelabs.com/performance/transitions/;
- /display/DOCS/Test+the+Smoothness+or+Jankiness+of+Your+Application docs.saucelabs.com/performance/motion/;
- /display/DOCS/Jankiness+Metrics+Reference docs.saucelabs.com/performance/motion/;
- /display/DOCS/Test+Command docs.saucelabs.com/performance/motion/;
- /display/DOCS/Debug+Performance docs.saucelabs.com/performance/analyze/;
-
- # <---------------Headless section--------------->
- /display/DOCS/Getting+Started+with+Sauce+Headless docs.saucelabs.com/headless/;
- /display/DOCS/Setting+Up+Sauce+Headless+with+Existing+Tests docs.saucelabs.com/headless/;
- /display/DOCS/Sauce+Connect+Proxy+on+Headless docs.saucelabs.com/headless/;
- /display/DOCS/URLs+for+Sauce+Headless docs.saucelabs.com/headless/;
-
- # <---------------Dev/Reference section--------------->
- /display/DOCS/REST+API+Overview docs.saucelabs.com/dev/api/;
- /display/DOCS/Accessing+the+API docs.saucelabs.com/dev/api/;
- /display/DOCS/Accessing+the+API+for+Windows+Users docs.saucelabs.com/dev/api/;
- /pages/viewpage.action?pageId=66294829 docs.saucelabs.com/dev/api/;
- /display/DOCS/Application+Storage#ApplicationStorage-RESTAPIAuthentication docs.saucelabs.com/dev/api/storage/;
- /display/DOCS/Rate+Limits+for+the+Sauce+Labs+REST+API docs.saucelabs.com/dev/api/;
- /display/DOCS/Account+Methods docs.saucelabs.com/dev/api/accounts/;
- /display/DOCS/Extended+Team+Management+API+-+Teams docs.saucelabs.com/dev/api/accounts/#team-methods;
- /display/DOCS/Extended+Team+Management+API+-+Users docs.saucelabs.com/dev/api/accounts/#user-methods;
- /display/DOCS/Test+Activity+and+Usage+Methods docs.saucelabs.com/dev/api/accounts/;
- /display/DOCS/Tunnel+Methods docs.saucelabs.com/dev/api/connect/;
- /display/DOCS/Sauce+Insights+Methods docs.saucelabs.com/dev/api/insights/;
- /display/DOCS/Job+Methods docs.saucelabs.com/dev/api/jobs/;
- /display/DOCS/Rest+API docs.saucelabs.com/dev/api/performance/;
- /display/DOCS/Performance+methods docs.saucelabs.com/dev/api/performance/;
- /display/DOCS/Platform+Information+Methods docs.saucelabs.com/dev/api/platform/;
- /display/DOCS/Mobile+App+Testing+API docs.saucelabs.com/dev/api/rdc/;
- /display/DOCS/Accessing+the+Mobile+App+Testing+API docs.saucelabs.com/dev/api/rdc/;
- /display/DOCS/Device+Methods+-+Real+Devices docs.saucelabs.com/dev/api/rdc/;
- /display/DOCS/Job+Methods+-+Real+Devices docs.saucelabs.com/dev/api/rdc/;
- /display/DOCS/Temporary+Storage+Methods docs.saucelabs.com/dev/api/storage/;
- /display/DOCS/Command+Reference+for+Sauce+Runner+for+Real+Devices docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Examples+of+Device+Specifications+for+the+Real+Device+Runner docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Command+Reference+for+Sauce+Runner+for+Virtual+Devices docs.saucelabs.com/mobile-apps/automated-testing/espresso-xcuitest/;
- /display/DOCS/Adding+Teams+-+Extended+Team+Management docs.saucelabs.com/basics/acct-team-mgmt/adding-deleting-teams/;
- /display/DOCS/Analytics+Methods docs.saucelabs.com/dev/api/insights/;
- /display/DOCS/Examples+of+Test+Configuration+Options+for+Mobile+Native+Application+Tests docs.saucelabs.com/mobile-apps/automated-testing/appium/real-devices/;
- /display/DOCS/Sauce+Labs+Glossary docs.saucelabs.com/dev/glossary/;
- /display/DOCS/Maintenance+Windows+for+the+Sauce+Labs+European+Data+Center docs.saucelabs.com/dev/data-center-maint/;
- /display/DOCS/Maintenance+Windows+for+the+Sauce+Labs+US+Data+Center docs.saucelabs.com/dev/data-center-maint/;
- /display/DOCS/A+Failure+Occurred+While+Attempting+to+Upload+the+Video docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Abuse+Job docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Failed+to+Download+Mobile+Application docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Invalid+Parent+Tunnel docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Selenium+Didn%27t+Complete+Your+Last+Command+on+Time docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Test+Didn%27t+See+a+New+Command+for+90+Seconds docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/Test+Exceeded+Maximum+Duration+of+1800+Seconds docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/The+Connection+with+Your+Virtual+Machine+was+Lost+and+Your+Job+Can%27t+Complete docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/The+Requested+Combination+of+Browser%2C+Version%2C+and+Operating+System+is+Not+Supported docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/The+Sauce+Labs+Virtual+Machine+Failed+to+Start+the+Browser+or+Device docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/The+Virtual+Machine%27s+Disk+has+Filled+Up docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/User+Terminated docs.saucelabs.com/dev/error-messages/;
- /display/DOCS/You%27ve+Exceeded+Your+Sauce+Labs+Concurrency+Limit docs.saucelabs.com/dev/error-messages/;
-
- # <---------------test results section--------------->
- /display/DOCS/Viewing+and+Managing+Test+Results docs.saucelabs.com/test-results/viewing-test-results/;
- /display/DOCS/Viewing+Screenshots%2C+Commands%2C+Logs%2C+and+Metadata+for+Test+Results docs.saucelabs.com/test-results/viewing-test-results/;
- /display/DOCS/Enhanced+Test+Details+Page docs.saucelabs.com/test-results/viewing-test-results/;
- /display/DOCS/Using+Favorites+to+Save+Your+Searches docs.saucelabs.com/test-results/managing-test-results/;
- /display/DOCS/Deleting+Test+and+Build+Results docs.saucelabs.com/test-results/managing-test-results/;
- /display/DOCS/Changing+the+Layout+of+Your+Archives+Page docs.saucelabs.com/test-results/managing-test-results/;
- /display/DOCS/Managing+the+Results+of+Automated+Builds+and+Automated+Tests docs.saucelabs.com/test-results/managing-test-results/;
- /display/DOCS/Search+Fields+and+Operators docs.saucelabs.com/test-results/managing-test-results/;
- /display/DOCS/Sharing+the+Results+of+Sauce+Labs+Test docs.saucelabs.com/test-results/sharing-test-results/;
- /display/DOCS/Building+Sharable+Links+to+Test+Results docs.saucelabs.com/test-results/sharing-test-results/;
- /display/DOCS/Embedding+Test+Results+in+HTML+Pages docs.saucelabs.com/test-results/sharing-test-results/;
- /display/DOCS/Managing+Archived+Test+and+Build+Results docs.saucelabs.com/test-results/archived-test-results/;
- /display/DOCS/Searching+for+Test+Results+and+Builds+on+Your+Archive+Page docs.saucelabs.com/test-results/archived-test-results/;
- /display/DOCS/Using+Status+Badges+and+the+Browser+Matrix+Widget+to+Monitor+Test+Results docs.saucelabs.com/test-results/badges-browser-matrix/;
-
- # <---------------Community redirect section--------------->
- /display/DOCS/Basic+HTTP+Authentication community.saucelabs.com/unit-testing-friends-6/best-practice-handling-authentication-164;
- /display/DOCS/Best+Practice%3A+Avoid+Dependencies+between+Tests+to+Run+Tests+in+Parallel community.saucelabs.com/unit-testing-friends-6/best-practice-avoid-dependencies-between-tests-to-run-tests-in-parallel-148;
- /display/DOCS/Best+Practice%3A+Avoid+External+Test+Dependencies community.saucelabs.com/unit-testing-friends-6/best-practice-avoid-external-test-dependencies-149;
- /display/DOCS/Best+Practice%3A+Avoid+Leakage+of+Credentials community.saucelabs.com/unit-testing-friends-6/best-practice-avoid-leakage-of-credentials-158;
- /display/DOCS/Best+Practice%3A+Be+Aware+of+the+Load+on+Your+Servers community.saucelabs.com/quality-strategies-45/best-practice-be-aware-of-the-load-on-your-servers-159;
- /display/DOCS/Best+Practice%3A+Don%27t+Use+Brittle+Locators+in+Your+Tests community.saucelabs.com/selenium-appium-59/best-practice-avoid-brittle-locators-151;
- /display/DOCS/Best+Practice%3A+Have+a+Retry+Strategy+for+Handling+Flakes community.saucelabs.com/unit-testing-friends-6/best-practice-have-a-retry-strategy-for-handling-flakes-155;
- /display/DOCS/Best+Practice%3A+Imperative+v.+Declarative+Testing+Scenarios community.saucelabs.com/unit-testing-friends-6/best-practice-imperative-v-declarative-testing-scenarios-160;
- /display/DOCS/Best+Practice%3A+Keep+Functional+Tests+Separate+from+Performance+Tests community.saucelabs.com/unit-testing-friends-6/best-practice-keep-functional-tests-separate-from-performance-tests-150;
- /display/DOCS/Best+Practice%3A+Use+Breakpoints+to+Diagnose+Flaky+Tests community.saucelabs.com/unit-testing-friends-6/best-practice-use-breakpoints-to-diagnose-flaky-tests-on-sauce-labs-156;
- /display/DOCS/Best+Practice%3A+Use+Explicit+Waits community.saucelabs.com/unit-testing-friends-6/best-practice-use-explicit-waits-152;
- /display/DOCS/Best+Practice%3A+Use+Maven+to+Manage+Project+Dependencies community.saucelabs.com/unit-testing-friends-6/best-practice-use-maven-to-manage-project-dependencies-161;
- /display/DOCS/Best+Practice%3A+Use+New+Accounts+For+Each+Test community.saucelabs.com/unit-testing-friends-6/best-practice-use-new-accounts-for-each-test-157;
- /display/DOCS/Best+Practice%3A+Use+Page+Objects+to+Model+Repeated+Interactions+and+Elements community.saucelabs.com/unit-testing-friends-6/best-practice-use-page-objects-to-model-repeated-interactions-and-elements-162;
- /display/DOCS/Best+Practice%3A+Use+the+Latest+Version+of+Selenium+Client+Bindings community.saucelabs.com/unit-testing-friends-6/best-practice-use-the-latest-version-of-selenium-client-bindings-153;
- /display/DOCS/Best+Practices%3A+Use+Small%2C+Atomic%2C+Autonomous+Tests community.saucelabs.com/unit-testing-friends-6/best-practices-use-small-atomic-autonomous-tests-154;
- /display/DOCS/Handling+Authentication community.saucelabs.com/unit-testing-friends-6/best-practice-handling-authentication-164;
- /display/DOCS/Injecting+Cookies+to+Bypass+Authentication+Dialogs community.saucelabs.com/unit-testing-friends-6/best-practice-handling-authentication-164;
- /display/DOCS/Tips+for+Lean%2C+Speedy+Tests+with+Sauce+Labs community.saucelabs.com/quality-strategies-45/best-practice-tips-for-lean-speedy-tests-with-sauce-labs-165;
-
- # <---------------Sauce School section--------------->
- /display/DOCS/Selenium+Bootcamp+1%3A+The+First+Things+You+Need+to+Know training.saucelabs.com/;
- /display/DOCS/Selenium+Bootcamp+2%3A+Writing+Your+First+Selenium+Test training.saucelabs.com/;
- /display/DOCS/Selenium+Bootcamp+3%3A+How+to+Write+Maintainable+Tests training.saucelabs.com/;
- /display/DOCS/Selenium+Bootcamp+4%3A+Writing+Resilient+Test+Code training.saucelabs.com/;
- /display/DOCS/Selenium+Bootcamp+5%3A+Packaging+for+Use?src=sidebar training.saucelabs.com/?src=sidebar;
- /display/DOCS/Selenium+Bootcamp+by+Dave+Haeffner training.saucelabs.com/;
- /display/DOCS/Appium+Bootcamp+1%3A+Getting+Started training.saucelabs.com/codelabs/Module2-Quickstart/index.html?index=..%2F..quickstart#0;
- /display/DOCS/Appium+Bootcamp+3%3A+Interrogating+Your+App training.saucelabs.com/codelabs/Module2-Quickstart/index.html?index=..%2F..quickstart#0;
- /display/DOCS/Appium+Bootcamp+4%3A+Your+First+Test training.saucelabs.com/codelabs/Module2-Quickstart/index.html?index=..%2F..quickstart#0;
- /display/DOCS/Appium+Bootcamp+5%3A+Writing+and+Refactoring+Your+Tests training.saucelabs.com/codelabs/Module2-Quickstart/index.html?index=..%2F..quickstart#0;
- /display/DOCS/Appium+Bootcamp+6%3A+Running+Your+Tests training.saucelabs.com/codelabs/Module2-Quickstart/index.html?index=..%2F..quickstart#0;
- /display/DOCS/Appium+Bootcamp+by+Dave+Haeffner+and+Matthew+Edwards training.saucelabs.com/codelabs/Module2-Quickstart/index.html?index=..%2F..quickstart#0;
- /display/DOCS/Things+That+Can+Go+Wrong+with+Running+Java+Tests+in+Parallel%2C+and+How+to+Debug+Them training.saucelabs.com/SeleniumJava/;
- /display/DOCS/Best+Practices+for+Running+Tests+with+Java training.saucelabs.com/SeleniumJava/;
-
- # <---------------Status Page --------------->
- /display/DOCS/status+page+experiment status.saucelabs.com/;
- /pages/viewpage.action?pageId=48365834 docs.saucelabs.com/dev/api/platform/;
-
- # <---------------Company Website Redirects --------------->
- /display/DOCS/Supported+Android+Emulators saucelabs.com/platform/platform-configurator/;
- /display/DOCS/Supported+Browsers+and+Operating+Systems+for+the+Sauce+Labs+Application saucelabs.com/platform/platform-configurator/;
- #<----------------End of File------------------------------>
-}
diff --git a/tests/sauce-docs-checker/package-lock.json b/tests/sauce-docs-checker/package-lock.json
deleted file mode 100644
index eeb94a79da..0000000000
--- a/tests/sauce-docs-checker/package-lock.json
+++ /dev/null
@@ -1,881 +0,0 @@
-{
- "name": "saucedocs-crawler",
- "version": "1.0.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "saucedocs-crawler",
- "version": "1.0.0",
- "license": "ISC",
- "dependencies": {
- "@actions/core": "^1.7.0",
- "axios": "^1.7.4",
- "cheerio": "^1.0.0-rc.10",
- "fast-csv": "^4.3.6",
- "moment": "^2.29.1",
- "wait-on": "7.2.0"
- }
- },
- "node_modules/@actions/core": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
- "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
- "dependencies": {
- "@actions/http-client": "^2.0.1",
- "uuid": "^8.3.2"
- }
- },
- "node_modules/@actions/http-client": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
- "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
- "dependencies": {
- "tunnel": "^0.0.6"
- }
- },
- "node_modules/@fast-csv/format": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz",
- "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==",
- "dependencies": {
- "@types/node": "^14.0.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.isboolean": "^3.0.3",
- "lodash.isequal": "^4.5.0",
- "lodash.isfunction": "^3.0.9",
- "lodash.isnil": "^4.0.0"
- }
- },
- "node_modules/@fast-csv/parse": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz",
- "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==",
- "dependencies": {
- "@types/node": "^14.0.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.groupby": "^4.6.0",
- "lodash.isfunction": "^3.0.9",
- "lodash.isnil": "^4.0.0",
- "lodash.isundefined": "^3.0.1",
- "lodash.uniq": "^4.5.0"
- }
- },
- "node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
- },
- "node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
- },
- "node_modules/@types/node": {
- "version": "14.18.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz",
- "integrity": "sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/axios": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
- "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
- },
- "node_modules/cheerio": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
- "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
- "dependencies": {
- "cheerio-select": "^2.1.0",
- "dom-serializer": "^2.0.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "htmlparser2": "^8.0.1",
- "parse5": "^7.0.0",
- "parse5-htmlparser2-tree-adapter": "^7.0.0"
- },
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
- }
- },
- "node_modules/cheerio-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
- "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-select": "^5.1.0",
- "css-what": "^6.1.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/css-select": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dependencies": {
- "domelementtype": "^2.3.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
- "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
- "dependencies": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.1"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/entities": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz",
- "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/fast-csv": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz",
- "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==",
- "dependencies": {
- "@fast-csv/format": "4.3.5",
- "@fast-csv/parse": "4.3.6"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/htmlparser2": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
- "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "entities": "^4.3.0"
- }
- },
- "node_modules/joi": {
- "version": "17.12.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz",
- "integrity": "sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==",
- "dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash.escaperegexp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
- "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
- },
- "node_modules/lodash.groupby": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
- "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw=="
- },
- "node_modules/lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
- },
- "node_modules/lodash.isequal": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
- },
- "node_modules/lodash.isfunction": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
- "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
- },
- "node_modules/lodash.isnil": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz",
- "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng=="
- },
- "node_modules/lodash.isundefined": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz",
- "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA=="
- },
- "node_modules/lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/parse5": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz",
- "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==",
- "dependencies": {
- "entities": "^4.3.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
- "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
- "dependencies": {
- "domhandler": "^5.0.2",
- "parse5": "^7.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "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=="
- },
- "node_modules/rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "node_modules/tunnel": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
- "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
- "engines": {
- "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
- }
- },
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
- "dependencies": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
- "lodash": "^4.17.21",
- "minimist": "^1.2.8",
- "rxjs": "^7.8.1"
- },
- "bin": {
- "wait-on": "bin/wait-on"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- }
- },
- "dependencies": {
- "@actions/core": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz",
- "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==",
- "requires": {
- "@actions/http-client": "^2.0.1",
- "uuid": "^8.3.2"
- }
- },
- "@actions/http-client": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz",
- "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==",
- "requires": {
- "tunnel": "^0.0.6"
- }
- },
- "@fast-csv/format": {
- "version": "4.3.5",
- "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz",
- "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==",
- "requires": {
- "@types/node": "^14.0.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.isboolean": "^3.0.3",
- "lodash.isequal": "^4.5.0",
- "lodash.isfunction": "^3.0.9",
- "lodash.isnil": "^4.0.0"
- }
- },
- "@fast-csv/parse": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz",
- "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==",
- "requires": {
- "@types/node": "^14.0.1",
- "lodash.escaperegexp": "^4.1.2",
- "lodash.groupby": "^4.6.0",
- "lodash.isfunction": "^3.0.9",
- "lodash.isnil": "^4.0.0",
- "lodash.isundefined": "^3.0.1",
- "lodash.uniq": "^4.5.0"
- }
- },
- "@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
- },
- "@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "requires": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "requires": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
- },
- "@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
- },
- "@types/node": {
- "version": "14.18.26",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.26.tgz",
- "integrity": "sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA=="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "axios": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
- "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
- "requires": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
- },
- "cheerio": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
- "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
- "requires": {
- "cheerio-select": "^2.1.0",
- "dom-serializer": "^2.0.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "htmlparser2": "^8.0.1",
- "parse5": "^7.0.0",
- "parse5-htmlparser2-tree-adapter": "^7.0.0"
- }
- },
- "cheerio-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
- "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
- "requires": {
- "boolbase": "^1.0.0",
- "css-select": "^5.1.0",
- "css-what": "^6.1.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1"
- }
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "css-select": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- }
- },
- "css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
- },
- "dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "requires": {
- "domelementtype": "^2.3.0"
- }
- },
- "domutils": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
- "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
- "requires": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.1"
- }
- },
- "entities": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz",
- "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg=="
- },
- "fast-csv": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz",
- "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==",
- "requires": {
- "@fast-csv/format": "4.3.5",
- "@fast-csv/parse": "4.3.6"
- }
- },
- "follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
- },
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "htmlparser2": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
- "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "entities": "^4.3.0"
- }
- },
- "joi": {
- "version": "17.12.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz",
- "integrity": "sha512-2RRziagf555owrm9IRVtdKynOBeITiDpuZqIpgwqXShPncPKNiRQoiGsl/T8SQdq+8ugRzH2LqY67irr2y/d+g==",
- "requires": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "lodash.escaperegexp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
- "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
- },
- "lodash.groupby": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
- "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw=="
- },
- "lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
- },
- "lodash.isequal": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
- },
- "lodash.isfunction": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
- "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
- },
- "lodash.isnil": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz",
- "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng=="
- },
- "lodash.isundefined": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz",
- "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA=="
- },
- "lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
- },
- "moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
- },
- "nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "requires": {
- "boolbase": "^1.0.0"
- }
- },
- "parse5": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz",
- "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==",
- "requires": {
- "entities": "^4.3.0"
- }
- },
- "parse5-htmlparser2-tree-adapter": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
- "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
- "requires": {
- "domhandler": "^5.0.2",
- "parse5": "^7.0.0"
- }
- },
- "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=="
- },
- "rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "requires": {
- "tslib": "^2.1.0"
- }
- },
- "tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "tunnel": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
- "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
- },
- "wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
- "requires": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
- "lodash": "^4.17.21",
- "minimist": "^1.2.8",
- "rxjs": "^7.8.1"
- }
- }
- }
-}
diff --git a/tests/sauce-docs-checker/package.json b/tests/sauce-docs-checker/package.json
deleted file mode 100644
index 525e29a1d2..0000000000
--- a/tests/sauce-docs-checker/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "saucedocs-crawler",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "start": "wait-on http://127.0.0.1:8000 && node index.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/saucelabs/saucedocs-crawler.git"
- },
- "author": "",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/saucelabs/saucedocs-crawler/issues"
- },
- "homepage": "https://github.com/saucelabs/saucedocs-crawler#readme",
- "dependencies": {
- "@actions/core": "^1.7.0",
- "axios": "^1.7.4",
- "cheerio": "^1.0.0-rc.10",
- "fast-csv": "^4.3.6",
- "moment": "^2.29.1",
- "wait-on": "7.2.0"
- }
-}
diff --git a/tests/sauce-docs-checker/test.js b/tests/sauce-docs-checker/test.js
deleted file mode 100644
index f1723c1f78..0000000000
--- a/tests/sauce-docs-checker/test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-let axios = require('axios');
-
-run()
-
-async function run() {
- let url = 'https://wiki.jenkins-ci.org/display/JENKINS/JenkinsBehindProxy'
- let res
- try {
- res = await axios.get(url)
- }
- catch(err) {
- console.log('RESULT',res)
- console.log(err)
- }
-}