From 57ff8413dfd0be44fcd9bb2fae2d12e8b81b8f1a Mon Sep 17 00:00:00 2001 From: TheoryOfNekomata Date: Mon, 9 Oct 2023 21:40:25 +0800 Subject: [PATCH] Add browser testing Use Cypress to process server-side navigations. --- .../iceform-next-sandbox/src/handlers/note.ts | 4 +- .../src/pages/notes/[noteId].tsx | 34 +- .../src/pages/notes/index.tsx | 7 +- packages/iceform-next/cypress.config.ts | 26 + packages/iceform-next/cypress/e2e/form.cy.ts | 93 +++ .../iceform-next/cypress/fixtures/file.jpg | Bin 0 -> 89286 bytes .../iceform-next/cypress/support/commands.ts | 37 + packages/iceform-next/cypress/support/e2e.ts | 20 + packages/iceform-next/package.json | 5 +- .../src/client/components/Form.tsx | 4 +- .../iceform-next/src/server/action/gssp.ts | 8 +- packages/iceform-next/test/client.test.tsx | 17 - pnpm-lock.yaml | 744 +++++++++++++++++- 13 files changed, 938 insertions(+), 61 deletions(-) create mode 100644 packages/iceform-next/cypress.config.ts create mode 100644 packages/iceform-next/cypress/e2e/form.cy.ts create mode 100644 packages/iceform-next/cypress/fixtures/file.jpg create mode 100644 packages/iceform-next/cypress/support/commands.ts create mode 100644 packages/iceform-next/cypress/support/e2e.ts diff --git a/packages/iceform-next-sandbox/src/handlers/note.ts b/packages/iceform-next-sandbox/src/handlers/note.ts index bde7c10..8fee94b 100644 --- a/packages/iceform-next-sandbox/src/handlers/note.ts +++ b/packages/iceform-next-sandbox/src/handlers/note.ts @@ -203,7 +203,7 @@ const createNote = (params: NoteCollectionParams): NextApiHandler => async (req, id: newId, title, content, - image: `data:${image.type};base64,${image.toString('base64')}`, + image: image ? `data:${image.type};base64,${image.toString('base64')}` : null, })}\n`, { flag: 'a', @@ -225,7 +225,7 @@ const createNote = (params: NoteCollectionParams): NextApiHandler => async (req, id: newId, title, content, - image: `data:${image.type};base64,${image.toString('base64')}`, + image: image ? `data:${image.type};base64,${image.toString('base64')}` : null, }); }; diff --git a/packages/iceform-next-sandbox/src/pages/notes/[noteId].tsx b/packages/iceform-next-sandbox/src/pages/notes/[noteId].tsx index 3608d16..06bf6c3 100644 --- a/packages/iceform-next-sandbox/src/pages/notes/[noteId].tsx +++ b/packages/iceform-next-sandbox/src/pages/notes/[noteId].tsx @@ -11,13 +11,15 @@ export interface NotesItemPageProps { title: string; content: string; image: string; - } + }, + noscript?: boolean, } const NotesItemPage: Iceform.NextPage = ({ req, res, note, + noscript, }) => { const router = useRouter(); const body = (res.body ?? note ?? {}) as Record; @@ -33,7 +35,11 @@ const NotesItemPage: Iceform.NextPage = ({ const [responseData, setResponseData] = React.useState(); React.useEffect(() => { // response.bodyUsed might be undefined, so we use a strict comparison - if (response?.bodyUsed === false && response.status !== 204) { + if ( + response?.bodyUsed === false + && response.status !== 204 + && response.headers.get('Content-Type')?.startsWith('application/json') + ) { response?.json().then((responseData) => { setResponseData(responseData); }); @@ -52,6 +58,7 @@ const NotesItemPage: Iceform.NextPage = ({ clientMethod="put" refresh={defaultRefresh} aria-label="Edit Existing Note" + disableFetch={noscript} >
= ({ />
- {body.title + { + typeof body.image === 'string' + && body.image.length > 0 + && ( + {body.title + ) + }
- Update + Delete
- Delete + Update
@@ -112,6 +125,8 @@ const NotesItemPage: Iceform.NextPage = ({ await router.push('/notes'); }} id="delete-note-form" + aria-label="Delete Note" + disableFetch={noscript} /> @@ -121,7 +136,7 @@ const NotesItemPage: Iceform.NextPage = ({ // TODO type safety export const getServerSideProps = Iceform.destination.getServerSideProps({ fn: async (actionReq, actionRes, ctx) => { - const {noteId} = ctx.query; + const {noteId, noscript} = ctx.query; let origin: string; if (ctx.req.headers.referer) { const refererUrl = new URL(ctx.req.headers.referer as string); @@ -142,6 +157,7 @@ export const getServerSideProps = Iceform.destination.getServerSideProps({ return { props: { note, + noscript: noscript === 'true', }, }; } diff --git a/packages/iceform-next-sandbox/src/pages/notes/index.tsx b/packages/iceform-next-sandbox/src/pages/notes/index.tsx index f7788e4..049ba97 100644 --- a/packages/iceform-next-sandbox/src/pages/notes/index.tsx +++ b/packages/iceform-next-sandbox/src/pages/notes/index.tsx @@ -13,10 +13,12 @@ export interface NotesPageProps { content: string; image: string; }[]; + noscript?: boolean; } const NotesPage: NextPage = ({ notes, + noscript, }) => { const router = useRouter(); @@ -25,7 +27,7 @@ const NotesPage: NextPage = ({
{ if (response.status !== 201) { @@ -36,6 +38,7 @@ const NotesPage: NextPage = ({ }} aria-label="Create New Note" className="contents" + disableFetch={noscript} >
= ({ refresh={async () => { await router.push('/notes'); }} + disableFetch={noscript} >
@@ -156,6 +160,7 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => { return { props: { notes, + noscript: ctx.query?.noscript === 'true', }, }; } diff --git a/packages/iceform-next/cypress.config.ts b/packages/iceform-next/cypress.config.ts new file mode 100644 index 0000000..6a44da8 --- /dev/null +++ b/packages/iceform-next/cypress.config.ts @@ -0,0 +1,26 @@ +import { defineConfig } from "cypress"; +import { resolve } from 'path'; +import { mkdir, rm, writeFile } from 'fs/promises'; + +export default defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + on('task', { + async resetDb() { + console.log(resolve('../iceform-next-sandbox/.db')); + await rm('../iceform-next-sandbox/.db', { force: true, recursive: true }); + await mkdir('../iceform-next-sandbox/.db'); + await writeFile('../iceform-next-sandbox/.db/notes.jsonl', ''); + return null; + } + }); + }, + }, + component: { + devServer: { + framework: 'next', + bundler: 'webpack', + }, + }, +}); diff --git a/packages/iceform-next/cypress/e2e/form.cy.ts b/packages/iceform-next/cypress/e2e/form.cy.ts new file mode 100644 index 0000000..5839162 --- /dev/null +++ b/packages/iceform-next/cypress/e2e/form.cy.ts @@ -0,0 +1,93 @@ +describe('form', () => { + beforeEach(() => { + cy.task('resetDb'); + }); + + describe('script', () => { + it('submits form with complete data', () => { + cy.visit('http://localhost:3000/notes'); + cy.intercept('POST', '/api/notes').as('action'); + cy.get('form').should('exist').within(() => { + cy.get('input[name="title"]').type('test title'); + cy.get('input[name="image"]').selectFile('cypress/fixtures/file.jpg'); + cy.get('textarea[name="content"]').type('test content'); + cy.get('button[type="submit"]').click(); + cy.wait('@action').its('response.statusCode').should('eq', 201); + }); + + cy.url().should('match', /\/notes\/[a-z0-9-]+$/); + }); + + it('submits form with incomplete data', () => { + cy.visit('http://localhost:3000/notes'); + cy.intercept('POST', '/api/notes').as('action'); + cy.get('form').should('exist').within(() => { + cy.get('input[name="title"]').type('test title'); + cy.get('textarea[name="content"]').type('test content'); + cy.get('button[type="submit"]').click(); + cy.wait('@action').its('response.statusCode').should('eq', 201); + }); + + cy.url().should('match', /\/notes\/[a-z0-9-]+$/); + }); + + it('handles redirects', () => { + cy.visit('http://localhost:3000/notes'); + cy.intercept('DELETE', '/api/notes/*').as('action'); + cy.get('form').should('exist').within(() => { + cy.get('input[name="title"]').type('test title'); + cy.get('textarea[name="content"]').type('test content'); + cy.get('button[type="submit"]').click(); + }); + cy.get('button').contains('Delete').click(); + cy.wait('@action').its('response.statusCode').should('eq', 204); + cy.url().should('match', /\/notes$/); + }); + }); + + describe('noscript', () => { + it('submits form with complete data', () => { + cy.visit('http://localhost:3000/notes?noscript=true'); + cy.intercept('POST', '/a/notes?noscript=true').as('action'); + cy.intercept('POST', '/notes/*').as('destination'); + cy.get('form').should('exist').within(() => { + cy.get('input[name="title"]').type('test title'); + cy.get('input[name="image"]').selectFile('cypress/fixtures/file.jpg'); + cy.get('textarea[name="content"]').type('test content'); + cy.get('button[type="submit"]').click(); + }); + cy.wait('@action').its('response.statusCode').should('eq', 307); + cy.wait('@destination').its('response.statusCode').should('eq', 201); + cy.url().should('match', /\/notes\/[a-z0-9-]+\?/); + }); + + it('submits form with incomplete data', () => { + cy.visit('http://localhost:3000/notes?noscript=true'); + cy.intercept('POST', '/a/notes?noscript=true').as('action'); + cy.intercept('POST', '/notes/*').as('destination'); + cy.get('form').should('exist').within(() => { + cy.get('input[name="title"]').type('test title'); + cy.get('textarea[name="content"]').type('test content'); + cy.get('button[type="submit"]').click(); + }); + cy.wait('@action').its('response.statusCode').should('eq', 307); + cy.wait('@destination').its('response.statusCode').should('eq', 201); + cy.url().should('match', /\/notes\/[a-z0-9-]+\?/); + }); + + it('handles redirects', () => { + cy.visit('http://localhost:3000/notes?noscript=true'); + cy.get('form').should('exist').within(() => { + cy.get('input[name="title"]').type('test title'); + cy.get('textarea[name="content"]').type('test content'); + cy.get('button[type="submit"]').click(); + }); + cy.intercept('POST', '/a/notes/*').as('action'); + cy.intercept('POST', '/notes').as('destination'); + cy.get('button').contains('Delete').click(); + cy.wait('@action').its('response.statusCode').should('eq', 307); + cy.wait('@destination').its('response.statusCode').should('eq', 200); + cy.url().should('match', /\/notes$/); + }); + }); +}); diff --git a/packages/iceform-next/cypress/fixtures/file.jpg b/packages/iceform-next/cypress/fixtures/file.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80aca1c31495ce03d8bc78208a0450ba4f378891 GIT binary patch literal 89286 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 u_u#M9;jebDar@C&I=%|S*Y>Y{UiA2 +// *********************************************** +// 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 +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } \ No newline at end of file diff --git a/packages/iceform-next/cypress/support/e2e.ts b/packages/iceform-next/cypress/support/e2e.ts new file mode 100644 index 0000000..f80f74f --- /dev/null +++ b/packages/iceform-next/cypress/support/e2e.ts @@ -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') \ No newline at end of file diff --git a/packages/iceform-next/package.json b/packages/iceform-next/package.json index 9e0a8ae..d0f90a8 100644 --- a/packages/iceform-next/package.json +++ b/packages/iceform-next/package.json @@ -23,6 +23,7 @@ "@types/react": "^18.0.27", "@types/testing-library__jest-dom": "^5.14.9", "@vitest/coverage-v8": "^0.33.0", + "cypress": "^13.3.0", "eslint": "^8.35.0", "eslint-config-lxsmnsyc": "^0.5.0", "express": "^4.18.2", @@ -50,7 +51,9 @@ "watch": "pridepack watch", "start": "pridepack start", "dev": "pridepack dev", - "test": "vitest" + "test:jsdom": "vitest", + "test:dom": "cypress run", + "cypress:config": "cypress open" }, "private": false, "description": "Simple isomorphic forms for Next.", diff --git a/packages/iceform-next/src/client/components/Form.tsx b/packages/iceform-next/src/client/components/Form.tsx index 05d6fc2..341d0bf 100644 --- a/packages/iceform-next/src/client/components/Form.tsx +++ b/packages/iceform-next/src/client/components/Form.tsx @@ -70,8 +70,8 @@ export const Form = React.forwardRef(({ React.useEffect(() => { // hide server override in client - setServerMethodOverride(false); - }, []); + setServerMethodOverride(disableFetch); + }, [disableFetch]); // TODO csrf token diff --git a/packages/iceform-next/src/server/action/gssp.ts b/packages/iceform-next/src/server/action/gssp.ts index 7e28129..bdf54ec 100644 --- a/packages/iceform-next/src/server/action/gssp.ts +++ b/packages/iceform-next/src/server/action/gssp.ts @@ -125,7 +125,13 @@ export const getServerSideProps = (options: ActionWrapperOptions): GetServerSide : referer; const url = new URL(redirectDestinationRaw, 'http://example.com'); - url.searchParams.set(options.requestIdFormKey ?? REQUEST_ID_FORM_KEY, requestId); + const redirectSearchParams = Object.fromEntries(new URLSearchParams(url.search).entries()); + const searchParams = new URLSearchParams({ + ...((ctx.query ?? {}) as Record), + ...redirectSearchParams, + }); + searchParams.set(options.requestIdFormKey ?? REQUEST_ID_FORM_KEY, requestId); + url.search = searchParams.toString(); return { redirect: { diff --git a/packages/iceform-next/test/client.test.tsx b/packages/iceform-next/test/client.test.tsx index 71b1471..1bba334 100644 --- a/packages/iceform-next/test/client.test.tsx +++ b/packages/iceform-next/test/client.test.tsx @@ -41,21 +41,4 @@ describe('Form', () => { expect(onSubmit).toHaveBeenCalled(); }); - - it.skip('calls the submit handler on submit with a custom component', async () => { - // TODO - const onSubmit = vi.fn(); - - render( -
- -
, - ); - - const button = screen.getByRole('button', { name: 'Submit' }); - - await userEvent.click(button); - - expect(onSubmit).toHaveBeenCalled(); - }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73fddbc..e8ef0e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,9 @@ importers: '@vitest/coverage-v8': specifier: ^0.33.0 version: 0.33.0(vitest@0.34.1) + cypress: + specifier: ^13.3.0 + version: 13.3.0 eslint: specifier: ^8.35.0 version: 8.49.0 @@ -185,7 +188,7 @@ packages: '@babel/traverse': 7.22.19 '@babel/types': 7.22.19 convert-source-map: 1.9.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -370,7 +373,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.22.16 '@babel/types': 7.22.19 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -387,6 +390,46 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + /@cypress/request@3.0.1: + resolution: {integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==} + engines: {node: '>= 6'} + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + http-signature: 1.3.6 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + performance-now: 2.1.0 + qs: 6.10.4 + safe-buffer: 5.2.1 + tough-cookie: 4.1.3 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + dev: true + + /@cypress/xvfb@1.2.4(supports-color@8.1.1): + resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} + dependencies: + debug: 3.2.7(supports-color@8.1.1) + lodash.once: 4.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -801,7 +844,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.21.0 ignore: 5.2.4 @@ -821,7 +864,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1178,6 +1221,10 @@ packages: resolution: {integrity: sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==} dev: true + /@types/node@18.18.4: + resolution: {integrity: sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==} + dev: true + /@types/node@20.6.1: resolution: {integrity: sha512-4LcJvuXQlv4lTHnxwyHQZ3uR9Zw2j7m1C9DfuwoTFQQP4Pmu04O6IfLYgMmHoOCt0nosItLLZAH+sOrRE0Bo8g==} dev: false @@ -1227,6 +1274,14 @@ packages: '@types/node': 18.14.1 dev: true + /@types/sinonjs__fake-timers@8.1.1: + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + dev: true + + /@types/sizzle@2.3.4: + resolution: {integrity: sha512-jA2llq2zNkg8HrALI7DtWzhALcVH0l7i89yhY3iBdOz6cBPeACoFq+fkQrjHA39t1hnSFOboZ7A/AY5MMZSlag==} + dev: true + /@types/stack-utils@2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true @@ -1247,6 +1302,14 @@ packages: '@types/yargs-parser': 21.0.0 dev: true + /@types/yauzl@2.10.1: + resolution: {integrity: sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==} + requiresBuild: true + dependencies: + '@types/node': 18.18.4 + dev: true + optional: true + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.49.0)(typescript@4.9.5): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1263,7 +1326,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.49.0)(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@8.49.0)(typescript@4.9.5) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.49.0 graphemer: 1.4.0 ignore: 5.2.4 @@ -1301,7 +1364,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.49.0 typescript: 4.9.5 transitivePeerDependencies: @@ -1322,7 +1385,7 @@ packages: '@typescript-eslint/types': 6.7.0 '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.7.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.49.0 typescript: 5.2.2 transitivePeerDependencies: @@ -1357,7 +1420,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@8.49.0)(typescript@4.9.5) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.49.0 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 @@ -1386,7 +1449,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -1407,7 +1470,7 @@ packages: dependencies: '@typescript-eslint/types': 6.7.0 '@typescript-eslint/visitor-keys': 6.7.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 @@ -1552,11 +1615,19 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -1565,6 +1636,18 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1603,6 +1686,10 @@ packages: picomatch: 2.3.1 dev: false + /arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: true + /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} dev: false @@ -1694,6 +1781,17 @@ packages: is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true @@ -1707,6 +1805,15 @@ packages: /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + /asynciterator.prototype@1.0.0: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} dependencies: @@ -1716,6 +1823,11 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + /autoprefixer@10.4.15(postcss@8.4.29): resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} @@ -1736,6 +1848,14 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + dev: true + /axe-core@4.8.1: resolution: {integrity: sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==} engines: {node: '>=4'} @@ -1752,6 +1872,12 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -1765,6 +1891,14 @@ packages: readable-stream: 3.6.2 dev: true + /blob-util@2.0.2: + resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -1811,6 +1945,17 @@ packages: node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: @@ -1834,6 +1979,11 @@ packages: engines: {node: '>=8'} dev: true + /cachedir@2.4.0: + resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} + engines: {node: '>=6'} + dev: true + /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -1857,6 +2007,10 @@ packages: /caniuse-lite@1.0.30001534: resolution: {integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==} + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + /chai@4.3.8: resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} engines: {node: '>=4'} @@ -1902,6 +2056,11 @@ packages: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} dev: true + /check-more-types@2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + dev: true + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -1922,6 +2081,18 @@ packages: engines: {node: '>=8'} dev: true + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + /cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1934,6 +2105,23 @@ packages: engines: {node: '>=6'} dev: true + /cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -1981,6 +2169,10 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -1993,6 +2185,16 @@ packages: engines: {node: '>= 6'} dev: false + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + dev: true + + /common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -2041,6 +2243,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + /critters@0.0.20: resolution: {integrity: sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==} dependencies: @@ -2108,9 +2314,67 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /cypress@13.3.0: + resolution: {integrity: sha512-mpI8qcTwLGiA4zEQvTC/U1xGUezVV4V8HQCOYjlEOrVmU1etVvxOjkCXHGwrlYdZU/EPmUiWfsO3yt1o+Q2bgw==} + engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + hasBin: true + requiresBuild: true + dependencies: + '@cypress/request': 3.0.1 + '@cypress/xvfb': 1.2.4(supports-color@8.1.1) + '@types/node': 18.18.4 + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.4 + arch: 2.2.0 + blob-util: 2.0.2 + bluebird: 3.7.2 + buffer: 5.7.1 + cachedir: 2.4.0 + chalk: 4.1.2 + check-more-types: 2.24.0 + cli-cursor: 3.1.0 + cli-table3: 0.6.3 + commander: 6.2.1 + common-tags: 1.8.2 + dayjs: 1.11.10 + debug: 4.3.4(supports-color@8.1.1) + enquirer: 2.4.1 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: 4.1.1 + extract-zip: 2.0.1(supports-color@8.1.1) + figures: 3.2.0 + fs-extra: 9.1.0 + getos: 3.2.1 + is-ci: 3.0.1 + is-installed-globally: 0.4.0 + lazy-ass: 1.6.0 + listr2: 3.14.0(enquirer@2.4.1) + lodash: 4.17.21 + log-symbols: 4.1.0 + minimist: 1.2.8 + ospath: 1.2.2 + pretty-bytes: 5.6.0 + process: 0.11.10 + proxy-from-env: 1.0.0 + request-progress: 3.0.0 + semver: 7.5.4 + supports-color: 8.1.1 + tmp: 0.2.1 + untildify: 4.0.0 + yauzl: 2.10.0 + dev: true + /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + /data-urls@3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -2120,6 +2384,10 @@ packages: whatwg-url: 11.0.0 dev: true + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: true + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -2131,7 +2399,7 @@ packages: ms: 2.0.0 dev: true - /debug@3.2.7: + /debug@3.2.7(supports-color@8.1.1): resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -2140,8 +2408,9 @@ packages: optional: true dependencies: ms: 2.1.3 + supports-color: 8.1.1 - /debug@4.3.4: + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -2151,6 +2420,7 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} @@ -2327,6 +2597,13 @@ packages: engines: {node: '>=12'} dev: true + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true @@ -2346,6 +2623,12 @@ packages: engines: {node: '>= 0.8'} dev: true + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -2353,6 +2636,14 @@ packages: graceful-fs: 4.2.11 tapable: 2.2.1 + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + dev: true + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -2660,7 +2951,7 @@ packages: /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) is-core-module: 2.13.0 resolve: 1.22.5 transitivePeerDependencies: @@ -2673,7 +2964,7 @@ packages: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 8.49.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) @@ -2696,7 +2987,7 @@ packages: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) enhanced-resolve: 5.15.0 eslint: 8.49.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) @@ -2734,7 +3025,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 5.62.0(eslint@8.49.0)(typescript@4.9.5) - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) @@ -2764,7 +3055,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.49.0) @@ -2803,7 +3094,7 @@ packages: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 @@ -2838,7 +3129,7 @@ packages: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 @@ -2992,7 +3283,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -3066,6 +3357,25 @@ packages: engines: {node: '>= 0.6'} dev: true + /eventemitter2@6.4.7: + resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + dev: true + + /execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -3081,6 +3391,13 @@ packages: strip-final-newline: 2.0.0 dev: true + /executable@4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + /expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3131,6 +3448,29 @@ packages: - supports-color dev: true + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /extract-zip@2.0.1(supports-color@8.1.1): + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4(supports-color@8.1.1) + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.1 + transitivePeerDependencies: + - supports-color + dev: true + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3155,6 +3495,19 @@ packages: dependencies: reusify: 1.0.4 + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + dev: true + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3213,6 +3566,19 @@ packages: dependencies: is-callable: 1.2.7 + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -3236,6 +3602,16 @@ packages: engines: {node: '>= 0.6'} dev: true + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -3286,6 +3662,13 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3303,6 +3686,18 @@ packages: dependencies: resolve-pkg-maps: 1.0.0 + /getos@3.2.1: + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + dependencies: + async: 3.2.4 + dev: true + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + /git-config-path@2.0.0: resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} @@ -3354,6 +3749,13 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + dev: true + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3465,21 +3867,35 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true + /http-signature@1.3.6: + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.17.0 + dev: true + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true + /human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -3536,6 +3952,11 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true + /ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true + /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} @@ -3593,6 +4014,13 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.8.0 + dev: true + /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: @@ -3630,6 +4058,14 @@ packages: dependencies: is-extglob: 2.1.1 + /is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.1 + is-path-inside: 3.0.3 + dev: true + /is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} @@ -3707,6 +4143,11 @@ packages: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + /is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} @@ -3732,6 +4173,10 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + /istanbul-lib-coverage@3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} @@ -3750,7 +4195,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -3840,6 +4285,10 @@ packages: dependencies: argparse: 2.0.1 + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + /jsdom@21.1.0: resolution: {integrity: sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==} engines: {node: '>=14'} @@ -3892,9 +4341,17 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -3910,6 +4367,24 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsprim@2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -3937,6 +4412,11 @@ packages: dependencies: language-subtag-registry: 0.3.22 + /lazy-ass@1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + dev: true + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -3968,6 +4448,26 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false + /listr2@3.14.0(enquirer@2.4.1): + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + enquirer: 2.4.1 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} @@ -3993,10 +4493,22 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: true + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + /log-symbols@5.1.0: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} @@ -4005,6 +4517,16 @@ packages: is-unicode-supported: 1.3.0 dev: true + /log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4362,6 +4884,10 @@ packages: wcwidth: 1.0.1 dev: true + /ospath@1.2.2: + resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} + dev: true + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -4395,6 +4921,13 @@ packages: dependencies: p-limit: 3.1.0 + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -4460,6 +4993,14 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + dev: true + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -4470,7 +5011,6 @@ packages: /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - dev: false /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} @@ -4618,6 +5158,11 @@ packages: yargs: 17.7.2 dev: true + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -4641,14 +5186,32 @@ packages: ipaddr.js: 1.9.1 dev: true + /proxy-from-env@1.0.0: + resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} + dev: true + /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + /qs@6.10.4: + resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -4777,6 +5340,12 @@ packages: define-properties: 1.2.1 set-function-name: 2.0.1 + /request-progress@3.0.0: + resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} + dependencies: + throttleit: 1.0.0 + dev: true + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -4813,6 +5382,14 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4825,6 +5402,10 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true @@ -4844,6 +5425,12 @@ packages: dependencies: queue-microtask: 1.2.3 + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.5.0 + dev: true + /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} @@ -4982,6 +5569,24 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -4991,6 +5596,22 @@ packages: engines: {node: '>=0.10.0'} dev: true + /sshpk@1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -5161,6 +5782,12 @@ packages: dependencies: has-flag: 4.0.0 + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -5229,6 +5856,14 @@ packages: any-promise: 1.3.0 dev: false + /throttleit@1.0.0: + resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + /tinybench@2.5.1: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} dev: true @@ -5243,6 +5878,13 @@ packages: engines: {node: '>=14.0.0'} dev: true + /tmp@0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -5313,6 +5955,16 @@ packages: typescript: 4.9.5 dev: true + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5328,6 +5980,11 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -5412,11 +6069,21 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} dev: true + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /update-browserslist-db@1.0.11(browserslist@4.21.10): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -5447,6 +6114,11 @@ packages: engines: {node: '>= 0.4.0'} dev: true + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + /v8-to-istanbul@9.1.0: resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} engines: {node: '>=10.12.0'} @@ -5461,13 +6133,22 @@ packages: engines: {node: '>= 0.8'} dev: true + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + /vite-node@0.34.1(@types/node@18.14.1): resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 @@ -5562,7 +6243,7 @@ packages: acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.8 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) jsdom: 21.1.0 local-pkg: 0.4.3 magic-string: 0.30.3 @@ -5591,7 +6272,7 @@ packages: peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.49.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -5836,6 +6517,13 @@ packages: yargs-parser: 21.1.1 dev: true + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'}