diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 0000000000..0cf75df6c7 --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'cypress' + +export default defineConfig({ + e2e: { + baseUrl: 'http://localhost:10086/#/', + specPattern: 'cypress/e2e/**/*.js', + }, + viewportWidth: 414, + viewportHeight: 896, +}) diff --git a/cypress/component/Actionsheet.cy.jsx b/cypress/component/Actionsheet.cy.jsx new file mode 100644 index 0000000000..db422ff724 --- /dev/null +++ b/cypress/component/Actionsheet.cy.jsx @@ -0,0 +1,125 @@ +import React from 'react' +import { mount } from 'cypress/react18' +import { ActionSheet } from '../../src/packages/actionsheet/actionsheet' + +const menulist = [ + { + name: '选项一', + description: '选项一的描述信息', + danger: true, + }, + { + name: '选项二', + disabled: true, + }, + { + name: '必填', + name1: '选项三', + }, +] + +it('props test options ', () => { + mount( + + ) + cy.get('.nut-actionsheet-list .nut-actionsheet-item').should('have.length', 3) +}) + +it('props test cancelText ', async () => { + mount( + + ) + cy.get('.nut-actionsheet-cancel').then(($el) => { + const el = cy.wrap($el) + el.should('have.text', '关闭弹层') + }) +}) + +it('props test has value ', async () => { + mount( + + ) + cy.get('.nut-actionsheet-list .nut-actionsheet-item') + .eq(0) + .then(($el) => { + const el = cy.wrap($el) + el.should('have.text', '选项一选项一的描述信息') + el.should('have.class', 'danger') + }) +}) + +// it('props test choose item and show value', async () => { +// const choose = vi.fn() +// mount( +// +// ) +// const chooseTagEle = container.querySelectorAll( +// '.nut-actionsheet-list .nut-actionsheet-item' +// )[0] +// fireEvent.click(chooseTagEle) +// await waitFor(() => expect(choose.mock.calls[0][0].name).toEqual('选项一')) +// }) + +// it('props test disabled item has disabled classes', async () => { +// const choose = vi.fn() +// mount( +// +// ) +// const options = container.querySelectorAll( +// '.nut-actionsheet-list .nut-actionsheet-item' +// ) +// const disableItem = options[1] +// expect(disableItem).toHaveClass('nut-actionsheet-item disabled') +// }) + +// it('props test click disabled item and not call fn', async () => { +// const choose = vi.fn() +// mount( +// +// ) +// const options = container.querySelectorAll( +// '.nut-actionsheet-list .nut-actionsheet-item' +// ) +// const disableItem = options[1] +// fireEvent.click(disableItem) +// await waitFor(() => expect(choose).not.toBeCalled()) +// }) diff --git a/cypress/component/Button.cy.jsx b/cypress/component/Button.cy.jsx new file mode 100644 index 0000000000..26e5a7fc72 --- /dev/null +++ b/cypress/component/Button.cy.jsx @@ -0,0 +1,6 @@ +import React from 'react' +import { Button } from '../../src/packages/button/button' + +it('playground', () => { + cy.mount() +}) diff --git a/cypress/component/Cell.cy.jsx b/cypress/component/Cell.cy.jsx new file mode 100644 index 0000000000..20684155a8 --- /dev/null +++ b/cypress/component/Cell.cy.jsx @@ -0,0 +1,38 @@ +import React from 'react' +import { Cell } from '../../src/packages/cell/cell.taro' +import { Switch } from '../../src/packages/switch/switch.taro' + +it('prop title extra description test', () => { + cy.mount( + + ) + cy.get('.nut-cell-title').should('contain.text', '我是标题') + cy.get('.nut-cell-description').should('contain.text', '我是描述') + cy.get('.nut-cell-extra').should('contain.text', '描述文字') +}) +it('prop ', () => { + cy.mount() + cy.get('.nut-cell-extra').should('be.visible') +}) + +it('emit click event', () => { + const testClick = () => {} + cy.mount( testClick()} />) + cy.get('[data-testid="emit-click"]').click().trigger('testClick') +}) + +it('slot default test', () => { + cy.mount(自定义内容} extra="描述文字" />) + cy.root().should('contain.html', '
自定义内容
') +}) + +it('slot extra', () => { + cy.mount(} />) + cy.get('.nut-switch').should('be.visible') + // expect(container.querySelector('.nut-switch')).toBeInTheDocument() +}) diff --git a/cypress/e2e/index.cy.js b/cypress/e2e/index.cy.js new file mode 100644 index 0000000000..e924c30306 --- /dev/null +++ b/cypress/e2e/index.cy.js @@ -0,0 +1,8 @@ +import './taro/base.cy' +import './taro/layout.cy' +import './taro/nav.cy' +import './taro/dentry.cy' + +Cypress.on('uncaught:exception', (err, runnable) => { + return false +}) diff --git a/cypress/e2e/taro/base.cy.js b/cypress/e2e/taro/base.cy.js new file mode 100644 index 0000000000..bba2e8cb42 --- /dev/null +++ b/cypress/e2e/taro/base.cy.js @@ -0,0 +1,116 @@ +const getPath = (component) => `base/pages/${component}/index` + +describe('base components test', () => { + it('button successfully passes', () => { + cy.visit(getPath('button')) + cy.get('.applets-demo-header').contains('Button') + // Click Loading Test and loading icon shows + cy.contains('button', 'Click me').scrollIntoView().click() + cy.contains('button', 'Click me') + .parent() + .find('i.nut-icon-Loading') + .should('exist') + cy.wait(400) + }) + + it('cell successfully passes', () => { + cy.visit(getPath('cell')) + cy.get('.applets-demo-header').contains('Cell') + // Click Switch + cy.contains('自定义右侧区域').scrollIntoView() + cy.get('.nut-switch-button').click() + cy.get('.nut-switch-button') + .parent() + .should('have.class', 'nut-switch-close') + cy.get('.nut-switch-button').click() + cy.get('.nut-switch-button') + .parent() + .should('have.class', 'nut-switch-open') + // Jump URL + cy.contains('链接 | 分组用法').scrollIntoView() + cy.contains('/pages/index/index').click() + cy.wait(500) + cy.window().then((location) => { + expect(location.location.pathname).to.equal('/') + }) + cy.wait(400) + }) + + it('ConfigProvider successfully passes', () => { + cy.visit(getPath('configprovider')) + cy.get('.applets-demo-header').contains('ConfigProvider') + // Expected Rate + cy.get('.nut-rate') + .first() + .find('.nut-rate-item') + .eq(-2) + .find('.nut-rate-item-icon') + .click() + cy.get('.nut-rate') + .first() + .find('.nut-rate-item .nut-rate-item-icon') + .filter('.nut-rate-item-icon-disabled') + .should('have.length', 1) + cy.get('.nut-rate') + .first() + .find('.nut-rate-item') + .first() + .find('.nut-rate-item-icon') + .click() + cy.get('.nut-rate') + .first() + .find('.nut-rate-item .nut-rate-item-icon') + .filter('.nut-rate-item-icon-disabled') + .should('have.length', 4) + cy.wait(400) + }) + + it('Icon successfully passes', () => { + cy.visit(getPath('icon')) + cy.get('.applets-demo-header').contains('Icon') + // V12 Icon Click Test + cy.contains('V12 Icon').scrollIntoView() + cy.get('i.nut-icon-thumbs-up').click() + cy.contains('') + cy.get( + 'i.nut-icon-heart-fill.nut-icon-am-breathe.nut-icon-am-infinite' + ).click() + cy.contains( + `` + ) + cy.wait(400) + }) + it('Image successfully passes', () => { + cy.visit(getPath('image')) + cy.get('.applets-demo-header').contains('Image') + cy.wait(500) + // Lazy Load Scroll + cy.contains('图片懒加载').scrollIntoView() + cy.get('.taro-scroll-view__scroll-y .taro-img__mode-scaletofill') + .filter('[src]') + .should('have.length', 3) + cy.get('.taro-scroll-view__scroll-y').scrollTo('bottom', { duration: 1000 }) + cy.get('.taro-scroll-view__scroll-y .taro-img__mode-scaletofill') + .filter('[src]') + .should('have.length.greaterThan', 3) + cy.wait(400) + }) + it('Overlay successfully passes', () => { + cy.visit(getPath('overlay')) + cy.get('.applets-demo-header').contains('Overlay') + // Display Overlay + cy.contains('嵌套内容').scrollIntoView() + cy.get('.nut-button-success').click() + cy.contains('这里是正文') + cy.contains('这里是正文') + .parent() + .parent() + .should('have.class', 'nut-overlay') + .click() + cy.contains('这里是正文').should('not.exist') + cy.get('nut-overlay').should('not.exist') + }) +}) +Cypress.on('uncaught:exception', (err, runnable) => { + return false +}) diff --git a/cypress/e2e/taro/dentry.cy.js b/cypress/e2e/taro/dentry.cy.js new file mode 100644 index 0000000000..5d77a2fccd --- /dev/null +++ b/cypress/e2e/taro/dentry.cy.js @@ -0,0 +1,45 @@ +const componentTest = (comName, fn) => { + const dentryArr = [ + 'Address', + 'Calendar', + 'CalendarCard', + 'Cascader', + 'Checkbox', + 'DatePicker', + 'Form', + 'Input', + 'InputNumber', + ] + const getPath = (component) => + `${dentryArr.includes(component) ? 'dentry' : 'dentry1'}/pages/${component.toLowerCase()}/index` + + it(`${comName} successfully passes`, () => { + cy.visit(getPath(comName)) + cy.get('.applets-demo-header').contains(comName) + cy.wait(400) + fn() + }) +} +describe('layout components test', () => { + componentTest('Address', () => {}) + componentTest('Calendar', () => {}) + componentTest('CalendarCard', () => {}) + componentTest('Cascader', () => {}) + componentTest('Checkbox', () => {}) + componentTest('DatePicker', () => {}) + componentTest('Form', () => {}) + componentTest('Input', () => {}) + componentTest('InputNumber', () => {}) + componentTest('Menu', () => {}) + componentTest('NumberKeyboard', () => {}) + componentTest('Picker', () => {}) + componentTest('Radio', () => {}) + componentTest('Range', () => {}) + componentTest('Rate', () => {}) + componentTest('SearchBar', () => {}) + componentTest('ShortPassword', () => {}) + componentTest('Signature', () => {}) + componentTest('Switch', () => {}) + componentTest('TextArea', () => {}) + componentTest('Uploader', () => {}) +}) diff --git a/cypress/e2e/taro/layout.cy.js b/cypress/e2e/taro/layout.cy.js new file mode 100644 index 0000000000..99c20b4cc6 --- /dev/null +++ b/cypress/e2e/taro/layout.cy.js @@ -0,0 +1,78 @@ +const getPath = (component) => `layout/pages/${component}/index` + +describe('layout components test', () => { + it('divider successfully passes', () => { + cy.visit(getPath('divider')) + cy.get('.applets-demo-header').contains('Divider') + // Click URL + cy.contains('垂直分割线').scrollIntoView() + cy.contains('链接').click() + cy.window().then((win) => { + const currentPath = win.location.pathname + expect(currentPath).to.equal('/') + }) + cy.wait(400) + }) + + it('grid successfully passes', () => { + cy.visit(getPath('grid')) + cy.get('.applets-demo-header').contains('Grid') + // GridItem Click + cy.contains('点击子项事件').scrollIntoView() + cy.get('h2').then((element) => { + if (element.has('点击子项事件')) { + cy.wrap(element) + .next() + .then((nextElement) => { + // 在这里对下一个节点进行操作 + nextElement.find('.nut-grid-item').eq(-2).click() + cy.contains('点击了文字,第2个') + }) + } + }) + cy.wait(400) + }) + + it('layout successfully passes', () => { + cy.visit(getPath('layout')) + cy.get('.applets-demo-header').contains('Layout') + // layout test + cy.contains('span:24').parent().children().should('have.length', 1) + cy.contains('span:12').parent().parent().children().should('have.length', 2) + cy.contains('span:8').parent().parent().children().should('have.length', 3) + cy.contains('span:6').parent().parent().children().should('have.length', 4) + cy.wait(400) + }) + + it('space successfully passes', () => { + cy.visit(getPath('space')) + cy.get('.applets-demo-header').contains('Space') + // Space Test + cy.contains('垂直') + .next() + .find('.nut-space') + .should('have.class', 'nut-space-vertical') + cy.wait(400) + }) + + it('sticky successfully passes', () => { + cy.visit(getPath('sticky')) + cy.get('.applets-demo-header').contains('Sticky') + // Scroll Sticky + cy.get('.demo').scrollTo('bottom') + cy.contains('距离顶部120px').parent().should('have.css', 'top', '120px') + cy.get('.demo').scrollTo('top') + cy.contains('距离底部0px').parent().should('have.css', 'bottom', '0px') + cy.wait(400) + }) + + it('safearea successfully passes', () => { + cy.visit(getPath('safearea')) + cy.get('.applets-demo-header').contains('SafeArea') + // SafeArea Class + cy.get('.demo').scrollTo('bottom') + cy.get('.nut-safe-area').should('exist') + cy.get('.nut-safe-area-position-bottom').should('exist') + cy.wait(400) + }) +}) diff --git a/cypress/e2e/taro/nav.cy.js b/cypress/e2e/taro/nav.cy.js new file mode 100644 index 0000000000..67e198c926 --- /dev/null +++ b/cypress/e2e/taro/nav.cy.js @@ -0,0 +1,55 @@ +const getPath = (component) => `nav/pages/${component}/index` + +describe('layout components test', () => { + it('backtop successfully passes', () => { + cy.visit(getPath('backtop')) + cy.get('.applets-demo-header').contains('BackTop') + cy.contains('顶部').should('not.be.visible') + cy.contains('我是测试数据20').scrollIntoView() + cy.contains('顶部').should('be.visible') + cy.contains('顶部').click() + cy.contains('我是测试数据20').should('not.be.visible') + cy.contains('我是测试数据1').should('be.visible') + cy.contains('顶部').should('not.be.visible') + cy.wait(400) + }) + it('elevator successfully passes', () => { + cy.visit(getPath('elevator')) + cy.get('.applets-demo-header').contains('Elevator') + cy.contains('h2', '自定义内容').scrollIntoView() + cy.get('.nut-elevator-list-inner.taro-scroll-view__scroll-y') + .eq(4) + .scrollTo('bottom') + .then(() => { + cy.get('.nut-elevator-list-inner.taro-scroll-view__scroll-y') + .eq(4) + .contains('河南') + .should('be.visible') + }) + cy.wait(400) + }) + it('fixednav successfully passes', () => { + cy.visit(getPath('fixednav')) + cy.get('.applets-demo-header').contains('FixedNav') + cy.get('.nut-fixednav-btn').contains('左侧展开').click() + cy.get('.nut-fixednav-btn').contains('快速导航').click() + cy.get('.nut-fixednav-btn').contains('自定义关').click() + cy.wait(400) + }) + it('navbar successfully passes', () => { + cy.visit(getPath('navbar')) + cy.wait(400) + }) + it('sidenavbar successfully passes', () => { + cy.visit(getPath('sidenavbar')) + cy.wait(400) + }) + it('tabbar successfully passes', () => { + cy.visit(getPath('tabbar')) + cy.wait(400) + }) + it('tabs successfully passes', () => { + cy.visit(getPath('tabs')) + cy.wait(400) + }) +}) diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json new file mode 100644 index 0000000000..02e4254378 --- /dev/null +++ b/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/cypress/screenshots/index.cy.js/layout components test -- Switch successfully passes (failed).png b/cypress/screenshots/index.cy.js/layout components test -- Switch successfully passes (failed).png new file mode 100644 index 0000000000..26614dae96 Binary files /dev/null and b/cypress/screenshots/index.cy.js/layout components test -- Switch successfully passes (failed).png differ diff --git a/cypress/screenshots/taro/dentry.cy.js/layout components test -- Switch successfully passes (failed).png b/cypress/screenshots/taro/dentry.cy.js/layout components test -- Switch successfully passes (failed).png new file mode 100644 index 0000000000..c264aa48a0 Binary files /dev/null and b/cypress/screenshots/taro/dentry.cy.js/layout components test -- Switch successfully passes (failed).png differ diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts new file mode 100644 index 0000000000..95857aea4c --- /dev/null +++ b/cypress/support/commands.ts @@ -0,0 +1,37 @@ +/// +// *********************************************** +// 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 +// } +// } +// } diff --git a/cypress/support/component-index.html b/cypress/support/component-index.html new file mode 100644 index 0000000000..ac6e79fd83 --- /dev/null +++ b/cypress/support/component-index.html @@ -0,0 +1,12 @@ + + + + + + + Components App + + +
+ + \ No newline at end of file diff --git a/cypress/support/component.ts b/cypress/support/component.ts new file mode 100644 index 0000000000..abfef4167b --- /dev/null +++ b/cypress/support/component.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-namespace */ +// *********************************************************** +// This example support/component.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') + +import { mount } from 'cypress/react18' +import '../../src/packages/nutui.react.taro.scss' +// Augment the Cypress namespace to include type definitions for +// your custom command. +// Alternatively, can be defined in cypress/support/component.d.ts +// with a at the top of your spec. +declare global { + namespace Cypress { + interface Chainable { + mount: typeof mount + } + } +} + +Cypress.Commands.add('mount', mount) + +// Example use: +// cy.mount() diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts new file mode 100644 index 0000000000..ed5730de11 --- /dev/null +++ b/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') diff --git a/package.json b/package.json index 6582e9a49d..ea8bbe8302 100644 --- a/package.json +++ b/package.json @@ -71,8 +71,10 @@ "lint:fix": "eslint --fix ./src/packages", "publish:beta": "npm publish --tag beta", "prepare": "husky && npm run generate:file && npm run generate:file:taro && npm run generate:file:taro:pages", - "test": "vitest --coverage", + "test:unit": "vitest --coverage", "test:ui": "vitest --ui --coverage", + "test:auto": "npm run dev:taro:h5 & cypress open", + "test:auto:run": "npm run dev:taro:h5 & cypress run", "generate:file:taro": "node scripts/taro/generate-nutui-taro.js", "checked:taro": "npm run generate:file:taro && tsc --project ./tsconfig.taro.json --noEmit", "generate:file:taro:pages": "node scripts/taro/generate-taro-pages.js", @@ -118,7 +120,6 @@ "@commitlint/cli": "^19.0.3", "@commitlint/config-conventional": "^19.0.3", "@loadable/component": "^5.16.3", - "prettier-markdown-table": "^1.0.2", "@mdx-js/mdx": "^3.0.1", "@mdx-js/react": "^3.0.1", "@mdx-js/rollup": "^3.0.1", @@ -154,6 +155,7 @@ "autoprefixer": "^10.4.17", "axios": "^1.6.7", "babel-plugin-react-scoped-css": "^1.1.1", + "cypress": "^13.15.0", "eslint": "^8.56.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^9.1.0", @@ -184,6 +186,7 @@ "postcss-rtlcss": "^5.1.0", "postcss-scss": "^4.0.9", "prettier": "^3.2.5", + "prettier-markdown-table": "^1.0.2", "react": "^18.2.0", "react-color": "^2.19.3", "react-dom": "^18.2.0", diff --git a/packages/nutui-taro-demo/config/index.js b/packages/nutui-taro-demo/config/index.js index a8fa6203d0..71f84cfb99 100644 --- a/packages/nutui-taro-demo/config/index.js +++ b/packages/nutui-taro-demo/config/index.js @@ -104,6 +104,11 @@ const config = { // 自定义 Webpack 配置 devServer: {}, }, + output: { + environment: { + asyncFunction: true + } + } }, isWatch: true, } diff --git a/packages/nutui-taro-demo/src/index.html b/packages/nutui-taro-demo/src/index.html index ec38302abe..58aa48b9b8 100644 --- a/packages/nutui-taro-demo/src/index.html +++ b/packages/nutui-taro-demo/src/index.html @@ -9,6 +9,9 @@ + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b085872b9..f06333e148 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -108,7 +108,7 @@ importers: version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41)(react@18.3.1) '@tarojs/plugin-platform-alipay': specifier: 3.6.22 - version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41)(react@18.3.1) + version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41) '@tarojs/plugin-platform-weapp': specifier: 3.6.22 version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41) @@ -184,6 +184,9 @@ importers: babel-plugin-react-scoped-css: specifier: ^1.1.1 version: 1.1.1(@babel/core@7.25.2) + cypress: + specifier: ^13.15.0 + version: 13.15.0 eslint: specifier: ^8.56.0 version: 8.57.0 @@ -406,7 +409,7 @@ importers: version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41) '@tarojs/plugin-platform-alipay': specifier: 3.6.22 - version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41)(react@18.3.1) + version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41) '@tarojs/plugin-platform-h5': specifier: 3.6.22 version: 3.6.22(@types/react@18.3.4)(postcss@8.4.41) @@ -1286,6 +1289,10 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + '@commitlint/cli@19.4.0': resolution: {integrity: sha512-sJX4J9UioVwZHq7JWM9tjT5bgWYaIN3rC4FP7YwfEwBYiIO+wMyRttRvQLNkow0vCdM0D67r9NEWU0Ui03I4Eg==} engines: {node: '>=v18'} @@ -1382,6 +1389,13 @@ packages: peerDependencies: postcss-selector-parser: ^6.1.0 + '@cypress/request@3.0.5': + resolution: {integrity: sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA==} + engines: {node: '>= 6'} + + '@cypress/xvfb@1.2.4': + resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} + '@devexpress/error-stack-parser@2.0.6': resolution: {integrity: sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==} @@ -2877,6 +2891,12 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@types/sinonjs__fake-timers@8.1.1': + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + + '@types/sizzle@2.3.8': + resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} + '@types/sockjs@0.3.36': resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} @@ -2911,6 +2931,9 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript-eslint/eslint-plugin@7.18.0': resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -3248,6 +3271,10 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -3292,6 +3319,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + archive-type@4.0.0: resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} engines: {node: '>=4'} @@ -3426,6 +3456,10 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + atob@2.1.2: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} @@ -3588,6 +3622,9 @@ packages: bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + blob-util@2.0.2: + resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -3687,6 +3724,10 @@ packages: resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} engines: {node: '>=8'} + cachedir@2.4.0: + resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} + engines: {node: '>=6'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -3800,6 +3841,10 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + check-more-types@2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3862,6 +3907,14 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -3952,6 +4005,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -3963,6 +4020,10 @@ packages: common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -4412,6 +4473,11 @@ packages: cuint@0.2.2: resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==} + cypress@13.15.0: + resolution: {integrity: sha512-53aO7PwOfi604qzOkCSzNlWquCynLlKE/rmmpSPcziRH6LNfaDUAklQT6WJIsD8ywxlIy+uVZsnTMCCQVd2kTw==} + engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + hasBin: true + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -4447,6 +4513,9 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -4804,6 +4873,10 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -5243,6 +5316,9 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + eventemitter2@6.4.7: + resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -5257,6 +5333,10 @@ packages: resolution: {integrity: sha512-QPexBaNjeOjyiZ47q0FCukTO1kX3F+HMM0EWpnxXddcr3MZtElILMkz9Y38nmSZtp03+ZiSRMffrKWBPOIoSIg==} engines: {node: '>=0.12'} + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -5265,6 +5345,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + executable@4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -5299,6 +5383,11 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} @@ -5526,6 +5615,10 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + fs-mkdirp-stream@2.0.1: resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} engines: {node: '>=10.13.0'} @@ -5613,6 +5706,9 @@ packages: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} engines: {node: '>= 14'} + getos@3.2.1: + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} @@ -5948,6 +6044,10 @@ packages: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} + http-signature@1.4.0: + resolution: {integrity: sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==} + engines: {node: '>=0.10'} + http2-wrapper@2.2.1: resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} @@ -5960,6 +6060,10 @@ packages: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -6771,6 +6875,10 @@ packages: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} + jsprim@2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -6821,6 +6929,10 @@ packages: resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} engines: {node: '>=18'} + lazy-ass@1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + lead@4.0.0: resolution: {integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==} engines: {node: '>=10.13.0'} @@ -6936,6 +7048,15 @@ packages: engines: {node: '>=18.12.0'} hasBin: true + listr2@3.14.0: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + listr2@8.2.4: resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} engines: {node: '>=18.0.0'} @@ -7019,6 +7140,9 @@ packages: lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.snakecase@4.1.1: resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} @@ -7048,6 +7172,10 @@ packages: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -7822,6 +7950,9 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + ospath@1.2.2: + resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} + p-cancelable@0.4.1: resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} engines: {node: '>=4'} @@ -7878,6 +8009,10 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} @@ -8467,6 +8602,9 @@ packages: resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} engines: {node: '>= 14'} + proxy-from-env@1.0.0: + resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -8505,6 +8643,10 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} @@ -8767,6 +8909,9 @@ packages: resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} engines: {node: '>= 10'} + request-progress@3.0.0: + resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} + request@2.88.2: resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} engines: {node: '>= 6'} @@ -9124,6 +9269,10 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -9541,6 +9690,9 @@ packages: throat@6.0.2: resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} + throttleit@1.0.1: + resolution: {integrity: sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==} + through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -9579,6 +9731,10 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -9872,6 +10028,10 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -10431,7 +10591,7 @@ snapshots: '@babel/traverse': 7.25.4 '@babel/types': 7.25.4 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -10497,7 +10657,7 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -11378,7 +11538,7 @@ snapshots: '@babel/parser': 7.25.4 '@babel/template': 7.25.0 '@babel/types': 7.25.4 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11391,6 +11551,9 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@colors/colors@1.5.0': + optional: true + '@commitlint/cli@19.4.0(@types/node@20.16.1)(typescript@5.5.4)': dependencies: '@commitlint/format': 19.3.0 @@ -11521,6 +11684,34 @@ snapshots: dependencies: postcss-selector-parser: 6.1.2 + '@cypress/request@3.0.5': + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.1 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 4.0.0 + http-signature: 1.4.0 + 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.13.0 + safe-buffer: 5.2.1 + tough-cookie: 4.1.4 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + + '@cypress/xvfb@1.2.4(supports-color@8.1.1)': + dependencies: + debug: 3.2.7(supports-color@8.1.1) + lodash.once: 4.1.1 + transitivePeerDependencies: + - supports-color + '@devexpress/error-stack-parser@2.0.6': dependencies: stackframe: 1.3.4 @@ -11683,7 +11874,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -11711,7 +11902,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -12787,7 +12978,7 @@ snapshots: - supports-color - vue - '@tarojs/plugin-platform-alipay@3.6.22(@types/react@18.3.4)(postcss@8.4.41)(react@18.3.1)': + '@tarojs/plugin-platform-alipay@3.6.22(@types/react@18.3.4)(postcss@8.4.41)': dependencies: '@tarojs/components': 3.6.22(@types/react@18.3.4)(postcss@8.4.41)(react@18.3.1) '@tarojs/service': 3.6.22(@types/react@18.3.4)(postcss@8.4.41) @@ -12799,7 +12990,6 @@ snapshots: - '@types/webpack' - '@types/webpack-dev-server' - postcss - - react - supports-color - vue @@ -13028,7 +13218,7 @@ snapshots: dependencies: '@parcel/css': 1.14.0 '@tarojs/helper': 3.6.22 - '@tarojs/plugin-platform-alipay': 3.6.22(@types/react@18.3.4)(postcss@8.4.41)(react@18.3.1) + '@tarojs/plugin-platform-alipay': 3.6.22(@types/react@18.3.4)(postcss@8.4.41) '@tarojs/plugin-platform-jd': 3.6.22(@types/react@18.3.4)(postcss@8.4.41) '@tarojs/plugin-platform-qq': 3.6.22(@types/react@18.3.4)(postcss@8.4.41) '@tarojs/plugin-platform-swan': 3.6.22(@types/react@18.3.4)(postcss@8.4.41) @@ -13486,6 +13676,10 @@ snapshots: '@types/node': 20.16.1 '@types/send': 0.17.4 + '@types/sinonjs__fake-timers@8.1.1': {} + + '@types/sizzle@2.3.8': {} + '@types/sockjs@0.3.36': dependencies: '@types/node': 20.16.1 @@ -13518,6 +13712,11 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 20.16.1 + optional: true + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 @@ -13542,7 +13741,7 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) eslint: 8.57.0 optionalDependencies: typescript: 5.5.4 @@ -13555,7 +13754,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) eslint: 8.57.0 optionalDependencies: typescript: 5.5.4 @@ -13576,7 +13775,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -13592,7 +13791,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -13607,7 +13806,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -13663,7 +13862,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -13978,13 +14177,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.1: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -14046,6 +14245,8 @@ snapshots: dependencies: string-width: 4.2.3 + ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -14079,6 +14280,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + arch@2.2.0: {} + archive-type@4.0.0: dependencies: file-type: 4.4.0 @@ -14220,6 +14423,8 @@ snapshots: asynckit@0.4.0: {} + at-least-node@1.0.0: {} + atob@2.1.2: {} autoprefixer@10.4.20(postcss@8.4.41): @@ -14459,6 +14664,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + blob-util@2.0.2: {} + bluebird@3.7.2: {} body-parser@1.20.2: @@ -14602,6 +14809,8 @@ snapshots: normalize-url: 4.5.1 responselike: 1.0.2 + cachedir@2.4.0: {} + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -14735,6 +14944,8 @@ snapshots: check-error@2.1.1: {} + check-more-types@2.24.0: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -14794,6 +15005,17 @@ snapshots: cli-spinners@2.9.2: {} + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -14871,12 +15093,16 @@ snapshots: commander@4.1.1: {} + commander@6.2.1: {} + commander@7.2.0: {} commander@8.3.0: {} common-path-prefix@3.0.0: {} + common-tags@1.8.2: {} + commondir@1.0.1: {} compare-func@2.0.0: @@ -15214,6 +15440,51 @@ snapshots: cuint@0.2.2: {} + cypress@13.15.0: + dependencies: + '@cypress/request': 3.0.5 + '@cypress/xvfb': 1.2.4(supports-color@8.1.1) + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.8 + 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.5 + commander: 6.2.1 + common-tags: 1.8.2 + dayjs: 1.11.13 + debug: 4.3.6(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.6.3 + supports-color: 8.1.1 + tmp: 0.2.3 + untildify: 4.0.0 + yauzl: 2.10.0 + damerau-levenshtein@1.0.8: {} dargs@8.1.0: {} @@ -15250,6 +15521,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 + dayjs@1.11.13: {} + de-indent@1.0.2: {} debug@2.6.9: @@ -15260,17 +15533,21 @@ snapshots: dependencies: ms: 2.0.0 - debug@3.2.7: + debug@3.2.7(supports-color@8.1.1): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 debug@4.3.4: dependencies: ms: 2.1.2 - debug@4.3.6: + debug@4.3.6(supports-color@8.1.1): dependencies: ms: 2.1.2 + optionalDependencies: + supports-color: 8.1.1 decamelize-keys@1.1.1: dependencies: @@ -15428,7 +15705,7 @@ snapshots: callsite: 1.0.0 camelcase: 6.3.0 cosmiconfig: 7.1.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) deps-regex: 0.2.0 findup-sync: 5.0.0 ignore: 5.3.2 @@ -15471,7 +15748,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -15618,6 +15895,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + entities@2.2.0: {} entities@4.5.0: {} @@ -15955,7 +16237,7 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: @@ -15963,7 +16245,7 @@ snapshots: eslint-module-utils@2.8.2(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: - debug: 3.2.7 + debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 @@ -15977,7 +16259,7 @@ snapshots: array.prototype.findlastindex: 1.2.5 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.57.0 eslint-import-resolver-node: 0.3.9 @@ -16093,7 +16375,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -16138,7 +16420,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -16224,6 +16506,8 @@ snapshots: event-target-shim@5.0.1: {} + eventemitter2@6.4.7: {} + eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -16239,6 +16523,18 @@ snapshots: path-key: 1.0.0 strip-eof: 1.0.0 + execa@4.1.0: + 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 + execa@5.1.1: dependencies: cross-spawn: 7.0.3 @@ -16263,6 +16559,10 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + executable@4.1.1: + dependencies: + pify: 2.3.0 + exit@0.1.2: {} expand-tilde@2.0.2: @@ -16332,6 +16632,16 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + extract-zip@2.0.1(supports-color@8.1.1): + dependencies: + debug: 4.3.6(supports-color@8.1.1) + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + extsprintf@1.3.0: {} fast-deep-equal@3.1.3: {} @@ -16562,6 +16872,13 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-mkdirp-stream@2.0.1: dependencies: graceful-fs: 4.2.11 @@ -16640,11 +16957,15 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) fs-extra: 11.2.0 transitivePeerDependencies: - supports-color + getos@3.2.1: + dependencies: + async: 3.2.6 + getpass@0.1.7: dependencies: assert-plus: 1.0.0 @@ -17096,14 +17417,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17133,6 +17454,12 @@ snapshots: jsprim: 1.4.2 sshpk: 1.18.0 + http-signature@1.4.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.18.0 + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 @@ -17141,17 +17468,19 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color + human-signals@1.1.1: {} + human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -17622,7 +17951,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -17631,7 +17960,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -18145,6 +18474,13 @@ snapshots: json-schema: 0.4.0 verror: 1.10.0 + jsprim@2.0.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 @@ -18190,6 +18526,8 @@ snapshots: dependencies: package-json: 10.0.1 + lazy-ass@1.6.0: {} + lead@4.0.0: {} less-loader@10.2.0(less@4.2.0)(webpack@5.93.0(@swc/core@1.3.96)): @@ -18293,7 +18631,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) execa: 8.0.1 lilconfig: 3.1.2 listr2: 8.2.4 @@ -18304,6 +18642,19 @@ snapshots: transitivePeerDependencies: - supports-color + listr2@3.14.0(enquirer@2.4.1): + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.4.1 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + optionalDependencies: + enquirer: 2.4.1 + listr2@8.2.4: dependencies: cli-truncate: 4.0.0 @@ -18384,6 +18735,8 @@ snapshots: lodash.mergewith@4.6.2: {} + lodash.once@4.1.1: {} + lodash.snakecase@4.1.1: {} lodash.startcase@4.4.0: {} @@ -18408,6 +18761,13 @@ snapshots: chalk: 5.3.0 is-unicode-supported: 1.3.0 + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + log-update@6.1.0: dependencies: ansi-escapes: 7.0.0 @@ -19075,7 +19435,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -19083,7 +19443,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -19530,6 +19890,8 @@ snapshots: os-tmpdir@1.0.2: {} + ospath@1.2.2: {} + p-cancelable@0.4.1: {} p-cancelable@1.1.0: {} @@ -19576,6 +19938,10 @@ snapshots: dependencies: aggregate-error: 3.1.0 + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 @@ -19591,7 +19957,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 @@ -20146,7 +20512,7 @@ snapshots: proxy-agent@6.4.0: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 7.18.3 @@ -20156,6 +20522,8 @@ snapshots: transitivePeerDependencies: - supports-color + proxy-from-env@1.0.0: {} + proxy-from-env@1.1.0: {} prr@1.0.1: @@ -20188,6 +20556,10 @@ snapshots: dependencies: side-channel: 1.0.6 + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + qs@6.5.3: {} query-string@5.1.1: @@ -20228,7 +20600,7 @@ snapshots: rc-config-loader@4.1.3: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) js-yaml: 4.1.0 json5: 2.2.3 require-from-string: 2.0.2 @@ -20572,6 +20944,10 @@ snapshots: replace-ext@2.0.0: {} + request-progress@3.0.0: + dependencies: + throttleit: 1.0.1 + request@2.88.2: dependencies: aws-sign2: 0.7.0 @@ -20990,6 +21366,12 @@ snapshots: slash@5.1.0: {} + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -21022,7 +21404,7 @@ snapshots: socks-proxy-agent@8.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -21089,7 +21471,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -21100,7 +21482,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -21318,7 +21700,7 @@ snapshots: cosmiconfig: 9.0.0(typescript@5.5.4) css-functions-list: 3.2.2 css-tree: 2.3.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 file-entry-cache: 9.0.0 @@ -21500,6 +21882,8 @@ snapshots: throat@6.0.2: {} + throttleit@1.0.1: {} + through@2.3.8: {} thunky@1.1.0: {} @@ -21524,6 +21908,8 @@ snapshots: dependencies: os-tmpdir: 1.0.2 + tmp@0.2.3: {} + tmpl@1.0.5: {} to-buffer@1.1.1: {} @@ -21808,6 +22194,8 @@ snapshots: unpipe@1.0.0: {} + untildify@4.0.0: {} + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 @@ -21842,7 +22230,7 @@ snapshots: is-npm: 6.0.0 latest-version: 9.0.0 pupa: 3.1.0 - semver: 7.6.2 + semver: 7.6.3 semver-diff: 4.0.0 xdg-basedir: 5.1.0 @@ -21974,7 +22362,7 @@ snapshots: vite-node@2.0.5(@types/node@20.16.1)(less@4.2.0)(lightningcss@1.26.0)(sass@1.77.8)(stylus@0.55.0)(terser@5.31.6): dependencies: cac: 6.7.14 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) pathe: 1.1.2 tinyrainbow: 1.2.0 vite: 5.4.2(@types/node@20.16.1)(less@4.2.0)(lightningcss@1.26.0)(sass@1.77.8)(stylus@0.55.0)(terser@5.31.6) @@ -21996,7 +22384,7 @@ snapshots: '@volar/typescript': 2.4.4 '@vue/language-core': 2.1.6(typescript@5.5.4) compare-versions: 6.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) kolorist: 1.8.0 local-pkg: 0.5.0 magic-string: 0.30.11 @@ -22037,7 +22425,7 @@ snapshots: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 chai: 5.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) execa: 8.0.1 magic-string: 0.30.11 pathe: 1.1.2