mirror of
https://github.com/vercel/commerce.git
synced 2025-06-29 09:51:22 +00:00
Merge branch 'github-actions-cypress-tests' into main
merging completed work into main branch
This commit is contained in:
commit
2befcb55cb
31
.github/ISSUE_TEMPLATE/workflows/main.yml
vendored
Normal file
31
.github/ISSUE_TEMPLATE/workflows/main.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
name: E2E on Firefox
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
install:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
containers: [1, 2, 3]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Cypress run
|
||||
uses: cypress-io/github-action@v2
|
||||
with:
|
||||
project: ./cypress
|
||||
browser: firefox
|
||||
build: yarn build
|
||||
start: yarn start
|
||||
wait-on: 'http://localhost:3000'
|
||||
record: true
|
||||
parallel: true
|
||||
env:
|
||||
COMMERCE_PROVIDER: ${{ secrets.COMMERCE_PROVIDER }}
|
||||
NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN: ${{ secrets.NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN }}
|
||||
NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN: ${{ secrets.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN }}
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
# pass GitHub token to allow accurately detecting a build vs a re-run build
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
13
cypress.config.ts
Normal file
13
cypress.config.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import { defineConfig } from 'cypress'
|
||||
|
||||
export default defineConfig({
|
||||
projectId: 'mjja77',
|
||||
e2e: {
|
||||
setupNodeEvents(on, config) {
|
||||
// implement node event listeners here
|
||||
},
|
||||
baseUrl: 'http://localhost:3000',
|
||||
viewportHeight: 1000,
|
||||
viewportWidth: 1280,
|
||||
},
|
||||
})
|
25
cypress/e2e/header.cy.ts
Normal file
25
cypress/e2e/header.cy.ts
Normal file
@ -0,0 +1,25 @@
|
||||
describe('Header', () => {
|
||||
beforeEach(() => {
|
||||
cy.visit('/')
|
||||
})
|
||||
|
||||
it('links to the correct pages', () => {
|
||||
cy.getBySel('logo').click()
|
||||
cy.location('pathname').should('eq', '/')
|
||||
|
||||
cy.getBySel('nav-link-search').click()
|
||||
cy.location('pathname').should('eq', '/search')
|
||||
|
||||
cy.getBySel('nav-link-home-page').click()
|
||||
cy.location('pathname').should('eq', '/search/frontpage')
|
||||
})
|
||||
|
||||
it('the search bar returns the correct search results', () => {
|
||||
cy.getBySel('search-input').eq(0).type('poke{enter}')
|
||||
|
||||
cy.get('[data-test="product-tag"]').within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Poke Ball')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$9.99 USD')
|
||||
})
|
||||
})
|
||||
})
|
76
cypress/e2e/home.cy.ts
Normal file
76
cypress/e2e/home.cy.ts
Normal file
@ -0,0 +1,76 @@
|
||||
describe('Home Page', () => {
|
||||
it('displays all 3 products on the home page', () => {
|
||||
cy.visit('http://localhost:3000')
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(0)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Poke Ball')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$9.99 USD')
|
||||
})
|
||||
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(1)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Great Ball')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$99.99 USD')
|
||||
})
|
||||
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(2)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Ultra Ball')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$999.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(3)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Master Ball')
|
||||
cy.get('[data-test="product-price"]').should(
|
||||
'contain',
|
||||
'$999999999.99 USD'
|
||||
)
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(4)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Potion')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$9.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(4)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Super Potion')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$99.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(5)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Hyper Potion')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$999.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(6)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Max Potion')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$9999.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(7)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Fire Stone')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$999.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(8)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Water Stone')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$999.99 USD')
|
||||
})
|
||||
cy.get('[data-test="product-tag"]')
|
||||
.eq(9)
|
||||
.within(() => {
|
||||
cy.get('[data-test="product-name"]').should('contain', 'Thunder Stone')
|
||||
cy.get('[data-test="product-price"]').should('contain', '$999.99 USD')
|
||||
})
|
||||
})
|
||||
})
|
8
cypress/e2e/shopping-cart.cy.ts
Normal file
8
cypress/e2e/shopping-cart.cy.ts
Normal file
@ -0,0 +1,8 @@
|
||||
describe('Shopping Cart', () => {
|
||||
it('users can add products to the cart', () => {
|
||||
cy.visit('/')
|
||||
cy.getBySel('product-tag').eq(0).click()
|
||||
cy.get('[aria-label="Add to Cart"]').click()
|
||||
cy.get('[aria-label="Cart items: 1"]').contains('1')
|
||||
})
|
||||
})
|
5
cypress/fixtures/example.json
Normal file
5
cypress/fixtures/example.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
6
cypress/integration/home.spec.js
Normal file
6
cypress/integration/home.spec.js
Normal file
@ -0,0 +1,6 @@
|
||||
describe('Home Page', () => {
|
||||
it('displays all 3 products on the home page', () => {
|
||||
cy.visit('http://localhost:3001')
|
||||
cy.get('[data-test="product-tag"]')
|
||||
})
|
||||
})
|
Binary file not shown.
After Width: | Height: | Size: 414 KiB |
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
Binary file not shown.
After Width: | Height: | Size: 379 KiB |
Binary file not shown.
After Width: | Height: | Size: 391 KiB |
41
cypress/support/commands.ts
Normal file
41
cypress/support/commands.ts
Normal file
@ -0,0 +1,41 @@
|
||||
/// <reference types="cypress" />
|
||||
// ***********************************************
|
||||
// This example commands.ts shows you how to
|
||||
// create various custom commands and overwrite
|
||||
// existing commands.
|
||||
//
|
||||
// For more comprehensive examples of custom
|
||||
// commands please read more here:
|
||||
// https://on.cypress.io/custom-commands
|
||||
// ***********************************************
|
||||
//
|
||||
//
|
||||
// -- This is a parent command --
|
||||
// Cypress.Commands.add('login', (email, password) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a child command --
|
||||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a dual command --
|
||||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
||||
//
|
||||
// declare global {
|
||||
// namespace Cypress {
|
||||
// interface Chainable {
|
||||
// login(email: string, password: string): Chainable<void>
|
||||
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
||||
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
||||
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
Cypress.Commands.add('getBySel', (selector, ...args) => {
|
||||
return cy.get(`[data-test=${selector}]`, ...args)
|
||||
})
|
20
cypress/support/e2e.ts
Normal file
20
cypress/support/e2e.ts
Normal file
@ -0,0 +1,20 @@
|
||||
// ***********************************************************
|
||||
// This example support/e2e.ts is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
BIN
cypress/videos/header.cy.ts.mp4
Normal file
BIN
cypress/videos/header.cy.ts.mp4
Normal file
Binary file not shown.
BIN
cypress/videos/home.cy.ts.mp4
Normal file
BIN
cypress/videos/home.cy.ts.mp4
Normal file
Binary file not shown.
BIN
cypress/videos/shopping-cart.cy.ts.mp4
Normal file
BIN
cypress/videos/shopping-cart.cy.ts.mp4
Normal file
Binary file not shown.
25722
package-lock.json
generated
Normal file
25722
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
760
package.json
760
package.json
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "commerce",
|
||||
"name": "pokemartcypress",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"workspaces": [
|
||||
@ -7,21 +7,771 @@
|
||||
"packages/*"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "turbo run build --filter=next-commerce...",
|
||||
"build": "turbo run build",
|
||||
"dev": "turbo run dev",
|
||||
"start": "turbo run start",
|
||||
"types": "turbo run types",
|
||||
"prettier-fix": "prettier --write ."
|
||||
"prettier-fix": "prettier --write .",
|
||||
"find:unused": "npx next-unused",
|
||||
"cypress:open": "cypress open",
|
||||
"cypress:run": "cypress run"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cypress": "^10.4.0",
|
||||
"husky": "^7.0.4",
|
||||
"prettier": "^2.5.1",
|
||||
"turbo": "^1.2.16"
|
||||
"turbo": "^1.2.16",
|
||||
"typescript": "^4.7.4"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "turbo run lint"
|
||||
}
|
||||
},
|
||||
"packageManager": "yarn@1.22.17"
|
||||
"packageManager": "yarn@1.22.17",
|
||||
"description": "[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fcommerce&project-name=commerce&repo-name=commerce&demo-title=Next.js%20Commerce&demo-description=An%20all-in-one%20starter%20kit%20for%20high-performance%20e-commerce%20sites.&demo-url=https%3A%2F%2Fdemo.vercel.store&demo-image=https%3A%2F%2Fbigcommerce-demo-asset-ksvtgfvnd.vercel.app%2Fbigcommerce.png&integration-ids=oac_MuWZiE4jtmQ2ejZQaQ7ncuDT,oac_9HSKtXld74NG0srzdxSiBGty&skippable-integrations=1&root-directory=site&build-command=cd%20..%20%26%26%20yarn%20build)",
|
||||
"version": "1.0.0",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"acorn": "^8.7.1",
|
||||
"acorn-jsx": "^5.3.2",
|
||||
"acorn-node": "^1.8.2",
|
||||
"acorn-walk": "^8.2.0",
|
||||
"agentkeepalive": "^4.2.1",
|
||||
"aggregate-error": "^3.1.0",
|
||||
"agent-base": "^6.0.2",
|
||||
"ajv": "^6.12.6",
|
||||
"ansi-colors": "^4.1.3",
|
||||
"ansi-escapes": "^4.3.2",
|
||||
"anymatch": "^3.1.2",
|
||||
"arch": "^2.2.0",
|
||||
"ansi-styles": "^4.3.0",
|
||||
"arg": "^5.0.1",
|
||||
"argparse": "^2.0.1",
|
||||
"aria-hidden": "^1.1.3",
|
||||
"aria-query": "^4.2.2",
|
||||
"arr-union": "^3.1.0",
|
||||
"abort-controller": "^3.0.0",
|
||||
"array-includes": "^3.1.5",
|
||||
"arr-flatten": "^1.1.0",
|
||||
"arr-diff": "^4.0.0",
|
||||
"array-includes-with-glob": "^3.1.0",
|
||||
"array-union": "^2.1.0",
|
||||
"array-unique": "^0.3.2",
|
||||
"array.prototype.flat": "^1.3.0",
|
||||
"asap": "^2.0.6",
|
||||
"array.prototype.flatmap": "^1.3.0",
|
||||
"assert-plus": "^1.0.0",
|
||||
"assign-symbols": "^1.0.0",
|
||||
"ast-types-flow": "^0.0.7",
|
||||
"astral-regex": "^2.0.0",
|
||||
"async-each": "^1.0.3",
|
||||
"async-retry": "^1.3.3",
|
||||
"asynckit": "^0.4.0",
|
||||
"asn1": "^0.2.6",
|
||||
"atob": "^2.1.2",
|
||||
"async": "^3.2.4",
|
||||
"at-least-node": "^1.0.0",
|
||||
"asn1js": "^3.0.5",
|
||||
"auto-bind": "^4.0.0",
|
||||
"autoprefixer": "^10.4.7",
|
||||
"axe-core": "^4.4.2",
|
||||
"axios": "^0.21.4",
|
||||
"axobject-query": "^2.2.0",
|
||||
"babel-plugin-dynamic-import-node": "^2.3.3",
|
||||
"babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0",
|
||||
"babel-preset-fbjs": "^3.4.0",
|
||||
"base": "^0.11.2",
|
||||
"aws4": "^1.11.0",
|
||||
"aws-sign2": "^0.7.0",
|
||||
"bcrypt-pbkdf": "^1.0.2",
|
||||
"base64-js": "^1.5.1",
|
||||
"binary-extensions": "^2.2.0",
|
||||
"bindings": "^1.5.0",
|
||||
"balanced-match": "^1.0.2",
|
||||
"bl": "^4.1.0",
|
||||
"blob-util": "^2.0.2",
|
||||
"bluebird": "^3.7.2",
|
||||
"brace-expansion": "^1.1.11",
|
||||
"braces": "^3.0.2",
|
||||
"bser": "^2.1.1",
|
||||
"buffer-crc32": "^0.2.13",
|
||||
"buffer": "^5.7.1",
|
||||
"body-scroll-lock": "^4.0.0-beta.0",
|
||||
"buffer-equal-constant-time": "^1.0.1",
|
||||
"buffer-from": "^1.1.2",
|
||||
"busboy": "^1.6.0",
|
||||
"cachedir": "^2.3.0",
|
||||
"cacache": "^15.3.0",
|
||||
"cache-base": "^1.0.1",
|
||||
"call-bind": "^1.0.2",
|
||||
"callsites": "^3.1.0",
|
||||
"camel-case": "^4.1.2",
|
||||
"caniuse-lite": "^1.0.30001346",
|
||||
"camelcase-css": "^2.0.1",
|
||||
"camelcase": "^5.3.1",
|
||||
"capital-case": "^1.0.4",
|
||||
"chalk": "^4.1.2",
|
||||
"change-case": "^4.1.2",
|
||||
"change-case-all": "^1.0.14",
|
||||
"chardet": "^0.7.0",
|
||||
"chokidar": "^3.5.3",
|
||||
"chownr": "^2.0.0",
|
||||
"class-utils": "^0.3.6",
|
||||
"clean-stack": "^2.2.0",
|
||||
"cli-cursor": "^3.1.0",
|
||||
"caseless": "^0.12.0",
|
||||
"check-more-types": "^2.24.0",
|
||||
"ci-info": "^3.3.2",
|
||||
"cli-spinners": "^2.6.1",
|
||||
"cli-width": "^3.0.0",
|
||||
"cliui": "^7.0.4",
|
||||
"clone": "^1.0.4",
|
||||
"clor": "^5.2.0",
|
||||
"clsx": "^1.1.1",
|
||||
"cluster-key-slot": "^1.1.0",
|
||||
"cli-table3": "^0.6.2",
|
||||
"cli-truncate": "^2.1.0",
|
||||
"collection-visit": "^1.0.0",
|
||||
"color-convert": "^2.0.1",
|
||||
"color-name": "^1.1.4",
|
||||
"combined-stream": "^1.0.8",
|
||||
"colorette": "^2.0.16",
|
||||
"commerce-sdk": "^2.7.1",
|
||||
"component-emitter": "^1.3.0",
|
||||
"commander": "^5.1.0",
|
||||
"compress-brotli": "^1.3.8",
|
||||
"constant-case": "^3.0.4",
|
||||
"convert-source-map": "^1.8.0",
|
||||
"common-tags": "^1.8.2",
|
||||
"concat-map": "^0.0.1",
|
||||
"cookie": "^0.4.2",
|
||||
"copy-descriptor": "^0.1.1",
|
||||
"core-js-pure": "^3.22.8",
|
||||
"core-util-is": "^1.0.3",
|
||||
"cosmiconfig": "^7.0.1",
|
||||
"cosmiconfig-toml-loader": "^1.0.0",
|
||||
"create-require": "^1.1.1",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"browserslist": "^4.20.3",
|
||||
"css-blank-pseudo": "^3.0.3",
|
||||
"csstype": "^3.1.0",
|
||||
"cssesc": "^3.0.0",
|
||||
"damerau-levenshtein": "^1.0.8",
|
||||
"cssdb": "^6.6.2",
|
||||
"dataloader": "^2.1.0",
|
||||
"debounce": "^1.2.1",
|
||||
"debug": "^4.3.4",
|
||||
"decamelize": "^1.2.0",
|
||||
"decode-uri-component": "^0.2.0",
|
||||
"css-has-pseudo": "^3.0.4",
|
||||
"dashdash": "^1.14.1",
|
||||
"dayjs": "^1.11.4",
|
||||
"css-prefers-color-scheme": "^6.0.3",
|
||||
"defaults": "^1.0.3",
|
||||
"define-properties": "^1.1.4",
|
||||
"define-property": "^0.2.5",
|
||||
"defined": "^1.0.0",
|
||||
"delayed-stream": "^1.0.0",
|
||||
"denque": "^1.5.1",
|
||||
"depd": "^1.1.2",
|
||||
"dependency-graph": "^0.11.0",
|
||||
"detect-indent": "^6.1.0",
|
||||
"detect-node-es": "^1.1.0",
|
||||
"detective": "^5.2.1",
|
||||
"didyoumean": "^1.2.2",
|
||||
"diff": "^4.0.2",
|
||||
"deep-is": "^0.1.4",
|
||||
"deepmerge": "^4.2.2",
|
||||
"dir-glob": "^3.0.1",
|
||||
"dlv": "^1.1.3",
|
||||
"dot-case": "^3.0.4",
|
||||
"dotenv": "^12.0.4",
|
||||
"dset": "^3.1.2",
|
||||
"duplexer": "^0.1.2",
|
||||
"eastasianwidth": "^0.2.0",
|
||||
"ecc-jsbn": "^0.1.2",
|
||||
"ecdsa-sig-formatter": "^1.0.11",
|
||||
"email-validator": "^2.0.4",
|
||||
"emoji-regex": "^9.2.2",
|
||||
"doctrine": "^2.1.0",
|
||||
"end-of-stream": "^1.4.4",
|
||||
"err-code": "^2.0.3",
|
||||
"encoding": "^0.1.13",
|
||||
"enquirer": "^2.3.6",
|
||||
"error-ex": "^1.3.2",
|
||||
"es-abstract": "^1.20.1",
|
||||
"es-shim-unscopables": "^1.0.0",
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"escalade": "^3.1.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-import-resolver-node": "^0.3.6",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-import-resolver-typescript": "^2.7.1",
|
||||
"eslint-module-utils": "^2.7.3",
|
||||
"eslint-plugin-jsx-a11y": "^6.5.1",
|
||||
"eslint-plugin-react-hooks": "^4.5.0",
|
||||
"eslint-plugin-react": "^7.30.0",
|
||||
"eslint-scope": "^7.1.1",
|
||||
"eslint-utils": "^3.0.0",
|
||||
"espree": "^9.3.2",
|
||||
"esquery": "^1.4.0",
|
||||
"eslint-visitor-keys": "^3.3.0",
|
||||
"esrecurse": "^4.3.0",
|
||||
"estraverse": "^5.3.0",
|
||||
"event-target-shim": "^5.0.1",
|
||||
"esutils": "^2.0.3",
|
||||
"execa": "^4.1.0",
|
||||
"expand-brackets": "^0.1.5",
|
||||
"expand-range": "^1.8.2",
|
||||
"event-target-polyfill": "^0.0.3",
|
||||
"extend-shallow": "^2.0.1",
|
||||
"external-editor": "^3.1.0",
|
||||
"eventemitter2": "^6.4.7",
|
||||
"executable": "^4.1.1",
|
||||
"extend": "^3.0.2",
|
||||
"extract-files": "^11.0.0",
|
||||
"extract-zip": "^2.0.1",
|
||||
"extglob": "^0.3.2",
|
||||
"extsprintf": "^1.3.0",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"fast-glob": "^3.2.11",
|
||||
"fastq": "^1.13.0",
|
||||
"fast-json-stable-stringify": "^2.1.0",
|
||||
"fast-levenshtein": "^2.0.6",
|
||||
"fb-watchman": "^2.0.1",
|
||||
"fd-slicer": "^1.1.0",
|
||||
"fbjs": "^3.0.4",
|
||||
"fbjs-css-vars": "^1.0.2",
|
||||
"fetch-to-curl": "^0.5.2",
|
||||
"file-entry-cache": "^6.0.1",
|
||||
"figures": "^3.2.0",
|
||||
"file-uri-to-path": "^1.0.0",
|
||||
"filename-regex": "^2.0.1",
|
||||
"fill-range": "^7.0.1",
|
||||
"find-up": "^2.1.0",
|
||||
"flat-cache": "^3.0.4",
|
||||
"follow-redirects": "^1.15.1",
|
||||
"forever-agent": "^0.6.1",
|
||||
"form-data": "^3.0.1",
|
||||
"form-data-encoder": "^1.7.2",
|
||||
"flatted": "^3.2.5",
|
||||
"for-own": "^0.1.5",
|
||||
"for-in": "^1.0.2",
|
||||
"fraction.js": "^4.2.0",
|
||||
"fragment-cache": "^0.2.1",
|
||||
"formdata-node": "^4.3.3",
|
||||
"fs-extra": "^9.1.0",
|
||||
"fsevents": "^2.3.2",
|
||||
"fs.realpath": "^1.0.0",
|
||||
"fs-minipass": "^2.1.0",
|
||||
"function-bind": "^1.1.1",
|
||||
"function.prototype.name": "^1.1.5",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"functions-have-names": "^1.2.3",
|
||||
"gensync": "^1.0.0-beta.2",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"get-intrinsic": "^1.1.1",
|
||||
"get-nonce": "^1.0.1",
|
||||
"get-symbol-description": "^1.0.0",
|
||||
"get-value": "^2.0.6",
|
||||
"get-stream": "^5.2.0",
|
||||
"glob-base": "^0.3.0",
|
||||
"glob": "^7.2.3",
|
||||
"getpass": "^0.1.7",
|
||||
"glob-parent": "^2.0.0",
|
||||
"global-dirs": "^3.0.0",
|
||||
"globals": "^11.12.0",
|
||||
"globby": "^11.1.0",
|
||||
"graceful-fs": "^4.2.10",
|
||||
"graphql-config": "^4.3.1",
|
||||
"graphql-request": "^4.3.0",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"getos": "^3.2.1",
|
||||
"graphql": "^15.8.0",
|
||||
"graphql-ws": "^5.8.2",
|
||||
"gzip-size": "^6.0.0",
|
||||
"has": "^1.0.3",
|
||||
"has-bigints": "^1.0.2",
|
||||
"has-property-descriptors": "^1.0.0",
|
||||
"has-flag": "^4.0.0",
|
||||
"has-symbols": "^1.0.3",
|
||||
"has-value": "^1.0.0",
|
||||
"has-values": "^1.0.0",
|
||||
"header-case": "^2.0.4",
|
||||
"http-cache-semantics": "^4.1.0",
|
||||
"http-signature": "^1.3.6",
|
||||
"human-signals": "^1.1.1",
|
||||
"https-proxy-agent": "^5.0.1",
|
||||
"humanize-ms": "^1.2.1",
|
||||
"has-tostringtag": "^1.0.0",
|
||||
"iconv-lite": "^0.4.24",
|
||||
"http-proxy-agent": "^4.0.1",
|
||||
"immutability-helper": "^3.1.1",
|
||||
"ignore": "^5.2.0",
|
||||
"ieee754": "^1.2.1",
|
||||
"immutable": "^3.7.6",
|
||||
"import-cwd": "^3.0.0",
|
||||
"import-fresh": "^3.3.0",
|
||||
"import-from": "^3.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"infer-owner": "^1.0.4",
|
||||
"indent-string": "^4.0.0",
|
||||
"ini": "^2.0.0",
|
||||
"inflight": "^1.0.6",
|
||||
"inherits": "^2.0.4",
|
||||
"inquirer": "^8.2.4",
|
||||
"internal-slot": "^1.0.3",
|
||||
"ioredis": "^4.28.5",
|
||||
"ip": "^1.1.8",
|
||||
"invariant": "^2.2.4",
|
||||
"is-absolute": "^1.0.0",
|
||||
"is-accessor-descriptor": "^1.0.0",
|
||||
"is-arrayish": "^0.2.1",
|
||||
"is-bigint": "^1.0.4",
|
||||
"is-binary-path": "^2.1.0",
|
||||
"is-boolean-object": "^1.1.2",
|
||||
"is-buffer": "^1.1.6",
|
||||
"is-callable": "^1.2.4",
|
||||
"is-ci": "^3.0.1",
|
||||
"is-core-module": "^2.9.0",
|
||||
"is-data-descriptor": "^1.0.0",
|
||||
"is-date-object": "^1.0.5",
|
||||
"is-descriptor": "^1.0.2",
|
||||
"is-dotfile": "^1.0.3",
|
||||
"is-equal-shallow": "^0.1.3",
|
||||
"is-extendable": "^0.1.1",
|
||||
"is-extglob": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"is-glob": "^4.0.3",
|
||||
"is-interactive": "^1.0.0",
|
||||
"is-installed-globally": "^0.4.0",
|
||||
"is-negative-zero": "^2.0.2",
|
||||
"is-number": "^3.0.0",
|
||||
"is-number-object": "^1.0.7",
|
||||
"is-path-inside": "^3.0.3",
|
||||
"is-lambda": "^1.0.1",
|
||||
"is-lower-case": "^2.0.2",
|
||||
"is-regex": "^1.1.4",
|
||||
"is-primitive": "^2.0.0",
|
||||
"is-plain-object": "^2.0.4",
|
||||
"is-posix-bracket": "^0.1.1",
|
||||
"is-stream": "^2.0.1",
|
||||
"is-relative": "^1.0.0",
|
||||
"is-shared-array-buffer": "^1.0.2",
|
||||
"is-typedarray": "^1.0.0",
|
||||
"is-string": "^1.0.7",
|
||||
"is-symbol": "^1.0.4",
|
||||
"eslint": "^8.16.0",
|
||||
"is-unc-path": "^1.0.0",
|
||||
"is-unicode-supported": "^0.1.0",
|
||||
"is-upper-case": "^2.0.2",
|
||||
"is-weakref": "^1.0.2",
|
||||
"is-windows": "^1.0.2",
|
||||
"isarray": "^1.0.0",
|
||||
"isexe": "^2.0.0",
|
||||
"isobject": "^3.0.1",
|
||||
"js-cookie": "^3.0.1",
|
||||
"isstream": "^0.1.2",
|
||||
"isomorphic-fetch": "^3.0.0",
|
||||
"js-tokens": "^4.0.0",
|
||||
"jsbn": "^0.1.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"jsesc": "^2.5.2",
|
||||
"json-buffer": "^3.0.1",
|
||||
"json-parse-even-better-errors": "^2.3.1",
|
||||
"json-schema": "^0.4.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"json-stable-stringify": "^1.0.1",
|
||||
"isomorphic-ws": "^5.0.0",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
"json-to-pretty-yaml": "^1.2.2",
|
||||
"json-stringify-safe": "^5.0.1",
|
||||
"json5": "^1.0.1",
|
||||
"jsonify": "^0.0.0",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"jsprim": "^2.0.2",
|
||||
"jsx-ast-utils": "^3.3.0",
|
||||
"jwa": "^1.4.1",
|
||||
"jws": "^3.2.2",
|
||||
"keen-slider": "^6.6.14",
|
||||
"jsonfile": "^6.1.0",
|
||||
"kind-of": "^3.2.2",
|
||||
"keyv": "^4.3.0",
|
||||
"language-subtag-registry": "^0.3.21",
|
||||
"language-tags": "^1.0.5",
|
||||
"levn": "^0.4.1",
|
||||
"lilconfig": "^2.0.5",
|
||||
"lazy-ass": "^1.6.0",
|
||||
"lines-and-columns": "^1.2.4",
|
||||
"lint-staged": "^12.5.0",
|
||||
"locate-path": "^2.0.0",
|
||||
"lodash.camelcase": "^4.3.0",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"listr2": "^3.14.0",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.defaults": "^4.2.0",
|
||||
"lodash.flatten": "^4.4.0",
|
||||
"lodash": "^4.17.21",
|
||||
"lodash.get": "^4.4.2",
|
||||
"lodash.includes": "^4.3.0",
|
||||
"lodash.isarguments": "^3.1.0",
|
||||
"lodash.isboolean": "^3.0.3",
|
||||
"lodash.isdate": "^4.0.1",
|
||||
"lodash.isinteger": "^4.0.4",
|
||||
"lodash.isnumber": "^3.0.3",
|
||||
"lodash.isplainobject": "^4.0.6",
|
||||
"lodash.isstring": "^4.0.1",
|
||||
"lodash.merge": "^4.6.2",
|
||||
"lodash.once": "^4.1.1",
|
||||
"lodash.random": "^3.2.0",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"lodash.uniq": "^4.5.0",
|
||||
"log-symbols": "^4.1.0",
|
||||
"lodash.snakecase": "^4.1.1",
|
||||
"loglevel": "^1.8.0",
|
||||
"lower-case": "^2.0.2",
|
||||
"loose-envify": "^1.4.0",
|
||||
"log-update": "^4.0.0",
|
||||
"lower-case-first": "^2.0.2",
|
||||
"lru-cache": "^6.0.0",
|
||||
"make-error": "^1.3.6",
|
||||
"make-fetch-happen": "^8.0.14",
|
||||
"map-visit": "^1.0.0",
|
||||
"matcher": "^4.0.0",
|
||||
"merge-stream": "^2.0.0",
|
||||
"map-cache": "^0.2.2",
|
||||
"math-random": "^1.0.4",
|
||||
"merge2": "^1.4.1",
|
||||
"meros": "^1.2.0",
|
||||
"micromatch": "^4.0.5",
|
||||
"mime-db": "^1.52.0",
|
||||
"mime-types": "^2.1.35",
|
||||
"mimic-fn": "^2.1.0",
|
||||
"minimatch": "^3.1.2",
|
||||
"minimist": "^1.2.6",
|
||||
"minipass": "^3.1.6",
|
||||
"minipass-fetch": "^1.4.1",
|
||||
"minipass-collect": "^1.0.2",
|
||||
"minipass-flush": "^1.0.5",
|
||||
"minipass-pipeline": "^1.2.4",
|
||||
"minipass-sized": "^1.0.3",
|
||||
"minizlib": "^2.1.2",
|
||||
"mixin-deep": "^1.3.2",
|
||||
"mk-dirs": "^1.0.0",
|
||||
"mkdirp": "^1.0.4",
|
||||
"mri": "^1.2.0",
|
||||
"ms": "^2.1.3",
|
||||
"mrmime": "^1.0.0",
|
||||
"mute-stream": "^0.0.8",
|
||||
"nanomatch": "^1.2.13",
|
||||
"natural-compare": "^1.4.0",
|
||||
"nanoid": "^3.3.4",
|
||||
"nan": "^2.16.0",
|
||||
"next": "^12.1.6",
|
||||
"next-themes": "^0.0.15",
|
||||
"no-case": "^3.0.4",
|
||||
"node-domexception": "^1.0.0",
|
||||
"node-fetch": "^2.6.7",
|
||||
"node-int64": "^0.4.0",
|
||||
"node-releases": "^2.0.5",
|
||||
"normalize-path": "^3.0.0",
|
||||
"normalize-range": "^0.1.2",
|
||||
"object-assign": "^4.1.1",
|
||||
"npm-run-path": "^4.0.1",
|
||||
"nullthrows": "^1.1.1",
|
||||
"object-copy": "^0.1.0",
|
||||
"object-hash": "^3.0.0",
|
||||
"object-inspect": "^1.12.2",
|
||||
"object-keys": "^1.1.1",
|
||||
"object-keys-normalizer": "^1.0.1",
|
||||
"object-visit": "^1.0.1",
|
||||
"object.assign": "^4.1.2",
|
||||
"object.entries": "^1.1.5",
|
||||
"object-merge-advanced": "^12.0.3",
|
||||
"object.hasown": "^1.1.1",
|
||||
"object.pick": "^1.3.0",
|
||||
"object.omit": "^2.0.1",
|
||||
"object.fromentries": "^2.0.5",
|
||||
"object.values": "^1.1.5",
|
||||
"once": "^1.4.0",
|
||||
"onetime": "^5.1.2",
|
||||
"opener": "^1.5.2",
|
||||
"optionator": "^0.9.1",
|
||||
"ora": "^5.4.1",
|
||||
"os-tmpdir": "^1.0.2",
|
||||
"p-limit": "^3.1.0",
|
||||
"p-map": "^4.0.0",
|
||||
"p-locate": "^2.0.0",
|
||||
"ospath": "^1.2.2",
|
||||
"param-case": "^3.0.4",
|
||||
"p-try": "^1.0.0",
|
||||
"parent-module": "^1.0.1",
|
||||
"parse-filepath": "^1.0.2",
|
||||
"parse-glob": "^3.0.4",
|
||||
"parse-json": "^5.2.0",
|
||||
"pascal-case": "^3.1.2",
|
||||
"pascalcase": "^0.1.1",
|
||||
"path-case": "^3.0.4",
|
||||
"path-exists": "^3.0.0",
|
||||
"path-is-absolute": "^1.0.1",
|
||||
"path-key": "^3.1.1",
|
||||
"path-parse": "^1.0.7",
|
||||
"path-root": "^0.1.1",
|
||||
"path-root-regex": "^0.1.2",
|
||||
"path-type": "^4.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"pend": "^1.2.0",
|
||||
"picomatch": "^2.3.1",
|
||||
"performance-now": "^2.1.0",
|
||||
"pidtree": "^0.5.0",
|
||||
"pify": "^2.3.0",
|
||||
"posix-character-classes": "^0.1.1",
|
||||
"postcss": "^8.4.14",
|
||||
"postcss-attribute-case-insensitive": "^5.0.0",
|
||||
"postcss-clamp": "^4.1.0",
|
||||
"postcss-color-functional-notation": "^4.2.3",
|
||||
"postcss-color-hex-alpha": "^8.0.3",
|
||||
"postcss-color-rebeccapurple": "^7.0.2",
|
||||
"postcss-custom-properties": "^12.1.7",
|
||||
"postcss-custom-media": "^8.0.0",
|
||||
"postcss-custom-selectors": "^6.0.0",
|
||||
"postcss-dir-pseudo-class": "^6.0.4",
|
||||
"postcss-env-function": "^4.0.6",
|
||||
"postcss-double-position-gradients": "^3.1.1",
|
||||
"postcss-flexbugs-fixes": "^5.0.2",
|
||||
"postcss-focus-visible": "^6.0.4",
|
||||
"postcss-focus-within": "^5.0.4",
|
||||
"postcss-font-variant": "^5.0.0",
|
||||
"postcss-gap-properties": "^3.0.3",
|
||||
"postcss-image-set-function": "^4.0.6",
|
||||
"postcss-initial": "^4.0.1",
|
||||
"postcss-js": "^4.0.0",
|
||||
"postcss-lab-function": "^4.2.0",
|
||||
"postcss-load-config": "^3.1.4",
|
||||
"postcss-media-minmax": "^5.0.0",
|
||||
"postcss-logical": "^5.0.4",
|
||||
"postcss-opacity-percentage": "^1.1.2",
|
||||
"postcss-nested": "^5.0.6",
|
||||
"postcss-nesting": "^8.0.1",
|
||||
"postcss-overflow-shorthand": "^3.0.3",
|
||||
"postcss-page-break": "^3.0.4",
|
||||
"postcss-place": "^7.0.4",
|
||||
"postcss-preset-env": "^7.7.0",
|
||||
"postcss-pseudo-class-any-link": "^7.1.4",
|
||||
"postcss-replace-overflow-wrap": "^4.0.0",
|
||||
"postcss-selector-not": "^5.0.0",
|
||||
"preserve": "^0.2.0",
|
||||
"postcss-value-parser": "^4.2.0",
|
||||
"pretty-bytes": "^5.6.0",
|
||||
"prelude-ls": "^1.2.1",
|
||||
"process-nextick-args": "^2.0.1",
|
||||
"electron-to-chromium": "^1.4.144",
|
||||
"promise": "^7.3.1",
|
||||
"proxy-from-env": "^1.0.0",
|
||||
"psl": "^1.9.0",
|
||||
"promise-inflight": "^1.0.1",
|
||||
"prop-types": "^15.8.1",
|
||||
"pump": "^3.0.0",
|
||||
"punycode": "^2.1.1",
|
||||
"promise-retry": "^2.0.1",
|
||||
"qs": "^6.10.3",
|
||||
"queue-microtask": "^1.2.3",
|
||||
"quick-lru": "^5.1.1",
|
||||
"pvtsutils": "^1.3.2",
|
||||
"pvutils": "^1.1.3",
|
||||
"randomatic": "^3.1.1",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-remove-scroll": "^2.5.3",
|
||||
"react-fast-marquee": "^1.3.2",
|
||||
"react-is": "^16.13.1",
|
||||
"react-merge-refs": "^1.1.0",
|
||||
"react-style-singleton": "^2.2.0",
|
||||
"react-use-measure": "^2.1.1",
|
||||
"readable-stream": "^2.3.7",
|
||||
"readdirp": "^3.6.0",
|
||||
"postcss-selector-parser": "^6.0.10",
|
||||
"redis-commands": "^1.7.0",
|
||||
"regenerator-runtime": "^0.13.9",
|
||||
"redis-parser": "^3.0.0",
|
||||
"react-remove-scroll-bar": "^2.3.1",
|
||||
"redis-errors": "^1.2.0",
|
||||
"regexp.prototype.flags": "^1.4.3",
|
||||
"regex-not": "^1.0.2",
|
||||
"regex-cache": "^0.4.4",
|
||||
"regexpp": "^3.2.0",
|
||||
"remove-trailing-separator": "^1.1.0",
|
||||
"remove-trailing-spaces": "^1.0.8",
|
||||
"repeat-string": "^1.6.1",
|
||||
"request-progress": "^3.0.0",
|
||||
"relay-runtime": "^12.0.0",
|
||||
"remedial": "^1.0.8",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-like": "^0.1.2",
|
||||
"require-main-filename": "^2.0.0",
|
||||
"repeat-element": "^1.1.4",
|
||||
"resolve": "^1.22.0",
|
||||
"resolve-url": "^0.2.1",
|
||||
"ret": "^0.1.15",
|
||||
"retry": "^0.12.0",
|
||||
"reusify": "^1.0.4",
|
||||
"restore-cursor": "^3.1.0",
|
||||
"rewrite-imports": "^1.4.0",
|
||||
"rfdc": "^1.3.0",
|
||||
"run-async": "^2.4.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"run-parallel": "^1.2.0",
|
||||
"rxjs": "^7.5.5",
|
||||
"safe-buffer": "^5.2.1",
|
||||
"safer-buffer": "^2.1.2",
|
||||
"safe-regex": "^1.1.0",
|
||||
"resolve-from": "^5.0.0",
|
||||
"scheduler": "^0.20.2",
|
||||
"semver": "^6.3.0",
|
||||
"set-value": "^2.0.1",
|
||||
"shebang-command": "^2.0.0",
|
||||
"scuid": "^1.1.0",
|
||||
"set-blocking": "^2.0.0",
|
||||
"setimmediate": "^1.0.5",
|
||||
"side-channel": "^1.0.4",
|
||||
"signal-exit": "^3.0.7",
|
||||
"shebang-regex": "^3.0.0",
|
||||
"signedsource": "^1.0.0",
|
||||
"sentence-case": "^3.0.4",
|
||||
"slash": "^3.0.0",
|
||||
"relay-compiler": "^12.0.0",
|
||||
"slice-ansi": "^3.0.0",
|
||||
"smart-buffer": "^4.2.0",
|
||||
"sirv": "^1.0.19",
|
||||
"next-commerce": "^0.0.1",
|
||||
"snapdragon-util": "^3.0.1",
|
||||
"source-map": "^0.5.7",
|
||||
"source-map-js": "^1.0.2",
|
||||
"snapdragon": "^0.8.2",
|
||||
"socks-proxy-agent": "^5.0.1",
|
||||
"source-map-url": "^0.4.1",
|
||||
"source-map-support": "^0.5.21",
|
||||
"sshpk": "^1.17.0",
|
||||
"snapdragon-node": "^2.1.1",
|
||||
"source-map-resolve": "^0.5.3",
|
||||
"snake-case": "^3.0.4",
|
||||
"socks": "^2.6.2",
|
||||
"split-string": "^3.1.0",
|
||||
"sponge-case": "^1.0.1",
|
||||
"standard-as-callback": "^2.1.0",
|
||||
"ssri": "^8.0.1",
|
||||
"static-extend": "^0.1.2",
|
||||
"string-argv": "^0.3.1",
|
||||
"streamsearch": "^1.1.0",
|
||||
"string_decoder": "^1.1.1",
|
||||
"string-width": "^4.2.3",
|
||||
"string.prototype.matchall": "^4.0.7",
|
||||
"strip-ansi": "^6.0.1",
|
||||
"strip-bom": "^3.0.0",
|
||||
"strip-final-newline": "^2.0.0",
|
||||
"strip-json-comments": "^3.1.1",
|
||||
"stripe": "^8.222.0",
|
||||
"styled-jsx": "^5.0.2",
|
||||
"supports-color": "^7.2.0",
|
||||
"swap-case": "^2.0.2",
|
||||
"string-env-interpolation": "^1.0.1",
|
||||
"swell-js": "^4.0.0-next.0",
|
||||
"swr": "^1.3.0",
|
||||
"string.prototype.trimstart": "^1.0.5",
|
||||
"string.prototype.trimend": "^1.0.5",
|
||||
"tabbable": "^5.3.3",
|
||||
"throttleit": "^1.0.0",
|
||||
"supports-preserve-symlinks-flag": "^1.0.0",
|
||||
"tailwindcss": "^3.0.24",
|
||||
"taskr": "^1.1.0",
|
||||
"tar": "^6.1.11",
|
||||
"through": "^2.3.8",
|
||||
"tinydate": "^1.3.0",
|
||||
"to-object-path": "^0.3.0",
|
||||
"text-table": "^0.2.0",
|
||||
"to-regex": "^3.0.2",
|
||||
"to-regex-range": "^5.0.1",
|
||||
"tough-cookie": "^2.5.0",
|
||||
"to-fast-properties": "^2.0.0",
|
||||
"title-case": "^3.0.3",
|
||||
"tr46": "^0.0.3",
|
||||
"tsconfig-paths": "^3.14.1",
|
||||
"tmp": "^0.2.1",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"taskr-swc": "^0.0.1",
|
||||
"tsutils": "^3.21.0",
|
||||
"turbo-darwin-64": "^1.2.16",
|
||||
"tslib": "^2.4.0",
|
||||
"type-check": "^0.4.0",
|
||||
"ts-node": "^9.1.1",
|
||||
"ts-log": "^2.2.4",
|
||||
"tweetnacl": "^0.14.5",
|
||||
"totalist": "^1.1.0",
|
||||
"type-fest": "^0.21.3",
|
||||
"undici": "^5.8.1",
|
||||
"universalify": "^2.0.0",
|
||||
"unbox-primitive": "^1.0.2",
|
||||
"ua-parser-js": "^0.7.31",
|
||||
"unique-filename": "^1.1.1",
|
||||
"untildify": "^4.0.0",
|
||||
"unset-value": "^1.0.0",
|
||||
"union-value": "^1.0.1",
|
||||
"unixify": "^1.0.0",
|
||||
"unique-slug": "^2.0.2",
|
||||
"unc-path-regex": "^0.1.2",
|
||||
"urix": "^0.1.0",
|
||||
"use": "^3.1.1",
|
||||
"use-callback-ref": "^1.3.0",
|
||||
"use-sidecar": "^1.1.2",
|
||||
"util-deprecate": "^1.0.2",
|
||||
"uuid": "^8.3.2",
|
||||
"uri-js": "^4.4.1",
|
||||
"uuidv4": "^6.2.13",
|
||||
"v8-compile-cache": "^2.3.0",
|
||||
"upper-case": "^2.0.2",
|
||||
"upper-case-first": "^2.0.2",
|
||||
"verror": "^1.10.0",
|
||||
"wcwidth": "^1.0.1",
|
||||
"webidl-conversions": "^3.0.1",
|
||||
"web-streams-polyfill": "^3.2.1",
|
||||
"webpack-bundle-analyzer": "^4.3.0",
|
||||
"whatwg-url": "^5.0.0",
|
||||
"which": "^2.0.2",
|
||||
"whatwg-fetch": "^3.6.2",
|
||||
"which-module": "^2.0.0",
|
||||
"util-nonempty": "^3.1.0",
|
||||
"value-or-promise": "^1.0.11",
|
||||
"wrap-ansi": "^7.0.0",
|
||||
"wrappy": "^1.0.2",
|
||||
"xtend": "^4.0.2",
|
||||
"yallist": "^4.0.0",
|
||||
"ws": "^8.8.1",
|
||||
"webcrypto-core": "^1.7.5",
|
||||
"y18n": "^5.0.8",
|
||||
"word-wrap": "^1.2.3",
|
||||
"yaml": "^1.10.2",
|
||||
"which-boxed-primitive": "^1.0.2",
|
||||
"yaml-ast-parser": "^0.0.43",
|
||||
"yargs": "^17.5.1",
|
||||
"yocto-queue": "^0.1.0",
|
||||
"yargs-parser": "^21.0.1",
|
||||
"yn": "^3.1.1",
|
||||
"yauzl": "^2.10.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/The-Noble-K/PokeMartCypress.git"
|
||||
},
|
||||
"keywords": [
|
||||
"pokemart",
|
||||
"cypress"
|
||||
],
|
||||
"author": "Jarod Noble Sneed",
|
||||
"bugs": {
|
||||
"url": "https://github.com/The-Noble-K/PokeMartCypress/issues"
|
||||
},
|
||||
"homepage": "https://github.com/The-Noble-K/PokeMartCypress#readme"
|
||||
}
|
||||
|
@ -20,17 +20,21 @@ const Navbar: FC<NavbarProps> = ({ links }) => (
|
||||
<div className={s.nav}>
|
||||
<div className="flex items-center flex-1">
|
||||
<Link href="/">
|
||||
<a className={s.logo} aria-label="Logo">
|
||||
<a className={s.logo} aria-label="Logo" data-test="logo">
|
||||
<Logo />
|
||||
</a>
|
||||
</Link>
|
||||
<nav className={s.navMenu}>
|
||||
<Link href="/search">
|
||||
<a className={s.link}>All</a>
|
||||
<a className={s.link} data-test="nav-link-search">
|
||||
All
|
||||
</a>
|
||||
</Link>
|
||||
{links?.map((l) => (
|
||||
<Link href={l.href} key={l.href}>
|
||||
<a className={s.link}>{l.label}</a>
|
||||
<a className={s.link} data-test="nav-link-home-page">
|
||||
{l.label}
|
||||
</a>
|
||||
</Link>
|
||||
))}
|
||||
</nav>
|
||||
|
@ -43,6 +43,7 @@ const Searchbar: FC<Props> = ({ className, id = 'search' }) => {
|
||||
placeholder="Search for products..."
|
||||
defaultValue={router.query.q}
|
||||
onKeyUp={handleKeyUp}
|
||||
data-test="search-input"
|
||||
/>
|
||||
<div className={s.iconContainer}>
|
||||
<svg className={s.icon} fill="currentColor" viewBox="0 0 20 20">
|
||||
|
@ -71,11 +71,11 @@ const ProductCard: FC<Props> = ({
|
||||
/>
|
||||
)}
|
||||
{!noNameTag && (
|
||||
<div className={s.header}>
|
||||
<div className={s.header} data-test="product-card">
|
||||
<h3 className={s.name}>
|
||||
<span>{product.name}</span>
|
||||
<span data-test="product-name">{product.name}</span>
|
||||
</h3>
|
||||
<div className={s.price}>
|
||||
<div className={s.price} data-test="product-price">
|
||||
{`${price} ${product.price?.currencyCode}`}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -16,7 +16,7 @@ const ProductTag: React.FC<ProductTagProps> = ({
|
||||
fontSize = 32,
|
||||
}) => {
|
||||
return (
|
||||
<div className={cn(s.root, className)}>
|
||||
<div className={cn(s.root, className)} data-test="product-tag">
|
||||
<h3 className={s.name}>
|
||||
<span
|
||||
className={cn({ [s.fontsizing]: fontSize < 32 })}
|
||||
@ -24,11 +24,14 @@ const ProductTag: React.FC<ProductTagProps> = ({
|
||||
fontSize: `${fontSize}px`,
|
||||
lineHeight: `${fontSize}px`,
|
||||
}}
|
||||
data-test="product-name"
|
||||
>
|
||||
{name}
|
||||
</span>
|
||||
</h3>
|
||||
<div className={s.price}>{price}</div>
|
||||
<div className={s.price} data-test="product-price">
|
||||
{price}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
@ -29,6 +29,7 @@
|
||||
"autoprefixer": "^10.4.2",
|
||||
"body-scroll-lock": "^4.0.0-beta.0",
|
||||
"clsx": "^1.1.1",
|
||||
"cypress": "^10.4.0",
|
||||
"email-validator": "^2.0.4",
|
||||
"js-cookie": "^3.0.1",
|
||||
"keen-slider": "^6.6.3",
|
||||
|
8
tsconfig.json
Normal file
8
tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": ["es5", "dom"],
|
||||
"types": ["cypress", "node"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user