diff --git a/.dockerignore b/.dockerignore
index 1970493661..83048638f1 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -3,4 +3,5 @@
.vs/
.vscode/
build/
+docs/
node_modules/
diff --git a/.eslintrc.json b/.eslintrc.json
index 91110e9bb5..6799ceae8e 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,6 +1,7 @@
{
"extends": "./node_modules/gts/",
"rules": {
+ "@typescript-eslint/no-explicit-any": "off",
"prettier/prettier": [
"error",
{
diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
deleted file mode 100644
index b156b86bfb..0000000000
--- a/.github/ISSUE_TEMPLATE/bug-report.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-name: "\U0001F41B Bug report"
-about: Report a bug for this project
-title: ''
-labels: ''
-assignees: ''
-
----
-
-## Expected Behavior
-
-
-
-## Current Behavior
-
-
-
-## Steps to Reproduce
-
-
-
-
-## Environment
-
-- OS:
-
-
-dotenv
-
-```dotenv
-# Place your dotenv within these backticks. Be sure to remove any secrets/passwords.
-```
-
-
-
-## Logs
-
-
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yaml b/.github/ISSUE_TEMPLATE/bug-report.yaml
new file mode 100644
index 0000000000..e99dbb4981
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.yaml
@@ -0,0 +1,54 @@
+name: 🐛 Bug Report
+description: File a bug report
+title: "[Bug]: "
+labels:
+ - 'type: bug'
+body:
+ - type: markdown
+ attributes:
+ value: Thanks for taking the time to fill out this bug report!
+ - type: textarea
+ attributes:
+ label: Expected Behavior
+ description: What did you expect to happen?
+ placeholder: Tell us what you see!
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Current Behavior
+ description: What happened?
+ placeholder: Tell us what you see!
+ validations:
+ required: true
+ - type: dropdown
+ attributes:
+ label: What operating system are you seeing the problem on?
+ multiple: true
+ options:
+ - Linux
+ - Windows
+ - macOS
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Relevant log output
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Configuration
+ description: Please copy and paste your `dotenv`. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+ validations:
+ required: true
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/jef/streetmerchant/blob/main/CODE_OF_CONDUCT.md)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yaml b/.github/ISSUE_TEMPLATE/feature-request.yaml
new file mode 100644
index 0000000000..cae941c962
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.yaml
@@ -0,0 +1,41 @@
+name: 🚀 Feature Request
+description: Formalize a feature request from GitHub Discussions
+title: "[Feature]: "
+labels:
+ - 'type: feature'
+body:
+ - type: textarea
+ attributes:
+ label: Proposed solution
+ description: What is solution to this feature request?
+ placeholder: Solution description.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Objective
+ description: Link to discussion.
+ placeholder: https://github.com/jef/streetmerchant/discussions
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Goals
+ description: What is the purpose of feature request?
+ placeholder: Add all relevant goals.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Non-goals
+ description: What else could be accomplished with this feature request, but is currently out of scope?
+ placeholder: Add all relevant non-goals.
+ validations:
+ required: true
+ - type: textarea
+ attributes:
+ label: Anti-goals
+ description: What could go wrong (side effects) if we implement this feature request?
+ placeholder: Add all relevant anti-goals.
+ validations:
+ required: true
diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
deleted file mode 100644
index 14cf35e599..0000000000
--- a/.github/dependabot.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: 2
-updates:
- - package-ecosystem: "docker"
- directory: "/"
- schedule:
- interval: "daily"
- - package-ecosystem: "github-actions"
- directory: "/"
- schedule:
- interval: "daily"
- - package-ecosystem: "npm"
- directory: "/"
- schedule:
- interval: "daily"
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 803e8672d9..5436818696 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -3,38 +3,29 @@ on:
pull_request:
branches:
- main
- push:
- branches:
- - main
jobs:
- build-lint:
+ build_lint:
name: Build and lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
- name: Setup Node.js
- uses: actions/setup-node@v2
- with:
- node-version: 16.6.1
- - name: Setup build cache
- uses: actions/cache@v2
+ uses: actions/setup-node@v4
with:
- path: ~/.npm
- key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
- restore-keys: ${{ runner.os }}-node-
- - name: Install dependencies
+ node-version: 16.18.0
+ - name: Install Dependencies
run: npm ci
- name: Compile TypeScript
run: npm run compile
- name: Run linter
run: npm run lint
- build-docker:
+ build_docker:
name: Build Docker image
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Run paths filter
uses: dorny/paths-filter@v2
id: filter
diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml
index 8e7bead645..f9a3fb63ad 100644
--- a/.github/workflows/documentation.yaml
+++ b/.github/workflows/documentation.yaml
@@ -4,14 +4,14 @@ on:
branches:
- main
jobs:
- build-deploy:
+ build_deploy:
name: Build and publish documentation
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Setup Python
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v3
with:
python-version: 3.x
- name: Install Python packages
diff --git a/.github/workflows/nightly-release.yaml b/.github/workflows/nightly-release.yaml
index 306bdcdced..a2b5ed5737 100644
--- a/.github/workflows/nightly-release.yaml
+++ b/.github/workflows/nightly-release.yaml
@@ -4,35 +4,41 @@ on:
- cron: '0 0 * * *'
workflow_dispatch: {}
jobs:
- check-date:
- name: Check dates
+ check_code_change:
+ name: Check code change
runs-on: ubuntu-latest
outputs:
- should-run: ${{ steps.code-change.outputs.should-run }}
+ should_run: ${{ steps.code_change.outputs.should_run }}
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Check if code has changed with 24 hours
continue-on-error: true
- id: code-change
+ id: code_change
run: |
- [[ $(git rev-list --after="24 hours" --first-parent HEAD) ]] && echo "::set-output name=should-run::true"
- build-release:
- name: Build and release Docker image
+ if [[ $(git rev-list --after="24 hours" --first-parent HEAD) ]]; then
+ echo "should_run=true" >> $GITHUB_OUTPUT
+ fi
+ build_tag_publish:
+ name: Build, tag and publish Docker image
runs-on: ubuntu-latest
- needs: check-date
- if: needs.check-date.outputs.should-run == 'true'
+ needs: check_code_change
+ if: needs.check_code_change.outputs.should_run == 'true'
steps:
- name: Checkout repository
- uses: actions/checkout@v2
- - name: Login into GitHub Container Registry
- run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- - name: Build Docker image
- run: |
- docker build \
- -t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
- -t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
- - name: Release Docker image
- run: |
- docker push "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}"
- docker push "ghcr.io/${GITHUB_REPOSITORY}:nightly"
+ uses: actions/checkout@v3
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Get short SHA
+ id: short_sha
+ run: echo "short_sha=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
+ - name: Build and push Docker image
+ uses: docker/build-push-action@v3
+ with:
+ context: .
+ push: true
+ tags: "ghcr.io/jef/streetmerchant:nightly,ghcr.io/jef/streetmerchant:${{ steps.short_sha.outputs.short_sha }}"
diff --git a/.github/workflows/pr-lint.yaml b/.github/workflows/pr-lint.yaml
index 0609d4649c..4286ada84d 100644
--- a/.github/workflows/pr-lint.yaml
+++ b/.github/workflows/pr-lint.yaml
@@ -10,9 +10,10 @@ jobs:
lint-pr:
name: Lint pull request title
runs-on: ubuntu-latest
+ permissions:
+ pull-requests: write
steps:
- name: Lint pull request title
uses: jef/conventional-commits-pr-action@v1
with:
- comment: false
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 8655ad6ba4..ad82b3f573 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -4,31 +4,48 @@ on:
branches:
- main
jobs:
- build-tag-release:
- name: Build, tag, and release Docker image
+ release:
+ name: Create release
runs-on: ubuntu-latest
+ outputs:
+ release_created: ${{ steps.release.outputs.release_created }}
+ tag_name: ${{ steps.release.outputs.tag_name }}
+ tag_name_no_v: ${{ steps.normalize_tag.outputs.tag_name_no_v }}
steps:
- name: Checkout repository
- uses: actions/checkout@v2
- - name: Setup release please
- uses: google-github-actions/release-please-action@v2
+ uses: actions/checkout@v3
+ - name: Run release-please
+ uses: google-github-actions/release-please-action@v3
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: node
changelog-path: CHANGELOG.md
package-name: streetmerchant
- - name: Login into GitHub Container Registry
- if: ${{ steps.release.outputs.release_created }}
- run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
- - name: Build Docker image
- if: ${{ steps.release.outputs.release_created }}
+ changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":false},{"type":"ci","section":"Continuous Integration","hidden":false},{"type":"docs","section":"Documentation","hidden":false},{"type":"refactor","section":"Refactoring","hidden":false},{"type":"perf","section":"Performance","hidden":false},{"type":"test","section":"Tests","hidden":false}]'
+ - name: Normalize tag name
+ if: steps.release.outputs.release_created == 'true'
+ id: normalize_tag
run: |
- docker build \
- -t "ghcr.io/${GITHUB_REPOSITORY}:${{ steps.release.outputs.tag_name }}" \
- -t "ghcr.io/${GITHUB_REPOSITORY}:latest" .
- - name: Release Docker image
- if: ${{ steps.release.outputs.release_created }}
- run: |
- docker push "ghcr.io/${GITHUB_REPOSITORY}:${{ steps.release.outputs.tag_name }}"
- docker push "ghcr.io/${GITHUB_REPOSITORY}:latest"
+ tag=${{ steps.release.outputs.tag_name }}
+ echo "tag_name_no_v=${tag#v}" >> "$GITHUB_OUTPUT"
+ build_tag_publish:
+ name: Build, tag, and publish
+ runs-on: ubuntu-latest
+ needs: release
+ if: needs.release.outputs.release_created == 'true'
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Build and push Docker image
+ uses: docker/build-push-action@v3
+ with:
+ context: .
+ push: true
+ tags: "ghcr.io/jef/streetmerchant:latest,ghcr.io/jef/streetmerchant:${{ needs.release.outputs.tag_name_no_v }}"
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
index e33ec19eb3..e43d9c3f57 100644
--- a/.github/workflows/stale.yaml
+++ b/.github/workflows/stale.yaml
@@ -23,6 +23,6 @@ jobs:
stale-pr-message: ${{ env.STALE_MESSAGE }}
env:
CLOSE_MESSAGE: 'This issue has been closed because it is stale. Reopen if necessary.'
- EXEMPT_LABEL: 'priority: low,priority: normal, priority: high,status: help wanted,status: in progress,status: needs triage'
+ EXEMPT_LABEL: 'priority: low,priority: normal,priority: high,status: help wanted,status: in progress,status: needs triage'
STALE_LABEL: 'status: stale'
STALE_MESSAGE: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 10 days'
diff --git a/.gitignore b/.gitignore
index 3829afeae4..5adeacf962 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ node_modules/
dotenv
*.proxies
success-*.png
+screenshots/
*.wav
*.mp3
diff --git a/.node-version b/.node-version
index d9216d9a90..94f5f26dcb 100644
--- a/.node-version
+++ b/.node-version
@@ -1 +1 @@
-16.6.1
+16.18.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fee04d3136..063a0e42e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,338 @@
# Changelog
+## [3.11.0](https://github.com/jef/streetmerchant/compare/v3.10.0...v3.11.0) (2025-01-30)
+
+
+### Features
+
+* add docs, add env vars, add country code, deprecate twitch, linting ([#3198](https://github.com/jef/streetmerchant/issues/3198)) ([c2ed997](https://github.com/jef/streetmerchant/commit/c2ed99705f6139a6ceb31e8113277e128f7d5e34))
+* add MSI US storefront ([#3199](https://github.com/jef/streetmerchant/issues/3199)) ([c596c20](https://github.com/jef/streetmerchant/commit/c596c206f13d05d1afdd1228775e3c9e283acd47))
+
+
+### Documentation
+
+* add 5000 series to filter.md ([4eb678a](https://github.com/jef/streetmerchant/commit/4eb678aeb318707a5b4a6013a1e8b85e037b9fe2))
+
+## [3.10.0](https://github.com/jef/streetmerchant/compare/v3.9.0...v3.10.0) (2025-01-29)
+
+
+### Features
+
+* add 50xx series ([#3190](https://github.com/jef/streetmerchant/issues/3190)) ([db07796](https://github.com/jef/streetmerchant/commit/db07796ef99cc55c7ccdc67df0884b26e361c440))
+* add 50xx series discord notification groups ([#3193](https://github.com/jef/streetmerchant/issues/3193)) ([f59d3fc](https://github.com/jef/streetmerchant/commit/f59d3fcbb0b40e0db4e0da9e8b3c60c7d7c114a4))
+* add more 50xx series, add templates for adding more links ([#3191](https://github.com/jef/streetmerchant/issues/3191)) ([ce6d084](https://github.com/jef/streetmerchant/commit/ce6d08490c11fbffaeb932ddc0c6f9262d079c4d))
+* add new microcenters locations, more 4090 GPUs, fixed incorrect URLs ([#3181](https://github.com/jef/streetmerchant/issues/3181)) ([218b0c3](https://github.com/jef/streetmerchant/commit/218b0c30757aaaa5ddc922f32e330457c0a82318))
+* add NTFY.SH agent ([#3195](https://github.com/jef/streetmerchant/issues/3195)) ([e18f231](https://github.com/jef/streetmerchant/commit/e18f2316bdc43c06c164e77019d68fd614afdc89))
+
+
+### Miscellaneous
+
+* update bestbuy selectors ([#3186](https://github.com/jef/streetmerchant/issues/3186)) ([810cefc](https://github.com/jef/streetmerchant/commit/810cefcd56129448d485127064478b985acb992b))
+
+
+### Continuous Integration
+
+* update pr linter ([25d556c](https://github.com/jef/streetmerchant/commit/25d556c736a90b64f4312e4a4332dbc922b71f66))
+
+
+### Documentation
+
+* remove badges ([4388e9a](https://github.com/jef/streetmerchant/commit/4388e9a5e0cb1d1e544b5614fdba37efc2475d52))
+
+## [3.9.0](https://github.com/jef/streetmerchant/compare/v3.8.3...v3.9.0) (2023-05-15)
+
+
+### Features
+
+* add support for 4080 and more 4090 stores ([#3104](https://github.com/jef/streetmerchant/issues/3104)) ([d8915cf](https://github.com/jef/streetmerchant/commit/d8915cf3579c29d0b48fa2ec247f460b0b462e13))
+
+
+### Bug Fixes
+
+* update Target's url for PS5 Console ([#3098](https://github.com/jef/streetmerchant/issues/3098)) ([5eb7c12](https://github.com/jef/streetmerchant/commit/5eb7c126300a3d86cdafc0b73f3765fffcfdcf2d))
+
+
+### Documentation
+
+* fix badge ([bb01bed](https://github.com/jef/streetmerchant/commit/bb01bedb037d4230c85a7fe59ce40ef7e29ea5a1))
+* use main branch for badge ([8dab4bb](https://github.com/jef/streetmerchant/commit/8dab4bb1e3441493a809c603b078c69777fbd8ff))
+
+
+### Miscellaneous
+
+* remove dependabot ([850f5c8](https://github.com/jef/streetmerchant/commit/850f5c8af74efb06a93f4065b83bc71e81fa8306))
+
+## [3.8.3](https://github.com/jef/streetmerchant/compare/v3.8.2...v3.8.3) (2022-11-28)
+
+
+### Continuous Integration
+
+* give tag an output ([36771fd](https://github.com/jef/streetmerchant/commit/36771fd55539c17b7fb589b2e5811644e62916fa))
+
+
+### Miscellaneous
+
+* **docker:** remove erroneous extra copy ([9225582](https://github.com/jef/streetmerchant/commit/922558262b664da1e8f7a69a156582345f35a291))
+* ignore docs and add web to Dockerfile ([95f112c](https://github.com/jef/streetmerchant/commit/95f112c500168b389db5da5544f2d105518835ce))
+
+## [3.8.2](https://github.com/jef/streetmerchant/compare/v3.8.1...v3.8.2) (2022-11-28)
+
+
+### Continuous Integration
+
+* quote tags ([9ce7dac](https://github.com/jef/streetmerchant/commit/9ce7dac951552d239c83e56bebadbfa22ae02110))
+
+## [3.8.1](https://github.com/jef/streetmerchant/compare/v3.8.0...v3.8.1) (2022-11-28)
+
+
+### Continuous Integration
+
+* fix tags ([e67a383](https://github.com/jef/streetmerchant/commit/e67a3838e195b0e6c3039546f6e48d30e291fd6a))
+* revert username ([2d702b3](https://github.com/jef/streetmerchant/commit/2d702b32b4ea370d27071f4ffa833c3c0ac8cc88))
+
+## [3.8.0](https://github.com/jef/streetmerchant/compare/v3.7.1...v3.8.0) (2022-11-28)
+
+
+### Features
+
+* add support for 4090 series (US - b&h/newegg/bestbuy) ([#3085](https://github.com/jef/streetmerchant/issues/3085)) ([0c84075](https://github.com/jef/streetmerchant/commit/0c840753911248d53ac272300c085940ca2c0ac9))
+* **unifi:** adds protect products ([#3082](https://github.com/jef/streetmerchant/issues/3082)) ([fa7c423](https://github.com/jef/streetmerchant/commit/fa7c4232f440f13e9fd75d06a0a2c7806350f340))
+
+
+### Documentation
+
+* change 3090 to 4090 ([dccaa52](https://github.com/jef/streetmerchant/commit/dccaa52ce99125740fcfdf3c9a71bdf261574097))
+* update badges ([82cafc4](https://github.com/jef/streetmerchant/commit/82cafc4135bb94abddfb8677703a9306010e0db3))
+
+
+### Continuous Integration
+
+* fix cache ([e1b4320](https://github.com/jef/streetmerchant/commit/e1b43206fcf037c140e507bb4d08c72248d76dcc))
+* replace runs with run ([9ec2018](https://github.com/jef/streetmerchant/commit/9ec2018d58438897cb7ed01157433536171754ae))
+* use github actor ([cf83753](https://github.com/jef/streetmerchant/commit/cf83753853344a328379f0b3f101a26957254096))
+* use github token ([27dc9d2](https://github.com/jef/streetmerchant/commit/27dc9d220ccc9ea98976ec271c526d72c8724b9a))
+* use single quotes ([bfc5bfd](https://github.com/jef/streetmerchant/commit/bfc5bfd29f0034e99a7d2f006cd480401c0cfd35))
+
+## [3.7.1](https://github.com/jef/streetmerchant/compare/v3.7.0...v3.7.1) (2022-10-21)
+
+
+### Continuous Integration
+
+* checkout when publish ([a5c0ed8](https://github.com/jef/streetmerchant/commit/a5c0ed8d9f22169649d700c1d7d02b18cdf658d6))
+
+## [3.7.0](https://github.com/jef/streetmerchant/compare/v3.6.0...v3.7.0) (2022-10-21)
+
+
+### Features
+
+* **ci:** start using PAT ([207c760](https://github.com/jef/streetmerchant/commit/207c7605eff2a812b7488dc701d164fd2f65c1f1))
+
+
+### Bug Fixes
+
+* **ci:** update release ([4c1f23e](https://github.com/jef/streetmerchant/commit/4c1f23e68ec1d63ed9dd17c28f83444e3bb14e6f))
+
+
+### Continuous Integration
+
+* remove fetch-depth ([c21d412](https://github.com/jef/streetmerchant/commit/c21d412ed5959bd7a0a56a6dcf624ff9e6c2dac8))
+* update changelog-types ([0a8334a](https://github.com/jef/streetmerchant/commit/0a8334aa440e3e6acfbb9cfe392c72af36a391bf))
+* update naming ([5d3ca2e](https://github.com/jef/streetmerchant/commit/5d3ca2ead9e93384436948b9ef60d377b2bccf34))
+
+## [3.6.0](https://github.com/jef/streetmerchant/compare/v3.5.0...v3.6.0) (2022-10-21)
+
+
+### Features
+
+* add 3080ti ([#2598](https://github.com/jef/streetmerchant/issues/2598)) ([4cfbd37](https://github.com/jef/streetmerchant/commit/4cfbd37ae0d28d1c2b8cf596b5dcb941daa7d9bc))
+* add 3080ti ([#2600](https://github.com/jef/streetmerchant/issues/2600)) ([51c9b3a](https://github.com/jef/streetmerchant/commit/51c9b3ab2ac251c9c3abebf64025e1a03ecf4944))
+* add a few stores for spain ([#2646](https://github.com/jef/streetmerchant/issues/2646)) ([0b060e8](https://github.com/jef/streetmerchant/commit/0b060e8f6aca1793d04474210aeec98212172014))
+* add alternate-fr, 3070ti, change alternate to alternate.de ([#2653](https://github.com/jef/streetmerchant/issues/2653)) ([8c7b8aa](https://github.com/jef/streetmerchant/commit/8c7b8aabe4633757dea836b7d11af2a407869e90))
+* add INCOGNITO to dotenv-example and volta support ([#2484](https://github.com/jef/streetmerchant/issues/2484)) ([b579052](https://github.com/jef/streetmerchant/commit/b57905291df85ee2f722e5e3a81d1cecd0ab6ee4))
+* add interactive captcha handler with Slack and Discord ([#2385](https://github.com/jef/streetmerchant/issues/2385)) ([409769e](https://github.com/jef/streetmerchant/commit/409769e6dbd3add614fcd985731bb244297a2c2d))
+* add ldlc-italy and fixes ollo/hardware-planet ([#2903](https://github.com/jef/streetmerchant/issues/2903)) ([d4f4076](https://github.com/jef/streetmerchant/commit/d4f4076af84a960575dd9beb672e6ad5d63b2de2)), closes [#2867](https://github.com/jef/streetmerchant/issues/2867)
+* add SCREENSHOT_DIR config option ([#2801](https://github.com/jef/streetmerchant/issues/2801)) ([fe99aa4](https://github.com/jef/streetmerchant/commit/fe99aa476ccfdb73b29c45beaaa972ac419a39b4))
+* add ubiquiti store and dream machine model. ([#3034](https://github.com/jef/streetmerchant/issues/3034)) ([87301fe](https://github.com/jef/streetmerchant/commit/87301fefb7fef7710d52163132546c7c0830e8df))
+* add waitUntil and waitForSelctor to linksBuilder ([#2437](https://github.com/jef/streetmerchant/issues/2437)) ([cac7c20](https://github.com/jef/streetmerchant/commit/cac7c20193caaec5d41291104e66aa01a65adceb))
+* **captcha:** add support for configurable capture type ([#2468](https://github.com/jef/streetmerchant/issues/2468)) ([6e614a2](https://github.com/jef/streetmerchant/commit/6e614a24918f38d189a3d3b70174fbd1590f78cc))
+* change max price behavior ([9b02c36](https://github.com/jef/streetmerchant/commit/9b02c36370aaf7fef20a90b2427273c2f7b30f00))
+* color empty stores ([#2312](https://github.com/jef/streetmerchant/issues/2312)) ([bbfa808](https://github.com/jef/streetmerchant/commit/bbfa808b820ee2d16c65dfdcecce58645f4899d0))
+* **coolmod:** add linksBuilder and update selectors ([#2803](https://github.com/jef/streetmerchant/issues/2803)) ([f297e1d](https://github.com/jef/streetmerchant/commit/f297e1d7d3d03ab57e2e5c4dcf150f0d44ed750d))
+* **equippr:** add links builder ([#2795](https://github.com/jef/streetmerchant/issues/2795)) ([e631d80](https://github.com/jef/streetmerchant/commit/e631d805fcc07f057b6ad3204497446fd6377223))
+* **gotify:** add priority option ([#2546](https://github.com/jef/streetmerchant/issues/2546)) ([32fe440](https://github.com/jef/streetmerchant/commit/32fe440049ce97c5683ca03276212899b2211af5))
+* **notification:** add gotify ([8f2de5d](https://github.com/jef/streetmerchant/commit/8f2de5dc68667f6b9f0033bed129fd6cdbd9d8a7)), closes [#2541](https://github.com/jef/streetmerchant/issues/2541) [#2536](https://github.com/jef/streetmerchant/issues/2536)
+* **notification:** add support for Free mobile ([#2285](https://github.com/jef/streetmerchant/issues/2285)) ([6be2e0d](https://github.com/jef/streetmerchant/commit/6be2e0d491646d6e88f72f67c694874b11cda03a))
+* **notifications:** add apple push notifications ([#2077](https://github.com/jef/streetmerchant/issues/2077)) ([6b78b2e](https://github.com/jef/streetmerchant/commit/6b78b2ee4445ad2b868b6f848730a474ca12d657))
+* **pushover:** ability to specify device ([#2101](https://github.com/jef/streetmerchant/issues/2101)) ([d03aea0](https://github.com/jef/streetmerchant/commit/d03aea05a7783c9cc6a18c8baf0381050c105357))
+* **pushover:** add support for sound ([#2203](https://github.com/jef/streetmerchant/issues/2203)) ([83ce922](https://github.com/jef/streetmerchant/commit/83ce922761f85a13424ed43a1961668ffc870485))
+* **redis:** introduce pub/sub ([#2855](https://github.com/jef/streetmerchant/issues/2855)) ([d6d8ef2](https://github.com/jef/streetmerchant/commit/d6d8ef2171e1a2f52218c7ab84a463d916e27d25))
+* **series:** support for rx6700xt ([#2290](https://github.com/jef/streetmerchant/issues/2290)) ([113c9ce](https://github.com/jef/streetmerchant/commit/113c9ce19f3ed1f140eec7cd555ec373f25d256f))
+* **store:** add 3050 in topachat and materiel ([#2945](https://github.com/jef/streetmerchant/issues/2945)) ([fc0c3da](https://github.com/jef/streetmerchant/commit/fc0c3da6fba105c521c102b1a071adefd364bc4c))
+* **store:** add amd-at ([#2462](https://github.com/jef/streetmerchant/issues/2462)) ([441617f](https://github.com/jef/streetmerchant/commit/441617f6729ab61174f7bcfe287c41a34a78728f))
+* **store:** add amd-be store ([#2338](https://github.com/jef/streetmerchant/issues/2338)) ([6e9b1a9](https://github.com/jef/streetmerchant/commit/6e9b1a9640ca93f620623d53624230514fac6d40))
+* **store:** add amd-nl store ([#2072](https://github.com/jef/streetmerchant/issues/2072)) ([49c9e8c](https://github.com/jef/streetmerchant/commit/49c9e8c0dc5c3b25ce2aa20265ccd2865f229385))
+* **store:** Add AO and BT (UK) ([#2089](https://github.com/jef/streetmerchant/issues/2089)) ([1714e89](https://github.com/jef/streetmerchant/commit/1714e89af7964d06b01120fb75595ef8ec8177ba))
+* **store:** add cyberport-at ([#2463](https://github.com/jef/streetmerchant/issues/2463)) ([5a744b1](https://github.com/jef/streetmerchant/commit/5a744b1add24dd4d3c250f41382a034212d9c5b0))
+* **store:** add materiel.net (french), 35 3060ti references ([#2287](https://github.com/jef/streetmerchant/issues/2287)) ([0ebe745](https://github.com/jef/streetmerchant/commit/0ebe7451e4e4c6e46c64e3782bd51a92ce594dca))
+* **store:** add mediamarkt austria ([#1836](https://github.com/jef/streetmerchant/issues/1836)) ([ae8e72a](https://github.com/jef/streetmerchant/commit/ae8e72a73044b8311add15d2b5c10936bae16e82))
+* **store:** add Microsoft (CA) for Xbox X/S ([#2764](https://github.com/jef/streetmerchant/issues/2764)) ([ca784c8](https://github.com/jef/streetmerchant/commit/ca784c897845609afaa6c7efbc8024cb039229db))
+* **store:** add Microsoft for Xbox S/X ([#2738](https://github.com/jef/streetmerchant/issues/2738)) ([d06d050](https://github.com/jef/streetmerchant/commit/d06d050613cfc7e0710e14717dadbb6784552bef))
+* **store:** add MightyApe, NoelLeeming and TheWarehouse (NZ) ([#2133](https://github.com/jef/streetmerchant/issues/2133)) ([e2d8040](https://github.com/jef/streetmerchant/commit/e2d804027a3ec6a19201ef9ce35dcb4c4dee7025))
+* **store:** add multicom.no and more products to NO stores ([#2483](https://github.com/jef/streetmerchant/issues/2483)) ([41305f1](https://github.com/jef/streetmerchant/commit/41305f1ed5a81240ba7aa0dda1619d635d917371))
+* **stores-nz:** update labels ([#2486](https://github.com/jef/streetmerchant/issues/2486)) ([c0f46d7](https://github.com/jef/streetmerchant/commit/c0f46d77cf9d4a3f7481aec5b0ddf33883b47d6e))
+* use new nightly release build ([51118ba](https://github.com/jef/streetmerchant/commit/51118babd7e86d07ad4c7319a51e9a20c1a24a56))
+* **web:** add select all/none for columns & black theme ([#2878](https://github.com/jef/streetmerchant/issues/2878)) ([2ff7f58](https://github.com/jef/streetmerchant/commit/2ff7f58691c9233dbfcd49eee6b3cafb800c8539))
+
+
+### Bug Fixes
+
+* add missing tests in Dockerfile ([#2323](https://github.com/jef/streetmerchant/issues/2323)) ([cd6e1f6](https://github.com/jef/streetmerchant/commit/cd6e1f614bcaf00bc468c32a1b5a98cb51c7730f))
+* **alternate:** use button selector instead of text ([#2419](https://github.com/jef/streetmerchant/issues/2419)) ([35f9eb4](https://github.com/jef/streetmerchant/commit/35f9eb43b6cca8a92f60ba2870e60a225b4c1da6))
+* amazon prices ([#2914](https://github.com/jef/streetmerchant/issues/2914)) ([f7236b3](https://github.com/jef/streetmerchant/commit/f7236b3eaa4a021ac1ba9a87067f4bfa543b17d6)), closes [#2926](https://github.com/jef/streetmerchant/issues/2926)
+* **amazon-es:** use euroFormat ([#2371](https://github.com/jef/streetmerchant/issues/2371)) ([4eb702b](https://github.com/jef/streetmerchant/commit/4eb702b9a1187c8dcf159ea991ab1049c3c44bb2))
+* **amazon-eu:** checking price selector ([#2856](https://github.com/jef/streetmerchant/issues/2856)) ([19afe41](https://github.com/jef/streetmerchant/commit/19afe4197245b867b59f87f830ac08529924e6ea))
+* **amazon:** false positives for xbox ([#2497](https://github.com/jef/streetmerchant/issues/2497)) ([790fe9b](https://github.com/jef/streetmerchant/commit/790fe9b6cf4f9627e7f3dc7acc572737a739e4cc))
+* **apns:** use when specified ([99a274d](https://github.com/jef/streetmerchant/commit/99a274dbea088a6bcb053b1c1bf7812d0796442a))
+* **bestbuy-ca:** avoid false positive ([#2694](https://github.com/jef/streetmerchant/issues/2694)) ([0c589a7](https://github.com/jef/streetmerchant/commit/0c589a71f259c80ff21a4bb623f9316cb7702a61))
+* **captcha:** use Slack captcha handler token when provided ([#2460](https://github.com/jef/streetmerchant/issues/2460)) ([164902a](https://github.com/jef/streetmerchant/commit/164902a587d80f0421b44079e0616ba37a7a743f)), closes [#2428](https://github.com/jef/streetmerchant/issues/2428)
+* clear cookies when rotating proxies ([#2575](https://github.com/jef/streetmerchant/issues/2575)) ([8854ce9](https://github.com/jef/streetmerchant/commit/8854ce97bba7858dfc9385530e0c090200944ede))
+* **discord:** add Discord.ClientOptions ([#2714](https://github.com/jef/streetmerchant/issues/2714)) ([3787c54](https://github.com/jef/streetmerchant/commit/3787c543964489fe5893ca6e6f4ac17593f310d5))
+* **discord:** properly wait for webhooks ([#2352](https://github.com/jef/streetmerchant/issues/2352)) ([bc59da1](https://github.com/jef/streetmerchant/commit/bc59da11d512f6f55449781cb8f7f4bd1d3e7e57))
+* **docker:** disable opening browser ([d13f7f1](https://github.com/jef/streetmerchant/commit/d13f7f1ff91ada223e8ce7eb50d9a80030cbe668))
+* **lookup:** prevent terminal from being hidden ([#2461](https://github.com/jef/streetmerchant/issues/2461)) ([39fac90](https://github.com/jef/streetmerchant/commit/39fac90ba4feadb7e5c681db60e60a83749f5e62))
+* **microcenter:** add outOfStock label ([#2432](https://github.com/jef/streetmerchant/issues/2432)) ([092919a](https://github.com/jef/streetmerchant/commit/092919ab349edac6a8b5b4747917a1a232235da7)), closes [#2407](https://github.com/jef/streetmerchant/issues/2407)
+* **nodemon:** use npx with ts-node ([#2423](https://github.com/jef/streetmerchant/issues/2423)) ([b6ac6c5](https://github.com/jef/streetmerchant/commit/b6ac6c53ddc34ac35b537dd99415bbcb9eec0de7))
+* parsing prices with thousands separator and European format ([#2153](https://github.com/jef/streetmerchant/issues/2153)) ([61f8e3a](https://github.com/jef/streetmerchant/commit/61f8e3a9a03136682035881fce6d14356717d1ac))
+* partial url regexp ([#2382](https://github.com/jef/streetmerchant/issues/2382)) ([61af2a4](https://github.com/jef/streetmerchant/commit/61af2a4325733463c918396868d313b7632bb310))
+* **playstation:** fix inStock selector ([#2187](https://github.com/jef/streetmerchant/issues/2187)) ([b0efc83](https://github.com/jef/streetmerchant/commit/b0efc837bc554f5c8635e125b67775d8b1f8f6b3))
+* **puppeteer:** cannot read property ([#2987](https://github.com/jef/streetmerchant/issues/2987)) ([04fbdc1](https://github.com/jef/streetmerchant/commit/04fbdc1b9a16532fdd2fb6e681191ae6ca7ddd89))
+* remove spaces from price ([#2482](https://github.com/jef/streetmerchant/issues/2482)) ([eb76f0d](https://github.com/jef/streetmerchant/commit/eb76f0d2b78726c4380853bd47edcf9b1302e7bb))
+* **terraform:** update IAM configuration for ECS deployment ([#2675](https://github.com/jef/streetmerchant/issues/2675)) ([9c346e7](https://github.com/jef/streetmerchant/commit/9c346e70fac17854d347dfbdbc238bfb0056c6a8))
+* **web:** add favicon to prevent missing icon console error ([#2375](https://github.com/jef/streetmerchant/issues/2375)) ([2be33ac](https://github.com/jef/streetmerchant/commit/2be33ac6147f8f7460d108f361d954b17a335bd9))
+* **xbox:** false positive ([#2726](https://github.com/jef/streetmerchant/issues/2726)) ([e5e8481](https://github.com/jef/streetmerchant/commit/e5e84814379c0d777188b6e321edbe0b780ab3fd))
+
+
+### Refactoring
+
+* **captcha:** use seconds instead of ms ([#2424](https://github.com/jef/streetmerchant/issues/2424)) ([d652b49](https://github.com/jef/streetmerchant/commit/d652b4936435377d36268141a2b63c8798f7f95b))
+* **freemobile:** remove local throw ([bf8f242](https://github.com/jef/streetmerchant/commit/bf8f242f4b33796fcee91a863f0e086fcec29537))
+* **materiel:** update docs, change name ([7ec8a16](https://github.com/jef/streetmerchant/commit/7ec8a160cf9844df34578fe9f413b88d6141178c))
+* simplify maxPrice logic ([a25b7f1](https://github.com/jef/streetmerchant/commit/a25b7f19cc8e403ffd7856e631cde7e9df63f1cc))
+* **store:** replace euroFormat with regex ([#2131](https://github.com/jef/streetmerchant/issues/2131)) ([795c723](https://github.com/jef/streetmerchant/commit/795c7230ad4632c81b17f5c2aeb3b0e88b2b04e3))
+
+
+### Documentation
+
+* add better heroku documentation ([#2942](https://github.com/jef/streetmerchant/issues/2942)) ([f344615](https://github.com/jef/streetmerchant/commit/f344615c34254f9da937cffb84d95bb7fce4c0ee))
+* fix sort-able tables ([08789a7](https://github.com/jef/streetmerchant/commit/08789a70c4b9e76000f881edda35acd07bdd60b9))
+* make templates required ([00b468a](https://github.com/jef/streetmerchant/commit/00b468a73832b959e0c6ac1ed67b0b23856db76b))
+* remove twitter ([d19d05c](https://github.com/jef/streetmerchant/commit/d19d05c2e5d4e6e20085116177e4320f74ddfe54))
+* remove twitter ([1aa0224](https://github.com/jef/streetmerchant/commit/1aa0224da0718a8058996511f73c672938a231fb))
+* toggle light/dark mode ([1e76d5a](https://github.com/jef/streetmerchant/commit/1e76d5a270e7fb678ccea3649b38f323b346d702))
+* update badges ([c2c8531](https://github.com/jef/streetmerchant/commit/c2c8531ea26e2b75f50ed384f5128e5df54053e9))
+* update edit_uri location ([af603c2](https://github.com/jef/streetmerchant/commit/af603c20aed49e01fc6923b1be1759a74575c12f))
+* update incorrect store description for alternate-de ([#2765](https://github.com/jef/streetmerchant/issues/2765)) ([28ce7e9](https://github.com/jef/streetmerchant/commit/28ce7e995b6ea521f03ed5845387aa3858a34f72))
+* update issue templates ([74d71e4](https://github.com/jef/streetmerchant/commit/74d71e457956743566796404458bd1d5d84598db))
+* update issue templates ([9aa3f16](https://github.com/jef/streetmerchant/commit/9aa3f164a59cd521701f55bfe4a54872b1c5fc4d))
+* update issue templates ([7171113](https://github.com/jef/streetmerchant/commit/71711131ff4c57abe3016e543b7d0ce994e0ecd0))
+* update node references ([f65aab8](https://github.com/jef/streetmerchant/commit/f65aab87dade27c9f271ca816f83fe5a57ff7da6))
+* update Xbox Series S and X price limit desc ([#2098](https://github.com/jef/streetmerchant/issues/2098)) ([ba35706](https://github.com/jef/streetmerchant/commit/ba35706cca84a425da8d5a5bd6b86dbecbadffa1))
+* use node lts ([2a482e3](https://github.com/jef/streetmerchant/commit/2a482e3dfaaeaa2f285b98d32d67d44bdd4ef6f4)), closes [#2776](https://github.com/jef/streetmerchant/issues/2776)
+
+
+### Miscellaneous
+
+* add APNS to dotenv-example ([#2174](https://github.com/jef/streetmerchant/issues/2174)) ([4bd048f](https://github.com/jef/streetmerchant/commit/4bd048ff7a496e82e66293a9706581b8d10af6b3))
+* add links to RX 6700 XT in German stores ([#2736](https://github.com/jef/streetmerchant/issues/2736)) ([430ec73](https://github.com/jef/streetmerchant/commit/430ec73ecd7e37477b0088f247a3e9bf72c82586))
+* **alternate-de:** add gpus ([#2797](https://github.com/jef/streetmerchant/issues/2797)) ([a6d7447](https://github.com/jef/streetmerchant/commit/a6d74472f3dec9cc50e8a3a507801301c67aa5cd))
+* **alternate:** add new oos label ([#2409](https://github.com/jef/streetmerchant/issues/2409)) ([5937d01](https://github.com/jef/streetmerchant/commit/5937d0141d1c34fdb90475bffbbe32a2977c789b))
+* **alternate:** add PS5 bundle ([#2562](https://github.com/jef/streetmerchant/issues/2562)) ([1122075](https://github.com/jef/streetmerchant/commit/11220750143df7ebdc011aafccb8e035bfd2bc5d))
+* **alternate:** update links and selectors ([#2282](https://github.com/jef/streetmerchant/issues/2282)) ([ea095a3](https://github.com/jef/streetmerchant/commit/ea095a364c250f805704c1189c0f3e697e09673d))
+* **amazon-fr:** update evga 3080 ftw3 link ([#2286](https://github.com/jef/streetmerchant/issues/2286)) ([5b2fe88](https://github.com/jef/streetmerchant/commit/5b2fe88a83f17ff98ebe5c91806c7eb5c1dc3bdc))
+* **amazon-uk:** add 3060 cards ([#2229](https://github.com/jef/streetmerchant/issues/2229)) ([983cc52](https://github.com/jef/streetmerchant/commit/983cc525164744e4d3bff1475d12b5563d23200e))
+* **amd:** add rx6800xt midnight black ([#2321](https://github.com/jef/streetmerchant/issues/2321)) ([c7e24e7](https://github.com/jef/streetmerchant/commit/c7e24e77d415819d27043d5814b2133b46549e57))
+* **amd:** update rx6900xt urls ([#2094](https://github.com/jef/streetmerchant/issues/2094)) ([7fcce58](https://github.com/jef/streetmerchant/commit/7fcce586bf03a573a1bba143c7d56e046418d31f))
+* **amd:** update rx6900xt urls ([#2876](https://github.com/jef/streetmerchant/issues/2876)) ([88ec46e](https://github.com/jef/streetmerchant/commit/88ec46e2f8e3aa0ccc4af3ecddf2311c31c0509c))
+* **asus:** update urls ([#2155](https://github.com/jef/streetmerchant/issues/2155)) ([245d110](https://github.com/jef/streetmerchant/commit/245d110d0a52df8b2d05f020aaaa1bfa8be7cab4))
+* **bestbuy:** add 3080ti models ([#2670](https://github.com/jef/streetmerchant/issues/2670)) ([cc0aaec](https://github.com/jef/streetmerchant/commit/cc0aaeca77dd18a2c9797055f26edf6935fa755b))
+* bump dependencies ([10f7e0c](https://github.com/jef/streetmerchant/commit/10f7e0cf5d8f633aa0195a1f9403965b4347e017))
+* bump dependencies ([#2413](https://github.com/jef/streetmerchant/issues/2413)) ([3c00eca](https://github.com/jef/streetmerchant/commit/3c00eca22378afb2a18aa76c1d4204107e6364c2))
+* bump node 16.5.0 ([4e3eade](https://github.com/jef/streetmerchant/commit/4e3eadea083071eba563dffc70d749db334dce69))
+* bump node version ([9ba964a](https://github.com/jef/streetmerchant/commit/9ba964a587158b551d7217764eb9799073aea21f))
+* bump node, implement proper ci cache ([9b0b4d1](https://github.com/jef/streetmerchant/commit/9b0b4d19dc99cfc06595bed26ec6232197e56e11))
+* bump stale workflow to 60 days ([3c1419f](https://github.com/jef/streetmerchant/commit/3c1419f170b1d00aa6ad08ad89752fc8f9134a93))
+* change url ([2af1531](https://github.com/jef/streetmerchant/commit/2af153192c2cf3ac2bf9ba0d1d3201f250363c9b))
+* change verbiage to be more generic ([e006c48](https://github.com/jef/streetmerchant/commit/e006c48795b8fa104f0cee5584517a5f164d6512))
+* **computeruniverse:** add backoff code ([#2542](https://github.com/jef/streetmerchant/issues/2542)) ([42a24a6](https://github.com/jef/streetmerchant/commit/42a24a633c537941d63a6b76ed9598179dda9ea4))
+* **coolblue:** add ps5 consoles ([#2597](https://github.com/jef/streetmerchant/issues/2597)) ([4bb58ac](https://github.com/jef/streetmerchant/commit/4bb58ac26192354ccbcd0c416aba78df2234cf19))
+* **currys:** add rx6800, rx6800xt and rx6900xt ([#2236](https://github.com/jef/streetmerchant/issues/2236)) ([211e3e2](https://github.com/jef/streetmerchant/commit/211e3e2692c1c97f607b39b73623a09958c69d81))
+* **deps-dev:** bump @types/cheerio from 0.22.28 to 0.22.29 ([#2580](https://github.com/jef/streetmerchant/issues/2580)) ([e4ebdc4](https://github.com/jef/streetmerchant/commit/e4ebdc4719afdf390f7060bbc755229dcaba1410))
+* **deps-dev:** bump @types/node from 14.14.35 to 14.14.36 ([#2233](https://github.com/jef/streetmerchant/issues/2233)) ([a7a5e69](https://github.com/jef/streetmerchant/commit/a7a5e6954b3568b40d360982d5f11287c1b7f440))
+* **deps-dev:** bump @types/node from 15.3.0 to 15.6.1 ([#2571](https://github.com/jef/streetmerchant/issues/2571)) ([3e74a4c](https://github.com/jef/streetmerchant/commit/3e74a4c7c41c939b9ce0952e089f36269f3fb46f))
+* **deps-dev:** bump @types/nodemailer from 6.4.1 to 6.4.2 ([#2582](https://github.com/jef/streetmerchant/issues/2582)) ([1cb1787](https://github.com/jef/streetmerchant/commit/1cb1787c27b2e7e37e3e989be686b635f98442e9))
+* **deps-dev:** bump @types/sinon from 9.0.10 to 9.0.11 ([#2166](https://github.com/jef/streetmerchant/issues/2166)) ([4cdda98](https://github.com/jef/streetmerchant/commit/4cdda9890cb30443826e6df02b99d41dbbea026d))
+* **deps-dev:** bump mocha from 8.3.0 to 8.3.2 ([#2167](https://github.com/jef/streetmerchant/issues/2167)) ([a575143](https://github.com/jef/streetmerchant/commit/a575143b244525ff87579b689ed90bf6ae251847))
+* **deps-dev:** bump typescript from 4.2.2 to 4.2.3 ([#2092](https://github.com/jef/streetmerchant/issues/2092)) ([b516e26](https://github.com/jef/streetmerchant/commit/b516e268428219de70358821683e2dd74df59943))
+* **deps-dev:** bump webpack from 5.24.2 to 5.26.3 ([#2164](https://github.com/jef/streetmerchant/issues/2164)) ([2775124](https://github.com/jef/streetmerchant/commit/2775124d80f86466dbc0c3bcb227f489f35aab62))
+* **deps-dev:** bump webpack from 5.35.0 to 5.36.2 ([#2480](https://github.com/jef/streetmerchant/issues/2480)) ([e397306](https://github.com/jef/streetmerchant/commit/e397306f1a3b1576c0595dec5fae7be277e88f25))
+* **deps-dev:** bump webpack from 5.37.0 to 5.37.1 ([#2558](https://github.com/jef/streetmerchant/issues/2558)) ([9e13cd7](https://github.com/jef/streetmerchant/commit/9e13cd7dbb8026c53da4499309ebef03d51c3e92))
+* **deps-dev:** bump webpack from 5.37.0 to 5.38.0 ([#2579](https://github.com/jef/streetmerchant/issues/2579)) ([9fc5ec0](https://github.com/jef/streetmerchant/commit/9fc5ec06ff92e458ea9649f22af9df1ae5ba1d95))
+* **deps:** bump actions/checkout from 2 to 3 ([#2967](https://github.com/jef/streetmerchant/issues/2967)) ([92a3c94](https://github.com/jef/streetmerchant/commit/92a3c94b8a21803eee2afd520bbad467053d7401))
+* **deps:** bump actions/setup-node from 2 to 3 ([#2963](https://github.com/jef/streetmerchant/issues/2963)) ([31c2887](https://github.com/jef/streetmerchant/commit/31c28878c00f6fd32c0c8eabc383634a585c9e69))
+* **deps:** bump actions/setup-python from 2 to 3 ([#2965](https://github.com/jef/streetmerchant/issues/2965)) ([fe53ba3](https://github.com/jef/streetmerchant/commit/fe53ba34ba31d99e36d64d210ad4fa95baa2ea38))
+* **deps:** bump actions/stale from 3 to 4 ([#2671](https://github.com/jef/streetmerchant/issues/2671)) ([e030310](https://github.com/jef/streetmerchant/commit/e0303106f725ee9726c0b7e2f29d97fe5137ca90))
+* **deps:** bump dependencies ([1ab0af2](https://github.com/jef/streetmerchant/commit/1ab0af234ca76b5db8602ffe04a1fc80b3c6515b))
+* **deps:** bump dependencies ([aed9cfe](https://github.com/jef/streetmerchant/commit/aed9cfe98919e6524bfde0156a308c9a56d4dfc0))
+* **deps:** bump dependencies ([2a1734a](https://github.com/jef/streetmerchant/commit/2a1734a71d20e9a65c04edcd4318eaa3b5872a7d))
+* **deps:** bump dependencies, node 15.14.0 ([91a0ff5](https://github.com/jef/streetmerchant/commit/91a0ff5e1ba83efabe5ef45c6a3e17e1c564f16b))
+* **deps:** bump google-github-actions/release-please-action from 2 to 3.1.3 ([#2968](https://github.com/jef/streetmerchant/issues/2968)) ([0906f64](https://github.com/jef/streetmerchant/commit/0906f64d001413383ae30861ecb155561ec4eac5))
+* **deps:** bump node 16.1.0 ([1e62878](https://github.com/jef/streetmerchant/commit/1e62878c8d1b3c0b49189b05f846d555cfc205b3))
+* **deps:** bump node from 15.11.0-alpine3.13 to 15.12.0-alpine3.13 ([#2185](https://github.com/jef/streetmerchant/issues/2185)) ([2ebbf55](https://github.com/jef/streetmerchant/commit/2ebbf55004da325c38c1eb12bcd5dc3264791604))
+* **deps:** bump node-notifier from 9.0.1 to 10.0.0 ([#2583](https://github.com/jef/streetmerchant/issues/2583)) ([a751cb1](https://github.com/jef/streetmerchant/commit/a751cb11c53c7cf6b7883e69eb5e8e2fe1e57adf))
+* **deps:** bump nodemailer from 6.6.0 to 6.6.1 ([#2568](https://github.com/jef/streetmerchant/issues/2568)) ([2e5b07c](https://github.com/jef/streetmerchant/commit/2e5b07c93fb02677596eb5a2f2ea857b99c2d4d9))
+* **deps:** bump open from 7.4.2 to 8.0.2 ([#2078](https://github.com/jef/streetmerchant/issues/2078)) ([00e4ddc](https://github.com/jef/streetmerchant/commit/00e4ddce162877a4a08747955859508f5af0a802))
+* **deps:** bump open from 8.0.2 to 8.0.3 ([#2186](https://github.com/jef/streetmerchant/issues/2186)) ([54883f0](https://github.com/jef/streetmerchant/commit/54883f0ad7cf86052035d88ed2ffbc612c439725))
+* **deps:** bump open from 8.0.2 to 8.2.0 ([#2572](https://github.com/jef/streetmerchant/issues/2572)) ([36e188f](https://github.com/jef/streetmerchant/commit/36e188fd36d31a915d9ac59016710b6f3fa4436d))
+* **deps:** bump top-user-agents from 1.0.25 to 1.0.26 ([#2556](https://github.com/jef/streetmerchant/issues/2556)) ([729afd0](https://github.com/jef/streetmerchant/commit/729afd0ef3f4ceea1ae38b04e1a25bc4c4dcd3ec))
+* **deps:** bump twilio from 3.62.0 to 3.63.0 ([#2561](https://github.com/jef/streetmerchant/issues/2561)) ([7d35c2b](https://github.com/jef/streetmerchant/commit/7d35c2b8f0620501061220baefeb499d6e66e2da))
+* **deps:** bump twilio from 3.66.1 to 3.71.1 ([#2837](https://github.com/jef/streetmerchant/issues/2837)) ([72140be](https://github.com/jef/streetmerchant/commit/72140bebdb7587c071398e0e3abd41bbb8caa10d))
+* **deps:** bump twitch-chat-client from 4.4.13 to 4.5.1 ([#2127](https://github.com/jef/streetmerchant/issues/2127)) ([eeab4b1](https://github.com/jef/streetmerchant/commit/eeab4b112a6482d4fd381014e44fd0d6e071c494))
+* **deps:** bump url-parse from 1.5.3 to 1.5.10 ([#2964](https://github.com/jef/streetmerchant/issues/2964)) ([6f57777](https://github.com/jef/streetmerchant/commit/6f57777c603f8f4535b0d3d72087a20a1d8ea740))
+* **elkjop:** update selectors ([#2505](https://github.com/jef/streetmerchant/issues/2505)) ([c9049a3](https://github.com/jef/streetmerchant/commit/c9049a3054d35f8a37340e552e19841e3ecaf631))
+* **gamestop:** update inventory ([#2239](https://github.com/jef/streetmerchant/issues/2239)) ([c1c92bd](https://github.com/jef/streetmerchant/commit/c1c92bd25b7b744a05f21664f2029a0cb0683d35))
+* improve linksBuilder logging ([#2785](https://github.com/jef/streetmerchant/issues/2785)) ([73eaa88](https://github.com/jef/streetmerchant/commit/73eaa88fa1ed7ef47a333fbe91875c460d00dd6e))
+* **ldlc:** add 3050 ([#2948](https://github.com/jef/streetmerchant/issues/2948)) ([a146ea3](https://github.com/jef/streetmerchant/commit/a146ea351db46e21553990f625a90dbdbd72f395))
+* **materiel:** add 3070 and 3080 cards ([#2393](https://github.com/jef/streetmerchant/issues/2393)) ([8c39d0d](https://github.com/jef/streetmerchant/commit/8c39d0d30a9f8db7eda8665eb08d350fadf157e4))
+* **mediamarkt, saturn:** add new outOfStock message ([#2850](https://github.com/jef/streetmerchant/issues/2850)) ([5d4f4c5](https://github.com/jef/streetmerchant/commit/5d4f4c5b82f13f8f0e6ef288a77aaf85acbafcb8))
+* **mediamarkt:** update captcha selector ([#2496](https://github.com/jef/streetmerchant/issues/2496)) ([64120e7](https://github.com/jef/streetmerchant/commit/64120e73d8f3a01dd5852044ffa0ef6b0ce31730))
+* **microcenter:** add 3090 cards ([d46c636](https://github.com/jef/streetmerchant/commit/d46c6366b70ca668437bd2aab87c3c529f4c569b))
+* move lookup loop logging to lower level ([#2784](https://github.com/jef/streetmerchant/issues/2784)) ([a20faaa](https://github.com/jef/streetmerchant/commit/a20faaab78ca5bf82240c10a944d55d806af7ffc))
+* **multicom:** update selectors ([#2499](https://github.com/jef/streetmerchant/issues/2499)) ([7c4c6ed](https://github.com/jef/streetmerchant/commit/7c4c6ed79ecd89767ffbb3577716be28ce6c1bdc))
+* **netonnet-no:** update selectors ([#2547](https://github.com/jef/streetmerchant/issues/2547)) ([0378a7c](https://github.com/jef/streetmerchant/commit/0378a7cf0aa673933af35c3a3605f147615f6e96))
+* **nodejs:** bump version ([#2088](https://github.com/jef/streetmerchant/issues/2088)) ([afe7a70](https://github.com/jef/streetmerchant/commit/afe7a709009f43fba1cef22aa6c136976507c7bc))
+* **notification:** add better logging, remove debug ([d12639e](https://github.com/jef/streetmerchant/commit/d12639ee8561240d99ef5c2c364255ff808f78b0))
+* **nvidia:** add 3070ti & 3080ti ([#2798](https://github.com/jef/streetmerchant/issues/2798)) ([ada90bf](https://github.com/jef/streetmerchant/commit/ada90bf6de4311256a6928bff3f382e4c2142f32))
+* **otto:** add labels for xbox series x & s ([#2515](https://github.com/jef/streetmerchant/issues/2515)) ([d0a6c7e](https://github.com/jef/streetmerchant/commit/d0a6c7e85950fe3cffbcb30662967a687aaf7347))
+* prune invalid links ([#2592](https://github.com/jef/streetmerchant/issues/2592)) ([b33f678](https://github.com/jef/streetmerchant/commit/b33f678090396b77a5765115d7a3fa42f6de06c8))
+* remove hooks ([b6af582](https://github.com/jef/streetmerchant/commit/b6af582f70843c5608249c5d629fdec8f10630dd))
+* remove unused dependencies ([53e7a8d](https://github.com/jef/streetmerchant/commit/53e7a8d692b76155699b371e926a2b9687d4a081))
+* revert puppeteer, run linter ([5e9b3db](https://github.com/jef/streetmerchant/commit/5e9b3db6f1630f2000da7f9a8b0dd0dc34c8341f))
+* **store:** add additional PS5 bundles and alternative links for MediaMarkt (DE) & Saturn (DE) ([#2820](https://github.com/jef/streetmerchant/issues/2820)) ([668ed54](https://github.com/jef/streetmerchant/commit/668ed54a9f762e4a7e220b0c9bfadd0b3dcdaf47))
+* **store:** add additional PS5 bundles to MediaMarkt (DE) & Saturn (DE) ([#2787](https://github.com/jef/streetmerchant/issues/2787)) ([0d936a9](https://github.com/jef/streetmerchant/commit/0d936a988586a91e66137083a72e2a3ae9b22f1b))
+* **store:** add more links to norwegian stores ([#2485](https://github.com/jef/streetmerchant/issues/2485)) ([a286b73](https://github.com/jef/streetmerchant/commit/a286b73b5d592868d7140d6de312d5a63a226315))
+* **store:** add Nvidia RTX Cards ([#2204](https://github.com/jef/streetmerchant/issues/2204)) ([0a9ce0d](https://github.com/jef/streetmerchant/commit/0a9ce0dd4c7681cba7681d570db44f65359d83cf))
+* **store:** add some PS5 bundles ([#2021](https://github.com/jef/streetmerchant/issues/2021)) ([d4dc397](https://github.com/jef/streetmerchant/commit/d4dc397e9a848d6d2ba1ed56188fb0ddda98e795))
+* **store:** EBGames renamed to Gamestop (in Canada) ([#2734](https://github.com/jef/streetmerchant/issues/2734)) ([4e77c67](https://github.com/jef/streetmerchant/commit/4e77c67641e85b353c1157e36cbd7c2657dbc01d))
+* **store:** updated and added Nvidia links ([#2806](https://github.com/jef/streetmerchant/issues/2806)) ([c31a861](https://github.com/jef/streetmerchant/commit/c31a86121cafd2bda411ea6a3543f0452fb081e5))
+* update dependencies ([f14a1ca](https://github.com/jef/streetmerchant/commit/f14a1ca76e41943e639e08a9c8a6299dfa362d9d))
+* update dependencies ([1d08d4c](https://github.com/jef/streetmerchant/commit/1d08d4c12292e1b98ad952fa4f88c1965fa7bd6a))
+* update dependencies and nightly workflow ([3b43732](https://github.com/jef/streetmerchant/commit/3b43732f291d263792585fa05264dcf322b55620))
+* update package-lock, remove ci perms ([#3059](https://github.com/jef/streetmerchant/issues/3059)) ([ba98f26](https://github.com/jef/streetmerchant/commit/ba98f2653ea865cc0c08687b05277566cfc1db32))
+* update pr template ([f0e5c5d](https://github.com/jef/streetmerchant/commit/f0e5c5d17bad282480da30cc68e5bd8eb9d80844))
+* update stale workflow ([e4a267f](https://github.com/jef/streetmerchant/commit/e4a267f675800b04d06ddb4212de1373a767a113))
+* **walmart:** update 5900x url ([#2184](https://github.com/jef/streetmerchant/issues/2184)) ([b2ce715](https://github.com/jef/streetmerchant/commit/b2ce7157d9631d6edd45debcb9ab85bc79241133))
+* **xbox:** update oos selector ([4d89306](https://github.com/jef/streetmerchant/commit/4d8930616d2296fcdd6c0d79bac2109f1388a0b0)), closes [#2118](https://github.com/jef/streetmerchant/issues/2118) [#2479](https://github.com/jef/streetmerchant/issues/2479) [#2475](https://github.com/jef/streetmerchant/issues/2475) [#2200](https://github.com/jef/streetmerchant/issues/2200)
+
## [3.5.0](https://www.github.com/jef/streetmerchant/compare/v3.4.1...v3.5.0) (2021-03-02)
diff --git a/Dockerfile b/Dockerfile
index 0f08dee810..bb7ddce2a5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,8 @@
-FROM node:16.6.1-alpine3.13 AS builder
+FROM node:16.18.0-alpine3.16 AS builder
LABEL org.opencontainers.image.source="https://github.com/jef/streetmerchant"
+LABEL org.opencontainers.image.description="The world's easiest, most powerful stock checker"
+LABEL org.opencontainers.image.licenses="MIT"
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
@@ -16,7 +18,7 @@ COPY test/ test/
RUN npm run compile
RUN npm prune --production
-FROM node:16.6.1-alpine3.13
+FROM node:16.18.0-alpine3.16
RUN apk add --no-cache chromium
diff --git a/README.md b/README.md
index 2c7c5204b6..d053ce0a7e 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,6 @@
The world's easiest, most powerful stock checker
-
-
-
-
To get started, visit jef.buzz/streetmerchant
diff --git a/docs/assets/images/streetmerchan-herokunewapp.jpg b/docs/assets/images/streetmerchan-herokunewapp.jpg
new file mode 100644
index 0000000000..87bd8dcc5b
Binary files /dev/null and b/docs/assets/images/streetmerchan-herokunewapp.jpg differ
diff --git a/docs/assets/images/streetmerchant-herokuapp.jpg b/docs/assets/images/streetmerchant-herokuapp.jpg
new file mode 100644
index 0000000000..5aed5af23d
Binary files /dev/null and b/docs/assets/images/streetmerchant-herokuapp.jpg differ
diff --git a/docs/assets/images/streetmerchant-herokubuildpacks.png b/docs/assets/images/streetmerchant-herokubuildpacks.png
new file mode 100644
index 0000000000..225c913bfd
Binary files /dev/null and b/docs/assets/images/streetmerchant-herokubuildpacks.png differ
diff --git a/docs/assets/images/streetmerchant-herokudynos.jpg b/docs/assets/images/streetmerchant-herokudynos.jpg
new file mode 100644
index 0000000000..62c04cc2ed
Binary files /dev/null and b/docs/assets/images/streetmerchant-herokudynos.jpg differ
diff --git a/docs/getting-started.md b/docs/getting-started.md
index a8454e04d8..221154b4b7 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -5,7 +5,7 @@ You do not need any computer skills, smarts, or anything of that nature. You are
## Prerequisites
- [git](https://git-scm.com/)
-- Either [Node.js 15](https://nodejs.org/en/) or [Docker (1.13.0+)](https://docs.docker.com/get-docker/) (advanced users)
+- Either [Node.js 16 (LTS)](https://nodejs.org/en/) or [Docker](https://docs.docker.com/get-docker/) (advanced users)
## Using Node.js
@@ -14,7 +14,7 @@ You do not need any computer skills, smarts, or anything of that nature. You are
| tag | Example, `v1.0.0`; stable |
| `main` | Latest HEAD; not tagged, could be unstable |
-1. Download [Node.js 15](https://nodejs.org/en/)
+1. Download [Node.js 16](https://nodejs.org/en/)
1. Clone this project `git clone https://github.com/jef/streetmerchant.git`.
1. To checkout a particular reference, use `git checkout [` after cloning.
1. Navigate to this project by entering `cd streetmerchant`.
@@ -103,3 +103,89 @@ docker-compose down
```
Replace `` with the value you gave in your `dotenv`.
+
+### Developing in Heroku
+
+#### Prerequisites
+
+- [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli)
+ - You will need a [Heroku Account](https://signup.heroku.com).
+- [GIT](https://git-scm.com)
+ - Make sure the PATH is set correctly, so you can use it in you command line.
+- [StreetMerchant](https://github.com/jef/streetmerchant)
+ - If you don't already have it.
+
+#### Starting with File correction
+
+1. Make a copy of `dotenv-example` and name it `dotenv`.
+1. Edit the `dotenv` file to your liking using a text editor (like [VSCode](https://code.visualstudio.com/) or even Notepad).
+1. Find the option `OPEN_BROWSER` and set it to `OPEN_BROWSER=false`
+ 1. After this, I recommend you setup some form of contacting your directly in the dotenv file as well.
+ 2. This can be phone, email, or whatever you'd want. The information won't be public.
+ 3. Save and close file.
+1. Locate the `.gitignore` file and open it.
+ 1. Remove `build/` and `dotenv`.
+ 2. Save and close file.
+1. Locate the `package.json` file and open it.
+ 1. Locate the `"posttest"` config.
+ 1. Under it, paste:
+ ]"postinstall": "npm run tsc",
+ "tsc": "tsc",
+1. Create a file called `Procfile` with no type declaration(.txt/.doc/.etc.)
+ 1. Open it with Notepad
+ 2. Paste: `worker: npm run start:production`
+ 3. Close and save file
+1. Navigate to `src/` and find the file `index.ts`
+ 1. Open with IDE or Notepade
+ 2. Find `const args: string[]`
+ 1. Replace with:
+ const args: string[] = [
+ '--no-sandbox',
+ '--disable-setuid-sandbox'
+ c];
+#### Setting up Heroku
+```shell
+# To start
+# Open a terminal and navigate to the master street merchant directory
+# From there start this
+heroku login
+# Follow the steps to login
+```
+1. Leave that terminal up, and go to your [Heroku apps](https://dashboard.heroku.com/apps)
+2. Create a new app:
+
+![IMAGEOFAPP](https://github.com/dev-nolant/streetmerchant/blob/main/docs/assets/images/streetmerchan-herokunewapp.jpg)
+
+3. Name it, and then click `Create App`
+
+![IMAGEOFCREATE](https://github.com/dev-nolant/streetmerchant/blob/main/docs/assets/images/streetmerchant-herokuapp.jpg)
+
+4. Go to `Settings` and add two buildpacks
+ 1. `heroku/nodejs`
+ 2. `https://github.com/jontewks/puppeteer-heroku-buildpack`
+
+It should look like:
+![IMAGEOFBUILDPACKS](https://github.com/dev-nolant/streetmerchant/blob/main/docs/assets/images/streetmerchant-herokubuildpacks.png)
+
+#### Terminal setup
+Back to the terminal that you left open.
+1. Type `git init`
+2. Once that finishes copy and paste: `heroku git:remote -a YOURAPPNAME` but make sure `YOURAPPNAME` is whatever you named your app on Heroku.
+3. Then type `git add .`
+4. Once that finishes paste `git commit -am "COMMITMESSAGE"`, replacing `COMMITMESSAGE` with whatever commit message you'd like. This doesn't matter much.
+5. The last thing to do in the terminal is to push your repo to Heroku
+ 1. Paste `git push heroku master`
+ 1. This will take a while
+#### Final steps
+1. On your Heroku app, click on the tab `Resources`
+
+You should see this:
+![IMAGEOFRESOURCES](https://github.com/dev-nolant/streetmerchant/blob/main/docs/assets/images/streetmerchant-herokudynos.jpg)
+
+2. Click the pen icon on both to edit their states.
+3. Turn off `web npm start`
+4. Turn on `worker npm run start:production`
+5. Click confirm on both.
+6. Now you're essentially done!
+ 1. I recommend you click on the `more` dropdown and click `logs` to make sure everything is running smoothly.
+ 2. If you set up notifications, you will be notified when you criterias are met(3060 in stock, etc.), otherwise you'll have to keep your eyes on the `logs` tab
diff --git a/docs/javascripts/tables.js b/docs/javascripts/tables.js
index dddc5e3ddc..e848f07dd0 100644
--- a/docs/javascripts/tables.js
+++ b/docs/javascripts/tables.js
@@ -1,6 +1,6 @@
-app.document$.subscribe(() => {
- const tables = document.querySelectorAll('article table');
- tables.forEach(table => {
- new Tablesort(table);
- });
-});
+document$.subscribe(function() {
+ var tables = document.querySelectorAll("article table")
+ tables.forEach(function(table) {
+ new Tablesort(table)
+ })
+})
diff --git a/docs/overrides/main.html b/docs/overrides/main.html
index d8b8aef987..c74978d811 100644
--- a/docs/overrides/main.html
+++ b/docs/overrides/main.html
@@ -19,12 +19,4 @@
-
-
-
-
-
-
-
-
{% endblock %}
diff --git a/docs/reference/application.md b/docs/reference/application.md
index 99b2f31559..981b9f5de2 100644
--- a/docs/reference/application.md
+++ b/docs/reference/application.md
@@ -9,17 +9,21 @@
| `IN_STOCK_WAIT_TIME` | Time to wait between requests to the same link if it has that card in stock. In seconds, default: `0` |
| `LOG_LEVEL` | [Logging levels](https://github.com/winstonjs/winston#logging-levels). Debugging related, default: `info` |
| `LOW_BANDWIDTH` | Blocks images/fonts to reduce traffic. Disables ad blocker, default: `false` |
-| `OPEN_BROWSER` | Toggle for whether or not the browser should open when item is found. Default: `true` |
-| `PAGE_BACKOFF_MIN` | Minimum backoff time between retrying requests for the same store when a forbidden response is received. Default: `10000` |
-| `PAGE_BACKOFF_MAX` | Maximum backoff time between retrying requests for the same store when a forbidden response is received. Default: `3600000` |
+| `NVIDIA_ADD_TO_CART_ATTEMPTS` | Maximum number of attempts add an item to card in the Nvidia storefront, default: `10` |
+| `NVIDIA_SESSION_TTL` | Maximum session length on the Nvidia storefront in ms, default: `60000` |
+| `OPEN_BROWSER` | Toggle for whether or not the browser should open when item is found, default: `true` |
+| `PAGE_BACKOFF_MIN` | Minimum backoff time between retrying requests for the same store when a forbidden response is received, default: `10000` |
+| `PAGE_BACKOFF_MAX` | Maximum backoff time between retrying requests for the same store when a forbidden response is received, default: `3600000` |
| `PAGE_SLEEP_MIN` | Minimum sleep time between queries of the same product page. In milliseconds, default: `5000` |
| `PAGE_SLEEP_MAX` | Maximum sleep time between queries of the same product page. In milliseconds, default: `10000` |
| `PAGE_TIMEOUT` | Navigation Timeout in milliseconds. `0` for infinite, default: `30000` |
-| `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`. Default: `http` |
+| `PROXY_PROTOCOL` | Protocol of proxy server, such as `socks5`, default: `http` |
| `PROXY_ADDRESS` | IP Address or fqdn of proxy server |
-| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections. Default: `80` |
+| `PROXY_PORT` | TCP Port number on which the proxy is listening for connections, default: `80` |
| `RESTART_TIME` | Restarts chrome after defined milliseconds. `0` for never, default: `0` |
-| `SCREENSHOT` | Capture screenshot of page if a card is found. Default: `true` |
+| `SCREENSHOT` | Capture screenshot of page if a card is found, default: `true` |
+| `SCREENSHOT_DIR` | The directory for saving the screenshots, default: `screenshots` |
+| `USER_AGENT` | Custom user agent used for requests |
| `WEB_PORT` | Starts a webserver to be able to control the bot while it is running. Setting this value starts this service. |
???+ info
diff --git a/docs/reference/filter.md b/docs/reference/filter.md
index f7fea726a7..b03ad2f5a8 100644
--- a/docs/reference/filter.md
+++ b/docs/reference/filter.md
@@ -2,12 +2,21 @@
| Environment variable | Description |
|:---:|---|
+| `MAX_PRICE_SERIES_3050` | Maximum price allowed for a match, applies 3050 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3060` | Maximum price allowed for a match, applies 3060 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3060TI` | Maximum price allowed for a match, applies 3060 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3070` | Maximum price allowed for a match, applies 3070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3080` | Maximum price allowed for a match, applies 3080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3080TI` | Maximum price allowed for a match, applies 3080 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
| `MAX_PRICE_SERIES_3090` | Maximum price allowed for a match, applies 3090 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_4080_16G` | Maximum price allowed for a match, applies 4080 16G series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_4090` | Maximum price allowed for a match, applies 4090 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_5070` | Maximum price allowed for a match, applies 5070 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_5070TI` | Maximum price allowed for a match, applies 5070 Ti series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_5080` | Maximum price allowed for a match, applies 5080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_5090` | Maximum price allowed for a match, applies 5080 series cards (does not apply to these sites: Nvidia, Asus, EVGA) |
+| `MAX_PRICE_SERIES_A3_MATX` | Maximum price allowed for a match, applies to Lian Li A3-mATX Mini Tower Case |
+| `MAX_PRICE_SERIES_ARC` | Maximum price allowed for a match, applies to Intel Arc B580 |
| `MAX_PRICE_SERIES_CORSAIR_SF` | Maximum price allowed for a match, applies to Corsair PSUs |
| `MAX_PRICE_SERIES_DARKHERO` | Maximum price allowed for a match, applies to ASUS Dark Hero motherboards |
| `MAX_PRICE_SERIES_RYZEN5600` | Maximum price allowed for a match, applies AMD 5600 series cpus |
@@ -18,6 +27,13 @@
| `MAX_PRICE_SERIES_RX6800` | Maximum price allowed for a match, applies AMD RX 6800 |
| `MAX_PRICE_SERIES_RX6800XT` | Maximum price allowed for a match,applies AMD RX 6800 XT |
| `MAX_PRICE_SERIES_RX6900XT` | Maximum price allowed for a match, applies AMD RX 6900 XT |
+| `MAX_PRICE_SERIES_RYZEN7800X3D` | Maximum price allowed for a match, applies AMD 7800X3D |
+| `MAX_PRICE_SERIES_RYZEN7950X` | Maximum price allowed for a match, applies to AMD Ryzen 9 7950X CPU |
+| `MAX_PRICE_SERIES_RYZEN9800X3D` | Maximum price allowed for a match, applies AMD 9800X3D |
+| `MAX_PRICE_SERIES_RYZEN9600X` | Maximum price allowed for a match, applies AMD RX 9600X |
+| `MAX_PRICE_SERIES_RYZEN9700X` | Maximum price allowed for a match, applies AMD RX 9700X |
+| `MAX_PRICE_SERIES_RYZEN9900X` | Maximum price allowed for a match, applies AMD RX 9900X |
+| `MAX_PRICE_SERIES_RYZEN9950X` | Maximum price allowed for a match, applies AMD RX 9950X |
| `MAX_PRICE_SERIES_SONYPS5C` | Maximum price allowed for a match, applies PS5 console |
| `MAX_PRICE_SERIES_SONYPS5DE` | Maximum price allowed for a match, applies PS5 digital edition |
| `MAX_PRICE_SERIES_XBOXSS` | Maximum price allowed for a match, applies Xbox Series S |
@@ -28,6 +44,7 @@
| `SHOW_ONLY_MODELS` | Filter to show specified models. Comma separated, can include series. E.g.: `founders edition:3090,rog strix` |
| `SHOW_ONLY_SERIES` | Filter to show specified series. Comma separated, e.g.: `3080,ryzen5900` |
| `STORES` | [Supported stores](#supported-stores) you want to be scraped. Default: `amazon,bestbuy`. Comma separated, can include `PAGE_SLEEP_MIN` and `PAGE_SLEEP_MAX` values. E.g.: `amazon:10000:30000,bestbuy,newegg:50000:80000`. |
+| `SHOW_ONLY_COUNTRY` | Filter to show specific country stores. Comma separated, e.g.: `US,CA` |
???+ note
For `MAX_PRICE_SERIES_*` variables: Use whole numbers only (no currency symbol is required). Avoid using any commas or decimal points. Example: `1234`. Merchandise found above this price will be skipped.
@@ -39,164 +56,172 @@ Used with the `STORES` variable.
| Stores | Country | Environment variable |
|---|---|---|
| AComPC | DE | `acompc` |
-| Adorama | US | `adorama`|
-| Akinformatica | IT | `akinformatica`|
-| Allneeds | AU | `allneeds`|
-| Alternate | DE | `alternate`|
-| Alternate | NL | `alternate-nl`|
-| Amazon | US | `amazon`|
-| Amazon | CA | `amazon-ca`|
-| Amazon | DE | `amazon-de`|
-| Amazon Warehouse | DE | `amazon-de-warehouse`|
-| Amazon | ES | `amazon-es`|
-| Amazon | FR | `amazon-fr`|
-| Amazon | IT | `amazon-it`|
-| Amazon | NL | `amazon-nl`|
-| Amazon | SG | `amazon-sg`|
-| Amazon | UK | `amazon-uk`|
-| AMD | US | `amd`|
-| AMD | AT | `amd-at`|
-| AMD | BE | `amd-be`|
-| AMD | CA | `amd-ca`|
-| AMD | DE | `amd-de`|
-| AMD | IT | `amd-it`|
-| AMD | NL | `amd-nl`|
-| AMD | UK | `amd-uk`|
-| AntOnline | US | `antonline`|
-| AO | UK | `ao`|
-| Argos | UK | `argos`|
-| Argos | IE | `argos-ie`|
-| Aria PC | UK | `aria`|
-| ARLT | DE | `arlt`|
+| Adorama | US | `adorama` |
+| Akinformatica | IT | `akinformatica` |
+| Allneeds | AU | `allneeds` |
+| Alternate | DE | `alternate-de` |
+| Alternate | FR | `alternate-fr` |
+| Alternate | NL | `alternate-nl` |
+| Amazon | US | `amazon` |
+| Amazon | CA | `amazon-ca` |
+| Amazon | DE | `amazon-de` |
+| Amazon Warehouse | DE | `amazon-de-warehouse` |
+| Amazon | ES | `amazon-es` |
+| Amazon | FR | `amazon-fr` |
+| Amazon | IT | `amazon-it` |
+| Amazon | NL | `amazon-nl` |
+| Amazon | SG | `amazon-sg` |
+| Amazon | UK | `amazon-uk` |
+| AMD | US | `amd` |
+| AMD | AT | `amd-at` |
+| AMD | BE | `amd-be` |
+| AMD | CA | `amd-ca` |
+| AMD | DE | `amd-de` |
+| AMD | IT | `amd-it` |
+| AMD | NL | `amd-nl` |
+| AMD | UK | `amd-uk` |
+| AntOnline | US | `antonline` |
+| AO | UK | `ao` |
+| Argos | UK | `argos` |
+| Argos | IE | `argos-ie` |
+| Aria PC | UK | `aria` |
+| ARLT | DE | `arlt` |
| ASUS | US | `asus` |
| ASUS | DE | `asus-de` |
| ASUS | ES | `asus-es` |
| AWD-IT | UK | `awd` |
-| Azerty | NL | `azerty`|
-| B&H | US | `bandh`|
-| Best Buy | US | `bestbuy`|
-| Best Buy | CA | `bestbuy-ca`|
-| Box | UK | `box`|
-| BPCTech | AU | `bpctech`|
-| BPM-Power | IT | `bpm-power`|
-| BT | UK | `bt`|
+| Azerty | NL | `azerty` |
+| B&H | US | `bandh` |
+| Best Buy | US | `bestbuy` |
+| Best Buy | CA | `bestbuy-ca` |
+| Box | UK | `box` |
+| BPCTech | AU | `bpctech` |
+| BPM-Power | IT | `bpm-power` |
+| BT | UK | `bt` |
| CanadaComputers | CA | `canadacomputers` |
-| Caseking | DE | `caseking`|
-| CCL | UK | `ccl`|
-| Centrecom | AU | `centrecom`|
-| Comet | IT | `comet`|
-| ComputerAlliance | AU | `computeralliance`|
+| Caseking | DE | `caseking` |
+| CCL | UK | `ccl` |
+| Centrecom | AU | `centrecom` |
+| Comet | IT | `comet` |
+| ComputerAlliance | AU | `computeralliance` |
| Computeruniverse | DE | `computeruniverse` |
-| Coolblue | NL | `coolblue`|
-| Coolmod | ES | `coolmod`|
-| Corsair | US | `corsair`|
-| Corsair | UK | `corsair-uk`|
-| CPL | AU | `cpl`|
-| Currys | UK | `currys`|
+| Coolblue | NL | `coolblue` |
+| Coolmod | ES | `coolmod` |
+| Corsair | US | `corsair` |
+| Corsair | UK | `corsair-uk` |
+| CPL | AU | `cpl` |
+| Currys | UK | `currys` |
| Cyberport | DE | `cyberport` |
| Cyberport | AT | `cyberport-at` |
-| DComp | AU | `dcomp`|
+| DComp | AU | `dcomp` |
| Drako | IT | `drako` |
| DustinHome | NO | `dustinhome-no` |
-| EBGames | CA | `ebgames`|
-| eBuyer | UK | `ebuyer`|
-| El Corte Inglés | ES | `elcorteingles`|
-| Eletronicamente | ES | `eletronicamente`|
-| Elkjop | NO | `elkjop`|
-| ePrice | IT | `eprice`|
-| Equippr | DE | `equippr`|
-| Euronics | IT | `euronics`|
-| Euronics | DE | `euronics-de`|
-| Evatech | AU | `evatech`|
-| EVGA | US | `evga`|
-| EVGA | EU | `evga-eu`|
-| Expert | DE | `expert`|
-| Extremmedia | ES | `extremmedia`|
-| Futurex | DE | `futurex`|
-| Galaxus | DE | `galaxus`|
-| Game | ES | `game-es`|
-| Game | UK | `game`|
-| Gamestop | US | `gamestop`|
-| Gamestop | DE | `gamestop-de`|
-| Gamestop | IE | `gamestop-ie`|
-| Gamestop | IT | `gamestop-it`|
-| Globaldata | PT | `globaldata`|
+| eBuyer | UK | `ebuyer` |
+| El Corte Inglés | ES | `elcorteingles` |
+| Eletronicamente | ES | `eletronicamente` |
+| Elkjop | NO | `elkjop` |
+| ePrice | IT | `eprice` |
+| Equippr | DE | `equippr` |
+| Euronics | IT | `euronics` |
+| Euronics | DE | `euronics-de` |
+| Evatech | AU | `evatech` |
+| EVGA | US | `evga` |
+| EVGA | EU | `evga-eu` |
+| Expert | DE | `expert` |
+| Extremmedia | ES | `extremmedia` |
+| Futurex | DE | `futurex` |
+| Galaxus | DE | `galaxus` |
+| Game | ES | `game-es` |
+| Game | UK | `game` |
+| Gamestop | US | `gamestop` |
+| Gamestop | CA | `gamestop-ca` |
+| Gamestop | DE | `gamestop-de` |
+| Gamestop | IE | `gamestop-ie` |
+| Gamestop | IT | `gamestop-it` |
+| Globaldata | PT | `globaldata` |
| Hardware Planet | IT | | `hardware-planet` |
-| HarrisTechnology | AU | `harristechnology`|
+| HarrisTechnology | AU | `harristechnology` |
| Harvey Normans | IE | `harveynorman-ie` |
-| iGame Computer | AU | `igame-computer`|
-| John Lewis | UK | `johnlewis`|
-| Kabum | BR | `kabum`|
-| Komplett | NO | `komplett-no`|
-| Landmark Computers | AU | `landmark-computers`|
-| Ldlc | FR | `ldlc`|
-| Ldlc | ES | `ldlc-es`|
-| Mediamarkt | DE | `mediamarkt`|
-| Mediamarkt | AT | `mediamarkt-at`|
-| Medimax | DE | `medimax`|
-| Megekko | NL | `megekko`|
-| MemoryExpress | CA | `memoryexpress`|
+| iGame Computer | AU | `igame-computer` |
+| John Lewis | UK | `johnlewis` |
+| Kabum | BR | `kabum` |
+| Komplett | NO | `komplett-no` |
+| Landmark Computers | AU | `landmark-computers` |
+| Ldlc | FR | `ldlc` |
+| Ldlc | ES | `ldlc-es` |
+| Ldlc | IT | `ldlc-it` |
+| Mediamarkt | DE | `mediamarkt` |
+| Mediamarkt | AT | `mediamarkt-at` |
+| Medimax | DE | `medimax` |
+| Megekko | NL | `megekko` |
+| MemoryExpress | CA | `memoryexpress` |
| Materiel | FR | `materiel` |
-| Micro Center | US | `microcenter`|
-| MightyApe | NZ | `mightyape`|
+| Micro Center | US | `microcenter` |
+| Microsoft | US | `microsoft` |
+| Microsoft | CA | `microsoft-ca` |
+| MightyApe | NZ | `mightyape` |
| Mindfactory | DE | `mindfactory` |
-| MSY | AU | `msy`|
-| Multicom | NO | `multicom`|
-| Mwave | AU | `mwave`|
-| Neobyte | ES | `neobyte`|
-| Netonnet | NO | `netonnet-no`|
-| Newegg | US | `newegg`|
-| Newegg | CA | `newegg-ca`|
-| Newegg | SG | `newegg-sg`|
-| NoelLeeming | NZ | `noelleeming`|
-| Notebooksbilliger | DE |`notebooksbilliger`|
-| Novatech | UK | `novatech`|
-| Novo Atalho | PT | `novoatalho`|
+| MSI | US | `msi` |
+| MSY | AU | `msy` |
+| Multicom | NO | `multicom` |
+| Mwave | AU | `mwave` |
+| Neobyte | ES | `neobyte` |
+| Netonnet | NO | `netonnet-no` |
+| Newegg | US | `newegg` |
+| Newegg | CA | `newegg-ca` |
+| Newegg | SG | `newegg-sg` |
+| NoelLeeming | NZ | `noelleeming` |
+| Notebooksbilliger | DE |`notebooksbilliger` |
+| Novatech | UK | `novatech` |
+| Novo Atalho | PT | `novoatalho` |
| Nvidia | EU/UK | [See below](#nvidia-store-reference) |
-| Office Depot | US | `officedepot`|
-| Ollo | IT | `ollo`|
-| Opirata | ES | `opirata`|
-| Otto | DE | `otto`|
-| Overclockers | UK | `overclockers`|
-| PBTech | AU | `pbtech`|
-| PCByte | AU | `pcbyte`|
-| PCCG | AU | `pccg`|
-| PCComponentes | ES | `pccomponentes`|
-| PCDiga | PT | `pcdiga`|
+| Office Depot | US | `officedepot` |
+| Ollo | IT | `ollo` |
+| Opirata | ES | `opirata` |
+| Otto | DE | `otto` |
+| Overclockers | UK | `overclockers` |
+| PBTech | AU | `pbtech` |
+| PCByte | AU | `pcbyte` |
+| PCCG | AU | `pccg` |
+| PCComponentes | ES | `pccomponentes` |
+| PCDiga | PT | `pcdiga` |
| PCKing | DE | `pcking` |
-| PlayStation | US | `playstation`|
-| PNY | US | `pny`|
-| Power | NO | `power-no`|
-| Proshop | DE | `proshop-de`|
-| Proshop | DK | `proshop-dk`|
-| Proshop | NO | `proshop-no`|
-| Rosman | AU | `rosman`|
-| Rosman-Melb | AU | `rosman-melb`|
-| Saturn | DE | `saturn`|
-| Save On It | AU | `saveonit`|
-| Scan | UK | `scan`|
-| Scorptec | AU | `scorptec`|
-| ShopTo | UK | `shopto`|
-| Siabyte | ES | `siabyte`|
-| Smyths Toys | UK | `smythstoys`|
-| Smyths Toys | IE | `smythstoys-ie`|
-| Spielegrotte | DE | `spielegrotte`|
-| Storm Computers | AU | `storm-computer`|
-| Target | US | `target`|
-| Tesco | IE | `tesco-ie`|
-| TheWarehouse | NZ | `thewarehouse`|
-| TopAchat | GR | `topachat`|
+| PlayStation | US | `playstation` |
+| PNY | US | `pny` |
+| Power | NO | `power-no` |
+| Proshop | DE | `proshop-de` |
+| Proshop | DK | `proshop-dk` |
+| Proshop | NO | `proshop-no` |
+| Rosman | AU | `rosman` |
+| Rosman-Melb | AU | `rosman-melb` |
+| Saturn | DE | `saturn` |
+| Save On It | AU | `saveonit` |
+| Scan | UK | `scan` |
+| Scorptec | AU | `scorptec` |
+| ShopTo | UK | `shopto` |
+| Siabyte | ES | `siabyte` |
+| Smyths Toys | UK | `smythstoys` |
+| Smyths Toys | IE | `smythstoys-ie` |
+| Spielegrotte | DE | `spielegrotte` |
+| Storm Computers | AU | `storm-computer` |
+| Target | US | `target` |
+| Tesco | IE | `tesco-ie` |
+| TheWarehouse | NZ | `thewarehouse` |
+| TopAchat | GR | `topachat` |
| Toys R Us | US | `toysrus` |
-| Ultimainformatica | ES | `ultimainformatica`|
-| Umart | AU | `umart`|
-| Unieuro | IT | `unieuro`|
-| Very | UK | `very`|
+| Ultimainformatica | ES | `ultimainformatica` |
+| Umart | AU | `umart` |
+| Unieuro | IT | `unieuro` |
+| Very | UK | `very` |
+| Versus Gamers | ES | `vsgamers` |
| Vuugo | CA | `vuugo` |
-| Walmart | US | `walmart`|
-| Walmart | CA | `walmart-ca`|
-| Wells Technology | AU | `wellstechnology`|
-| Wipoid | ES | `wipoid`|
-| Zotac | US | `zotac`|
+| Walmart | US | `walmart` |
+| Walmart | CA | `walmart-ca` |
+| Wells Technology | AU | `wellstechnology` |
+| Wipoid | ES | `wipoid` |
+| Xbox | US | `xbox` |
+| Xtremmedia | ES | `xtremmedia` |
+| Zotac | US | `zotac` |
### Micro Center stores
@@ -221,25 +246,34 @@ Used with the `SHOW_ONLY_BRANDS` and `SHOW_ONLY_MODELS` variables.
| Brand | Model |
|:---:|---|
-| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `amd reference` |
-| `asus` | `crosshair viii`, `dual`, `dual oc`, `ekwb`, `strix`, `strix oc`, `strix white`, `tuf`, `tuf oc` |
-| `corsair` | `750 platinum`, `600 platinum`, `600 gold` |
-| `colorful` | `igame advanced oc`, `igame vulcan oc` |
-| `evga` | `ftw3`, `ftw3 black`, `ftw3 ultra`, `ftw3 ultra hybrid`, `ftw3 ultra hydro copper`, `xc3`, `xc black`, `xc gaming`, `xc3 black`, `xc3 ultra`, `xc3 ultra hybrid` |
-| `gainward` | `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc`, `ghost` |
-| `gigabyte` | `aorus master`, `aorus xtreme`, `aorus xtreme waterforce`, `aorus xtreme waterforce wb`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `gaming oc pro`, `turbo`, `vision`, `vision oc` |
-| `galax` | `sg`, `sg oc` |
-| `inno3d` | `gaming x3`, `ichill x3`, `ichill x4`, `ichill frostbite`, `twin x2`, `twin x2 oc` |
-| `kfa2` | `sg`, `sg oc` |
+| `amd` | `5600x`, `5800x`, `5900x`, `5950x`, `7800x3d`, `7950x`, `9600x`, `9700x`, `9800x3d`, `9900x`, `9950x`, `amd reference`, `tuf oc` |
+| `asrock` | `amd reference`, `challenger`, `challenger oc`, `challenger pro`, `challenger pro oc`, `phantom gaming`, `phantom gaming oc`, `taichi`, `taichi x oc` |
+| `asus` | `amd reference`, `astral`, `astral oc`, `crosshair viii`, `dual`, `dual fan`, `dual mini`, `dual mini oc`, `dual oc`, `ekwb`, `gaming`, `gaming oc`, `ko`, `ko oc`, `phoenix 8G (LHR)`, `prime`, `prime oc`, `strix`, `strix lc`, `strix oc`, `strix oc lc`, `strix oc white`, `strix white`, `suprim x`, `tuf`, `tuf gaming`, `tuf gaming oc`, `tuf oc`, `turbo` |
+| `ax` | `x3w` |
+| `colorful` | `battle-ax`, `igame advanced`, `igame advanced oc`, `igame ultra oc`, `igame vulcan oc` |
+| `corsair` | `600 gold`, `600 platinum`, `750 platinum` |
+| `evga` | `ftw3`, `ftw3 black`, `ftw3 ultra`, `ftw3 ultra hybrid`, `ftw3 ultra hydro copper`, `gaming`, `ichill x3`, `kngpn hybrid`, `xc black`, `xc gaming`, `xc3`, `xc3 black`, `xc3 ultra`, `xc3 ultra hybrid` |
+| `gainward` | `ghost`, `ghost oc`, `pegasus`, `pegasus oc`, `phantom`, `phantom gaming`, `phantom gs`, `phoenix`, `phoenix gs`, `phoenix gs oc` |
+| `galax` | `sg oc` |
+| `gigabyte` | `aero oc`, `aero oc sff`, `amd reference`, `aorus`, `aorus box`, `aorus elite`, `aorus master`, `aorus master 24g`, `aorus master type-c`, `aorus w`, `aorus x wb`, `aorus xtreme`, `aorus xtreme waterforce`, `aorus xtreme waterforce 24g`, `aorus xtreme waterforce wb`, `eagle`, `eagle oc`, `gaming`, `gaming oc`, `gaming oc pro`, `gaming oc waterforce wb`, `gaming pro`, `gaming pro oc`, `gaming x`, `master`, `master ice`, `turbo`, `vision`, `vision oc`, `windforce`, `windforce oc`, `windforce oc sff`, `windforce v2`, `xtreme` |
+| `inno3d` | `gaming x3`, `ice dragon super`, `ichill frostbite`, `ichill x2`, `ichill x3`, `ichill x3 red`, `ichill x4`, `twin x2`, `twin x2 oc`, `x3 oc` |
+| `intel` | `b580` |
+| `kfa2` | `dual oc`, `ex`, `ex gamer`, `ex oc`, `gaming`, `oc`, `sg`, `sg oc` |
| `leadtek` | `hurricane` |
-| `microsoft` | `xbox series x`, `xbox series s` |
-| `msi` | `gaming x trio`, `suprim`, `suprim x`, `ventus 2x oc`, `ventus 3x`, `ventus 3x oc` |
+| `lianli` | `a3 matx wd` |
+| `microsoft` | `xbox series s`, `xbox series x` |
+| `msi` | `amd reference`, `dual`, `expert`, `gaming`, `gaming trio`, `gaming trio oc`, `gaming trio oc white`, `gaming x`, `gaming x slim`, `gaming x trio`, `gaming z trio`, `inspire 3x`, `inspire 3x oc`, `lp oc`, `mech 2x`, `mech 2x oc`, `shadow 3x`, `shadow 3x oc`, `strix`, `suprim`, `suprim liquid soc`, `suprim liquid x`, `suprim oc`, `suprim soc`, `suprim x`, `vanguard`, `vanguard soc`, `vanguard soc launch edition`, `ventus 2X (LHR)`, `ventus 2x`, `ventus 2x oc`, `ventus 2x white oc`, `ventus 3x`, `ventus 3x e1 oc`, `ventus 3x oc`, `ventus 3x oc plus`, `ventus 3x oc white`, `x trio` |
| `nvidia` | `founders edition` |
-| `palit` | `gamerock oc`, `gaming pro`, `gaming pro oc` |
-| `pny` | `dual fan`, `xlr8 epic x`, `xlr8 revel`, `xlr8 uprising` |
+| `palit` | `dual`, `dual oc`, `gamerock`, `gamerock oc`, `gaming oc pro`, `gaming pro`, `gaming pro oc`, `jetstream`, `jetstream oc`, `stormx oc`, `trinity oc` |
+| `pny` | `aorus xtreme waterforce`, `dual`, `dual fan`, `epic x`, `epic x oc`, `gaming`, `gaming verto epic-x`, `single fan`, `suprim liquid soc`, `triple fan`, `triple fan oc`, `uprising`, `vetro`, `xlr8`, `xlr8 epic x`, `xlr8 gaming`, `xlr8 gaming uprising epic x`, `xlr8 revel`, `xlr8 revel epic x`, `xlr8 uprising`, `xlr8 verto`, `xlr8 verto epic x`, `xlr8 verto epic x oc`, `xlr8 verto oc` |
+| `powercolor` | `amd reference`, `fighter`, `hellhound`, `hellhound white`, `red devil`, `red dragon` |
+| `sapphire` | `amd reference`, `nitro oc`, `nitro oc se`, `nitro+`, `nitro+ oc`, `nitro+ oc se`, `nitro+ se`, `pulse`, `pulse oc` |
| `sony` | `ps5 console`, `ps5 digital` |
-| `xfx` | `merc`, `amd reference` |
-| `zotac` | `amp holo`, `amp extreme holo`, `amp white`, `trinity`, `trinity oc`, `twin edge`, `twin edge oc`, `twin edge oc white` |
+| `sparkle` | `b580` |
+| `test:brand` | `test:model` |
+| `ubiquiti` | `dream machine`, `dream machine pro`, `dream router`, `g4 doorbell pro`, `network video recorder`, `network video recorder pro` |
+| `xfx` | `amd reference`, `merc`, `merc core`, `merc ultra`, `qick`, `qick ultra`, `swft` |
+| `zotac` | `amp airo`, `amp extreme airo`, `amp extreme holo`, `amp extreme infinity`, `amp holo`, `amp white`, `gaming`, `solid`, `solid oc`, `trinity`, `trinity oc`, `trinity oc lhr`, `twin edge`, `twin edge oc`, `twin edge oc white` |
## Supported series
@@ -247,38 +281,65 @@ Used with the `SHOW_ONLY_SERIES` variable.
| Series | Value |
|:---:|:---:|
-| AMD Ryzen 5600x | `ryzen5600` |
-| AMD Ryzen 5800x | `ryzen5800` |
-| AMD Ryzen 5900x | `ryzen5900` |
-| AMD Ryzen 5950x | `ryzen5950` |
| AMD RX 6700XT | `rx6700xt` |
| AMD RX 6800 | `rx6800` |
| AMD RX 6800XT | `rx6800xt` |
| AMD RX 6900XT | `rx6900xt` |
+| AMD Ryzen 5600X | `ryzen5600` |
+| AMD Ryzen 5800X | `ryzen5800` |
+| AMD Ryzen 5900X | `ryzen5900` |
+| AMD Ryzen 5950X | `ryzen5950` |
+| AMD Ryzen 7800X3D | `ryzen7800x3d` |
+| AMD Ryzen 7950X | `ryzen7950x` |
+| AMD Ryzen 9600X | `ryzen9600x` |
+| AMD Ryzen 9700X | `ryzen9700x` |
+| AMD Ryzen 9800X3D | `ryzen9800x3d` |
+| AMD Ryzen 9900X | `ryzen9900x` |
+| AMD Ryzen 9950X | `ryzen9950x` |
+| Corsair SFX PSU | `sf` |
+| Crosshair VIII | `darkhero` |
+| Intel Arc B580 | `arc` |
+| Lian Li A3-mATX | `a3-matx` |
+| Nvidia RTX 3050 | `3050` |
| Nvidia RTX 3060 | `3060` |
| Nvidia RTX 3060 Ti | `3060ti` |
| Nvidia RTX 3070 | `3070` |
+| Nvidia RTX 3070 Ti | `3070ti` |
| Nvidia RTX 3080 | `3080` |
| Nvidia RTX 3080 Ti | `3080ti` |
| Nvidia RTX 3090 | `3090` |
-| Corsair SFX PSU | `sf` |
-| Crosshair VIII | `darkhero` |
+| Nvidia RTX 4060 | `4060` |
+| Nvidia RTX 4070 | `4070` |
+| Nvidia RTX 4070 SUPER | `4070super` |
+| Nvidia RTX 4070 Ti | `4070ti` |
+| Nvidia RTX 4080 16G | `4080-16g` |
+| Nvidia RTX 4090 | `4090` |
+| Nvidia RTX 5070 | `5070` |
+| Nvidia RTX 5070 Ti | `5070ti` |
+| Nvidia RTX 5080 | `5080` |
+| Nvidia RTX 5090 | `5090` |
| Sony PS5 | `sonyps5c` |
| Sony PS5 Digital Edition | `sonyps5de` |
+| Ubiquiti G4 Doorbell Pro | `g4-doorbell-pro` |
+| Unifi Dream Machine | `udm-us` |
+| Unifi Dream Machine Pro | `udm-pro` |
+| Unifi Dream Router | `udm-us` |
+| Unifi Network Video Recorder | `unvr` |
+| Unifi Network Video Recorder Pro | `unvr-pro` |
| Xbox Series S | `xboxss` |
| Xbox Series X | `xboxsx` |
## Nvidia Store Reference
???+ note
- Use the Nvidia Store to check stock for Founders Edition cards only (3060 Ti/3070/3080/3080 Ti/3090). For USA use `bestbuy` instead.
+ Use the Nvidia Store to check stock for Founders Edition cards only (3060 Ti/3070/3080/3080 Ti/3090/4090). For USA use `bestbuy` instead.
???+ info
Use the `STORE` variable for your chosen country. For example, to check for a FE card in Belgium you would use the `nvidia-fr` store.
| Country | Store | Retailer
|:---:|:---:|:---:|
-| Austria | `nvidia-de`| NBB |
+| Austria | `nvidia-de` | NBB |
| Belgium | `nvidia-fr` | LDLC |
| France | `nvidia-fr` | LDLC |
| Germany | `nvidia-de` | NBB |
diff --git a/docs/reference/notification.md b/docs/reference/notification.md
index 4b6c84afdf..ea83d7fb4c 100644
--- a/docs/reference/notification.md
+++ b/docs/reference/notification.md
@@ -32,22 +32,46 @@ Refer to https://github.com/node-apn/node-apn for config options.
| Environment variable | Description |
|:---:|---|
| `DISCORD_NOTIFY_GROUP` | Discord group you would like to notify |
+| `DISCORD_NOTIFY_GROUP_3050` | Discord group to notify on 3050 stock |
| `DISCORD_NOTIFY_GROUP_3060` | Discord group to notify on 3060 stock |
| `DISCORD_NOTIFY_GROUP_3060TI` | Discord group to notify on 3060 Ti stock |
| `DISCORD_NOTIFY_GROUP_3070` | Discord group to notify on 3070 stock |
+| `DISCORD_NOTIFY_GROUP_3070TI` | Discord group to notify on 3070 Ti stock |
| `DISCORD_NOTIFY_GROUP_3080` | Discord group to notify on 3080 stock |
| `DISCORD_NOTIFY_GROUP_3080TI` | Discord group to notify on 3080 Ti stock |
| `DISCORD_NOTIFY_GROUP_3090` | Discord group to notify on 3090 stock |
+| `DISCORD_NOTIFY_GROUP_4080_16G` | Discord group to notify on 4080 16G stock |
+| `DISCORD_NOTIFY_GROUP_4090` | Discord group to notify on 4090 stock |
+| `DISCORD_NOTIFY_GROUP_5070` | Discord group to notify on 5070 stock |
+| `DISCORD_NOTIFY_GROUP_5070TI` | Discord group to notify on 5070 Ti stock |
+| `DISCORD_NOTIFY_GROUP_5080` | Discord group to notify on 5080 stock |
+| `DISCORD_NOTIFY_GROUP_5090` | Discord group to notify on 5090 stock |
+| `DISCORD_NOTIFY_GROUP_A3MATX` | Discord group to notify on Lian Li A3 mATX Case stock |
+| `DISCORD_NOTIFY_GROUP_ARC` | Discord group to notify on Intel Arc B580 stock |
+| `DISCORD_NOTIFY_GROUP_CORSAIR_SF` | Discord group to notify on Corsair SF stock |
+| `DISCORD_NOTIFY_GROUP_DARKHERO` | Discord group to notify on Dark Hero stock |
+| `DISCORD_NOTIFY_GROUP_RX6700XT` | Discord group to notify on RX 6700XT stock |
+| `DISCORD_NOTIFY_GROUP_RX6800` | Discord group to notify on RX 6800 stock |
+| `DISCORD_NOTIFY_GROUP_RX6800XT` | Discord group to notify on RX 6800XT stock |
+| `DISCORD_NOTIFY_GROUP_RX6900XT` | Discord group to notify on RX 6900XT stock |
| `DISCORD_NOTIFY_GROUP_RYZEN5600` | Discord group to notify on 5600X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN5600` | Discord group to notify on Ryzen 5600X stock |
| `DISCORD_NOTIFY_GROUP_RYZEN5800` | Discord group to notify on 5800X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN5800` | Discord group to notify on Ryzen 5800X stock |
| `DISCORD_NOTIFY_GROUP_RYZEN5900` | Discord group to notify on 5900X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN5900` | Discord group to notify on Ryzen 5900X stock |
| `DISCORD_NOTIFY_GROUP_RYZEN5950` | Discord group to notify on 5950X stock |
-| `DISCORD_NOTIFY_GROUP_DARKHERO` | Discord group to notify on Dark Hero stock |
-| `DISCORD_NOTIFY_GROUP_CORSAIR_SF` | Discord group to notify on Corsair SF stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN5950` | Discord group to notify on Ryzen 5950X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN7800X3D` | Discord group to notify on Ryzen 7800X3D stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN9600X` | Discord group to notify on Ryzen 9600X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN9700X` | Discord group to notify on Ryzen 9700X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN9800X3D` | Discord group to notify on Ryzen 9800X3D stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN9900X` | Discord group to notify on Ryzen 9900X stock |
+| `DISCORD_NOTIFY_GROUP_RYZEN9950X` | Discord group to notify on Ryzen 9950X stock |
| `DISCORD_NOTIFY_GROUP_SONYPS5C` | Discord group to notify on Sony PS5 stock |
| `DISCORD_NOTIFY_GROUP_SONYPS5DE` | Discord group to notify on Sony PS5 Digital stock |
-| `DISCORD_NOTIFY_GROUP_XBOXSX` | Discord group to notify on Xbox Series X stock |
| `DISCORD_NOTIFY_GROUP_XBOXSS` | Discord group to notify on Xbox Series S stock |
+| `DISCORD_NOTIFY_GROUP_XBOXSX` | Discord group to notify on Xbox Series X stock |
| `DISCORD_NOTIFY_GROUP_TEST` | Discord group to notify on test stock |
| `DISCORD_WEB_HOOK` | Discord Web Hook URL. Can be comma separated. Use whole webhook URL |
@@ -217,7 +241,7 @@ Generate all Twitter keys at [developer.twitter.com](https://developer.twitter.c
| `TWITTER_CONSUMER_SECRET` | Twitter Consumer Secret |
| `TWITTER_TWEET_TAGS` | List of hashtags to append to the tweet message, e.g.: `#nvidia #nvidiastock` |
-## Twitch
+## Twitch - TEMPORARILY DISABLED
Instructions on how to set up tokens can be found at [d-fischer.github.io/twitch-chat-client/docs/examples/basic-bot](https://d-fischer.github.io/twitch-chat-client/docs/examples/basic-bot).
@@ -255,3 +279,16 @@ Copy the API key generated with the service activation.
| `FREEMOBILE_API_KEY` | API key generated with your notification option activation |
Note: here you do not need to give neither your password nor phone number.
+
+## NTFY.sh
+
+You can send notifications using NTFY.sh, which supports various features like priority, tags, and action buttons.
+Use the free service at [ntfy.sh](https://ntfy.sh) or host your own instance.
+
+| Environment variable | Description |
+|:---:|---|
+| `NTFY_URL` | ntfy server URL, e.g. `https://ntfy.sh` |
+| `NTFY_TOPIC` | Topic to publish alerts to |
+| `NTFY_PRIORITY` | Message priority, e.g. max/high/default/low/min, I recommend to use the numbers instead of the string values for the priority. https://docs.ntfy.sh/publish/?h=priority#message-priority |
+| `NTFY_TITLE` | Title of the message |
+| `NTFY_ACCESS_TOKEN` | Access token for authentication. https://docs.ntfy.sh/config/#access-tokens |
diff --git a/dotenv-example b/dotenv-example
index 417282b825..fccaf53a21 100644
--- a/dotenv-example
+++ b/dotenv-example
@@ -28,6 +28,16 @@ DISCORD_NOTIFY_GROUP_3070TI=
DISCORD_NOTIFY_GROUP_3080=
DISCORD_NOTIFY_GROUP_3080TI=
DISCORD_NOTIFY_GROUP_3090=
+DISCORD_NOTIFY_GROUP_4060=
+DISCORD_NOTIFY_GROUP_4070=
+DISCORD_NOTIFY_GROUP_4070SUPER=
+DISCORD_NOTIFY_GROUP_4070TI=
+DISCORD_NOTIFY_GROUP_4080_16G=
+DISCORD_NOTIFY_GROUP_4090=
+DISCORD_NOTIFY_GROUP_5070=
+DISCORD_NOTIFY_GROUP_5070TI=
+DISCORD_NOTIFY_GROUP_5080=
+DISCORD_NOTIFY_GROUP_5090=
DISCORD_NOTIFY_GROUP_CORSAIR_SF=
DISCORD_NOTIFY_GROUP_RX6800=
DISCORD_NOTIFY_GROUP_RX6800XT=
@@ -36,6 +46,12 @@ DISCORD_NOTIFY_GROUP_RYZEN5600=
DISCORD_NOTIFY_GROUP_RYZEN5800=
DISCORD_NOTIFY_GROUP_RYZEN5900=
DISCORD_NOTIFY_GROUP_RYZEN5950=
+DISCORD_NOTIFY_GROUP_RYZEN7800X3D=
+DISCORD_NOTIFY_GROUP_RYZEN9800X3D=
+DISCORD_NOTIFY_GROUP_RYZEN9950X=
+DISCORD_NOTIFY_GROUP_RYZEN9900X=
+DISCORD_NOTIFY_GROUP_RYZEN9700X=
+DISCORD_NOTIFY_GROUP_RYZEN9600X=
DISCORD_NOTIFY_GROUP_SONYPS5C=
DISCORD_NOTIFY_GROUP_SONYPS5DE=
DISCORD_NOTIFY_GROUP_XBOXSX=
@@ -60,7 +76,18 @@ MAX_PRICE_SERIES_3070TI=
MAX_PRICE_SERIES_3080=
MAX_PRICE_SERIES_3080TI=
MAX_PRICE_SERIES_3090=
+MAX_PRICE_SERIES_4060=
+MAX_PRICE_SERIES_4070=
+MAX_PRICE_SERIES_4070SUPER=
+MAX_PRICE_SERIES_4070TI=
+MAX_PRICE_SERIES_4080_16G=
+MAX_PRICE_SERIES_4090=
+MAX_PRICE_SERIES_5070=
+MAX_PRICE_SERIES_5070TI=
+MAX_PRICE_SERIES_5080=
+MAX_PRICE_SERIES_5090=
MAX_PRICE_SERIES_CORSAIR_SF=
+MAX_PRICE_SERIES_G4_DOORBELL_PRO=
MAX_PRICE_SERIES_RX6800=
MAX_PRICE_SERIES_RX6800XT=
MAX_PRICE_SERIES_RX6900XT=
@@ -68,11 +95,22 @@ MAX_PRICE_SERIES_RYZEN5600=
MAX_PRICE_SERIES_RYZEN5800=
MAX_PRICE_SERIES_RYZEN5900=
MAX_PRICE_SERIES_RYZEN5950=
+MAX_PRICE_SERIES_RYZEN7800X3D=
+MAX_PRICE_SERIES_RYZEN9800X3D=
+MAX_PRICE_SERIES_RYZEN9950X=
+MAX_PRICE_SERIES_RYZEN9900X=
+MAX_PRICE_SERIES_RYZEN9700X=
+MAX_PRICE_SERIES_RYZEN9600X=
MAX_PRICE_SERIES_SONYPS5C=
MAX_PRICE_SERIES_SONYPS5DE=
MAX_PRICE_SERIES_XBOXSS=
MAX_PRICE_SERIES_XBOXSX=
MAX_PRICE_SERIES_TEST=
+MAX_PRICE_SERIES_UDM_PRO=
+MAX_PRICE_SERIES_UDM_US=
+MAX_PRICE_SERIES_UDR_US=
+MAX_PRICE_SERIES_UNVR=
+MAX_PRICE_SERIES_UNVR_PRO=
MICROCENTER_LOCATION=
MQTT_BROKER_ADDRESS=
MQTT_BROKER_PORT=
@@ -112,8 +150,10 @@ PUSHOVER_RETRY=
PUSHOVER_SOUND=
PUSHOVER_TOKEN=
PUSHOVER_USER=
+REDIS_URL=
RESTART_TIME=
SCREENSHOT=
+SCREENSHOT_DIR=
SHOW_ONLY_BRANDS=
SHOW_ONLY_MODELS=
SHOW_ONLY_SERIES=
@@ -145,4 +185,9 @@ STREAMLABS_SOUND=
STREAMLABS_DURATION=
FREEMOBILE_ID=
FREEMOBILE_API_KEY=
+NTFY_TOPIC=
+NTFY_PRIORITY=
+NTFY_TITLE=
+NTFY_ACCESS_TOKEN=
+NTFY_URL=
WEB_PORT=
diff --git a/helpers/brandList.ts b/helpers/brandList.ts
new file mode 100644
index 0000000000..b830bd9e12
--- /dev/null
+++ b/helpers/brandList.ts
@@ -0,0 +1,31 @@
+import {storeList} from '../src/store/model/index';
+
+// First get the grouped and deduplicated data
+const groupedByBrandAndModel = [...storeList]
+ .map(storeInfo => storeInfo[1])
+ .flatMap(store => store.links || [])
+ .reduce((groupMap, link) => {
+ const key = `${link.brand}`;
+ if (!groupMap.has(key)) {
+ groupMap.set(key, new Set());
+ }
+ groupMap.get(key)!.add(link.model);
+ return groupMap;
+ }, new Map>());
+
+// Convert to sorted table format
+const sortedEntries = [...groupedByBrandAndModel.entries()]
+ .sort(([brandA], [brandB]) => brandA.localeCompare(brandB))
+ .map(([brand, modelSet]) => {
+ const sortedModels = [...modelSet].sort().join('`, `');
+ return `| \`${brand}\` | \`${sortedModels}\` |`;
+ });
+
+// Create table header and combine with data
+const tableHeader = '| Brand | Model |';
+const headerSeparator = '|:---:|---|';
+const formattedTable = [tableHeader, headerSeparator, ...sortedEntries].join(
+ '\n'
+);
+
+console.log(formattedTable);
diff --git a/mkdocs.yml b/mkdocs.yml
index 552188360e..26f24467ae 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -7,6 +7,7 @@ site_description: 🤖 The world's easiest, most powerful stock checker
# Repository
repo_name: jef/streetmerchant
repo_url: https://github.com/jef/streetmerchant
+edit_uri: edit/main/docs/
# Copyright
copyright: Copyright © 2016 - 2020 Jef LeCompte
@@ -24,9 +25,16 @@ theme:
language: en
name: material
palette:
- scheme: default
- primary: indigo
- accent: indigo
+ - media: "(prefers-color-scheme: light)"
+ scheme: default
+ toggle:
+ icon: material/weather-night
+ name: Switch to dark mode
+ - media: "(prefers-color-scheme: dark)"
+ scheme: slate
+ toggle:
+ icon: material/weather-sunny
+ name: Switch to light mode
# Plugins
plugins:
@@ -39,8 +47,6 @@ extra:
social:
- icon: fontawesome/brands/github
link: https://github.com/jef
- - icon: fontawesome/brands/twitter
- link: https://twitter.com/hijxf
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/in/jeflecompte
diff --git a/package-lock.json b/package-lock.json
index feff999fc7..9634dfbb9c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,12 @@
{
"name": "streetmerchant",
- "version": "3.5.0",
+ "version": "3.11.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "version": "3.5.0",
+ "name": "streetmerchant",
+ "version": "3.11.0",
"license": "MIT",
"dependencies": {
"@doridian/puppeteer-page-proxy": "^1.2.11",
@@ -30,10 +31,7 @@
"pushover-notifications": "^1.2.2",
"redis": "^3.1.2",
"top-user-agents": "^1.0.37",
- "twilio": "^3.66.1",
- "twitch": "^4.6.5",
- "twitch-auth": "^4.6.5",
- "twitch-chat-client": "^4.6.5",
+ "twilio": "^3.71.1",
"twitter": "^1.7.1",
"winston": "^3.3.3"
},
@@ -228,162 +226,6 @@
"node": ">=12"
}
},
- "node_modules/@d-fischer/cache-decorators": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@d-fischer/cache-decorators/-/cache-decorators-2.1.3.tgz",
- "integrity": "sha512-MlM8ipg5Exkc0Ok//sG83smBW4mLRL+/ZngfxYQ8IgxBjfpM3m2M+Y2X+a9St3EyJfYoVKHR8RWdICsU+W3gSA==",
- "dependencies": {
- "@d-fischer/shared-utils": "^3.0.1",
- "@types/node": "^14.14.22",
- "tslib": "^2.1.0"
- }
- },
- "node_modules/@d-fischer/cache-decorators/node_modules/@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- },
- "node_modules/@d-fischer/connection": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/connection/-/connection-6.5.0.tgz",
- "integrity": "sha512-C0BQjswoiEdE9C644R7Cte3WpZ5A5f61DDdCxzjr0/UKIITTLVdcBbiCxstCWjwmM/MMvIokd4raZkJjnByUog==",
- "dependencies": {
- "@d-fischer/isomorphic-ws": "^5.0.2",
- "@d-fischer/logger": "^3.0.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "@d-fischer/typed-event-emitter": "^3.2.2",
- "@types/node": "^14.14.19",
- "@types/ws": "^7.2.7",
- "tslib": "^2.0.3",
- "ws": "^7.4.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/@d-fischer/connection/node_modules/@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- },
- "node_modules/@d-fischer/cross-fetch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/cross-fetch/-/cross-fetch-4.0.2.tgz",
- "integrity": "sha512-3ONhZxPmgCerBi8rU9kDQktF2zMpv7gkVJuoR8I+pYeO4QWccEcqQem0i1mLBh7/y7ejR474RZb3S3EO/Sdi3A==",
- "dependencies": {
- "node-fetch": "2.6.1"
- }
- },
- "node_modules/@d-fischer/deprecate": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/deprecate/-/deprecate-2.0.2.tgz",
- "integrity": "sha512-wlw3HwEanJFJKctwLzhfOM6LKwR70FPfGZGoKOhWBKyOPXk+3a9Cc6S9zhm6tka7xKtpmfxVIReGUwPnMbIaZg=="
- },
- "node_modules/@d-fischer/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-7eoxnxcto5eVPW5h1T+ePnVFukmI9f/ZR9nlBLh1t3kyzJDUNor2C+YW9H/Terw3YnbZSDgDYrpCJCHtOtAQHw==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@d-fischer/isomorphic-ws": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@d-fischer/isomorphic-ws/-/isomorphic-ws-5.0.4.tgz",
- "integrity": "sha512-iNX2+kupoYtTg5snSzvqpa+rgQmnxWbngU5/uV0y4PyuJHJIoWJuTa/KPh+3ruW4UtloqhCpGe8pyb0EGjt9xQ==",
- "peerDependencies": {
- "ws": "*"
- }
- },
- "node_modules/@d-fischer/logger": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/logger/-/logger-3.1.0.tgz",
- "integrity": "sha512-kNg9PjmiyH9DMr70mAWU+i+dy3+e1hI0lR+No5RJduQtexI247NmEzNd0pethpwm+1uA0MRf3w9QnqZ1PHKvyA==",
- "dependencies": {
- "detect-node": "^2.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/@d-fischer/promise.allsettled": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/promise.allsettled/-/promise.allsettled-2.0.2.tgz",
- "integrity": "sha512-xY0vYDwJYFe22MS5ccQ50N4Mcc2nQ8J4eWE5Y354IxZwW32O5uTT6mmhFSuVF6ZrKvzHOCIrK+9WqOR6TI3tcA==",
- "dependencies": {
- "array.prototype.map": "^1.0.3",
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.2",
- "get-intrinsic": "^1.0.2",
- "iterate-value": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/@d-fischer/qs": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/qs/-/qs-7.0.2.tgz",
- "integrity": "sha512-yAu3xDooiL+ef84Jo8nLjDjWBRk7RXk163Y6aTvRB7FauYd3spQD/dWvgT7R4CrN54Juhrrc3dMY7mc+jZGurQ==",
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/@d-fischer/rate-limiter": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@d-fischer/rate-limiter/-/rate-limiter-0.4.3.tgz",
- "integrity": "sha512-KzmssPK/uKONvq1oQpmOvMoacrfTPocNlkBTf7/3VYFSvk8mbs9maeDLelbLYk0QJZjpl6o6gCEyi8s9nt/A4A==",
- "dependencies": {
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/promise.allsettled": "^2.0.2",
- "@types/node": "^12.12.5",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/@d-fischer/rate-limiter/node_modules/@types/node": {
- "version": "12.20.16",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.16.tgz",
- "integrity": "sha512-6CLxw83vQf6DKqXxMPwl8qpF8I7THFZuIwLt4TnNsumxkp1VsRZWT8txQxncT/Rl2UojTsFzWgDG4FRMwafrlA=="
- },
- "node_modules/@d-fischer/shared-utils": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/shared-utils/-/shared-utils-3.2.0.tgz",
- "integrity": "sha512-YgAPpd0jxtchZlEqvVmL21A+/Ottx5759s6THiJs0o5+8pPIrshBlULhmfunbaidHmViuUhjxzZfqRkYl0MR9g==",
- "dependencies": {
- "@types/node": "^14.11.2",
- "tslib": "^2.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/@d-fischer/shared-utils/node_modules/@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- },
- "node_modules/@d-fischer/typed-event-emitter": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/typed-event-emitter/-/typed-event-emitter-3.2.2.tgz",
- "integrity": "sha512-qT53HcoEM644EiDYMG1mz478qcys7p/mya+7d7annFlXmHCJlZ3tfKJWonDf/itKOBdjaaiRqV2goS+85dsWVA==",
- "dependencies": {
- "@types/node": "^14.11.2",
- "tslib": "^2.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/@d-fischer/typed-event-emitter/node_modules/@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- },
"node_modules/@dabh/diagnostics": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
@@ -398,6 +240,7 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.4.0.tgz",
"integrity": "sha512-EiwLltKph6TSaPJIzJYdzNc1PnA2ZNaaE0t0ODg3ghnpVHqfgd0YX9/srsleYHW2cw1sfIq+kbM+h0etf7GWLA==",
+ "deprecated": "no longer supported",
"dependencies": {
"@sindresorhus/is": "^4.0.1",
"discord-api-types": "^0.22.0",
@@ -414,6 +257,7 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
"integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==",
+ "deprecated": "no longer supported",
"engines": {
"node": ">=14.0.0"
}
@@ -422,6 +266,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -885,6 +730,7 @@
"version": "2.5.12",
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
"integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
+ "dev": true,
"dependencies": {
"@types/node": "*",
"form-data": "^3.0.0"
@@ -894,6 +740,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dev": true,
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -928,9 +775,9 @@
"dev": true
},
"node_modules/@types/puppeteer": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.3.tgz",
- "integrity": "sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==",
+ "version": "5.4.7",
+ "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.7.tgz",
+ "integrity": "sha512-JdGWZZYL0vKapXF4oQTC5hLVNfOgdPrqeZ1BiQnGk5cB7HeE91EWUiTdVSdQPobRN8rIcdffjiOgCYJ/S8QrnQ==",
"peer": true,
"dependencies": {
"@types/node": "*"
@@ -1576,24 +1423,6 @@
"node": ">=8"
}
},
- "node_modules/array.prototype.map": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.3.tgz",
- "integrity": "sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "es-array-method-boxes-properly": "^1.0.0",
- "is-string": "^1.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -2410,9 +2239,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.10.6",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz",
- "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw=="
+ "version": "1.10.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz",
+ "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig=="
},
"node_modules/debug": {
"version": "4.3.2",
@@ -2533,17 +2362,6 @@
"node": ">=8"
}
},
- "node_modules/define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dependencies": {
- "object-keys": "^1.0.12"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -2568,11 +2386,6 @@
"node": ">=8"
}
},
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
- },
"node_modules/devtools-protocol": {
"version": "0.0.869402",
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz",
@@ -2603,6 +2416,7 @@
"version": "0.22.0",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
"integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==",
+ "deprecated": "No longer supported. Install the latest release!",
"engines": {
"node": ">=12"
}
@@ -2611,6 +2425,7 @@
"version": "13.0.1",
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.0.1.tgz",
"integrity": "sha512-pEODCFfxypBnGEYpSgjkn1jt70raCS1um7Zp0AXEfW1DcR29wISzQ/WeWdnjP5KTXGi0LTtkRiUjOsMgSoukxA==",
+ "deprecated": "no longer supported",
"dependencies": {
"@discordjs/builders": "^0.4.0",
"@discordjs/collection": "^0.2.1",
@@ -2819,85 +2634,12 @@
"is-arrayish": "^0.2.1"
}
},
- "node_modules/es-abstract": {
- "version": "1.18.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
- "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "is-callable": "^1.2.3",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.3",
- "is-string": "^1.0.6",
- "object-inspect": "^1.10.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
- },
- "node_modules/es-get-iterator": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
- "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.0",
- "has-symbols": "^1.0.1",
- "is-arguments": "^1.1.0",
- "is-map": "^2.0.2",
- "is-set": "^2.0.2",
- "is-string": "^1.0.5",
- "isarray": "^2.0.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-get-iterator/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- },
"node_modules/es-module-lexer": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz",
"integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==",
"dev": true
},
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -3928,14 +3670,6 @@
"node": ">= 0.4.0"
}
},
- "node_modules/has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -4223,57 +3957,12 @@
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
},
- "node_modules/ircv3": {
- "version": "0.26.14",
- "resolved": "https://registry.npmjs.org/ircv3/-/ircv3-0.26.14.tgz",
- "integrity": "sha512-R0wiULLrl2d6Rrmw3vgyi9Cxw1KHky9/RwTkSo/Y6sXFH45EuLpVJhm9eLHFTs8EKrayq4H6FYfEN95KBC1qMQ==",
- "dependencies": {
- "@d-fischer/connection": "^6.4.2",
- "@d-fischer/escape-string-regexp": "^5.0.0",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "@d-fischer/typed-event-emitter": "^3.2.2",
- "@types/node": "^14.14.19",
- "klona": "^2.0.4",
- "tslib": "^2.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/ircv3/node_modules/@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- },
- "node_modules/is-arguments": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
- "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
- "dependencies": {
- "call-bind": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "node_modules/is-bigint": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
- "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -4286,36 +3975,11 @@
"node": ">=8"
}
},
- "node_modules/is-boolean-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
- "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"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=="
},
- "node_modules/is-callable": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
- "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-ci": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@@ -4340,17 +4004,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-date-object": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
- "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-docker": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
@@ -4424,25 +4077,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-npm": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
@@ -4464,17 +4098,6 @@
"node": ">=0.12.0"
}
},
- "node_modules/is-number-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
- "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
@@ -4512,29 +4135,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-regex": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
- "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -4543,31 +4143,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-string": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
- "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -4662,23 +4237,6 @@
"node": ">=8"
}
},
- "node_modules/iterate-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
- "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw=="
- },
- "node_modules/iterate-value": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
- "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
- "dependencies": {
- "es-get-iterator": "^1.0.2",
- "iterate-iterator": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/jest-worker": {
"version": "27.0.6",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz",
@@ -4869,14 +4427,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/klona": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz",
- "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==",
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/kuler": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
@@ -8405,6 +7955,11 @@
"safer-buffer": "^2.0.2",
"tweetnacl": "~0.14.0"
},
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
"engines": {
"node": ">=0.10.0"
}
@@ -8691,31 +8246,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -9404,6 +8934,7 @@
"version": "9.1.1",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz",
"integrity": "sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==",
+ "deprecated": "Version no longer supported. Upgrade to @latest",
"hasInstallScript": true,
"dependencies": {
"debug": "^4.1.0",
@@ -9424,13 +8955,12 @@
}
},
"node_modules/puppeteer-extra": {
- "version": "3.1.18",
- "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.18.tgz",
- "integrity": "sha512-mGQyAnxaGcZomx7NVC4wgAkZl0MLTdE/GIfwRSbLJ9L4yIxPg9uEA3yiLBe+x09tjhTGEtv8KDef8Bl53RXgiA==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.4.tgz",
+ "integrity": "sha512-fN5pHvSMJ8d1o7Z8wLLTQOUBpORD2BcFn+KDs7QnkGZs9SV69hcUcce67vX4L4bNSEG3A0P6Osrv+vWNhhdm8w==",
"peer": true,
"dependencies": {
"@types/debug": "^4.1.0",
- "@types/puppeteer": "5.4.3",
"debug": "^4.1.1",
"deepmerge": "^4.2.2"
},
@@ -9438,7 +8968,20 @@
"node": ">=8"
},
"peerDependencies": {
- "puppeteer": "*"
+ "@types/puppeteer": "*",
+ "puppeteer": "*",
+ "puppeteer-core": "*"
+ },
+ "peerDependenciesMeta": {
+ "@types/puppeteer": {
+ "optional": true
+ },
+ "puppeteer": {
+ "optional": true
+ },
+ "puppeteer-core": {
+ "optional": true
+ }
}
},
"node_modules/puppeteer-extra-plugin": {
@@ -9521,6 +9064,7 @@
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.5.0.tgz",
"integrity": "sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==",
+ "deprecated": "Version no longer supported. Upgrade to @latest",
"hasInstallScript": true,
"peer": true,
"dependencies": {
@@ -10627,30 +10171,6 @@
"node": ">=8"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -10919,11 +10439,6 @@
"node": ">=8.0"
}
},
- "node_modules/top-package": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/top-package/-/top-package-1.0.1.tgz",
- "integrity": "sha512-tsuhQlHSigOTTvonxHXwqSKEVSnWMh2GvpTvXa5YmoyOwL5YvU4lTd/KNVZlKM5v7gqx44UEuQxyPQEpmaIHdg=="
- },
"node_modules/top-user-agents": {
"version": "1.0.37",
"resolved": "https://registry.npmjs.org/top-user-agents/-/top-user-agents-1.0.37.tgz",
@@ -11098,11 +10613,11 @@
}
},
"node_modules/twilio": {
- "version": "3.66.1",
- "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.66.1.tgz",
- "integrity": "sha512-BmIgfx2VuS7tj4IscBhyEj7CdmtfIaaJ1IuNeGoJFYBx5xikpuwkR0Ceo5CNtK5jnN3SCKmxHxToec/MYEXl0A==",
+ "version": "3.71.1",
+ "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.71.1.tgz",
+ "integrity": "sha512-P/KFvm33UW15EnpHJKgdTxUa1u6MlR/u+sCVnL4ie2TDRv6t7kX+ieIGQMpH7bP/z7FXkTjEt0lz4M+XJ/XWOg==",
"dependencies": {
- "axios": "^0.21.1",
+ "axios": "^0.21.4",
"dayjs": "^1.8.29",
"https-proxy-agent": "^5.0.0",
"jsonwebtoken": "^8.5.1",
@@ -11111,13 +10626,21 @@
"qs": "^6.9.4",
"rootpath": "^0.1.2",
"scmp": "^2.1.0",
- "url-parse": "^1.5.0",
+ "url-parse": "^1.5.3",
"xmlbuilder": "^13.0.2"
},
"engines": {
"node": ">=6.0"
}
},
+ "node_modules/twilio/node_modules/axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "dependencies": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
"node_modules/twilio/node_modules/qs": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
@@ -11132,95 +10655,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/twitch": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch/-/twitch-4.6.5.tgz",
- "integrity": "sha512-vQ9p7s9SHcUgU7Lul7pAf70p8vQXk2o9BCwkGqzZjmMsVMsoikk3MLD7n9Cjle9bIPvWuqW/MyMOw3WdrMe8yg==",
- "hasInstallScript": true,
- "dependencies": {
- "@d-fischer/cache-decorators": "^2.1.1",
- "@d-fischer/deprecate": "^2.0.2",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/rate-limiter": "^0.4.3",
- "@d-fischer/shared-utils": "^3.0.1",
- "top-package": "^1.0.0",
- "tslib": "^2.0.3",
- "twitch-api-call": "^4.6.5",
- "twitch-auth": "^4.6.5",
- "twitch-common": "^4.6.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/twitch-api-call": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-api-call/-/twitch-api-call-4.6.5.tgz",
- "integrity": "sha512-a2clXthjFeuIEo+nl1pliTBkms/S+uSTgUB7xyC1FNimJooOq7cAtC6xNWBgtT1JpYdnxZjhCIHCUVtdpagp4g==",
- "dependencies": {
- "@d-fischer/cross-fetch": "^4.0.2",
- "@d-fischer/qs": "^7.0.2",
- "@types/node-fetch": "^2.5.7",
- "node-fetch": "^2.6.1",
- "tslib": "^2.0.3",
- "twitch-common": "^4.6.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/twitch-auth": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-auth/-/twitch-auth-4.6.5.tgz",
- "integrity": "sha512-BVeW3P2coQn1aNV1sVH/Q0wbgkl1Saf/M76OSanitcA8IgvnEfCGY3iDt2Taec98eBXL+E8SN1iLHLsl3GBHvg==",
- "dependencies": {
- "@d-fischer/deprecate": "^2.0.2",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "tslib": "^2.0.3",
- "twitch-api-call": "^4.6.5",
- "twitch-common": "^4.6.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
- "node_modules/twitch-chat-client": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-chat-client/-/twitch-chat-client-4.6.5.tgz",
- "integrity": "sha512-MpWSGWHvrw9DLpJZokdwzJxVOtSLApIm9JAbEsND47qxKgrxymf/1RfinSL93qRDrJhtrWwqlUXV2SpZz5YxpQ==",
- "dependencies": {
- "@d-fischer/cache-decorators": "^2.1.1",
- "@d-fischer/deprecate": "^2.0.2",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/rate-limiter": "^0.4.3",
- "@d-fischer/shared-utils": "^3.0.1",
- "@d-fischer/typed-event-emitter": "^3.2.2",
- "ircv3": "^0.26.14",
- "tslib": "^2.0.3",
- "twitch-auth": "^4.6.5",
- "twitch-common": "^4.6.5"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- },
- "peerDependencies": {
- "twitch": "^4.4.0"
- }
- },
- "node_modules/twitch-common": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-common/-/twitch-common-4.6.5.tgz",
- "integrity": "sha512-V8rgOIvX6bUMxBQ3BqrmvQOZOfcxsPEZR7lLNXlRsLxHAAbMGze1/SiAzhzQzH/8OV7G3qslWNGEHuQE5iWHbQ==",
- "dependencies": {
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "tslib": "^2.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- }
- },
"node_modules/twitter": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/twitter/-/twitter-1.7.1.tgz",
@@ -11289,20 +10723,6 @@
"node": ">=4.2.0"
}
},
- "node_modules/unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
- "which-boxed-primitive": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/unbzip2-stream": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz",
@@ -11398,9 +10818,9 @@
"integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="
},
"node_modules/url-parse": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
- "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
@@ -11608,21 +11028,6 @@
"node": ">= 8"
}
},
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
@@ -12143,146 +11548,6 @@
"@cspotcode/source-map-consumer": "0.8.0"
}
},
- "@d-fischer/cache-decorators": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@d-fischer/cache-decorators/-/cache-decorators-2.1.3.tgz",
- "integrity": "sha512-MlM8ipg5Exkc0Ok//sG83smBW4mLRL+/ZngfxYQ8IgxBjfpM3m2M+Y2X+a9St3EyJfYoVKHR8RWdICsU+W3gSA==",
- "requires": {
- "@d-fischer/shared-utils": "^3.0.1",
- "@types/node": "^14.14.22",
- "tslib": "^2.1.0"
- },
- "dependencies": {
- "@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- }
- }
- },
- "@d-fischer/connection": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/connection/-/connection-6.5.0.tgz",
- "integrity": "sha512-C0BQjswoiEdE9C644R7Cte3WpZ5A5f61DDdCxzjr0/UKIITTLVdcBbiCxstCWjwmM/MMvIokd4raZkJjnByUog==",
- "requires": {
- "@d-fischer/isomorphic-ws": "^5.0.2",
- "@d-fischer/logger": "^3.0.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "@d-fischer/typed-event-emitter": "^3.2.2",
- "@types/node": "^14.14.19",
- "@types/ws": "^7.2.7",
- "tslib": "^2.0.3",
- "ws": "^7.4.2"
- },
- "dependencies": {
- "@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- }
- }
- },
- "@d-fischer/cross-fetch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/cross-fetch/-/cross-fetch-4.0.2.tgz",
- "integrity": "sha512-3ONhZxPmgCerBi8rU9kDQktF2zMpv7gkVJuoR8I+pYeO4QWccEcqQem0i1mLBh7/y7ejR474RZb3S3EO/Sdi3A==",
- "requires": {
- "node-fetch": "2.6.1"
- }
- },
- "@d-fischer/deprecate": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/deprecate/-/deprecate-2.0.2.tgz",
- "integrity": "sha512-wlw3HwEanJFJKctwLzhfOM6LKwR70FPfGZGoKOhWBKyOPXk+3a9Cc6S9zhm6tka7xKtpmfxVIReGUwPnMbIaZg=="
- },
- "@d-fischer/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-7eoxnxcto5eVPW5h1T+ePnVFukmI9f/ZR9nlBLh1t3kyzJDUNor2C+YW9H/Terw3YnbZSDgDYrpCJCHtOtAQHw=="
- },
- "@d-fischer/isomorphic-ws": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@d-fischer/isomorphic-ws/-/isomorphic-ws-5.0.4.tgz",
- "integrity": "sha512-iNX2+kupoYtTg5snSzvqpa+rgQmnxWbngU5/uV0y4PyuJHJIoWJuTa/KPh+3ruW4UtloqhCpGe8pyb0EGjt9xQ==",
- "requires": {}
- },
- "@d-fischer/logger": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/logger/-/logger-3.1.0.tgz",
- "integrity": "sha512-kNg9PjmiyH9DMr70mAWU+i+dy3+e1hI0lR+No5RJduQtexI247NmEzNd0pethpwm+1uA0MRf3w9QnqZ1PHKvyA==",
- "requires": {
- "detect-node": "^2.0.4",
- "tslib": "^2.0.3"
- }
- },
- "@d-fischer/promise.allsettled": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/promise.allsettled/-/promise.allsettled-2.0.2.tgz",
- "integrity": "sha512-xY0vYDwJYFe22MS5ccQ50N4Mcc2nQ8J4eWE5Y354IxZwW32O5uTT6mmhFSuVF6ZrKvzHOCIrK+9WqOR6TI3tcA==",
- "requires": {
- "array.prototype.map": "^1.0.3",
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.2",
- "get-intrinsic": "^1.0.2",
- "iterate-value": "^1.0.2"
- }
- },
- "@d-fischer/qs": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/qs/-/qs-7.0.2.tgz",
- "integrity": "sha512-yAu3xDooiL+ef84Jo8nLjDjWBRk7RXk163Y6aTvRB7FauYd3spQD/dWvgT7R4CrN54Juhrrc3dMY7mc+jZGurQ=="
- },
- "@d-fischer/rate-limiter": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@d-fischer/rate-limiter/-/rate-limiter-0.4.3.tgz",
- "integrity": "sha512-KzmssPK/uKONvq1oQpmOvMoacrfTPocNlkBTf7/3VYFSvk8mbs9maeDLelbLYk0QJZjpl6o6gCEyi8s9nt/A4A==",
- "requires": {
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/promise.allsettled": "^2.0.2",
- "@types/node": "^12.12.5",
- "tslib": "^2.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "12.20.16",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.16.tgz",
- "integrity": "sha512-6CLxw83vQf6DKqXxMPwl8qpF8I7THFZuIwLt4TnNsumxkp1VsRZWT8txQxncT/Rl2UojTsFzWgDG4FRMwafrlA=="
- }
- }
- },
- "@d-fischer/shared-utils": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@d-fischer/shared-utils/-/shared-utils-3.2.0.tgz",
- "integrity": "sha512-YgAPpd0jxtchZlEqvVmL21A+/Ottx5759s6THiJs0o5+8pPIrshBlULhmfunbaidHmViuUhjxzZfqRkYl0MR9g==",
- "requires": {
- "@types/node": "^14.11.2",
- "tslib": "^2.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- }
- }
- },
- "@d-fischer/typed-event-emitter": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@d-fischer/typed-event-emitter/-/typed-event-emitter-3.2.2.tgz",
- "integrity": "sha512-qT53HcoEM644EiDYMG1mz478qcys7p/mya+7d7annFlXmHCJlZ3tfKJWonDf/itKOBdjaaiRqV2goS+85dsWVA==",
- "requires": {
- "@types/node": "^14.11.2",
- "tslib": "^2.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- }
- }
- },
"@dabh/diagnostics": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
@@ -12725,6 +11990,7 @@
"version": "2.5.12",
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz",
"integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
+ "dev": true,
"requires": {
"@types/node": "*",
"form-data": "^3.0.0"
@@ -12734,6 +12000,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dev": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -12767,9 +12034,9 @@
"dev": true
},
"@types/puppeteer": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.3.tgz",
- "integrity": "sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==",
+ "version": "5.4.7",
+ "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.7.tgz",
+ "integrity": "sha512-JdGWZZYL0vKapXF4oQTC5hLVNfOgdPrqeZ1BiQnGk5cB7HeE91EWUiTdVSdQPobRN8rIcdffjiOgCYJ/S8QrnQ==",
"peer": true,
"requires": {
"@types/node": "*"
@@ -13280,18 +12547,6 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true
},
- "array.prototype.map": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.3.tgz",
- "integrity": "sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA==",
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "es-array-method-boxes-properly": "^1.0.0",
- "is-string": "^1.0.5"
- }
- },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -13931,9 +13186,9 @@
}
},
"dayjs": {
- "version": "1.10.6",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.6.tgz",
- "integrity": "sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw=="
+ "version": "1.10.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz",
+ "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig=="
},
"debug": {
"version": "4.3.2",
@@ -14013,14 +13268,6 @@
"resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
"integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -14036,11 +13283,6 @@
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
"integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA=="
},
- "detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
- },
"devtools-protocol": {
"version": "0.0.869402",
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz",
@@ -14238,72 +13480,12 @@
"is-arrayish": "^0.2.1"
}
},
- "es-abstract": {
- "version": "1.18.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
- "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "is-callable": "^1.2.3",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.3",
- "is-string": "^1.0.6",
- "object-inspect": "^1.10.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
- }
- },
- "es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
- },
- "es-get-iterator": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
- "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.0",
- "has-symbols": "^1.0.1",
- "is-arguments": "^1.1.0",
- "is-map": "^2.0.2",
- "is-set": "^2.0.2",
- "is-string": "^1.0.5",
- "isarray": "^2.0.5"
- },
- "dependencies": {
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- }
- }
- },
"es-module-lexer": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz",
"integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==",
"dev": true
},
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -15051,11 +14233,6 @@
"function-bind": "^1.1.1"
}
},
- "has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -15261,47 +14438,12 @@
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
},
- "ircv3": {
- "version": "0.26.14",
- "resolved": "https://registry.npmjs.org/ircv3/-/ircv3-0.26.14.tgz",
- "integrity": "sha512-R0wiULLrl2d6Rrmw3vgyi9Cxw1KHky9/RwTkSo/Y6sXFH45EuLpVJhm9eLHFTs8EKrayq4H6FYfEN95KBC1qMQ==",
- "requires": {
- "@d-fischer/connection": "^6.4.2",
- "@d-fischer/escape-string-regexp": "^5.0.0",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "@d-fischer/typed-event-emitter": "^3.2.2",
- "@types/node": "^14.14.19",
- "klona": "^2.0.4",
- "tslib": "^2.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "14.17.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.5.tgz",
- "integrity": "sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA=="
- }
- }
- },
- "is-arguments": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
- "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
- "requires": {
- "call-bind": "^1.0.0"
- }
- },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-bigint": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
- "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA=="
- },
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -15311,24 +14453,11 @@
"binary-extensions": "^2.0.0"
}
},
- "is-boolean-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
- "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
- "is-callable": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
- "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ=="
- },
"is-ci": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
@@ -15347,11 +14476,6 @@
"has": "^1.0.3"
}
},
- "is-date-object": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz",
- "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A=="
- },
"is-docker": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
@@ -15398,16 +14522,6 @@
"is-path-inside": "^3.0.2"
}
},
- "is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
- },
"is-npm": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
@@ -15420,11 +14534,6 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
- "is-number-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
- "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw=="
- },
"is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
@@ -15450,38 +14559,11 @@
"isobject": "^3.0.1"
}
},
- "is-regex": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
- "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-symbols": "^1.0.2"
- }
- },
- "is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
- },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
- "is-string": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
- "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w=="
- },
- "is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -15555,20 +14637,6 @@
"istanbul-lib-report": "^3.0.0"
}
},
- "iterate-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
- "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw=="
- },
- "iterate-value": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
- "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
- "requires": {
- "es-get-iterator": "^1.0.2",
- "iterate-iterator": "^1.0.1"
- }
- },
"jest-worker": {
"version": "27.0.6",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz",
@@ -15732,11 +14800,6 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
- "klona": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz",
- "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA=="
- },
"kuler": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
@@ -18474,22 +17537,6 @@
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
"integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg=="
},
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- },
- "object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- }
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -19032,13 +18079,12 @@
}
},
"puppeteer-extra": {
- "version": "3.1.18",
- "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.18.tgz",
- "integrity": "sha512-mGQyAnxaGcZomx7NVC4wgAkZl0MLTdE/GIfwRSbLJ9L4yIxPg9uEA3yiLBe+x09tjhTGEtv8KDef8Bl53RXgiA==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.4.tgz",
+ "integrity": "sha512-fN5pHvSMJ8d1o7Z8wLLTQOUBpORD2BcFn+KDs7QnkGZs9SV69hcUcce67vX4L4bNSEG3A0P6Osrv+vWNhhdm8w==",
"peer": true,
"requires": {
"@types/debug": "^4.1.0",
- "@types/puppeteer": "5.4.3",
"debug": "^4.1.1",
"deepmerge": "^4.2.2"
}
@@ -19931,24 +18977,6 @@
"strip-ansi": "^6.0.0"
}
},
- "string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
- },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -20153,11 +19181,6 @@
"is-number": "^7.0.0"
}
},
- "top-package": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/top-package/-/top-package-1.0.1.tgz",
- "integrity": "sha512-tsuhQlHSigOTTvonxHXwqSKEVSnWMh2GvpTvXa5YmoyOwL5YvU4lTd/KNVZlKM5v7gqx44UEuQxyPQEpmaIHdg=="
- },
"top-user-agents": {
"version": "1.0.37",
"resolved": "https://registry.npmjs.org/top-user-agents/-/top-user-agents-1.0.37.tgz",
@@ -20283,11 +19306,11 @@
}
},
"twilio": {
- "version": "3.66.1",
- "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.66.1.tgz",
- "integrity": "sha512-BmIgfx2VuS7tj4IscBhyEj7CdmtfIaaJ1IuNeGoJFYBx5xikpuwkR0Ceo5CNtK5jnN3SCKmxHxToec/MYEXl0A==",
+ "version": "3.71.1",
+ "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.71.1.tgz",
+ "integrity": "sha512-P/KFvm33UW15EnpHJKgdTxUa1u6MlR/u+sCVnL4ie2TDRv6t7kX+ieIGQMpH7bP/z7FXkTjEt0lz4M+XJ/XWOg==",
"requires": {
- "axios": "^0.21.1",
+ "axios": "^0.21.4",
"dayjs": "^1.8.29",
"https-proxy-agent": "^5.0.0",
"jsonwebtoken": "^8.5.1",
@@ -20296,10 +19319,18 @@
"qs": "^6.9.4",
"rootpath": "^0.1.2",
"scmp": "^2.1.0",
- "url-parse": "^1.5.0",
+ "url-parse": "^1.5.3",
"xmlbuilder": "^13.0.2"
},
"dependencies": {
+ "axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "requires": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
"qs": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
@@ -20310,76 +19341,6 @@
}
}
},
- "twitch": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch/-/twitch-4.6.5.tgz",
- "integrity": "sha512-vQ9p7s9SHcUgU7Lul7pAf70p8vQXk2o9BCwkGqzZjmMsVMsoikk3MLD7n9Cjle9bIPvWuqW/MyMOw3WdrMe8yg==",
- "requires": {
- "@d-fischer/cache-decorators": "^2.1.1",
- "@d-fischer/deprecate": "^2.0.2",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/rate-limiter": "^0.4.3",
- "@d-fischer/shared-utils": "^3.0.1",
- "top-package": "^1.0.0",
- "tslib": "^2.0.3",
- "twitch-api-call": "^4.6.5",
- "twitch-auth": "^4.6.5",
- "twitch-common": "^4.6.5"
- }
- },
- "twitch-api-call": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-api-call/-/twitch-api-call-4.6.5.tgz",
- "integrity": "sha512-a2clXthjFeuIEo+nl1pliTBkms/S+uSTgUB7xyC1FNimJooOq7cAtC6xNWBgtT1JpYdnxZjhCIHCUVtdpagp4g==",
- "requires": {
- "@d-fischer/cross-fetch": "^4.0.2",
- "@d-fischer/qs": "^7.0.2",
- "@types/node-fetch": "^2.5.7",
- "node-fetch": "^2.6.1",
- "tslib": "^2.0.3",
- "twitch-common": "^4.6.5"
- }
- },
- "twitch-auth": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-auth/-/twitch-auth-4.6.5.tgz",
- "integrity": "sha512-BVeW3P2coQn1aNV1sVH/Q0wbgkl1Saf/M76OSanitcA8IgvnEfCGY3iDt2Taec98eBXL+E8SN1iLHLsl3GBHvg==",
- "requires": {
- "@d-fischer/deprecate": "^2.0.2",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "tslib": "^2.0.3",
- "twitch-api-call": "^4.6.5",
- "twitch-common": "^4.6.5"
- }
- },
- "twitch-chat-client": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-chat-client/-/twitch-chat-client-4.6.5.tgz",
- "integrity": "sha512-MpWSGWHvrw9DLpJZokdwzJxVOtSLApIm9JAbEsND47qxKgrxymf/1RfinSL93qRDrJhtrWwqlUXV2SpZz5YxpQ==",
- "requires": {
- "@d-fischer/cache-decorators": "^2.1.1",
- "@d-fischer/deprecate": "^2.0.2",
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/rate-limiter": "^0.4.3",
- "@d-fischer/shared-utils": "^3.0.1",
- "@d-fischer/typed-event-emitter": "^3.2.2",
- "ircv3": "^0.26.14",
- "tslib": "^2.0.3",
- "twitch-auth": "^4.6.5",
- "twitch-common": "^4.6.5"
- }
- },
- "twitch-common": {
- "version": "4.6.5",
- "resolved": "https://registry.npmjs.org/twitch-common/-/twitch-common-4.6.5.tgz",
- "integrity": "sha512-V8rgOIvX6bUMxBQ3BqrmvQOZOfcxsPEZR7lLNXlRsLxHAAbMGze1/SiAzhzQzH/8OV7G3qslWNGEHuQE5iWHbQ==",
- "requires": {
- "@d-fischer/logger": "^3.1.0",
- "@d-fischer/shared-utils": "^3.0.1",
- "tslib": "^2.0.3"
- }
- },
"twitter": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/twitter/-/twitter-1.7.1.tgz",
@@ -20429,17 +19390,6 @@
"integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
"dev": true
},
- "unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
- "requires": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
- "which-boxed-primitive": "^1.0.2"
- }
- },
"unbzip2-stream": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz",
@@ -20525,9 +19475,9 @@
"integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="
},
"url-parse": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
- "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
@@ -20686,18 +19636,6 @@
"isexe": "^2.0.0"
}
},
- "which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "requires": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- }
- },
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
diff --git a/package.json b/package.json
index d6ff87213b..7ed217dbd9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "streetmerchant",
- "version": "3.5.0",
+ "version": "3.11.0",
"description": "The world's easiest, most powerful stock checker",
"main": "src/index.ts",
"scripts": {
@@ -57,10 +57,7 @@
"pushover-notifications": "^1.2.2",
"redis": "^3.1.2",
"top-user-agents": "^1.0.37",
- "twilio": "^3.66.1",
- "twitch": "^4.6.5",
- "twitch-auth": "^4.6.5",
- "twitch-chat-client": "^4.6.5",
+ "twilio": "^3.71.1",
"twitter": "^1.7.1",
"winston": "^3.3.3"
},
@@ -85,6 +82,6 @@
"webpack": "^5.50.0"
},
"volta": {
- "node": "16.6.1"
+ "node": "16.18.0"
}
}
diff --git a/src/config.ts b/src/config.ts
index a004d3e43a..10c41ebee9 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -1,7 +1,7 @@
-import {existsSync, readFileSync} from 'fs';
-import {banner} from './banner';
import dotenv from 'dotenv';
+import {existsSync, readFileSync} from 'fs';
import path from 'path';
+import {banner} from './banner';
if (process.env.npm_config_conf) {
if (
@@ -230,6 +230,9 @@ const notifications = {
discord: {
notifyGroup: envOrArray(process.env.DISCORD_NOTIFY_GROUP),
notifyGroupSeries: {
+ arc: envOrArray(process.env.DISCORD_NOTIFY_GROUP_ARC),
+ 'a3-matx': envOrArray(process.env.DISCORD_NOTIFY_GROUP_A3_MATX),
+ 3050: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3050),
3060: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060),
'3060ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3060TI),
3070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3070),
@@ -237,6 +240,16 @@ const notifications = {
3080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080),
'3080ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_3080TI),
3090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_3090),
+ 4060: envOrArray(process.env.DISCORD_NOTIFY_GROUP_4060),
+ 4070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_4070),
+ '4070super': envOrArray(process.env.DISCORD_NOTIFY_GROUP_4070SUPER),
+ '4070ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_4070TI),
+ '4080-16g': envOrArray(process.env.DISCORD_NOTIFY_GROUP_4080_16G),
+ 4090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_4090),
+ 5070: envOrArray(process.env.DISCORD_NOTIFY_GROUP_5070),
+ '5070ti': envOrArray(process.env.DISCORD_NOTIFY_GROUP_5070TI),
+ 5080: envOrArray(process.env.DISCORD_NOTIFY_GROUP_5080),
+ 5090: envOrArray(process.env.DISCORD_NOTIFY_GROUP_5090),
'captcha-deterrent': [],
darkhero: envOrArray(process.env.DISCORD_NOTIFY_GROUP_DARKHERO),
rx6700xt: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RX6700XT),
@@ -247,6 +260,13 @@ const notifications = {
ryzen5800: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5800),
ryzen5900: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5900),
ryzen5950: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN5950),
+ ryzen7800x3d: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN7800X3D),
+ ryzen7950X: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN7950X),
+ ryzen9800x3d: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN9800X3D),
+ ryzen9600x: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN9600X),
+ ryzen9700x: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN9700X),
+ ryzen9900x: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN9900X),
+ ryzen9950x: envOrArray(process.env.DISCORD_NOTIFY_GROUP_RYZEN9950X),
sf: envOrArray(process.env.DISCORD_NOTIFY_GROUP_CORSAIR_SF),
sonyps5c: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5C),
sonyps5de: envOrArray(process.env.DISCORD_NOTIFY_GROUP_SONYPS5DE),
@@ -372,6 +392,13 @@ const notifications = {
id: envOrString(process.env.FREEMOBILE_ID),
apiKey: envOrString(process.env.FREEMOBILE_API_KEY),
},
+ ntfy: {
+ url: envOrString(process.env.NTFY_URL, 'https://ntfy.sh'),
+ topic: envOrString(process.env.NTFY_TOPIC),
+ priority: envOrString(process.env.NTFY_PRIORITY),
+ title: envOrString(process.env.NTFY_TITLE),
+ accessToken: envOrString(process.env.NTFY_ACCESS_TOKEN),
+ },
};
const nvidia = {
@@ -383,6 +410,7 @@ const page = {
height: 1080,
inStockWaitTime: envOrNumber(process.env.IN_STOCK_WAIT_TIME),
screenshot: envOrBoolean(process.env.SCREENSHOT),
+ screenshotDir: envOrString(process.env.SCREENSHOT_DIR, 'screenshots'),
timeout: envOrNumber(process.env.PAGE_TIMEOUT, 30000),
width: 1920,
};
@@ -400,11 +428,24 @@ if (process.env.MAX_PRICE) {
);
}
+if (
+ process.env.TWITCH_ACCESS_TOKEN ||
+ process.env.TWITCH_CHANNEL ||
+ process.env.TWITCH_CLIENT_ID ||
+ process.env.TWITCH_CLIENT_SECRET ||
+ process.env.TWITCH_REFRESH_TOKEN
+) {
+ console.warn(
+ 'ℹ TWITCH integrations are currently incompatible with this release'
+ );
+}
+
const store = {
autoAddToCart: envOrBoolean(process.env.AUTO_ADD_TO_CART, true),
country: envOrString(process.env.COUNTRY, 'usa'),
maxPrice: {
series: {
+ 3050: envOrNumber(process.env.MAX_PRICE_SERIES_3050),
3060: envOrNumber(process.env.MAX_PRICE_SERIES_3060),
'3060ti': envOrNumber(process.env.MAX_PRICE_SERIES_3060TI),
3070: envOrNumber(process.env.MAX_PRICE_SERIES_3070),
@@ -412,8 +453,23 @@ const store = {
3080: envOrNumber(process.env.MAX_PRICE_SERIES_3080),
'3080ti': envOrNumber(process.env.MAX_PRICE_SERIES_3080TI),
3090: envOrNumber(process.env.MAX_PRICE_SERIES_3090),
+ 4060: envOrNumber(process.env.MAX_PRICE_SERIES_4060),
+ 4070: envOrNumber(process.env.MAX_PRICE_SERIES_4070),
+ '4070super': envOrNumber(process.env.MAX_PRICE_SERIES_4070SUPER),
+ '4070ti': envOrNumber(process.env.MAX_PRICE_SERIES_4070TI),
+ '4080-16g': envOrNumber(process.env.MAX_PRICE_SERIES_4080_16G),
+ 4090: envOrNumber(process.env.MAX_PRICE_SERIES_4090),
+ 5070: envOrNumber(process.env.MAX_PRICE_SERIES_5070),
+ '5070ti': envOrNumber(process.env.MAX_PRICE_SERIES_5070TI),
+ 5080: envOrNumber(process.env.MAX_PRICE_SERIES_5080),
+ 5090: envOrNumber(process.env.MAX_PRICE_SERIES_5090),
+ arc: envOrNumber(process.env.MAX_PRICE_SERIES_ARC),
+ 'a3-matx': envOrNumber(process.env.MAX_PRICE_SERIES_A3_MATX),
'captcha-deterrent': 0,
darkhero: envOrNumber(process.env.MAX_PRICE_SERIES_DARKHERO),
+ 'g4-doorbell-pro': envOrNumber(
+ process.env.MAX_PRICE_SERIES_G4_DOORBELL_PRO
+ ),
rx6700xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6700XT),
rx6800: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800),
rx6800xt: envOrNumber(process.env.MAX_PRICE_SERIES_RX6800XT),
@@ -422,10 +478,22 @@ const store = {
ryzen5800: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5800),
ryzen5900: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5900),
ryzen5950: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN5950),
+ ryzen7950x: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN7950X),
+ ryzen7800x3d: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN7800X3D),
+ ryzen9800x3d: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN9800X3D),
+ ryzen9600x: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN9600X),
+ ryzen9700x: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN9700X),
+ ryzen9900x: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN9900X),
+ ryzen9950x: envOrNumber(process.env.MAX_PRICE_SERIES_RYZEN9950X),
sf: envOrNumber(process.env.MAX_PRICE_SERIES_CORSAIR_SF),
sonyps5c: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5C),
sonyps5de: envOrNumber(process.env.MAX_PRICE_SERIES_SONYPS5DE),
'test:series': envOrNumber(process.env.MAX_PRICE_SERIES_TEST),
+ 'udm-pro': envOrNumber(process.env.MAX_PRICE_SERIES_UDM_PRO),
+ 'udm-us': envOrNumber(process.env.MAX_PRICE_SERIES_UDM_US),
+ 'udr-us': envOrNumber(process.env.MAX_PRICE_SERIES_UDR_US),
+ unvr: envOrNumber(process.env.MAX_PRICE_SERIES_UNVR),
+ 'unvr-pro': envOrNumber(process.env.MAX_PRICE_SERIES_UNVR_PRO),
xboxss: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSS),
xboxsx: envOrNumber(process.env.MAX_PRICE_SERIES_XBOXSX),
},
@@ -439,32 +507,17 @@ const store = {
series: envOrString(series),
};
}),
- showOnlySeries: envOrArray(process.env.SHOW_ONLY_SERIES, [
- '3060',
- '3060ti',
- '3070',
- '3070ti',
- '3080',
- '3080ti',
- '3090',
- 'rx6700xt',
- 'rx6800',
- 'rx6800xt',
- 'rx6900xt',
- 'ryzen5600',
- 'ryzen5800',
- 'ryzen5900',
- 'ryzen5950',
- 'sf',
- 'sonyps5c',
- 'sonyps5de',
- 'xboxss',
- 'xboxsx',
- ]),
+ showOnlySeries: envOrArray(
+ process.env.SHOW_ONLY_SERIES,
+ Object.keys(notifications.discord.notifyGroupSeries).filter(
+ series => !['test:series', 'captcha-deterrent'].includes(series)
+ )
+ ),
+ showOnlyCountry: envOrArray(process.env.SHOW_ONLY_COUNTRY, []),
stores: envOrArray(process.env.STORES, ['amazon', 'bestbuy']).map(entry => {
const [name, minPageSleep, maxPageSleep] = entry.match(/[^:]+/g) ?? [];
- let proxyList = loadProxyList(name);
+ let proxyList = loadProxyList(name as string);
if (!proxyList) {
proxyList = loadProxyList('global');
diff --git a/src/index.ts b/src/index.ts
index 67154b337b..a140694739 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,7 +1,7 @@
import * as Process from 'process';
import {config} from './config'; // Needs to be loaded first
import {startAPIServer, stopAPIServer} from './web';
-import {Browser, launch} from 'puppeteer';
+import Puppeteer, {Browser} from 'puppeteer';
import {getSleepTime} from './util';
import {logger} from './logger';
import {storeList} from './store/model';
@@ -107,7 +107,7 @@ export async function launchBrowser(): Promise {
}
await stop();
- const browser = await launch({
+ const browser = await Puppeteer.launch({
args,
defaultViewport: {
height: config.page.height,
diff --git a/src/logger.ts b/src/logger.ts
index 15386337a4..2109eeb3ab 100644
--- a/src/logger.ts
+++ b/src/logger.ts
@@ -1,7 +1,7 @@
-import {Link, Store} from './store/model';
import chalk from 'chalk';
-import {config} from './config';
import winston from 'winston';
+import {config} from './config';
+import {Link, Store} from './store/model';
const prettyJson = winston.format.printf(info => {
const timestamp = new Date().toLocaleTimeString();
@@ -10,7 +10,7 @@ const prettyJson = winston.format.printf(info => {
'::'
)} ${info.message}`;
- if (Object.keys(info.metadata).length > 0) {
+ if (Object.keys(info.metadata as object).length > 0) {
out = `${out} ${chalk.magenta(JSON.stringify(info.metadata, null, 2))}`;
}
diff --git a/src/messaging/apns.ts b/src/messaging/apns.ts
index 01103fd325..a8c36528ca 100644
--- a/src/messaging/apns.ts
+++ b/src/messaging/apns.ts
@@ -1,10 +1,11 @@
-import {Link, Store} from '../store/model';
-import {Print, logger} from '../logger';
import * as apn from '@parse/node-apn';
import {config} from '../config';
+import {logger} from '../logger';
+import {Link, Store} from '../store/model';
const {apns} = config.notifications;
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function sendApns(link: Link, store: Store) {
const options = {
token: {
diff --git a/src/messaging/discord.ts b/src/messaging/discord.ts
index 0f739be741..bb239c9cf1 100644
--- a/src/messaging/discord.ts
+++ b/src/messaging/discord.ts
@@ -1,12 +1,14 @@
-import {Link, Store} from '../store/model';
import Discord from 'discord.js';
+import {DMPayload} from '.';
import {config} from '../config';
import {logger} from '../logger';
-import {DMPayload} from '.';
-import {RawUserData} from 'discord.js/typings/rawDataTypes';
+import {Link, Store} from '../store/model';
const {notifyGroup, webhooks, notifyGroupSeries} = config.notifications.discord;
const {pollInterval, responseTimeout, token, userId} = config.captchaHandler;
+const clientOptions: Discord.ClientOptions = {
+ intents: new Discord.Intents(),
+};
function getIdAndToken(webhook: string) {
const match = /.*\/webhooks\/(\d+)\/(.+)/.exec(webhook);
@@ -66,13 +68,13 @@ export function sendDiscordMessage(link: Link, store: Store) {
const promises = [];
for (const webhook of webhooks) {
const {id, token} = getIdAndToken(webhook);
- const client = new Discord.WebhookClient({id, token});
+ const client = new Discord.WebhookClient({id, token}, clientOptions);
promises.push(
new Promise((resolve, reject) => {
client
.send({
- content: notifyText.join(' '),
+ content: notifyText.length ? notifyText.join(' ') : null,
embeds: [embed],
username: 'streetmerchant',
})
@@ -199,7 +201,7 @@ export async function sendDMAndGetResponseAsync(
async function getDiscordClientAsync() {
let clientInstance = undefined;
if (token) {
- clientInstance = new Discord.Client({} as Discord.ClientOptions);
+ clientInstance = new Discord.Client(clientOptions);
await clientInstance.login(token);
}
return clientInstance;
@@ -208,9 +210,7 @@ async function getDiscordClientAsync() {
async function getDMChannelAsync(client?: Discord.Client) {
let dmChannelInstance = undefined;
if (userId && client) {
- const user = await new Discord.User(client, {
- id: userId,
- } as RawUserData).fetch();
+ const user = await client.users.fetch(userId);
dmChannelInstance = await user.createDM();
}
return dmChannelInstance;
diff --git a/src/messaging/notification.ts b/src/messaging/notification.ts
index ac4de7a355..3ecb1f61f2 100644
--- a/src/messaging/notification.ts
+++ b/src/messaging/notification.ts
@@ -1,29 +1,31 @@
+import {DMPayload} from '.';
import {Link, Store} from '../store/model';
-import {adjustPhilipsHueLights} from './philips-hue';
-import {playSound} from './sound';
import {sendApns} from './apns';
import {sendDesktopNotification} from './desktop';
-import {sendDiscordMessage, sendDMAsync as sendDiscordDM} from './discord';
+import {sendDMAsync as sendDiscordDM, sendDiscordMessage} from './discord';
import {sendEmail} from './email';
+import {sendFreeMobileAlert} from './freemobile';
import {sendGotifyNotification} from './gotify';
import {sendMqttMessage} from './mqtt';
+import {sendNtfyAlert} from './ntfy';
import {sendPagerDutyNotification} from './pagerduty';
+import {adjustPhilipsHueLights} from './philips-hue';
import {sendPushbulletNotification} from './pushbullet';
import {sendPushoverNotification} from './pushover';
-import {sendSlackMessage, sendDMAsync as sendSlackDM} from './slack';
+import {updateRedis} from './redis';
+import {sendDMAsync as sendSlackDM, sendSlackMessage} from './slack';
import {sendSms} from './sms';
+import {playSound} from './sound';
+import {sendStreamLabsAlert} from './streamlabs';
import {sendTelegramMessage} from './telegram';
-import {sendTweet} from './twitter';
import {sendTwilioMessage} from './twilio';
-import {sendTwitchMessage} from './twitch';
-import {updateRedis} from './redis';
-import {sendStreamLabsAlert} from './streamlabs';
-import {sendFreeMobileAlert} from './freemobile';
-import {DMPayload} from '.';
+// import {sendTwitchMessage} from './twitch';
+import {sendTweet} from './twitter';
export function sendNotification(link: Link, store: Store) {
// Priority
playSound();
+ sendNtfyAlert(link, store);
sendDiscordMessage(link, store);
sendDesktopNotification(link, store);
sendEmail(link, store);
@@ -40,7 +42,7 @@ export function sendNotification(link: Link, store: Store) {
sendTelegramMessage(link, store);
sendTweet(link, store);
sendTwilioMessage(link, store);
- sendTwitchMessage(link, store);
+ // sendTwitchMessage(link, store);
updateRedis(link, store);
sendStreamLabsAlert(link, store);
sendFreeMobileAlert(link, store);
diff --git a/src/messaging/ntfy.ts b/src/messaging/ntfy.ts
new file mode 100644
index 0000000000..f10f572741
--- /dev/null
+++ b/src/messaging/ntfy.ts
@@ -0,0 +1,55 @@
+import {Link, Store} from '../store/model';
+import {Print, logger} from '../logger';
+import {config} from '../config';
+import fetch from 'node-fetch';
+
+const {ntfy} = config.notifications;
+
+export function sendNtfyAlert(link: Link, store: Store) {
+ if (ntfy.topic) {
+ logger.debug('↗ sending ntfy alert');
+
+ (async () => {
+ const message = `${Print.inStock(link, store)}`;
+ const headers: Record = {};
+
+ if (ntfy.priority) headers['Priority'] = ntfy.priority;
+ headers[
+ 'Tags'
+ ] = `${store.name},${link.model},${link.series},${link.brand}`;
+ if (ntfy.title) headers['Title'] = ntfy.title;
+ if (ntfy.accessToken)
+ headers['Authorization'] = `Bearer ${ntfy.accessToken}`;
+
+ const body = {
+ topic: ntfy.topic,
+ message,
+ actions: [
+ {
+ action: 'view',
+ label: 'Add to cart',
+ url: link.cartUrl ?? link.url,
+ },
+ ],
+ };
+
+ try {
+ const response = await fetch(ntfy.url, {
+ method: 'POST',
+ body: JSON.stringify(body),
+ headers: {
+ ...headers,
+ 'Content-Type': 'application/json',
+ },
+ });
+
+ if (!response.ok)
+ throw new Error(`Failed to send ntfy alert: ${response.statusText}`);
+
+ logger.info('✔ ntfy alert sent');
+ } catch (error: unknown) {
+ logger.error("✖ couldn't send ntfy alert", error);
+ }
+ })();
+ }
+}
diff --git a/src/messaging/redis.ts b/src/messaging/redis.ts
index b338abfac3..0b36f2d3f3 100644
--- a/src/messaging/redis.ts
+++ b/src/messaging/redis.ts
@@ -1,7 +1,7 @@
-import {Link, Store} from '../store/model';
import redis, {RedisClient} from 'redis';
import {config} from '../config';
import {logger} from '../logger';
+import {Link, Store} from '../store/model';
const {url} = config.notifications.redis;
let client: RedisClient;
@@ -29,13 +29,22 @@ export function updateRedis(link: Link, store: Store) {
updatedAt: new Date().toUTCString(),
};
- const redisUpdated = client.set(key, JSON.stringify(value));
-
- if (redisUpdated) {
- logger.info('✔ redis updated');
- } else {
- logger.error(`✖ couldn't update redis for key (${key})`);
- }
+ const message = JSON.stringify(value);
+ client.set(key, message, error => {
+ if (error) {
+ logger.error(`✖ couldn't update redis for key (${key})`);
+ } else {
+ logger.info('✔ redis updated');
+ }
+ });
+
+ client.publish('streetmerchant', message, error => {
+ if (error) {
+ logger.error("✖ couldn't publish to redis");
+ } else {
+ logger.info('✔ redis message published');
+ }
+ });
}
} catch (error: unknown) {
logger.error("✖ couldn't update redis", error);
diff --git a/src/messaging/twitch.ts b/src/messaging/twitch.ts
index 27faa963af..b2f80d6783 100644
--- a/src/messaging/twitch.ts
+++ b/src/messaging/twitch.ts
@@ -1,101 +1,112 @@
-import {Link, Store} from '../store/model';
-import {Print, logger} from '../logger';
-import {RefreshableAuthProvider, StaticAuthProvider} from 'twitch-auth';
-import {existsSync, promises, readFileSync} from 'fs';
-import {ChatClient} from 'twitch-chat-client';
-import {config} from '../config';
+/**
+ * TODO: Needs to be upgraded to @twurple/auth + @twurple/chat - currently throws the following error if no client params are in
+ * dotenv and an item is found
+ *
+ * var _this = _super.call(this) || this;
+ TypeError: Class constructor EventEmitter cannot be invoked without 'new'
+ at ChatClient.IrcClient [as constructor] (/streetmerchant/node_modules/.pnpm/ircv3@0.26.14/node_modules/ircv3/lib/IrcClient.js:24:28)
+ at new ChatClient (/streetmerchant/node_modules/.pnpm/twitch-chat-client@4.6.7_twitch@4.6.7/node_modules/twitch-chat-client/lib/ChatClient.js:44:28)
+ at Object. (/streetmerchant/build/src/messaging/twitch.js:23:20)
+ */
-const {twitch} = config.notifications;
+// import {Link, Store} from '../store/model';
+// import {Print, logger} from '../logger';
+// import {RefreshableAuthProvider, StaticAuthProvider} from 'twitch-auth';
+// import {existsSync, promises, readFileSync} from 'fs';
+// import {ChatClient} from 'twitch-chat-client';
+// import {config} from '../config';
-const messages: string[] = [];
-let alreadySaying = false;
+// const {twitch} = config.notifications;
-let tokenData = {
- accessToken: twitch.accessToken,
- expiryTimestamp: 0,
- refreshToken: twitch.refreshToken,
-};
+// const messages: string[] = [];
+// let alreadySaying = false;
-if (existsSync('./twitch.json')) {
- tokenData = {
- ...JSON.parse(readFileSync('./twitch.json', 'utf-8')),
- ...tokenData,
- };
-}
+// let tokenData = {
+// accessToken: twitch.accessToken,
+// expiryTimestamp: 0,
+// refreshToken: twitch.refreshToken,
+// };
-const chatClient: ChatClient = new ChatClient(
- new RefreshableAuthProvider(
- new StaticAuthProvider(twitch.clientId, tokenData.accessToken),
- {
- clientSecret: twitch.clientSecret,
- expiry:
- tokenData.expiryTimestamp === null
- ? null
- : new Date(tokenData.expiryTimestamp),
- onRefresh: async ({accessToken, refreshToken, expiryDate}) => {
- return promises.writeFile(
- './twitch.json',
- JSON.stringify(
- {
- accessToken,
- expiryTimestamp:
- expiryDate === null ? null : expiryDate.getTime(),
- refreshToken,
- },
- null,
- 4
- ),
- 'utf-8'
- );
- },
- refreshToken: tokenData.refreshToken,
- }
- ),
- {
- channels: [twitch.channel],
- }
-);
+// if (existsSync('./twitch.json')) {
+// tokenData = {
+// ...JSON.parse(readFileSync('./twitch.json', 'utf-8')),
+// ...tokenData,
+// };
+// }
-chatClient.onJoin((channel: string, user: string) => {
- if (channel === `#${twitch.channel}` && user === chatClient.currentNick) {
- while (messages.length) {
- const message: string | undefined = messages.shift();
+// const chatClient: ChatClient = new ChatClient(
+// new RefreshableAuthProvider(
+// new StaticAuthProvider(twitch.clientId, tokenData.accessToken),
+// {
+// clientSecret: twitch.clientSecret,
+// expiry:
+// tokenData.expiryTimestamp === null
+// ? null
+// : new Date(tokenData.expiryTimestamp),
+// onRefresh: async ({accessToken, refreshToken, expiryDate}) => {
+// return promises.writeFile(
+// './twitch.json',
+// JSON.stringify(
+// {
+// accessToken,
+// expiryTimestamp:
+// expiryDate === null ? null : expiryDate.getTime(),
+// refreshToken,
+// },
+// null,
+// 4
+// ),
+// 'utf-8'
+// );
+// },
+// refreshToken: tokenData.refreshToken,
+// }
+// ),
+// {
+// channels: [twitch.channel],
+// }
+// );
- if (message !== undefined) {
- try {
- void chatClient.say(channel, message);
- logger.info('✔ twitch message sent');
- } catch (error: unknown) {
- logger.error("✖ couldn't send twitch message", error);
- }
- }
- }
- }
+// chatClient.onJoin((channel: string, user: string) => {
+// if (channel === `#${twitch.channel}` && user === chatClient.currentNick) {
+// while (messages.length) {
+// const message: string | undefined = messages.shift();
- void chatClient.quit();
-});
+// if (message !== undefined) {
+// try {
+// void chatClient.say(channel, message);
+// logger.info('✔ twitch message sent');
+// } catch (error: unknown) {
+// logger.error("✖ couldn't send twitch message", error);
+// }
+// }
+// }
+// }
-chatClient.onDisconnect(() => {
- alreadySaying = false;
-});
+// void chatClient.quit();
+// });
-export function sendTwitchMessage(link: Link, store: Store) {
- if (
- tokenData.accessToken &&
- twitch.channel &&
- twitch.clientId &&
- twitch.clientSecret &&
- tokenData.refreshToken
- ) {
- logger.debug('↗ sending twitch message');
+// chatClient.onDisconnect(() => {
+// alreadySaying = false;
+// });
- messages.push(
- `${Print.inStock(link, store)}\n${link.cartUrl ? link.cartUrl : link.url}`
- );
+// export function sendTwitchMessage(link: Link, store: Store) {
+// if (
+// tokenData.accessToken &&
+// twitch.channel &&
+// twitch.clientId &&
+// twitch.clientSecret &&
+// tokenData.refreshToken
+// ) {
+// logger.debug('↗ sending twitch message');
- if (!alreadySaying) {
- alreadySaying = true;
- void chatClient.connect();
- }
- }
-}
+// messages.push(
+// `${Print.inStock(link, store)}\n${link.cartUrl ? link.cartUrl : link.url}`
+// );
+
+// if (!alreadySaying) {
+// alreadySaying = true;
+// void chatClient.connect();
+// }
+// }
+// }
diff --git a/src/store/captcha-handler.ts b/src/store/captcha-handler.ts
index 5936bc82b9..2a256ac8d0 100644
--- a/src/store/captcha-handler.ts
+++ b/src/store/captcha-handler.ts
@@ -1,14 +1,14 @@
import {Page} from 'puppeteer';
import {config} from '../config';
-import {Store} from './model';
import {logger} from '../logger';
-import {delay, deleteFile} from '../util';
import {
+ CaptchaPayload,
+ DMPayload,
getCaptchaInputAsync,
sendDMAsync,
- DMPayload,
- CaptchaPayload,
} from '../messaging';
+import {delay, deleteFile} from '../util';
+import {Store} from './model';
const DefaultCaptureType = 'link';
@@ -88,7 +88,10 @@ async function getCaptchaPayloadAsync(
break;
case 'link':
captchaPayload = {
- content: await challengeElement?.evaluate(img => img.src),
+ content:
+ (await challengeElement?.evaluate(
+ img => (img as HTMLImageElement).src
+ )) || '',
type: 'text',
};
break;
diff --git a/src/store/fetch-links.ts b/src/store/fetch-links.ts
index 76fbd2752c..b41aac59bc 100644
--- a/src/store/fetch-links.ts
+++ b/src/store/fetch-links.ts
@@ -16,11 +16,12 @@ function addNewLinks(store: Store, links: Link[], series: Series) {
const newLinks = links.filter(link => !existingUrls.has(link.url));
if (newLinks.length === 0) {
+ logger.debug(Print.message('NO NEW LINKS FOUND', series, store, true));
return;
}
logger.debug(
- Print.message(`FOUND ${newLinks.length} STORE LINKS`, series, store, true)
+ Print.message(`FOUND ${newLinks.length} NEW LINKS`, series, store, true)
);
logger.debug(JSON.stringify(newLinks, null, 2));
diff --git a/src/store/lookup.ts b/src/store/lookup.ts
index c2a5f691e1..1c40cc613e 100644
--- a/src/store/lookup.ts
+++ b/src/store/lookup.ts
@@ -26,6 +26,8 @@ import {processBackoffDelay} from './model/helpers/backoff';
import {sendNotification} from '../messaging';
import {handleCaptchaAsync} from './captcha-handler';
import useProxy from '@doridian/puppeteer-page-proxy';
+import {promises as fs} from 'fs';
+import path from 'path';
const inStock: Record = {};
@@ -343,7 +345,11 @@ async function lookupIem(
if (config.page.screenshot) {
logger.debug('ℹ saving screenshot');
- link.screenshot = `success-${Date.now()}.png`;
+ await fs.mkdir(config.page.screenshotDir, {recursive: true});
+ link.screenshot = path.join(
+ config.page.screenshotDir,
+ `success-${Date.now()}.png`
+ );
await page.screenshot({path: link.screenshot});
}
}
@@ -560,11 +566,11 @@ async function runCaptchaDeterrent(browser: Browser, store: Store, page: Page) {
export async function tryLookupAndLoop(browser: Browser, store: Store) {
if (!browser.isConnected()) {
- logger.debug(`[${store.name}] Ending this loop as browser is disposed...`);
+ logger.silly(`[${store.name}] Ending this loop as browser is disposed...`);
return;
}
- logger.debug(`[${store.name}] Starting lookup...`);
+ logger.silly(`[${store.name}] Starting lookup...`);
try {
await lookup(browser, store);
} catch (error: unknown) {
@@ -572,6 +578,6 @@ export async function tryLookupAndLoop(browser: Browser, store: Store) {
}
const sleepTime = getSleepTime(store);
- logger.debug(`[${store.name}] Lookup done, next one in ${sleepTime} ms`);
+ logger.silly(`[${store.name}] Lookup done, next one in ${sleepTime} ms`);
setTimeout(tryLookupAndLoop, sleepTime, browser, store);
}
diff --git a/src/store/model/acompc.ts b/src/store/model/acompc.ts
index fbe253e0e1..1924f57d44 100644
--- a/src/store/model/acompc.ts
+++ b/src/store/model/acompc.ts
@@ -175,6 +175,114 @@ export const AComPC: Store = {
series: '3090',
url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-NVIDIA-PCI-Express/ZOTAC-GAMING-GeForce-RTX-3090-Trinity-Grafikkarten-GF-RTX-3090-24-GB-GDDR6X-PCIe-4.0-HDMI-3x-DisplayPort.html',
},
+ {
+ brand: 'asrock',
+ model: 'challenger',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/ASRock-Radeon-RX-6700-XT-Challenger-D-12GB-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'asrock',
+ model: 'challenger oc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/ASRock-Radeon-RX-6700-XT-Challenger-D-12GB-OC-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'asrock',
+ model: 'challenger pro oc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/ASRock-Radeon-RX-6700-XT-Challenger-Pro-12GB-OC-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/ASUS-DUAL-RX6700XT-12G-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3x-DisplayPort.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/ASUS-TUF-RX6700XT-O12G-GAMING-OC-Edition-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/ASUS-ROG-STRIX-RX6700XT-O12G-GAMING-OC-Edition-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/Gigabyte-AORUS-Radeon-RX-6700-XT-ELITE-12G-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-2-x-HDMI-2-x-DisplayPort.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/Gigabyte-Radeon-RX-6700-XT-EAGLE-12G-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-2x-HDMI-2x-DisplayPort.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/Gigabyte-Radeon-RX-6700-XT-GAMING-OC-12G-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-2x-HDMI-2x-DisplayPort.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/MSI-Radeon-RX-6700-XT-GAMING-X-12G-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/MSI-Radeon-RX-6700-XT-MECH-2X-12G-OC-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'powercolor',
+ model: 'red devil',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/PowerColor-Red-Devil-Radeon-RX-6700XT-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'powercolor',
+ model: 'hellhound',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/PowerColor-Hellhound-Radeon-RX-6700XT-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort.html',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro+',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/Sapphire-NITRO-Radeon-RX-6700-XT-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3x-DisplayPort.html',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/Sapphire-Pulse-Radeon-RX-6700-XT-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-HDMI-3x-DisplayPort.html',
+ },
+ {
+ brand: 'xfx',
+ model: 'merc',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/XFX-Speedster-MERC319-Radeon-RX-6700-XT-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort-Schwarz.html',
+ },
+ {
+ brand: 'xfx',
+ model: 'qick',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/XFX-Speedster-QICK319-Radeon-RX-6700-XT-Grafikkarten-Radeon-RX-6700-XT-12-GB-GDDR6-PCIe-4.0-x16-HDMI-3-x-DisplayPort-Schwarz.html',
+ },
+ {
+ brand: 'xfx',
+ model: 'swft',
+ series: 'rx6700xt',
+ url: 'https://www.acom-pc.de/Hardware-Software/Grafikkarten-Zubehoer/Grafikkarten-AMD/ATI-PCI-Express/XFX-VGA-12GB-Radeon-RX6700XT-SWFT-309-Gaming-3xDP-H-Radeon-RX-6700XT-Grafikkarte-12.288-MB.html',
+ },
{
brand: 'amd',
model: '5600x',
@@ -201,4 +309,5 @@ export const AComPC: Store = {
},
],
name: 'acompc',
+ country: 'DE',
};
diff --git a/src/store/model/adorama.ts b/src/store/model/adorama.ts
index 4888e929ea..8d1e33f3c7 100644
--- a/src/store/model/adorama.ts
+++ b/src/store/model/adorama.ts
@@ -127,4 +127,5 @@ export const Adorama: Store = {
},
],
name: 'adorama',
+ country: 'US',
};
diff --git a/src/store/model/akinformatica.ts b/src/store/model/akinformatica.ts
index 917fa280e1..0a7b597e49 100644
--- a/src/store/model/akinformatica.ts
+++ b/src/store/model/akinformatica.ts
@@ -283,5 +283,6 @@ export const Akinformatica: Store = {
},
],
name: 'akinformatica',
+ country: 'IT',
successStatusCodes: [[0, 399], 404],
};
diff --git a/src/store/model/allneeds.ts b/src/store/model/allneeds.ts
index 216544f9ba..69278ff913 100644
--- a/src/store/model/allneeds.ts
+++ b/src/store/model/allneeds.ts
@@ -56,4 +56,5 @@ export const Allneeds: Store = {
},
],
name: 'allneeds',
+ country: 'AU',
};
diff --git a/src/store/model/alternate-de.ts b/src/store/model/alternate-de.ts
index bfc15310e6..7799e39e12 100644
--- a/src/store/model/alternate-de.ts
+++ b/src/store/model/alternate-de.ts
@@ -141,6 +141,18 @@ export const AlternateDe: Store = {
series: '3060',
url: 'https://www.alternate.de/html/product/1715299',
},
+ {
+ brand: 'msi',
+ model: 'gaming z trio',
+ series: '3060',
+ url: 'https://www.alternate.de/html/product/1753367',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '3060',
+ url: 'https://www.alternate.de/html/product/1719422',
+ },
{
brand: 'asus',
model: 'tuf oc',
@@ -237,6 +249,72 @@ export const AlternateDe: Store = {
series: '3060ti',
url: 'https://www.alternate.de/html/product/1694335',
},
+ {
+ brand: 'zotac',
+ model: 'twin edge oc',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758204',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1769551',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758690',
+ },
+ {
+ brand: 'asus',
+ model: 'dual mini oc',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758702',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758136',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming z trio',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758139',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758141',
+ },
+ {
+ brand: 'palit',
+ model: 'dual',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1780517',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming pro oc',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1762625',
+ },
+ {
+ brand: 'inno3d',
+ model: 'twin x2 oc',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1753819',
+ },
+ {
+ brand: 'asus',
+ model: 'dual mini',
+ series: '3060ti',
+ url: 'https://www.alternate.de/html/product/1758703',
+ },
{
brand: 'asus',
model: 'dual oc',
@@ -249,24 +327,12 @@ export const AlternateDe: Store = {
series: '3070',
url: 'https://www.alternate.de/html/product/1677327',
},
- {
- brand: 'asus',
- model: 'strix oc',
- series: '3070',
- url: 'https://www.alternate.de/html/product/1677330',
- },
{
brand: 'asus',
model: 'tuf',
series: '3070',
url: 'https://www.alternate.de/html/product/1679872',
},
- {
- brand: 'evga',
- model: 'ftw3 ultra',
- series: '3070',
- url: 'https://www.alternate.de/html/product/1687863',
- },
{
brand: 'evga',
model: 'xc3 ultra',
@@ -301,7 +367,7 @@ export const AlternateDe: Store = {
brand: 'gigabyte',
model: 'aorus master',
series: '3070',
- url: 'https://www.alternate.de/html/product/1688810',
+ url: 'https://www.alternate.de/html/product/1768036',
},
{
brand: 'gigabyte',
@@ -319,7 +385,7 @@ export const AlternateDe: Store = {
brand: 'inno3d',
model: 'ichill x4',
series: '3070',
- url: 'https://www.alternate.de/html/product/1681759',
+ url: 'https://www.alternate.de/html/product/1753794',
},
{
brand: 'inno3d',
@@ -333,11 +399,77 @@ export const AlternateDe: Store = {
series: '3070',
url: 'https://www.alternate.de/html/product/1681768',
},
+ {
+ brand: 'msi',
+ model: 'gaming z trio',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758122',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1765420',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758120',
+ },
+ {
+ brand: 'evga',
+ model: 'ftw3 ultra',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1756007',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758701',
+ },
+ {
+ brand: 'gainward',
+ model: 'phantom',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1780254',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758134',
+ },
+ {
+ brand: 'gainward',
+ model: 'phantom gs',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1780260',
+ },
+ {
+ brand: 'zotac',
+ model: 'twin edge oc',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758192',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758698',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp holo',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1758184',
+ },
{
brand: 'palit',
model: 'gaming pro',
series: '3070',
- url: 'https://www.alternate.de/html/product/1684572',
+ url: 'https://www.alternate.de/html/product/1780508',
},
{
brand: 'palit',
@@ -369,6 +501,60 @@ export const AlternateDe: Store = {
series: '3070',
url: 'https://www.alternate.de/html/product/1679097',
},
+ {
+ brand: 'gainward',
+ model: 'phoenix',
+ series: '3070',
+ url: 'https://www.alternate.de/html/product/1771999',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1756986',
+ },
+ {
+ brand: 'gainward',
+ model: 'phoenix',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1755059',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity oc',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1770275',
+ },
+ {
+ brand: 'palit',
+ model: 'gaming pro',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1755057',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1753410',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1756984',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1756202',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master',
+ series: '3070ti',
+ url: 'https://www.alternate.de/html/product/1759465',
+ },
{
brand: 'asus',
model: 'strix',
@@ -385,7 +571,7 @@ export const AlternateDe: Store = {
brand: 'asus',
model: 'strix oc',
series: '3080',
- url: 'https://www.alternate.de/html/product/1672867',
+ url: 'https://www.alternate.de/html/product/1766848',
},
{
brand: 'asus',
@@ -561,23 +747,59 @@ export const AlternateDe: Store = {
series: '3080',
url: 'https://www.alternate.de/html/product/1677982',
},
+ {
+ brand: 'zotac',
+ model: 'trinity oc',
+ series: '3080',
+ url: 'https://www.alternate.de/html/product/1677989',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity',
+ series: '3080',
+ url: 'https://www.alternate.de/html/product/1672612',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '3080',
+ url: 'https://www.alternate.de/html/product/1758116',
+ },
+ {
+ brand: 'gainward',
+ model: 'phantom',
+ series: '3080',
+ url: 'https://www.alternate.de/html/product/1780243',
+ },
+ {
+ brand: 'gainward',
+ model: 'phoenix',
+ series: '3080',
+ url: 'https://www.alternate.de/html/product/1780244',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming z trio',
+ series: '3080',
+ url: 'https://www.alternate.de/html/product/1758119',
+ },
{
brand: 'zotac',
model: 'amp holo',
series: '3080',
- url: 'https://www.alternate.de/html/product/1677985',
+ url: 'https://www.alternate.de/html/product/1758181',
},
{
brand: 'zotac',
model: 'trinity oc',
series: '3080',
- url: 'https://www.alternate.de/html/product/1677989',
+ url: 'https://www.alternate.de/html/product/1758185',
},
{
- brand: 'zotac',
- model: 'trinity',
+ brand: 'gigabyte',
+ model: 'aorus master',
series: '3080',
- url: 'https://www.alternate.de/html/product/1672612',
+ url: 'https://www.alternate.de/html/product/1765406',
},
{
brand: 'asus',
@@ -597,6 +819,12 @@ export const AlternateDe: Store = {
series: '3090',
url: 'https://www.alternate.de/html/product/1701891',
},
+ {
+ brand: 'asus',
+ model: 'strix white',
+ series: '3090',
+ url: 'https://www.alternate.de/html/product/1701894',
+ },
{
brand: 'asus',
model: 'tuf',
@@ -651,6 +879,12 @@ export const AlternateDe: Store = {
series: '3090',
url: 'https://www.alternate.de/html/product/1688769',
},
+ {
+ brand: 'gainward',
+ model: 'phantom',
+ series: '3090',
+ url: 'https://www.alternate.de/html/product/1780227',
+ },
{
brand: 'gainward',
model: 'phantom gs',
@@ -819,6 +1053,18 @@ export const AlternateDe: Store = {
series: 'ryzen5950',
url: 'https://www.alternate.de/html/product/1685584',
},
+ {
+ brand: 'asrock',
+ model: 'challenger',
+ series: 'rx6700xt',
+ url: 'https://www.alternate.de/html/product/1757933',
+ },
+ {
+ brand: 'xfx',
+ model: 'merc',
+ series: 'rx6700xt',
+ url: 'https://www.alternate.de/html/product/1730305',
+ },
{
brand: 'gigabyte',
model: 'gaming oc',
@@ -1007,4 +1253,5 @@ export const AlternateDe: Store = {
},
],
name: 'alternate-de',
+ country: 'DE',
};
diff --git a/src/store/model/alternate-fr.ts b/src/store/model/alternate-fr.ts
index f3c0530a5e..4a8438e248 100644
--- a/src/store/model/alternate-fr.ts
+++ b/src/store/model/alternate-fr.ts
@@ -205,4 +205,5 @@ export const AlternateFr: Store = {
},
],
name: 'alternate-fr',
+ country: 'FR',
};
diff --git a/src/store/model/alternate-nl.ts b/src/store/model/alternate-nl.ts
index dc264e99c7..4b48c16d75 100644
--- a/src/store/model/alternate-nl.ts
+++ b/src/store/model/alternate-nl.ts
@@ -169,4 +169,5 @@ export const AlternateNL: Store = {
},
],
name: 'alternate-nl',
+ country: 'NL',
};
diff --git a/src/store/model/amazon-ca.ts b/src/store/model/amazon-ca.ts
index ed8d358c31..6331e08a4c 100644
--- a/src/store/model/amazon-ca.ts
+++ b/src/store/model/amazon-ca.ts
@@ -311,4 +311,5 @@ export const AmazonCa: Store = {
},
],
name: 'amazon-ca',
+ country: 'CA',
};
diff --git a/src/store/model/amazon-de-warehouse.ts b/src/store/model/amazon-de-warehouse.ts
index 6e4bc74b10..814353706c 100644
--- a/src/store/model/amazon-de-warehouse.ts
+++ b/src/store/model/amazon-de-warehouse.ts
@@ -66,4 +66,5 @@ export const AmazonDeWarehouse: Store = {
},
],
name: 'amazon-de-warehouse',
+ country: 'DE',
};
diff --git a/src/store/model/amazon-de.ts b/src/store/model/amazon-de.ts
index 2e38ea3007..9b19bb8bfc 100644
--- a/src/store/model/amazon-de.ts
+++ b/src/store/model/amazon-de.ts
@@ -21,7 +21,7 @@ export const AmazonDe: Store = {
text: ['in den einkaufswagen'],
},
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-text-price',
euroFormat: true,
},
outOfStock: [
@@ -480,6 +480,222 @@ export const AmazonDe: Store = {
series: '3070',
url: 'https://www.amazon.de/dp/B08HBJB7YD',
},
+ {
+ brand: 'asrock',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B0977DG15L&Quantity.1=1',
+ model: 'challenger oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B0977DG15L',
+ },
+ {
+ brand: 'asrock',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B093Z4BHJH&Quantity.1=1',
+ model: 'challenger',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B093Z4BHJH',
+ },
+ {
+ brand: 'asrock',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08ZDT3Q8H&Quantity.1=1',
+ model: 'challenger pro oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08ZDT3Q8H',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08CS6Z8R9&Quantity.1=1',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08CS6Z8R9',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08YWRFSQB&Quantity.1=1',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08YWRFSQB/',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08BZP24CH&Quantity.1=1',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08BZP24CH',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08YX8D8ST&Quantity.1=1',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08YX8D8ST/',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08BZPX64M&Quantity.1=1',
+ model: 'strix',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08BZPX64M/',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y74T47X&Quantity.1=1',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y74T47X/',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y758F6C&Quantity.1=1',
+ model: 'eagle',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y758F6C/',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y746XN7&Quantity.1=1',
+ model: 'gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y746XN7/',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Z72P3R9&Quantity.1=1',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Z72P3R9/',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B09318LCPP&Quantity.1=1',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B09318LCPP/',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Z84S3K6&Quantity.1=1',
+ model: 'mech 2x',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Z84S3K6',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Z8LHVR1&Quantity.1=1',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Z8LHVR1/',
+ },
+ {
+ brand: 'powercolor',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y93KQR4&Quantity.1=1',
+ model: 'hellhound',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y93KQR4/',
+ },
+ {
+ brand: 'powercolor',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B094MM9X6S&Quantity.1=1',
+ model: 'hellhound white',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B094MM9X6S/',
+ },
+ {
+ brand: 'powercolor',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y934HZQ&Quantity.1=1',
+ model: 'red devil',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y934HZQ/',
+ },
+ {
+ brand: 'sapphire',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y7K29X9&Quantity.1=1',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y7K29X9/',
+ },
+ {
+ brand: 'sapphire',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y835PXB&Quantity.1=1',
+ model: 'nitro+ oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y835PXB/',
+ },
+ {
+ brand: 'sapphire',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B094593LB8&Quantity.1=1',
+ model: 'nitro+ oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B094593LB8/',
+ },
+ {
+ brand: 'sapphire',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08Y7ZYNDN&Quantity.1=1',
+ model: 'nitro+ oc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08Y7ZYNDN/',
+ },
+ {
+ brand: 'xfx',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08YKCRB74&Quantity.1=1',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08YKCRB74/',
+ },
+ {
+ brand: 'xfx',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08YK97LKC&Quantity.1=1',
+ model: 'merc',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08YK97LKC/',
+ },
+ {
+ brand: 'xfx',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B091ZKN2RV&Quantity.1=1',
+ model: 'qick',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B091ZKN2RV/',
+ },
+ {
+ brand: 'xfx',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08YKFS27X&Quantity.1=1',
+ model: 'qick ultra',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08YKFS27X/',
+ },
+ {
+ brand: 'xfx',
+ cartUrl:
+ 'https://www.amazon.de/gp/aws/cart/add.html?ASIN.1=B08YKCC8XD&Quantity.1=1',
+ model: 'swft',
+ series: 'rx6700xt',
+ url: 'https://www.amazon.de/dp/B08YKCC8XD/',
+ },
{
brand: 'amd',
cartUrl:
@@ -570,4 +786,5 @@ export const AmazonDe: Store = {
},
],
name: 'amazon-de',
+ country: 'DE',
};
diff --git a/src/store/model/amazon-es.ts b/src/store/model/amazon-es.ts
index de6e464183..1f310b95fe 100644
--- a/src/store/model/amazon-es.ts
+++ b/src/store/model/amazon-es.ts
@@ -18,7 +18,7 @@ export const AmazonEs: Store = {
text: ['añadir a la cesta'],
},
maxPrice: {
- container: '#price',
+ container: '.a-text-price',
euroFormat: true,
},
outOfStock: [
@@ -527,4 +527,5 @@ export const AmazonEs: Store = {
},
],
name: 'amazon-es',
+ country: 'ES',
};
diff --git a/src/store/model/amazon-fr.ts b/src/store/model/amazon-fr.ts
index 0522cafcf1..670f185db3 100644
--- a/src/store/model/amazon-fr.ts
+++ b/src/store/model/amazon-fr.ts
@@ -18,7 +18,7 @@ export const AmazonFr: Store = {
text: ['ajouter au panier'],
},
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-text-price',
euroFormat: true,
},
outOfStock: [
@@ -193,4 +193,5 @@ export const AmazonFr: Store = {
},
],
name: 'amazon-fr',
+ country: 'FR',
};
diff --git a/src/store/model/amazon-it.ts b/src/store/model/amazon-it.ts
index 54fe90cb9b..1b8d3348d8 100644
--- a/src/store/model/amazon-it.ts
+++ b/src/store/model/amazon-it.ts
@@ -18,7 +18,7 @@ export const AmazonIt: Store = {
text: ['Aggiungi al carrello'],
},
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-text-price',
euroFormat: true,
},
},
@@ -417,4 +417,5 @@ export const AmazonIt: Store = {
},
],
name: 'amazon-it',
+ country: 'IT',
};
diff --git a/src/store/model/amazon-nl.ts b/src/store/model/amazon-nl.ts
index ad9c7b935a..b90d3e3e51 100644
--- a/src/store/model/amazon-nl.ts
+++ b/src/store/model/amazon-nl.ts
@@ -23,7 +23,7 @@ export const AmazonNl: Store = {
},
],
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-text-price',
euroFormat: true,
},
outOfStock: [
@@ -240,4 +240,5 @@ export const AmazonNl: Store = {
},
],
name: 'amazon-nl',
+ country: 'NL',
};
diff --git a/src/store/model/amazon-sg.ts b/src/store/model/amazon-sg.ts
index faddfa200b..aba3aca940 100644
--- a/src/store/model/amazon-sg.ts
+++ b/src/store/model/amazon-sg.ts
@@ -24,7 +24,7 @@ export const AmazonSg: Store = {
},
],
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-text-price',
},
},
links: [
@@ -762,4 +762,5 @@ export const AmazonSg: Store = {
},
],
name: 'amazon-sg',
+ country: 'SG',
};
diff --git a/src/store/model/amazon-uk.ts b/src/store/model/amazon-uk.ts
index ae8bb66f39..94dd123cc2 100644
--- a/src/store/model/amazon-uk.ts
+++ b/src/store/model/amazon-uk.ts
@@ -18,7 +18,7 @@ export const AmazonUk: Store = {
text: ['in stock'],
},
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-text-price',
},
outOfStock: [
{
@@ -714,4 +714,5 @@ export const AmazonUk: Store = {
},
],
name: 'amazon-uk',
+ country: 'UK',
};
diff --git a/src/store/model/amazon.ts b/src/store/model/amazon.ts
index 9f6de57594..3b5f166871 100644
--- a/src/store/model/amazon.ts
+++ b/src/store/model/amazon.ts
@@ -33,7 +33,7 @@ export const Amazon: Store = {
},
],
maxPrice: {
- container: '#priceblock_ourprice',
+ container: '.a-offscreen',
},
},
links: [
@@ -779,6 +779,223 @@ export const Amazon: Store = {
series: 'sf',
url: 'https://www.amazon.com/dp/B07F84FJ1G',
},
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGJRHX1X&Quantity.1=1',
+ model: 'trinity oc',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGJRHX1X',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B09D1VF7F8&Quantity.1=1',
+ model: 'amp extreme airo',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B09D1VF7F8',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGJQBW6Z&Quantity.1=1',
+ model: 'trinity',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGJQBW6Z',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGT61797&Quantity.1=1',
+ model: 'strix oc',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGT61797',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGV6LQYR&Quantity.1=1',
+ model: 'tuf oc',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGV6LQYR',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGP87RQ2&Quantity.1=1',
+ model: 'aorus master',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGP87RQ2',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGP8FGNZ&Quantity.1=1',
+ model: 'gaming oc',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGP8FGNZ',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BGP9X18Q&Quantity.1=1',
+ model: 'windforce',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BGP9X18Q',
+ },
+ {
+ brand: 'pny',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BG93V9GW&Quantity.1=1',
+ model: 'xlr8 verto epic x',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BG93V9GW',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BG94BM2G&Quantity.1=1',
+ model: 'suprim liquid x',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BG94BM2G',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BG92GY61&Quantity.1=1',
+ model: 'suprim',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BG92GY61',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BG94PS2F&Quantity.1=1',
+ model: 'gaming x trio',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BG94PS2F',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BG959RCF&Quantity.1=1',
+ model: 'gaming trio',
+ series: '4090',
+ url: 'https://www.amazon.com/dp/B0BG959RCF',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BKK1G181&Quantity.1=1',
+ model: 'trinity',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BKK1G181',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BKK371SB&Quantity.1=1',
+ model: 'trinity oc',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BKK371SB',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BLGHRCLX&Quantity.1=1',
+ model: 'tuf',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BLGHRCLX',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BLGQHS53&Quantity.1=1',
+ model: 'tuf oc',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BLGQHS53',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BL61TNG1&Quantity.1=1',
+ model: 'ventus 3x',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BL61TNG1',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BKK3RFT6&Quantity.1=1',
+ model: 'amp airo',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BKK3RFT6',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BMNBJ1DF&Quantity.1=1',
+ model: 'eagle oc',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BMNBJ1DF',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BL668N1X&Quantity.1=1',
+ model: 'gaming x trio',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BL668N1X',
+ },
+ {
+ brand: 'pny',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0BG95T5WD&Quantity.1=1',
+ model: 'xlr8 verto epic x',
+ series: '4080-16g',
+ url: 'https://www.amazon.com/dp/B0BG95T5WD',
+ },
+ {
+ brand: 'lianli',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0DFS88R2L&Quantity.1=1',
+ model: 'a3 matx wd',
+ series: 'a3-matx',
+ url: 'https://www.amazon.com/dp/B0DFS88R2L',
+ },
+ {
+ brand: 'sparkle',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0DNMH4KQM&Quantity.1=1',
+ model: 'b580',
+ series: 'arc',
+ url: 'https://www.amazon.com/dp/B0DNMH4KQM',
+ },
+ {
+ brand: 'intel',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=B0DPM9923G&Quantity.1=1',
+ model: 'b580',
+ series: 'arc',
+ url: 'https://www.amazon.com/dp/B0DPM9923G',
+ },
],
name: 'amazon',
+ country: 'US',
};
+
+/* Copy Paste Template
+
+Copy the product id from the amazon URL.
+For example if you have https://www.amazon.com/gp/product/B08M9R8HQY just copy B08M9R8HQY.
+Paste it after ASIN.1= in the cartUrl and at the end of /dp/ in the url.
+
+{
+ brand: '',
+ cartUrl:
+ 'https://www.amazon.com/gp/aws/cart/add.html?ASIN.1=&Quantity.1=1',
+ model: '',
+ series: '',
+ url: 'https://www.amazon.com/dp/',
+},
+*/
diff --git a/src/store/model/amd-at.ts b/src/store/model/amd-at.ts
index f8bfaf944b..0417c40ecf 100644
--- a/src/store/model/amd-at.ts
+++ b/src/store/model/amd-at.ts
@@ -97,4 +97,5 @@ export const AmdAt: Store = {
},
],
name: 'amd-at',
+ country: 'AT',
};
diff --git a/src/store/model/amd-be.ts b/src/store/model/amd-be.ts
index 7dec61e472..b356b3d7e6 100644
--- a/src/store/model/amd-be.ts
+++ b/src/store/model/amd-be.ts
@@ -97,4 +97,5 @@ export const AmdBe: Store = {
},
],
name: 'amd-be',
+ country: 'BE',
};
diff --git a/src/store/model/amd-ca.ts b/src/store/model/amd-ca.ts
index f2fcfb6710..4bfeaa1bfa 100644
--- a/src/store/model/amd-ca.ts
+++ b/src/store/model/amd-ca.ts
@@ -53,4 +53,5 @@ export const AmdCa: Store = {
},
],
name: 'amd-ca',
+ country: 'CA',
};
diff --git a/src/store/model/amd-de.ts b/src/store/model/amd-de.ts
index db0b2f4528..230b4ec78d 100644
--- a/src/store/model/amd-de.ts
+++ b/src/store/model/amd-de.ts
@@ -55,6 +55,14 @@ export const AmdDe: Store = {
series: 'ryzen5600',
url: 'https://www.amd.com/de/direct-buy/5450881700/de',
},
+ {
+ brand: 'amd',
+ cartUrl:
+ 'https://www.amd.com/de/direct-buy/5496921400/de?add-to-cart=true',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.amd.com/de/direct-buy/5496921400/de',
+ },
{
brand: 'amd',
cartUrl:
@@ -89,4 +97,5 @@ export const AmdDe: Store = {
},
],
name: 'amd-de',
+ country: 'DE',
};
diff --git a/src/store/model/amd-it.ts b/src/store/model/amd-it.ts
index 150767dff8..9e0bd15b1b 100644
--- a/src/store/model/amd-it.ts
+++ b/src/store/model/amd-it.ts
@@ -69,4 +69,5 @@ export const AmdIt: Store = {
},
],
name: 'amd-it',
+ country: 'IT',
};
diff --git a/src/store/model/amd-nl.ts b/src/store/model/amd-nl.ts
index 0ff09a2006..d1d1f68a5b 100644
--- a/src/store/model/amd-nl.ts
+++ b/src/store/model/amd-nl.ts
@@ -81,4 +81,5 @@ export const AmdNl: Store = {
},
],
name: 'amd-nl',
+ country: 'NL',
};
diff --git a/src/store/model/amd-uk.ts b/src/store/model/amd-uk.ts
index fa19119ffa..0f9a86ae8c 100644
--- a/src/store/model/amd-uk.ts
+++ b/src/store/model/amd-uk.ts
@@ -101,4 +101,5 @@ export const AmdUk: Store = {
},
],
name: 'amd-uk',
+ country: 'UK',
};
diff --git a/src/store/model/amd.ts b/src/store/model/amd.ts
index a9120a81a9..3e5178f8d2 100644
--- a/src/store/model/amd.ts
+++ b/src/store/model/amd.ts
@@ -54,10 +54,10 @@ export const Amd: Store = {
{
brand: 'amd',
cartUrl:
- 'https://www.amd.com/en/direct-buy/5458374200/us?add-to-cart=true',
+ 'https://www.amd.com/en/direct-buy/5458372200/us?add-to-cart=true',
model: 'amd reference',
series: 'rx6900xt',
- url: 'https://www.amd.com/en/direct-buy/5458374200/us',
+ url: 'https://www.amd.com/en/direct-buy/5458372200/us',
},
{
brand: 'amd',
@@ -83,6 +83,64 @@ export const Amd: Store = {
series: 'rx6800xt',
url: 'https://www.amd.com/en/direct-buy/5496921500/us',
},
+ {
+ brand: 'amd',
+ cartUrl:
+ 'https://www.amd.com/en/direct-buy/5496921400/us?add-to-cart=true',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.amd.com/en/direct-buy/5496921400/us',
+ },
+ {
+ brand: 'amd',
+ model: '9800x3d',
+ series: 'ryzen9800x3d',
+ url: 'https://shop-us-en.amd.com/amd-ryzen-7-9800x3d-processor/',
+ },
+ {
+ brand: 'amd',
+ model: '9950x',
+ series: 'ryzen9950x',
+ url: 'https://shop-us-en.amd.com/amd-ryzen-9-9950x-processor/',
+ },
+ {
+ brand: 'amd',
+ model: '9900x',
+ series: 'ryzen9900x',
+ url: 'https://shop-us-en.amd.com/amd-ryzen-9-9900x-processor/',
+ },
+ {
+ brand: 'amd',
+ model: '9700x',
+ series: 'ryzen9700x',
+ url: 'https://shop-us-en.amd.com/amd-ryzen-7-9700x-processor/',
+ },
+ {
+ brand: 'amd',
+ model: '9600x',
+ series: 'ryzen9600x',
+ url: 'https://shop-us-en.amd.com/amd-ryzen-5-9600x-processor/',
+ },
+ {
+ brand: 'amd',
+ model: '7800x3d',
+ series: 'ryzen7800x3d',
+ url: 'https://shop-us-en.amd.com/amd-ryzen-7-7800x3d-processor/',
+ },
],
name: 'amd',
+ country: 'US',
};
+
+/* Copy Paste Template
+
+As of 01-12-2025 I cant figure out the add to cart URL.
+For now just copy the product page URL into the url field. -agpuperson
+
+{
+ brand: 'amd',
+ model: '',
+ series: '',
+ url: '',
+},
+*/
diff --git a/src/store/model/antonline.ts b/src/store/model/antonline.ts
index fbbfd6d38e..15fb2a0379 100644
--- a/src/store/model/antonline.ts
+++ b/src/store/model/antonline.ts
@@ -37,4 +37,5 @@ export const AntOnline: Store = {
},
],
name: 'antonline',
+ country: 'US',
};
diff --git a/src/store/model/ao.ts b/src/store/model/ao.ts
index 7f16eab0f7..8224d309ee 100644
--- a/src/store/model/ao.ts
+++ b/src/store/model/ao.ts
@@ -23,4 +23,5 @@ export const AO: Store = {
},
],
name: 'ao',
+ country: 'UK',
};
diff --git a/src/store/model/argos-ie.ts b/src/store/model/argos-ie.ts
index f470cee6fe..37b07ab458 100644
--- a/src/store/model/argos-ie.ts
+++ b/src/store/model/argos-ie.ts
@@ -30,4 +30,5 @@ export const ArgosIE: Store = {
},
],
name: 'argos-ie',
+ country: 'IE',
};
diff --git a/src/store/model/argos.ts b/src/store/model/argos.ts
index 934ee174bb..04510fc4d0 100644
--- a/src/store/model/argos.ts
+++ b/src/store/model/argos.ts
@@ -44,4 +44,5 @@ export const Argos: Store = {
},
],
name: 'argos',
+ country: 'UK',
};
diff --git a/src/store/model/aria.ts b/src/store/model/aria.ts
index de374e4895..f9748c9505 100644
--- a/src/store/model/aria.ts
+++ b/src/store/model/aria.ts
@@ -61,5 +61,6 @@ export const Aria: Store = {
],
},
name: 'aria',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/arlt.ts b/src/store/model/arlt.ts
index 5eba41f2de..18c06fa90c 100644
--- a/src/store/model/arlt.ts
+++ b/src/store/model/arlt.ts
@@ -119,6 +119,25 @@ export const Arlt: Store = {
series: 'ryzen5950',
url: 'https://www.arlt.com/Hardware/PC-Komponenten/Prozessoren-arlt/AMD-Ryzen-9-5950X-boxed.html',
},
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-Radeon-RX-6700-XT-Dual.html',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/ASUS-ROG-Strix-Radeon-RX-6700-XT-OC.html',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro+',
+ series: 'rx6700xt',
+ url: 'https://www.arlt.com/Gaming/Gaming-Hardware/Grafikkarten/Sapphire-Nitro-Radeon-RX-6700-XT.html',
+ },
],
name: 'arlt',
+ country: 'DE',
};
diff --git a/src/store/model/asus-de.ts b/src/store/model/asus-de.ts
index 6797602772..c2bcf99dab 100644
--- a/src/store/model/asus-de.ts
+++ b/src/store/model/asus-de.ts
@@ -63,6 +63,25 @@ export const AsusDe: Store = {
series: '3090',
url: 'https://webshop.asus.com/de/komponenten/grafikkarten/nvidia-serie/2823/asus-tuf-rtx3090-o24g-gaming',
},
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://webshop.asus.com/de/komponenten/grafikkarten/dual-series/3104/asus-dual-rx6700xt-12g',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://webshop.asus.com/de/komponenten/grafikkarten/rog-serie/3106/asus-rog-strix-rx6700xt-o12g-gaming',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://webshop.asus.com/de/komponenten/grafikkarten/tuf-247-betrieb/3105/asus-tuf-rx6700xt-o12g-gaming',
+ },
],
name: 'asus-de',
+ country: 'DE',
};
diff --git a/src/store/model/asus-es.ts b/src/store/model/asus-es.ts
index 3f3c239cf6..bb4be9eec1 100644
--- a/src/store/model/asus-es.ts
+++ b/src/store/model/asus-es.ts
@@ -29,4 +29,5 @@ export const AsusEs: Store = {
},
],
name: 'asus-es',
+ country: 'ES',
};
diff --git a/src/store/model/asus.ts b/src/store/model/asus.ts
index 4a72fbd014..51a3235cbd 100644
--- a/src/store/model/asus.ts
+++ b/src/store/model/asus.ts
@@ -1,5 +1,5 @@
-import {Store} from './store';
import fetch from 'node-fetch';
+import {Store} from './store';
export const Asus: Store = {
backoffStatusCodes: [403, 429, 503],
@@ -157,6 +157,7 @@ export const Asus: Store = {
},
],
name: 'asus',
+ country: 'US',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url = 'https://store.asus.com/us/category/get_real_time_data';
const response = await fetch(request_url, {
@@ -181,3 +182,15 @@ export const Asus: Store = {
},
successStatusCodes: [[0, 399], 404],
};
+
+/* Copy Paste Template
+
+Asus depreciated item numbers, do not use. Instead just copy and paste the links like normal.
+
+{
+ brand: '',
+ model: '',
+ series: '',
+ url: '',
+},
+*/
diff --git a/src/store/model/awd.ts b/src/store/model/awd.ts
index bfba91d6a9..4b0a7f2869 100644
--- a/src/store/model/awd.ts
+++ b/src/store/model/awd.ts
@@ -79,5 +79,6 @@ export const Awd: Store = {
],
},
name: 'awd',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/azerty.ts b/src/store/model/azerty.ts
index 640ed2c3e0..c3d0c29a96 100644
--- a/src/store/model/azerty.ts
+++ b/src/store/model/azerty.ts
@@ -187,4 +187,5 @@ export const Azerty: Store = {
},
],
name: 'azerty',
+ country: 'NL',
};
diff --git a/src/store/model/bandh.ts b/src/store/model/bandh.ts
index 586104d8f8..21caea49bd 100644
--- a/src/store/model/bandh.ts
+++ b/src/store/model/bandh.ts
@@ -157,7 +157,6 @@ export const BAndH: Store = {
series: '3060ti',
url: 'https://www.bhphotovideo.com/c/product/1606946-REG/gigabyte_gv_n306tgamingoc_pro_8gd_rtx_3060_ti_gaming.html',
},
-
{
brand: 'msi',
model: 'gaming x trio',
@@ -254,6 +253,84 @@ export const BAndH: Store = {
series: '3090',
url: 'https://www.bhphotovideo.com/c/product/1614302-REG/asus_rog_strix_rtx3090_o24g_white_rog_strix_geforce_rtx.html',
},
+ {
+ brand: 'zotac',
+ model: 'trinity oc',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1730538-REG/zotac_zt_d40900j_10p_geforce_rtx_4090_trinity.html',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1730540-REG/zotac_zt_d40900d_10p_geforce_rtx_4090_trinity.html',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp extreme airo',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1730539-REG/zotac_zt_d40900b_10p_geforce_rtx_4090_amp.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729221-REG/gigabyte_gv_n4090gaming_oc_24gd_geforce_rtx_4090_gaming.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'windforce',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729222-REG/gigabyte_gv_n4090wf3_24gd_geforce_rtx_4090_windforce.html',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729257-REG/asus_rog_strix_rtx4090_o24g_gaming_geforce_rtx_4090_rog.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1730937-REG/asus_tuf_rtx4090_24g_gaming_geforce_rtx_4090_tuf.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729258-REG/asus_tuf_rtx4090_o24g_gaming_geforce_rtx_4090_tuf.html',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729349-REG/msi_g4090sx24_geforce_rtx_4090_suprim.html',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid x',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729348-REG/msi_g4090slx24_geforce_rtx_4090_suprim.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729347-REG/msi_g4090gxt24_geforce_rtx_4090_gaming.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729346-REG/msi_g4090gt24_geforce_rtx_4090_gaming.html',
+ },
+ {
+ brand: 'pny',
+ model: 'gaming verto epic-x',
+ series: '4090',
+ url: 'https://www.bhphotovideo.com/c/product/1729096-REG/pny_vcg409024tfxxpb1_geforce_rtx_4090_24gb.html',
+ },
{
brand: 'amd',
model: '5950x',
@@ -290,6 +367,358 @@ export const BAndH: Store = {
series: 'sf',
url: 'https://www.bhphotovideo.com/c/product/1560680-REG/corsair_cp_9020186_na_corsair_sf750_power_supply.html',
},
+ {
+ brand: 'pny',
+ model: 'xlr8 verto epic x',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1729444-REG/pny_vcg408016tfxxpb1_nvidia_geforce_rtx_4080.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1731403-REG/gigabyte_gv_n4080gaming_oc_16gd_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1731405-REG/gigabyte_gv_n4080eagle_oc_16gd_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp extreme airo',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1732733-REG/zotac_zt_d40810b_10p_geforce_rtx_4080_amp.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aero oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1731404-REG/gigabyte_gv_n4080aero_oc_16gd_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1732735-REG/zotac_zt_d40810d_10p_geforce_rtx_4080_trinity.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1731409-REG/gigabyte_gv_n4080eagle_16gd_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'master',
+ series: '4080-16g',
+ url: '',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733173-REG/asus_rog_strix_rtx4080_o16g_gaming_geforce_rtx_4080_republic.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733163-REG/asus_tuf_rtx4080_o16g_gaming_geforce_rtx_4080_tuf.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733171-REG/asus_tuf_rtx4080_16g_gaming_geforce_rtx_4080_tuf.html',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733724-REG/msi_g408016sx_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733725-REG/msi_g408016gxt_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733740-REG/msi_g408016v3x_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1732734-REG/zotac_zt_d40810j_10p_geforce_rtx_4080_trinity.html',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1733739-REG/msi_g408016v3xc_geforce_rtx_4080_16gb.html',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 verto oc',
+ series: '4080-16g',
+ url: '',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 verto epic x',
+ series: '4080-16g',
+ url: 'https://www.bhphotovideo.com/c/product/1729444-REG/pny_vcg408016tfxxpb1_nvidia_geforce_rtx_4080.html',
+ },
+ {
+ brand: 'asus',
+ model: 'prime oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1872328-REG/asus_prime_rtx5080_o16g_geforce_rtx_5080_prime.html',
+ },
+ {
+ brand: 'asus',
+ model: 'astral oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1872329-REG/asus_rog_astral_rtx5080_o16g_gaming_republic_of_gamers_astral.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf gaming oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1872330-REG/asus_tuf_rtx5080_o16g_gaming_geforce_rtx_5080_tuf.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875457-REG/msi_g5080_16gtc_geforce_rtx_5080_gaming.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc white',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875458-REG/msi_g5080_16gtcw_geforce_rtx_5080_gaming.html',
+ },
+ {
+ brand: 'msi',
+ model: 'inspire 3x oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875459-REG/msi_g5080_16i3c_geforce_rtx_5080_inspire.html',
+ },
+ {
+ brand: 'asus',
+ model: 'prime',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1874876-REG/asus_prime_rtx5080_16g_geforce_rtx_5080_prime.html',
+ },
+ {
+ brand: 'pny',
+ model: 'suprim liquid soc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875460-REG/msi_g5080_16sls_geforce_rtx_5080_suprim.html',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim soc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875461-REG/msi_g5080_16sps_geforce_rtx_5080_suprim.html',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc plus',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875462-REG/msi_g5080_16v3cp_geforce_rtx_5080_ventus.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1872786-REG/gigabyte_gv_n5080gaming_oc_16gd_geforce_rtx_5080_gaming.html',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875463-REG/msi_g5080_16vgs_geforce_rtx_5080_vanguard.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aero oc sff',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875711-REG/gigabyte_gv_n5080aero_oc_16gd_geforce_rtx_5080_aero.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'windforce oc sff',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875716-REG/gigabyte_gv_n5080wf3oc_16gd_geforce_rtx_5080_windforce.html',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc launch edition',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875464-REG/msi_g5080_16vgsl_geforce_rtx_5080_vanguard.html',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1874645-REG/pny_vcg508016tfxpb1_o_nvidia_geforce_rtx_5080.html',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1874646-REG/pny_vcg508016tfxxpb1_o_nvidia_geforce_rtx_5080.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'master ice',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875713-REG/gigabyte_gv_n5080aorusm_ice_16gd_geforce_rtx_5080_master.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'master',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875712-REG/gigabyte_gv_n5080aorus_m_16gd_geforce_rtx_5080_master.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce wb',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875715-REG/gigabyte_gv_n5080aorusx_wb_16gd_geforce_rtx_5080_aorus.html',
+ },
+ {
+ brand: 'pny',
+ model: 'aorus xtreme waterforce',
+ series: '5080',
+ url: 'https://www.bhphotovideo.com/c/product/1875714-REG/gigabyte_gv_n5080aorusx_w_16gd_geforce_rtx_5080_aorus.html',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875465-REG/msi_g5090_32gtc_geforce_rtx_5090_gaming.html',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid soc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875466-REG/msi_g5090_32sls_geforce_rtx_5090_suprim.html',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1874647-REG/pny_vcg509032tfxpb1_o_nvidia_geforce_rtx_5090.html',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim soc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875467-REG/msi_g5090_32sps_geforce_rtx_5090_suprim.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf gaming oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875902-REG/asus_tuf_rtx5090_o32g_gaming_geforce_rtx_5090_tuf.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce wb',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875720-REG/gigabyte_gv_n5090aorusx_wb_32gd_geforce_rtx_5090_aorus.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875719-REG/gigabyte_gv_n5090aorusx_w_32gd_geforce_rtx_5080_aorus.html',
+ },
+ {
+ brand: 'asus',
+ model: 'astral',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1876781-REG/asus_rog_astral_rtx5090_32g_gaming_rog_astral_gfrce_rtx.html',
+ },
+ {
+ brand: 'asus',
+ model: 'astral oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875529-REG/asus_rog_astral_rtx5090_o32g_gaming_geforce_rtx_5090_republic.html',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1874648-REG/pny_vcg509032tfxxpb1_o_nvidia_geforce_rtx_5090.html',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875468-REG/msi_g5090_32v3c_geforce_rtx_5090_ventus.html',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc launch edition',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875470-REG/msi_g5090_32vgsl_geforce_rtx_5090_vanguard.html',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875469-REG/msi_g5090_32vgs_geforce_rtx_5090_vanguard.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'windforce oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875722-REG/gigabyte_gv_n5090wf3oc_32gd_geforce_rtx_5090_windforce.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875721-REG/gigabyte_gv_n5090gaming_oc_32gd_geforce_rtx_5090_gaming.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf gaming',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875530-REG/asus_tuf_rtx5090_32g_gaming_geforce_rtx_5090_tuf.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'master ice',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875718-REG/gigabyte_gv_n5090aorusm_ice_32gd_geforce_rtx_5090_master.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'master',
+ series: '5090',
+ url: 'https://www.bhphotovideo.com/c/product/1875717-REG/gigabyte_gv_n5090aorus_m_32gd_geforce_rtx_5090_master.html',
+ },
],
name: 'bandh',
+ country: 'US',
};
+
+/* Copy Paste Template
+ {
+ brand: 'pny',
+ model: '',
+ series: '',
+ url: '',
+ },
+*/
diff --git a/src/store/model/bestbuy-ca.ts b/src/store/model/bestbuy-ca.ts
index c21e171ed2..6d57444396 100644
--- a/src/store/model/bestbuy-ca.ts
+++ b/src/store/model/bestbuy-ca.ts
@@ -23,7 +23,7 @@ export const BestBuyCa: Store = {
brand: 'msi',
model: 'ventus 3x',
series: '3060',
- url: 'https://www.bestbuy.ca/en-ca/product/msi-nvidia-geforce-rtx-3060-ventus-3x-12gb-gddr6-video-card/15324508',
+ url: 'https://www.bestbuy.ca/en-ca/product/16595219',
},
{
brand: 'zotac',
@@ -229,7 +229,140 @@ export const BestBuyCa: Store = {
series: '3080ti',
url: 'https://www.bestbuy.ca/en-ca/product/nvidia-geforce-rtx-3080-ti-12gb-gddr6x-video-card/15530045',
},
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18931348',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18931347',
+ },
+ {
+ brand: 'asus',
+ model: 'astral oc',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/19177947',
+ },
+ {
+ brand: 'asus',
+ model: 'astral oc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/19177946',
+ },
+ {
+ brand: 'asus',
+ model: 'prime',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18971064',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18969272',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938760',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938759',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid x',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938758',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid soc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938757',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc launch edition',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938756',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938755',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid x',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938754',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938752',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18938751',
+ },
+ {
+ brand: 'asus',
+ model: 'prime',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18934247',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18934178',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x oc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18934177',
+ },
+ {
+ brand: 'zotac',
+ model: 'solid',
+ series: '5090',
+ url: 'https://www.bestbuy.ca/en-ca/product/18931631',
+ },
+ {
+ brand: 'zotac',
+ model: 'solid oc',
+ series: '5080',
+ url: 'https://www.bestbuy.ca/en-ca/product/18931629',
+ },
],
name: 'bestbuy-ca',
+ country: 'CA',
waitUntil: 'domcontentloaded',
};
+
+/* Copy Paste Template
+
+Just paste product ID at the end of the link
+
+{
+ brand: '',
+ model: '',
+ series: '',
+ url: 'https://www.bestbuy.ca/en-ca/product/',
+},
+*/
diff --git a/src/store/model/bestbuy.ts b/src/store/model/bestbuy.ts
index def86e3263..fc3f0bdb81 100644
--- a/src/store/model/bestbuy.ts
+++ b/src/store/model/bestbuy.ts
@@ -4,12 +4,16 @@ export const BestBuy: Store = {
currency: '$',
labels: {
inStock: {
- container: '[data-sticky-media-gallery] .fulfillment-add-to-cart-button',
+ container: '.fulfillment-add-to-cart-button',
text: ['add to cart'],
},
- maxPrice: {
+ outOfStock: {
container:
- '[data-sticky-media-gallery] .priceView-price .priceView-hero-price span',
+ 'button.c-button.c-button-disabled[data-button-state="SOLD_OUT]',
+ text: ['coming soon'],
+ },
+ maxPrice: {
+ container: '.priceView-price',
},
},
links: [
@@ -17,7 +21,21 @@ export const BestBuy: Store = {
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
- url: 'https://api.bestbuy.com/click/-/6258941/pdp',
+ url: 'https://api.bestbuy.com/click/-/6489491/pdp',
+ },
+ {
+ brand: 'amd',
+ model: '7950x',
+ cartUrl: 'https://api.bestbuy.com/click/-/6519470/cart',
+ series: 'ryzen7950x',
+ url: 'https://api.bestbuy.com/click/-/6519470/pdp',
+ },
+ {
+ brand: 'amd',
+ model: '9800x3d',
+ cartUrl: 'https://api.bestbuy.com/click/-/6606318/cart',
+ series: 'ryzen9800x3d',
+ url: 'https://api.bestbuy.com/click/-/6606318/pdp',
},
{
brand: 'nvidia',
@@ -257,6 +275,62 @@ export const BestBuy: Store = {
series: '3080ti',
url: 'https://api.bestbuy.com/click/-/6462956/pdp',
},
+ {
+ brand: 'nvidia',
+ cartUrl: 'https://api.bestbuy.com/click/-/6521430/cart',
+ model: 'founders edition',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6521430/pdp',
+ },
+ {
+ brand: 'pny',
+ cartUrl: 'https://api.bestbuy.com/click/-/6522679/cart',
+ model: 'xlr8 gaming',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6522679/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6524435/cart',
+ model: 'strix',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6524435/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6524436/cart',
+ model: 'tuf',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6524436/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6522371/cart',
+ model: 'gaming trio',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6522371/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6522334/cart',
+ model: 'suprim liquid x',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6522334/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6521518/cart',
+ model: 'gaming oc',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6521518/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6521517/cart',
+ model: 'windforce',
+ series: '4090',
+ url: 'https://api.bestbuy.com/click/-/6521517/pdp',
+ },
{
brand: 'nvidia',
cartUrl: 'https://api.bestbuy.com/click/-/6429434/cart',
@@ -537,6 +611,244 @@ export const BestBuy: Store = {
series: '3060',
url: 'https://api.bestbuy.com/click/-/6454318/pdp',
},
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6524517/cart',
+ model: 'gaming oc',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6524517/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6525660/cart',
+ model: 'aero oc',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6525660/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6525662/cart',
+ model: 'eagle',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6525662/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6524441/cart',
+ model: 'ventus 3x oc',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6524441/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6524440/cart',
+ model: 'gaming x trio',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6524440/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6525658/cart',
+ model: 'strix',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6525658/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6525663/cart',
+ model: 'eagle oc',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6525663/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6525659/cart',
+ model: 'tuf',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6525659/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6525661/cart',
+ model: 'master',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6525661/pdp',
+ },
+ {
+ brand: 'pny',
+ cartUrl: 'https://api.bestbuy.com/click/-/6522940/cart',
+ model: 'xlr8',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6522940/pdp',
+ },
+ {
+ brand: 'nvidia',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614154/cart',
+ model: 'founders edition',
+ series: '4080-16g',
+ url: 'https://api.bestbuy.com/click/-/6614154/pdp',
+ },
+ {
+ brand: 'intel',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614154/cart',
+ model: 'b580',
+ series: 'arc',
+ url: 'https://api.bestbuy.com/click/-/6614154/pdp',
+ },
+ {
+ brand: 'nvidia',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614154/cart',
+ model: 'founders edition',
+ series: '5070',
+ url: 'https://api.bestbuy.com/click/-/6614154/pdp',
+ },
+ {
+ brand: 'nvidia',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614153/cart',
+ model: 'founders edition',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6614153/pdp',
+ },
+ {
+ brand: 'nvidia',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614151/cart',
+ model: 'founders edition',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6614151/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6617487/cart',
+ model: 'master ice',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6617487/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6616102/cart',
+ model: 'windforce oc',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6616102/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615925/cart',
+ model: 'gaming oc',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615925/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615927/cart',
+ model: 'aorus xtreme waterforce',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615927/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615934/cart',
+ model: 'master ice',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615934/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615924/cart',
+ model: 'master',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615924/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6616100/cart',
+ model: 'aero oc sff',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6616100/pdp',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615928/cart',
+ model: 'aorus xtreme waterforce wb',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615928/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6616090/cart',
+ model: 'gaming trio oc',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6616090/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6616093/cart',
+ model: 'ventus 3x oc',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6616093/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614122/cart',
+ model: 'tuf gaming oc',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6614122/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615831/cart',
+ model: 'prime',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615831/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6616092/cart',
+ model: 'suprim soc',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6616092/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614120/cart',
+ model: 'astral',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6614120/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-/6614119/cart',
+ model: 'tuf gaming',
+ series: '5090',
+ url: 'https://api.bestbuy.com/click/-/6614119/pdp',
+ },
+ {
+ brand: 'msi',
+ cartUrl: 'https://api.bestbuy.com/click/-/6615232/cart',
+ model: 'suprim soc',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-/6615232/pdp',
+ },
+ {
+ brand: 'asus',
+ cartUrl: 'https://api.bestbuy.com/click/-//cart',
+ model: 'tuf gaming oc',
+ series: '5080',
+ url: 'https://api.bestbuy.com/click/-//pdp',
+ },
],
name: 'bestbuy',
+ country: 'US',
};
+
+/* Copy Paste template
+
+Paste the SKU from the site in between both sets of /-// example: /-/sku/cart, /-/sku/pdp
+
+{
+ brand: '',
+ cartUrl: 'https://api.bestbuy.com/click/-//cart',
+ model: '',
+ series: '',
+ url: 'https://api.bestbuy.com/click/-//pdp',
+},
+*/
diff --git a/src/store/model/box.ts b/src/store/model/box.ts
index 8248177b26..3a96cabefb 100644
--- a/src/store/model/box.ts
+++ b/src/store/model/box.ts
@@ -86,5 +86,6 @@ export const Box: Store = {
],
},
name: 'box',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/bpctech.ts b/src/store/model/bpctech.ts
index 04d65152ba..d701fedc87 100644
--- a/src/store/model/bpctech.ts
+++ b/src/store/model/bpctech.ts
@@ -148,4 +148,5 @@ export const Bpctech: Store = {
},
],
name: 'bpctech',
+ country: 'AU',
};
diff --git a/src/store/model/bpmpower.ts b/src/store/model/bpmpower.ts
index 2e250f7822..34fe731e56 100644
--- a/src/store/model/bpmpower.ts
+++ b/src/store/model/bpmpower.ts
@@ -37,4 +37,5 @@ export const BpmPower: Store = {
},
],
name: 'bpm-power',
+ country: 'IT',
};
diff --git a/src/store/model/bt.ts b/src/store/model/bt.ts
index 32ec32595a..42dfc1d22d 100644
--- a/src/store/model/bt.ts
+++ b/src/store/model/bt.ts
@@ -23,4 +23,5 @@ export const BT: Store = {
},
],
name: 'bt',
+ country: 'UK',
};
diff --git a/src/store/model/canadacomputers.ts b/src/store/model/canadacomputers.ts
index 1624169820..293625c124 100644
--- a/src/store/model/canadacomputers.ts
+++ b/src/store/model/canadacomputers.ts
@@ -507,5 +507,6 @@ export const CanadaComputers: Store = {
},
],
name: 'canadacomputers',
+ country: 'CA',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/caseking.ts b/src/store/model/caseking.ts
index 1098f95efc..77e4074412 100644
--- a/src/store/model/caseking.ts
+++ b/src/store/model/caseking.ts
@@ -756,6 +756,84 @@ export const Caseking: Store = {
series: 'ryzen5950',
url: 'https://www.caseking.de/amd-ryzen-9-5950x-3-4-ghz-vermeer-am4-boxed-ohne-kuehler-hpam-205.html',
},
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/asus-radeon-rx-6700-xt-dual-12g-12288-mb-gddr6-gcas-453.html',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/asus-radeon-rx-6700-xt-tuf-o12g-12288-mb-gddr6-gcas-449.html',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/asus-radeon-rx-6700-xt-rog-strix-o12g-12288-mb-gddr6-gcas-448.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/gigabyte-radeon-rx-6700-xt-12g-12288-mb-gddr6-gcgb-376.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/gigabyte-aorus-radeon-rx-6700-xt-elite-12g-12288-mb-gddr6-gcgb-377.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/gigabyte-radeon-rx-6700-xt-eagle-12g-12288-mb-gddr6-gcgb-375.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/gigabyte-radeon-rx-6700-xt-gaming-oc-12g-12288-mb-gddr6-gcgb-374.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/msi-radeon-rx-6700-xt-gaming-x-12g-12288-mb-gddr6-gcmc-269.html',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/msi-radeon-rx-6700-xt-mech-2x-12g-12288-mb-gddr6-gcmc-271.html',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/msi-radeon-rx-6700-xt-mech-2x-12g-oc-12288-mb-gddr6-gcmc-270.html',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro oc',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/sapphire-nitro-radeon-rx-6700-xt-gaming-oc-12g-12288-mb-gddr6-gcsp-219.html',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/sapphire-pulse-radeon-rx-6700-xt-gaming-12g-12288-mb-gddr6-gcsp-220.html',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse oc',
+ series: 'rx6700xt',
+ url: 'https://www.caseking.de/sapphire-pulse-radeon-rx-6700-xt-oc-12g-12288-mb-gddr6-gcsp-226.html',
+ },
{
brand: 'sapphire',
model: 'nitro oc se',
@@ -794,4 +872,5 @@ export const Caseking: Store = {
},
],
name: 'caseking',
+ country: 'DE',
};
diff --git a/src/store/model/ccl.ts b/src/store/model/ccl.ts
index 087895f796..4352fcb259 100644
--- a/src/store/model/ccl.ts
+++ b/src/store/model/ccl.ts
@@ -93,5 +93,6 @@ export const Ccl: Store = {
],
},
name: 'ccl',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/centrecom.ts b/src/store/model/centrecom.ts
index 71363558c5..db38277dc2 100644
--- a/src/store/model/centrecom.ts
+++ b/src/store/model/centrecom.ts
@@ -74,4 +74,5 @@ export const Centrecom: Store = {
},
],
name: 'centrecom',
+ country: 'AU',
};
diff --git a/src/store/model/comet.ts b/src/store/model/comet.ts
index ff72ebce4e..3b11570610 100644
--- a/src/store/model/comet.ts
+++ b/src/store/model/comet.ts
@@ -38,4 +38,5 @@ export const Comet: Store = {
},
],
name: 'comet',
+ country: 'IT',
};
diff --git a/src/store/model/computeralliance.ts b/src/store/model/computeralliance.ts
index 6bd4775b96..08309592f3 100644
--- a/src/store/model/computeralliance.ts
+++ b/src/store/model/computeralliance.ts
@@ -256,4 +256,5 @@ export const ComputerAlliance: Store = {
},
],
name: 'computeralliance',
+ country: 'AU',
};
diff --git a/src/store/model/computeruniverse.ts b/src/store/model/computeruniverse.ts
index 53f6981fd4..db86a2e3f6 100644
--- a/src/store/model/computeruniverse.ts
+++ b/src/store/model/computeruniverse.ts
@@ -634,6 +634,36 @@ export const Computeruniverse: Store = {
series: '3090',
url: 'https://www.computeruniverse.net/de/zotac-gaming-geforce-rtx-3090-trinity-24-gb-enthusiast-grafikkarte',
},
+ {
+ brand: 'asrock',
+ model: 'challenger oc',
+ series: 'rx6700xt',
+ url: 'https://www.computeruniverse.net/de/p/90829010',
+ },
+ {
+ brand: 'asrock',
+ model: 'challenger pro oc',
+ series: 'rx6700xt',
+ url: 'https://www.computeruniverse.net/de/p/90829011',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.computeruniverse.net/de/p/90828759',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.computeruniverse.net/de/p/90829454',
+ },
+ {
+ brand: 'xfx',
+ model: 'swft',
+ series: 'rx6700xt',
+ url: 'https://www.computeruniverse.net/de/p/90829019',
+ },
{
brand: 'amd',
model: '5600x',
@@ -672,4 +702,5 @@ export const Computeruniverse: Store = {
},
],
name: 'computeruniverse',
+ country: 'DE',
};
diff --git a/src/store/model/coolblue.ts b/src/store/model/coolblue.ts
index b29149db2b..8ad03d256d 100644
--- a/src/store/model/coolblue.ts
+++ b/src/store/model/coolblue.ts
@@ -152,4 +152,5 @@ export const Coolblue: Store = {
},
],
name: 'coolblue',
+ country: 'NL',
};
diff --git a/src/store/model/coolmod.ts b/src/store/model/coolmod.ts
index b17d12789f..376d8c86f7 100644
--- a/src/store/model/coolmod.ts
+++ b/src/store/model/coolmod.ts
@@ -1,19 +1,20 @@
import {Store} from './store';
+import {getProductLinksBuilder} from './helpers/card';
export const Coolmod: Store = {
currency: '€',
labels: {
inStock: {
- container: '.product-availability',
- text: ['Envío'],
+ container: '#productBuyButtons',
+ text: ['COMPRAR'],
},
maxPrice: {
- container: '.text-price-total',
+ container: '#normalpricenumber',
euroFormat: true,
},
outOfStock: {
- container: '.product-availability',
- text: ['Sin Stock'],
+ container: '#productBuyButtons',
+ text: ['NO DISPONIBLE'],
},
},
links: [
@@ -23,387 +24,6 @@ export const Coolmod: Store = {
series: 'test:series',
url: 'https://www.coolmod.com/kfa2-geforce-rtx-2060-super-1-click-oc-8gb-gddr6-tarjeta-grafica-precio',
},
- // 3090
- {
- brand: 'asus',
- model: 'strix oc white',
- series: '3090',
- url: 'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3090-oc-white-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3 ultra',
- series: '3090',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3090-xc3-ultra-gaming-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3',
- series: '3090',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3090-xc3-gaming-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3 black',
- series: '3090',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3090-xc3-black-gaming-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus xtreme waterforce',
- series: '3090',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus master',
- series: '3090',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3090-master-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus xtreme',
- series: '3090',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3090-xtrem-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'ichill x4',
- series: '3090',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3090-ichill-x4-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'hof',
- series: '3090',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3090-hof-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'hof premium',
- series: '3090',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3090-hof-premium-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'hof limited edition',
- series: '3090',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3090-hof-limited-edition-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'msi',
- model: 'suprim x',
- series: '3090',
- url: 'https://www.coolmod.com/msi-geforce-rtx-3090-suprim-x-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'pny',
- model: 'xlr8 uprising',
- series: '3090',
- url: 'https://www.coolmod.com/pny-geforce-rtx-3090-xlr8-gaming-epic-x-rgb-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'pny',
- model: 'xlr8 revel',
- series: '3090',
- url: 'https://www.coolmod.com/pny-geforce-rtx-3090-xlr8-gaming-epic-x-rgb-24gb-gddr6x-tarjeta-grafica_76404-precio',
- },
- {
- brand: 'zotac',
- model: 'trinity oc',
- series: '3090',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3090-trinity-oc-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'amp holo',
- series: '3090',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3090-amp-core-holo-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'articstorm',
- series: '3090',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3090-arcticstorm-24gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'trinity',
- series: '3090',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3090-trinity-24gb-gddr6x-tarjeta-grafica-precio',
- },
- // 3080ti
- {
- brand: 'asus',
- model: 'strix',
- series: '3080ti',
- url: 'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-ti-gaming-oc-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3 black',
- series: '3080ti',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-ti-xc3-black-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3',
- series: '3080ti',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-ti-xc3-gaming-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'ftw3',
- series: '3080ti',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-ti-ftw3-gaming-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'ftw3 ultra',
- series: '3080ti',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-ti-ftw3-ultra-gaming-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'gaming oc',
- series: '3080ti',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3080-ti-gaming-oc-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'vision oc',
- series: '3080ti',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3080-ti-vision-oc-12gb-gddr6x-tarjeta-grafica_81994-precio',
- },
- {
- brand: 'gigabyte',
- model: 'eagle oc',
- series: '3080ti',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3080-ti-eagle-oc-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus xtreme',
- series: '3080ti',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-ti-xtreme-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'ichill x4',
- series: '3080ti',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ti-ichill-x4-12gb-gddr6x-tarjeta-grafica_81785-precio',
- },
- {
- brand: 'inno3d',
- model: 'x3 oc',
- series: '3080ti',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ti-x3-oc-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'ichill frostbite',
- series: '3080ti',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ti-ichill-frostbite-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'x3',
- series: '3080ti',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ti-x3-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'ichill x3',
- series: '3080ti',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ti-ichill-x3-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'sg',
- series: '3080ti',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3080-ti-sg-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'sg oc',
- series: '3080ti',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3080-ti-exg-1-click-oc-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'msi',
- model: 'gaming x trio',
- series: '3080ti',
- url: 'https://www.coolmod.com/msi-geforce-rtx-3080-ti-gaming-x-trio-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'pny',
- model: 'xlr8 uprising',
- series: '3080ti',
- url: 'https://www.coolmod.com/pny-geforce-rtx-3080-ti-xlr8-gaming-uprising-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'palit',
- model: 'gaming pro',
- series: '3080ti',
- url: 'https://www.coolmod.com/palit-geforce-rtx-3080-ti-gamingpro-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'trinity',
- series: '3080ti',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-ti-trinity-triple-fan-12gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'amp holo',
- series: '3080ti',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-ti-trinity-amp-holo-12gb-gddr6x-tarjeta-grafica-precio',
- },
- // 3080
- {
- brand: 'gigabyte',
- model: 'eagle oc',
- series: '3080',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3080-eagle-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'msi',
- model: 'ventus 3x oc',
- series: '3080',
- url: 'https://www.coolmod.com/msi-geforce-rtx-3080-ventus-3x-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'asus',
- model: 'tuf',
- series: '3080',
- url: 'https://www.coolmod.com/asus-geforce-tuf-rtx-3080-gaming-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'gaming oc',
- series: '3080',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3080-gaming-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'msi',
- model: 'gaming x trio',
- series: '3080',
- url: 'https://www.coolmod.com/msi-geforce-rtx-3080-gaming-x-trio-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'asus',
- model: 'tuf oc',
- series: '3080',
- url: 'https://www.coolmod.com/asus-geforce-tuf-rtx-3080-oc-gaming-10gb-gddr6x-tarjeta-grfica-precio',
- },
- {
- brand: 'asus',
- model: 'strix oc',
- series: '3080',
- url: 'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3 black',
- series: '3080',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-black-gaming-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'trinity',
- series: '3080',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-trinity-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3 ultra',
- series: '3080',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-ultra-gaming-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'asus',
- model: 'strix',
- series: '3080',
- url: 'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3080-10gb-gddr6x-tarjeta-grfica-precio',
- },
- {
- brand: 'zotac',
- model: 'trinity oc',
- series: '3080',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3080-trinity-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'vision oc',
- series: '3080',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3080-vision-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3',
- series: '3080',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-xc3-gaming-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'ftw3 ultra',
- series: '3080',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-ftw3-ultra-gaming-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus master',
- series: '3080',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-master-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus xtreme',
- series: '3080',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3080-xtreme-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'ftw3',
- series: '3080',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3080-ftw3-gaming-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'pny',
- model: 'xlr8 revel',
- series: '3080',
- url: 'https://www.coolmod.com/pny-geforce-rtx-3080-10gb-xlr8-gaming-epic-x-rgb-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'pny',
- model: 'xlr8 revel',
- series: '3080',
- url: 'https://www.coolmod.com/pny-geforce-rtx-3080-xlr8-gaming-epic-x-rgb-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'sg oc',
- series: '3080',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3080-sg-1-click-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'ichill x4',
- series: '3080',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ichill-x4-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'ichill x3',
- series: '3080',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-ichill-x3-10gb-gddr6x-tarjeta-grafica-precio',
- },
- {
- brand: 'inno3d',
- model: 'twin x2 oc',
- series: '3080',
- url: 'https://www.coolmod.com/inno3d-geforce-rtx-3080-twin-x2-oc-10gb-gddr6x-tarjeta-grafica-precio',
- },
{
brand: 'amd',
model: '5600x',
@@ -428,66 +48,46 @@ export const Coolmod: Store = {
series: 'ryzen5950',
url: 'https://www.coolmod.com/amd-ryzen-9-5950x-49ghz-socket-am4-boxed-procesador-precio',
},
- {
- brand: 'asus',
- model: 'dual',
- series: '3070',
- url: 'https://www.coolmod.com/asus-dual-geforce-rtx-3070-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'msi',
- model: 'gaming x trio',
- series: '3070',
- url: 'https://www.coolmod.com/msi-geforce-rtx-3070-gaming-x-trio-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'msi',
- model: 'ventus 2x',
- series: '3070',
- url: 'https://www.coolmod.com/msi-geforce-rtx-3070-ventus-2x-oc-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'evga',
- model: 'xc3',
- series: '3070',
- url: 'https://www.coolmod.com/evga-geforce-rtx-3070-xc3-black-gaming-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'asus',
- model: 'strix',
- series: '3070',
- url: 'https://www.coolmod.com/asus-rog-strix-geforce-rtx-3070-gaming-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'eagle',
- series: '3070',
- url: 'https://www.coolmod.com/gigabyte-geforce-rtx-3070-eagle-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'gigabyte',
- model: 'aorus master',
- series: '3070',
- url: 'https://www.coolmod.com/gigabyte-aorus-geforce-rtx-3070-master-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'pny',
- model: 'xlr8 revel',
- series: '3070',
- url: 'https://www.coolmod.com/pny-geforce-rtx-3070-xlr8-gaming-epic-x-rgb-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'zotac',
- model: 'twin edge',
- series: '3070',
- url: 'https://www.coolmod.com/zotac-gaming-geforce-rtx-3070-twin-edge-8gb-gddr6-tarjeta-grafica-precio',
- },
- {
- brand: 'kfa2',
- model: 'sg oc',
- series: '3070',
- url: 'https://www.coolmod.com/kfa2-geforce-rtx-3070-sg-1-click-oc-8gb-gddr6-tarjeta-grafica-precio',
- },
],
name: 'coolmod',
+ country: 'ES',
+ linksBuilder: {
+ builder: getProductLinksBuilder({
+ productsSelector: '.productInfo.itemFiltered',
+ sitePrefix: 'https://www.coolmod.com/',
+ titleSelector: '.productName a',
+ }),
+ ttl: 1,
+ waitForSelector: '.productInfo.itemFiltered',
+ urls: [
+ {
+ series: '3060',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/9678',
+ },
+ {
+ series: '3060ti',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/9674',
+ },
+ {
+ series: '3070',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/9675',
+ },
+ {
+ series: '3070ti',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/9727',
+ },
+ {
+ series: '3080',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/9676',
+ },
+ {
+ series: '3080ti',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/9728',
+ },
+ {
+ series: '3090',
+ url: 'https://www.coolmod.com/tarjetas-graficas/appliedfilters/8557',
+ },
+ ],
+ },
};
diff --git a/src/store/model/corsair-uk.ts b/src/store/model/corsair-uk.ts
index 0fca6ef770..b76ec6a5b1 100644
--- a/src/store/model/corsair-uk.ts
+++ b/src/store/model/corsair-uk.ts
@@ -39,4 +39,5 @@ export const CorsairUK: Store = {
},
],
name: 'corsair-uk',
+ country: 'UK',
};
diff --git a/src/store/model/corsair.ts b/src/store/model/corsair.ts
index b360a189ea..4d924fcaed 100644
--- a/src/store/model/corsair.ts
+++ b/src/store/model/corsair.ts
@@ -33,4 +33,5 @@ export const Corsair: Store = {
},
],
name: 'corsair',
+ country: 'US',
};
diff --git a/src/store/model/cpl.ts b/src/store/model/cpl.ts
index 3af45bf720..7c6b8eab76 100644
--- a/src/store/model/cpl.ts
+++ b/src/store/model/cpl.ts
@@ -132,4 +132,5 @@ export const Cpl: Store = {
},
],
name: 'cpl',
+ country: 'AU',
};
diff --git a/src/store/model/currys.ts b/src/store/model/currys.ts
index 7af054db7f..e39aa993f5 100644
--- a/src/store/model/currys.ts
+++ b/src/store/model/currys.ts
@@ -116,5 +116,6 @@ export const Currys: Store = {
],
},
name: 'currys',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/cyberport-at.ts b/src/store/model/cyberport-at.ts
index 3b6a52b698..e760971598 100644
--- a/src/store/model/cyberport-at.ts
+++ b/src/store/model/cyberport-at.ts
@@ -121,4 +121,5 @@ export const CyberportAt: Store = {
},
],
name: 'cyberport-at',
+ country: 'AT',
};
diff --git a/src/store/model/cyberport.ts b/src/store/model/cyberport.ts
index 363767cb81..de7cec4039 100644
--- a/src/store/model/cyberport.ts
+++ b/src/store/model/cyberport.ts
@@ -95,6 +95,54 @@ export const Cyberport: Store = {
series: '3080',
url: 'https://www.cyberport.de?DEEP=2E13-1H7',
},
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E07-A0A',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E07-A08',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E21-326',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E21-324',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E21-325',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E12-3FZ',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E12-3G0',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse oc',
+ series: 'rx6700xt',
+ url: 'https://www.cyberport.de?DEEP=2E01-7JQ',
+ },
{
brand: 'amd',
model: '5600x',
@@ -121,4 +169,5 @@ export const Cyberport: Store = {
},
],
name: 'cyberport',
+ country: 'DE',
};
diff --git a/src/store/model/dcomp.ts b/src/store/model/dcomp.ts
index 6c8d66a369..8727a33af1 100644
--- a/src/store/model/dcomp.ts
+++ b/src/store/model/dcomp.ts
@@ -218,4 +218,5 @@ export const Dcomp: Store = {
},
],
name: 'dcomp',
+ country: 'AU',
};
diff --git a/src/store/model/drako.ts b/src/store/model/drako.ts
index d9169307ac..cb32462754 100644
--- a/src/store/model/drako.ts
+++ b/src/store/model/drako.ts
@@ -241,5 +241,6 @@ export const Drako: Store = {
},
],
name: 'drako',
+ country: 'IT',
successStatusCodes: [[0, 399], 404],
};
diff --git a/src/store/model/dustinhome-no.ts b/src/store/model/dustinhome-no.ts
index 6c5be2c819..446d6e0412 100644
--- a/src/store/model/dustinhome-no.ts
+++ b/src/store/model/dustinhome-no.ts
@@ -73,4 +73,5 @@ export const DustinHomeNO: Store = {
},
],
name: 'dustinhome-no',
+ country: 'NO',
};
diff --git a/src/store/model/ebuyer.ts b/src/store/model/ebuyer.ts
index 1a0cdc5964..154c24d4cd 100644
--- a/src/store/model/ebuyer.ts
+++ b/src/store/model/ebuyer.ts
@@ -120,5 +120,6 @@ export const Ebuyer: Store = {
],
},
name: 'ebuyer',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/elcorteingles.ts b/src/store/model/elcorteingles.ts
index bf4a4fdd63..5a7eae5062 100644
--- a/src/store/model/elcorteingles.ts
+++ b/src/store/model/elcorteingles.ts
@@ -67,4 +67,5 @@ export const Elcorteingles: Store = {
},
],
name: 'elcorteingles',
+ country: 'ES',
};
diff --git a/src/store/model/eletronicamente.ts b/src/store/model/eletronicamente.ts
index 18516ffc4d..8b1ffa9723 100644
--- a/src/store/model/eletronicamente.ts
+++ b/src/store/model/eletronicamente.ts
@@ -134,4 +134,5 @@ export const Eletronicamente: Store = {
},
],
name: 'eletronicamente',
+ country: 'ES',
};
diff --git a/src/store/model/elkjop.ts b/src/store/model/elkjop.ts
index d7a5ab8b20..1e043cfd75 100644
--- a/src/store/model/elkjop.ts
+++ b/src/store/model/elkjop.ts
@@ -194,6 +194,63 @@ export const Elkjop: Store = {
'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=275719&Quantity=1&AddToCart=true',
url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/275719/msi-geforce-rtx-3080-suprim-x-10-gb-grafikkort',
},
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '3060',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=293925&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/293925/msi-rtx-3060-gaming-x-trio-12gb-graphics-card',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '3070',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=275718&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/275718/msi-geforce-rtx-3070-suprim-x-8-gb-grafikkort',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '3090',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=216110&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/216110/gigabyte-geforce-rtx-3090-24gb-gaming-oc',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'vision oc',
+ series: '3070',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=252773&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/252773/gigabyte-geforce-rtx-3070-vision-oc-8gb',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master',
+ series: '3070',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=252824&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/252824/gigabyte-geforce-rtx-3070-aorus-master-8gb',
+ },
+ {
+ brand: 'gainward',
+ model: 'phantom gs',
+ series: '3090',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=266679&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/266679/geforce-rtx-3090-phantom gs',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3060',
+ cartUrl:
+ 'https://www.elkjop.no/INTERSHOP/web/WFS/store-elkjop-Site/no_NO/-/NOK/ViewCart-AddProductByAjax?SKU=293922&Quantity=1&AddToCart=true',
+ url: 'https://www.elkjop.no/product/data/pc-komponenter/grafikkort/293922/asus-geforce-rtx-3060-tuf-12gb-graphics-card',
+ },
],
name: 'elkjop',
+ country: 'NO',
};
diff --git a/src/store/model/eprice.ts b/src/store/model/eprice.ts
index 0f1ee0cf73..44a82e062a 100644
--- a/src/store/model/eprice.ts
+++ b/src/store/model/eprice.ts
@@ -85,4 +85,5 @@ export const Eprice: Store = {
},
],
name: 'eprice',
+ country: 'IT',
};
diff --git a/src/store/model/equippr.ts b/src/store/model/equippr.ts
index 4264c12755..fe872ec880 100644
--- a/src/store/model/equippr.ts
+++ b/src/store/model/equippr.ts
@@ -1,4 +1,5 @@
import {Store} from './store';
+import {getProductLinksBuilder} from './helpers/card';
export const Equippr: Store = {
currency: '€',
@@ -89,6 +90,51 @@ export const Equippr: Store = {
series: '3080',
url: 'https://www.equippr.de/evga-geforce-rtx-3080-xc3-gaming-10-gb-gddr6x-retail-2061391.html',
},
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.equippr.de/asus-radeon-rx-6700-xt-rog-strix-oc-12-gb-gddr6-retail-2072469.html',
+ },
],
name: 'equippr',
+ country: 'DE',
+ linksBuilder: {
+ builder: getProductLinksBuilder({
+ productsSelector: '.product--box',
+ sitePrefix: 'https://www.equippr.de/',
+ titleSelector: 'a.product--title',
+ }),
+ ttl: 1,
+ urls: [
+ {
+ series: '3060',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=67374',
+ },
+ {
+ series: '3060ti',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=66256',
+ },
+ {
+ series: '3070',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=66230',
+ },
+ {
+ series: '3070ti',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=69119',
+ },
+ {
+ series: '3080',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=66221',
+ },
+ {
+ series: '3080ti',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=69117',
+ },
+ {
+ series: '3090',
+ url: 'https://www.equippr.de/computer-elektronik/pc-komponenten/grafikkarten/nvidia-geforce-rtx/?p=1&o=8&n=120&f=66208',
+ },
+ ],
+ },
};
diff --git a/src/store/model/euronics-de.ts b/src/store/model/euronics-de.ts
index bc14bca4d8..8713eb24a3 100644
--- a/src/store/model/euronics-de.ts
+++ b/src/store/model/euronics-de.ts
@@ -53,4 +53,5 @@ export const EuronicsDE: Store = {
},
],
name: 'euronics-de',
+ country: 'DE',
};
diff --git a/src/store/model/euronics.ts b/src/store/model/euronics.ts
index 1ee308b26b..57b55f5ddb 100644
--- a/src/store/model/euronics.ts
+++ b/src/store/model/euronics.ts
@@ -35,4 +35,5 @@ export const Euronics: Store = {
},
],
name: 'euronics',
+ country: 'IT',
};
diff --git a/src/store/model/evatech.ts b/src/store/model/evatech.ts
index 5540c380f2..900858db4d 100644
--- a/src/store/model/evatech.ts
+++ b/src/store/model/evatech.ts
@@ -98,4 +98,5 @@ export const Evatech: Store = {
},
],
name: 'evatech',
+ country: 'AU',
};
diff --git a/src/store/model/evga-eu.ts b/src/store/model/evga-eu.ts
index 8d22d7a9a3..7dbd3ca597 100644
--- a/src/store/model/evga-eu.ts
+++ b/src/store/model/evga-eu.ts
@@ -71,4 +71,5 @@ export const EvgaEu: Store = {
},
],
name: 'evga-eu',
+ country: 'EU',
};
diff --git a/src/store/model/evga.ts b/src/store/model/evga.ts
index 14832eaf06..67936ee6d6 100644
--- a/src/store/model/evga.ts
+++ b/src/store/model/evga.ts
@@ -119,4 +119,5 @@ export const Evga: Store = {
},
],
name: 'evga',
+ country: 'US',
};
diff --git a/src/store/model/expert.ts b/src/store/model/expert.ts
index 6e20d5791c..040f37d6ed 100644
--- a/src/store/model/expert.ts
+++ b/src/store/model/expert.ts
@@ -53,4 +53,5 @@ export const Expert: Store = {
},
],
name: 'expert',
+ country: 'DE',
};
diff --git a/src/store/model/futurex.ts b/src/store/model/futurex.ts
index e1d0803cdb..89e582d2e8 100644
--- a/src/store/model/futurex.ts
+++ b/src/store/model/futurex.ts
@@ -61,6 +61,25 @@ export const Futurex: Store = {
series: '3080',
url: 'https://www.equippr.de/zotac-geforce-rtx-3080-trinity-10-gb-gddr6x-retail-2060389.html',
},
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.future-x.de/gigabyte-radeon-rx6700xt-aorus-elite-12gb-gddr6-2xhdmi-2xd-12288-mb-p-8808313',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.future-x.de/gigabyte-radeon-rx-6700-xt-gaming-oc-12gb-gddr6-2xdp-1xhdmi-grafikkarte-12288-mb-p-8787855/',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro+',
+ series: 'rx6700xt',
+ url: 'https://www.future-x.de/sapphire-amd-radeon-rx-6700-xt-gaming-oc-12gb-gddr6-hdmi-12288-mb-p-8808436/',
+ },
],
name: 'futurex',
+ country: 'DE',
};
diff --git a/src/store/model/galaxus.ts b/src/store/model/galaxus.ts
index 8a1b65c208..92e9082e93 100644
--- a/src/store/model/galaxus.ts
+++ b/src/store/model/galaxus.ts
@@ -55,6 +55,55 @@ export const Galaxus: Store = {
series: 'ryzen5950',
url: 'https://www.galaxus.de/de/product/13987916',
},
+ {
+ brand: 'amd',
+ model: '5950x',
+ series: 'ryzen5950',
+ url: 'https://www.galaxus.de/de/product/13987916',
+ },
+ {
+ brand: 'asrock',
+ model: 'challenger',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15816697',
+ },
+ {
+ brand: 'asrock',
+ model: 'phantom gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15948741',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15300561',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15301182',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15301319',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro+ oc',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15059558',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse',
+ series: 'rx6700xt',
+ url: 'https://www.galaxus.de/de/product/15059559',
+ },
],
name: 'galaxus',
+ country: 'DE',
};
diff --git a/src/store/model/game-es.ts b/src/store/model/game-es.ts
index 39c4ccafa9..e5fb5fcac1 100644
--- a/src/store/model/game-es.ts
+++ b/src/store/model/game-es.ts
@@ -165,4 +165,5 @@ export const GameES: Store = {
},
],
name: 'game-es',
+ country: 'ES',
};
diff --git a/src/store/model/game.ts b/src/store/model/game.ts
index 49a2cbd685..fd124fa156 100644
--- a/src/store/model/game.ts
+++ b/src/store/model/game.ts
@@ -49,4 +49,5 @@ export const Game: Store = {
},
],
name: 'game',
+ country: 'UK',
};
diff --git a/src/store/model/ebgames.ts b/src/store/model/gamestop-ca.ts
similarity index 63%
rename from src/store/model/ebgames.ts
rename to src/store/model/gamestop-ca.ts
index 5e57a83ccd..47c907cbfe 100644
--- a/src/store/model/ebgames.ts
+++ b/src/store/model/gamestop-ca.ts
@@ -1,6 +1,6 @@
import {Store} from './store';
-export const EbGames: Store = {
+export const GamestopCA: Store = {
currency: '$',
labels: {
maxPrice: {
@@ -16,32 +16,33 @@ export const EbGames: Store = {
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
- url: 'https://www.ebgames.ca/Switch/Games/727918/mario-kart-8-deluxe',
+ url: 'https://www.gamestop.ca/Switch/Games/727918/mario-kart-8-deluxe',
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
- url: 'https://www.ebgames.ca/PS5/Games/877522',
+ url: 'https://www.gamestop.ca/PS5/Games/877522',
},
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
- url: 'https://www.ebgames.ca/PS5/Games/877523',
+ url: 'https://www.gamestop.ca/PS5/Games/877523',
},
{
brand: 'microsoft',
model: 'xbox series x',
series: 'xboxsx',
- url: 'https://www.ebgames.ca/Xbox%20Series%20X/Games/877779/xbox-series-x',
+ url: 'https://www.gamestop.ca/Xbox%20Series%20X/Games/877779/xbox-series-x',
},
{
brand: 'microsoft',
model: 'xbox series s',
series: 'xboxss',
- url: 'https://www.ebgames.ca/Xbox%20Series%20X/Games/877780/xbox-series-s',
+ url: 'https://www.gamestop.ca/Xbox%20Series%20X/Games/877780/xbox-series-s',
},
],
- name: 'ebgames',
+ name: 'gamestop-ca',
+ country: 'CA',
};
diff --git a/src/store/model/gamestop-de.ts b/src/store/model/gamestop-de.ts
index 63a5513ab4..bd7a8875bb 100644
--- a/src/store/model/gamestop-de.ts
+++ b/src/store/model/gamestop-de.ts
@@ -37,5 +37,6 @@ export const GamestopDE: Store = {
},
],
name: 'gamestop-de',
+ country: 'DE',
successStatusCodes: [[0, 399], 404],
};
diff --git a/src/store/model/gamestop-ie.ts b/src/store/model/gamestop-ie.ts
index 1230351753..383913f395 100644
--- a/src/store/model/gamestop-ie.ts
+++ b/src/store/model/gamestop-ie.ts
@@ -26,4 +26,5 @@ export const GamestopIE: Store = {
},
],
name: 'gamestop-ie',
+ country: 'IE',
};
diff --git a/src/store/model/gamestop-it.ts b/src/store/model/gamestop-it.ts
index cec223085c..c9ae510061 100644
--- a/src/store/model/gamestop-it.ts
+++ b/src/store/model/gamestop-it.ts
@@ -31,4 +31,5 @@ export const GamestopIT: Store = {
},
],
name: 'gamestop-it',
+ country: 'IT',
};
diff --git a/src/store/model/gamestop.ts b/src/store/model/gamestop.ts
index 4d1a3014f1..ad757e308d 100644
--- a/src/store/model/gamestop.ts
+++ b/src/store/model/gamestop.ts
@@ -139,5 +139,6 @@ export const Gamestop: Store = {
},
],
name: 'gamestop',
+ country: 'US',
successStatusCodes: [[0, 399], 404],
};
diff --git a/src/store/model/globaldata.ts b/src/store/model/globaldata.ts
index 00ee86ce4f..88ccdbb0c8 100644
--- a/src/store/model/globaldata.ts
+++ b/src/store/model/globaldata.ts
@@ -497,5 +497,6 @@ export const Globaldata: Store = {
},
],
name: 'globaldata',
+ country: 'PT',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/hardware-planet.ts b/src/store/model/hardware-planet.ts
index 16f1f52fbc..e2dbddc49b 100644
--- a/src/store/model/hardware-planet.ts
+++ b/src/store/model/hardware-planet.ts
@@ -1,5 +1,5 @@
-import {Store} from './store';
import {getProductLinksBuilder} from './helpers/card';
+import {Store} from './store';
export const HardwarePlanet: Store = {
backoffStatusCodes: [404, 429, 503],
@@ -10,7 +10,7 @@ export const HardwarePlanet: Store = {
text: ['Aggiungi al carrello'],
},
maxPrice: {
- container: '.product-price',
+ container: '..current-price > span',
euroFormat: true,
},
outOfStock: {
@@ -23,7 +23,7 @@ export const HardwarePlanet: Store = {
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
- url: 'https://www.hardware-planet.it/mouse/2929-vendita-mouse-logitech-mouse-m185-optical-swift-grey-910-002238-5099206027282.html',
+ url: 'https://www.hardware-planet.it/cavi-per-ventole/74819-vendita-cavi-per-ventole-inline-cavo-alimentazione-6x-ventola-3pin-da-1x-3pin-femmina-35mainboard-supporta-6-ventole-offerta-del-mese-33436-4043718149780.html',
},
{
brand: 'amd',
@@ -46,25 +46,42 @@ export const HardwarePlanet: Store = {
],
linksBuilder: {
builder: getProductLinksBuilder({
- productsSelector: '.js-product-miniature-wrapper',
+ productsSelector: '.horizontal_mode .js-product-miniature',
sitePrefix: 'https://www.hardware-planet.it',
- titleSelector: '.product-title > a',
+ titleSelector: '.product_name > a',
}),
urls: [
{
series: '3060ti',
- url: 'https://www.hardware-planet.it/module/iqitsearch/searchiqit?s=rtx+3060',
+ url: 'https://www.hardware-planet.it/55-schede-video-nvidia?q=Processore+grafico-GeForce+RTX+3060+Ti',
+ },
+ {
+ series: '3080',
+ url: 'https://www.hardware-planet.it/55-schede-video-nvidia?q=Processore+grafico-GeForce+RTX+3080',
},
{
- series: '3070',
- url: 'https://www.hardware-planet.it/module/iqitsearch/searchiqit?s=rtx+3070',
+ series: '3080ti',
+ url: 'https://www.hardware-planet.it/55-schede-video-nvidia?q=Processore+grafico-GeForce+RTX+3080+Ti',
},
{
- series: '3080',
- url: 'https://www.hardware-planet.it/module/iqitsearch/searchiqit?s=rtx+3080',
+ series: '3090',
+ url: 'https://www.hardware-planet.it/55-schede-video-nvidia?q=Processore+grafico-GeForce+RTX+3090',
+ },
+ {
+ series: 'rx6700xt',
+ url: 'https://www.hardware-planet.it/54-schede-video-ati-amd?q=Processore+grafico-Radeon+RX+6700+XT',
+ },
+ {
+ series: 'rx6800xt',
+ url: 'https://www.hardware-planet.it/54-schede-video-ati-amd?q=Processore+grafico-Radeon+RX+6800+XT',
+ },
+ {
+ series: 'rx6900xt',
+ url: 'https://www.hardware-planet.it/54-schede-video-ati-amd?q=Processore+grafico-Radeon+RX+6900+XT',
},
],
},
name: 'hardware-planet',
+ country: 'IT',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/harristechnology.ts b/src/store/model/harristechnology.ts
index 707f466343..3b862655a3 100644
--- a/src/store/model/harristechnology.ts
+++ b/src/store/model/harristechnology.ts
@@ -48,4 +48,5 @@ export const HarrisTechnology: Store = {
},
],
name: 'harristechnology',
+ country: 'AU',
};
diff --git a/src/store/model/harveynorman-ie.ts b/src/store/model/harveynorman-ie.ts
index 511364f405..99ac9fae1b 100644
--- a/src/store/model/harveynorman-ie.ts
+++ b/src/store/model/harveynorman-ie.ts
@@ -25,5 +25,6 @@ export const HarveyNormanIE: Store = {
},
],
name: 'harveynorman-ie',
+ country: 'IE',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/helpers/card.ts b/src/store/model/helpers/card.ts
index 106976e10f..c0e21fd836 100644
--- a/src/store/model/helpers/card.ts
+++ b/src/store/model/helpers/card.ts
@@ -14,7 +14,7 @@ interface LinksBuilderOptions {
urlSelector?: string;
}
-const isPartialUrlRegExp = /^\/[^/]/i;
+const isPartialUrlRegExp = /^(?!https?:).*/i;
export function getProductLinksBuilder(options: LinksBuilderOptions) {
return (docElement: cheerio.Cheerio, series: Series): Link[] => {
diff --git a/src/store/model/igame.ts b/src/store/model/igame.ts
index 66de3fef94..ba08479815 100644
--- a/src/store/model/igame.ts
+++ b/src/store/model/igame.ts
@@ -82,4 +82,5 @@ export const Igamecomputer: Store = {
},
],
name: 'igame-computer',
+ country: 'AU',
};
diff --git a/src/store/model/index.ts b/src/store/model/index.ts
index d758476658..a7a412db70 100644
--- a/src/store/model/index.ts
+++ b/src/store/model/index.ts
@@ -1,8 +1,6 @@
import {config, defaultStoreData} from '../../config';
+
import {AComPC} from './acompc';
-import {Ldlc} from './ldlc';
-import {LdlcEs} from './ldlc-es';
-import {Materiel} from './materiel';
import {Adorama} from './adorama';
import {Akinformatica} from './akinformatica';
import {Allneeds} from './allneeds';
@@ -63,7 +61,6 @@ import {CyberportAt} from './cyberport-at';
import {Dcomp} from './dcomp';
import {Drako} from './drako';
import {DustinHomeNO} from './dustinhome-no';
-import {EbGames} from './ebgames';
import {Ebuyer} from './ebuyer';
import {Elcorteingles} from './elcorteingles';
import {Eletronicamente} from './eletronicamente';
@@ -81,6 +78,7 @@ import {Galaxus} from './galaxus';
import {Game} from './game';
import {GameES} from './game-es';
import {Gamestop} from './gamestop';
+import {GamestopCA} from './gamestop-ca';
import {GamestopDE} from './gamestop-de';
import {GamestopIE} from './gamestop-ie';
import {GamestopIT} from './gamestop-it';
@@ -92,15 +90,22 @@ import {Igamecomputer} from './igame';
import {JohnLewis} from './johnlewis';
import {Kabum} from './kabum';
import {KomplettNO} from './komplett-no';
+import {Ldlc} from './ldlc';
+import {LdlcEs} from './ldlc-es';
+import {LDLCItaly} from './ldlc-italy';
import {LandmarkComputers} from './lmc';
+import {Materiel} from './materiel';
import {Mediamarkt} from './mediamarkt';
import {MediamarktAt} from './mediamarkt-at';
import {Medimax} from './medimax';
import {Megekko} from './megekko';
import {MemoryExpress} from './memoryexpress';
import {MicroCenter} from './microcenter';
+import {Microsoft} from './microsoft';
+import {MicrosoftCA} from './microsoft-ca';
import {MightyApe} from './mightyape';
import {Mindfactory} from './mindfactory';
+import {MSI} from './msi';
import {Msy} from './msy';
import {Multicom} from './multicom';
import {Mwave} from './mwave';
@@ -152,8 +157,10 @@ import {TescoIE} from './tesco-ie';
import {TheWarehouse} from './thewarehouse';
import {TopAchat} from './topachat';
import {ToysRUs} from './toysrus';
+import {Ubiquiti} from './ubiquiti';
import {Umart} from './umart';
import {Unieuro} from './unieuro';
+import {UltimaInformatica} from './utlimainformatica';
import {Very} from './very';
import {VsGamers} from './vsgamers';
import {Vuugo} from './vuugo';
@@ -162,11 +169,11 @@ import {WalmartCa} from './walmart-ca';
import {WellsTechnology} from './wellstechnology';
import {Wipoid} from './wipoid';
import {Xbox} from './xbox';
+import {XtremMedia} from './xtremmedia';
import {Zotac} from './zotac';
-import {logger} from '../../logger';
+
import chalk from 'chalk';
-import {UltimaInformatica} from './utlimainformatica';
-import {XtremMedia} from './xtremmedia';
+import {logger} from '../../logger';
export const storeList = new Map([
[AComPC.name, AComPC],
@@ -230,7 +237,6 @@ export const storeList = new Map([
[Dcomp.name, Dcomp],
[Drako.name, Drako],
[DustinHomeNO.name, DustinHomeNO],
- [EbGames.name, EbGames],
[Ebuyer.name, Ebuyer],
[Elcorteingles.name, Elcorteingles],
[Eletronicamente.name, Eletronicamente],
@@ -248,6 +254,7 @@ export const storeList = new Map([
[Game.name, Game],
[GameES.name, GameES],
[Gamestop.name, Gamestop],
+ [GamestopCA.name, GamestopCA],
[GamestopDE.name, GamestopDE],
[GamestopIE.name, GamestopIE],
[GamestopIT.name, GamestopIT],
@@ -260,17 +267,21 @@ export const storeList = new Map([
[Kabum.name, Kabum],
[KomplettNO.name, KomplettNO],
[LandmarkComputers.name, LandmarkComputers],
+ [Ldlc.name, Ldlc],
+ [LdlcEs.name, LdlcEs],
+ [LDLCItaly.name, LDLCItaly],
+ [Materiel.name, Materiel],
[Mediamarkt.name, Mediamarkt],
[MediamarktAt.name, MediamarktAt],
[Medimax.name, Medimax],
[Megekko.name, Megekko],
- [Ldlc.name, Ldlc],
- [LdlcEs.name, LdlcEs],
- [Materiel.name, Materiel],
[MemoryExpress.name, MemoryExpress],
[MicroCenter.name, MicroCenter],
+ [Microsoft.name, Microsoft],
+ [MicrosoftCA.name, MicrosoftCA],
[MightyApe.name, MightyApe],
[Mindfactory.name, Mindfactory],
+ [MSI.name, MSI],
[Msy.name, Msy],
[Multicom.name, Multicom],
[Mwave.name, Mwave],
@@ -321,9 +332,10 @@ export const storeList = new Map([
[TheWarehouse.name, TheWarehouse],
[TopAchat.name, TopAchat],
[ToysRUs.name, ToysRUs],
+ [Ubiquiti.name, Ubiquiti],
+ [UltimaInformatica.name, UltimaInformatica],
[Umart.name, Umart],
[Unieuro.name, Unieuro],
- [UltimaInformatica.name, UltimaInformatica],
[Very.name, Very],
[VsGamers.name, VsGamers],
[Vuugo.name, Vuugo],
@@ -463,6 +475,14 @@ export function getAllModels() {
return [...models];
}
+export function getAllCountries() {
+ return Array.from(
+ new Set(
+ [...storeList].map(storeInfo => storeInfo[1]).map(store => store.country)
+ )
+ ).sort();
+}
+
export function getStores() {
return stores;
}
diff --git a/src/store/model/johnlewis.ts b/src/store/model/johnlewis.ts
index e439df205c..7b8bfe5a29 100644
--- a/src/store/model/johnlewis.ts
+++ b/src/store/model/johnlewis.ts
@@ -23,4 +23,5 @@ export const JohnLewis: Store = {
},
],
name: 'johnlewis',
+ country: 'UK',
};
diff --git a/src/store/model/kabum.ts b/src/store/model/kabum.ts
index 917958f381..36de0fa940 100644
--- a/src/store/model/kabum.ts
+++ b/src/store/model/kabum.ts
@@ -169,4 +169,5 @@ export const Kabum: Store = {
},
],
name: 'kabum',
+ country: 'BR',
};
diff --git a/src/store/model/komplett-no.ts b/src/store/model/komplett-no.ts
index 05ae120bfe..4e2cb17399 100644
--- a/src/store/model/komplett-no.ts
+++ b/src/store/model/komplett-no.ts
@@ -250,12 +250,6 @@ export const KomplettNO: Store = {
series: '3090',
url: 'https://www.komplett.no/product/1168127',
},
- {
- brand: 'asus',
- model: 'ekwb',
- series: '3070',
- url: 'https://www.komplett.no/product/1174234',
- },
{
brand: 'asus',
model: 'tuf oc',
@@ -354,7 +348,7 @@ export const KomplettNO: Store = {
},
{
brand: 'gainward',
- model: 'phantom gs',
+ model: 'phoenix',
series: '3060',
url: 'https://www.komplett.no/product/1180413/',
},
@@ -670,6 +664,97 @@ export const KomplettNO: Store = {
series: '3060ti',
url: 'https://www.komplett.no/product/1175535/',
},
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '3070',
+ url: 'https://www.komplett.no/product/1168377/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master',
+ series: '3060',
+ url: 'https://www.komplett.no/product/1182236/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: '3060',
+ url: 'https://www.komplett.no/product/1180870/',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: '3060',
+ url: 'https://www.komplett.no/product/1179438/',
+ },
+ {
+ brand: 'msi',
+ model: 'dual',
+ series: '3060',
+ url: 'https://www.komplett.no/product/1179340/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix',
+ series: '3080',
+ url: 'https://www.komplett.no/product/1176248/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce',
+ series: '3090',
+ url: 'https://www.komplett.no/product/1175706/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce',
+ series: '3080',
+ url: 'https://www.komplett.no/product/1175704/',
+ },
+ {
+ brand: 'asus',
+ model: 'ekwb',
+ series: '3080',
+ url: 'https://www.komplett.no/product/1174235/',
+ },
+ {
+ brand: 'gainward',
+ model: 'phantom gs',
+ series: '3090',
+ url: 'https://www.komplett.no/product/1171803/',
+ },
+ {
+ brand: 'palit',
+ model: 'gamerock',
+ series: '3080',
+ url: 'https://www.komplett.no/product/1171800/',
+ },
+ {
+ brand: 'gainward',
+ model: 'phantom gs',
+ series: '3090',
+ url: 'https://www.komplett.no/product/1171799/',
+ },
+ {
+ brand: 'palit',
+ model: 'gamerock oc',
+ series: '3080',
+ url: 'https://www.komplett.no/product/1171797/',
+ },
+ {
+ brand: 'gainward',
+ model: 'phoenix gs',
+ series: '3090',
+ url: 'https://www.komplett.no/product/1168420/',
+ },
+ {
+ brand: 'gainward',
+ model: 'phoenix',
+ series: '3090',
+ url: 'https://www.komplett.no/product/1168126/',
+ },
],
name: 'komplett-no',
+ country: 'NO',
};
diff --git a/src/store/model/ldlc-es.ts b/src/store/model/ldlc-es.ts
index a96d84d4bc..a112910ce0 100644
--- a/src/store/model/ldlc-es.ts
+++ b/src/store/model/ldlc-es.ts
@@ -895,4 +895,5 @@ export const LdlcEs: Store = {
},
],
name: 'ldlc-es',
+ country: 'ES',
};
diff --git a/src/store/model/ldlc-italy.ts b/src/store/model/ldlc-italy.ts
new file mode 100644
index 0000000000..068ffe0eff
--- /dev/null
+++ b/src/store/model/ldlc-italy.ts
@@ -0,0 +1,83 @@
+import {getProductLinksBuilder} from './helpers/card';
+import {Store} from './store';
+
+export const LDLCItaly: Store = {
+ currency: '€',
+ labels: {
+ inStock: {
+ container: '.stock',
+ text: ['Disponibile'],
+ },
+ maxPrice: {
+ container: '.price',
+ euroFormat: true,
+ },
+ outOfStock: {
+ container: '.stock',
+ text: ['Rottura'],
+ },
+ },
+ links: [
+ {
+ brand: 'test:brand',
+ model: 'test:model',
+ series: 'test:series',
+ url: 'https://www.ldlc.com/it-it/scheda/PB00098129.html',
+ },
+ {
+ brand: 'microsoft',
+ model: 'xbox series x',
+ series: 'xboxsx',
+ url: 'https://www.ldlc.com/it-it/scheda/PB00390450.html',
+ },
+ {
+ brand: 'microsoft',
+ model: 'xbox series s',
+ series: 'xboxss',
+ url: 'https://www.ldlc.com/it-it/scheda/PB00390458.html',
+ },
+ ],
+ linksBuilder: {
+ builder: getProductLinksBuilder({
+ productsSelector: '.pdt-item',
+ sitePrefix: 'https://www.ldlc.com',
+ titleSelector: '.title-3 > a[href]',
+ }),
+ urls: [
+ {
+ series: '3060',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5801+fv121-19509.html',
+ },
+ {
+ series: '3060ti',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5801+fv121-19365.html',
+ },
+ {
+ series: '3070',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5801+fv121-19184.html',
+ },
+ {
+ series: '3080',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5801+fv121-19183.html',
+ },
+ {
+ series: '3090',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5801+fv121-19185.html',
+ },
+ {
+ series: 'rx6800',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5800+fv121-19339.html',
+ },
+ {
+ series: 'rx6800xt',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5800+fv121-19340.html',
+ },
+ {
+ series: 'rx6900xt',
+ url: 'https://www.ldlc.com/it-it/informatica/componenti/scheda-video/c4684/+fv1026-5800+fv121-19367.html',
+ },
+ ],
+ },
+ name: 'ldlc-it',
+ country: 'IT',
+};
diff --git a/src/store/model/ldlc.ts b/src/store/model/ldlc.ts
index cfda382661..d04772fd96 100644
--- a/src/store/model/ldlc.ts
+++ b/src/store/model/ldlc.ts
@@ -41,6 +41,12 @@ export const Ldlc: Store = {
series: '3080',
url: 'https://www.ldlc.com/fr-be/fiche/PB00369299.html',
},
+ {
+ brand: 'msi',
+ model: 'ventus 2X (LHR)',
+ series: '3050',
+ url: 'https://www.ldlc.com/fiche/PB00480344.html',
+ },
{
brand: 'gigabyte',
model: 'gaming oc',
@@ -65,6 +71,12 @@ export const Ldlc: Store = {
series: '3080',
url: 'https://www.ldlc.com/fr-be/fiche/PB00368690.html',
},
+ {
+ brand: 'inno3d',
+ model: 'twin x2',
+ series: '3050',
+ url: 'https://www.ldlc.com/fiche/PB00481183.html',
+ },
{
brand: 'palit',
model: 'gaming pro',
@@ -253,4 +265,5 @@ export const Ldlc: Store = {
},
],
name: 'ldlc',
+ country: 'FR',
};
diff --git a/src/store/model/lmc.ts b/src/store/model/lmc.ts
index 56d7cf4326..084bf93cab 100644
--- a/src/store/model/lmc.ts
+++ b/src/store/model/lmc.ts
@@ -32,4 +32,5 @@ export const LandmarkComputers: Store = {
},
],
name: 'landmark-computers',
+ country: 'AU',
};
diff --git a/src/store/model/materiel.ts b/src/store/model/materiel.ts
index 43a1682ba7..0f4025040a 100644
--- a/src/store/model/materiel.ts
+++ b/src/store/model/materiel.ts
@@ -143,6 +143,12 @@ export const Materiel: Store = {
series: '3060ti',
url: 'https://www.materiel.net/produit/202011160036.html',
},
+ {
+ brand: 'inno3d',
+ model: 'twin x2',
+ series: '3050',
+ url: 'https://www.materiel.net/produit/202201170090.html',
+ },
{
brand: 'kfa2',
model: 'sg oc',
@@ -721,4 +727,5 @@ export const Materiel: Store = {
},
],
name: 'materiel',
+ country: 'FR',
};
diff --git a/src/store/model/mediamarkt-at.ts b/src/store/model/mediamarkt-at.ts
index a5fd580b5e..85221583d6 100644
--- a/src/store/model/mediamarkt-at.ts
+++ b/src/store/model/mediamarkt-at.ts
@@ -33,6 +33,10 @@ export const MediamarktAt: Store = {
container: '#root',
text: ['Dieser Artikel ist bald wieder für Sie verfügbar'],
},
+ {
+ container: '#root',
+ text: ['Dieser Artikel ist bald wieder verfügbar'],
+ },
],
},
links: [
@@ -86,4 +90,5 @@ export const MediamarktAt: Store = {
},
],
name: 'mediamarkt-at',
+ country: 'AT',
};
diff --git a/src/store/model/mediamarkt.ts b/src/store/model/mediamarkt.ts
index 06ee07712d..6171b8fe6f 100644
--- a/src/store/model/mediamarkt.ts
+++ b/src/store/model/mediamarkt.ts
@@ -33,6 +33,10 @@ export const Mediamarkt: Store = {
container: '#root',
text: ['Dieser Artikel ist bald wieder für Sie verfügbar'],
},
+ {
+ container: '#root',
+ text: ['Dieser Artikel ist bald wieder verfügbar'],
+ },
],
},
links: [
@@ -276,6 +280,48 @@ export const Mediamarkt: Store = {
series: '3090',
url: 'https://www.mediamarkt.de/de/product/-2683226.html',
},
+ {
+ brand: 'asrock',
+ model: 'phantom gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.mediamarkt.de/de/product/-85340951.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.mediamarkt.de/de/product/-2728671.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/-2661938.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstation%C2%AE5-hd-kamera-2715822.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-ps5-assassins-creed-valhalla-2715828.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-ps5-marvel-s-spider-man-miles-morales-2715827.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-ps5-marvels-spider-man-miles-morales-ultimate-edition-2715826.html',
+ },
{
brand: 'sony',
model: 'ps5 console',
@@ -306,12 +352,72 @@ export const Mediamarkt: Store = {
series: 'sonyps5c',
url: 'https://www.mediamarkt.de/de/product/_sony-ps5-marvels-spider-man-miles-morales-ultimate-edition-2715826.html',
},
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-ps5-ghost-of-tsushima-directors-cut-2757003.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-ps5-ratchet-clank-rift-apart-2741441.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstationr5-deathloop-death-stranding-dc-nur-online-2768018.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstationr5-death-stranding-directors-cut-nur-online-2765122.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstationr5-ghost-of-tsushima-death-stranding-dc-nur-online-2768019.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstationr5-2762011.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstation%C2%AE5-2661938.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstation%C2%AE5-dualsense%E2%84%A2-2752998.html',
+ },
{
brand: 'sony',
model: 'ps5 digital',
series: 'sonyps5de',
url: 'https://www.mediamarkt.de/de/product/-2661939.html',
},
+ {
+ brand: 'sony',
+ model: 'ps5 digital',
+ series: 'sonyps5de',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstation%C2%AE5-digital-edition-2661939.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 digital',
+ series: 'sonyps5de',
+ url: 'https://www.mediamarkt.de/de/product/_sony-playstation%C2%AE5-digital-edition-medienfernbedienung-2722423.html',
+ },
{
brand: 'microsoft',
model: 'xbox series x',
@@ -326,4 +432,5 @@ export const Mediamarkt: Store = {
},
],
name: 'mediamarkt',
+ country: 'DE',
};
diff --git a/src/store/model/medimax.ts b/src/store/model/medimax.ts
index 8de0f7fb93..430168fd19 100644
--- a/src/store/model/medimax.ts
+++ b/src/store/model/medimax.ts
@@ -43,4 +43,5 @@ export const Medimax: Store = {
},
],
name: 'medimax',
+ country: 'DE',
};
diff --git a/src/store/model/megekko.ts b/src/store/model/megekko.ts
index 85e285b72f..2abb66afe3 100644
--- a/src/store/model/megekko.ts
+++ b/src/store/model/megekko.ts
@@ -157,4 +157,5 @@ export const Megekko: Store = {
},
],
name: 'megekko',
+ country: 'NL',
};
diff --git a/src/store/model/memoryexpress.ts b/src/store/model/memoryexpress.ts
index 6d6ea3ea8d..af288341c2 100644
--- a/src/store/model/memoryexpress.ts
+++ b/src/store/model/memoryexpress.ts
@@ -504,5 +504,6 @@ export const MemoryExpress: Store = {
},
],
name: 'memoryexpress',
+ country: 'CA',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/microcenter.ts b/src/store/model/microcenter.ts
index fffc6ae380..712217677e 100644
--- a/src/store/model/microcenter.ts
+++ b/src/store/model/microcenter.ts
@@ -9,6 +9,7 @@ const microCenterLocationToId: Map = new Map([
['brooklyn', '115'],
['brentwood', '095'],
['cambridge', '121'],
+ ['charlotte', '175'],
['chicago', '151'],
['columbus', '141'],
['dallas', '131'],
@@ -20,6 +21,7 @@ const microCenterLocationToId: Map = new Map([
['madison-heights', '055'],
['marietta', '041'],
['mayfield-heights', '051'],
+ ['miami', '185'],
['north-jersey', '075'],
['overland-park', '191'],
['parkville', '125'],
@@ -336,6 +338,120 @@ for (const microCenterLocation of microCenterLocations) {
series: 'darkhero',
url: `https://www.microcenter.com/product/631349/asus-x570-rog-crosshair-viii-dark-hero-amd-am4-atx-motherboard/?storeid=${storeId}`,
},
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '4090',
+ url: `https://www.microcenter.com/product/654070/asus-geforce-rtx%C2%A04090-tuf-gaming-overclocked-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659687/asus-geforce-rtx-4090-tuf-gaming-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid x',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659534/msi-geforce-rtx%C2%A04090-suprim-liquid-x-24g-hybrid-cooling-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'gigabyte',
+ model: 'windforce',
+ series: '4090',
+ url: `https://www.microcenter.com/product/654056/gigabyte-nvidia-geforce-rtx-4090-windforce-triple-fan-24-gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659527/msi-nvidia-geforce-rtx-4090-gaming-trio-triple-fan-24-gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659528/msi-nvidia-geforce-rtx-4090-gaming-x-trio-triple-fan-24-gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659533/msi-geforce-rtx%C2%A04090-suprim-x-24g-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '4090',
+ url: `https://www.microcenter.com/product/654069/asus-nvidia-geforce-rtx-4090-rog-strix-overclocked-triple-fan-24-gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659575/zotac-nvidia-geforce-rtx-4090-trinity-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '4090',
+ url: `https://www.microcenter.com/product/654055/gigabyte-nvidia-geforce-rtx-4090-gaming-overclocked-triple-fan-24-gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'zotac',
+ model: 'amp airo',
+ series: '4090',
+ url: `https://www.microcenter.com/product/659576/zotac-nvidia-geforce-rtx-4090-amp-extreme-airo-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc white',
+ series: '4090',
+ url: `https://www.microcenter.com/product/663068/asus-nvidia-geforce-rtx-4090-rog-strix-white-rgb-overclocked-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce 24g',
+ series: '4090',
+ url: `https://www.microcenter.com/product/663237/gigabyte-nvidia-geforce-rtx-4090-xtreme-waterforce-rgb-overclocked-liquid-cooled-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master 24g',
+ series: '4090',
+ url: `https://www.microcenter.com/product/663238/gigabyte-nvidia-geforce-rtx-4090-aorus-master-overclocked-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'pny',
+ model: 'vetro',
+ series: '4090',
+ url: `https://www.microcenter.com/product/663856/pny-nvidia-geforce-rtx-4090-verto-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aero oc',
+ series: '4090',
+ url: `https://www.microcenter.com/product/664673/gigabyte-nvidia-geforce-rtx-4090-aero-rgb-overclocked-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'gigabyte',
+ model: 'windforce v2',
+ series: '4090',
+ url: `https://www.microcenter.com/product/667906/gigabyte-nvidia-geforce-rtx-4090-windforce-v2-overclocked-triple-fan-24gb-gddr6-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '4090',
+ url: `https://www.microcenter.com/product/668521/asus-nvidia-geforce-rtx-4090-tuf-gaming-rgb-overclocked-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x slim',
+ series: '4090',
+ url: `https://www.microcenter.com/product/671031/msi-nvidia-geforce-rtx-4090-gaming-x-slim-overclocked-triple-fan-24gb-gddr6x-pcie-40-graphics-card/?storeid=${storeId}`,
+ },
]);
}
}
@@ -358,4 +474,5 @@ export const MicroCenter: Store = {
},
links,
name: 'microcenter',
+ country: 'US',
};
diff --git a/src/store/model/microsoft-ca.ts b/src/store/model/microsoft-ca.ts
new file mode 100644
index 0000000000..69cee6f1d3
--- /dev/null
+++ b/src/store/model/microsoft-ca.ts
@@ -0,0 +1,37 @@
+import {Store} from './store';
+
+export const MicrosoftCA: Store = {
+ currency: '$',
+ labels: {
+ inStock: {
+ container: 'button[aria-label="Checkout bundle"]',
+ text: ['Checkout'],
+ },
+ outOfStock: {
+ container: 'button[aria-label="Checkout bundle"]',
+ text: ['Out of stock'],
+ },
+ },
+ links: [
+ {
+ brand: 'test:brand',
+ model: 'test:model',
+ series: 'test:series',
+ url: 'https://www.xbox.com/en-ca/configure/8WJ714N3RBTL',
+ },
+ {
+ brand: 'microsoft',
+ model: 'xbox series x',
+ series: 'xboxsx',
+ url: 'https://www.xbox.com/en-ca/configure/8WJ714N3RBTL',
+ },
+ {
+ brand: 'microsoft',
+ model: 'xbox series s',
+ series: 'xboxss',
+ url: 'https://www.xbox.com/en-ca/configure/942J774TP9JN',
+ },
+ ],
+ name: 'microsoft-ca',
+ country: 'CA',
+};
diff --git a/src/store/model/microsoft.ts b/src/store/model/microsoft.ts
new file mode 100644
index 0000000000..a28b6b7456
--- /dev/null
+++ b/src/store/model/microsoft.ts
@@ -0,0 +1,37 @@
+import {Store} from './store';
+
+export const Microsoft: Store = {
+ currency: '$',
+ labels: {
+ inStock: {
+ container: 'button[aria-label="Checkout bundle"]',
+ text: ['Checkout'],
+ },
+ outOfStock: {
+ container: 'button[aria-label="Checkout bundle"]',
+ text: ['Out of stock'],
+ },
+ },
+ links: [
+ {
+ brand: 'test:brand',
+ model: 'test:model',
+ series: 'test:series',
+ url: 'https://www.xbox.com/en-us/configure/8WJ714N3RBTL',
+ },
+ {
+ brand: 'microsoft',
+ model: 'xbox series x',
+ series: 'xboxsx',
+ url: 'https://www.xbox.com/en-us/configure/8WJ714N3RBTL',
+ },
+ {
+ brand: 'microsoft',
+ model: 'xbox series s',
+ series: 'xboxss',
+ url: 'https://www.xbox.com/en-us/configure/942J774TP9JN',
+ },
+ ],
+ name: 'microsoft',
+ country: 'US',
+};
diff --git a/src/store/model/mightyape.ts b/src/store/model/mightyape.ts
index 593f3d833a..6248540b0a 100644
--- a/src/store/model/mightyape.ts
+++ b/src/store/model/mightyape.ts
@@ -43,4 +43,5 @@ export const MightyApe: Store = {
},
],
name: 'mightyape',
+ country: 'NZ',
};
diff --git a/src/store/model/mindfactory.ts b/src/store/model/mindfactory.ts
index 96dc416c26..335ba861f5 100644
--- a/src/store/model/mindfactory.ts
+++ b/src/store/model/mindfactory.ts
@@ -107,6 +107,63 @@ export const Mindfactory: Store = {
series: 'ryzen5950',
url: 'https://www.mindfactory.de/product_info.php/AMD-Ryzen-9-5950X-16x-3-40GHz-So-AM4-WOF_1380729.html',
},
+ // #region 6700xt
+ {
+ brand: 'asrock',
+ model: 'challenger',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-ASRock-Radeon-RX-6700-XT-Challenger-12G--Retail-_1402343.html',
+ },
+ {
+ brand: 'asrock',
+ model: 'phantom gaming',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-ASRock-Radeon-RX-6700-XT-PHANTOM-GAMING-DDR6--Retail-_1404253.html',
+ },
+ {
+ brand: 'asrock',
+ model: 'challenger oc',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-ASRock-Radeon-RX-6700-XT-Challenger-D-OC--Retail-_1416036.html',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-MSI-Radeon-RX-6700-XT-MECH-2X-OC-DDR6-3xDP--Retail-_1401817.html',
+ },
+ {
+ brand: 'powercolor',
+ model: 'fighter',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-Powercolor-Radeon-RX-6700XT-Fighter-DDR6--Retail-_1402737.html',
+ },
+ {
+ brand: 'powercolor',
+ model: 'hellhound',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-PowerColor-Radeon-RX-6700-XT-Hellhound--Retail-_1402054.html',
+ },
+ {
+ brand: 'powercolor',
+ model: 'red devil',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-PowerColor-Radeon-RX-6700-XT-Red-Devil-12GB-GDDR6-HDMI-3xDP_1402329.html',
+ },
+ {
+ brand: 'xfx',
+ model: 'merc',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-XFX-Radeon-RX-6700-XT-MERC319-Black-GAMING--Retail-_1402055.html',
+ },
+ {
+ brand: 'xfx',
+ model: 'qick',
+ series: 'rx6700xt',
+ url: 'https://www.mindfactory.de/product_info.php/12GB-XFX-Radeon-RX-6700-XT-QICK319-DDR6-Black-Gaming-3xDP--Retail-_1405679.html',
+ },
+
+ // #endregion
// #region 6800
{
brand: 'gigabyte',
@@ -205,4 +262,5 @@ export const Mindfactory: Store = {
// #endregion
],
name: 'mindfactory',
+ country: 'DE',
};
diff --git a/src/store/model/msi.ts b/src/store/model/msi.ts
new file mode 100644
index 0000000000..aa20a50859
--- /dev/null
+++ b/src/store/model/msi.ts
@@ -0,0 +1,246 @@
+import {Store} from './store';
+
+export const MSI: Store = {
+ currency: '$',
+ labels: {
+ inStock: {
+ container: '#button-cart',
+ text: ['ADD TO CART'],
+ },
+ outOfStock: {
+ container: '#product_qty > button.btn.add-cart-button-3',
+ text: ['Notify Me'],
+ },
+ maxPrice: {
+ container: '#prices-new',
+ },
+ },
+ links: [
+ {
+ brand: 'msi',
+ model: 'vanguard soc',
+ series: '5090',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5090-32G%20-VANGUARD-SOC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2472',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-GAMING-TRIO-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2480',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc white',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-GAMING-TRIO-OC-WHITE",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2479',
+ },
+ {
+ brand: 'msi',
+ model: 'inspire 3x',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-INSPRIE-3X-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2481',
+ },
+ {
+ brand: 'msi',
+ model: 'shadow 3x',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-SHADOW-3X-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2485',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid soc',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-SUPRIM-LIQUID-SOC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2475',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim soc',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-SUPRIM-SOC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2476',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-VANGUARD-SOC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2478',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc launch edition',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-VANGUARD-SOC-LAUNCH-EDITION",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2477',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-VENTUS-3X",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2487',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-VENTUS-3X-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2482',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc plus',
+ series: '5080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5080-16G-VENTUS-3X-OC-PLUS",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2483',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio oc',
+ series: '5090',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-5090-32G-GAMING-TRIO-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2473',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim liquid soc',
+ series: '5090',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5090-32G-SUPRIM-LIQUID-SOC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2469',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim oc',
+ series: '5090',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/Geforce-RTX-5090-32G-SUPRIM-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2470',
+ },
+ {
+ brand: 'msi',
+ model: 'vanguard soc launch edition',
+ series: '5090',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5090-32G-VANGUARD-SOC-LAUNCH-EDITION",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2471',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '5090',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series/GeForce-RTX-5090-32G-VENTUS-3X-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-50-Series?product_id=2474',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '4060',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4060-VENTUS-2X-BLACK-8G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=1799',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x white oc',
+ series: '4060',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4060-VENTUS-2X-WHITE-8G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=1852',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x slim',
+ series: '4070super',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4070-SUPER-12G-GAMING-X-SLIM",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=2055',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '4070super',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4070-SUPER-12G-VENTUS-2X-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=2057',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '4070super',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4070-SUPER-12G-VENTUS-3X-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=2050',
+ },
+ {
+ brand: 'msi',
+ model: 'expert',
+ series: '4070ti',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4070-Ti-SUPER-16G-EXPERT",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=2174',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '4070',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4070-VENTUS-3X-12G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=1741',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x e1 oc',
+ series: '4070',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series/GeForce-RTX-4070-VENTUS-3X-E1-12G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-40-Series?product_id=2361',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: '3050',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3050-GAMING-X-6G",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=2140',
+ },
+ {
+ brand: 'msi',
+ model: 'lp oc',
+ series: '3050',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3050-LP-6G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=2138',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '3050',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3050-VENTUS-2X-6G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=2139',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio',
+ series: '3080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3080-Gaming-Z-Trio-10G-LHR",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=954',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming trio',
+ series: '3080',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3080-GAMING-Z-TRIO-12G-LHR",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=1246',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '3080ti',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3080-Ti-Gaming-X-Trio-12G",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=940',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '3080ti',
+ // "https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series/GeForce-RTX-3080-Ti-Ventus-3X-12G-OC",
+ url: 'https://us-store.msi.com/Graphics-Cards/NVIDIA-GPU/GeForce-RTX-30-Series?product_id=939',
+ },
+ ],
+ name: 'msi',
+ country: 'US',
+};
diff --git a/src/store/model/msy.ts b/src/store/model/msy.ts
index 32e1013deb..59d6c9db57 100644
--- a/src/store/model/msy.ts
+++ b/src/store/model/msy.ts
@@ -166,4 +166,5 @@ export const Msy: Store = {
},
],
name: 'msy',
+ country: 'AU',
};
diff --git a/src/store/model/multicom.ts b/src/store/model/multicom.ts
index b78f49dfa8..8087cf01ec 100644
--- a/src/store/model/multicom.ts
+++ b/src/store/model/multicom.ts
@@ -394,4 +394,5 @@ export const Multicom: Store = {
},
],
name: 'multicom',
+ country: 'NO',
};
diff --git a/src/store/model/mwave.ts b/src/store/model/mwave.ts
index 4171585795..7c7a2cc798 100644
--- a/src/store/model/mwave.ts
+++ b/src/store/model/mwave.ts
@@ -166,4 +166,5 @@ export const Mwave: Store = {
},
],
name: 'mwave',
+ country: 'AU',
};
diff --git a/src/store/model/neobyte.ts b/src/store/model/neobyte.ts
index 4530e7f8e5..6d8b89671c 100644
--- a/src/store/model/neobyte.ts
+++ b/src/store/model/neobyte.ts
@@ -330,4 +330,5 @@ export const NeoByte: Store = {
},
],
name: 'neobyte',
+ country: 'ES',
};
diff --git a/src/store/model/netonnet-no.ts b/src/store/model/netonnet-no.ts
index abfaf90f19..cf304dcb60 100644
--- a/src/store/model/netonnet-no.ts
+++ b/src/store/model/netonnet-no.ts
@@ -251,6 +251,25 @@ export const NetonnetNO: Store = {
series: '3070',
url: 'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/kfa2-geforce-rtx-3070-1-click-oc-8gb/1017014.11111/',
},
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '3090',
+ url: 'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/asus-geforce-rtx-3090-rog-strix-gaming-oc-10g/1017795.11111/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'vision oc',
+ series: '3060',
+ url: 'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3060-vision-oc-12gb/1017250.11111/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'vision oc',
+ series: '3090',
+ url: 'https://www.netonnet.no/art/datakomponenter/skjermkort/nvidia/gigabyte-geforce-rtx-3090-vision-oc-24gb/1015516.11111/',
+ },
],
name: 'netonnet-no',
+ country: 'NO',
};
diff --git a/src/store/model/newegg-ca.ts b/src/store/model/newegg-ca.ts
index 45def07ff6..0d6c874d6a 100644
--- a/src/store/model/newegg-ca.ts
+++ b/src/store/model/newegg-ca.ts
@@ -1007,6 +1007,7 @@ export const NeweggCa: Store = {
},
],
name: 'newegg-ca',
+ country: 'CA',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url =
'https://www.newegg.ca/product/api/ProductRealtime?ItemNumber=' +
diff --git a/src/store/model/newegg-sg.ts b/src/store/model/newegg-sg.ts
index 088a84cde3..aac7753fb7 100644
--- a/src/store/model/newegg-sg.ts
+++ b/src/store/model/newegg-sg.ts
@@ -1122,6 +1122,7 @@ export const NeweggSg: Store = {
},
],
name: 'newegg-sg',
+ country: 'SG',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url =
'https://www.newegg.com/global/sg-en/product/api/ProductRealtime?ItemNumber=' +
diff --git a/src/store/model/newegg.ts b/src/store/model/newegg.ts
index 691b00043f..4401b483b5 100644
--- a/src/store/model/newegg.ts
+++ b/src/store/model/newegg.ts
@@ -1,5 +1,5 @@
-import {Store} from './store';
import fetch from 'node-fetch';
+import {Store} from './store';
export const Newegg: Store = {
currency: '$',
@@ -38,6 +38,7 @@ export const Newegg: Store = {
model: 'test:model',
series: 'test:series',
url: 'https://www.newegg.com/western-digital-blue-500gb/p/N82E16820250087?Item=N82E16820250087',
+ itemNumber: '20-250-087',
},
{
brand: 'msi',
@@ -507,6 +508,132 @@ export const Newegg: Store = {
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090eagle-oc-24gd/p/N82E16814932328',
},
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932555',
+ itemNumber: 'N82E16814932555',
+ model: 'aorus master 24g',
+ series: '4090',
+ url: 'https://www.newegg.com/gigabyte-geforce-rtx-4090-gv-n4090aorus-m-24gd/p/N82E16814932555',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932556',
+ itemNumber: 'N82E16814932556',
+ model: 'aorus xtreme waterforce 24g',
+ series: '4090',
+ url: 'https://www.newegg.com/gigabyte-geforce-rtx-4090-gv-n4090aorusx-w-24gd/p/N82E16814932556',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932550',
+ itemNumber: 'N82E16814932550',
+ model: 'gaming oc',
+ series: '4090',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932550',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932554',
+ itemNumber: 'N82E16814932554',
+ model: 'windforce',
+ series: '4090',
+ url: 'https://www.newegg.com/gigabyte-geforce-rtx-4090-gv-n4090wf3-24gd/p/N82E16814932554',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137761',
+ itemNumber: 'N82E16814137761',
+ model: 'gaming x trio',
+ series: '4090',
+ url: 'https://www.newegg.com/msi-geforce-rtx-4090-rtx-4090-gaming-x-trio-24g/p/N82E16814137761',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137762',
+ itemNumber: 'N82E16814137762',
+ model: 'gaming trio',
+ series: '4090',
+ url: 'https://www.newegg.com/msi-geforce-rtx-4090-rtx-4090-gaming-trio-24g/p/N82E16814137762',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137759',
+ itemNumber: 'N82E16814137759',
+ model: 'suprim',
+ series: '4090',
+ url: 'https://www.newegg.com/msi-geforce-rtx-4090-rtx-4090-suprim-liquid-x-24g/p/N82E16814137759',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137760',
+ itemNumber: 'N82E16814137760',
+ model: 'suprim x',
+ series: '4090',
+ url: 'https://www.newegg.com/msi-geforce-rtx-4090-rtx-4090-suprim-liquid-x-24g/p/N82E16814137760',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126600',
+ itemNumber: 'N82E16814126600',
+ model: 'strix',
+ series: '4090',
+ url: 'https://www.newegg.com/asus-geforce-rtx-4090-rog-strix-rtx4090-24g-gaming/p/N82E16814126600',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126593',
+ itemNumber: 'N82E16814126593',
+ model: 'strix oc',
+ series: '4090',
+ url: 'https://www.newegg.com/asus-geforce-rtx-4090-rog-strix-rtx4090-o24g-gaming/p/N82E16814126593',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126596',
+ itemNumber: 'N82E16814126596',
+ model: 'tuf',
+ series: '4090',
+ url: 'https://www.newegg.com/asus-geforce-rtx-4090-tuf-rtx4090-24g-gaming/p/N82E16814126596',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126594',
+ itemNumber: 'N82E16814126594',
+ model: 'tuf oc',
+ series: '4090',
+ url: 'https://www.newegg.com/asus-geforce-rtx-4090-tuf-rtx4090-o24g-gaming/p/N82E16814126594',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500539',
+ itemNumber: 'N82E16814500539',
+ model: 'trinity',
+ series: '4090',
+ url: 'https://www.newegg.com/zotac-geforce-rtx-4090-zt-d40900d-10p/p/N82E16814500539',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500538',
+ itemNumber: 'N82E16814500538',
+ model: 'amp extreme airo',
+ series: '4090',
+ url: 'https://www.newegg.com/zotac-geforce-rtx-4090-zt-d40900b-10p/p/N82E16814500538',
+ },
{
brand: 'amd',
cartUrl:
@@ -547,6 +674,7 @@ export const Newegg: Store = {
brand: 'microsoft',
cartUrl:
'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16868105273',
+ itemNumber: '68-105-273',
model: 'xbox series x',
series: 'xboxsx',
url: 'https://www.newegg.com/p/N82E16868105273',
@@ -558,6 +686,7 @@ export const Newegg: Store = {
model: 'xbox series s',
series: 'xboxss',
url: 'https://www.newegg.com/p/N82E16868105274',
+ itemNumber: '68-105-274',
},
{
brand: 'asrock',
@@ -566,6 +695,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.newegg.com/asrock-radeon-rx-6900-xt-rx6900xt-16g/p/N82E16814930051',
+ itemNumber: '14-930-051',
},
{
brand: 'gigabyte',
@@ -574,6 +704,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.newegg.com/gigabyte-radeon-rx-6900-xt-gv-r69xt-16gc-b/p/N82E16814932384',
+ itemNumber: '14-932-384',
},
{
brand: 'msi',
@@ -582,6 +713,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.newegg.com/msi-radeon-rx-6900-xt-rx-6900-xt-16g/p/N82E16814137618',
+ itemNumber: '14-137-618',
},
{
brand: 'powercolor',
@@ -590,6 +722,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.newegg.com/powercolor-radeon-rx-6900-xt-axrx-6900xt-16gbd6-m2dhc/p/N82E16814131774',
+ itemNumber: '14-131-774',
},
{
brand: 'sapphire',
@@ -598,6 +731,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6900xt',
url: 'https://www.newegg.com/sapphire-radeon-rx-6900-xt-21308-01-20g/p/N82E16814202393',
+ itemNumber: '14-202-393',
},
{
brand: 'asrock',
@@ -606,6 +740,7 @@ export const Newegg: Store = {
model: 'phantom gaming',
series: 'rx6900xt',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6900xt-pgd-16g/p/N82E16814930052',
+ itemNumber: '14-930-052',
},
{
brand: 'xfx',
@@ -614,6 +749,7 @@ export const Newegg: Store = {
model: 'merc',
series: 'rx6900xt',
url: 'https://www.newegg.com/xfx-radeon-rx-6900-xt-rx-69xtacud9/p/N82E16814150846',
+ itemNumber: '14-150-846',
},
{
brand: 'gigabyte',
@@ -622,6 +758,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.newegg.com/gigabyte-radeon-rx-6800-xt-gv-r68xt-16gc-b/p/N82E16814932373',
+ itemNumber: '14-932-373',
},
{
brand: 'gigabyte',
@@ -630,6 +767,7 @@ export const Newegg: Store = {
model: 'gaming oc',
series: 'rx6800xt',
url: 'https://www.newegg.com/gigabyte-radeon-rx-6800-xt-gv-r68xtgaming-oc-16gd/p/N82E16814932381',
+ itemNumber: '14-932-381',
},
{
brand: 'sapphire',
@@ -638,6 +776,7 @@ export const Newegg: Store = {
model: 'pulse',
series: 'rx6800',
url: 'https://www.newegg.com/sapphire-radeon-rx-6800-11305-02-20g/p/N82E16814202394',
+ itemNumber: '14-202-394',
},
{
brand: 'msi',
@@ -646,6 +785,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.newegg.com/msi-radeon-rx-6800-xt-rx-6800-xt-16g/p/N82E16814137607',
+ itemNumber: '14-137-607',
},
{
brand: 'sapphire',
@@ -654,6 +794,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.newegg.com/sapphire-radeon-rx-6800-xt-21304-01-20g/p/N82E16814202388',
+ itemNumber: '14-202-388',
},
{
brand: 'asrock',
@@ -662,6 +803,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx-6800-xt-16g/p/N82E16814930045',
+ itemNumber: '14-930-045',
},
{
brand: 'asus',
@@ -670,6 +812,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800xt',
url: 'https://www.newegg.com/asus-radeon-rx-6800-xt-rx6800xt-16g/p/N82E16814126472',
+ itemNumber: '14-126-472',
},
{
brand: 'asus',
@@ -678,6 +821,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800',
url: 'https://www.newegg.com/asus-radeon-rx-6800-rx6800-16g/p/N82E16814126473',
+ itemNumber: '14-126-473',
},
{
brand: 'asrock',
@@ -686,6 +830,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-rx-6800-16g/p/N82E16814930046',
+ itemNumber: '14-930-046',
},
{
brand: 'gigabyte',
@@ -694,6 +839,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800',
url: 'https://www.newegg.com/gigabyte-radeon-rx-6800-gv-r68-16gc-b/p/N82E16814932374',
+ itemNumber: '14-932-374',
},
{
brand: 'sapphire',
@@ -702,6 +848,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800',
url: 'https://www.newegg.com/sapphire-radeon-rx-6800-21305-01-20g/p/N82E16814202389',
+ itemNumber: '14-202-389',
},
{
brand: 'msi',
@@ -710,6 +857,7 @@ export const Newegg: Store = {
model: 'amd reference',
series: 'rx6800',
url: 'https://www.newegg.com/msi-radeon-rx-6800-rx-6800-16g/p/N82E16814137608',
+ itemNumber: '14-137-608',
},
{
brand: 'asrock',
@@ -718,8 +866,8 @@ export const Newegg: Store = {
model: 'challenger',
series: 'rx6800',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-rx6800-clp-16go/p/N82E16814930047',
+ itemNumber: '14-930-047',
},
-
{
brand: 'asrock',
cartUrl:
@@ -727,6 +875,7 @@ export const Newegg: Store = {
model: 'phantom gaming',
series: 'rx6800',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-rx6800-pgd-16go/p/N82E16814930048',
+ itemNumber: '14-930-048',
},
{
brand: 'asrock',
@@ -735,6 +884,7 @@ export const Newegg: Store = {
model: 'phantom gaming',
series: 'rx6800xt',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6800xt-pgd-16go/p/N82E16814930049',
+ itemNumber: '14-930-049',
},
{
brand: 'asrock',
@@ -743,6 +893,7 @@ export const Newegg: Store = {
model: 'taichi',
series: 'rx6800xt',
url: 'https://www.newegg.com/asrock-radeon-rx-6800-xt-rx6800xt-tcx-16go/p/N82E16814930050',
+ itemNumber: '14-930-050',
},
{
brand: 'asus',
@@ -751,6 +902,7 @@ export const Newegg: Store = {
model: 'tuf',
series: 'rx6800',
url: 'https://www.newegg.com/asus-radeon-rx-6800-tuf-rx6800-o16g-gaming/p/N82E16814126478',
+ itemNumber: '14-126-478',
},
{
brand: 'asus',
@@ -759,6 +911,7 @@ export const Newegg: Store = {
model: 'tuf',
series: 'rx6800xt',
url: 'https://www.newegg.com/asus-radeon-rx-6800-xt-tuf-rx6800xt-o16g-gaming/p/N82E16814126476',
+ itemNumber: '14-126-476',
},
{
brand: 'asus',
@@ -767,6 +920,7 @@ export const Newegg: Store = {
model: 'strix',
series: 'rx6800',
url: 'https://www.newegg.com/asus-radeon-rx-6800-rog-strix-rx6800-o16g-gaming/p/N82E16814126477',
+ itemNumber: '14-126-477',
},
{
brand: 'asus',
@@ -775,6 +929,7 @@ export const Newegg: Store = {
model: 'strix lc',
series: 'rx6800xt',
url: 'https://www.newegg.com/asus-radeon-rx-6800-xt-rog-strix-lc-rx6800xt-o16g-gaming/p/N82E16814126475',
+ itemNumber: '14-126-475',
},
{
brand: 'sapphire',
@@ -783,6 +938,7 @@ export const Newegg: Store = {
model: 'nitro+',
series: 'rx6800xt',
url: 'https://www.newegg.com/sapphire-radeon-rx-6800-xt-11304-02-20g/p/N82E16814202391',
+ itemNumber: '14-202-391',
},
{
brand: 'sapphire',
@@ -791,6 +947,7 @@ export const Newegg: Store = {
model: 'nitro+ se',
series: 'rx6800xt',
url: 'https://www.newegg.com/sapphire-radeon-rx-6800-xt-11304-01-20g/p/N82E16814202390',
+ itemNumber: '14-202-390',
},
{
brand: 'xfx',
@@ -799,6 +956,7 @@ export const Newegg: Store = {
model: 'merc',
series: 'rx6800xt',
url: 'https://www.newegg.com/xfx-radeon-rx-6800-xt-rx-68xtacbd9/p/N82E16814150844',
+ itemNumber: '14-150-844',
},
{
brand: 'corsair',
@@ -807,6 +965,7 @@ export const Newegg: Store = {
model: '750 platinum',
series: 'sf',
url: 'https://www.newegg.com/corsair-sf750-cp-9020186-na-750w/p/N82E16817139080',
+ itemNumber: '17-139-080',
},
{
brand: 'gigabyte',
@@ -815,6 +974,7 @@ export const Newegg: Store = {
model: 'vision oc',
series: '3060',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060vision-oc-12gd/p/N82E16814932401',
+ itemNumber: '14-932-401',
},
{
brand: 'gigabyte',
@@ -823,6 +983,7 @@ export const Newegg: Store = {
model: 'eagle',
series: '3060',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060eagle-12gd/p/N82E16814932399',
+ itemNumber: '14-932-399',
},
{
brand: 'gigabyte',
@@ -831,6 +992,7 @@ export const Newegg: Store = {
model: 'eagle',
series: '3060',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060eagle-12gd/p/N82E16814932399',
+ itemNumber: '14-932-399',
},
{
brand: 'gigabyte',
@@ -839,6 +1001,7 @@ export const Newegg: Store = {
model: 'aorus',
series: '3060',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060aorus-e-12gd/p/N82E16814932400',
+ itemNumber: '14-932-400',
},
{
brand: 'gigabyte',
@@ -847,6 +1010,7 @@ export const Newegg: Store = {
model: 'eagle oc',
series: '3060',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-gv-n3060eagle-oc-12gd/p/N82E16814932403',
+ itemNumber: '14-932-403',
},
{
brand: 'evga',
@@ -855,6 +1019,7 @@ export const Newegg: Store = {
model: 'xc black',
series: '3060',
url: 'https://www.newegg.com/evga-geforce-rtx-3060-12g-p5-3655-kr/p/N82E16814487538',
+ itemNumber: '14-487-538',
},
{
brand: 'evga',
@@ -863,6 +1028,7 @@ export const Newegg: Store = {
model: 'xc gaming',
series: '3060',
url: 'https://www.newegg.com/evga-geforce-rtx-3060-12g-p5-3657-kr/p/N82E16814487539',
+ itemNumber: '14-487-539',
},
{
brand: 'msi',
@@ -871,6 +1037,7 @@ export const Newegg: Store = {
model: 'gaming x trio',
series: '3060',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-gaming-x-trio-12g/p/N82E16814137629',
+ itemNumber: '14-137-629',
},
{
brand: 'msi',
@@ -879,6 +1046,7 @@ export const Newegg: Store = {
model: 'gaming x',
series: '3060',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-gaming-x-12g/p/N82E16814137630',
+ itemNumber: '14-137-630',
},
{
brand: 'msi',
@@ -887,6 +1055,7 @@ export const Newegg: Store = {
model: 'ventus 3x',
series: '3060',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-ventus-3x-12g-oc/p/N82E16814137631',
+ itemNumber: '14-137-631',
},
{
brand: 'msi',
@@ -895,6 +1064,7 @@ export const Newegg: Store = {
model: 'ventus 2x oc',
series: '3060',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-ventus-2x-12g-oc/p/N82E16814137632',
+ itemNumber: '14-137-632',
},
{
brand: 'msi',
@@ -903,6 +1073,7 @@ export const Newegg: Store = {
model: 'ventus 2x',
series: '3060',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-rtx-3060-ventus-2x-12g/p/N82E16814137638',
+ itemNumber: '14-137-638',
},
{
brand: 'asus',
@@ -911,6 +1082,7 @@ export const Newegg: Store = {
model: 'tuf oc',
series: '3060',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-tuf-rtx3060-o12g-gaming/p/N82E16814126491',
+ itemNumber: '14-126-491',
},
{
brand: 'asus',
@@ -919,6 +1091,7 @@ export const Newegg: Store = {
model: 'strix oc',
series: '3060',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-rog-strix-rtx3060-o12g-gaming/p/N82E16814126492',
+ itemNumber: '14-126-492',
},
{
brand: 'asus',
@@ -927,6 +1100,7 @@ export const Newegg: Store = {
model: 'dual',
series: '3060',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-dual-rtx3060-12g/p/N82E16814126493',
+ itemNumber: '14-126-493',
},
{
brand: 'zotac',
@@ -935,6 +1109,7 @@ export const Newegg: Store = {
model: 'twin edge oc',
series: '3060',
url: 'https://www.newegg.com/zotac-geforce-rtx-3060-zt-a30600h-10m/p/N82E16814500508',
+ itemNumber: '14-500-508',
},
{
brand: 'zotac',
@@ -943,6 +1118,7 @@ export const Newegg: Store = {
model: 'twin edge',
series: '3060',
url: 'https://www.newegg.com/zotac-geforce-rtx-3060-zt-a30600e-10m/p/N82E16814500509',
+ itemNumber: '14-500-509',
},
{
brand: 'zotac',
@@ -951,6 +1127,7 @@ export const Newegg: Store = {
model: 'twin edge',
series: '3060',
url: 'https://www.newegg.com/zotac-geforce-rtx-3060-zt-a30600e-10m/p/N82E16814500509',
+ itemNumber: '14-500-509',
},
{
brand: 'corsair',
@@ -959,6 +1136,7 @@ export const Newegg: Store = {
model: '600 platinum',
series: 'sf',
url: 'https://www.newegg.com/corsair-sf-series-sf600-cp-9020182-na-600w/p/N82E16817139242',
+ itemNumber: '17-139-242',
},
{
brand: 'asus',
@@ -967,6 +1145,7 @@ export const Newegg: Store = {
model: 'strix',
series: '3060ti',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-ti-rog-strix-rtx3060ti-o8g-gaming/p/N82E16814126470',
+ itemNumber: '14-126-470',
},
{
brand: 'msi',
@@ -975,6 +1154,7 @@ export const Newegg: Store = {
model: 'gaming x trio',
series: '3060ti',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-ti-rtx-3060-ti-gaming-x-trio/p/N82E16814137611',
+ itemNumber: '14-137-611',
},
{
brand: 'zotac',
@@ -983,6 +1163,7 @@ export const Newegg: Store = {
model: 'twin edge oc',
series: '3060ti',
url: 'https://www.newegg.com/zotac-geforce-rtx-3060-ti-zt-a30610h-10m/p/N82E16814500507',
+ itemNumber: '14-500-507',
},
{
brand: 'asus',
@@ -991,6 +1172,7 @@ export const Newegg: Store = {
model: 'tuf',
series: '3060ti',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-ti-tuf-rtx3060ti-o8g-gaming/p/N82E16814126471',
+ itemNumber: '14-126-471',
},
{
brand: 'evga',
@@ -999,6 +1181,7 @@ export const Newegg: Store = {
model: 'xc3',
series: '3060ti',
url: 'https://www.newegg.com/evga-geforce-rtx-3060-ti-08g-p5-3663-kr/p/N82E16814487535',
+ itemNumber: '14-487-535',
},
{
brand: 'asus',
@@ -1007,6 +1190,7 @@ export const Newegg: Store = {
model: 'dual',
series: '3060ti',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-ti-dual-rtx3060ti-o8g/p/N82E16814126468',
+ itemNumber: '14-126-468',
},
{
brand: 'msi',
@@ -1015,6 +1199,7 @@ export const Newegg: Store = {
model: 'ventus 2x oc',
series: '3060ti',
url: 'https://www.newegg.com/msi-geforce-rtx-3060-ti-rtx-3060-ti-ventus-2x-oc/p/N82E16814137612',
+ itemNumber: '14-137-612',
},
{
brand: 'evga',
@@ -1023,6 +1208,7 @@ export const Newegg: Store = {
model: 'ftw3 ultra',
series: '3060ti',
url: 'https://www.newegg.com/evga-geforce-rtx-3060-ti-08g-p5-3667-kr/p/N82E16814487537',
+ itemNumber: '14-487-537',
},
{
brand: 'gigabyte',
@@ -1031,6 +1217,7 @@ export const Newegg: Store = {
model: 'aorus',
series: '3060ti',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306taorus-m-8gd/p/N82E16814932375',
+ itemNumber: '14-932-375',
},
{
brand: 'gigabyte',
@@ -1039,6 +1226,7 @@ export const Newegg: Store = {
model: 'gaming oc',
series: '3060ti',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306tgamingoc-pro-8gd/p/N82E16814932376',
+ itemNumber: '14-932-376',
},
{
brand: 'gigabyte',
@@ -1047,6 +1235,7 @@ export const Newegg: Store = {
model: 'eagle',
series: '3060ti',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-8gd/p/N82E16814932379',
+ itemNumber: '14-932-379',
},
{
brand: 'gigabyte',
@@ -1055,6 +1244,7 @@ export const Newegg: Store = {
model: 'gaming oc',
series: '3060ti',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306tgaming-oc-8gd/p/N82E16814932377',
+ itemNumber: '14-932-377',
},
{
brand: 'zotac',
@@ -1063,6 +1253,7 @@ export const Newegg: Store = {
model: 'twin edge',
series: '3060ti',
url: 'https://www.newegg.com/zotac-geforce-rtx-3060-ti-zt-a30610e-10m/p/N82E16814500506',
+ itemNumber: '14-500-506',
},
{
brand: 'gigabyte',
@@ -1071,6 +1262,7 @@ export const Newegg: Store = {
model: 'eagle',
series: '3060ti',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3060-ti-gv-n306teagle-oc-8gd/p/N82E16814932378',
+ itemNumber: '14-932-378',
},
{
brand: 'asus',
@@ -1079,6 +1271,7 @@ export const Newegg: Store = {
model: 'gaming',
series: '3060ti',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-ti-ko-rtx3060ti-o8g-gaming/p/N82E16814126474',
+ itemNumber: '14-126-474',
},
{
brand: 'asus',
@@ -1087,6 +1280,7 @@ export const Newegg: Store = {
model: 'dual',
series: '3060ti',
url: 'https://www.newegg.com/asus-geforce-rtx-3060-ti-dual-rtx3060ti-8g/p/N82E16814126480',
+ itemNumber: '14-126-480',
},
{
brand: 'msi',
@@ -1095,6 +1289,7 @@ export const Newegg: Store = {
model: 'suprim x',
series: '3070',
url: 'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-suprim-x-8g/p/N82E16814137620',
+ itemNumber: '14-137-620',
},
{
brand: 'msi',
@@ -1103,6 +1298,7 @@ export const Newegg: Store = {
model: 'suprim',
series: '3070',
url: 'https://www.newegg.com/msi-geforce-rtx-3070-rtx-3070-suprim-8g/p/N82E16814137623',
+ itemNumber: '14-137-623',
},
{
brand: 'gigabyte',
@@ -1111,6 +1307,7 @@ export const Newegg: Store = {
model: 'aorus xtreme',
series: '3080',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080aorus-x-10gd/p/N82E16814932345',
+ itemNumber: '14-932-345',
},
{
brand: 'gigabyte',
@@ -1119,6 +1316,7 @@ export const Newegg: Store = {
model: 'aorus xtreme waterforce',
series: '3080',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080aorusx-w-10gd/p/N82E16814932372',
+ itemNumber: '14-932-372',
},
{
brand: 'gigabyte',
@@ -1127,6 +1325,7 @@ export const Newegg: Store = {
model: 'aorus xtreme waterforce wb',
series: '3080',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080aorusx-wb-10gd/p/N82E16814932371',
+ itemNumber: '14-932-371',
},
{
brand: 'asus',
@@ -1135,6 +1334,7 @@ export const Newegg: Store = {
model: 'strix white',
series: '3080',
url: 'https://www.newegg.com/asus-geforce-rtx-3080-rog-strix-rtx3080-o10g-white/p/N82E16814126483',
+ itemNumber: '14-126-483',
},
{
brand: 'msi',
@@ -1143,6 +1343,7 @@ export const Newegg: Store = {
model: 'suprim x',
series: '3080',
url: 'https://www.newegg.com/msi-geforce-rtx-3080-rtx3080-suprim-x-10g/p/N82E16814137609',
+ itemNumber: '14-137-609',
},
{
brand: 'gigabyte',
@@ -1151,6 +1352,7 @@ export const Newegg: Store = {
model: 'eagle',
series: '3080',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3080-gv-n3080eagle-10gd/p/N82E16814932367',
+ itemNumber: '14-932-367',
},
{
brand: 'asus',
@@ -1159,6 +1361,7 @@ export const Newegg: Store = {
model: 'ekwb',
series: '3090',
url: 'https://www.newegg.com/asus-geforce-rtx-3090-rtx3090-24g-ek/p/N82E16814126485',
+ itemNumber: '14-126-485',
},
{
brand: 'gigabyte',
@@ -1167,6 +1370,7 @@ export const Newegg: Store = {
model: 'aorus master',
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorus-m-24gd/p/N82E16814932341',
+ itemNumber: '14-932-341',
},
{
brand: 'gigabyte',
@@ -1175,6 +1379,7 @@ export const Newegg: Store = {
model: 'aorus xtreme waterforce',
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorusx-w-24gd/p/N82E16814932387',
+ itemNumber: '14-932-387',
},
{
brand: 'asus',
@@ -1183,6 +1388,7 @@ export const Newegg: Store = {
model: 'tuf oc',
series: '3090',
url: 'https://www.newegg.com/asus-geforce-rtx-3090-tuf-rtx3090-o24g-gaming/p/N82E16814126454',
+ itemNumber: '14-126-454',
},
{
brand: 'gigabyte',
@@ -1191,6 +1397,7 @@ export const Newegg: Store = {
model: 'aorus xtreme waterforce wb',
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorusx-wb-24gd/p/N82E16814932386',
+ itemNumber: '14-932-386',
},
{
brand: 'gigabyte',
@@ -1199,6 +1406,7 @@ export const Newegg: Store = {
model: 'aorus xtreme',
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090aorus-x-24gd/p/N82E16814932340',
+ itemNumber: '14-932-340',
},
{
brand: 'gigabyte',
@@ -1207,6 +1415,7 @@ export const Newegg: Store = {
model: 'vision oc',
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090vision-oc-24gd/p/N82E16814932365',
+ itemNumber: '14-932-365',
},
{
brand: 'asus',
@@ -1215,6 +1424,7 @@ export const Newegg: Store = {
model: 'strix white',
series: '3090',
url: 'https://www.newegg.com/asus-geforce-rtx-3090-rog-strix-rtx3090-o24g-white/p/N82E16814126482',
+ itemNumber: '14-126-482',
},
{
brand: 'msi',
@@ -1223,6 +1433,7 @@ export const Newegg: Store = {
model: 'suprim x',
series: '3090',
url: 'https://www.newegg.com/msi-geforce-rtx-3090-rtx3090-suprim-x-24g/p/N82E16814137610',
+ itemNumber: '14-137-610',
},
{
brand: 'gigabyte',
@@ -1231,6 +1442,7 @@ export const Newegg: Store = {
model: 'eagle',
series: '3090',
url: 'https://www.newegg.com/gigabyte-geforce-rtx-3090-gv-n3090eagle-24gd/p/N82E16814932366',
+ itemNumber: '14-932-366',
},
{
brand: 'powercolor',
@@ -1239,6 +1451,7 @@ export const Newegg: Store = {
model: 'red devil',
series: 'rx6800xt',
url: 'https://www.newegg.com/powercolor-radeon-rx-6800-xt-axrx-6800xt-16gbd6-2dhce-oc/p/N82E16814131767',
+ itemNumber: '14-131-767',
},
{
brand: 'powercolor',
@@ -1247,6 +1460,7 @@ export const Newegg: Store = {
model: 'red devil',
series: 'rx6800',
url: 'https://www.newegg.com/powercolor-radeon-rx-6800-axrx-6800-16gbd6-2dhce-oc/p/N82E16814131770',
+ itemNumber: '14-131-770',
},
{
brand: 'powercolor',
@@ -1255,6 +1469,7 @@ export const Newegg: Store = {
model: 'red dragon',
series: 'rx6800',
url: 'https://www.newegg.com/powercolor-radeon-rx-6800-axrx-6800-16gbd6-3dhr-oc/p/N82E16814131773',
+ itemNumber: '14-131-773',
},
{
brand: 'asus',
@@ -1263,9 +1478,668 @@ export const Newegg: Store = {
model: 'crosshair viii',
series: 'darkhero',
url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16813119362',
+ itemNumber: '13-119-362',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIA4RRJPT6655',
+ model: 'tuf oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIA4RRJPT6655',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIB6NDJBU7977',
+ model: 'suprim x',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIB6NDJBU7977',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIA4REJPN0959',
+ model: 'master',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIA4REJPN0959',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIA4REJPN0233',
+ model: 'ventus 3x',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIA4REJPN0233',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIA4REJPN0307',
+ model: 'aero oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIA4REJPN0307',
+ },
+ {
+ brand: 'ax',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIA4REJPN0954',
+ model: 'x3w',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIA4REJPN0954',
+ },
+ {
+ brand: 'inno3d',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIBDCAJBT4674',
+ model: 'ice dragon super',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIBDCAJBT4674',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=9SIAXMKJPP1243',
+ model: 'tuf',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/9SIAXMKJPP1243',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932561',
+ model: 'gaming oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932561',
+ itemNumber: '14-932-561',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932562',
+ model: 'eagle oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932562',
+ itemNumber: '14-932-562',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137766',
+ model: 'gaming x trio',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814137766',
+ itemNumber: '14-137-766',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137765',
+ model: 'ventus 3x oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814137765',
+ itemNumber: '14-137-765',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126597',
+ model: 'strix oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814126597',
+ itemNumber: '14-126-597',
+ },
+ {
+ brand: 'pny',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814133843',
+ model: 'xlr8 verto',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814133843',
+ itemNumber: '14-133-843',
+ },
+ {
+ brand: 'pny',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814133844',
+ model: 'xlr8 verto oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814133844',
+ itemNumber: '14-133-844',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932559',
+ model: 'aorus',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932559',
+ itemNumber: '14-932-559',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932560',
+ model: 'aero oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932560',
+ itemNumber: '14-932-560',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500541',
+ model: 'amp extreme airo',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814500541',
+ itemNumber: '14-500-541',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932558',
+ model: 'aorus w',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932558',
+ itemNumber: '14-932-558',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500542',
+ model: 'trinity',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814500542',
+ itemNumber: '14-500-542',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137768',
+ model: 'ventus 3x',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814137768',
+ itemNumber: '14-137-768',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137767',
+ model: 'suprim x',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814137767',
+ itemNumber: '14-137-767',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932557',
+ model: 'aorus x wb',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814932557',
+ itemNumber: '14-932-557',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500543',
+ model: 'trinity oc',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814500543',
+ itemNumber: '14-500-543',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126601',
+ model: 'strix',
+ series: '4080-16g',
+ url: 'https://www.newegg.com/asus-rog-crosshair-viii-dark-hero/p/N82E16814126601',
+ itemNumber: '14-126-601',
+ },
+ {
+ brand: 'sparkle',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814993013',
+ model: 'b580',
+ series: 'arc',
+ url: 'https://www.newegg.com/sparkle-intel-arc-b580-titan-oc-12gb-gddr6/p/N82E16814993013',
+ itemNumber: '14-993-013',
+ },
+ {
+ brand: 'lianli',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=2AM-000Z-000E0',
+ model: 'a3 matx wd',
+ series: 'a3-matx',
+ url: 'https://www.newegg.com/p/2AM-000Z-000E0',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137920',
+ model: 'ventus 3x oc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137920',
+ itemNumber: '14-137-920',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137916',
+ model: 'suprim liquid soc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137916',
+ itemNumber: '14-137-916',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137915',
+ model: 'suprim soc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137915',
+ itemNumber: '14-137-915',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137918',
+ model: 'vanguard soc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137918',
+ itemNumber: '14-137-918',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137919',
+ model: 'gaming trio oc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137919',
+ itemNumber: '14-137-919',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137917',
+ model: 'vanguard soc launch edition',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137917',
+ itemNumber: '14-137-917',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500593',
+ model: 'amp extreme infinity',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814500593',
+ itemNumber: '14-500-593',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932756',
+ model: 'aero oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932756',
+ itemNumber: '14-932-756',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932755',
+ model: 'aorus',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932755',
+ itemNumber: '14-932-755',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137910',
+ model: 'gaming trio oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137910',
+ itemNumber: '14-137-910',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137913',
+ model: 'ventus 3x oc plus',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137913',
+ itemNumber: '14-137-913',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137909',
+ model: 'gaming trio oc white',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137909',
+ itemNumber: '14-137-909',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137908',
+ model: 'vanguard soc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137908',
+ itemNumber: '14-137-908',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137906',
+ model: 'suprim soc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137906',
+ itemNumber: '14-137-906',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137907',
+ model: 'vanguard soc launch edition',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137907',
+ itemNumber: '14-137-907',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137905',
+ model: 'suprim liquid soc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137905',
+ itemNumber: '14-137-905',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126752',
+ model: 'tuf',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814126752',
+ itemNumber: '14-126-752',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126753',
+ model: 'tuf oc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814126753',
+ itemNumber: '14-126-753',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932754',
+ model: 'windforce oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932754',
+ itemNumber: '14-932-754',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126751',
+ model: 'astral oc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814126751',
+ itemNumber: '14-126-751',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932753',
+ model: 'gaming oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932753',
+ itemNumber: '14-932-753',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126750',
+ model: 'astral',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814126750',
+ itemNumber: '14-126-750',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126743',
+ model: 'tuf oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814126743',
+ itemNumber: '14-126-743',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126744',
+ model: 'prime oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814126744',
+ itemNumber: '14-126-744',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126742',
+ model: 'astral oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814126742',
+ itemNumber: '14-126-742',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932765',
+ model: 'master ice',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814932765',
+ itemNumber: '14-932-765',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500597',
+ model: 'solid',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814500597',
+ itemNumber: '14-500-597',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932761',
+ model: 'gaming oc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814932761',
+ itemNumber: '14-932-761',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932762',
+ model: 'windforce oc',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814932762',
+ itemNumber: '14-932-762',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932760',
+ model: 'master',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814932760',
+ itemNumber: '14-932-760',
+ },
+
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137946',
+ model: 'ventus 3x',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814137946',
+ itemNumber: '14-137-946',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932764',
+ model: 'aorus xtreme waterforce wb',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814932764',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932763',
+ model: 'aorus xtreme waterforce',
+ series: '5090',
+ url: 'https://www.newegg.com/p/N82E16814932763',
+ itemNumber: '14-932-763',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932757',
+ model: 'master ice',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932757',
+ itemNumber: '14-932-757',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137930',
+ model: 'ventus 3x oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137930',
+ itemNumber: '14-137-930',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137911',
+ model: 'inspire 3x oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137911',
+ itemNumber: '14-137-911',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137912',
+ model: 'ventus 3x oc white',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137912',
+ itemNumber: '14-137-912',
+ },
+ {
+ brand: 'pny',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814133898',
+ model: 'epic x',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814133898',
+ itemNumber: '14-133-898',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500596',
+ model: 'solid',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814500596',
+ itemNumber: '14-500-596',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500594',
+ model: 'solid oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814500594',
+ itemNumber: '14-500-594',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932758',
+ model: 'aorus xtreme waterforce wb',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932758',
+ itemNumber: '14-932-758',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137945',
+ model: 'ventus 3x',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137945',
+ itemNumber: '14-137-945',
+ },
+ {
+ brand: 'gigabyte',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814932759',
+ model: 'aorus xtreme waterforce',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814932759',
+ itemNumber: '14-932-759',
+ },
+ {
+ brand: 'pny',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814133899',
+ model: 'triple fan oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814133899',
+ itemNumber: '14-133-899',
+ },
+ {
+ brand: 'zotac',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814500595',
+ model: 'amp extreme infinity',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814500595',
+ itemNumber: '14-500-595',
+ },
+ {
+ brand: 'msi',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814137914',
+ model: 'shadow 3x oc',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814137914',
+ itemNumber: '14-137-914',
+ },
+ {
+ brand: 'asus',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=N82E16814126776',
+ model: 'prime',
+ series: '5080',
+ url: 'https://www.newegg.com/p/N82E16814126776',
+ itemNumber: '14-126-776',
},
],
name: 'newegg',
+ country: 'US',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url =
'https://www.newegg.com/product/api/ProductRealtime?ItemNumber=' +
@@ -1278,3 +2152,20 @@ export const Newegg: Store = {
);
},
};
+
+/* Copy Paste Template
+
+Copy and paste the item number to the end of each link.
+https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=itemNumber
+https://www.newegg.com/p/itemNumber
+
+{
+ brand: '',
+ cartUrl:
+ 'https://secure.newegg.com/Shopping/AddtoCart.aspx?Submit=ADD&ItemList=',
+ model: '',
+ series: '',
+ url: 'https://www.newegg.com/p/',
+ itemNumber: 'XX-XXX-XXX'
+},
+*/
diff --git a/src/store/model/noelleeming.ts b/src/store/model/noelleeming.ts
index 660714c758..5545236b9f 100644
--- a/src/store/model/noelleeming.ts
+++ b/src/store/model/noelleeming.ts
@@ -38,4 +38,5 @@ export const NoelLeeming: Store = {
},
],
name: 'noelleeming',
+ country: 'NZ',
};
diff --git a/src/store/model/notebooksbilliger.ts b/src/store/model/notebooksbilliger.ts
index b9cd025939..778cb7f823 100644
--- a/src/store/model/notebooksbilliger.ts
+++ b/src/store/model/notebooksbilliger.ts
@@ -122,18 +122,6 @@ export const Notebooksbilliger: Store = {
series: '3070',
url: 'https://www.notebooksbilliger.de/inno3d+geforce+rtx+3070+twin+x2+oc+grafikkarte+685500',
},
- {
- brand: 'nvidia',
- model: 'founders edition',
- series: '3070',
- url: 'https://www.notebooksbilliger.de/nvidia+geforce+rtx+3070+founders+edition+685357',
- },
- {
- brand: 'nvidia',
- model: 'founders edition',
- series: '3070',
- url: 'https://www.notebooksbilliger.de/nvidia+geforce+rtx+3070+founders+edition+685359',
- },
{
brand: 'gainward',
model: 'phoenix',
@@ -212,18 +200,6 @@ export const Notebooksbilliger: Store = {
series: '3080',
url: 'https://www.notebooksbilliger.de/msi+geforce+rtx+3080+gaming+x+trio+10g+grafikkarte+678527',
},
- {
- brand: 'nvidia',
- model: 'founders edition',
- series: '3080',
- url: 'https://www.notebooksbilliger.de/nvidia+geforce+rtx+3080+founders+edition+683301',
- },
- {
- brand: 'nvidia',
- model: 'founders edition',
- series: '3080',
- url: 'https://www.notebooksbilliger.de/nvidia+geforce+rtx+3080+founders+edition+685126',
- },
{
brand: 'palit',
model: 'gaming pro',
@@ -266,18 +242,6 @@ export const Notebooksbilliger: Store = {
series: '3090',
url: 'https://www.notebooksbilliger.de/gigabyte+geforce+rtx+3090+master+24gb+gddr6x+grafikkarte+683868',
},
- {
- brand: 'nvidia',
- model: 'founders edition',
- series: '3090',
- url: 'https://www.notebooksbilliger.de/nvidia+geforce+rtx+3090+founders+edition+683300',
- },
- {
- brand: 'nvidia',
- model: 'founders edition',
- series: '3090',
- url: 'https://www.notebooksbilliger.de/nvidia+geforce+rtx+3090+founders+edition+685124',
- },
{
brand: 'palit',
model: 'gaming pro oc',
@@ -316,4 +280,5 @@ export const Notebooksbilliger: Store = {
},
],
name: 'notebooksbilliger',
+ country: 'DE',
};
diff --git a/src/store/model/novatech.ts b/src/store/model/novatech.ts
index 04efad8444..525e3bc980 100644
--- a/src/store/model/novatech.ts
+++ b/src/store/model/novatech.ts
@@ -85,5 +85,6 @@ export const Novatech: Store = {
],
},
name: 'novatech',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/novoatalho.ts b/src/store/model/novoatalho.ts
index db5e9ac93c..3837529787 100644
--- a/src/store/model/novoatalho.ts
+++ b/src/store/model/novoatalho.ts
@@ -184,5 +184,6 @@ export const NovoAtalho: Store = {
},
],
name: 'novoatalho',
+ country: 'PT',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/nvidia-de.ts b/src/store/model/nvidia-de.ts
index 0b2a38f02d..e8de308d1c 100644
--- a/src/store/model/nvidia-de.ts
+++ b/src/store/model/nvidia-de.ts
@@ -23,26 +23,39 @@ export const NvidiaDE: Store = {
brand: 'nvidia',
model: 'founders edition',
series: '3060ti',
- url: 'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/de-de/geforce/store/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3070',
- url: 'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/de-de/geforce/store/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '3070ti',
+ url: 'https://shop.nvidia.com/de-de/geforce/store/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203070%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3080',
- url: 'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/de-de/geforce/store/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '3080ti',
+ url: 'https://shop.nvidia.com/de-de/geforce/store/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203080%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3090',
- url: 'https://www.nvidia.com/de-de/shop/geforce/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/de-de/geforce/store/gpu/?page=1&limit=9&locale=de-de&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
},
],
name: 'nvidia-de',
+ country: 'DE',
};
diff --git a/src/store/model/nvidia-es.ts b/src/store/model/nvidia-es.ts
index 7e588d8b93..cc1125c4f4 100644
--- a/src/store/model/nvidia-es.ts
+++ b/src/store/model/nvidia-es.ts
@@ -23,38 +23,39 @@ export const NvidiaES: Store = {
brand: 'nvidia',
model: 'founders edition',
series: '3060ti',
- url: 'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3070',
- url: 'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3070ti',
- url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203070%20Ti&manufacturer=NVIDIA&manufacturer_filter=NVIDIA~1,ACER~0,ASUS~0,EVGA~0,GAINWARD~0,GIGABYTE~1,HP~0,LENOVO~0,MSI~1,PALIT~1,PNY~2,ZOTAC~2',
+ url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203070%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3080',
- url: 'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3080ti',
- url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203080%20Ti&manufacturer=NVIDIA&gpu_filter=RTX%203090~1,RTX%203080%20Ti~1,RTX%203080~1,RTX%203070%20Ti~1,RTX%203070~1,RTX%203060%20Ti~1,RTX%203060~0,RTX%202080%20Ti~0,RTX%202080%20SUPER~0,RTX%202080~0,RTX%202070%20SUPER~0,RTX%202070~0,RTX%202060~0,GTX%201660%20Ti~0,GTX%201660%20SUPER~0,GTX%201660~0,GTX%201650%20Ti~0,GTX%201650%20SUPER~0,GTX%201650~0',
+ url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203080%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3090',
- url: 'https://www.nvidia.com/es-es/shop/geforce/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/es-es/geforce/store/gpu/?page=1&limit=9&locale=es-es&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
},
],
name: 'nvidia-es',
+ country: 'ES',
};
diff --git a/src/store/model/nvidia-fr.ts b/src/store/model/nvidia-fr.ts
index fa1cb37d7f..b236c50446 100644
--- a/src/store/model/nvidia-fr.ts
+++ b/src/store/model/nvidia-fr.ts
@@ -23,26 +23,39 @@ export const NvidiaFR: Store = {
brand: 'nvidia',
model: 'founders edition',
series: '3060ti',
- url: 'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/fr-fr/geforce/store/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3070',
- url: 'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/fr-fr/geforce/store/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '3070ti',
+ url: 'https://shop.nvidia.com/fr-fr/geforce/store/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203070%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3080',
- url: 'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/fr-fr/geforce/store/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '3080ti',
+ url: 'https://shop.nvidia.com/fr-fr/geforce/store/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203080%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3090',
- url: 'https://www.nvidia.com/fr-fr/shop/geforce/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/fr-fr/geforce/store/gpu/?page=1&limit=9&locale=fr-fr&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
},
],
name: 'nvidia-fr',
+ country: 'FR',
};
diff --git a/src/store/model/nvidia-gb.ts b/src/store/model/nvidia-gb.ts
index 9980b26ecd..52a460939d 100644
--- a/src/store/model/nvidia-gb.ts
+++ b/src/store/model/nvidia-gb.ts
@@ -23,26 +23,39 @@ export const NvidiaGB: Store = {
brand: 'nvidia',
model: 'founders edition',
series: '3060ti',
- url: 'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/en-gb/geforce/store/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203060%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3070',
- url: 'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/en-gb/geforce/store/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203070&manufacturer=NVIDIA',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '3070ti',
+ url: 'https://shop.nvidia.com/en-gb/geforce/store/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203070%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3080',
- url: 'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/en-gb/geforce/store/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203080&manufacturer=NVIDIA',
+ },
+ {
+ brand: 'nvidia',
+ model: 'founders edition',
+ series: '3080ti',
+ url: 'https://shop.nvidia.com/en-gb/geforce/store/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203080%20Ti&manufacturer=NVIDIA',
},
{
brand: 'nvidia',
model: 'founders edition',
series: '3090',
- url: 'https://www.nvidia.com/en-gb/shop/geforce/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
+ url: 'https://shop.nvidia.com/en-gb/geforce/store/gpu/?page=1&limit=9&locale=en-gb&category=GPU&gpu=RTX%203090&manufacturer=NVIDIA',
},
],
name: 'nvidia-gb',
+ country: 'UK',
};
diff --git a/src/store/model/officedepot.ts b/src/store/model/officedepot.ts
index efa80b7378..2cb4b7ff81 100644
--- a/src/store/model/officedepot.ts
+++ b/src/store/model/officedepot.ts
@@ -43,4 +43,5 @@ export const OfficeDepot: Store = {
},
],
name: 'officedepot',
+ country: 'US',
};
diff --git a/src/store/model/ollo.ts b/src/store/model/ollo.ts
index 1db030b508..efe1286154 100644
--- a/src/store/model/ollo.ts
+++ b/src/store/model/ollo.ts
@@ -25,7 +25,7 @@ export const Ollo: Store = {
brand: 'test:brand',
model: 'test:model',
series: 'test:series',
- url: 'https://www.ollo.it/apple-airpods-2nd-generation-bluetooth-stereofonico-bianco/p_759688',
+ url: 'https://www.ollo.it/trevi-dr-437-sa-lettore-mp3-8-gb-grigio/p_811410',
},
{
brand: 'gainward',
@@ -143,4 +143,5 @@ export const Ollo: Store = {
},
],
name: 'ollo',
+ country: 'IT',
};
diff --git a/src/store/model/opirata.ts b/src/store/model/opirata.ts
index a4d4734963..64613d0b80 100644
--- a/src/store/model/opirata.ts
+++ b/src/store/model/opirata.ts
@@ -218,4 +218,5 @@ export const Opirata: Store = {
},
],
name: 'opirata',
+ country: 'ES',
};
diff --git a/src/store/model/otto.ts b/src/store/model/otto.ts
index 05614122c6..a1f75347c9 100644
--- a/src/store/model/otto.ts
+++ b/src/store/model/otto.ts
@@ -93,4 +93,5 @@ export const Otto: Store = {
},
],
name: 'otto',
+ country: 'DE',
};
diff --git a/src/store/model/overclockers.ts b/src/store/model/overclockers.ts
index 30eca26253..bce0cca246 100644
--- a/src/store/model/overclockers.ts
+++ b/src/store/model/overclockers.ts
@@ -96,5 +96,6 @@ export const Overclockers: Store = {
],
},
name: 'overclockers',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/pbtech.ts b/src/store/model/pbtech.ts
index abe9b0807b..d1ee2179fe 100644
--- a/src/store/model/pbtech.ts
+++ b/src/store/model/pbtech.ts
@@ -70,4 +70,5 @@ export const PBTech: Store = {
},
],
name: 'pbtech',
+ country: 'AU',
};
diff --git a/src/store/model/pcbyte.ts b/src/store/model/pcbyte.ts
index 04a693a41f..818f9101ed 100644
--- a/src/store/model/pcbyte.ts
+++ b/src/store/model/pcbyte.ts
@@ -212,4 +212,5 @@ export const PCByte: Store = {
},
],
name: 'pcbyte',
+ country: 'AU',
};
diff --git a/src/store/model/pccg.ts b/src/store/model/pccg.ts
index 8659255655..b383f904ab 100644
--- a/src/store/model/pccg.ts
+++ b/src/store/model/pccg.ts
@@ -124,4 +124,5 @@ export const Pccg: Store = {
},
],
name: 'pccg',
+ country: 'AU',
};
diff --git a/src/store/model/pccomponentes.ts b/src/store/model/pccomponentes.ts
index d04a088ab9..d209f20367 100644
--- a/src/store/model/pccomponentes.ts
+++ b/src/store/model/pccomponentes.ts
@@ -526,4 +526,5 @@ export const PCComponentes: Store = {
},
],
name: 'pccomponentes',
+ country: 'ES',
};
diff --git a/src/store/model/pcdiga.ts b/src/store/model/pcdiga.ts
index fa128ef9eb..d287afb954 100644
--- a/src/store/model/pcdiga.ts
+++ b/src/store/model/pcdiga.ts
@@ -487,5 +487,6 @@ export const PCDiga: Store = {
},
],
name: 'pcdiga',
+ country: 'PT',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/pcking.ts b/src/store/model/pcking.ts
index 9737ff23d8..213e5d6b16 100644
--- a/src/store/model/pcking.ts
+++ b/src/store/model/pcking.ts
@@ -163,6 +163,72 @@ export const PCKing: Store = {
series: '3090',
url: 'https://www.pcking.de/eshop.php?eslink=1&action=article_detail&s_supplier_id=14&s_supplier_aid=14753078',
},
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15952540',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15930630',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15930631',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15673300',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15673299',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15971204',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15947815',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15947814',
+ },
+ {
+ brand: 'powercolor',
+ model: 'hellhound white',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=16349358',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15919795',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro+',
+ series: 'rx6700xt',
+ url: 'https://www.pcking.de/eshop.php?action=article_detail&s_supplier_aid=15938177',
+ },
{
brand: 'amd',
model: '5600x',
@@ -183,4 +249,5 @@ export const PCKing: Store = {
},
],
name: 'pcking',
+ country: 'DE',
};
diff --git a/src/store/model/playstation.ts b/src/store/model/playstation.ts
index fbf0ea6ccc..5086c2a8fc 100644
--- a/src/store/model/playstation.ts
+++ b/src/store/model/playstation.ts
@@ -43,6 +43,7 @@ export const PlayStation: Store = {
},
],
name: 'playstation',
+ country: 'US',
realTimeInventoryLookup: async (itemNumber: string) => {
const request_url =
'https://api.direct.playstation.com/commercewebservices/ps-direct-us/products/productList?fields=BASIC&productCodes=' +
diff --git a/src/store/model/pny.ts b/src/store/model/pny.ts
index 94000e8b1a..68bf157e99 100644
--- a/src/store/model/pny.ts
+++ b/src/store/model/pny.ts
@@ -67,6 +67,136 @@ export const Pny: Store = {
series: '3090',
url: 'https://www.pny.com/geforce-rtx-3090-xlr8-gaming-epic-x-rgb-triple-fan-p',
},
+ {
+ brand: 'pny',
+ model: 'xlr8 verto epic x oc',
+ series: '4090',
+ url: 'https://www.pny.com/pny-geforce-rtx-4090-24gb-xlr8-rgb-triple-fan-oc',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 verto epic x',
+ series: '4090',
+ url: 'https://www.pny.com/pny-geforce-rtx-4090-24gb-xlr8-rgb-triple-fan',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 verto epic x',
+ series: '4080-16g',
+ url: 'https://www.pny.com/pny-geforce-rtx-4080-16gb-xlr8-gaming-verto-epic-x-rgb-triple-fan',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 verto epic x oc',
+ series: '4080-16g',
+ url: 'https://www.pny.com/pny-geforce-rtx-4080-16gb-epic-x-argb-triple-fan-oc',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan',
+ series: '5070',
+ url: 'https://www.pny.com/geforce-rtx-5070-series?sku=VCG507012TFXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5070',
+ url: 'https://www.pny.com/geforce-rtx-5070-series?sku=VCG507012TFXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x',
+ series: '5070',
+ url: 'https://www.pny.com/geforce-rtx-5070-series?sku=VCG507012TFXXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x oc',
+ series: '5070',
+ url: 'https://www.pny.com/geforce-rtx-5070-series?sku=VCG507012TFXXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan',
+ series: '5070ti',
+ url: 'https://www.pny.com/geforce-rtx-5070-ti-series?sku=VCG5070T16TFXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5070ti',
+ url: 'https://www.pny.com/geforce-rtx-5070-ti-series?sku=VCG5070T16TFXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x',
+ series: '5070ti',
+ url: 'https://www.pny.com/geforce-rtx-5070-ti-series?sku=VCG5070T16TFXXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x oc',
+ series: '5070ti',
+ url: 'https://www.pny.com/geforce-rtx-5070-ti-series?sku=VCG5070T16TFXXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan',
+ series: '5080',
+ url: 'https://www.pny.com/geforce-rtx-5080-series?sku=VCG508016TFXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5080',
+ url: 'https://www.pny.com/geforce-rtx-5080-series?sku=VCG508016TFXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x',
+ series: '5080',
+ url: 'https://www.pny.com/geforce-rtx-5080-series?sku=VCG508016TFXXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x oc',
+ series: '5080',
+ url: 'https://www.pny.com/geforce-rtx-5080-series?sku=VCG508016TFXXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan',
+ series: '5090',
+ url: 'https://www.pny.com/geforce-rtx-5090-series?sku=VCG509032TFXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'triple fan oc',
+ series: '5090',
+ url: 'https://www.pny.com/geforce-rtx-5090-series?sku=VCG509032TFXPB1-O',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x',
+ series: '5090',
+ url: 'https://www.pny.com/geforce-rtx-5090-series?sku=VCG509032TFXXPB1',
+ },
+ {
+ brand: 'pny',
+ model: 'epic x oc',
+ series: '5090',
+ url: 'https://www.pny.com/geforce-rtx-5090-series?sku=VCG509032TFXXPB1-O',
+ },
],
name: 'pny',
+ country: 'US',
};
+
+/* Copy Paste Template
+{
+ brand: 'pny',
+ model: '',
+ series: '',
+ url: '',
+},
+*/
diff --git a/src/store/model/power-no.ts b/src/store/model/power-no.ts
index fbe4640bb4..c6409607c8 100644
--- a/src/store/model/power-no.ts
+++ b/src/store/model/power-no.ts
@@ -93,6 +93,331 @@ export const PowerNO: Store = {
series: '3080',
url: 'https://www.power.no/data-og-tilbehoer/p-1128968/',
},
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3060ti',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3060-ti-oc-edition-grafikkort/p-1132911/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3090-oc-edition-24-gb-grafikkort/p-1128962/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-rtx-3070-oc-8gb/p-1135069/',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 uprising',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/pny-geforce-rtx-3070-8-gb-uprising-dual-fan-edition-grafikkort/p-1128969/',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-dual-geforce-rtx-3060-ti-grafikkort/p-1132914/',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 revel',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/pny-geforce-rtx-3070-8-gb-xlr8-gaming-revel-epic-x-rgb-triple-fan-edition-grafikkort/p-1128970/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-rtx-3070-oc-8gb/p-1135068/',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-dual-rtx-3060-ti-mini-oc-8-gb-grafikkort/p-1141085/',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 uprising',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/pny-geforce-rtx-3080-10-gb-xlr8-gaming-uprising-epic-x-rgb-triple-fan-edition-grafikkort/p-1128968/',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3080-10-gb-ventus-3x-oc-grafikkort/p-1118420/',
+ },
+ {
+ brand: 'msi',
+ model: 'strix',
+ series: '3060ti',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3060-ti-grafikkort/p-1132910/',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-dual-geforce-rtx-3070-8-gb-grafikkort/p-1117757/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3080-10-gb-grafikkort/p-1115923/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3070-8-gb-grafikkort/p-1117756/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3080-10-gb-grafikkort/p-1117755/',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3090-suprim-x-24g-grafikkort/p-1145754/',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-dual-geforce-rtx-3060-12-gb-grafikkort/p-1167374/',
+ },
+ {
+ brand: 'asus',
+ model: 'dual oc',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-dual-geforce-rtx-3060-12-gb-oc-edition-grafikkort/p-1167373/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3060-12-gb-grafikkort/p-1167372/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3060-12-gb-oc-edition-grafikkort/p-1167371/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3060-12-gb-grafikkort/p-1167370/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3060-12-gb-oc-edition-grafikkort/p-1167369/',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3060-gaming-x-trio-12-gb-grafikkort/p-1163157/',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '3060',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3060-gaming-x-12-gb-grafikkort/p-1163156/',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3070-8-gb-ventus-3x-oc-grafikkort/p-1147092/',
+ },
+ {
+ brand: 'msi',
+ model: 'suprim x',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3080-suprim-x-10g-grafikkort/p-1145753/',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 2x oc',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3070-ventus-2x-oc-grafikkort/p-1145752/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-gf-rtx-3090-aorus-xtreme-24-gb-grafikkort/p-1141935/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-gf-rtx-3090-aorus-master-24-gb-grafikkort/p-1141934/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'turbo',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3090-turbo-24-gb-grafikkort/p-1141933/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'vision oc',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3090-vision-oc-24-gb-grafikkort/p-1141932/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-rtx-3090-aorus-xtreme-wf-24-gb-grafikkort/p-1141931/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme waterforce wb',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-aorus-geforce-rtx-3090-xtreme-waterforce-wb-24-gb-grafikkort/p-1141930/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-gf-rtx-3080-aorus-xtreme-10-gb-grafikkort/p-1141929/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3080-eagle-10-gb-grafikkort/p-1141928/',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: '3060ti',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-dual-rtx-3060-ti-mini-8-gb-grafikkort/p-1141086/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '3060ti',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3060-ti-grafikkort/p-1132912/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: '3060ti',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3060-ti-oc-edition-grafikkort/p-1132909/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '3070',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3070-8-gb-grafikkort/p-1130029/',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 revel',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/pny-geforce-rtx-3090-24-gb-xlr8-gaming-revel-epic-x-rgb-triple-fan-edition-grafikkort/p-1128967/',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 uprising',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/pny-geforce-rtx-3090-24-gb-xlr8-gaming-uprising-epic-x-rgb-triple-fan-edition-grafikkort/p-1128966/',
+ },
+ {
+ brand: 'pny',
+ model: 'xlr8 revel',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/pny-geforce-rtx-3080-10-gb-xlr8-gaming-revel-epic-x-rgb-triple-fan-edition-grafikkort/p-1128965/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'vision oc',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3080-vision-oc-10-gb-grafikkort/p-1121308/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-aorus-geforce-rtx-3080-master-10-gb-grafikkort/p-1121307/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus master',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-aorus-geforce-rtx-3090-master-24-gb-grafikkort/p-1121304/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus xtreme',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-aorus-geforce-rtx-3090-xtreme-24-gb-grafikkort/p-1121303/',
+ },
+ {
+ brand: 'msi',
+ model: 'ventus 3x oc',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3090-24-gb-ventus-3x-oc-grafikkort/p-1118422/',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x trio',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/msi-geforce-rtx-3090-24-gb-gaming-x-trio-grafikkort/p-1118421/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3090-24-gb-gaming-oc-grafikkort/p-1118418/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle oc',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3090-24-gb-eagle-oc-grafikkort/p-1118417/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'gaming oc',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3080-10-gb-gaming-oc-grafikkort/p-1118416/',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle oc',
+ series: '3080',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/gigabyte-geforce-rtx-3080-10-gb-eagle-oc-grafikkort/p-1118415/',
+ },
+ {
+ brand: 'asus',
+ model: 'strix',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-rog-strix-geforce-rtx-3090-24-gb-grafikkort/p-1117754/',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf',
+ series: '3090',
+ url: 'https://www.power.no/data-og-tilbehoer/datakomponenter/grafikkort/asus-tuf-gaming-geforce-rtx-3090-24-gb-grafikkort/p-1115922/',
+ },
],
name: 'power-no',
+ country: 'NO',
};
diff --git a/src/store/model/proshop-de.ts b/src/store/model/proshop-de.ts
index 61ee210ec6..c4c47fbe05 100644
--- a/src/store/model/proshop-de.ts
+++ b/src/store/model/proshop-de.ts
@@ -258,6 +258,132 @@ export const ProshopDE: Store = {
series: '3090',
url: 'https://www.proshop.de/2876881',
},
+ {
+ brand: 'asus',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2931749',
+ },
+ {
+ brand: 'asus',
+ model: 'dual',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2931751',
+ },
+ {
+ brand: 'asus',
+ model: 'tuf oc',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2928902',
+ },
+ {
+ brand: 'asus',
+ model: 'strix oc',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2928906',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2931754',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2929320',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'eagle oc',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2929323',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2929319',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2929317',
+ },
+ {
+ brand: 'msi',
+ model: 'mech 2x oc',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2929318',
+ },
+ {
+ brand: 'msi',
+ model: 'gaming x',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2929316',
+ },
+ {
+ brand: 'powercolor',
+ model: 'amd reference',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2931748',
+ },
+ {
+ brand: 'powercolor',
+ model: 'fighter',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2930939',
+ },
+ {
+ brand: 'powercolor',
+ model: 'hellhound',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2930940',
+ },
+ {
+ brand: 'powercolor',
+ model: 'red devil',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2930941',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2935127',
+ },
+ {
+ brand: 'sapphire',
+ model: 'pulse',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2987327',
+ },
+ {
+ brand: 'sapphire',
+ model: 'nitro+',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2935128',
+ },
+ {
+ brand: 'xfx',
+ model: 'merc',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2934180',
+ },
+ {
+ brand: 'xfx',
+ model: 'qick ultra',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2934182',
+ },
+ {
+ brand: 'xfx',
+ model: 'qick',
+ series: 'rx6700xt',
+ url: 'https://www.proshop.de/2954595',
+ },
{
brand: 'amd',
model: '5600x',
@@ -284,4 +410,5 @@ export const ProshopDE: Store = {
},
],
name: 'proshop-de',
+ country: 'DE',
};
diff --git a/src/store/model/proshop-dk.ts b/src/store/model/proshop-dk.ts
index 204bec44d2..e95bf1f76d 100644
--- a/src/store/model/proshop-dk.ts
+++ b/src/store/model/proshop-dk.ts
@@ -626,4 +626,5 @@ export const ProshopDK: Store = {
},
],
name: 'proshop-dk',
+ country: 'DK',
};
diff --git a/src/store/model/proshop-no.ts b/src/store/model/proshop-no.ts
index 124a4b8d89..ea66f95277 100644
--- a/src/store/model/proshop-no.ts
+++ b/src/store/model/proshop-no.ts
@@ -706,4 +706,5 @@ export const ProshopNO: Store = {
},
],
name: 'proshop-no',
+ country: 'NO',
};
diff --git a/src/store/model/rosman-melb.ts b/src/store/model/rosman-melb.ts
index 47ff5c7827..0a38c173c5 100644
--- a/src/store/model/rosman-melb.ts
+++ b/src/store/model/rosman-melb.ts
@@ -112,4 +112,5 @@ export const RosmanMelb: Store = {
},
],
name: 'rosman-melb',
+ country: 'AU',
};
diff --git a/src/store/model/rosman.ts b/src/store/model/rosman.ts
index 7e3b4410e2..d4763d8f21 100644
--- a/src/store/model/rosman.ts
+++ b/src/store/model/rosman.ts
@@ -112,4 +112,5 @@ export const Rosman: Store = {
},
],
name: 'rosman',
+ country: 'AU',
};
diff --git a/src/store/model/saturn.ts b/src/store/model/saturn.ts
index 186d425ce4..a0f3bd3e7f 100644
--- a/src/store/model/saturn.ts
+++ b/src/store/model/saturn.ts
@@ -33,6 +33,10 @@ export const Saturn: Store = {
container: '#root',
text: ['Dieser Artikel ist bald wieder für Sie verfügbar'],
},
+ {
+ container: '#root',
+ text: ['Dieser Artikel ist bald wieder verfügbar'],
+ },
],
},
links: [
@@ -204,6 +208,36 @@ export const Saturn: Store = {
series: '3090',
url: 'https://www.saturn.de/de/product/-2683226.html',
},
+ {
+ brand: 'asrock',
+ model: 'phantom gaming oc',
+ series: 'rx6700xt',
+ url: 'https://www.saturn.de/de/product/-85340951.html',
+ },
+ {
+ brand: 'gigabyte',
+ model: 'aorus elite',
+ series: 'rx6700xt',
+ url: 'https://www.saturn.de/de/product/-2728671.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/-2661938.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstation%C2%AE5-hd-kamera-2715822.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-ps5-assassins-creed-valhalla-2715828.html',
+ },
{
brand: 'sony',
model: 'ps5 console',
@@ -220,13 +254,79 @@ export const Saturn: Store = {
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
- url: 'https://www.saturn.de/de/product/_sony-ps5-assassins-creed-valhalla-2715828.html',
+ url: 'https://www.saturn.de/de/product/_sony-ps5-ghost-of-tsushima-directors-cut-2757003.html',
},
{
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
- url: 'https://www.saturn.de/de/product/-2661938.html',
+ url: 'https://www.saturn.de/de/product/_sony-ps5-ratchet-clank-rift-apart-2741441.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-deathloop-death-stranding-dc-nur-online-2768018.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-death-stranding-directors-cut-nur-online-2765122.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-ghost-of-tsushima-death-stranding-dc-nur-online-2768019.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-2762011.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstation%C2%AE5-2661938.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstation%C2%AE5-dualsense%E2%84%A2-2752998.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-ps5-ghost-of-tsushima-directors-cut-2757003.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-ps5-ratchet-clank-rift-apart-2741441.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-deathloop-death-stranding-dc-nur-online-2768018.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-death-stranding-directors-cut-nur-online-2765122.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 console',
+ series: 'sonyps5c',
+ url: 'https://www.saturn.de/de/product/_sony-playstationr5-ghost-of-tsushima-death-stranding-dc-nur-online-2768019.html',
},
{
brand: 'sony',
@@ -234,6 +334,18 @@ export const Saturn: Store = {
series: 'sonyps5de',
url: 'https://www.saturn.de/de/product/-2661939.html',
},
+ {
+ brand: 'sony',
+ model: 'ps5 digital',
+ series: 'sonyps5de',
+ url: 'https://www.saturn.de/de/product/_sony-playstation%C2%AE5-digital-edition-2661939.html',
+ },
+ {
+ brand: 'sony',
+ model: 'ps5 digital',
+ series: 'sonyps5de',
+ url: 'https://www.saturn.de/de/product/_sony-playstation%C2%AE5-digital-edition-medienfernbedienung-2722423.html',
+ },
{
brand: 'microsoft',
model: 'xbox series x',
@@ -248,4 +360,5 @@ export const Saturn: Store = {
},
],
name: 'saturn',
+ country: 'DE',
};
diff --git a/src/store/model/saveonit.ts b/src/store/model/saveonit.ts
index ee6bbcd2e7..50272f150b 100644
--- a/src/store/model/saveonit.ts
+++ b/src/store/model/saveonit.ts
@@ -164,4 +164,5 @@ export const SaveOnIt: Store = {
},
],
name: 'saveonit',
+ country: 'AU',
};
diff --git a/src/store/model/scan.ts b/src/store/model/scan.ts
index 9d8e0f5ee4..008a656079 100644
--- a/src/store/model/scan.ts
+++ b/src/store/model/scan.ts
@@ -114,5 +114,6 @@ export const Scan: Store = {
],
},
name: 'scan',
+ country: 'UK',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/scorptec.ts b/src/store/model/scorptec.ts
index 7a4ab9964b..9fd630875b 100644
--- a/src/store/model/scorptec.ts
+++ b/src/store/model/scorptec.ts
@@ -172,4 +172,5 @@ export const Scorptec: Store = {
},
],
name: 'scorptec',
+ country: 'AU',
};
diff --git a/src/store/model/shopto.ts b/src/store/model/shopto.ts
index a762bd335a..fce0349793 100644
--- a/src/store/model/shopto.ts
+++ b/src/store/model/shopto.ts
@@ -29,4 +29,5 @@ export const ShopTo: Store = {
},
],
name: 'shopto',
+ country: 'UK',
};
diff --git a/src/store/model/siabyte.ts b/src/store/model/siabyte.ts
index f931f7e6e6..5fc3ad09e3 100644
--- a/src/store/model/siabyte.ts
+++ b/src/store/model/siabyte.ts
@@ -335,4 +335,5 @@ export const Siabyte: Store = {
},
],
name: 'siabyte',
+ country: 'ES',
};
diff --git a/src/store/model/smythstoys-ie.ts b/src/store/model/smythstoys-ie.ts
index 8b938d2696..988b39aaf4 100644
--- a/src/store/model/smythstoys-ie.ts
+++ b/src/store/model/smythstoys-ie.ts
@@ -32,5 +32,6 @@ export const SmythsToysIE: Store = {
},
],
name: 'smythstoys-ie',
+ country: 'IE',
waitUntil: 'domcontentloaded',
};
diff --git a/src/store/model/smythstoys.ts b/src/store/model/smythstoys.ts
index fc033e238a..e0d46ecd56 100644
--- a/src/store/model/smythstoys.ts
+++ b/src/store/model/smythstoys.ts
@@ -37,4 +37,5 @@ export const SmythsToys: Store = {
},
],
name: 'smythstoys',
+ country: 'UK',
};
diff --git a/src/store/model/spielegrotte.ts b/src/store/model/spielegrotte.ts
index 26f95cffcf..c4178223b2 100644
--- a/src/store/model/spielegrotte.ts
+++ b/src/store/model/spielegrotte.ts
@@ -42,4 +42,5 @@ export const Spielegrotte: Store = {
},
],
name: 'spielegrotte',
+ country: 'DE',
};
diff --git a/src/store/model/store.ts b/src/store/model/store.ts
index b58efe656c..49dcaa60bc 100644
--- a/src/store/model/store.ts
+++ b/src/store/model/store.ts
@@ -16,6 +16,7 @@ export type Brand =
| 'amd'
| 'asrock'
| 'asus'
+ | 'ax'
| 'colorful'
| 'corsair'
| 'evga'
@@ -23,22 +24,27 @@ export type Brand =
| 'galax'
| 'gigabyte'
| 'inno3d'
+ | 'intel'
| 'kfa2'
| 'leadtek'
+ | 'lianli'
| 'microsoft'
| 'msi'
| 'nvidia'
| 'palit'
| 'pny'
+ | 'powercolor'
| 'sapphire'
| 'sony'
+ | 'sparkle'
+ | 'ubiquiti'
| 'xfx'
- | 'powercolor'
| 'zotac';
export type Series =
| 'test:series'
| 'captcha-deterrent'
+ | '3050'
| '3060'
| '3060ti'
| '3070'
@@ -46,20 +52,45 @@ export type Series =
| '3080'
| '3080ti'
| '3090'
+ | '4060'
+ | '4070'
+ | '4070super'
+ | '4070ti'
+ | '4080-16g'
+ | '4090'
+ | '5070'
+ | '5070ti'
+ | '5080'
+ | '5090'
+ | 'a3-matx'
+ | 'arc'
| 'darkhero'
- | 'rx6800'
+ | 'g4-doorbell-pro'
| 'rx6700xt'
+ | 'rx6800'
| 'rx6800xt'
| 'rx6900xt'
| 'ryzen5600'
| 'ryzen5800'
| 'ryzen5900'
| 'ryzen5950'
+ | 'ryzen7800x3d'
+ | 'ryzen7950x'
+ | 'ryzen9600x'
+ | 'ryzen9700x'
+ | 'ryzen9800x3d'
+ | 'ryzen9900x'
+ | 'ryzen9950x'
+ | 'sf'
| 'sonyps5c'
| 'sonyps5de'
- | 'sf'
- | 'xboxsx'
- | 'xboxss';
+ | 'udm-pro'
+ | 'udm-us'
+ | 'udr-us'
+ | 'unvr-pro'
+ | 'unvr'
+ | 'xboxss'
+ | 'xboxsx';
export type Model =
| 'test:model'
@@ -68,122 +99,185 @@ export type Model =
| '5800x'
| '5900x'
| '5950x'
- | '600 platinum'
| '600 gold'
+ | '600 platinum'
| '750 platinum'
+ | '7800x3d'
+ | '7950x'
+ | '9600x'
+ | '9700x'
+ | '9800x3d'
+ | '9900x'
+ | '9950x'
+ | 'a3 matx wd'
+ | 'aero oc'
+ | 'aero oc sff'
| 'amd reference'
+ | 'amp airo'
+ | 'amp extreme airo'
| 'amp extreme holo'
+ | 'amp extreme infinity'
| 'amp holo'
| 'amp white'
+ | 'aorus box'
+ | 'aorus x wb'
| 'aorus elite'
| 'aorus master'
+ | 'master ice'
+ | 'aorus master 24g'
| 'aorus master type-c'
- | 'aorus xtreme'
- | 'aorus xtreme waterforce'
+ | 'aorus master'
+ | 'aorus w'
+ | 'aorus x wb'
+ | 'aorus xtreme waterforce 24g'
| 'aorus xtreme waterforce wb'
+ | 'aorus xtreme waterforce'
+ | 'aorus xtreme'
| 'aorus'
- | 'aorus box'
- | 'articstorm'
+ | 'astral oc'
+ | 'astral'
+ | 'b580'
| 'battle-ax'
- | 'challenger'
+ | 'challenger oc'
+ | 'challenger pro oc'
| 'challenger pro'
+ | 'challenger'
| 'crosshair viii'
+ | 'dream machine pro'
+ | 'dream machine'
+ | 'dream router'
| 'dual fan'
+ | 'dual mini oc'
+ | 'dual mini'
| 'dual oc'
| 'dual'
- | 'dual mini'
- | 'dual mini oc'
| 'eagle oc'
| 'eagle'
| 'ekwb'
+ | 'epic x oc'
| 'epic x'
- | 'ex'
| 'ex gamer'
| 'ex oc'
+ | 'ex'
+ | 'expert'
+ | 'fighter'
| 'founders edition'
- | 'ftw3'
| 'ftw3 black'
- | 'ftw3 ultra'
| 'ftw3 ultra hybrid'
| 'ftw3 ultra hydro copper'
- | 'gamerock'
+ | 'ftw3 ultra'
+ | 'ftw3'
+ | 'g4 doorbell pro'
| 'gamerock oc'
- | 'gaming oc'
- | 'gaming oc waterforce wb'
+ | 'gamerock'
| 'gaming oc pro'
+ | 'gaming oc waterforce wb'
+ | 'gaming oc'
| 'gaming pro oc'
| 'gaming pro'
+ | 'gaming trio oc white'
+ | 'gaming trio oc'
| 'gaming trio'
- | 'gaming z trio'
+ | 'gaming verto epic-x'
+ | 'gaming x slim'
| 'gaming x trio'
| 'gaming x'
| 'gaming x3'
| 'gaming z trio'
- | 'ghost'
- | 'ghost oc'
| 'gaming'
- | 'hof'
- | 'hof limited edition'
- | 'hof premium'
+ | 'ghost oc'
+ | 'ghost'
+ | 'hellhound white'
+ | 'hellhound'
| 'hurricane'
+ | 'ice dragon super'
+ | 'ichill frostbite'
| 'ichill x2'
- | 'ichill x3'
| 'ichill x3 red'
+ | 'ichill x3'
| 'ichill x4'
- | 'ichill frostbite'
- | 'igame advanced'
| 'igame advanced oc'
+ | 'igame advanced'
| 'igame ultra oc'
| 'igame vulcan oc'
+ | 'inspire 3x'
+ | 'inspire 3x oc'
| 'jetstream'
| 'jetstream oc'
+ | 'jetstream'
| 'kngpn hybrid'
| 'ko oc'
| 'ko'
+ | 'lp oc'
| 'master'
- | 'merc'
+ | 'mech 2x oc'
+ | 'mech 2x'
| 'merc core'
| 'merc ultra'
- | 'nitro+'
- | 'nitro+ se'
- | 'nitro+ oc'
- | 'nitro+ oc se'
+ | 'merc'
+ | 'network video recorder pro'
+ | 'network video recorder'
| 'nitro oc se'
| 'nitro oc'
+ | 'nitro+ oc se'
+ | 'nitro+ oc'
+ | 'nitro+ se'
+ | 'nitro+'
| 'oc'
- | 'pegasus'
| 'pegasus oc'
- | 'phantom'
+ | 'pegasus'
+ | 'phantom gaming oc'
| 'phantom gaming'
| 'phantom gs'
+ | 'phantom'
+ | 'phoenix 8G (LHR)'
| 'phoenix gs oc'
| 'phoenix gs'
| 'phoenix'
+ | 'prime oc'
+ | 'prime'
| 'ps5 console'
| 'ps5 digital'
- | 'pulse'
| 'pulse oc'
+ | 'pulse'
+ | 'qick ultra'
+ | 'qick'
| 'red devil'
| 'red dragon'
| 'sg oc'
| 'sg'
+ | 'shadow 3x'
+ | 'shadow 3x oc'
+ | 'solid'
+ | 'solid oc'
| 'single fan'
+ | 'solid oc'
+ | 'solid'
| 'stormx oc'
| 'strix lc'
| 'strix oc lc'
- | 'strix oc'
- | 'strix'
| 'strix oc white'
+ | 'strix oc'
| 'strix white'
- | 'suprim'
+ | 'strix'
+ | 'suprim liquid soc'
+ | 'suprim liquid x'
+ | 'suprim oc'
+ | 'suprim soc'
| 'suprim x'
- | 'taichi'
+ | 'suprim'
+ | 'swft'
| 'taichi x oc'
- | 'trinity oc'
+ | 'taichi'
| 'trinity oc lhr'
+ | 'trinity oc'
| 'trinity'
+ | 'triple fan oc'
+ | 'triple fan'
| 'tuf oc'
| 'tuf'
+ | 'tuf gaming'
+ | 'tuf gaming oc'
| 'turbo'
| 'twin edge oc white'
| 'twin edge oc'
@@ -191,32 +285,48 @@ export type Model =
| 'twin x2 oc'
| 'twin x2'
| 'uprising'
+ | 'vanguard soc launch edition'
+ | 'vanguard soc'
+ | 'vanguard'
+ | 'ventus 2X (LHR)'
| 'ventus 2x oc'
+ | 'ventus 2x white oc'
| 'ventus 2x'
+ | 'ventus 3x e1 oc'
+ | 'ventus 3x oc plus'
+ | 'ventus 3x oc white'
| 'ventus 3x oc'
| 'ventus 3x'
+ | 'vetro'
| 'vision oc'
| 'vision'
- | 'x3'
- | 'x3 oc'
+ | 'windforce oc'
+ | 'windforce oc sff'
+ | 'windforce v2'
+ | 'windforce'
| 'x trio'
| 'x3 oc'
+ | 'x3w'
| 'xbox series s'
| 'xbox series x'
| 'xc black'
| 'xc gaming'
| 'xc3 black'
- | 'xc3 ultra'
| 'xc3 ultra hybrid'
+ | 'xc3 ultra'
| 'xc3'
| 'xlr8 epic x'
- | 'xlr8 gaming'
| 'xlr8 gaming uprising epic x'
- | 'xlr8 revel'
+ | 'xlr8 gaming'
| 'xlr8 revel epic x'
+ | 'xlr8 revel'
| 'xlr8 uprising'
- | 'xtreme'
- | 'qick';
+ | 'xlr8 verto epic x oc'
+ | 'xlr8 verto epic x'
+ | 'xlr8 verto oc'
+ | 'xlr8 verto'
+ | 'xlr8'
+ | 'xtreme';
export type Link = {
brand: Brand;
@@ -277,6 +387,7 @@ export type Store = {
};
labels: Labels;
name: string;
+ country: string;
currency: '£' | '$' | '€' | 'R$' | 'kr.' | '';
setupAction?: (browser: Browser) => void;
/**
diff --git a/src/store/model/storm.ts b/src/store/model/storm.ts
index c70dc2e137..24ccf26a8e 100644
--- a/src/store/model/storm.ts
+++ b/src/store/model/storm.ts
@@ -74,4 +74,5 @@ export const StormComputers: Store = {
},
],
name: 'storm-computer',
+ country: 'AU',
};
diff --git a/src/store/model/target.ts b/src/store/model/target.ts
index 8d636ea8b5..b5ce001627 100644
--- a/src/store/model/target.ts
+++ b/src/store/model/target.ts
@@ -22,7 +22,7 @@ export const Target: Store = {
brand: 'sony',
model: 'ps5 console',
series: 'sonyps5c',
- url: 'https://www.target.com/p/playstation-5-console/-/A-81114595',
+ url: 'https://www.target.com/p/playstation-5-console/-/A-87716467',
},
{
brand: 'sony',
@@ -44,4 +44,5 @@ export const Target: Store = {
},
],
name: 'target',
+ country: 'US',
};
diff --git a/src/store/model/tesco-ie.ts b/src/store/model/tesco-ie.ts
index 35ec9937e0..7d834a6729 100644
--- a/src/store/model/tesco-ie.ts
+++ b/src/store/model/tesco-ie.ts
@@ -30,4 +30,5 @@ export const TescoIE: Store = {
},
],
name: 'tesco-ie',
+ country: 'IE',
};
diff --git a/src/store/model/thewarehouse.ts b/src/store/model/thewarehouse.ts
index ccad3eeaa6..7ea446cf0a 100644
--- a/src/store/model/thewarehouse.ts
+++ b/src/store/model/thewarehouse.ts
@@ -36,4 +36,5 @@ export const TheWarehouse: Store = {
},
],
name: 'thewarehouse',
+ country: 'NZ',
};
diff --git a/src/store/model/topachat.ts b/src/store/model/topachat.ts
index 38556f920d..d82949e6cc 100644
--- a/src/store/model/topachat.ts
+++ b/src/store/model/topachat.ts
@@ -72,6 +72,12 @@ export const TopAchat: Store = {
series: '3090',
url: 'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005199.html',
},
+ {
+ brand: 'asus',
+ model: 'phoenix 8G (LHR)',
+ series: '3050',
+ url: 'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20012486.html',
+ },
{
brand: 'gigabyte',
model: 'gaming oc',
@@ -216,6 +222,12 @@ export const TopAchat: Store = {
series: '3090',
url: 'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20005229.html',
},
+ {
+ brand: 'msi',
+ model: 'ventus 2X (LHR)',
+ series: '3050',
+ url: 'https://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_wgfx_pcie_puis_ref_est_in20012331.html',
+ },
{
brand: 'palit',
model: 'gaming pro',
@@ -254,4 +266,5 @@ export const TopAchat: Store = {
},
],
name: 'topachat',
+ country: 'GR',
};
diff --git a/src/store/model/toysrus.ts b/src/store/model/toysrus.ts
index 45a517207b..ad891953f8 100644
--- a/src/store/model/toysrus.ts
+++ b/src/store/model/toysrus.ts
@@ -44,4 +44,5 @@ export const ToysRUs: Store = {
},
],
name: 'toysrus',
+ country: 'US',
};
diff --git a/src/store/model/ubiquiti.ts b/src/store/model/ubiquiti.ts
new file mode 100644
index 0000000000..b910145fc1
--- /dev/null
+++ b/src/store/model/ubiquiti.ts
@@ -0,0 +1,63 @@
+import {Store} from './store';
+
+export const Ubiquiti: Store = {
+ currency: '$',
+ labels: {
+ inStock: [
+ {
+ container: '#titleInStockBadge',
+ text: ['In Stock'],
+ },
+ ],
+ outOfStock: [
+ {
+ container: '.titleSoldOutBadge',
+ text: ['Sold Out'],
+ },
+ {
+ container: '#titleSoldOutBadge',
+ text: ['Sold Out'],
+ },
+ ],
+ },
+ links: [
+ {
+ brand: 'ubiquiti',
+ model: 'dream machine',
+ series: 'udm-us',
+ url: 'https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/udm-us',
+ },
+ {
+ brand: 'ubiquiti',
+ model: 'dream machine pro',
+ series: 'udm-pro',
+ url: 'https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/udm-pro',
+ },
+ {
+ brand: 'ubiquiti',
+ model: 'dream router',
+ series: 'udr-us',
+ url: 'https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-router',
+ },
+ {
+ brand: 'ubiquiti',
+ model: 'g4 doorbell pro',
+ series: 'g4-doorbell-pro',
+ url: 'https://store.ui.com/collections/unifi-protect/products/g4-doorbell-pro',
+ },
+ {
+ brand: 'ubiquiti',
+ model: 'network video recorder',
+ series: 'unvr',
+ url: 'https://store.ui.com/collections/unifi-protect/products/unvr',
+ },
+ {
+ brand: 'ubiquiti',
+ model: 'network video recorder pro',
+ series: 'unvr-pro',
+ url: 'https://store.ui.com/collections/unifi-protect/products/unvr-pro',
+ },
+ ],
+ name: 'ubiquiti',
+ country: 'US',
+};
diff --git a/src/store/model/umart.ts b/src/store/model/umart.ts
index c01ad65fa9..3aab73678f 100644
--- a/src/store/model/umart.ts
+++ b/src/store/model/umart.ts
@@ -134,4 +134,5 @@ export const Umart: Store = {
},
],
name: 'umart',
+ country: 'AU',
};
diff --git a/src/store/model/unieuro.ts b/src/store/model/unieuro.ts
index f6de044a70..07b7ab33b1 100644
--- a/src/store/model/unieuro.ts
+++ b/src/store/model/unieuro.ts
@@ -39,4 +39,5 @@ export const Unieuro: Store = {
},
],
name: 'unieuro',
+ country: 'IT',
};
diff --git a/src/store/model/utlimainformatica.ts b/src/store/model/utlimainformatica.ts
index 9ba078a4a1..f6b0cd3b46 100644
--- a/src/store/model/utlimainformatica.ts
+++ b/src/store/model/utlimainformatica.ts
@@ -747,4 +747,5 @@ export const UltimaInformatica: Store = {
},
],
name: 'ultimainformatica',
+ country: 'ES',
};
diff --git a/src/store/model/very.ts b/src/store/model/very.ts
index 1bfda1a463..907a2638e4 100644
--- a/src/store/model/very.ts
+++ b/src/store/model/very.ts
@@ -87,4 +87,5 @@ export const Very: Store = {
],
},
name: 'very',
+ country: 'UK',
};
diff --git a/src/store/model/vsgamers.ts b/src/store/model/vsgamers.ts
index 03464c9b56..30f3da7fd9 100644
--- a/src/store/model/vsgamers.ts
+++ b/src/store/model/vsgamers.ts
@@ -345,4 +345,5 @@ export const VsGamers: Store = {
},
],
name: 'vsgamers',
+ country: 'ES',
};
diff --git a/src/store/model/vuugo.ts b/src/store/model/vuugo.ts
index 483f9fe4ae..0b1b054172 100644
--- a/src/store/model/vuugo.ts
+++ b/src/store/model/vuugo.ts
@@ -624,4 +624,5 @@ export const Vuugo: Store = {
},
],
name: 'vuugo',
+ country: 'CA',
};
diff --git a/src/store/model/walmart-ca.ts b/src/store/model/walmart-ca.ts
index f1e077e898..3d81777310 100644
--- a/src/store/model/walmart-ca.ts
+++ b/src/store/model/walmart-ca.ts
@@ -50,4 +50,5 @@ export const WalmartCa: Store = {
},
],
name: 'walmart-ca',
+ country: 'CA',
};
diff --git a/src/store/model/walmart.ts b/src/store/model/walmart.ts
index aa37783551..baf986c82f 100644
--- a/src/store/model/walmart.ts
+++ b/src/store/model/walmart.ts
@@ -74,4 +74,5 @@ export const Walmart: Store = {
},
],
name: 'walmart',
+ country: 'US',
};
diff --git a/src/store/model/wellstechnology.ts b/src/store/model/wellstechnology.ts
index de82ffa0a5..da0713116f 100644
--- a/src/store/model/wellstechnology.ts
+++ b/src/store/model/wellstechnology.ts
@@ -69,4 +69,5 @@ export const WellsTechnology: Store = {
},
],
name: 'wellstechnology',
+ country: 'AU',
};
diff --git a/src/store/model/wipoid.ts b/src/store/model/wipoid.ts
index e6505fa081..076f07dd92 100644
--- a/src/store/model/wipoid.ts
+++ b/src/store/model/wipoid.ts
@@ -457,4 +457,5 @@ export const Wipoid: Store = {
},
],
name: 'wipoid',
+ country: 'ES',
};
diff --git a/src/store/model/xbox.ts b/src/store/model/xbox.ts
index 770927a1a2..87558d1492 100644
--- a/src/store/model/xbox.ts
+++ b/src/store/model/xbox.ts
@@ -5,8 +5,8 @@ export const Xbox: Store = {
labels: {
outOfStock: {
container:
- '._-_-node_modules--xbox-web-partner-core-build-pages-BundleBuilder-Components-BundleBuilderHeader-__BundleBuilderHeader-module___checkoutButton',
- text: ['out of stock'],
+ '[class="BundleBuilderHeader-module__checkoutButton___3UyEq w-100 bg-light-green btn btn-primary"]',
+ text: ['Out of stock'],
},
},
links: [
@@ -18,4 +18,5 @@ export const Xbox: Store = {
},
],
name: 'xbox',
+ country: 'US',
};
diff --git a/src/store/model/xtremmedia.ts b/src/store/model/xtremmedia.ts
index 91b23897f8..32190c502f 100644
--- a/src/store/model/xtremmedia.ts
+++ b/src/store/model/xtremmedia.ts
@@ -461,4 +461,5 @@ export const XtremMedia: Store = {
},
],
name: 'xtremmedia',
+ country: 'ES',
};
diff --git a/src/store/model/zotac.ts b/src/store/model/zotac.ts
index 76e3c29d66..391056bc84 100644
--- a/src/store/model/zotac.ts
+++ b/src/store/model/zotac.ts
@@ -84,6 +84,82 @@ export const Zotac: Store = {
series: '3090',
url: 'https://store.zotac.com/zotac-gaming-geforce-rtx-3090-trinity-zt-a30900d-10p',
},
+ {
+ brand: 'zotac',
+ model: 'trinity',
+ series: '4090',
+ url: 'https://www.zotac.com/product/graphics_card/zotac-gaming-geforce-rtx-4090-trinity',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp extreme airo',
+ series: '4090',
+ url: 'https://www.zotac.com/product/graphics_card/zotac-gaming-geforce-rtx-4090-amp-extreme-airo',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity oc',
+ series: '4090',
+ url: 'https://www.zotac.com/product/graphics_card/zotac-gaming-geforce-rtx-4090-trinity-oc',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp extreme airo',
+ series: '4080-16g',
+ url: 'https://www.zotacstore.com/us/zotac-gaming-geforce-rtx-4080-16gb-amp-extreme-airo',
+ },
+ {
+ brand: 'zotac',
+ model: 'trinity',
+ series: '4080-16g',
+ url: 'https://www.zotacstore.com/us/zotac-gaming-geforce-rtx-4080-16gb-trinity',
+ },
+ {
+ brand: 'zotac',
+ model: 'solid',
+ series: '5090',
+ url: 'https://www.zotac.com/us/product/graphics_card/zotac-gaming-geforce-rtx-5090-solid',
+ },
+ {
+ brand: 'zotac',
+ model: 'solid oc',
+ series: '5090',
+ url: 'https://www.zotac.com/us/product/graphics_card/zotac-gaming-geforce-rtx-5090-solid-oc',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp extreme infinity',
+ series: '5090',
+ url: 'https://www.zotac.com/us/product/graphics_card/zotac-gaming-geforce-rtx-5090-amp-extreme-infinity',
+ },
+ {
+ brand: 'zotac',
+ model: 'solid',
+ series: '5080',
+ url: 'https://www.zotac.com/us/product/graphics_card/zotac-gaming-geforce-rtx-5080-solid',
+ },
+ {
+ brand: 'zotac',
+ model: 'solid oc',
+ series: '5080',
+ url: 'https://www.zotac.com/us/product/graphics_card/zotac-gaming-geforce-rtx-5080-solid-oc',
+ },
+ {
+ brand: 'zotac',
+ model: 'amp extreme infinity',
+ series: '5080',
+ url: 'https://www.zotac.com/us/product/graphics_card/zotac-gaming-geforce-rtx-5080-amp-extreme-infinity',
+ },
],
name: 'zotac',
+ country: 'US',
};
+
+/* Copy Paste Template
+{
+ brand: 'zotac',
+ model: '',
+ series: '',
+ url: '',
+},
+*/
diff --git a/src/web/index.ts b/src/web/index.ts
index af07f91db1..beb1ef7246 100644
--- a/src/web/index.ts
+++ b/src/web/index.ts
@@ -1,18 +1,20 @@
+import {createReadStream, readdir} from 'fs';
import {IncomingMessage, Server, ServerResponse, createServer} from 'http';
+import {isAbsolute, join, normalize, relative} from 'path';
import {config, setConfig} from '../config';
-import {createReadStream, readdir} from 'fs';
+import {logger} from '../logger';
import {
getAllBrands,
+ getAllCountries,
getAllModels,
getAllSeries,
storeList,
updateStores,
} from '../store/model';
-import {isAbsolute, join, normalize, relative} from 'path';
-import {logger} from '../logger';
const approot = join(__dirname, '../../../');
const webroot = join(approot, './web');
+const screenshotDir = join(approot, config.page.screenshotDir);
const contentTypeMap: Record = {
css: 'text/css',
@@ -124,6 +126,9 @@ function handleAPI(
case 'stores':
sendJSON(response, [...storeList.keys()]);
return;
+ case 'countries':
+ sendJSON(response, getAllCountries());
+ return;
case 'brands':
sendJSON(response, getAllBrands());
return;
@@ -141,11 +146,11 @@ function handleAPI(
return;
}
- sendFile(response, `../success-${timeStamp}.png`);
+ sendFile(response, `success-${timeStamp}.png`, screenshotDir);
return;
}
- readdir(approot, (error, files) => {
+ readdir(screenshotDir, (error, files) => {
if (error) {
sendError(response, error.message);
return;
diff --git a/terraform/README.md b/terraform/README.md
index 515a73deba..cb26a276f0 100644
--- a/terraform/README.md
+++ b/terraform/README.md
@@ -16,7 +16,7 @@ There's an example tfvars file to start you off; rename this with your own prefe
Authenticate yourself with your own AWS account as with any aws commandline tool.
-If you wish, add a specific section to your aws credentials file and set that profile name in `terraform.tfvars`.
+If you wish, add a specific section to your aws credentials file and set that profile name in `terraform.tfvars`. More information on how to configure the AWS credentials file can be found in here.
Then you can:
diff --git a/terraform/resource-ecs.tf b/terraform/resource-ecs.tf
index e484cfa9ba..739506e4f3 100644
--- a/terraform/resource-ecs.tf
+++ b/terraform/resource-ecs.tf
@@ -16,8 +16,28 @@ resource "aws_ecs_service" "main" {
launch_type = "FARGATE"
}
-data "aws_iam_role" "ecs_task_execution_role" {
- name = "ecsTaskExecutionRole"
+data "aws_iam_policy_document" "ecs_task_execution_role" {
+ version = "2012-10-17"
+ statement {
+ sid = ""
+ effect = "Allow"
+ actions = ["sts:AssumeRole"]
+
+ principals {
+ type = "Service"
+ identifiers = ["ecs-tasks.amazonaws.com"]
+ }
+ }
+}
+
+resource "aws_iam_role" "ecs_task_execution_role" {
+ name = var.ecs_task_execution_role_name
+ assume_role_policy = data.aws_iam_policy_document.ecs_task_execution_role.json
+}
+
+resource "aws_iam_role_policy_attachment" "ecs_task_execution_role" {
+ role = aws_iam_role.ecs_task_execution_role.name
+ policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
}
locals {
@@ -38,5 +58,5 @@ resource "aws_ecs_task_definition" "main" {
network_mode = "awsvpc"
cpu = var.cpu
memory = var.memory
- execution_role_arn = data.aws_iam_role.ecs_task_execution_role.arn
+ execution_role_arn = aws_iam_role.ecs_task_execution_role.arn
}
diff --git a/terraform/variables.tf b/terraform/variables.tf
index 0da31aa452..315e4a603d 100644
--- a/terraform/variables.tf
+++ b/terraform/variables.tf
@@ -38,3 +38,8 @@ variable "streetmerchant_env" {
description = "name/value pairs for .env values"
default = {}
}
+
+variable "ecs_task_execution_role_name" {
+ description = "ECS task execution role name"
+ default = "myEcsTaskExecutionRole"
+}
diff --git a/test/util.ts b/test/util.ts
index 5a02c074a3..44d16ac667 100644
--- a/test/util.ts
+++ b/test/util.ts
@@ -51,6 +51,7 @@ export function getTestStore(): Store {
},
links: storeLinks,
name: 'test:name',
+ country: 'TEST',
};
return store;
diff --git a/tsconfig.json b/tsconfig.json
index ffa97c431c..f902cbc87c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,10 +6,8 @@
"resolveJsonModule": true,
"rootDir": ".",
// todo: remove
- "skipLibCheck": true
+ "skipLibCheck": true,
+ "lib": ["DOM", "ES2021"]
},
- "include": [
- "src/**/*.ts",
- "test/**/*.ts"
- ]
+ "include": ["src/**/*.ts", "test/**/*.ts"]
}
diff --git a/web/index.html b/web/index.html
index c12896f960..6c7876f179 100644
--- a/web/index.html
+++ b/web/index.html
@@ -2,6 +2,21 @@
streetmerchant control
+
- Stores |
- Brands |
- Series |
- Models |
+ Stores |
+ Brands |
+ Series |
+ Models |
|