diff --git a/.github/workflows/example-basic-pnpm.yml b/.github/workflows/example-basic-pnpm.yml index c2b28d962..09f4f74ea 100644 --- a/.github/workflows/example-basic-pnpm.yml +++ b/.github/workflows/example-basic-pnpm.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - basic-pnpm: strategy: fail-fast: false diff --git a/.github/workflows/example-basic.yml b/.github/workflows/example-basic.yml index 021cf5627..725bab052 100644 --- a/.github/workflows/example-basic.yml +++ b/.github/workflows/example-basic.yml @@ -8,7 +8,6 @@ on: workflow_dispatch: jobs: - basic: strategy: fail-fast: false diff --git a/.github/workflows/example-chrome.yml b/.github/workflows/example-chrome.yml index f1f48c7c0..31504867e 100644 --- a/.github/workflows/example-chrome.yml +++ b/.github/workflows/example-chrome.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - tests: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-config.yml b/.github/workflows/example-config.yml index a8f8f00da..2bff182d0 100644 --- a/.github/workflows/example-config.yml +++ b/.github/workflows/example-config.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - start: # example where we pass custom base URL runs-on: ubuntu-24.04 diff --git a/.github/workflows/example-custom-ci-build-id.yml b/.github/workflows/example-custom-ci-build-id.yml index 7e783c9bb..89e981e10 100644 --- a/.github/workflows/example-custom-ci-build-id.yml +++ b/.github/workflows/example-custom-ci-build-id.yml @@ -38,7 +38,6 @@ env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: - check-record-key: runs-on: ubuntu-24.04 outputs: diff --git a/.github/workflows/example-custom-command.yml b/.github/workflows/example-custom-command.yml index 274829ce3..814a3bc46 100644 --- a/.github/workflows/example-custom-command.yml +++ b/.github/workflows/example-custom-command.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - start: # example where instead of forming the default "cypress run ..." # the user can specify their own command diff --git a/.github/workflows/example-env.yml b/.github/workflows/example-env.yml index 7394328ea..355ce9a49 100644 --- a/.github/workflows/example-env.yml +++ b/.github/workflows/example-env.yml @@ -13,7 +13,6 @@ env: # see https://on.cypress.io/env CYPRESS_environmentName: staging jobs: - e2e: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-firefox.yml b/.github/workflows/example-firefox.yml index 24e3c895f..4e58bdce1 100644 --- a/.github/workflows/example-firefox.yml +++ b/.github/workflows/example-firefox.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - firefox: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-install-command.yml b/.github/workflows/example-install-command.yml index 4ccf3d1c5..39a623021 100644 --- a/.github/workflows/example-install-command.yml +++ b/.github/workflows/example-install-command.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - install-command: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-install-only.yml b/.github/workflows/example-install-only.yml index 7a2e4cce7..17a3bc088 100644 --- a/.github/workflows/example-install-only.yml +++ b/.github/workflows/example-install-only.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - # do not install every dependency in this example # just install Cypress, but make sure to cache it install-cypress-only: diff --git a/.github/workflows/example-node-versions.yml b/.github/workflows/example-node-versions.yml index e6a26e19e..43f8e72f5 100644 --- a/.github/workflows/example-node-versions.yml +++ b/.github/workflows/example-node-versions.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - cypress-run: runs-on: ubuntu-24.04 # let's make sure Cypress works on several versions of Node diff --git a/.github/workflows/example-quiet.yml b/.github/workflows/example-quiet.yml index b1631dee4..fc5c9ffff 100644 --- a/.github/workflows/example-quiet.yml +++ b/.github/workflows/example-quiet.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - cypress-run: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-recording.yml b/.github/workflows/example-recording.yml index 45cd32653..e595eea10 100644 --- a/.github/workflows/example-recording.yml +++ b/.github/workflows/example-recording.yml @@ -20,7 +20,6 @@ env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: - check-record-key: runs-on: ubuntu-24.04 outputs: diff --git a/.github/workflows/example-start-and-pnpm-workspaces.yml b/.github/workflows/example-start-and-pnpm-workspaces.yml index 3e418d2fe..484640091 100644 --- a/.github/workflows/example-start-and-pnpm-workspaces.yml +++ b/.github/workflows/example-start-and-pnpm-workspaces.yml @@ -7,8 +7,8 @@ on: workflow_dispatch: jobs: - # The example has pnpm workspaces in its "root" folder - # examples/start-and-pnpm-workspaces + # The example has pnpm workspaces in its "root" folder + # examples/start-and-pnpm-workspaces single-ws: # This job installs pnpm, diff --git a/.github/workflows/example-start-and-yarn-workspaces.yml b/.github/workflows/example-start-and-yarn-workspaces.yml index 00bbd9d3e..148013a05 100644 --- a/.github/workflows/example-start-and-yarn-workspaces.yml +++ b/.github/workflows/example-start-and-yarn-workspaces.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - single: # the example has Yarn workspace in its "root" folder # examples/start-and-yarn-workspaces diff --git a/.github/workflows/example-start.yml b/.github/workflows/example-start.yml index cab721ede..ac87551bf 100644 --- a/.github/workflows/example-start.yml +++ b/.github/workflows/example-start.yml @@ -13,7 +13,6 @@ env: NO_UPDATE_CHECK: 1 jobs: - start: # example with web application build, # server start and waiting for the server diff --git a/.github/workflows/example-wait-on.yml b/.github/workflows/example-wait-on.yml index 15745d2fa..5ca3ceb3c 100644 --- a/.github/workflows/example-wait-on.yml +++ b/.github/workflows/example-wait-on.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - wait: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-webpack.yml b/.github/workflows/example-webpack.yml index 427e69023..2a13fbce9 100644 --- a/.github/workflows/example-webpack.yml +++ b/.github/workflows/example-webpack.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - wait: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-yarn-classic.yml b/.github/workflows/example-yarn-classic.yml index 98dc77b35..76053d344 100644 --- a/.github/workflows/example-yarn-classic.yml +++ b/.github/workflows/example-yarn-classic.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - yarn-classic: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-yarn-modern-pnp.yml b/.github/workflows/example-yarn-modern-pnp.yml index 69bd501a5..6e373acdb 100644 --- a/.github/workflows/example-yarn-modern-pnp.yml +++ b/.github/workflows/example-yarn-modern-pnp.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - yarn-modern-pnp: runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/example-yarn-modern.yml b/.github/workflows/example-yarn-modern.yml index b2cffe152..65be28eb4 100644 --- a/.github/workflows/example-yarn-modern.yml +++ b/.github/workflows/example-yarn-modern.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: jobs: - yarn-modern: runs-on: ubuntu-24.04 steps: diff --git a/.prettierignore b/.prettierignore index 2c22bd9bc..b680f365a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,5 @@ /LICENSE.md + +examples/**/*.js +examples/**/*.?js +**/pnpm-lock.yaml diff --git a/dist/index.js b/dist/index.js index eecf7053f..51b127067 100644 --- a/dist/index.js +++ b/dist/index.js @@ -93701,6 +93701,7 @@ const I = (x) => x const detectPrNumber = async () => { const { + GITHUB_API_URL, GITHUB_SHA, GITHUB_TOKEN, GITHUB_RUN_ID, @@ -93726,7 +93727,8 @@ const detectPrNumber = async () => { ) const client = new Octokit({ - auth: GITHUB_TOKEN + auth: GITHUB_TOKEN, + baseUrl: GITHUB_API_URL }) if (GITHUB_HEAD_REF) { diff --git a/eslint.config.mjs b/eslint.config.mjs index 1de26e1ac..547b4b59c 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,6 +1,7 @@ import globals from 'globals' import pluginJs from '@eslint/js' import pluginCypress from 'eslint-plugin-cypress/flat' +import stylistic from '@stylistic/eslint-plugin' export default [ pluginJs.configs.recommended, @@ -17,5 +18,16 @@ export default [ ...globals.node } } + }, + { + name: 'examples-style', + files: ['examples/**/*.js'], + ...stylistic.configs.recommended, + rules: { + '@stylistic/indent': ['error', 2], + '@stylistic/comma-dangle': ['error', 'always-multiline'], + '@stylistic/quotes': ['error', 'single'], + '@stylistic/semi': ['error', 'never'], + } } ] diff --git a/examples/browser/cypress.config.js b/examples/browser/cypress.config.js index 489af0fcd..3bba37656 100644 --- a/examples/browser/cypress.config.js +++ b/examples/browser/cypress.config.js @@ -23,10 +23,9 @@ module.exports = defineConfig({ log(message) { console.log(message) return null - } + }, }) }, supportFile: false, - video: false }, }) diff --git a/examples/browser/cypress/e2e/spec.cy.js b/examples/browser/cypress/e2e/spec.cy.js index c73962ba8..49c819232 100644 --- a/examples/browser/cypress/e2e/spec.cy.js +++ b/examples/browser/cypress/e2e/spec.cy.js @@ -13,10 +13,10 @@ it('works', () => { // log the top window's dimensions const resolution = Cypress._.pick(top, [ 'innerWidth', - 'innerHeight' + 'innerHeight', ]) cy.task( 'log', - `top window inner w, h is ${resolution.innerWidth}x${resolution.innerHeight}` + `top window inner w, h is ${resolution.innerWidth}x${resolution.innerHeight}`, ) }) diff --git a/examples/component-tests/cypress.config.js b/examples/component-tests/cypress.config.js index 385ac5cb5..0fad0661b 100644 --- a/examples/component-tests/cypress.config.js +++ b/examples/component-tests/cypress.config.js @@ -1,11 +1,10 @@ -import { defineConfig } from "cypress"; +import { defineConfig } from 'cypress' export default defineConfig({ - video: false, component: { devServer: { - framework: "react", - bundler: "vite", + framework: 'react', + bundler: 'vite', }, }, -}); +}) diff --git a/examples/config/cypress.config-alternate.js b/examples/config/cypress.config-alternate.js index 8d60d0ecf..edaea60d2 100644 --- a/examples/config/cypress.config-alternate.js +++ b/examples/config/cypress.config-alternate.js @@ -7,6 +7,6 @@ module.exports = defineConfig({ setupNodeEvents() { console.log('\nUsing cypress.config-alternate.js config-file') }, - supportFile: false + supportFile: false, }, }) diff --git a/examples/config/cypress/e2e/spec-a.cy.js b/examples/config/cypress/e2e/spec-a.cy.js index 4f8fd6f2d..4f757e23d 100644 --- a/examples/config/cypress/e2e/spec-a.cy.js +++ b/examples/config/cypress/e2e/spec-a.cy.js @@ -2,7 +2,7 @@ describe('Example config A', () => { it('has baseUrl', () => { expect(Cypress.config('baseUrl')).to.equal( - 'http://localhost:3333' + 'http://localhost:3333', ) }) diff --git a/examples/config/cypress/e2e/spec-b.cy.js b/examples/config/cypress/e2e/spec-b.cy.js index 0f347af42..95a92af2d 100644 --- a/examples/config/cypress/e2e/spec-b.cy.js +++ b/examples/config/cypress/e2e/spec-b.cy.js @@ -2,7 +2,7 @@ describe('Example config B', () => { it('has baseUrl', () => { expect(Cypress.config('baseUrl')).to.equal( - 'http://localhost:3333' + 'http://localhost:3333', ) }) diff --git a/examples/custom-command/index.js b/examples/custom-command/index.js index 1698901ef..1c5b91b88 100644 --- a/examples/custom-command/index.js +++ b/examples/custom-command/index.js @@ -6,13 +6,13 @@ const fs = require('fs') cypress.run().then(results => { const summary = _.pickBy(results, (value, key) => - key.startsWith('total') + key.startsWith('total'), ) console.log(summary) fs.writeFileSync( 'results.json', JSON.stringify(summary, null, 2) + '\n', - 'utf8' + 'utf8', ) console.log('saved file results.json') }) diff --git a/examples/env/cypress.config.js b/examples/env/cypress.config.js index 127135aac..6e71d28d7 100644 --- a/examples/env/cypress.config.js +++ b/examples/env/cypress.config.js @@ -7,7 +7,7 @@ module.exports = defineConfig({ console.log('logging from cypress.config.js') console.log( 'process.env.CYPRESS_environmentName', - process.env.CYPRESS_environmentName + process.env.CYPRESS_environmentName, ) console.log('entire config.env', config.env) }, diff --git a/examples/env/cypress/e2e/spec.cy.js b/examples/env/cypress/e2e/spec.cy.js index b30fa14a7..3aeec4c89 100644 --- a/examples/env/cypress/e2e/spec.cy.js +++ b/examples/env/cypress/e2e/spec.cy.js @@ -2,23 +2,23 @@ it('has all expected env variables', () => { // environmentName is set as workflow environment variable // as a precaution we can confirm the variable was set expect(Cypress.env('environmentName'), 'environment').to.be.a( - 'string' + 'string', ) // and we can confirm its value expect( Cypress.env('environmentName'), - 'environment name is staging' + 'environment name is staging', ).to.equal('staging') // host and port are set via action's "with: env:" parameter expect(Cypress.env(), 'full env includes API info').to.deep.include( { host: 'http://api.dev.local', - apiPort: 4222 - } + apiPort: 4222, + }, ) // we can confirm that host is an url expect(Cypress.env('host'), 'host is an URL').to.match( - /^https?:\/\// + /^https?:\/\//, ) }) diff --git a/examples/env/cypress/e2e/without-env.cy.js b/examples/env/cypress/e2e/without-env.cy.js index 958880398..524ba1d19 100644 --- a/examples/env/cypress/e2e/without-env.cy.js +++ b/examples/env/cypress/e2e/without-env.cy.js @@ -2,6 +2,6 @@ it('has all expected env variables', () => { // environmentName is set as workflow environment variable expect( Cypress.env('environmentName'), - 'has environment name' + 'has environment name', ).to.equal('staging') }) diff --git a/examples/nextjs/cypress.config.js b/examples/nextjs/cypress.config.js index bf2ec8385..b518679b7 100644 --- a/examples/nextjs/cypress.config.js +++ b/examples/nextjs/cypress.config.js @@ -1,4 +1,4 @@ -const { defineConfig } = require("cypress"); +const { defineConfig } = require('cypress') module.exports = defineConfig({ fixturesFolder: false, @@ -6,4 +6,4 @@ module.exports = defineConfig({ supportFile: false, baseUrl: 'http://localhost:3000', }, -}); +}) diff --git a/examples/quiet/cypress.config.js b/examples/quiet/cypress.config.js index 1edefb61c..27cc7e187 100644 --- a/examples/quiet/cypress.config.js +++ b/examples/quiet/cypress.config.js @@ -8,7 +8,7 @@ module.exports = defineConfig({ log(message) { console.log(message) return null - } + }, }) }, supportFile: false, diff --git a/examples/quiet/cypress/e2e/spec.cy.js b/examples/quiet/cypress/e2e/spec.cy.js index c73962ba8..49c819232 100644 --- a/examples/quiet/cypress/e2e/spec.cy.js +++ b/examples/quiet/cypress/e2e/spec.cy.js @@ -13,10 +13,10 @@ it('works', () => { // log the top window's dimensions const resolution = Cypress._.pick(top, [ 'innerWidth', - 'innerHeight' + 'innerHeight', ]) cy.task( 'log', - `top window inner w, h is ${resolution.innerWidth}x${resolution.innerHeight}` + `top window inner w, h is ${resolution.innerWidth}x${resolution.innerHeight}`, ) }) diff --git a/examples/wait-on/index.js b/examples/wait-on/index.js index 5d3b62ac2..d6eea0dd0 100644 --- a/examples/wait-on/index.js +++ b/examples/wait-on/index.js @@ -9,7 +9,7 @@ const arg = require('arg') const args = arg({ '--port': Number, - '--delay': Number + '--delay': Number, }) const port = args['--port'] || 3050 const createServerAfterSeconds = args['--delay'] || 7 @@ -17,7 +17,7 @@ const createServerAfterSeconds = args['--delay'] || 7 log( 'starting the server at port %d after %d seconds', port, - createServerAfterSeconds + createServerAfterSeconds, ) setTimeout(function () { diff --git a/examples/wait-on/index2.js b/examples/wait-on/index2.js index 4ad2a38fd..c8e662b97 100644 --- a/examples/wait-on/index2.js +++ b/examples/wait-on/index2.js @@ -9,7 +9,7 @@ const arg = require('arg') const args = arg({ '--port': Number, - '--delay': Number + '--delay': Number, }) const port = args['--port'] || 3050 const errorPeriodSeconds = args['--delay'] || 10 diff --git a/examples/wait-on/index3.js b/examples/wait-on/index3.js index 7de88082a..299434370 100644 --- a/examples/wait-on/index3.js +++ b/examples/wait-on/index3.js @@ -9,7 +9,7 @@ const arg = require('arg') const args = arg({ '--port': Number, - '--delay': Number + '--delay': Number, }) const port = args['--port'] || 3050 const errorPeriodSeconds = args['--delay'] || 40 diff --git a/examples/wait-on/index4.js b/examples/wait-on/index4.js index 3b8351400..efe873580 100644 --- a/examples/wait-on/index4.js +++ b/examples/wait-on/index4.js @@ -8,7 +8,7 @@ const http = require('http') const arg = require('arg') const args = arg({ - '--port': Number + '--port': Number, }) const port = args['--port'] || 3050 diff --git a/examples/webpack/webpack.config.js b/examples/webpack/webpack.config.js index 01317c812..06f5291ab 100644 --- a/examples/webpack/webpack.config.js +++ b/examples/webpack/webpack.config.js @@ -3,12 +3,12 @@ module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', - path: path.resolve(__dirname, 'dist') + path: path.resolve(__dirname, 'dist'), }, devServer: { static: { - directory: __dirname - } + directory: __dirname, + }, }, - mode: 'development' + mode: 'development', } diff --git a/index.js b/index.js index 80a0c9252..3ddccadc2 100644 --- a/index.js +++ b/index.js @@ -438,6 +438,7 @@ const I = (x) => x const detectPrNumber = async () => { const { + GITHUB_API_URL, GITHUB_SHA, GITHUB_TOKEN, GITHUB_RUN_ID, @@ -463,7 +464,8 @@ const detectPrNumber = async () => { ) const client = new Octokit({ - auth: GITHUB_TOKEN + auth: GITHUB_TOKEN, + baseUrl: GITHUB_API_URL }) if (GITHUB_HEAD_REF) { diff --git a/package-lock.json b/package-lock.json index c7dd56352..f0c9e1c08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,14 +24,15 @@ }, "devDependencies": { "@eslint/js": "9.21.0", - "@types/node": "22.13.5", + "@stylistic/eslint-plugin": "4.2.0", + "@types/node": "22.13.9", "@vercel/ncc": "0.38.1", "eslint": "9.21.0", "eslint-plugin-cypress": "4.1.0", "globals": "16.0.0", "husky": "9.1.7", "markdown-link-check": "3.13.6", - "prettier": "3.5.2" + "prettier": "3.5.3" } }, "node_modules/@actions/cache": { @@ -617,6 +618,44 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@octokit/auth-token": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz", @@ -829,6 +868,157 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, + "node_modules/@stylistic/eslint-plugin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.2.0.tgz", + "integrity": "sha512-8hXezgz7jexGHdo5WN6JBEIPHCSFyyU4vgbxevu4YLVS5vl+sxqAAGyXSzfNDyR6xMNSH5H1x67nsXcYMOHtZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.23.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "estraverse": "^5.3.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", + "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", + "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.25.0", + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/typescript-estree": "8.25.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/ts-api-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/@stylistic/eslint-plugin/node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -890,9 +1080,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", - "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "version": "22.13.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", + "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -907,6 +1097,56 @@ "@types/node": "*" } }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", + "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/visitor-keys": "8.25.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", + "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", + "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.25.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@vercel/ncc": { "version": "0.38.1", "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", @@ -1882,6 +2122,36 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1914,6 +2184,16 @@ "fxparser": "src/cli/cli.js" } }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -2615,6 +2895,16 @@ "node": ">= 0.4" } }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -2967,9 +3257,9 @@ } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -3039,6 +3329,27 @@ "node": ">=6" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -3085,6 +3396,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", diff --git a/package.json b/package.json index 5daec9ea8..65fdea702 100644 --- a/package.json +++ b/package.json @@ -50,14 +50,15 @@ }, "devDependencies": { "@eslint/js": "9.21.0", - "@types/node": "22.13.5", + "@stylistic/eslint-plugin": "4.2.0", + "@types/node": "22.13.9", "@vercel/ncc": "0.38.1", "eslint": "9.21.0", "eslint-plugin-cypress": "4.1.0", "globals": "16.0.0", "husky": "9.1.7", "markdown-link-check": "3.13.6", - "prettier": "3.5.2" + "prettier": "3.5.3" }, "publishConfig": { "access": "public"