From 9b329f831565b1c7b613c25d6c4f6181b4c65936 Mon Sep 17 00:00:00 2001 From: Johan Bisse Mattsson Date: Wed, 15 Nov 2023 12:00:53 +0100 Subject: [PATCH] Wip bump and migrate tests --- service/vue3-client/.eslintrc.cjs | 2 +- service/vue3-client/.yarnrc.yml | 1 + service/vue3-client/cypress.config.ts | 2 +- service/vue3-client/cypress/plugins/index.js | 24 + .../vue3-client/cypress/specs/.eslintrc.js | 11 + .../cypress/specs/bibliometrics.js | 52 +- service/vue3-client/cypress/support/index.ts | 4 + service/vue3-client/package.json | 4 +- service/vue3-client/tests/e2e/.eslintrc.js | 5 + .../vue3-client/tests/e2e/1_mainnav.spec.js | 72 + .../tests/e2e/bibliometrics.spec.js | 373 + .../vue3-client/tests/e2e/classify.spec.js | 63 + .../vue3-client/tests/e2e/datastatus.spec.js | 132 + service/vue3-client/tests/e2e/process.spec.js | 329 + .../tests/unit/shared/CheckboxToggle.spec.js | 59 + .../tests/unit/shared/ChevronToggle.spec.js | 61 + .../tests/unit/shared/ExportButtons.spec.js | 60 + .../tests/unit/shared/HelpBubble.spec.js | 74 + .../tests/unit/shared/MainFooter.spec.js | 33 + .../tests/unit/shared/MainHeader.spec.js | 43 + .../tests/unit/shared/MainNav.spec.js | 41 + .../unit/shared/PaginationComponent.spec.js | 68 + .../tests/unit/shared/PreviewTable.spec.js | 38 + .../tests/unit/shared/SelectBase.spec.js | 53 + .../tests/unit/shared/SelectOutput.spec.js | 161 + .../tests/unit/shared/SelectSource.spec.js | 96 + .../tests/unit/shared/SelectSubject.spec.js | 119 + .../tests/unit/shared/TabMenu.spec.js | 59 + .../unit/shared/TableDataBoolean.spec.js | 39 + .../tests/unit/shared/TableDataId.spec.js | 74 + .../tests/unit/shared/TableDataLink.spec.js | 57 + .../tests/unit/shared/TableDataList.spec.js | 65 + .../unit/shared/TableDataMultiLine.spec.js | 38 + .../tests/unit/shared/YearPicker.spec.js | 57 + .../tests/unit/views/Bibliometrics.spec.js | 32 + .../tests/unit/views/Classify.spec.js | 42 + .../tests/unit/views/Datastatus.spec.js | 98 + .../tests/unit/views/Process.spec.js | 32 + service/vue3-client/yarn.lock | 6295 +++++++++++++++++ 39 files changed, 8842 insertions(+), 26 deletions(-) create mode 100644 service/vue3-client/.yarnrc.yml create mode 100644 service/vue3-client/cypress/plugins/index.js create mode 100644 service/vue3-client/cypress/specs/.eslintrc.js create mode 100644 service/vue3-client/cypress/support/index.ts create mode 100644 service/vue3-client/tests/e2e/.eslintrc.js create mode 100644 service/vue3-client/tests/e2e/1_mainnav.spec.js create mode 100644 service/vue3-client/tests/e2e/bibliometrics.spec.js create mode 100644 service/vue3-client/tests/e2e/classify.spec.js create mode 100644 service/vue3-client/tests/e2e/datastatus.spec.js create mode 100644 service/vue3-client/tests/e2e/process.spec.js create mode 100644 service/vue3-client/tests/unit/shared/CheckboxToggle.spec.js create mode 100644 service/vue3-client/tests/unit/shared/ChevronToggle.spec.js create mode 100644 service/vue3-client/tests/unit/shared/ExportButtons.spec.js create mode 100644 service/vue3-client/tests/unit/shared/HelpBubble.spec.js create mode 100644 service/vue3-client/tests/unit/shared/MainFooter.spec.js create mode 100644 service/vue3-client/tests/unit/shared/MainHeader.spec.js create mode 100644 service/vue3-client/tests/unit/shared/MainNav.spec.js create mode 100644 service/vue3-client/tests/unit/shared/PaginationComponent.spec.js create mode 100644 service/vue3-client/tests/unit/shared/PreviewTable.spec.js create mode 100644 service/vue3-client/tests/unit/shared/SelectBase.spec.js create mode 100644 service/vue3-client/tests/unit/shared/SelectOutput.spec.js create mode 100644 service/vue3-client/tests/unit/shared/SelectSource.spec.js create mode 100644 service/vue3-client/tests/unit/shared/SelectSubject.spec.js create mode 100644 service/vue3-client/tests/unit/shared/TabMenu.spec.js create mode 100644 service/vue3-client/tests/unit/shared/TableDataBoolean.spec.js create mode 100644 service/vue3-client/tests/unit/shared/TableDataId.spec.js create mode 100644 service/vue3-client/tests/unit/shared/TableDataLink.spec.js create mode 100644 service/vue3-client/tests/unit/shared/TableDataList.spec.js create mode 100644 service/vue3-client/tests/unit/shared/TableDataMultiLine.spec.js create mode 100644 service/vue3-client/tests/unit/shared/YearPicker.spec.js create mode 100644 service/vue3-client/tests/unit/views/Bibliometrics.spec.js create mode 100644 service/vue3-client/tests/unit/views/Classify.spec.js create mode 100644 service/vue3-client/tests/unit/views/Datastatus.spec.js create mode 100644 service/vue3-client/tests/unit/views/Process.spec.js create mode 100644 service/vue3-client/yarn.lock diff --git a/service/vue3-client/.eslintrc.cjs b/service/vue3-client/.eslintrc.cjs index 074274f..59fe8ad 100644 --- a/service/vue3-client/.eslintrc.cjs +++ b/service/vue3-client/.eslintrc.cjs @@ -14,7 +14,7 @@ module.exports = { files: [ 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}' ], - 'extends': [ + extends: [ 'plugin:cypress/recommended' ] } diff --git a/service/vue3-client/.yarnrc.yml b/service/vue3-client/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/service/vue3-client/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/service/vue3-client/cypress.config.ts b/service/vue3-client/cypress.config.ts index b5f9599..a7d2cda 100644 --- a/service/vue3-client/cypress.config.ts +++ b/service/vue3-client/cypress.config.ts @@ -2,7 +2,7 @@ import { defineConfig } from 'cypress' export default defineConfig({ e2e: { - specPattern: 'cypress/specs/*.{js,jsx,ts,tsx}', + specPattern: 'tests/e2e/**/*.{cy,spec}.{js,jsx,ts,tsx}', baseUrl: 'http://localhost:4173' } }) diff --git a/service/vue3-client/cypress/plugins/index.js b/service/vue3-client/cypress/plugins/index.js new file mode 100644 index 0000000..f755e07 --- /dev/null +++ b/service/vue3-client/cypress/plugins/index.js @@ -0,0 +1,24 @@ +/* eslint-disable arrow-body-style */ +// https://docs.cypress.io/guides/guides/plugins-guide.html + +// if you need a custom webpack configuration you can uncomment the following import +// and then use the `file:preprocessor` event +// as explained in the cypress docs +// https://docs.cypress.io/api/plugins/preprocessors-api.html#Examples + +// /* eslint-disable import/no-extraneous-dependencies, global-require */ +// const webpack = require('@cypress/webpack-preprocessor') + +module.exports = (on, config) => { + // on('file:preprocessor', webpack({ + // webpackOptions: require('@vue/cli-service/webpack.config'), + // watchOptions: {} + // })) + + // eslint-disable-next-line global-require + require('@cypress/code-coverage/task')(on, config); + + return { + ...config, + }; +}; diff --git a/service/vue3-client/cypress/specs/.eslintrc.js b/service/vue3-client/cypress/specs/.eslintrc.js new file mode 100644 index 0000000..c602e6b --- /dev/null +++ b/service/vue3-client/cypress/specs/.eslintrc.js @@ -0,0 +1,11 @@ +module.exports = { + extends: [ + 'plugin:cypress/recommended' + ], + env: { + node: true, + }, + rules: { + strict: 'off', + }, +}; diff --git a/service/vue3-client/cypress/specs/bibliometrics.js b/service/vue3-client/cypress/specs/bibliometrics.js index 054a70b..43f9536 100644 --- a/service/vue3-client/cypress/specs/bibliometrics.js +++ b/service/vue3-client/cypress/specs/bibliometrics.js @@ -1,11 +1,10 @@ /* eslint-disable no-unused-expressions */ describe('Bibliometrics', () => { beforeEach(() => { - cy.server(); - cy.route('**/info/sources', 'fixture:sources.json').as('sources'); - cy.route('**/info/research-subjects', 'fixture:research-subjects.json').as('researchSubjects'); - cy.route('**/info/output-types', 'fixture:output-types.json').as('outputTypes'); - cy.route('POST', '**/bibliometrics', 'fixture:bibliometrics.json').as('bibliometrics'); + cy.intercept('**/info/sources', { fixture: 'sources.json' }).as('sources'); + cy.intercept('**/info/research-subjects', { fixture: 'research-subjects.json' }).as('researchSubjects'); + cy.intercept('**/info/output-types', { fixture: 'output-types.json' }).as('outputTypes'); + cy.intercept('POST', '**/bibliometrics', { fixture: 'bibliometrics.json' }).as('bibliometrics'); }); it('displays the view when visiting app root', () => { @@ -19,29 +18,30 @@ describe('Bibliometrics', () => { }); it('enables submit button by default', () => { + cy.visit('/bibliometrics'); cy.get('#submit-btn').should('not.be.disabled'); }); it('fetches sources by default', () => { cy.visit('/bibliometrics'); - cy.wait('@sources').then((xhr) => { - expect(xhr.method).to.eq('GET'); + cy.wait('@sources').then((interception) => { + expect(interception.request.method).to.eq('GET'); }); cy.get('#select-source-select').should('be.visible'); }); it('fetches research-subjects by default', () => { cy.visit('/bibliometrics'); - cy.wait('@researchSubjects').then((xhr) => { - expect(xhr.method).to.eq('GET'); + cy.wait('@researchSubjects').then((interception) => { + expect(interception.request.method).to.eq('GET'); }); cy.get('#select-subject-select').should('be.visible'); }); it('fetches output-types by default', () => { cy.visit('/bibliometrics'); - cy.wait('@outputTypes').then((xhr) => { - expect(xhr.method).to.eq('GET'); + cy.wait('@outputTypes').then((interception) => { + expect(interception.request.method).to.eq('GET'); }); cy.get('#select-output-select').should('be.visible'); }); @@ -49,9 +49,9 @@ describe('Bibliometrics', () => { it('makes limited post request to bibliometrics api on search', () => { cy.visit('/bibliometrics'); cy.get('#submit-btn').click(); - cy.wait('@bibliometrics').then((xhr) => { - expect(xhr.method).to.eq('POST'); - expect(xhr.requestBody.limit).to.eq(20); + cy.wait('@bibliometrics').then((interception) => { + expect(interception.request.method).to.eq('POST'); + expect(interception.request.body.limit).to.eq(20); }); }); @@ -75,6 +75,15 @@ describe('Bibliometrics', () => { }); it('clears the year input error and enables submit button', () => { + cy.visit('/bibliometrics'); + cy.get('#year-from') + .clear() + .type('2020'); + cy.get('#year-to') + .clear() + .type('2019') + .should('have.attr', 'aria-invalid', 'true'); + cy.get('.YearPicker .error').should('be.visible'); cy.get('.YearPicker .error').should('be.visible'); cy.get('#year-from') .clear() @@ -82,7 +91,7 @@ describe('Bibliometrics', () => { cy.get('#year-to') .clear() .type('2020'); - cy.get('.YearPicker .error').should('not.be.visible'); + cy.get('.YearPicker .error').should('not.exist'); cy.get('#submit-btn').should('not.be.disabled'); }); @@ -233,14 +242,13 @@ describe('Bibliometrics', () => { }); it('prints an error on fetch fail', () => { - cy.route({ - method: 'POST', - url: '**/bibliometrics', - status: 500, - response: { - message: 'test error', + cy.visit('/bibliometrics'); + cy.intercept('POST', '**/bibliometrics', { + statusCode: 500, + body: { + name: 'test error', }, - }); + }) cy.reload(); cy.get('#preview-section .error').should('be.visible'); }); diff --git a/service/vue3-client/cypress/support/index.ts b/service/vue3-client/cypress/support/index.ts new file mode 100644 index 0000000..80e0407 --- /dev/null +++ b/service/vue3-client/cypress/support/index.ts @@ -0,0 +1,4 @@ +Cypress.on('window:before:load', (win) => { + const htmlNode = win.document.querySelector('html'); + htmlNode.classList.add('cypress-tests'); +}); \ No newline at end of file diff --git a/service/vue3-client/package.json b/service/vue3-client/package.json index 8913e93..47bab33 100644 --- a/service/vue3-client/package.json +++ b/service/vue3-client/package.json @@ -48,9 +48,9 @@ "@vue/eslint-config-typescript": "^11.0.3", "@vue/test-utils": "^2.3.2", "@vue/tsconfig": "^0.4.0", - "cypress": "^12.14.0", + "cypress": "^13.2.0", "eslint": "^8.39.0", - "eslint-plugin-cypress": "^2.13.3", + "eslint-plugin-cypress": "^2.14.0", "eslint-plugin-vue": "^9.11.0", "jsdom": "^22.1.0", "npm-run-all": "^4.1.5", diff --git a/service/vue3-client/tests/e2e/.eslintrc.js b/service/vue3-client/tests/e2e/.eslintrc.js new file mode 100644 index 0000000..0ec8140 --- /dev/null +++ b/service/vue3-client/tests/e2e/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + extends: [ + 'plugin:cypress/recommended' + ] +}; diff --git a/service/vue3-client/tests/e2e/1_mainnav.spec.js b/service/vue3-client/tests/e2e/1_mainnav.spec.js new file mode 100644 index 0000000..3deddfb --- /dev/null +++ b/service/vue3-client/tests/e2e/1_mainnav.spec.js @@ -0,0 +1,72 @@ +// e2e tests requires api services running and at least one source harvested + +describe('Main navigation', () => { + beforeEach(() => { + cy.intercept('**/info/sources', { fixture: 'sources.json' }).as('sources'); + cy.intercept('**/info/research-subjects', { fixture: 'research-subjects.json' }).as('researchSubjects'); + cy.intercept('**/info/output-types', { fixture: 'output-types.json' }).as('outputTypes'); + cy.intercept('**/datastatus', { fixture: 'datastatus.json' }).as('datastatus'); + cy.intercept('**/datastatus/ssif', { fixture: 'datastatus_ssif.json' }).as('ssif'); + cy.intercept('**/datastatus/validations', { fixture: 'datastatus_validations.json' }).as('validations'); + }); + + it('can navigate to /process', () => { + cy.visit('/'); + cy.get('.MainNav a[href="/process"]') + .click(); + cy.location('pathname', { timeout: 10000 }).should('eq', '/process') + cy.get('.Process').should('be.visible'); + cy.title().should('include', 'Databearbetning') + }); + + it('can navigate to /classify', () => { + cy.visit('/'); + cy.get('.MainNav a[href="/classify"]') + .click(); + cy.location('pathname', { timeout: 10000 }).should('eq', '/classify') + cy.get('.Classify').should('be.visible'); + cy.title().should('include', 'Ämnesklassificering') + }); + + it('can navigate to /datastatus', () => { + cy.visit('/'); + cy.get('.MainNav a[href="/datastatus"]') + .click(); + cy.location('pathname', { timeout: 10000 }).should('eq', '/datastatus') + cy.get('.Datastatus').should('be.visible'); + cy.title().should('include', 'Datastatus') + }); + + it('can navigate to /bibliometrics', () => { + cy.visit('/'); + cy.get('.MainNav a[href="/bibliometrics"]') + .click(); + cy.location('pathname', { timeout: 10000 }).should('eq', '/bibliometrics') + cy.get('.Bibliometrics').should('be.visible'); + cy.title().should('include', 'Bibliometri') + }); + + it('navigates back', () => { + cy.visit('/process'); + cy.get('.MainNav a[href="/classify"]') + .click(); + cy.go('back'); + cy.get('.Process') + .should('be.visible'); + }); + + it('navigates forward', () => { + cy.visit('/process'); + cy.get('.MainNav a[href="/classify"]') + .click(); + cy.go('back'); + cy.go('forward'); + cy.get('.Classify') + .should('be.visible'); + }); + + it('displays the 404 page', () => { + cy.visit('/test'); + cy.get('.NotFound').should('exist'); + }); +}); diff --git a/service/vue3-client/tests/e2e/bibliometrics.spec.js b/service/vue3-client/tests/e2e/bibliometrics.spec.js new file mode 100644 index 0000000..2e9c27c --- /dev/null +++ b/service/vue3-client/tests/e2e/bibliometrics.spec.js @@ -0,0 +1,373 @@ +/* eslint-disable no-unused-expressions */ + +describe('Bibliometrics', () => { + beforeEach(() => { + cy.on('uncaught:exception', () => { + /* TODO: investigate why fail is not a function when running tests... */ + return false + }) + cy.intercept('**/info/sources', { fixture: 'sources.json' }).as('sources') + cy.intercept('**/info/research-subjects', { fixture: 'research-subjects.json' }).as('researchSubjects') + cy.intercept('**/info/output-types', { fixture: 'output-types.json' }).as('outputTypes') + }) + + it('displays the view when visiting app root', () => { + cy.visit('/') + cy.get('.Bibliometrics').should('be.visible') + }) + + it('displays the view when visiting /bibliometrics', () => { + cy.visit('/bibliometrics') + cy.get('.Bibliometrics').should('be.visible') + }) + + it('enables submit button by default', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').should('not.be.disabled') + }) + + it('fetches sources by default', () => { + cy.visit('/bibliometrics') + cy.wait('@sources').then(({ request }) => { + expect(request.method).to.eq('GET') + }) + cy.get('#select-source-select').should('be.visible') + }) + + it('fetches research-subjects by default', () => { + cy.visit('/bibliometrics') + cy.wait('@researchSubjects').then(({ request }) => { + expect(request.method).to.eq('GET') + }) + cy.get('#select-subject-select').should('be.visible') + }) + + it('fetches output-types by default', () => { + cy.visit('/bibliometrics') + cy.wait('@outputTypes').then(({ request }) => { + expect(request.method).to.eq('GET') + }) + cy.get('#select-output-select').should('be.visible') + }) + + it('makes limited post request to bibliometrics api on search', () => { + cy.visit('/bibliometrics') + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#submit-btn').click() + cy.wait('@bibliometricsPost').then(({ request }) => { + expect(request.method).to.eq('POST') + expect(request.body.limit).to.eq(1) + }) + }) + + it('displays error and disables submit button on invalid year input', () => { + cy.visit('/bibliometrics') + cy.get('#year-from').clear() + cy.get('#year-from').type('0') + cy.get('#year-from').should('have.attr', 'aria-invalid', 'true') + + cy.get('.YearPicker .error').should('be.visible') + cy.get('#submit-btn').should('be.disabled') + cy.get('#year-from').clear() + cy.get('#year-from').type('2020') + + cy.get('#year-to').clear() + cy.get('#year-to').type('2019') + cy.get('#year-to').should('have.attr', 'aria-invalid', 'true') + + cy.get('.YearPicker .error').should('be.visible') + cy.get('#submit-btn').should('be.disabled') + }) + + it('clears the year input error and enables submit button', () => { + cy.visit('/bibliometrics') + cy.get('#year-from').clear() + cy.get('#year-from').type('0') + cy.get('#year-to').clear() + cy.get('#year-to').type('2019') + cy.get('.YearPicker .error').should('be.visible') + cy.get('#year-from').clear() + cy.get('#year-from').type('2020') + cy.get('#year-to').clear() + cy.get('#year-to').type('2020') + cy.get('.YearPicker .error').should('not.exist') + cy.get('#submit-btn').should('not.be.disabled') + }) + + it('sets year url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#year-from').clear() + cy.get('#year-from').type('1900') + cy.get('#year-to').clear() + cy.get('#year-to').type('1900') + cy.get('#submit-btn').click() + cy.url().should('include', 'from=1900').and('include', 'to=1900') + cy.get('#preview-section').should('be.visible') + }) + + it('navigates back to earlier state', () => { + cy.visit('/bibliometrics') + cy.get('#year-from').clear() + cy.get('#year-from').type('1900') + cy.get('#year-to').clear() + cy.get('#year-to').type('1900') + cy.get('#submit-btn').click() + cy.url().should('include', 'from=1900').and('include', 'to=1900') + cy.go('back') + cy.url().should('not.include', 'from=1900').and('not.include', 'to=1900') + }) + + it('inputs years from url query', () => { + cy.visit('/bibliometrics?from=1800&to=1800') + cy.get('#year-from').should('have.value', '1800') + cy.get('#year-to').should('have.value', '1800') + cy.get('#preview-section').should('be.visible') + }) + + it('displays error if invalid years query in url', () => { + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.visit('/bibliometrics?from=1800&to=1700') + cy.wait('@bibliometricsPost') + cy.get('.YearPicker .error').should('be.visible') + }) + + it('sets the subject url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#select-subject-select').type('{downArrow}') // select first available subject type + cy.get('#select-subject-select').type('{enter}') + + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#submit-btn').click() + cy.wait('@bibliometricsPost') + cy.url().should('include', 'subject') + cy.get('#preview-section').should('be.visible') + }) + + it('sets the output-type url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#select-output-select').type('{downArrow}') // select first available output type + cy.get('#select-output-select').type('{enter}') + cy.get('#submit-btn').click() + cy.url().should('include', 'genreForm') + cy.get('#preview-section').should('be.visible') + }) + + it('sets keyword url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#keywords_input').type('test_keyword') + cy.get('#submit-btn').click() + cy.url().should('include', 'keywords=test') + cy.get('#preview-section').should('be.visible') + }) + + it('inputs keyword from url query', () => { + cy.visit('/bibliometrics?keywords=test_keyword') + cy.get('#keywords_input').should('have.value', 'test_keyword') + cy.get('#preview-section').should('be.visible') + }) + + it('sets publication status url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#publication-status').click() + cy.get('#published').check() + cy.get('#epub').check() + cy.get('#submitted').check() + cy.get('#submit-btn').click() + cy.url().should( + 'include', + 'publicationStatus=published&publicationStatus=epub&publicationStatus=submitted' + ) + cy.get('#preview-section').should('be.visible') + }) + + it('checks publication status from url query', () => { + cy.visit( + '/bibliometrics?publicationStatus=published&publicationStatus=epub&publicationStatus=submitted' + ) + cy.get('#published').should('be.checked') + cy.get('#epub').should('be.checked') + cy.get('#submitted').should('be.checked') + cy.get('#preview-section').should('be.visible') + }) + + it('sets content marking url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#content-marking').click() + cy.get('#ref').check() + cy.get('#vet').check() + cy.get('#pop').check() + cy.get('#submit-btn').click() + cy.url().should('include', 'contentMarking=ref&contentMarking=vet&contentMarking=pop') + cy.get('#preview-section').should('be.visible') + }) + + it('checks content markings from url query', () => { + cy.visit('/bibliometrics?contentMarking=ref&contentMarking=vet&contentMarking=pop') + cy.get('#ref').should('be.checked') + cy.get('#vet').should('be.checked') + cy.get('#pop').should('be.checked') + cy.get('#preview-section').should('be.visible') + }) + + it('sets swedish list url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#swedish-list').check() + cy.get('#submit-btn').click() + cy.url().should('include', 'swedishList=true') + cy.get('#preview-section').should('be.visible') + }) + + it('checks swedish list from url query', () => { + cy.visit('/bibliometrics?swedishList=true') + cy.get('#swedish-list').should('be.checked') + cy.get('#preview-section').should('be.visible') + }) + + it('clears the form', () => { + cy.visit( + '/bibliometrics?subject=1&keywords=test&publicationStatus=published&publicationStatus=epub&publicationStatus=submitted&contentMarking=ref&contentMarking=vet&contentMarking=pop&swedishList=true&match-genreForm=intellectual-property&from=1900&to=1900' + ) + cy.location().should((loc) => { + expect(loc.search).to.not.be.empty + }) + cy.get('#pop').should('be.checked') + cy.get('#published').should('be.checked') + cy.get('#preview-section').should('be.visible') + cy.get('#clear-btn').click() + cy.location().should((loc) => { + expect(loc.search).to.be.empty + }) + cy.get('#pop').should('not.be.checked') + cy.get('#published').should('not.be.checked') + cy.get('#preview-section').should('not.exist') + }) + + it('sets source url query on search', () => { + cy.visit('/bibliometrics') + cy.get('#select-source-select').type('{downArrow}') // select first available subject type + cy.get('#select-source-select').type('{enter}') // select first available source + cy.get('#year-from').clear() + cy.get('#year-to').clear() + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#submit-btn').click() + cy.wait('@bibliometricsPost') + cy.url().should('include', 'org=') + cy.get('#preview-section').should('be.visible') + }) + + it('prints an error on fetch fail', () => { + cy.intercept('POST', '**/bibliometrics', { + statusCode: 500, + body: { + message: 'test error' + }, + }).as('bibliometricsPost') + cy.visit('/bibliometrics', { failOnStatusCode: false }) + cy.wait('@bibliometricsPost') + cy.get('#preview-section .error').should('be.visible') + }) + + it('pre-selects record id as export field', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.get('.ExportData-toggleGroups .CheckboxToggle.is-checked') + .should('have.length', 1) + .and('have.text', 'Record ID') + cy.get('.PreviewTable-table th').should('have.length', 1).and('have.text', 'Record ID') + }) + + it('can select all fields using the toggle', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.get('#export_checkAll').click() + cy.get('.ExportData-table input[type="checkbox"]:checked').should('have.length.gt', 1) + }) + + it('can deselect all fields using the toggle', () => { + cy.visit('/bibliometrics') + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#submit-btn').click() + cy.wait('@bibliometricsPost') + cy.get('#export_checkAll').click() + cy.get('.ExportData-toggleGroups .CheckboxToggle.is-checked').should('have.length', 0) + cy.get('.PreviewTable').should('not.exist') + }) + + it('disables export btns when no export fields selected', () => { + cy.visit('/bibliometrics') + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#submit-btn').click() + cy.wait('@bibliometricsPost') + cy.get('.ExportButtons .btn').should('be.disabled') + }) + + it('can select fields manually', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.get('.CheckboxToggle').first().click() + cy.get('.CheckboxToggle').eq(1).click() + cy.get('.CheckboxToggle').eq(2).click() + cy.get('.ExportData-toggleGroups .CheckboxToggle.is-checked').should('have.length', 3) + cy.get('.PreviewTable-table th').should('have.length', 3) + }) + + it('enables export btns when export fields are selected', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.get('.ExportButtons .btn').should('not.be.disabled') + }) + + it('omits limit param and includes fields from UI when clicking export JSON', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.get('#export-json').click() + cy.wait('@bibliometrics').then((xhr) => { + expect(JSON.stringify(xhr.requestBody.fields)).to.eq( + JSON.stringify(['recordId', 'duplicateIds', 'publicationCount']) + ) + expect(xhr.requestBody).to.not.have.ownProperty('limit') + expect(xhr.method).to.eq('POST') + }) + }) + + it('asks for CSV file when clicking export CSV', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#export-csv').click() + cy.wait('@bibliometrics').then((xhr) => { + expect(xhr.requestHeaders.accept).to.eq('text/csv') + }) + }) + + it('asks for TSV file when clicking export TSV', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.intercept('**/bibliometrics', { method: 'POST', fixture: 'bibliometrics.json' }).as('bibliometricsPost') + cy.get('#export-tsv').click() + cy.wait('@bibliometrics').then((xhr) => { + expect(xhr.requestHeaders.accept).to.eq('text/tab-separated-values') + }) + }) + + it('clears the results', () => { + cy.visit('/bibliometrics') + cy.get('#submit-btn').click() + cy.get('#clear-btn').click() + cy.get('.ExportData-pickerContainer').should('not.exist') + cy.get('.PreviewTable').should('not.exist') + }) + + it('displays the datadump section on tab click', () => { + cy.visit('/bibliometrics') + cy.get('.Datadump').should('not.be.visible') + cy.get('#datadump-tab').click() + cy.url().should('include', '/datadump') + cy.get('.Datadump').should('be.visible') + }) + + it('displays datadump section on url load', () => { + cy.visit('/bibliometrics/datadump') + cy.get('.Datadump').should('be.visible') + }) +}) diff --git a/service/vue3-client/tests/e2e/classify.spec.js b/service/vue3-client/tests/e2e/classify.spec.js new file mode 100644 index 0000000..7344472 --- /dev/null +++ b/service/vue3-client/tests/e2e/classify.spec.js @@ -0,0 +1,63 @@ +describe('Classify', () => { + beforeEach(() => { + cy.server(); + cy.route('POST', '**/classify', 'fixture:classify.json').as('classify'); + }); + + it('displays the view when visiting /classify', () => { + cy.visit('/classify'); + cy.get('.Classify').should('be.visible'); + }); + + it('disabled submit button by default', () => { + cy.get('#submit-btn').should('be.disabled'); + }); + + it('enables submit after input', () => { + cy.get('#title_input').type('test'); + cy.get('#submit-btn').should('not.be.disabled'); + }); + + it('posts expected data on submit', () => { + cy.visit('/classify'); + cy.get('#title_input').type('test'); + cy.get('#abstract_input').type('test'); + cy.get('#keywords_input').type('test'); + cy.get('#level_5').check(); + cy.get('#submit-btn').click(); + cy.wait('@classify').then((xhr) => { + expect(JSON.stringify(xhr.requestBody)).to.eq((JSON.stringify({ + level: 5, title: 'test', abstract: 'test', keywords: 'test', + }))); + expect(xhr.method).to.eq('POST'); + }); + }); + + it('displays result', () => { + cy.get('#result').should('be.visible'); + }); + + it('can clear the form', () => { + cy.get('#clear-btn').should('not.be.disabled') + .click(); + cy.get('#title_input').should('have.value', ''); + cy.get('#abstract_input').should('have.value', ''); + cy.get('#keywords_input').should('have.value', ''); + cy.get('#level_3').should('be.checked'); + cy.get('#submit-btn').should('be.disabled'); + cy.get('#clear-btn').should('be.disabled'); + cy.get('#result').should('not.be.visible'); + }); + + it('displays the about section', () => { + cy.get('.Documentation').should('not.be.visible'); + cy.get('#about-tab').click(); + cy.url().should('include', '/about'); + cy.get('.Documentation').should('be.visible'); + }); + + it('loads about section from url', () => { + cy.visit('/classify/about'); + cy.get('.Documentation').should('be.visible'); + }); +}); diff --git a/service/vue3-client/tests/e2e/datastatus.spec.js b/service/vue3-client/tests/e2e/datastatus.spec.js new file mode 100644 index 0000000..7780029 --- /dev/null +++ b/service/vue3-client/tests/e2e/datastatus.spec.js @@ -0,0 +1,132 @@ +describe('Datastatus', () => { + beforeEach(() => { + cy.server(); + cy.route('**/info/sources', 'fixture:sources.json').as('sources'); + cy.route('**/datastatus', 'fixture:datastatus.json').as('datastatus'); + cy.route('**/datastatus/**', 'fixture:datastatus.json').as('datastatus_single'); + cy.route('**/datastatus/ssif', 'fixture:datastatus_ssif.json').as('ssif'); + cy.route('**/datastatus/ssif/**', 'fixture:datastatus_ssif_single.json').as('ssif_single'); + cy.route('**/datastatus/validations', 'fixture:datastatus_validations.json').as('validations'); + cy.route('**/datastatus/validations/**', 'fixture:datastatus_validations_single').as('validations_single'); + }); + + it('displays the view when visiting /datastatus', () => { + cy.visit('/datastatus'); + cy.get('.Datastatus').should('be.visible'); + }); + + it('disables submit button by default', () => { + cy.get('#submit-btn').should('be.disabled'); + }); + + it('loads sources by default', () => { + cy.visit('/datastatus'); + cy.wait('@sources').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#select-source-select').should('be.visible'); + }); + + it('loads the datastatus summary by default', () => { + cy.visit('/datastatus'); + cy.wait('@datastatus').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('.Summary').should('be.visible'); + }); + + it('loads the datastatus ssif by default', () => { + cy.visit('/datastatus'); + cy.wait('@ssif').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#subjects-heading').should('be.visible'); + }); + + it('loads the validation stats by default', () => { + cy.visit('/datastatus'); + cy.wait('@validations').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#validations-heading').should('be.visible'); + }); + + it('prints an error on fetch fail', () => { + cy.route({ + method: 'GET', + url: '**/datastatus', + status: 500, + response: { + message: 'test error', + }, + }); + cy.visit('/datastatus'); + cy.get('.Datastatus-chartContainer .error').should('be.visible'); + }); + + it('triggers tooltip on helpbubble click', () => { + cy.get('.tooltip').should('not.exist'); + cy.get('.HelpBubble').first().click(); + cy.get('.tooltip').should('be.visible'); + }); + + it('displays the tooltip text', () => { + cy.get('.t-header') + .should(($el) => { + expect($el.text().trim()).not.equal(''); + }); + cy.get('.t-body') + .should(($el) => { + expect($el.text().trim()).not.equal(''); + }); + }); + + it('hides tooltip on clickaway', () => { + cy.get('.tooltip').should('exist'); + cy.get('#main').click({ force: true }); + cy.get('.tooltip').should('not.be.visible'); + }); + + it('enables search on source selection', () => { + cy.get('#select-source-select').click().type('{enter}'); // select first available source + cy.get('#submit-btn').should('not.be.disabled'); + }); + + it('sets url params on search', () => { + cy.url().should('not.include', 'datastatus/'); + cy.get('#year-from').type(2000); + cy.get('#year-to').type(2020); + cy.get('#submit-btn').click(); + cy.url().should('include', 'datastatus/') + .and('include', 'from=2000') + .and('include', 'to=2020'); + }); + + it('navigates back to earlier state', () => { + cy.go('back'); + cy.url() + .should('not.include', 'from=2000') + .and('not.include', 'to=2020'); + cy.go('forward'); + }); + + it('can load single org from url params', () => { + cy.reload(); + cy.wait('@validations_single').then(() => { + cy.get('#submit-btn').should('be.disabled'); + cy.get('#totalNumber').should('not.exist'); + cy.get('.Summary').should('be.visible'); + cy.get('.ShortStats').should('be.visible'); + }); + }); + + it('clears the results', () => { + cy.get('#clear-btn').click(); + cy.url().should('not.include', 'datastatus/') + .and('not.include', 'from=') + .and('not.include', 'to='); + cy.get('#totalNumber').should('exist'); + cy.get('#year-from').should('have.value', ''); + cy.get('#year-to').should('have.value', ''); + }); +}); diff --git a/service/vue3-client/tests/e2e/process.spec.js b/service/vue3-client/tests/e2e/process.spec.js new file mode 100644 index 0000000..aa11a31 --- /dev/null +++ b/service/vue3-client/tests/e2e/process.spec.js @@ -0,0 +1,329 @@ +/* eslint-disable no-unused-expressions */ +describe('Process - Dataquality', () => { + beforeEach(() => { + cy.server(); + cy.route('**/info/sources', 'fixture:sources.json').as('sources'); + cy.route('**/process/**', 'fixture:process.json').as('process'); + cy.route('**/process/**/export?**', 'fixture:process_export.json').as('export'); + }); + + it('displays the view when visiting /process', () => { + cy.visit('/process'); + cy.get('.Process').should('be.visible'); + }); + + it('disables submit button by default', () => { + cy.get('#submit-btn').should('be.disabled'); + }); + + it('fetches sources by default', () => { + cy.visit('/process'); + cy.wait('@sources').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#select-source-select').should('be.visible'); + }); + + it('enables search on source selection', () => { + cy.get('#select-source-select').click().type('{enter}'); // select first available source + cy.get('#submit-btn').should('not.be.disabled'); + }); + + it('sets params in url on search', () => { + cy.get('#flagdata-heading').should('not.exist'); + cy.location().should((loc) => { + expect(loc.path).to.be.empty; + }); + cy.get('#submit-btn').click(); + cy.get('#flagdata-heading').should('exist'); + cy.location().should((loc) => { + expect(loc.search).to.not.be.empty; + }); + }); + + it('performs search from url params', () => { + cy.reload(); + cy.wait('@process').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#submit-btn').should('be.disabled'); + cy.get('#flagdata-heading').should('exist'); + }); + + it('prints an error on fetch fail - flag cards', () => { + cy.route({ + method: 'GET', + url: '**/process/**', + status: 500, + response: { + message: 'test error', + }, + }); + cy.reload(); + cy.get('.Process-submit .error').should('be.visible'); + cy.get('#flagdata-heading').should('not.exist'); + }); + + it('clears the form', () => { + cy.reload(); + cy.location().should((loc) => { + expect(loc.search).to.not.be.empty; + }); + cy.get('#clear-btn').should('not.be.disabled') + .click(); + cy.location().should((loc) => { + expect(loc.search).to.be.empty; + }); + cy.get('#clear-btn').should('be.disabled'); + }); + + it('has no flags selected by default', () => { + cy.visit('/process'); + cy.get('#select-source-select').click().type('{enter}'); + cy.get('#year-from').clear(); + cy.get('#year-to').clear(); + cy.get('#submit-btn').click(); + cy.get('.FlagCard-checkbox').should('have.length.gt', 1); + cy.get('.FlagCard-checkbox[aria-checked="true"]').should('have.length', 0); + }); + + it('selects flag on flagcard click', () => { + cy.get('.FlagCard.is-selectable').first().click(); + cy.get('.FlagCard-checkbox[aria-checked="true"]').should('have.length', 1); + }); + + it('enables preview btn on flag selection', () => { + cy.get('.btn.DataQuality-proceed').should('not.be.disabled'); + }); + + it('can select all flags using the toggle', () => { + cy.get('.FlagPicker-checkAll').click({ multiple: true, force: true }); + const numCheckboxes = Cypress.$('.FlagCard.is-selectable').length; + cy.get('.FlagCard-checkbox[aria-checked="true"]').should('have.length', numCheckboxes); + }); + + it('can deselect all flags using the toggle', () => { + cy.get('.FlagPicker-checkAll').click({ multiple: true, force: true }); + cy.get('.FlagCard-checkbox[aria-checked="true"]').should('have.length', 0); + }); + + it('disables preview btn on no flag selection', () => { + cy.get('.btn.DataQuality-proceed').should('be.disabled'); + }); + + it('fetches limited export from api on preview click', () => { + cy.get('.FlagPicker-checkAll').click({ multiple: true, force: true }); + cy.get('.btn.DataQuality-proceed').click(); + cy.wait('@export').then((xhr) => { + expect(xhr.status).to.eq(200); + expect(xhr.url).to.include('limit='); + }); + }); + + it('sets the url export param on preview btn click', () => { + cy.url().should('include', '/export?'); + }); + + it('enables preview btn only if flag selection is changed', () => { + cy.get('.btn.DataQuality-proceed').should('be.disabled'); + cy.get('.FlagCard.is-selectable').first().click(); + cy.get('.btn.DataQuality-proceed').should('not.be.disabled'); + }); + + it('loads result state with back/forward buttons', () => { + cy.get('.ExportFlags-cardList').should('be.visible'); + cy.go('back'); + cy.get('.ExportFlags-cardList').should('not.be.visible'); + cy.url().should('not.include', '/export?'); + cy.go('forward'); + cy.get('.ExportFlags-cardList').should('be.visible'); + }); + + it('prints an error on fetch fail - export preview', () => { + cy.route({ + method: 'GET', + url: '**/process/**/export?**', + status: 500, + response: { + message: 'test error', + }, + }); + cy.reload(); + cy.get('.ExportFlags .error').should('be.visible'); + cy.get('.PreviewCard').should('not.exist'); + }); + + it('loads the export section from url', () => { + cy.reload(); + cy.get('.btn.DataQuality-proceed').should('be.disabled'); + cy.get('.FlagCard').should('exist'); + cy.get('.PreviewCard').should('exist'); + cy.get('.ExportButtons .btn').should('exist') + .and('not.be.disabled'); + }); + + it('omits limit query when clicking export JSON', () => { + cy.get('#export-json').click(); + cy.wait('@export').then((xhr) => { + expect(xhr.url).to.not.include('limit='); + }); + }); + + it('asks for CSV file when clicking export CSV', () => { + cy.get('#export-csv').click(); + cy.wait('@export').then((xhr) => { + expect(xhr.requestHeaders.accept).to.eq('text/csv'); + }); + }); + + it('asks for TSV file when clicking export TSV', () => { + cy.get('#export-tsv').click(); + cy.wait('@export').then((xhr) => { + expect(xhr.requestHeaders.accept).to.eq('text/tab-separated-values'); + }); + }); + + it('clears the results', () => { + cy.get('#clear-btn').should('not.be.disabled') + .click(); + cy.get('.FlagCard').should('not.exist'); + cy.get('.PreviewCard').should('not.exist'); + cy.location().should((loc) => { + expect(loc.search).to.be.empty; + }); + cy.get('#clear-btn').should('be.disabled'); + }); +}); + +describe('Process - Harvest status', () => { + beforeEach(() => { + cy.server(); + cy.route('**/info/sources', 'fixture:sources.json').as('sources'); + cy.route('**/process/**/status', 'fixture:status.json').as('status'); + cy.route('**/process/**/rejected**', 'fixture:rejected.json').as('rejected'); + cy.route('**/process/**/status/history', 'fixture:history.json').as('history'); + }); + + it('displays the view on tab click', () => { + cy.visit('/process'); + cy.get('#status-tab').click(); + cy.get('.HarvestStatus').should('be.visible'); + }); + + it('disables submit button by default', () => { + cy.get('#submit-btn').should('be.disabled'); + }); + + it('loads sources by default', () => { + cy.visit('/process'); + cy.get('#status-tab').click(); + cy.wait('@sources').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#select-source-select').should('be.visible'); + }); + + it('enables search on source selection', () => { + cy.get('#select-source-select').click().type('{enter}'); // select first available source + cy.get('#submit-btn').should('not.be.disabled'); + }); + + it('sets url params on search', () => { + cy.get('.HarvestLatest').should('not.exist'); + cy.url().should('not.include', 'status'); + cy.get('#submit-btn').click(); + cy.get('.HarvestLatest').should('exist'); + cy.url().should('include', 'status'); + }); + + it('can load latest harvest from url', () => { + cy.reload(); + cy.wait(['@status', '@rejected']).then((arr) => { + arr.forEach((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + }); + cy.get('#submit-btn').should('be.disabled'); + cy.get('.HarvestLatest').should('exist'); + cy.get('.HarvestRejected').should('exist'); + }); + + it('prints an error on fetch fail - harvest', () => { + cy.route({ + method: 'GET', + url: '**/process/**/status', + status: 500, + response: { + message: 'test error', + }, + }); + cy.reload(); + cy.get('.HarvestLatest .error').should('be.visible'); + }); + + it('can switch to history tab', () => { + cy.reload(); + cy.get('.HarvestHistory').should('not.exist'); + cy.get('#history-tab').click(); + cy.get('.HarvestHistory').should('exist'); + cy.url().should('include', '/history'); + }); + + it('can load history from url', () => { + cy.reload(); + cy.wait('@history').then((xhr) => { + expect(xhr.method).to.eq('GET'); + }); + cy.get('#submit-btn').should('be.disabled'); + cy.get('.HarvestHistory').should('exist'); + }); + + it('prints an error on fetch fail - history', () => { + cy.route({ + method: 'GET', + url: '**/process/**/status/history', + status: 500, + response: { + message: 'test error', + }, + }); + cy.reload(); + cy.get('.HarvestHistory .error').should('be.visible'); + }); + + it('should fetch rejected on harvest card click', () => { + cy.reload(); + cy.get('.HarvestSummary-card.is-expandable').first() + .next().should('not.be.visible') + .prev() + .click(); + cy.wait('@rejected').then((xhr) => { + expect(xhr.method).to.eq('GET'); + cy.get('.HarvestSummary-card.is-expandable').first() + .should('have.class', 'expanded') + .next() + .should('be.visible'); + }); + }); + + it('can select rejection harvests only', () => { + const numCards = Cypress.$('.HarvestSummary').length; + cy.get('#rejected-only-checkbox').check(); + cy.get('.HarvestSummary').should('not.be.gte', numCards); + }); + + it('can switch to latest tab', () => { + cy.get('.HarvestLatest').should('not.exist'); + cy.get('#latest-tab').click(); + cy.get('.HarvestLatest').should('exist'); + cy.url().should('not.include', '/history'); + }); + + it('clears the form', () => { + cy.url().should('include', 'status'); + cy.get('#clear-btn').should('not.be.disabled') + .click(); + cy.url().should('not.include', 'status'); + cy.get('#clear-btn').should('be.disabled'); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/CheckboxToggle.spec.js b/service/vue3-client/tests/unit/shared/CheckboxToggle.spec.js new file mode 100644 index 0000000..35592d2 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/CheckboxToggle.spec.js @@ -0,0 +1,59 @@ +import { shallowMount } from '@vue/test-utils'; +import CheckboxToggle from '@/components/shared/CheckboxToggle.vue'; + +let wrapper = null; +const onInput = jest.fn(); +const valueProp = false; + +beforeEach(() => { + wrapper = shallowMount(CheckboxToggle, { + propsData: { + value: valueProp, + id: 'test', + label: 'test label', + }, + listeners: { + input: onInput, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('CheckboxToggle', () => { + it('renders an element with role checkbox', () => { + expect(wrapper.attributes('role')).toBe('checkbox'); + }); + + it('omits .is-checked and aria-checked when value is false', () => { + expect(wrapper.classes('is-checked')).toBe(false); + expect(wrapper.attributes('aria-checked')).toBe('false'); + }); + + it('adds .is-checked and aria-checked when value is true', () => { + wrapper.setProps({ value: !valueProp }); + wrapper.vm.$nextTick(() => { + expect(wrapper.classes('is-checked')).toBe(true); + expect(wrapper.attributes('aria-checked')).toBe('true'); + }); + }); + + it('renders the label', () => { + expect(wrapper.find('span').text()).toBe('test label'); + }); + + it('emits input event with inverse of "value" prop, on click', () => { + wrapper.trigger('click'); + expect(onInput).toHaveBeenCalled(); + expect(onInput).toHaveBeenCalledWith(!valueProp); + }); + + it('emits input event with inverse of "value" prop, on keyup enter', () => { + wrapper.trigger('keyup.enter'); + expect(onInput).toHaveBeenCalled(); + expect(onInput).toHaveBeenCalledWith(!valueProp); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/ChevronToggle.spec.js b/service/vue3-client/tests/unit/shared/ChevronToggle.spec.js new file mode 100644 index 0000000..21148ad --- /dev/null +++ b/service/vue3-client/tests/unit/shared/ChevronToggle.spec.js @@ -0,0 +1,61 @@ +import { mount } from '@vue/test-utils'; +import ChevronToggle from '@/components/shared/ChevronToggle.vue'; + +let wrapper = null; +const onInput = jest.fn(); +const valueProp = false; + +beforeEach(() => { + wrapper = mount(ChevronToggle, { + propsData: { + value: valueProp, + ariaControls: 'test-aria', + }, + listeners: { + input: onInput, + }, + stubs: ['font-awesome-icon'], + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('ChevronToggle', () => { + it('renders a chevron icon', () => { + const fa = wrapper.find('font-awesome-icon-stub'); + expect(fa.attributes('icon')).toBe('fa,chevron-down'); + }); + + it('omits .is-toggled and aria-expanded when value is false', () => { + expect(wrapper.classes('is-toggled')).toBe(false); + expect(wrapper.attributes('aria-expanded')).toBe('false'); + }); + + it('adds .is-toggled and aria-expanded when value is true', () => { + // set new props + wrapper.setProps({ value: !valueProp }); + wrapper.vm.$nextTick(() => { + expect(wrapper.classes('is-toggled')).toBe(true); + expect(wrapper.attributes('aria-expanded')).toBe('true'); + }); + }); + + it('sets prop aria-controls on element', () => { + expect(wrapper.attributes('aria-controls')).toBe('test-aria'); + }); + + it('emits input event with inverse of "value" prop, on click', () => { + wrapper.trigger('click'); + expect(onInput).toHaveBeenCalled(); + expect(onInput).toHaveBeenCalledWith(!valueProp); + }); + + it('emits input event with inverse of "value" prop, on keyup enter', () => { + wrapper.trigger('keyup.enter'); + expect(onInput).toHaveBeenCalled(); + expect(onInput).toHaveBeenCalledWith(!valueProp); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/ExportButtons.spec.js b/service/vue3-client/tests/unit/shared/ExportButtons.spec.js new file mode 100644 index 0000000..8f938db --- /dev/null +++ b/service/vue3-client/tests/unit/shared/ExportButtons.spec.js @@ -0,0 +1,60 @@ +import { shallowMount } from '@vue/test-utils'; +import ExportButtons from '@/components/shared/ExportButtons.vue'; + +let wrapper = null; +const onClick = jest.fn(); + +beforeEach(() => { + wrapper = shallowMount(ExportButtons, { + propsData: { + exportLoading: true, + exportAllowed: false, + exportError: 'test error', + }, + listeners: { + 'export-json': onClick, + 'export-csv': onClick, + 'export-tsv': onClick, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('ExportButtons', () => { + it('does not display a spinner when not loading', () => { + const loader = wrapper.findAll('vue-simple-spinner-stub'); + expect(loader.length).toEqual(1); + }); + + it('displays a spinner when loading', () => { + wrapper.setProps({ exportLoading: false }); + wrapper.vm.$nextTick(() => { + const loader = wrapper.findAll('vue-simple-spinner-stub'); + expect(loader.length).toEqual(0); + }); + }); + + it('does not emit events on click when !exportAllowed', () => { + const buttons = wrapper.findAll('button'); + buttons.trigger('click'); + expect(onClick).not.toHaveBeenCalled(); + }); + + it('emits events on click when exportAllowed', () => { + wrapper.setProps({ exportAllowed: true }); + wrapper.vm.$nextTick(() => { + const buttons = wrapper.findAll('button'); + buttons.trigger('click'); + expect(onClick).toHaveBeenCalledTimes(buttons.length); + }); + }); + + it('renders the export error', () => { + const error = wrapper.find('.error'); + expect(error.text()).toEqual('test error'); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/HelpBubble.spec.js b/service/vue3-client/tests/unit/shared/HelpBubble.spec.js new file mode 100644 index 0000000..6ee0dc4 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/HelpBubble.spec.js @@ -0,0 +1,74 @@ +import { shallowMount } from '@vue/test-utils'; +import HelpBubble from '@/components/shared/HelpBubble.vue'; + +let wrapper = null; +const tooltip = jest.fn(); + +const $route = { + name: 'test', +}; + +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(HelpBubble, { + propsData: { + bubbleKey: 'test', + color: 'red', + exportError: 'test error', + }, + directives: { + tooltip, + }, + mocks: { + $route, + $store, + }, + stubs: ['font-awesome-icon'], + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('HelpBubble', () => { + it('renders a question mark icon when tooltipObj is located', () => { + const fa = wrapper.find('font-awesome-icon-stub'); + expect(fa.exists()).toBe(true); + expect(fa.attributes('icon')).toBe('fas,question-circle'); + }); + + it('sets the tooltip text when tooltipObj is located', () => { + expect(wrapper.vm.tooltipObj.text).toBe('this is a test text'); + }); + + it('does not render an icon when tooltipObj is not located (incorrect bubbleKey prop path)', () => { + wrapper.setProps({ bubbleKey: 'nonExistantKey' }); + wrapper.vm.$nextTick(() => { + const fa = wrapper.find('font-awesome-icon-stub'); + expect(fa.exists()).toBe(false); + }); + }); + + it('opens the tooltip on helpbubble click', async () => { + await wrapper.trigger('click'); + expect(wrapper.vm.isOpen).toEqual(true); + }); + + it('opens the tooltip on keyup enter', async () => { + await wrapper.trigger('keyup.enter'); + expect(wrapper.vm.isOpen).toEqual(true); + }); + + it('sets the color according to color prop', () => { + expect(wrapper.attributes('style')).toBe('color: red;'); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/MainFooter.spec.js b/service/vue3-client/tests/unit/shared/MainFooter.spec.js new file mode 100644 index 0000000..93b875b --- /dev/null +++ b/service/vue3-client/tests/unit/shared/MainFooter.spec.js @@ -0,0 +1,33 @@ +import { shallowMount } from '@vue/test-utils'; +import MainFooter from '@/components/shared/MainFooter.vue'; + +let wrapper = null; + +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(MainFooter, { + propsData: { + }, + mocks: { + $store, + }, + stubs: ['font-awesome-icon'], + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('MainFooter', () => { + it('renders a footer element', () => { + expect(wrapper.findAll('footer').length).toBe(1); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/MainHeader.spec.js b/service/vue3-client/tests/unit/shared/MainHeader.spec.js new file mode 100644 index 0000000..b55c013 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/MainHeader.spec.js @@ -0,0 +1,43 @@ +import { shallowMount } from '@vue/test-utils'; +import MainHeader from '@/components/shared/MainHeader.vue'; + +let wrapper = null; + +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(MainHeader, { + propsData: { + }, + mocks: { + $store, + }, + stubs: ['font-awesome-icon', 'router-link'], + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('MainHeader', () => { + it('renders a header element', () => { + expect(wrapper.findAll('header').length).toBe(1); + }); + + it('contains the skip link', () => { + expect(wrapper.findAll('#skip-link').length).toBe(1); + }); + + it('collapses on click', async () => { + expect(wrapper.vm.navCollapsed).toBe(false); + wrapper.find('.MainHeader-toggle').trigger('click'); + expect(wrapper.vm.navCollapsed).toBe(true); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/MainNav.spec.js b/service/vue3-client/tests/unit/shared/MainNav.spec.js new file mode 100644 index 0000000..6c19e64 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/MainNav.spec.js @@ -0,0 +1,41 @@ +import { shallowMount } from '@vue/test-utils'; +import MainNav from '@/components/shared/MainNav.vue'; + +let wrapper = null; + +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(MainNav, { + propsData: { + collapsed: false, + }, + mocks: { + $store, + }, + stubs: ['router-link'], + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('MainHeader', () => { + it('renders a nav element', () => { + expect(wrapper.findAll('nav').length).toBe(1); + }); + + it('adds collapse class when passed collapsed prop', async () => { + expect(wrapper.findAll('.collapse').length).toBe(0); + wrapper.setProps({ collapsed: true }); + await wrapper.vm.$nextTick(); + expect(wrapper.findAll('.collapse').length).toBe(1); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/PaginationComponent.spec.js b/service/vue3-client/tests/unit/shared/PaginationComponent.spec.js new file mode 100644 index 0000000..913fac6 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/PaginationComponent.spec.js @@ -0,0 +1,68 @@ +import { shallowMount } from '@vue/test-utils'; +import PaginationComponent from '@/components/shared/PaginationComponent.vue'; + +let wrapper = null; +let buttons = null; +const onGo = jest.fn(); + +beforeEach(() => { + wrapper = shallowMount(PaginationComponent, { + propsData: { + pagination: { + prev: {}, + next: {}, + }, + }, + listeners: { + go: onGo, + }, + }); + + buttons = wrapper.findAll('[role=button]'); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('PaginationComponent', () => { + it('has two buttons', () => { + expect(buttons.length).toBe(2); + }); + + it('enables buttons if pagination.prev and pagination.next props', () => { + const activeButtons = buttons.filter((button) => button.attributes('aria-disabled')); + expect(activeButtons.length).toBe(0); + }); + + it('emits go event on prev click', async () => { + await buttons.at(0).trigger('click'); + expect(onGo).toHaveBeenCalledWith('prev'); + }); + + it('emits go event on next keyup enter', async () => { + await buttons.at(1).trigger('keyup.enter'); + expect(onGo).toHaveBeenCalledWith('next'); + }); + + it('disables buttons if missing pagination.prev and pagination.next', () => { + wrapper.setProps({ pagination: null }); + wrapper.vm.$nextTick(async () => { + const activeButtons = buttons.filter((button) => button.attributes('aria-disabled')); + expect(activeButtons.length).toBe(2); + await buttons.trigger('click'); + expect(onGo).not.toHaveBeenCalled(); + }); + }); + + it('renders the error if error prop', () => { + expect(wrapper.find('.error').exists()).toBe(false); + wrapper.setProps({ error: 'test error' }); + wrapper.vm.$nextTick(() => { + const err = wrapper.find('.error'); + expect(err.exists()).toBe(true); + expect(err.text()).toBe('test error'); + }); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/PreviewTable.spec.js b/service/vue3-client/tests/unit/shared/PreviewTable.spec.js new file mode 100644 index 0000000..b858840 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/PreviewTable.spec.js @@ -0,0 +1,38 @@ +import { shallowMount } from '@vue/test-utils'; +import PreviewTable from '@/components/shared/PreviewTable.vue'; + +let wrapper = null; + +beforeEach(() => { + wrapper = shallowMount(PreviewTable, { + propsData: { + tableCols: [{}, {}], // 2 + previewData: { + from: 2020, + hits: [{}, {}, {}], // 3 + query: {}, + to: 2020, + total: 201, + }, + tableLayout: 'test', + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('PreviewTable', () => { + it('renders the same number of table headers as length of prop tableCols', () => { + expect(wrapper.findAll('th').length).toBe(2); + }); + + it('renders the same number of table rows as length of previewData[hitsProp]', () => { + expect(wrapper.findAll('tr').length).toBe(3 + 1); // +1 row for thead + }); + + it('applies the tableLayout class', () => { + expect(wrapper.classes('test')).toBe(true); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/SelectBase.spec.js b/service/vue3-client/tests/unit/shared/SelectBase.spec.js new file mode 100644 index 0000000..ea57574 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/SelectBase.spec.js @@ -0,0 +1,53 @@ +import { shallowMount } from '@vue/test-utils'; +import SelectBase from '@/components/shared/SelectBase.vue'; + +let wrapper = null; + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('SelectBase', () => { + it('gets the options on mount', () => { + const getOptions = jest.spyOn(SelectBase.methods, 'getOptions'); + wrapper = shallowMount(SelectBase); + expect(getOptions).toHaveBeenCalled(); + }); + + it('shows the spinner on loading', () => { + wrapper = shallowMount(SelectBase); + expect(wrapper.find('vue-simple-spinner-stub').exists()).toBe(false); + wrapper.setData({ loading: true }); + wrapper.vm.$nextTick(() => { + expect(wrapper.find('vue-simple-spinner-stub').exists()).toBe(true); + }); + }); + + // it('should fetch options if not provided', () => { + // }); + + it('sets the options if provided', () => { + wrapper = shallowMount(SelectBase, { + propsData: { + providedOptions: ['test'], + }, + }); + expect(wrapper.vm.options[0]).toBe('test'); + }); + + // it('should pass on the input event from vue-select', () => { + // }); + + // it('should emit the clear event on null input', () => { + // }); + + it('displays the incoming error', () => { + wrapper = shallowMount(SelectBase, { + propsData: { + incomingError: 'test error', + }, + }); + expect(wrapper.find('.error').text()).toBe('test error'); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/SelectOutput.spec.js b/service/vue3-client/tests/unit/shared/SelectOutput.spec.js new file mode 100644 index 0000000..7d919e5 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/SelectOutput.spec.js @@ -0,0 +1,161 @@ +import { shallowMount } from '@vue/test-utils'; +import SelectOutput from '@/components/shared/SelectOutput.vue'; + +import { enableFetchMocks } from 'jest-fetch-mock'; + +enableFetchMocks(); + +const apiReponse = { + 'intellectual-property': { + swe: 'Immaterialrättslig output', + subcategories: { + patent: { + swe: 'Patent', + }, + other: { + swe: 'Övrig immaterialrättslig output', + }, + }, + }, + conference: { + swe: 'Konferensoutput', + subcategories: { + paper: { + swe: 'Paper i proceeding', + }, + poster: { + swe: 'Poster', + }, + proceeding: { + swe: 'Proceeding (redaktörskap)', + }, + other: { + swe: 'Övriga konferensbidrag', + }, + }, + }, + 'artistic-work': { + swe: 'Konstnärlig output', + subcategories: { + 'artistic-thesis': { + swe: 'Dokumenterat konstnärligt forskningsprojekt (doktorsavhandling)', + }, + 'original-creative-work': { + swe: 'Konstnärligt arbete', + }, + }, + }, + publication: { + swe: 'Publikation', + subcategories: { + 'newspaper-article': { + swe: 'Artikel i dags-/nyhetstidning', + }, + 'journal-article': { + swe: 'Artikel i vetenskaplig tidskrift', + }, + 'magazine-article': { + swe: 'Artikel i övriga tidskrifter', + }, + 'encyclopedia-entry': { + swe: 'Bidrag till encyklopedi', + }, + book: { + swe: 'Bok', + }, + 'doctoral-thesis': { + swe: 'Doktorsavhandling', + }, + 'review-article': { + swe: 'Forskningsöversiktsartikel', + }, + 'foreword-afterword': { + swe: 'För-/Efterord', + }, + 'editorial-letter': { + swe: 'Inledande text i tidskrift / proceeding (letters, editorials, comments, notes)', + }, + 'report-chapter': { + swe: 'Kapitel i rapport', + }, + 'book-chapter': { + swe: 'Kapitel i samlingsverk', + }, + 'licentiate-thesis': { + swe: 'Licentiatavhandling', + }, + preprint: { + swe: 'Preprint', + }, + report: { + swe: 'Rapport', + }, + 'book-review': { + swe: 'Recension', + }, + 'edited-book': { + swe: 'Samlingsverk (redaktörsskap)', + }, + 'journal-issue': { + swe: 'Special-/temanummer av tidskrift (redaktörskap)', + }, + 'critical-edition': { + swe: 'Textkritisk utgåva', + }, + 'working-paper': { + swe: 'Working paper', + }, + other: { + swe: 'Övrig publikation', + }, + }, + }, + other: { + swe: 'Övrig output', + subcategories: { + 'data-set': { + swe: 'Dataset', + }, + software: { + swe: 'Programvara', + }, + }, + }, +}; + +const transformed = [{"label":"IMMATERIALRÄTTSLIG OUTPUT - ALLA","value":"*intellectual-property","sortKey":"IMMATERIALRÄTTSLIG OUTPUT - ALLA"},{"label":"Immaterialrättslig output","value":"intellectual-property","sortKey":"IMMATERIALRÄTTSLIG OUTPUT - ALLA"},{"label":"-- Patent","value":"intellectual-property.patent","sortKey":"IMMATERIALRÄTTSLIG OUTPUT - ALLA - Patent"},{"label":"-- Övrig immaterialrättslig output","value":"intellectual-property.other","sortKey":"IMMATERIALRÄTTSLIG OUTPUT - ALLA - Övrig immaterialrättslig output"},{"label":"KONFERENSOUTPUT - ALLA","value":"*conference","sortKey":"KONFERENSOUTPUT - ALLA"},{"label":"Konferensoutput","value":"conference","sortKey":"KONFERENSOUTPUT - ALLA"},{"label":"-- Paper i proceeding","value":"conference.paper","sortKey":"KONFERENSOUTPUT - ALLA - Paper i proceeding"},{"label":"-- Poster","value":"conference.poster","sortKey":"KONFERENSOUTPUT - ALLA - Poster"},{"label":"-- Proceeding (redaktörskap)","value":"conference.proceeding","sortKey":"KONFERENSOUTPUT - ALLA - Proceeding (redaktörskap)"},{"label":"-- Övriga konferensbidrag","value":"conference.other","sortKey":"KONFERENSOUTPUT - ALLA - Övriga konferensbidrag"},{"label":"KONSTNÄRLIG OUTPUT - ALLA","value":"*artistic-work","sortKey":"KONSTNÄRLIG OUTPUT - ALLA"},{"label":"Konstnärlig output","value":"artistic-work","sortKey":"KONSTNÄRLIG OUTPUT - ALLA"},{"label":"-- Dokumenterat konstnärligt forskningsprojekt (doktorsavhandling)","value":"artistic-work.artistic-thesis","sortKey":"KONSTNÄRLIG OUTPUT - ALLA - Dokumenterat konstnärligt forskningsprojekt (doktorsavhandling)"},{"label":"-- Konstnärligt arbete","value":"artistic-work.original-creative-work","sortKey":"KONSTNÄRLIG OUTPUT - ALLA - Konstnärligt arbete"},{"label":"PUBLIKATION - ALLA","value":"*publication","sortKey":"PUBLIKATION - ALLA"},{"label":"Publikation","value":"publication","sortKey":"PUBLIKATION - ALLA"},{"label":"-- Artikel i dags-/nyhetstidning","value":"publication.newspaper-article","sortKey":"PUBLIKATION - ALLA - Artikel i dags-/nyhetstidning"},{"label":"-- Artikel i vetenskaplig tidskrift","value":"publication.journal-article","sortKey":"PUBLIKATION - ALLA - Artikel i vetenskaplig tidskrift"},{"label":"-- Artikel i övriga tidskrifter","value":"publication.magazine-article","sortKey":"PUBLIKATION - ALLA - Artikel i övriga tidskrifter"},{"label":"-- Bidrag till encyklopedi","value":"publication.encyclopedia-entry","sortKey":"PUBLIKATION - ALLA - Bidrag till encyklopedi"},{"label":"-- Bok","value":"publication.book","sortKey":"PUBLIKATION - ALLA - Bok"},{"label":"-- Doktorsavhandling","value":"publication.doctoral-thesis","sortKey":"PUBLIKATION - ALLA - Doktorsavhandling"},{"label":"-- Forskningsöversiktsartikel","value":"publication.review-article","sortKey":"PUBLIKATION - ALLA - Forskningsöversiktsartikel"},{"label":"-- För-/Efterord","value":"publication.foreword-afterword","sortKey":"PUBLIKATION - ALLA - För-/Efterord"},{"label":"-- Inledande text i tidskrift / proceeding (letters, editorials, comments, notes)","value":"publication.editorial-letter","sortKey":"PUBLIKATION - ALLA - Inledande text i tidskrift / proceeding (letters, editorials, comments, notes)"},{"label":"-- Kapitel i rapport","value":"publication.report-chapter","sortKey":"PUBLIKATION - ALLA - Kapitel i rapport"},{"label":"-- Kapitel i samlingsverk","value":"publication.book-chapter","sortKey":"PUBLIKATION - ALLA - Kapitel i samlingsverk"},{"label":"-- Licentiatavhandling","value":"publication.licentiate-thesis","sortKey":"PUBLIKATION - ALLA - Licentiatavhandling"},{"label":"-- Preprint","value":"publication.preprint","sortKey":"PUBLIKATION - ALLA - Preprint"},{"label":"-- Rapport","value":"publication.report","sortKey":"PUBLIKATION - ALLA - Rapport"},{"label":"-- Recension","value":"publication.book-review","sortKey":"PUBLIKATION - ALLA - Recension"},{"label":"-- Samlingsverk (redaktörsskap)","value":"publication.edited-book","sortKey":"PUBLIKATION - ALLA - Samlingsverk (redaktörsskap)"},{"label":"-- Special-/temanummer av tidskrift (redaktörskap)","value":"publication.journal-issue","sortKey":"PUBLIKATION - ALLA - Special-/temanummer av tidskrift (redaktörskap)"},{"label":"-- Textkritisk utgåva","value":"publication.critical-edition","sortKey":"PUBLIKATION - ALLA - Textkritisk utgåva"},{"label":"-- Working paper","value":"publication.working-paper","sortKey":"PUBLIKATION - ALLA - Working paper"},{"label":"-- Övrig publikation","value":"publication.other","sortKey":"PUBLIKATION - ALLA - Övrig publikation"},{"label":"ÖVRIG OUTPUT - ALLA","value":"*other","sortKey":"ÖVRIG OUTPUT - ALLA"},{"label":"Övrig output","value":"other","sortKey":"ÖVRIG OUTPUT - ALLA"},{"label":"-- Dataset","value":"other.data-set","sortKey":"ÖVRIG OUTPUT - ALLA - Dataset"},{"label":"-- Programvara","value":"other.software","sortKey":"ÖVRIG OUTPUT - ALLA - Programvara"}]; + +let wrapper = null; +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + fetch.resetMocks(); + fetch.mockResponse(JSON.stringify(apiReponse)); + wrapper = shallowMount(SelectOutput, { + propsData: { + apiEndpoint: null, + }, + mocks: { + $store, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('SelectOutput', () => { + it('transforms the options correctly', async () => { + await wrapper.vm.$nextTick(); + expect(JSON.stringify(transformed)) + .toEqual(JSON.stringify(wrapper.vm.options)); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/SelectSource.spec.js b/service/vue3-client/tests/unit/shared/SelectSource.spec.js new file mode 100644 index 0000000..a244470 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/SelectSource.spec.js @@ -0,0 +1,96 @@ +import { shallowMount } from '@vue/test-utils'; +import SelectSource from '@/components/shared/SelectSource.vue'; + +import { enableFetchMocks } from 'jest-fetch-mock'; + +enableFetchMocks(); + +const apiReponse = { + sources: [ + { + name: 'Högskolan i Borås', + code: 'hb', + }, + { + name: 'Högskolan i Halmstad', + code: 'hh', + }, + { + name: 'Statens väg- och transportforskningsinstitut', + code: 'vti', + }, + { + name: 'Högskolan i Skövde', + code: 'his', + }, + { + name: 'Ersta Sköndal Bräcke högskola', + code: 'esh', + }, + { + name: 'Röda Korsets Högskola', + code: 'rkh', + }, + { + name: 'Konstfack', + code: 'konstfack', + }, + { + name: 'Enskilda Högskolan Stockholm', + code: 'ths', + }, + { + name: 'Nationalmuseum', + code: 'nationalmuseum', + }, + { + name: 'Kungl. Musikhögskolan', + code: 'kmh', + }, + { + name: 'Stockholms konstnärliga högskola', + code: 'uniarts', + }, + { + name: 'Kungl. Konsthögskolan', + code: 'kkh', + }, + ], +}; + +const transformed = [{ name: 'Enskilda Högskolan Stockholm', code: 'ths' }, { name: 'Ersta Sköndal Bräcke högskola', code: 'esh' }, { name: 'Högskolan i Borås', code: 'hb' }, { name: 'Högskolan i Halmstad', code: 'hh' }, { name: 'Högskolan i Skövde', code: 'his' }, { name: 'Konstfack', code: 'konstfack' }, { name: 'Kungl. Konsthögskolan', code: 'kkh' }, { name: 'Kungl. Musikhögskolan', code: 'kmh' }, { name: 'Nationalmuseum', code: 'nationalmuseum' }, { name: 'Röda Korsets Högskola', code: 'rkh' }, { name: 'Statens väg- och transportforskningsinstitut', code: 'vti' }, { name: 'Stockholms konstnärliga högskola', code: 'uniarts' }]; + +let wrapper = null; +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + fetch.resetMocks(); + fetch.mockResponse(JSON.stringify(apiReponse)); + wrapper = shallowMount(SelectSource, { + propsData: { + apiEndpoint: null, + }, + mocks: { + $store, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('SelectSource', () => { + it('transforms the options correctly', async () => { + await wrapper.vm.$nextTick(); + expect(JSON.stringify(transformed)) + .toEqual(JSON.stringify(wrapper.vm.options)); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/SelectSubject.spec.js b/service/vue3-client/tests/unit/shared/SelectSubject.spec.js new file mode 100644 index 0000000..9c0bbfb --- /dev/null +++ b/service/vue3-client/tests/unit/shared/SelectSubject.spec.js @@ -0,0 +1,119 @@ +import { shallowMount } from '@vue/test-utils'; +import SelectSubject from '@/components/shared/SelectSubject.vue'; + +import { enableFetchMocks } from 'jest-fetch-mock'; + +enableFetchMocks(); + +const apiReponse = { + 1: { + eng: 'Natural Sciences', + swe: 'Naturvetenskap', + subcategories: { + 101: { + eng: 'Mathematics', + swe: 'Matematik', + subcategories: { + 10101: { + eng: 'Mathematical Analysis', + swe: 'Matematisk analys', + }, + 10102: { + eng: 'Geometry', + swe: 'Geometri', + }, + 10103: { + eng: 'Algebra and Logic', + swe: 'Algebra och logik', + }, + 10104: { + eng: 'Discrete Mathematics', + swe: 'Diskret matematik', + }, + 10105: { + eng: 'Computational Mathematics', + swe: 'Beräkningsmatematik', + }, + 10106: { + eng: 'Probability Theory and Statistics', + swe: 'Sannolikhetsteori och statistik', + }, + 10199: { + eng: 'Other Mathematics', + swe: 'Annan matematik', + }, + }, + }, + }, + }, + 2: { + eng: 'Engineering and Technology', + swe: 'Teknik', + subcategories: { + 201: { + eng: 'Civil Engineering', + swe: 'Samhällsbyggnadsteknik', + subcategories: { + 20101: { + eng: 'Architectural Engineering', + swe: 'Arkitekturteknik', + }, + 20102: { + eng: 'Construction Management', + swe: 'Byggproduktion', + }, + }, + }, + }, + }, +}; + +const transformed = [ + { label: '1 - Naturvetenskap', id: '1' }, + { label: '101 - Matematik', id: '101' }, + { label: '10101 - Matematisk analys', id: '10101' }, + { label: '10102 - Geometri', id: '10102' }, + { label: '10103 - Algebra och logik', id: '10103' }, + { label: '10104 - Diskret matematik', id: '10104' }, + { label: '10105 - Beräkningsmatematik', id: '10105' }, + { label: '10106 - Sannolikhetsteori och statistik', id: '10106' }, + { label: '10199 - Annan matematik', id: '10199' }, + { label: '2 - Teknik', id: '2' }, + { label: '201 - Samhällsbyggnadsteknik', id: '201' }, + { label: '20101 - Arkitekturteknik', id: '20101' }, + { label: '20102 - Byggproduktion', id: '20102' }]; + +let wrapper = null; +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + fetch.resetMocks(); + fetch.mockResponse(JSON.stringify(apiReponse)); + wrapper = shallowMount(SelectSubject, { + propsData: { + apiEndpoint: null, + }, + mocks: { + $store, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('SelectSubject', () => { + it('transforms the options correctly', async () => { + await wrapper.vm.$nextTick(); + expect(JSON.stringify(transformed)) + .toEqual(JSON.stringify(wrapper.vm.options)); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/TabMenu.spec.js b/service/vue3-client/tests/unit/shared/TabMenu.spec.js new file mode 100644 index 0000000..2110993 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/TabMenu.spec.js @@ -0,0 +1,59 @@ +import { shallowMount } from '@vue/test-utils'; +import TabMenu from '@/components/shared/TabMenu.vue'; + +let wrapper = null; +const tabs = [{ id: 1, text: 'tab1' }, { id: 2, text: 'tab2' }, { id: 3, text: 'tab3' }]; +const onGo = jest.fn(); + +beforeEach(() => { + wrapper = shallowMount(TabMenu, { + propsData: { + tabs, + }, + listeners: { + go: onGo, + }, + stubs: ['router-link'], + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('TabMenu', () => { + it('renders as many tabs as items in tabs prop', () => { + expect(wrapper.findAll('.TabMenu-tab').length).toBe(tabs.length); + }); + + it('prints the tabs prop text', () => { + expect(wrapper.find('.TabMenu-tabText').text()).toBe(tabs[0].text); + }); + + it('renders router-links if link prop is true', async () => { + wrapper.setProps({ link: true }); + await wrapper.vm.$nextTick(); + expect(wrapper.findAll('router-link-stub').length).toBe(tabs.length); + }); + + it('sets the active tab from active prop', async () => { + expect(wrapper.findAll('.is-active').length).toBe(0); + wrapper.setProps({ active: 1 }); + await wrapper.vm.$nextTick(); + expect(wrapper.findAll('.is-active').length).toBe(1); + expect(wrapper.find('.is-active').attributes('aria-selected')).toBe('true'); + }); + + it('emits the go event with tab id on click', () => { + wrapper.find('.TabMenu-tab').trigger('click'); + expect(onGo).toHaveBeenCalled(); + expect(onGo).toHaveBeenCalledWith(tabs[0].id); + }); + + it('emits the go event with tab id on keyup enter', () => { + wrapper.find('.TabMenu-tab').trigger('keyup.enter'); + expect(onGo).toHaveBeenCalled(); + expect(onGo).toHaveBeenCalledWith(tabs[0].id); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/TableDataBoolean.spec.js b/service/vue3-client/tests/unit/shared/TableDataBoolean.spec.js new file mode 100644 index 0000000..92d31af --- /dev/null +++ b/service/vue3-client/tests/unit/shared/TableDataBoolean.spec.js @@ -0,0 +1,39 @@ +import { shallowMount } from '@vue/test-utils'; +import TableDataBoolean from '@/components/shared/TableDataBoolean.vue'; + +let wrapper = null; + +const $store = { + getters: { + settings: { + language: 'swe', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(TableDataBoolean, { + propsData: { + tdValue: true, + tdKey: 'test', + }, + mocks: { + $store, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('TableDataBoolean', () => { + it('renders a word from a boolean value according to language settings', async () => { + const span = wrapper.find('span'); + expect(span.text()).toBe('Ja'); + expect(span.attributes('title')).toBe('Ja'); + wrapper.setProps({ tdValue: false }); + await wrapper.vm.$nextTick(); + expect(span.text()).toBe('Nej'); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/TableDataId.spec.js b/service/vue3-client/tests/unit/shared/TableDataId.spec.js new file mode 100644 index 0000000..334f9e2 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/TableDataId.spec.js @@ -0,0 +1,74 @@ +import { shallowMount } from '@vue/test-utils'; +import TableDataId from '@/components/shared/TableDataId.vue'; + +let wrapper = null; +const tooltip = jest.fn(); +const id = 'oai:DiVA.org:hb-23274'; +const $route = { + name: 'Bibliometrics', +}; + +const $store = { + getters: { + settings: { + language: 'swe', + apiPath: '/api/v1', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(TableDataId, { + propsData: { + tdKey: 'recordId', + tdValue: id, + deduped: () => false, + }, + directives: { + tooltip, + }, + mocks: { + $route, + $store, + }, + stubs: ['font-awesome-icon'], + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('TableDataId', () => { + it('displays an icon if record is deduplicated', async () => { + expect(wrapper.find('font-awesome-icon-stub[icon="fas,copy"]').exists()).toBe(false); + wrapper.setProps({ deduped: () => true }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('font-awesome-icon-stub[icon="fas,copy"]').exists()).toBe(true); + }); + + it('renders a link if url can be resolved', async () => { + wrapper.vm.$route.name = 'test'; + await wrapper.vm.$nextTick(); + expect(wrapper.find('a').exists()).toBe(false); + + wrapper.vm.$route.name = 'Bibliometrics'; + await wrapper.vm.$nextTick(); + const link = wrapper.find('a'); + expect(link.exists()).toBe(true); + expect(link.attributes('href').startsWith('/api')).toBe(true); + }); + + it('opens link in new tab and display an icon to indicate this', () => { + expect(wrapper.find('font-awesome-icon-stub[icon="fa,external-link-alt"]').exists()).toBe(true); + expect(wrapper.find('a').attributes('target')).toBe('_blank'); + }); + + it('prints the id as text if linkUrl cannot be determined', async () => { + wrapper.vm.$route.name = 'test'; + await wrapper.vm.$nextTick(); + expect(wrapper.find('a').exists()).toBe(false); + expect(wrapper.find('.TableDataId > span').text()).toBe(id); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/TableDataLink.spec.js b/service/vue3-client/tests/unit/shared/TableDataLink.spec.js new file mode 100644 index 0000000..22bbc0a --- /dev/null +++ b/service/vue3-client/tests/unit/shared/TableDataLink.spec.js @@ -0,0 +1,57 @@ +import { shallowMount } from '@vue/test-utils'; +import TableDataLink from '@/components/shared/TableDataLink.vue'; + +let wrapper = null; +const tdValue = 'test.com'; +const shift = 'http://'; +const unshift = 'test'; + +let link = null; + +beforeEach(() => { + wrapper = shallowMount(TableDataLink, { + propsData: { + tdValue, + newTab: false, + }, + stubs: ['font-awesome-icon'], + }); + link = wrapper.find('a'); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('TableDataLink', () => { + it('renders a link', () => { + expect(link.exists()).toBe(true); + }); + + it('sets the tdValue as link text', () => { + expect(link.text()).toBe(tdValue); + }); + + it('sets target attribute and renders icon if newTab prop is true', async () => { + expect(wrapper.find('font-awesome-icon-stub[icon="fa,external-link-alt"]').exists()).toBe(false); + expect(link.attributes('target')).toBe(undefined); + wrapper.setProps({ newTab: true }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('font-awesome-icon-stub[icon="fa,external-link-alt"]').exists()).toBe(true); + expect(link.attributes('target')).toBe('_blank'); + }); + + it('adds the shift prop value to start of link text and url', async () => { + wrapper.setProps({ shift }); + await wrapper.vm.$nextTick(); + expect(link.text()).toBe(shift + tdValue); + expect(link.attributes('href')).toBe(shift + tdValue); + }); + + it('removes the unshift prop value from start of link text', async () => { + wrapper.setProps({ unshift }); + await wrapper.vm.$nextTick(); + expect(link.text()).toBe(tdValue.replace(unshift, '')); + expect(link.attributes('href')).toBe(tdValue); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/TableDataList.spec.js b/service/vue3-client/tests/unit/shared/TableDataList.spec.js new file mode 100644 index 0000000..4362dae --- /dev/null +++ b/service/vue3-client/tests/unit/shared/TableDataList.spec.js @@ -0,0 +1,65 @@ +import { shallowMount } from '@vue/test-utils'; +import TableDataList from '@/components/shared/TableDataList.vue'; +import TableDataBoolean from '@/components/shared/TableDataBoolean.vue'; + +let wrapper = null; + +beforeEach(() => { + wrapper = shallowMount(TableDataList, { + propsData: { + tdKey: 'test', + tdValue: [], + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('TableDataList', () => { + it('renders an ul (if tdValue prop is provided)', async () => { + expect(wrapper.find('ul').exists()).toBe(false); + wrapper.setProps({ tdValue: [1, 2, 3] }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('ul').exists()).toBe(true); + }); + + it('prints the target keys as list items', async () => { + wrapper.setProps({ tdValue: [{ first: 'foo', last: 'bar' }], targetKeys: ['first', 'last'] }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('li').text()).toBe('foo bar'); + }); + + it('uses the renderFn for rendering if provided', async () => { + const text = 'example text'; + wrapper.setProps({ tdValue: [1], renderFn: () => [text] }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('li').text()).toBe(text); + }); + + it('uses the renderComponent if provided', async () => { + wrapper.setProps({ tdValue: [true], renderComponent: TableDataBoolean }); + wrapper.vm.$attrs.tdKey = 'test'; + await wrapper.vm.$nextTick(); + expect(wrapper.find('table-data-boolean-stub').exists()).toBe(true); + }); + + it('restricts the number of li:s by limit variable and adds ... indicator', async () => { + const limit = 1; + wrapper.setProps({ tdValue: [1, 2, 3, 4, 5] }); + wrapper.setData({ limit }); + await wrapper.vm.$nextTick(); + expect(wrapper.findAll('li').length).toBe(limit + 1); + expect(wrapper.findAll('li').at(limit).text()).toBe('...'); + }); + + it('prints empy lines if showEmptyValues is true', async () => { + wrapper.setProps({ tdValue: [1, null, 3, '', 5] }); + await wrapper.vm.$nextTick(); + expect(wrapper.findAll('li').length).toBe(3); + wrapper.setProps({ showEmptyValues: true }); + await wrapper.vm.$nextTick(); + expect(wrapper.findAll('li').length).toBe(5); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/TableDataMultiLine.spec.js b/service/vue3-client/tests/unit/shared/TableDataMultiLine.spec.js new file mode 100644 index 0000000..08ef815 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/TableDataMultiLine.spec.js @@ -0,0 +1,38 @@ +import { shallowMount } from '@vue/test-utils'; +import TableDataMultiLine from '@/components/shared/TableDataMultiLine.vue'; + +let wrapper = null; +const lorem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'; + +beforeEach(() => { + wrapper = shallowMount(TableDataMultiLine, { + propsData: { + tdKey: 'test', + tdValue: lorem, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('TableDataMultiLine', () => { + it('renders a span element', () => { + expect(wrapper.find('span').exists()).toBe(true); + }); + + it('cuts tdValue at trimAt prop', async () => { + const trimAt = 1; + const ellipsLength = 3; + wrapper.setProps({ trimAt: 1 }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('span').text().length).toBe(trimAt + ellipsLength); + }); + + it('ellipses text if trimmed', async () => { + wrapper.setProps({ trimAt: 1 }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('span').text().includes('...')).toBe(true); + }); +}); diff --git a/service/vue3-client/tests/unit/shared/YearPicker.spec.js b/service/vue3-client/tests/unit/shared/YearPicker.spec.js new file mode 100644 index 0000000..f460af1 --- /dev/null +++ b/service/vue3-client/tests/unit/shared/YearPicker.spec.js @@ -0,0 +1,57 @@ +import { shallowMount } from '@vue/test-utils'; +import YearPicker from '@/components/shared/YearPicker.vue'; + +let wrapper = null; +const years = { from: '2019', to: '2020' }; +const onInput = jest.fn(); + +beforeEach(() => { + wrapper = shallowMount(YearPicker, { + propsData: { + value: years, + }, + listeners: { + input: onInput, + }, + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('TabMenu', () => { + it('renders two number inputs with labels', () => { + expect(wrapper.findAll('input[type="number"]').length).toBe(2); + expect(wrapper.findAll('label').length).toBe(2); + }); + + it('set the value prop as values for inputs', () => { + expect(wrapper.find('#year-from').element.value).toBe(years.from); + expect(wrapper.find('#year-to').element.value).toBe(years.to); + }); + + it('renders a legend with text if passed a legend prop', async () => { + const legendText = 'test legend'; + expect(wrapper.find('legend').exists()).toBe(false); + wrapper.setProps({ legend: legendText }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('legend').exists()).toBe(true); + expect(wrapper.find('legend').text()).toBe(legendText); + }); + + it('emits input values on user change', () => { + wrapper.find('.YearPicker-dateInput').trigger('input'); + expect(onInput).toHaveBeenCalledWith(years); + }); + + it('displays the error', async () => { + const error = 'test error'; + expect(wrapper.find('.error').exists()).toBe(false); + wrapper.setProps({ error }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('.error').exists()).toBe(true); + expect(wrapper.find('.error').text()).toBe(error); + }); +}); diff --git a/service/vue3-client/tests/unit/views/Bibliometrics.spec.js b/service/vue3-client/tests/unit/views/Bibliometrics.spec.js new file mode 100644 index 0000000..fb70836 --- /dev/null +++ b/service/vue3-client/tests/unit/views/Bibliometrics.spec.js @@ -0,0 +1,32 @@ +import { shallowMount } from '@vue/test-utils'; +import Bibliometrics from '@/views/Bibliometrics.vue'; + +let wrapper = null; + +const $route = { + name: 'Bibliometrics', + params: { + section: 'test', + }, +}; + +beforeEach(() => { + wrapper = shallowMount(Bibliometrics, { + propsData: { + }, + mocks: { + $route, + }, + stubs: ['BibliometricsSearch', 'DataDump'], + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('Bibliometrics', () => { + it('has search tab as default on mount', () => { + expect(wrapper.find('tab-menu-stub').attributes('active')).toBe('search'); + }); +}); diff --git a/service/vue3-client/tests/unit/views/Classify.spec.js b/service/vue3-client/tests/unit/views/Classify.spec.js new file mode 100644 index 0000000..a50d486 --- /dev/null +++ b/service/vue3-client/tests/unit/views/Classify.spec.js @@ -0,0 +1,42 @@ +import { shallowMount } from '@vue/test-utils'; +import Classify from '@/views/Classify.vue'; + +let wrapper = null; + +const $route = { + name: 'Classify', + params: { + section: 'test', + }, +}; + +const $store = { + getters: { + settings: { + language: 'swe', + apiPath: '/api/v1', + }, + }, +}; + +beforeEach(() => { + wrapper = shallowMount(Classify, { + propsData: { + }, + mocks: { + $route, + $store, + }, + stubs: ['ClassifyForm', 'ClassifyDocumentation'], + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('Classify', () => { + it('has classify tab as default on mount', () => { + expect(wrapper.find('tab-menu-stub').attributes('active')).toBe('classify'); + }); +}); diff --git a/service/vue3-client/tests/unit/views/Datastatus.spec.js b/service/vue3-client/tests/unit/views/Datastatus.spec.js new file mode 100644 index 0000000..f2d01a6 --- /dev/null +++ b/service/vue3-client/tests/unit/views/Datastatus.spec.js @@ -0,0 +1,98 @@ +import { shallowMount } from '@vue/test-utils'; +import Datastatus from '@/views/Datastatus.vue'; + +import { enableFetchMocks } from 'jest-fetch-mock'; + +enableFetchMocks(); + +let wrapper = null; +let sync = null; +const fetchMsg = 'fetch successful'; +const apiReponse = { fetchMsg }; + +const $route = { + name: 'Datastatus', + params: { + section: 'test', + }, +}; + +const $store = { + getters: { + settings: { + language: 'swe', + apiPath: '/api/v1', + }, + }, +}; + +beforeEach(() => { + sync = jest.spyOn(Datastatus.methods, 'sync'); + fetch.resetMocks(); + fetch.mockResponse(JSON.stringify(apiReponse)); + wrapper = shallowMount(Datastatus, { + propsData: { + params: {}, + query: {}, + }, + mocks: { + $route, + $store, + }, + stubs: ['SelectSource', 'YearPicker', 'ShortStats', 'DatastatusSummary', 'DatastatusValidations', 'DatastatusSubjects', 'router-link'], + }); +}); + +afterEach(() => { + wrapper.destroy(); + jest.clearAllMocks(); +}); + +describe('Datastatus', () => { + it('syncs form state on mount', () => { + expect(sync).toHaveBeenCalled(); + }); + + it('fetches sources on mount', async () => { + await wrapper.vm.$nextTick(); + expect(wrapper.vm.sources.fetchMsg).toBe(fetchMsg); + }); + + it('fetches summary on mount', async () => { + await wrapper.vm.$nextTick(); + expect(wrapper.vm.data.fetchMsg).toBe(fetchMsg); + }); + + it('displays a spinner while fetching (on mount)', async () => { + expect(wrapper.find('vue-simple-spinner-stub').exists()).toBe(true); + await wrapper.vm.$nextTick(); + expect(wrapper.find('vue-simple-spinner-stub').exists()).toBe(false); + }); + + it('renders stats if it has data', async () => { + expect(wrapper.find('datastatussummary-stub').exists()).toBe(false); + await wrapper.vm.$nextTick(); + expect(wrapper.find('datastatussummary-stub').exists()).toBe(true); + }); + + it('sets the yearInputError on erroneous selection', async () => { + expect(wrapper.vm.yearInputError).toBeFalsy(); + wrapper.setData({ selected: { source: '', years: { to: '1', from: '2' } } }); + await wrapper.vm.$nextTick(); + expect(wrapper.vm.yearInputError).toBeTruthy(); + }); + + it('disables the submit button on yearInputError', async () => { + expect(wrapper.find('.Datastatus-submit .btn').attributes('disabled')).toBe(undefined); + wrapper.setData({ selected: { source: '', years: { to: '1', from: '2' } } }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('.Datastatus-submit .btn').attributes('disabled')).toBe('disabled'); + }); + + it('displays the fetch error', async () => { + expect(wrapper.find('.error').exists()).toBe(false); + wrapper.setData({ error: 'test error' }); + await wrapper.vm.$nextTick(); + expect(wrapper.find('.error').exists()).toBe(true); + }); +}); diff --git a/service/vue3-client/tests/unit/views/Process.spec.js b/service/vue3-client/tests/unit/views/Process.spec.js new file mode 100644 index 0000000..70558e2 --- /dev/null +++ b/service/vue3-client/tests/unit/views/Process.spec.js @@ -0,0 +1,32 @@ +import { shallowMount } from '@vue/test-utils'; +import Process from '@/views/Process.vue'; + +let wrapper = null; + +const $route = { + name: 'Process', + params: { + section: 'test', + }, +}; + +beforeEach(() => { + wrapper = shallowMount(Process, { + propsData: { + }, + mocks: { + $route, + }, + stubs: ['DataQuality', 'HarvestStatus'], + }); +}); + +afterEach(() => { + wrapper.destroy(); +}); + +describe('Process', () => { + it('has quality tab as default on mount', () => { + expect(wrapper.find('tab-menu-stub').attributes('active')).toBe('quality'); + }); +}); diff --git a/service/vue3-client/yarn.lock b/service/vue3-client/yarn.lock new file mode 100644 index 0000000..5527341 --- /dev/null +++ b/service/vue3-client/yarn.lock @@ -0,0 +1,6295 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-validator-identifier@npm:7.22.5" + checksum: 7f0f30113474a28298c12161763b49de5018732290ca4de13cdaefd4fd0d635a6fe3f6686c37a02905fb1e64f21a5ee2b55140cf7b070e729f1bd66866506aea + languageName: node + linkType: hard + +"@babel/parser@npm:^7.20.15, @babel/parser@npm:^7.21.3": + version: 7.22.5 + resolution: "@babel/parser@npm:7.22.5" + bin: + parser: ./bin/babel-parser.js + checksum: 470ebba516417ce8683b36e2eddd56dcfecb32c54b9bb507e28eb76b30d1c3e618fd0cfeee1f64d8357c2254514e1a19e32885cfb4e73149f4ae875436a6d59c + languageName: node + linkType: hard + +"@babel/types@npm:^7.8.3": + version: 7.22.10 + resolution: "@babel/types@npm:7.22.10" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.5 + to-fast-properties: ^2.0.0 + checksum: 095c4f4b7503fa816e4094113f0ec2351ef96ff32012010b771693066ff628c7c664b21c6bd3fb93aeb46fe7c61f6b3a3c9e4ed0034d6a2481201c417371c8af + languageName: node + linkType: hard + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 + languageName: node + linkType: hard + +"@cypress/request@npm:^3.0.0": + version: 3.0.1 + resolution: "@cypress/request@npm:3.0.1" + dependencies: + aws-sign2: ~0.7.0 + aws4: ^1.8.0 + caseless: ~0.12.0 + combined-stream: ~1.0.6 + extend: ~3.0.2 + forever-agent: ~0.6.1 + form-data: ~2.3.2 + http-signature: ~1.3.6 + is-typedarray: ~1.0.0 + isstream: ~0.1.2 + json-stringify-safe: ~5.0.1 + mime-types: ~2.1.19 + performance-now: ^2.1.0 + qs: 6.10.4 + safe-buffer: ^5.1.2 + tough-cookie: ^4.1.3 + tunnel-agent: ^0.6.0 + uuid: ^8.3.2 + checksum: 7175522ebdbe30e3c37973e204c437c23ce659e58d5939466615bddcd58d778f3a8ea40f087b965ae8b8138ea8d102b729c6eb18c6324f121f3778f4a2e8e727 + languageName: node + linkType: hard + +"@cypress/xvfb@npm:^1.2.4": + version: 1.2.4 + resolution: "@cypress/xvfb@npm:1.2.4" + dependencies: + debug: ^3.1.0 + lodash.once: ^4.1.1 + checksum: 7bdcdaeb1bb692ec9d9bf8ec52538aa0bead6764753f4a067a171a511807a43fab016f7285a56bef6a606c2467ff3f1365e1ad2d2d583b81beed849ee1573fd1 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-arm64@npm:0.17.19" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-arm@npm:0.17.19" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/android-x64@npm:0.17.19" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/darwin-arm64@npm:0.17.19" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/darwin-x64@npm:0.17.19" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/freebsd-arm64@npm:0.17.19" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/freebsd-x64@npm:0.17.19" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-arm64@npm:0.17.19" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-arm@npm:0.17.19" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-ia32@npm:0.17.19" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-loong64@npm:0.17.19" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-mips64el@npm:0.17.19" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-ppc64@npm:0.17.19" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-riscv64@npm:0.17.19" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-s390x@npm:0.17.19" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/linux-x64@npm:0.17.19" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/netbsd-x64@npm:0.17.19" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/openbsd-x64@npm:0.17.19" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/sunos-x64@npm:0.17.19" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/win32-arm64@npm:0.17.19" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/win32-ia32@npm:0.17.19" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.17.19": + version: 0.17.19 + resolution: "@esbuild/win32-x64@npm:0.17.19" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.3.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0": + version: 4.5.1 + resolution: "@eslint-community/regexpp@npm:4.5.1" + checksum: 6d901166d64998d591fab4db1c2f872981ccd5f6fe066a1ad0a93d4e11855ecae6bfb76660869a469563e8882d4307228cebd41142adb409d182f2966771e57e + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.0.3": + version: 2.0.3 + resolution: "@eslint/eslintrc@npm:2.0.3" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.5.2 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92 + languageName: node + linkType: hard + +"@eslint/js@npm:8.43.0": + version: 8.43.0 + resolution: "@eslint/js@npm:8.43.0" + checksum: 580487a09c82ac169744d36e4af77bc4f582c9a37749d1e9481eb93626c8f3991b2390c6e4e69e5642e3b6e870912b839229a0e23594fae348156ea5a8ed7e2e + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.1.0": + version: 1.3.1 + resolution: "@floating-ui/core@npm:1.3.1" + checksum: fe3b40fcaec95b0825c01a98330ae75b60c61c395ca012055a32f9c22ab97fde8ce1bd14fce3d242beb9dbe4564c90ce4a7a767851911d4215b9ec7721440e5b + languageName: node + linkType: hard + +"@floating-ui/dom@npm:~1.1.1": + version: 1.1.1 + resolution: "@floating-ui/dom@npm:1.1.1" + dependencies: + "@floating-ui/core": ^1.1.0 + checksum: 8b7f3b98ed7ec0b634e4a0b735253b0442358c5cea8302935fc185b2bd882202a053622abe9248c76d0908645dd35f93adeaed2d64371b2ab76b36725ce3f7d3 + languageName: node + linkType: hard + +"@fortawesome/fontawesome-common-types@npm:6.4.0": + version: 6.4.0 + resolution: "@fortawesome/fontawesome-common-types@npm:6.4.0" + checksum: a9b79136caa615352bd921cfe2710516321b402cd76c3f0ae68e579a7e3d7645c5a5c0ecd7516c0b207adeeffd1d2174978638d8c0d3c8c937d66fca4f2ff556 + languageName: node + linkType: hard + +"@fortawesome/fontawesome-svg-core@npm:^6.4.0": + version: 6.4.0 + resolution: "@fortawesome/fontawesome-svg-core@npm:6.4.0" + dependencies: + "@fortawesome/fontawesome-common-types": 6.4.0 + checksum: 5d4e6c15f814f5ce29053b666d0c7d194dc8ba173d128a38cc5856403a09d4e817e54956d30ed8d48d621f2f5ebcc71756f4e8fe5c5a091c636fc728fcb2362b + languageName: node + linkType: hard + +"@fortawesome/free-brands-svg-icons@npm:^6.4.0": + version: 6.4.0 + resolution: "@fortawesome/free-brands-svg-icons@npm:6.4.0" + dependencies: + "@fortawesome/fontawesome-common-types": 6.4.0 + checksum: 110b22ec366793bc2daa10d0016dfcdf0a0341ced0d8d5c4f68c86e7ffb5e58d3a0b32062e0daaf38af010f85147a9d33e7fd7a8fde79309af7a05254eadbf31 + languageName: node + linkType: hard + +"@fortawesome/free-regular-svg-icons@npm:^6.4.0": + version: 6.4.0 + resolution: "@fortawesome/free-regular-svg-icons@npm:6.4.0" + dependencies: + "@fortawesome/fontawesome-common-types": 6.4.0 + checksum: a52689349b858a73b179532a207f98d9ee0f28b31e22eaffa6ce23cf3bfec8cc52bcd35770a0943a2dd1328bafbfdea6809231abee7a8601796bc0fb9759d25f + languageName: node + linkType: hard + +"@fortawesome/free-solid-svg-icons@npm:^6.4.0": + version: 6.4.0 + resolution: "@fortawesome/free-solid-svg-icons@npm:6.4.0" + dependencies: + "@fortawesome/fontawesome-common-types": 6.4.0 + checksum: efdd1688620be3d52aacaeac36c955571962e174ae981fc697b6e92fb0996b00166d02e7729a59ea93713a514e2c8d564ab1aa79c9653b4cfed0263e4874d070 + languageName: node + linkType: hard + +"@fortawesome/vue-fontawesome@npm:^3.0.3": + version: 3.0.3 + resolution: "@fortawesome/vue-fontawesome@npm:3.0.3" + peerDependencies: + "@fortawesome/fontawesome-svg-core": ~1 || ~6 + vue: ">= 3.0.0 < 4" + checksum: a3ec4db7c849c8378eb25c35a8e7905a37df9d3263d5284d0ce8bd9cff1d79bc7015ec68e7a2d29aedb521408f2d47bfb90a8756262394e8e2cb6e9bc73a3b41 + languageName: node + linkType: hard + +"@hapi/hoek@npm:^9.0.0": + version: 9.3.0 + resolution: "@hapi/hoek@npm:9.3.0" + checksum: 4771c7a776242c3c022b168046af4e324d116a9d2e1d60631ee64f474c6e38d1bb07092d898bf95c7bc5d334c5582798a1456321b2e53ca817d4e7c88bc25b43 + languageName: node + linkType: hard + +"@hapi/topo@npm:^5.0.0": + version: 5.1.0 + resolution: "@hapi/topo@npm:5.1.0" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: 604dfd5dde76d5c334bd03f9001fce69c7ce529883acf92da96f4fe7e51221bf5e5110e964caca287a6a616ba027c071748ab636ff178ad750547fba611d6014 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.10": + version: 0.11.10 + resolution: "@humanwhocodes/config-array@npm:0.11.10" + dependencies: + "@humanwhocodes/object-schema": ^1.2.1 + debug: ^4.1.1 + minimatch: ^3.0.5 + checksum: 1b1302e2403d0e35bc43e66d67a2b36b0ad1119efc704b5faff68c41f791a052355b010fb2d27ef022670f550de24cd6d08d5ecf0821c16326b7dcd0ee5d5d8a + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.13": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + +"@kurkle/color@npm:^0.3.0": + version: 0.3.2 + resolution: "@kurkle/color@npm:0.3.2" + checksum: 79e97b31f8f6efb28c69d373f94b0c7480226fe8ec95221f518ac998e156444a496727ce47de6d728eb5c3369288e794cba82cae34253deb0d472d3bfe080e49 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@rushstack/eslint-patch@npm:^1.2.0": + version: 1.3.2 + resolution: "@rushstack/eslint-patch@npm:1.3.2" + checksum: 010c87ef2d901faaaf70ea1bf86fd3e7b74f24e23205f836e9a32790bca2076afe5de58ded03c35cb482f83691c8d22b1a0c34291b075bfe81afd26cfa5d14cc + languageName: node + linkType: hard + +"@sideway/address@npm:^4.1.3": + version: 4.1.4 + resolution: "@sideway/address@npm:4.1.4" + dependencies: + "@hapi/hoek": ^9.0.0 + checksum: b9fca2a93ac2c975ba12e0a6d97853832fb1f4fb02393015e012b47fa916a75ca95102d77214b2a29a2784740df2407951af8c5dde054824c65577fd293c4cdb + languageName: node + linkType: hard + +"@sideway/formula@npm:^3.0.1": + version: 3.0.1 + resolution: "@sideway/formula@npm:3.0.1" + checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a + languageName: node + linkType: hard + +"@sideway/pinpoint@npm:^2.0.0": + version: 2.0.0 + resolution: "@sideway/pinpoint@npm:2.0.0" + checksum: 0f4491e5897fcf5bf02c46f5c359c56a314e90ba243f42f0c100437935daa2488f20482f0f77186bd6bf43345095a95d8143ecf8b1f4d876a7bc0806aba9c3d2 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@tsconfig/node18@npm:^2.0.1": + version: 2.0.1 + resolution: "@tsconfig/node18@npm:2.0.1" + checksum: a7bf667fadf3825c5c476d33b054e363b10156f764b649d9d6f8ffa1613c13f539be2b09812e1e86bc5b81df3bac02ea76b0c8779dc285cf4a2044fdbdae0180 + languageName: node + linkType: hard + +"@types/chai-subset@npm:^1.3.3": + version: 1.3.3 + resolution: "@types/chai-subset@npm:1.3.3" + dependencies: + "@types/chai": "*" + checksum: 4481da7345022995f5a105e6683744f7203d2c3d19cfe88d8e17274d045722948abf55e0adfd97709e0f043dade37a4d4e98cd4c660e2e8a14f23e6ecf79418f + languageName: node + linkType: hard + +"@types/chai@npm:*, @types/chai@npm:^4.3.5": + version: 4.3.5 + resolution: "@types/chai@npm:4.3.5" + checksum: c8f26a88c6b5b53a3275c7f5ff8f107028e3cbb9ff26795fff5f3d9dea07106a54ce9e2dce5e40347f7c4cc35657900aaf0c83934a25a1ae12e61e0f5516e431 + languageName: node + linkType: hard + +"@types/jsdom@npm:^21.1.1": + version: 21.1.1 + resolution: "@types/jsdom@npm:21.1.1" + dependencies: + "@types/node": "*" + "@types/tough-cookie": "*" + parse5: ^7.0.0 + checksum: 7450d6e23aa31b837a1682f0e59b06838aacca85c9d030035f40e21d559169c773aee5cee9244f23c3004b78f7064f0c540ceb808d2f187deb3140f2b0449dee + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.9": + version: 7.0.12 + resolution: "@types/json-schema@npm:7.0.12" + checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^18.16.17": + version: 18.16.18 + resolution: "@types/node@npm:18.16.18" + checksum: d32d8a0a04cd3f5ecb361bcb42f3a07623881ac90d680e06bf626defb3c663a94860d11690babe607cfe67265eceeb8a59ba5fe40c0e49f5a1b01e0088640469 + languageName: node + linkType: hard + +"@types/node@npm:^18.17.5": + version: 18.17.15 + resolution: "@types/node@npm:18.17.15" + checksum: eed11d4398ccdb999a4c65658ee75de621a4ad57aece48ed2fb8803b1e2711fadf58d8aefbdb0a447d69cf3cba602ca32fe0fc92077575950a796e1dc13baa0f + languageName: node + linkType: hard + +"@types/semver@npm:^7.3.12": + version: 7.5.0 + resolution: "@types/semver@npm:7.5.0" + checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 + languageName: node + linkType: hard + +"@types/sinonjs__fake-timers@npm:8.1.1": + version: 8.1.1 + resolution: "@types/sinonjs__fake-timers@npm:8.1.1" + checksum: ca09d54d47091d87020824a73f026300fa06b17cd9f2f9b9387f28b549364b141ef194ee28db762f6588de71d8febcd17f753163cb7ea116b8387c18e80ebd5c + languageName: node + linkType: hard + +"@types/sizzle@npm:^2.3.2": + version: 2.3.3 + resolution: "@types/sizzle@npm:2.3.3" + checksum: 586a9fb1f6ff3e325e0f2cc1596a460615f0bc8a28f6e276ac9b509401039dd242fa8b34496d3a30c52f5b495873922d09a9e76c50c2ab2bcc70ba3fb9c4e160 + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.2 + resolution: "@types/tough-cookie@npm:4.0.2" + checksum: e055556ffdaa39ad85ede0af192c93f93f986f4bd9e9426efdc2948e3e2632db3a4a584d4937dbf6d7620527419bc99e6182d3daf2b08685e710f2eda5291905 + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.0 + resolution: "@types/yauzl@npm:2.10.0" + dependencies: + "@types/node": "*" + checksum: 55d27ae5d346ea260e40121675c24e112ef0247649073848e5d4e03182713ae4ec8142b98f61a1c6cbe7d3b72fa99bbadb65d8b01873e5e605cdc30f1ff70ef2 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^5.59.1": + version: 5.60.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.60.1" + dependencies: + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/type-utils": 5.60.1 + "@typescript-eslint/utils": 5.60.1 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 6ea3fdc64b216ee709318bfce1573cd8d90836150f0075aaa8755c347541af9ec026043e538a3264d28d1b32ff49b1fd7c6163826b8513f19f0957fefccf7752 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^5.59.1": + version: 5.60.1 + resolution: "@typescript-eslint/parser@npm:5.60.1" + dependencies: + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/typescript-estree": 5.60.1 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 08f1552ab0da178524a8de3654d2fb7c8ecb9efdad8e771c9cbf4af555c42e77d17b2c182d139a531cc76c3cabd091d1d25024c2c215cb809dca8b147c8a493c + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/scope-manager@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/visitor-keys": 5.60.1 + checksum: 32c0786123f12fbb861aba3527471134a2e9978c7f712e0d7650080651870903482aed72a55f81deba9493118c1ca3c57edaaaa75d7acd9892818e3e9cc341ef + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/type-utils@npm:5.60.1" + dependencies: + "@typescript-eslint/typescript-estree": 5.60.1 + "@typescript-eslint/utils": 5.60.1 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: f8d5f87b5441d5c671f69631efd103f5f45e0cb7dbe0131a5b4234a5208ac845041219e8baaa3adc341e82a602165dd6fabf4fd06964d0109d0875425c8ac918 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/types@npm:5.60.1" + checksum: 766b6c857493b72a8f515e6a8e409476a317b7a7f0401fbcdf18f417839fca004dcaf06f58eb5ba00777e3ca9c68cd2f56fda79f3a8eb8a418095b5b1f625712 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/visitor-keys": 5.60.1 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 5bb9d08c3cbc303fc64647878cae37283c4cfa9e3ed00da02ee25dc2e46798a1ad6964c9f04086f0134716671357e6569a65ea0ae75f0f3ff94ae67666385c6f + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/utils@npm:5.60.1" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.60.1 + "@typescript-eslint/types": 5.60.1 + "@typescript-eslint/typescript-estree": 5.60.1 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 00c1adaa09d5d5be947e98962a78c21ed08c3ac46dd5ddd7b78f6102537d50afd4578a42a3e09a24dd51f5bc493f0b968627b4423647540164b2d2380afa9246 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.60.1": + version: 5.60.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.60.1" + dependencies: + "@typescript-eslint/types": 5.60.1 + eslint-visitor-keys: ^3.3.0 + checksum: 137f6a6f8efb398969087147b59f99f7d0deed044d89d7efce3631bb90bc32e3a13a5cee6a65e1c9830862c5c4402ac1a9b2c9e31fe46d1716602af2813bffae + languageName: node + linkType: hard + +"@vitejs/plugin-vue@npm:^4.2.3": + version: 4.2.3 + resolution: "@vitejs/plugin-vue@npm:4.2.3" + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + checksum: 1c70c1cd18f6ba3ed6cdf1391a0d441dd8e9a89c728f7eb20d74c84e75fef1fdc651836cce9bf59a8a48e5b2caebf6ca60a908fdd8527a476a750afd2b458592 + languageName: node + linkType: hard + +"@vitest/expect@npm:0.32.2": + version: 0.32.2 + resolution: "@vitest/expect@npm:0.32.2" + dependencies: + "@vitest/spy": 0.32.2 + "@vitest/utils": 0.32.2 + chai: ^4.3.7 + checksum: e16ef72d6ee1db3f5955763962de0322cbc1e29f9c13e8136a7f6fa7c6d238df3a9ce5760e6dacadb7edc740c6148ba2a98a4d9d6f0f46ae77c1404b2977c2a0 + languageName: node + linkType: hard + +"@vitest/runner@npm:0.32.2": + version: 0.32.2 + resolution: "@vitest/runner@npm:0.32.2" + dependencies: + "@vitest/utils": 0.32.2 + concordance: ^5.0.4 + p-limit: ^4.0.0 + pathe: ^1.1.0 + checksum: 6ce62f6f30721cc6ae79317b8934edba36e266c7fefc4be97cc8c16c2878979208e121fd847282f61fd5a7d03e181d6cb46fa839f8f31b83ac77ea618ecb1b9c + languageName: node + linkType: hard + +"@vitest/snapshot@npm:0.32.2": + version: 0.32.2 + resolution: "@vitest/snapshot@npm:0.32.2" + dependencies: + magic-string: ^0.30.0 + pathe: ^1.1.0 + pretty-format: ^27.5.1 + checksum: 94f12fadec50815de62a82e4d344b13b72f8e58f7492f3441d5b4b28d3a557dea32cbd4fa687ff58cc549241c77929aed3a0d5f64bac1603a65f9c7ead3b2ce7 + languageName: node + linkType: hard + +"@vitest/spy@npm:0.32.2": + version: 0.32.2 + resolution: "@vitest/spy@npm:0.32.2" + dependencies: + tinyspy: ^2.1.0 + checksum: e516872c792fe039806a9c4b858f166ddbc14320b1d4c3daa6c562f3f15991df87465107379f011fbd658911e34a68cf2349c1f77d82e08fd0f6a0f20bc71b1b + languageName: node + linkType: hard + +"@vitest/utils@npm:0.32.2": + version: 0.32.2 + resolution: "@vitest/utils@npm:0.32.2" + dependencies: + diff-sequences: ^29.4.3 + loupe: ^2.3.6 + pretty-format: ^27.5.1 + checksum: d4bc065875edf235b0c6b1f8648c10e9655ac45f5c7e89dc892b02e7f96f9bd58a97a4c3fcb3bc7026d6b350e752fb02cb7dcf5690c40792ff361fb6ac433e66 + languageName: node + linkType: hard + +"@volar/language-core@npm:1.7.10": + version: 1.7.10 + resolution: "@volar/language-core@npm:1.7.10" + dependencies: + "@volar/source-map": 1.7.10 + checksum: 350634eda3c67abcf955f407e5652dda2b927484602cd41d0b77ef8795d2b41bd7eaa8ca485700cd34f4bc0295176766be2e86f77ac1a9fc9769a832eadb58d1 + languageName: node + linkType: hard + +"@volar/source-map@npm:1.7.10": + version: 1.7.10 + resolution: "@volar/source-map@npm:1.7.10" + dependencies: + muggle-string: ^0.3.1 + checksum: d180298f98f57e85f047d5cd5a4c831aafd23a6a7b16e8b39c4864e4cc4fc374d148b4c231bce3aee5e524913e300b4389cbf3522ff599bf29d40b5717299feb + languageName: node + linkType: hard + +"@volar/typescript@npm:1.7.10": + version: 1.7.10 + resolution: "@volar/typescript@npm:1.7.10" + dependencies: + "@volar/language-core": 1.7.10 + checksum: 745aa974d356bed07035d3695e5e1dd949e3593da25c28febc4ca216b6422c04359d13d4d8fe535c0fb5510df8080e161d9337a2095ad9f123fa0fbfe45b0304 + languageName: node + linkType: hard + +"@vue/compiler-core@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/compiler-core@npm:3.3.4" + dependencies: + "@babel/parser": ^7.21.3 + "@vue/shared": 3.3.4 + estree-walker: ^2.0.2 + source-map-js: ^1.0.2 + checksum: 5437942ea6575b316c9cd84f4f128a44939713da8b6958060e152c599e6d771d5db056c398d7574ee706ff8092e0d99ac4f14e7eef8712a8dd923d2323201b9e + languageName: node + linkType: hard + +"@vue/compiler-dom@npm:3.3.4, @vue/compiler-dom@npm:^3.3.0": + version: 3.3.4 + resolution: "@vue/compiler-dom@npm:3.3.4" + dependencies: + "@vue/compiler-core": 3.3.4 + "@vue/shared": 3.3.4 + checksum: 1c2ac0c89de8eef7be1c568d57504e6245adaaec40c2c4d9717bc231ca10bf682d918a3b358d24c786eeaf8e0d7eb8a65f57d9044775a304783fde1d069a1896 + languageName: node + linkType: hard + +"@vue/compiler-sfc@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/compiler-sfc@npm:3.3.4" + dependencies: + "@babel/parser": ^7.20.15 + "@vue/compiler-core": 3.3.4 + "@vue/compiler-dom": 3.3.4 + "@vue/compiler-ssr": 3.3.4 + "@vue/reactivity-transform": 3.3.4 + "@vue/shared": 3.3.4 + estree-walker: ^2.0.2 + magic-string: ^0.30.0 + postcss: ^8.1.10 + source-map-js: ^1.0.2 + checksum: 0a0adfdd3e812f528e25e4b3bbf14b2296b719a8aac609eca42035295527cc253b918a552dc15218e917efef26b7ca94054dc8784a1a18c06c3d4bb4d18ab8b9 + languageName: node + linkType: hard + +"@vue/compiler-ssr@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/compiler-ssr@npm:3.3.4" + dependencies: + "@vue/compiler-dom": 3.3.4 + "@vue/shared": 3.3.4 + checksum: 5d1875d55ea864080dd90e5d81a29f93308e312faf00163db5b391b38c2fe799fd3eb58955823dc632f2f8bdd271a4534cc0020646b7f82717be1a8d30dc16e7 + languageName: node + linkType: hard + +"@vue/devtools-api@npm:^6.5.0": + version: 6.5.0 + resolution: "@vue/devtools-api@npm:6.5.0" + checksum: ec819ef3a426e91d09e9cfefd2827e9ed8ec9d62bb3b3e0674f3da8c7e92a4b879c3b777dc7329172ca6fe2670b62dd5580d23160339208f0f5ae038f2e504ad + languageName: node + linkType: hard + +"@vue/eslint-config-prettier@npm:^7.1.0": + version: 7.1.0 + resolution: "@vue/eslint-config-prettier@npm:7.1.0" + dependencies: + eslint-config-prettier: ^8.3.0 + eslint-plugin-prettier: ^4.0.0 + peerDependencies: + eslint: ">= 7.28.0" + prettier: ">= 2.0.0" + checksum: d6de465bccb0b06fa6679ea566491f556c6b980d8151dfe29b7a336836b5cc12e27151879f2e3dee919a4a3e0901f1c9f572dcf64a70c6660d05fd71e52342d3 + languageName: node + linkType: hard + +"@vue/eslint-config-typescript@npm:^11.0.3": + version: 11.0.3 + resolution: "@vue/eslint-config-typescript@npm:11.0.3" + dependencies: + "@typescript-eslint/eslint-plugin": ^5.59.1 + "@typescript-eslint/parser": ^5.59.1 + vue-eslint-parser: ^9.1.1 + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + eslint-plugin-vue: ^9.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: d61489a8946807292df84b6271e836c896e5e5bf6a9467fe1ed55c02b4b34a7aa39d7977c0dddb3135e99fac89df226cf853d383779e55658e77898bc00366a6 + languageName: node + linkType: hard + +"@vue/language-core@npm:1.8.3": + version: 1.8.3 + resolution: "@vue/language-core@npm:1.8.3" + dependencies: + "@volar/language-core": 1.7.10 + "@volar/source-map": 1.7.10 + "@vue/compiler-dom": ^3.3.0 + "@vue/reactivity": ^3.3.0 + "@vue/shared": ^3.3.0 + minimatch: ^9.0.0 + muggle-string: ^0.3.1 + vue-template-compiler: ^2.7.14 + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 37e1686ebcea7a50d1d1c1454f41069ba469bb565ea2e81d16d928c5099c13bbb3bf07f1f23282315ba76468069bec33e5fcaa55c40fcd2817def365f3444b1b + languageName: node + linkType: hard + +"@vue/reactivity-transform@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/reactivity-transform@npm:3.3.4" + dependencies: + "@babel/parser": ^7.20.15 + "@vue/compiler-core": 3.3.4 + "@vue/shared": 3.3.4 + estree-walker: ^2.0.2 + magic-string: ^0.30.0 + checksum: b425e78b2084ac7037887fbe012dcad5e5963ac9714ae15a04fda1c6766ec8c53ef231de1cfdc4d3cf46bd5d84bfec8ebdccf48da4ff5ee2f4b5084e54f0a1b1 + languageName: node + linkType: hard + +"@vue/reactivity@npm:3.3.4, @vue/reactivity@npm:^3.3.0": + version: 3.3.4 + resolution: "@vue/reactivity@npm:3.3.4" + dependencies: + "@vue/shared": 3.3.4 + checksum: 81c3d0c587d23656a57a7a31afb51357274f6512b51baffc67cda183b2361a7e65e646029c26a8bc28587f26b65bba808dcd93cdd3bacab48d2b99d11ad0ec97 + languageName: node + linkType: hard + +"@vue/runtime-core@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/runtime-core@npm:3.3.4" + dependencies: + "@vue/reactivity": 3.3.4 + "@vue/shared": 3.3.4 + checksum: d402da51269658cba5d857d65fbe322121160bcb1a6fcf03601d5183705e92505c6e90418f491a331ca3e27628f457a6ca7158b9add25f5b0cf5cf53664b8011 + languageName: node + linkType: hard + +"@vue/runtime-dom@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/runtime-dom@npm:3.3.4" + dependencies: + "@vue/runtime-core": 3.3.4 + "@vue/shared": 3.3.4 + csstype: ^3.1.1 + checksum: dac9ada7f6128bcccc031fe5c25d00db94ffb7c011fcb70bada22fa4d889ff842eeb139ab9304bcc52cb5ae9030911a52cb3510b691bb190bbe5fab680b4411a + languageName: node + linkType: hard + +"@vue/server-renderer@npm:3.3.4": + version: 3.3.4 + resolution: "@vue/server-renderer@npm:3.3.4" + dependencies: + "@vue/compiler-ssr": 3.3.4 + "@vue/shared": 3.3.4 + peerDependencies: + vue: 3.3.4 + checksum: e8598ed1a44df70edaea0ad6786aea6443b9b3d9266249eec5690401859d72d45a1e29ba3eef20e37a95f020abd5e763088b79070ee848af436a4390a253a37a + languageName: node + linkType: hard + +"@vue/shared@npm:3.3.4, @vue/shared@npm:^3.3.0": + version: 3.3.4 + resolution: "@vue/shared@npm:3.3.4" + checksum: 12fe53ff816bfa29ea53f89212067a86512c626b8d30149ff28b36705820f6150e1fb4e4e46897ad9eddb1d1cfc02d8941053939910eed69a905f7a5509baabe + languageName: node + linkType: hard + +"@vue/test-utils@npm:^2.3.2": + version: 2.4.0 + resolution: "@vue/test-utils@npm:2.4.0" + dependencies: + js-beautify: 1.14.6 + vue-component-type-helpers: 1.6.5 + peerDependencies: + "@vue/compiler-dom": ^3.0.1 + "@vue/server-renderer": ^3.0.1 + vue: ^3.0.1 + peerDependenciesMeta: + "@vue/compiler-dom": + optional: true + "@vue/server-renderer": + optional: true + checksum: 28b9628cf82b031ad2f948560e508852177eeaf22677dc346792454a32138158e9e219be85e3a01ca4a1c6063d86dfe04a53045ccc0202e0724c328661eeff24 + languageName: node + linkType: hard + +"@vue/tsconfig@npm:^0.4.0": + version: 0.4.0 + resolution: "@vue/tsconfig@npm:0.4.0" + checksum: 1acdd0c5702e163c071fec7ba4ad7eede0a37aaf473e4afc015dad2dd200f85c638831394ca9b9c058cf9d133f4cf92f8d1c99a401f173d5bf1e40700fdcd678 + languageName: node + linkType: hard + +"@vue/typescript@npm:1.8.3": + version: 1.8.3 + resolution: "@vue/typescript@npm:1.8.3" + dependencies: + "@volar/typescript": 1.7.10 + "@vue/language-core": 1.8.3 + checksum: a0280823934e86a851552ca08590b28d8795b542b3e4203bedfb20db3d897b82b21bd72716eb12fe9e87fc4833f65050f5f185aad8deaef22429964db945346e + languageName: node + linkType: hard + +"@web3-storage/parse-link-header@npm:^3.1.0": + version: 3.1.0 + resolution: "@web3-storage/parse-link-header@npm:3.1.0" + checksum: e91ce3ad25162ca84ecb8d607f54afc166ab91700c507a9cc81dac4ac6231d51cd307efdf1752f227046ef2cf255ada5e8fb6269703080f95a49b07ec90834a5 + languageName: node + linkType: hard + +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + +"abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.2.0": + version: 8.2.0 + resolution: "acorn-walk@npm:8.2.0" + checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + languageName: node + linkType: hard + +"acorn@npm:^8.8.0, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.9.0 + resolution: "acorn@npm:8.9.0" + bin: + acorn: bin/acorn + checksum: 25dfb94952386ecfb847e61934de04a4e7c2dc21c2e700fc4e2ef27ce78cb717700c4c4f279cd630bb4774948633c3859fc16063ec8573bda4568e0a312e6744 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.2.1": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: ^1.2.1 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^6.10.0, ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"arch@npm:^2.2.0": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: e21b7635029fe8e9cdd5a026f9a6c659103e63fff423834323cdf836a1bb240a72d0c39ca8c470f84643385cf581bd8eda2cad8bf493e27e54bd9783abe9101f + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: ~2.1.0 + checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64 + languageName: node + linkType: hard + +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: fd9429d3a3d4fd61782eb3962ae76b6d08aa7383123fca0596020013b3ebd6647891a85b05ce821c47d1471ed1271f00b0545cf6a4326cf2fc91efcc3b0fbecf + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"async@npm:^3.2.0": + version: 3.2.4 + resolution: "async@npm:3.2.4" + checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + languageName: node + linkType: hard + +"autosize@npm:^6.0.1": + version: 6.0.1 + resolution: "autosize@npm:6.0.1" + checksum: 116635be9479baee6dd9c4f0545fbd07318e83bcdb198f9c41c0594af82ca52a1e0cce38797dcbda9d321467805293e66a3b2f3e01a82952ff879c50e2c813e8 + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525 + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.12.0 + resolution: "aws4@npm:1.12.0" + checksum: 68f79708ac7c335992730bf638286a3ee0a645cf12575d557860100767c500c08b30e24726b9f03265d74116417f628af78509e1333575e9f8d52a80edfe8cbc + languageName: node + linkType: hard + +"axios@npm:^0.27.2": + version: 0.27.2 + resolution: "axios@npm:0.27.2" + dependencies: + follow-redirects: ^1.14.9 + form-data: ^4.0.0 + checksum: 38cb7540465fe8c4102850c4368053c21683af85c5fdf0ea619f9628abbcb59415d1e22ebc8a6390d2bbc9b58a9806c874f139767389c862ec9b772235f06854 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: ^0.14.3 + checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.2.0 + resolution: "binary-extensions@npm:2.2.0" + checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 + languageName: node + linkType: hard + +"blob-util@npm:^2.0.2": + version: 2.0.2 + resolution: "blob-util@npm:2.0.2" + checksum: d543e6b92e4ca715ca33c78e89a07a2290d43e5b2bc897d7ec588c5c7bbf59df93e45225ac0c9258aa6ce4320358990f99c9288f1c48280f8ec5d7a2e088d19b + languageName: node + linkType: hard + +"bluebird@npm:3.7.2, bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef + languageName: node + linkType: hard + +"blueimp-md5@npm:^2.10.0": + version: 2.19.0 + resolution: "blueimp-md5@npm:2.19.0" + checksum: 28095dcbd2c67152a2938006e8d7c74c3406ba6556071298f872505432feb2c13241b0476644160ee0a5220383ba94cb8ccdac0053b51f68d168728f9c382530 + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.2, braces@npm:~3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c + languageName: node + linkType: hard + +"buffer@npm:^5.6.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a + languageName: node + linkType: hard + +"cacache@npm:^17.0.0": + version: 17.1.4 + resolution: "cacache@npm:17.1.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^7.0.3 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 + languageName: node + linkType: hard + +"cachedir@npm:^2.3.0": + version: 2.3.0 + resolution: "cachedir@npm:2.3.0" + checksum: ec90cb0f2e6336e266aa748dbadf3da9e0b20e843e43f1591acab7a3f1451337dc2f26cb9dd833ae8cfefeffeeb43ef5b5ff62782a685f4e3c2305dd98482fcb + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: ^1.1.1 + get-intrinsic: ^1.0.2 + checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751 + languageName: node + linkType: hard + +"chai@npm:^4.3.7": + version: 4.3.7 + resolution: "chai@npm:4.3.7" + dependencies: + assertion-error: ^1.1.0 + check-error: ^1.0.2 + deep-eql: ^4.1.2 + get-func-name: ^2.0.0 + loupe: ^2.3.1 + pathval: ^1.1.1 + type-detect: ^4.0.5 + checksum: 0bba7d267848015246a66995f044ce3f0ebc35e530da3cbdf171db744e14cbe301ab913a8d07caf7952b430257ccbb1a4a983c570a7c5748dc537897e5131f7c + languageName: node + linkType: hard + +"chalk@npm:^2.4.1": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"chart.js@npm:^4.3.0": + version: 4.3.0 + resolution: "chart.js@npm:4.3.0" + dependencies: + "@kurkle/color": ^0.3.0 + checksum: 157ceaa3815665163cb30ccc221a5af40834dca940faa6ec02cb95406bf3e83c15c5f36ad950a1716c9d199e87f7b9be953227c4d9d445d593536175b47bbab8 + languageName: node + linkType: hard + +"chartjs-plugin-deferred@npm:^2.0.0": + version: 2.0.0 + resolution: "chartjs-plugin-deferred@npm:2.0.0" + peerDependencies: + chart.js: ">= 3.0.0" + checksum: cf7f526fdbf281ba74b034f2f9bfd6175ed7ee0ee7529fbb7d89864cc43b66ed936ceb9f7c4011af1d9890aabe5a51ccceb7cfdf2017c3374362caa73932a4cc + languageName: node + linkType: hard + +"check-error@npm:^1.0.2": + version: 1.0.2 + resolution: "check-error@npm:1.0.2" + checksum: d9d106504404b8addd1ee3f63f8c0eaa7cd962a1a28eb9c519b1c4a1dc7098be38007fc0060f045ee00f075fbb7a2a4f42abcf61d68323677e11ab98dc16042e + languageName: node + linkType: hard + +"check-more-types@npm:2.24.0, check-more-types@npm:^2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: b09080ec3404d20a4b0ead828994b2e5913236ef44ed3033a27062af0004cf7d2091fbde4b396bf13b7ce02fb018bc9960b48305e6ab2304cd82d73ed7a51ef4 + languageName: node + linkType: hard + +"chokidar@npm:>=3.0.0 <4.0.0": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.8.0 + resolution: "ci-info@npm:3.8.0" + checksum: d0a4d3160497cae54294974a7246202244fff031b0a6ea20dd57b10ec510aa17399c41a1b0982142c105f3255aff2173e5c0dd7302ee1b2f28ba3debda375098 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: ^3.1.0 + checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-table3@npm:~0.6.1": + version: 0.6.3 + resolution: "cli-table3@npm:0.6.3" + dependencies: + "@colors/colors": 1.5.0 + string-width: ^4.2.0 + dependenciesMeta: + "@colors/colors": + optional: true + checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: ^3.0.0 + string-width: ^4.2.0 + checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"colorette@npm:^2.0.16": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"commander@npm:^2.19.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e + languageName: node + linkType: hard + +"commander@npm:^6.2.1": + version: 6.2.1 + resolution: "commander@npm:6.2.1" + checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742 + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"concordance@npm:^5.0.4": + version: 5.0.4 + resolution: "concordance@npm:5.0.4" + dependencies: + date-time: ^3.1.0 + esutils: ^2.0.3 + fast-diff: ^1.2.0 + js-string-escape: ^1.0.1 + lodash: ^4.17.15 + md5-hex: ^3.0.1 + semver: ^7.3.2 + well-known-symbols: ^2.0.0 + checksum: 749153ba711492feb7c3d2f5bb04c107157440b3e39509bd5dd19ee7b3ac751d1e4cd75796d9f702e0a713312dbc661421c68aa4a2c34d5f6d91f47e3a1c64a6 + languageName: node + linkType: hard + +"config-chain@npm:^1.1.13": + version: 1.1.13 + resolution: "config-chain@npm:1.1.13" + dependencies: + ini: ^1.3.4 + proto-list: ~1.2.1 + checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab + languageName: node + linkType: hard + +"cross-spawn@npm:^6.0.5": + version: 6.0.5 + resolution: "cross-spawn@npm:6.0.5" + dependencies: + nice-try: ^1.0.4 + path-key: ^2.0.1 + semver: ^5.5.0 + shebang-command: ^1.2.0 + which: ^1.2.9 + checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssstyle@npm:^3.0.0": + version: 3.0.0 + resolution: "cssstyle@npm:3.0.0" + dependencies: + rrweb-cssom: ^0.6.0 + checksum: 31f694dfed9998ed93570fe539610837b878193dd8487c33cb12db8004333c53c2a3904166288bbec68388c72fb01014d46d3243ddfb02fe845989d852c06f27 + languageName: node + linkType: hard + +"csstype@npm:^3.1.1": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + +"cypress@npm:^13.2.0": + version: 13.2.0 + resolution: "cypress@npm:13.2.0" + dependencies: + "@cypress/request": ^3.0.0 + "@cypress/xvfb": ^1.2.4 + "@types/node": ^18.17.5 + "@types/sinonjs__fake-timers": 8.1.1 + "@types/sizzle": ^2.3.2 + arch: ^2.2.0 + blob-util: ^2.0.2 + bluebird: ^3.7.2 + buffer: ^5.6.0 + cachedir: ^2.3.0 + chalk: ^4.1.0 + check-more-types: ^2.24.0 + cli-cursor: ^3.1.0 + cli-table3: ~0.6.1 + commander: ^6.2.1 + common-tags: ^1.8.0 + dayjs: ^1.10.4 + debug: ^4.3.4 + enquirer: ^2.3.6 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: ^4.1.1 + extract-zip: 2.0.1 + figures: ^3.2.0 + fs-extra: ^9.1.0 + getos: ^3.2.1 + is-ci: ^3.0.0 + is-installed-globally: ~0.4.0 + lazy-ass: ^1.6.0 + listr2: ^3.8.3 + lodash: ^4.17.21 + log-symbols: ^4.0.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.3 + supports-color: ^8.1.1 + tmp: ~0.2.1 + untildify: ^4.0.0 + yauzl: ^2.10.0 + bin: + cypress: bin/cypress + checksum: 7647814f07626bd63e7b8dc4d066179fa40bf492c588bbc2626d983a2baab6cb77c29958dc92442f277e0a8e94866decc51c4de306021739c47e32baf5970219 + languageName: node + linkType: hard + +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: ^1.0.0 + checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598 + languageName: node + linkType: hard + +"data-urls@npm:^4.0.0": + version: 4.0.0 + resolution: "data-urls@npm:4.0.0" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^12.0.0 + checksum: 006e869b5bf079647949a3e9b1dd69d84b2d5d26e6b01c265485699bc96e83817d4b5aae758b2910a4c58c0601913f3a0034121c1ca2da268e9a244c57515b15 + languageName: node + linkType: hard + +"date-time@npm:^3.1.0": + version: 3.1.0 + resolution: "date-time@npm:3.1.0" + dependencies: + time-zone: ^1.0.0 + checksum: f9cfcd1b15dfeabab15c0b9d18eb9e4e2d9d4371713564178d46a8f91ad577a290b5178b80050718d02d9c0cf646f8a875011e12d1ed05871e9f72c72c8a8fe6 + languageName: node + linkType: hard + +"dayjs@npm:^1.10.4, dayjs@npm:^1.11.8": + version: 1.11.8 + resolution: "dayjs@npm:1.11.8" + checksum: 4fe04b6df98ba6e5f89b49d80bba603cbf01e21a1b4a24ecb163c94c0ba5324a32ac234a139cee654f89d5277a2bcebca5347e6676c28a0a6d1a90f1d34a42b8 + languageName: node + linkType: hard + +"de-indent@npm:^1.0.2": + version: 1.0.2 + resolution: "de-indent@npm:1.0.2" + checksum: 8deacc0f4a397a4414a0fc4d0034d2b7782e7cb4eaf34943ea47754e08eccf309a0e71fa6f56cc48de429ede999a42d6b4bca761bf91683be0095422dbf24611 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"debug@npm:^3.1.0": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.3": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae + languageName: node + linkType: hard + +"deep-eql@npm:^4.1.2": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: ^4.0.0 + checksum: 7f6d30cb41c713973dc07eaadded848b2ab0b835e518a88b91bea72f34e08c4c71d167a722a6f302d3a6108f05afd8e6d7650689a84d5d29ec7fe6220420397f + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"diff-sequences@npm:^29.4.3": + version: 29.4.3 + resolution: "diff-sequences@npm:29.4.3" + checksum: 28b265e04fdddcf7f9f814effe102cc95a9dec0564a579b5aed140edb24fc345c611ca52d76d725a3cab55d3888b915b5e8a4702e0f6058968a90fa5f41fcde7 + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: ^7.0.0 + checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + languageName: node + linkType: hard + +"duplexer@npm:~0.1.1": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: ~0.1.0 + safer-buffer: ^2.1.0 + checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a + languageName: node + linkType: hard + +"editorconfig@npm:^0.15.3": + version: 0.15.3 + resolution: "editorconfig@npm:0.15.3" + dependencies: + commander: ^2.19.0 + lru-cache: ^4.1.5 + semver: ^5.6.0 + sigmund: ^1.0.1 + bin: + editorconfig: bin/editorconfig + checksum: a94afeda19f12a4bcc4a573f0858df13dd3a2d1a3268cc0f17a6326ebe7ddd6cb0c026f8e4e73c17d34f3892bf6f8b561512d9841e70063f61da71b4c57dc5f0 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: ^1.4.0 + checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"enquirer@npm:^2.3.6": + version: 2.3.6 + resolution: "enquirer@npm:2.3.6" + dependencies: + ansi-colors: ^4.1.1 + checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 + languageName: node + linkType: hard + +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": + version: 1.21.2 + resolution: "es-abstract@npm:1.21.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.2.0 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.10 + is-weakref: ^1.0.2 + object-inspect: ^1.12.3 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.4.3 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.7 + string.prototype.trimend: ^1.0.6 + string.prototype.trimstart: ^1.0.6 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.9 + checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.2.1": + version: 1.2.1 + resolution: "es-to-primitive@npm:1.2.1" + dependencies: + is-callable: ^1.1.4 + is-date-object: ^1.0.1 + is-symbol: ^1.0.2 + checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + languageName: node + linkType: hard + +"esbuild@npm:^0.17.5": + version: 0.17.19 + resolution: "esbuild@npm:0.17.19" + dependencies: + "@esbuild/android-arm": 0.17.19 + "@esbuild/android-arm64": 0.17.19 + "@esbuild/android-x64": 0.17.19 + "@esbuild/darwin-arm64": 0.17.19 + "@esbuild/darwin-x64": 0.17.19 + "@esbuild/freebsd-arm64": 0.17.19 + "@esbuild/freebsd-x64": 0.17.19 + "@esbuild/linux-arm": 0.17.19 + "@esbuild/linux-arm64": 0.17.19 + "@esbuild/linux-ia32": 0.17.19 + "@esbuild/linux-loong64": 0.17.19 + "@esbuild/linux-mips64el": 0.17.19 + "@esbuild/linux-ppc64": 0.17.19 + "@esbuild/linux-riscv64": 0.17.19 + "@esbuild/linux-s390x": 0.17.19 + "@esbuild/linux-x64": 0.17.19 + "@esbuild/netbsd-x64": 0.17.19 + "@esbuild/openbsd-x64": 0.17.19 + "@esbuild/sunos-x64": 0.17.19 + "@esbuild/win32-arm64": 0.17.19 + "@esbuild/win32-ia32": 0.17.19 + "@esbuild/win32-x64": 0.17.19 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: ac11b1a5a6008e4e37ccffbd6c2c054746fc58d0ed4a2f9ee643bd030cfcea9a33a235087bc777def8420f2eaafb3486e76adb7bdb7241a9143b43a69a10afd8 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^8.3.0": + version: 8.8.0 + resolution: "eslint-config-prettier@npm:8.8.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 1e94c3882c4d5e41e1dcfa2c368dbccbfe3134f6ac7d40101644d3bfbe3eb2f2ffac757f3145910b5eacf20c0e85e02b91293d3126d770cbf3dc390b3564681c + languageName: node + linkType: hard + +"eslint-plugin-cypress@npm:^2.14.0": + version: 2.14.0 + resolution: "eslint-plugin-cypress@npm:2.14.0" + dependencies: + globals: ^13.20.0 + peerDependencies: + eslint: ">= 3.2.1" + checksum: 3fa118a757aebb1aa6b419b2944744796aa4fa3cc1e2e19fa97777fd6792fba12b5ae117bf19bf7e7d9a1abdd48398cfba9ca6f2c62fd690a2108a9a02f3f2ae + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^4.0.0": + version: 4.2.1 + resolution: "eslint-plugin-prettier@npm:4.2.1" + dependencies: + prettier-linter-helpers: ^1.0.0 + peerDependencies: + eslint: ">=7.28.0" + prettier: ">=2.0.0" + peerDependenciesMeta: + eslint-config-prettier: + optional: true + checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 + languageName: node + linkType: hard + +"eslint-plugin-vue@npm:^9.11.0": + version: 9.15.1 + resolution: "eslint-plugin-vue@npm:9.15.1" + dependencies: + "@eslint-community/eslint-utils": ^4.3.0 + natural-compare: ^1.4.0 + nth-check: ^2.0.1 + postcss-selector-parser: ^6.0.9 + semver: ^7.3.5 + vue-eslint-parser: ^9.3.0 + xml-name-validator: ^4.0.0 + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + checksum: b1cdb16e43e681938c25f1d3f2d5d0d76a99172efdcfa0fa98cdb21122d520e12ae2f8ff2b40bf47a5b9f476f54199494a2851d99edc5bad0a25156ef38eeac4 + languageName: node + linkType: hard + +"eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"eslint-scope@npm:^7.1.1, eslint-scope@npm:^7.2.0": + version: 7.2.0 + resolution: "eslint-scope@npm:7.2.0" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 64591a2d8b244ade9c690b59ef238a11d5c721a98bcee9e9f445454f442d03d3e04eda88e95a4daec558220a99fa384309d9faae3d459bd40e7a81b4063980ae + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": + version: 3.4.1 + resolution: "eslint-visitor-keys@npm:3.4.1" + checksum: f05121d868202736b97de7d750847a328fcfa8593b031c95ea89425333db59676ac087fa905eba438d0a3c5769632f828187e0c1a0d271832a2153c1d3661c2c + languageName: node + linkType: hard + +"eslint@npm:^8.39.0": + version: 8.43.0 + resolution: "eslint@npm:8.43.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.4.0 + "@eslint/eslintrc": ^2.0.3 + "@eslint/js": 8.43.0 + "@humanwhocodes/config-array": ^0.11.10 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.0 + eslint-visitor-keys: ^3.4.1 + espree: ^9.5.2 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 55654ce00b0d128822b57526e40473d0497c7c6be3886afdc0b41b6b0dfbd34d0eae8159911b18451b4db51a939a0e6d2e117e847ae419086884fc3d4fe23c7c + languageName: node + linkType: hard + +"espree@npm:^9.3.1, espree@npm:^9.5.2": + version: 9.5.2 + resolution: "espree@npm:9.5.2" + dependencies: + acorn: ^8.8.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1 + languageName: node + linkType: hard + +"esquery@npm:^1.4.0, esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc + languageName: node + linkType: hard + +"esutils@npm:^2.0.2, esutils@npm:^2.0.3": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"event-stream@npm:=3.3.4": + version: 3.3.4 + resolution: "event-stream@npm:3.3.4" + dependencies: + duplexer: ~0.1.1 + from: ~0 + map-stream: ~0.1.0 + pause-stream: 0.0.11 + split: 0.3 + stream-combiner: ~0.0.4 + through: ~2.3.1 + checksum: 80b467820b6daf824d9fb4345d2daf115a056e5c104463f2e98534e92d196a27f2df5ea2aa085624db26f4c45698905499e881d13bc7c01f7a13eac85be72a22 + languageName: node + linkType: hard + +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66 + languageName: node + linkType: hard + +"execa@npm:4.1.0": + version: 4.1.0 + resolution: "execa@npm:4.1.0" + dependencies: + cross-spawn: ^7.0.0 + get-stream: ^5.0.0 + human-signals: ^1.1.1 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.0 + onetime: ^5.1.0 + signal-exit: ^3.0.2 + strip-final-newline: ^2.0.0 + checksum: e30d298934d9c52f90f3847704fd8224e849a081ab2b517bbc02f5f7732c24e56a21f14cb96a08256deffeb2d12b2b7cb7e2b014a12fb36f8d3357e06417ed55 + languageName: node + linkType: hard + +"execa@npm:5.1.1": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.0 + human-signals: ^2.1.0 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.1 + onetime: ^5.1.2 + signal-exit: ^3.0.3 + strip-final-newline: ^2.0.0 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: ^2.2.0 + checksum: f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + languageName: node + linkType: hard + +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": ^2.9.1 + debug: ^4.1.1 + get-stream: ^5.1.0 + yauzl: ^2.10.0 + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0, extsprintf@npm:^1.2.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-diff@npm:^1.1.2, fast-diff@npm:^1.2.0": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9": + version: 3.2.12 + resolution: "fast-glob@npm:3.2.12" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.15.0 + resolution: "fastq@npm:1.15.0" + dependencies: + reusify: ^1.0.4 + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + languageName: node + linkType: hard + +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: ~1.2.0 + checksum: c8585fd5713f4476eb8261150900d2cb7f6ff2d87f8feb306ccc8a1122efd152f1783bdb2b8dc891395744583436bfd8081d8e63ece0ec8687eeefea394d4ff2 + languageName: node + linkType: hard + +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.0.4 + resolution: "flat-cache@npm:3.0.4" + dependencies: + flatted: ^3.1.0 + rimraf: ^3.0.2 + checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + languageName: node + linkType: hard + +"flatted@npm:^3.1.0": + version: 3.2.7 + resolution: "flatted@npm:3.2.7" + checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 + languageName: node + linkType: hard + +"floating-vue@npm:^2.0.0-beta.24": + version: 2.0.0-beta.24 + resolution: "floating-vue@npm:2.0.0-beta.24" + dependencies: + "@floating-ui/dom": ~1.1.1 + vue-resize: ^2.0.0-alpha.1 + peerDependencies: + "@nuxt/kit": ^3.2.0 + vue: ^3.2.0 + peerDependenciesMeta: + "@nuxt/kit": + optional: true + checksum: 2dab3ef6b71768b37e02e40ee280c7a3614db36516fa80f03f6eed7668c1addfc8fe8566407772f97d056529009c030ca4d97bdfc6d6be7b784e21707dffe7a6 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.14.9": + version: 1.15.2 + resolution: "follow-redirects@npm:1.15.2" + peerDependenciesMeta: + debug: + optional: true + checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + languageName: node + linkType: hard + +"form-data@npm:~2.3.2": + version: 2.3.3 + resolution: "form-data@npm:2.3.3" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.6 + mime-types: ^2.1.12 + checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3 + languageName: node + linkType: hard + +"from@npm:~0": + version: 0.1.7 + resolution: "from@npm:0.1.7" + checksum: b85125b7890489656eb2e4f208f7654a93ec26e3aefaf3bbbcc0d496fc1941e4405834fcc9fe7333192aa2187905510ace70417bbf9ac6f6f4784a731d986939 + languageName: node + linkType: hard + +"fs-extra@npm:^9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: latest + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.5": + version: 1.1.5 + resolution: "function.prototype.name@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + functions-have-names: ^1.2.2 + checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"get-func-name@npm:^2.0.0": + version: 2.0.0 + resolution: "get-func-name@npm:2.0.0" + checksum: 8d82e69f3e7fab9e27c547945dfe5cc0c57fc0adf08ce135dddb01081d75684a03e7a0487466f478872b341d52ac763ae49e660d01ab83741f74932085f693c3 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + languageName: node + linkType: hard + +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: ^3.0.0 + checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.0": + version: 1.0.0 + resolution: "get-symbol-description@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + languageName: node + linkType: hard + +"getos@npm:^3.2.1": + version: 3.2.1 + resolution: "getos@npm:3.2.1" + dependencies: + async: ^3.2.0 + checksum: 42fd78a66d47cebd3e09de5566cc0044e034b08f4a000a310dbd89a77b02c65d8f4002554bfa495ea5bdc4fa9d515f5ac785a7cc474ba45383cc697f865eeaf1 + languageName: node + linkType: hard + +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: ^1.0.0 + checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob@npm:^10.2.2": + version: 10.3.3 + resolution: "glob@npm:10.3.3" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.0.3 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/cjs/src/bin.js + checksum: 29190d3291f422da0cb40b77a72fc8d2c51a36524e99b8bf412548b7676a6627489528b57250429612b6eec2e6fe7826d328451d3e694a9d15e575389308ec53 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"glob@npm:^8.0.3": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^5.0.1 + once: ^1.3.0 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + languageName: node + linkType: hard + +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: 2.0.0 + checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.20.0 + resolution: "globals@npm:13.20.0" + dependencies: + type-fest: ^0.20.2 + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + languageName: node + linkType: hard + +"globals@npm:^13.20.0": + version: 13.21.0 + resolution: "globals@npm:13.21.0" + dependencies: + type-fest: ^0.20.2 + checksum: 86c92ca8a04efd864c10852cd9abb1ebe6d447dcc72936783e66eaba1087d7dba5c9c3421a48d6ca722c319378754dbcc3f3f732dbe47592d7de908edf58a773 + languageName: node + linkType: hard + +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" + dependencies: + get-intrinsic: ^1.1.1 + checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0": + version: 1.0.0 + resolution: "has-tostringtag@npm:1.0.0" + dependencies: + has-symbols: ^1.0.2 + checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 + languageName: node + linkType: hard + +"hosted-git-info@npm:^2.1.4": + version: 2.8.9 + resolution: "hosted-git-info@npm:2.8.9" + checksum: c955394bdab888a1e9bb10eb33029e0f7ce5a2ac7b3f158099dc8c486c99e73809dca609f5694b223920ca2174db33d32b12f9a2a47141dc59607c29da5a62dd + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: ^2.0.0 + checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"http-signature@npm:~1.3.6": + version: 1.3.6 + resolution: "http-signature@npm:1.3.6" + dependencies: + assert-plus: ^1.0.0 + jsprim: ^2.0.2 + sshpk: ^1.14.1 + checksum: 10be2af4764e71fee0281392937050201ee576ac755c543f570d6d87134ce5e858663fe999a7adb3e4e368e1e356d0d7fec6b9542295b875726ff615188e7a0c + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"human-signals@npm:^1.1.1": + version: 1.1.1 + resolution: "human-signals@npm:1.1.1" + checksum: d587647c9e8ec24e02821b6be7de5a0fc37f591f6c4e319b3054b43fd4c35a70a94c46fc74d8c1a43c47fde157d23acd7421f375e1c1365b09a16835b8300205 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"ignore@npm:^5.2.0": + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + languageName: node + linkType: hard + +"immutable@npm:^4.0.0": + version: 4.3.0 + resolution: "immutable@npm:4.3.0" + checksum: bbd7ea99e2752e053323543d6ff1cc71a4b4614fa6121f321ca766db2bd2092f3f1e0a90784c5431350b7344a4f792fa002eac227062d59b9377b6c09063b58b + languageName: node + linkType: hard + +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e + languageName: node + linkType: hard + +"ini@npm:^1.3.4": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" + dependencies: + get-intrinsic: ^1.2.0 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: ^1.0.1 + checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: ^2.0.0 + checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + +"is-ci@npm:^3.0.0": + version: 3.0.1 + resolution: "is-ci@npm:3.0.1" + dependencies: + ci-info: ^3.2.0 + bin: + is-ci: bin.js + checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e + languageName: node + linkType: hard + +"is-core-module@npm:^2.11.0": + version: 2.12.1 + resolution: "is-core-module@npm:2.12.1" + dependencies: + has: ^1.0.3 + checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.1": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-installed-globally@npm:~0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: ^3.0.0 + is-path-inside: ^3.0.2 + checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.2": + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a + languageName: node + linkType: hard + +"is-number-object@npm:^1.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "is-shared-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: ^1.0.2 + checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + languageName: node + linkType: hard + +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2": + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 + languageName: node + linkType: hard + +"jackspeak@npm:^2.0.3": + version: 2.3.0 + resolution: "jackspeak@npm:2.3.0" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 71bf716f4b5793226d4aeb9761ebf2605ee093b59f91a61451d57d998dd64bbf2b54323fb749b8b2ae8b6d8a463de4f6e3fedab50108671f247bbc80195a6306 + languageName: node + linkType: hard + +"joi@npm:^17.7.0": + version: 17.9.2 + resolution: "joi@npm:17.9.2" + dependencies: + "@hapi/hoek": ^9.0.0 + "@hapi/topo": ^5.0.0 + "@sideway/address": ^4.1.3 + "@sideway/formula": ^3.0.1 + "@sideway/pinpoint": ^2.0.0 + checksum: 8c3709849293411c524e5a679dba7b42598a29a663478941767b8d5b06288611dece58803c468a2c7320cc2429a3e71e3d94337fe47aefcf6c22174dbd90b601 + languageName: node + linkType: hard + +"js-beautify@npm:1.14.6": + version: 1.14.6 + resolution: "js-beautify@npm:1.14.6" + dependencies: + config-chain: ^1.1.13 + editorconfig: ^0.15.3 + glob: ^8.0.3 + nopt: ^6.0.0 + bin: + css-beautify: js/bin/css-beautify.js + html-beautify: js/bin/html-beautify.js + js-beautify: js/bin/js-beautify.js + checksum: 2e61c1183c73d7464ec7d5354763ee9e17ecb4b5c7a3744e9a9dc2e9c406fc6e0c37399130d1ee48313ff502e03e8a949dce96acdaee309dc44317249565934d + languageName: node + linkType: hard + +"js-string-escape@npm:^1.0.1": + version: 1.0.1 + resolution: "js-string-escape@npm:1.0.1" + checksum: f11e0991bf57e0c183b55c547acec85bd2445f043efc9ea5aa68b41bd2a3e7d3ce94636cb233ae0d84064ba4c1a505d32e969813c5b13f81e7d4be12c59256fe + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2 + languageName: node + linkType: hard + +"jsdom@npm:^22.1.0": + version: 22.1.0 + resolution: "jsdom@npm:22.1.0" + dependencies: + abab: ^2.0.6 + cssstyle: ^3.0.0 + data-urls: ^4.0.0 + decimal.js: ^10.4.3 + domexception: ^4.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^3.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.1 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.4 + parse5: ^7.1.2 + rrweb-cssom: ^0.6.0 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^4.1.2 + w3c-xmlserializer: ^4.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^2.0.0 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^12.0.1 + ws: ^8.13.0 + xml-name-validator: ^4.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: d955ab83a6dad3e6af444098d30647c719bbb4cf97de053aa5751c03c8d6f3283d8c4d7fc2774c181f1d432fb0250e7332bc159e6b466424f4e337d73adcbf30 + languageName: node + linkType: hard + +"json-parse-better-errors@npm:^1.0.1": + version: 1.0.2 + resolution: "json-parse-better-errors@npm:1.0.2" + checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema@npm:0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72 + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + +"json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee + languageName: node + linkType: hard + +"jsonc-parser@npm:^3.2.0": + version: 3.2.0 + resolution: "jsonc-parser@npm:3.2.0" + checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"jsprim@npm:^2.0.2": + version: 2.0.2 + resolution: "jsprim@npm:2.0.2" + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + checksum: d175f6b1991e160cb0aa39bc857da780e035611986b5492f32395411879fdaf4e513d98677f08f7352dac93a16b66b8361c674b86a3fa406e2e7af6b26321838 + languageName: node + linkType: hard + +"lazy-ass@npm:1.6.0, lazy-ass@npm:^1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: 5a3ebb17915b03452320804466345382a6c25ac782ec4874fecdb2385793896cd459be2f187dc7def8899180c32ee0ab9a1aa7fe52193ac3ff3fe29bb0591729 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + +"listr2@npm:^3.8.3": + version: 3.14.0 + resolution: "listr2@npm:3.14.0" + dependencies: + cli-truncate: ^2.1.0 + colorette: ^2.0.16 + log-update: ^4.0.0 + p-map: ^4.0.0 + rfdc: ^1.3.0 + rxjs: ^7.5.1 + through: ^2.3.8 + wrap-ansi: ^7.0.0 + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: fdb8b2d6bdf5df9371ebd5082bee46c6d0ca3d1e5f2b11fbb5a127839855d5f3da9d4968fce94f0a5ec67cac2459766abbb1faeef621065ebb1829b11ef9476d + languageName: node + linkType: hard + +"load-json-file@npm:^4.0.0": + version: 4.0.0 + resolution: "load-json-file@npm:4.0.0" + dependencies: + graceful-fs: ^4.1.2 + parse-json: ^4.0.0 + pify: ^3.0.0 + strip-bom: ^3.0.0 + checksum: 8f5d6d93ba64a9620445ee9bde4d98b1eac32cf6c8c2d20d44abfa41a6945e7969456ab5f1ca2fb06ee32e206c9769a20eec7002fe290de462e8c884b6b8b356 + languageName: node + linkType: hard + +"local-pkg@npm:^0.4.3": + version: 0.4.3 + resolution: "local-pkg@npm:0.4.3" + checksum: 7825aca531dd6afa3a3712a0208697aa4a5cd009065f32e3fb732aafcc42ed11f277b5ac67229222e96f4def55197171cdf3d5522d0381b489d2e5547b407d55 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + +"lodash.once@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 + languageName: node + linkType: hard + +"lodash@npm:^4.17.15, lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: ^4.3.0 + cli-cursor: ^3.1.0 + slice-ansi: ^4.0.0 + wrap-ansi: ^6.2.0 + checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + languageName: node + linkType: hard + +"loupe@npm:^2.3.1, loupe@npm:^2.3.6": + version: 2.3.6 + resolution: "loupe@npm:2.3.6" + dependencies: + get-func-name: ^2.0.0 + checksum: cc83f1b124a1df7384601d72d8d1f5fe95fd7a8185469fec48bb2e4027e45243949e7a013e8d91051a138451ff0552310c32aa9786e60b6a30d1e801bdc2163f + languageName: node + linkType: hard + +"lru-cache@npm:^4.1.5": + version: 4.1.5 + resolution: "lru-cache@npm:4.1.5" + dependencies: + pseudomap: ^1.0.2 + yallist: ^2.1.2 + checksum: 4bb4b58a36cd7dc4dcec74cbe6a8f766a38b7426f1ff59d4cf7d82a2aa9b9565cd1cb98f6ff60ce5cd174524868d7bc9b7b1c294371851356066ca9ac4cf135a + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.1 + resolution: "lru-cache@npm:10.0.1" + checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 + languageName: node + linkType: hard + +"magic-string@npm:^0.30.0": + version: 0.30.0 + resolution: "magic-string@npm:0.30.0" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.13 + checksum: 7bdf22e27334d8a393858a16f5f840af63a7c05848c000fd714da5aa5eefa09a1bc01d8469362f25cc5c4a14ec01b46557b7fff8751365522acddf21e57c488d + languageName: node + linkType: hard + +"make-fetch-happen@npm:^11.0.3": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^17.0.0 + http-cache-semantics: ^4.1.1 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^10.0.0 + checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + languageName: node + linkType: hard + +"map-stream@npm:~0.1.0": + version: 0.1.0 + resolution: "map-stream@npm:0.1.0" + checksum: 38abbe4eb883888031e6b2fc0630bc583c99396be16b8ace5794b937b682a8a081f03e8b15bfd4914d1bc88318f0e9ac73ba3512ae65955cd449f63256ddb31d + languageName: node + linkType: hard + +"md5-hex@npm:^3.0.1": + version: 3.0.1 + resolution: "md5-hex@npm:3.0.1" + dependencies: + blueimp-md5: ^2.10.0 + checksum: 6799a19e8bdd3e0c2861b94c1d4d858a89220488d7885c1fa236797e367d0c2e5f2b789e05309307083503f85be3603a9686a5915568a473137d6b4117419cc2 + languageName: node + linkType: hard + +"memorystream@npm:^0.3.1": + version: 0.3.1 + resolution: "memorystream@npm:0.3.1" + checksum: f18b42440d24d09516d01466c06adf797df7873f0d40aa7db02e5fb9ed83074e5e65412d0720901d7069363465f82dc4f8bcb44f0cde271567a61426ce6ca2e9 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.0": + version: 9.0.2 + resolution: "minimatch@npm:9.0.2" + dependencies: + brace-expansion: ^2.0.1 + checksum: 2eb12e2047a062fdb973fb51b9803f2455e3a00977858c038d66646d303a5a15bbcbc6ed5a2fc403bc869b1309f829ed3acd881d3246faf044ea7a494974b924 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + +"minimist@npm:^1.2.7, minimist@npm:^1.2.8": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": + version: 7.0.3 + resolution: "minipass@npm:7.0.3" + checksum: 6f1614f5b5b55568a46bca5fec0e7c46dac027691db27d0e1923a8192866903144cd962ac772c0e9f89b608ea818b702709c042bce98e190d258847d85461531 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"mlly@npm:^1.2.0": + version: 1.4.0 + resolution: "mlly@npm:1.4.0" + dependencies: + acorn: ^8.9.0 + pathe: ^1.1.1 + pkg-types: ^1.0.3 + ufo: ^1.1.2 + checksum: ebf2e2b5cfb4c6e45e8d0bbe82710952247023f12626cb0997c41b1bb6e57c8b6fc113aa709228ad511382ab0b4eebaab759806be0578093b3635d3e940bd63b + languageName: node + linkType: hard + +"ms@npm:2.1.2, ms@npm:^2.1.1": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:^2.0.0": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"muggle-string@npm:^0.3.1": + version: 0.3.1 + resolution: "muggle-string@npm:0.3.1" + checksum: f2357f906e0160b7df0179c77838cf859f3ca23cb74eca7c043b9fc9e1e416d91497c80fbe2f3c9aeb003c14ad15857fc4e94f1631e8a6695b07e4135626d305 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" + bin: + nanoid: bin/nanoid.cjs + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + languageName: node + linkType: hard + +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"nice-try@npm:^1.0.4": + version: 1.0.5 + resolution: "nice-try@npm:1.0.5" + checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.4.0 + resolution: "node-gyp@npm:9.4.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^11.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"normalize-package-data@npm:^2.3.2": + version: 2.5.0 + resolution: "normalize-package-data@npm:2.5.0" + dependencies: + hosted-git-info: ^2.1.4 + resolve: ^1.10.0 + semver: 2 || 3 || 4 || 5 + validate-npm-package-license: ^3.0.1 + checksum: 7999112efc35a6259bc22db460540cae06564aa65d0271e3bdfa86876d08b0e578b7b5b0028ee61b23f1cae9fc0e7847e4edc0948d3068a39a2a82853efc8499 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"normalize.css@npm:^8.0.1": + version: 8.0.1 + resolution: "normalize.css@npm:8.0.1" + checksum: 4698cae88ec35e3f3e82f9f9402e6ffb906c27ccd6373cad88e6b3f5634fc7a043cb38702472299e5edb73825cf8b18d5fd9283f58829eddda79ea97453049a2 + languageName: node + linkType: hard + +"npm-run-all@npm:^4.1.5": + version: 4.1.5 + resolution: "npm-run-all@npm:4.1.5" + dependencies: + ansi-styles: ^3.2.1 + chalk: ^2.4.1 + cross-spawn: ^6.0.5 + memorystream: ^0.3.1 + minimatch: ^3.0.4 + pidtree: ^0.3.0 + read-pkg: ^3.0.0 + shell-quote: ^1.6.1 + string.prototype.padend: ^3.0.0 + bin: + npm-run-all: bin/npm-run-all/index.js + run-p: bin/run-p/index.js + run-s: bin/run-s/index.js + checksum: 373b72c6a36564da13c1642c1fd9bb4dcc756bce7a3648f883772f02661095319820834ff813762d2fee403e9b40c1cd27c8685807c107440f10eb19c006d4a0 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: ^1.0.0 + checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.4": + version: 2.2.5 + resolution: "nwsapi@npm:2.2.5" + checksum: 3acfe387214e2a9a03960662ad600ecb41fc24385c9de91262a881608407f02d14686e5df3e6e87af0cf7b173ed2a6a202a569ab7bef376ec1841cd9b6cbf0a6 + languageName: node + linkType: hard + +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4": + version: 4.1.4 + resolution: "object.assign@npm:4.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"optionator@npm:^0.9.1": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" + dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a + languageName: node + linkType: hard + +"ospath@npm:^1.2.2": + version: 1.2.2 + resolution: "ospath@npm:1.2.2" + checksum: 505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-limit@npm:^4.0.0": + version: 4.0.0 + resolution: "p-limit@npm:4.0.0" + dependencies: + yocto-queue: ^1.0.0 + checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-json@npm:4.0.0" + dependencies: + error-ex: ^1.3.1 + json-parse-better-errors: ^1.0.1 + checksum: 0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5 + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.2": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^2.0.1": + version: 2.0.1 + resolution: "path-key@npm:2.0.1" + checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"path-type@npm:^3.0.0": + version: 3.0.0 + resolution: "path-type@npm:3.0.0" + dependencies: + pify: ^3.0.0 + checksum: 735b35e256bad181f38fa021033b1c33cfbe62ead42bb2222b56c210e42938eecb272ae1949f3b6db4ac39597a61b44edd8384623ec4d79bfdc9a9c0f12537a6 + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"pathe@npm:^1.1.0, pathe@npm:^1.1.1": + version: 1.1.1 + resolution: "pathe@npm:1.1.1" + checksum: 34ab3da2e5aa832ebc6a330ffe3f73d7ba8aec6e899b53b8ec4f4018de08e40742802deb12cf5add9c73b7bf719b62c0778246bd376ca62b0fb23e0dde44b759 + languageName: node + linkType: hard + +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: 090e3147716647fb7fb5b4b8c8e5b55e5d0a6086d085b6cd23f3d3c01fcf0ff56fd3cc22f2f4a033bd2e46ed55d61ed8379e123b42afe7d531a2a5fc8bb556d6 + languageName: node + linkType: hard + +"pause-stream@npm:0.0.11": + version: 0.0.11 + resolution: "pause-stream@npm:0.0.11" + dependencies: + through: ~2.3 + checksum: 3c4a14052a638b92e0c96eb00c0d7977df7f79ea28395250c525d197f1fc02d34ce1165d5362e2e6ebbb251524b94a76f3f0d4abc39ab8b016d97449fe15583c + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d + languageName: node + linkType: hard + +"performance-now@npm:^2.1.0": + version: 2.1.0 + resolution: "performance-now@npm:2.1.0" + checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"pidtree@npm:^0.3.0": + version: 0.3.1 + resolution: "pidtree@npm:0.3.1" + bin: + pidtree: bin/pidtree.js + checksum: eb49025099f1af89a4696f7673351421f13420f3397b963c901fe23a1c9c2ff50f4750321970d4472c0ffbb065e4a6c3c27f75e226cc62284b19e21d32ce7012 + languageName: node + linkType: hard + +"pify@npm:^2.2.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + languageName: node + linkType: hard + +"pify@npm:^3.0.0": + version: 3.0.0 + resolution: "pify@npm:3.0.0" + checksum: 6cdcbc3567d5c412450c53261a3f10991665d660961e06605decf4544a61a97a54fefe70a68d5c37080ff9d6f4cf51444c90198d1ba9f9309a6c0d6e9f5c4fde + languageName: node + linkType: hard + +"pinia@npm:^2.1.3": + version: 2.1.4 + resolution: "pinia@npm:2.1.4" + dependencies: + "@vue/devtools-api": ^6.5.0 + vue-demi: ">=0.14.5" + peerDependencies: + "@vue/composition-api": ^1.4.0 + typescript: ">=4.4.4" + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + "@vue/composition-api": + optional: true + typescript: + optional: true + checksum: 5285b1415e6c88698d41393e9144dfd0fbbb7f88cdc90637f6bf3526046c1f171befe01b2b063e9f6004f16b6c8dc1ed3ae9b2434ccf69403fec291215f0e1e3 + languageName: node + linkType: hard + +"pkg-types@npm:^1.0.3": + version: 1.0.3 + resolution: "pkg-types@npm:1.0.3" + dependencies: + jsonc-parser: ^3.2.0 + mlly: ^1.2.0 + pathe: ^1.1.0 + checksum: 4b305c834b912ddcc8a0fe77530c0b0321fe340396f84cbb87aecdbc126606f47f2178f23b8639e71a4870f9631c7217aef52ffed0ae17ea2dbbe7e43d116a6e + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.9": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 + languageName: node + linkType: hard + +"postcss@npm:^8.1.10, postcss@npm:^8.4.23": + version: 8.4.24 + resolution: "postcss@npm:8.4.24" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 814e2126dacfea313588eda09cc99a9b4c26ec55c059188aa7a916d20d26d483483106dc5ff9e560731b59f45c5bb91b945dfadc670aed875cc90ddbbf4e787d + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + +"prettier@npm:^2.8.8": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 + languageName: node + linkType: hard + +"pretty-bytes@npm:^5.6.0": + version: 5.6.0 + resolution: "pretty-bytes@npm:5.6.0" + checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd + languageName: node + linkType: hard + +"pretty-format@npm:^27.5.1": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"proto-list@npm:~1.2.1": + version: 1.2.4 + resolution: "proto-list@npm:1.2.4" + checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 + languageName: node + linkType: hard + +"proxy-from-env@npm:1.0.0": + version: 1.0.0 + resolution: "proxy-from-env@npm:1.0.0" + checksum: 292e28d1de0c315958d71d8315eb546dd3cd8c8cbc2dab7c54eeb9f5c17f421771964ad0b5e1f77011bab2305bdae42e1757ce33bdb1ccc3e87732322a8efcf1 + languageName: node + linkType: hard + +"ps-tree@npm:1.2.0": + version: 1.2.0 + resolution: "ps-tree@npm:1.2.0" + dependencies: + event-stream: =3.3.4 + bin: + ps-tree: ./bin/ps-tree.js + checksum: e635dd00f53d30d31696cf5f95b3a8dbdf9b1aeb36d4391578ce8e8cd22949b7c5536c73b0dc18c78615ea3ddd4be96101166be59ca2e3e3cb1e2f79ba3c7f98 + languageName: node + linkType: hard + +"pseudomap@npm:^1.0.2": + version: 1.0.2 + resolution: "pseudomap@npm:1.0.2" + checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.0 + resolution: "pump@npm:3.0.0" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.0": + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + languageName: node + linkType: hard + +"qs@npm:6.10.4": + version: 6.10.4 + resolution: "qs@npm:6.10.4" + dependencies: + side-channel: ^1.0.4 + checksum: 31e4fedd759d01eae52dde6692abab175f9af3e639993c5caaa513a2a3607b34d8058d3ae52ceeccf37c3025f22ed5e90e9ddd6c2537e19c0562ddd10dc5b1eb + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + +"read-pkg@npm:^3.0.0": + version: 3.0.0 + resolution: "read-pkg@npm:3.0.0" + dependencies: + load-json-file: ^4.0.0 + normalize-package-data: ^2.3.2 + path-type: ^3.0.0 + checksum: 398903ebae6c7e9965419a1062924436cc0b6f516c42c4679a90290d2f87448ed8f977e7aa2dbba4aa1ac09248628c43e493ac25b2bc76640e946035200e34c6 + languageName: node + linkType: hard + +"readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: ^2.2.1 + checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.4.3": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + languageName: node + linkType: hard + +"request-progress@npm:^3.0.0": + version: 3.0.0 + resolution: "request-progress@npm:3.0.0" + dependencies: + throttleit: ^1.0.0 + checksum: 6ea1761dcc8a8b7b5894afd478c0286aa31bd69438d7050294bd4fd0d0b3e09b5cde417d38deef9c49809039c337d8744e4bb49d8632b0c3e4ffa5e8a687e0fd + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve@npm:^1.10.0": + version: 1.22.2 + resolution: "resolve@npm:1.22.2" + dependencies: + is-core-module: ^2.11.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 7e5df75796ebd429445d102d5824482ee7e567f0070b2b45897b29bb4f613dcbc262e0257b8aeedb3089330ccaea0d6a0464df1a77b2992cf331dcda0f4cb549 + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.10.0#~builtin": + version: 1.22.2 + resolution: "resolve@patch:resolve@npm%3A1.22.2#~builtin::version=1.22.2&hash=c3c19d" + dependencies: + is-core-module: ^2.11.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 66cc788f13b8398de18eb4abb3aed90435c84bb8935953feafcf7231ba4cd191b2c10b4a87b1e9681afc34fb138c705f91f7330ff90bfa36f457e5584076a2b8 + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.3.0 + resolution: "rfdc@npm:1.3.0" + checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"rollup@npm:^3.21.0": + version: 3.25.3 + resolution: "rollup@npm:3.25.3" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 397965706bb46a217e2815995133c11ce9a843e7b80018a91594d36d7a7708fe3a33acd1635deaa3138c42918397f38b32ca975951519fdfe3b4201875ecfd3d + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.6.0": + version: 0.6.0 + resolution: "rrweb-cssom@npm:0.6.0" + checksum: 182312f6e4f41d18230ccc34f14263bc8e8a6b9d30ee3ec0d2d8e643c6f27964cd7a8d638d4a00e988d93e8dc55369f4ab5a473ccfeff7a8bab95b36d2b5499c + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rxjs@npm:^7.5.1, rxjs@npm:^7.8.0": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-regex-test@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-regex: ^1.1.4 + checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"sass@npm:^1.63.6": + version: 1.63.6 + resolution: "sass@npm:1.63.6" + dependencies: + chokidar: ">=3.0.0 <4.0.0" + immutable: ^4.0.0 + source-map-js: ">=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: 3372319904658eeafaf78a09a6fcb3368a68e6d76fe3c43c2d009f4f72e475ab22b82ef483ef5c00fcda3ab00066846c0bd88c36b42771b855f6ab80c7eda541 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: ^2.2.0 + checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b + languageName: node + linkType: hard + +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.6.0": + version: 5.7.1 + resolution: "semver@npm:5.7.1" + bin: + semver: ./bin/semver + checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + languageName: node + linkType: hard + +"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.6, semver@npm:^7.3.7, semver@npm:^7.3.8": + version: 7.5.3 + resolution: "semver@npm:7.5.3" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7 + languageName: node + linkType: hard + +"semver@npm:^7.5.3": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"shebang-command@npm:^1.2.0": + version: 1.2.0 + resolution: "shebang-command@npm:1.2.0" + dependencies: + shebang-regex: ^1.0.0 + checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "shebang-regex@npm:1.0.0" + checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"shell-quote@npm:^1.6.1": + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.4 + resolution: "side-channel@npm:1.0.4" + dependencies: + call-bind: ^1.0.0 + get-intrinsic: ^1.0.2 + object-inspect: ^1.9.0 + checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + languageName: node + linkType: hard + +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 + languageName: node + linkType: hard + +"sigmund@npm:^1.0.1": + version: 1.0.1 + resolution: "sigmund@npm:1.0.1" + checksum: 793f81f8083ad75ff3903ffd93cf35be8d797e872822cf880aea27ce6db522b508d93ea52ae292bccf357ce34dd5c7faa544cc51c2216e70bbf5fcf09b62707c + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: ^3.0.0 + spdx-license-ids: ^3.0.0 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.3.0 + resolution: "spdx-exceptions@npm:2.3.0" + checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: ^2.1.0 + spdx-license-ids: ^3.0.0 + checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.13 + resolution: "spdx-license-ids@npm:3.0.13" + checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + languageName: node + linkType: hard + +"split@npm:0.3": + version: 0.3.3 + resolution: "split@npm:0.3.3" + dependencies: + through: 2 + checksum: 2e076634c9637cfdc54ab4387b6a243b8c33b360874a25adf6f327a5647f07cb3bf1c755d515248eb3afee4e382278d01f62c62d87263c118f28065b86f74f02 + languageName: node + linkType: hard + +"sshpk@npm:^1.14.1": + version: 1.17.0 + resolution: "sshpk@npm:1.17.0" + dependencies: + asn1: ~0.2.3 + assert-plus: ^1.0.0 + bcrypt-pbkdf: ^1.0.0 + dashdash: ^1.12.0 + ecc-jsbn: ~0.1.1 + getpass: ^0.1.1 + jsbn: ~0.1.0 + safer-buffer: ^2.0.2 + tweetnacl: ~0.14.0 + bin: + sshpk-conv: bin/sshpk-conv + sshpk-sign: bin/sshpk-sign + sshpk-verify: bin/sshpk-verify + checksum: ba109f65c8e6c35133b8e6ed5576abeff8aa8d614824b7275ec3ca308f081fef483607c28d97780c1e235818b0f93ed8c8b56d0a5968d5a23fd6af57718c7597 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + languageName: node + linkType: hard + +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 + languageName: node + linkType: hard + +"start-server-and-test@npm:^2.0.0": + version: 2.0.0 + resolution: "start-server-and-test@npm:2.0.0" + dependencies: + arg: ^5.0.2 + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.4 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 7.0.1 + bin: + server-test: src/bin/start.js + start-server-and-test: src/bin/start.js + start-test: src/bin/start.js + checksum: 8788e59ad78275332c78325a804504ac558f06a112d47cb5bc3d012d2bda46add72c863cae2357836fe245ee4e22e2fec0b6d47dbdf5e0f0f5cfd1a57544d100 + languageName: node + linkType: hard + +"std-env@npm:^3.3.2": + version: 3.3.3 + resolution: "std-env@npm:3.3.3" + checksum: 6665f6d8bd63aae432d3eb9abbd7322847ad0d902603e6dce1e8051b4f42ceeb4f7f96a4faf70bb05ce65ceee2dc982502b701575c8a58b1bfad29f3dbb19f81 + languageName: node + linkType: hard + +"stream-combiner@npm:~0.0.4": + version: 0.0.4 + resolution: "stream-combiner@npm:0.0.4" + dependencies: + duplexer: ~0.1.1 + checksum: 844b622cfe8b9de45a6007404f613b60aaf85200ab9862299066204242f89a7c8033b1c356c998aa6cfc630f6cd9eba119ec1c6dc1f93e245982be4a847aee7d + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string.prototype.padend@npm:^3.0.0": + version: 3.1.4 + resolution: "string.prototype.padend@npm:3.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 76e07238fe31dc12177428f0436b7ed6985f6a7ba97470fd53e4f0a6d9860bfee127d81957f3073cc879b434233df143825d140581e1340278053ad993c92f6c + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"strip-literal@npm:^1.0.1": + version: 1.0.1 + resolution: "strip-literal@npm:1.0.1" + dependencies: + acorn: ^8.8.2 + checksum: ab40496820f02220390d95cdd620a997168efb69d5bd7d180bc4ef83ca562a95447843d8c7c88b8284879a29cf4eedc89d8001d1e098c1a1e23d12a9c755dff4 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.1.15 + resolution: "tar@npm:6.1.15" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"throttleit@npm:^1.0.0": + version: 1.0.0 + resolution: "throttleit@npm:1.0.0" + checksum: 1b2db4d2454202d589e8236c07a69d2fab838876d370030ebea237c34c0a7d1d9cf11c29f994531ebb00efd31e9728291042b7754f2798a8352ec4463455b659 + languageName: node + linkType: hard + +"through@npm:2, through@npm:^2.3.8, through@npm:~2.3, through@npm:~2.3.1": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"time-zone@npm:^1.0.0": + version: 1.0.0 + resolution: "time-zone@npm:1.0.0" + checksum: e46f5a69b8c236dcd8e91e29d40d4e7a3495ed4f59888c3f84ce1d9678e20461421a6ba41233509d47dd94bc18f1a4377764838b21b584663f942b3426dcbce8 + languageName: node + linkType: hard + +"tinybench@npm:^2.5.0": + version: 2.5.0 + resolution: "tinybench@npm:2.5.0" + checksum: 284bb9428f197ec8b869c543181315e65e41ccfdad3c4b6c916bb1fdae1b5c6785661b0d90cf135b48d833b03cb84dc5357b2d33ec65a1f5971fae0ab2023821 + languageName: node + linkType: hard + +"tinypool@npm:^0.5.0": + version: 0.5.0 + resolution: "tinypool@npm:0.5.0" + checksum: 4e0dfd8f28666d541c1d92304222edc4613f05d74fe2243c8520d466a2cc6596011a7072c1c41a7de7522351b82fda07e8038198e8f43673d8d69401c5903f8c + languageName: node + linkType: hard + +"tinyspy@npm:^2.1.0": + version: 2.1.1 + resolution: "tinyspy@npm:2.1.1" + checksum: cfe669803a7f11ca912742b84c18dcc4ceecaa7661c69bc5eb608a8a802d541c48aba220df8929f6c8cd09892ad37cb5ba5958ddbbb57940e91d04681d3cee73 + languageName: node + linkType: hard + +"tmp@npm:~0.2.1": + version: 0.2.1 + resolution: "tmp@npm:0.2.1" + dependencies: + rimraf: ^3.0.0 + checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2, tough-cookie@npm:^4.1.3": + version: 4.1.3 + resolution: "tough-cookie@npm:4.1.3" + dependencies: + psl: ^1.1.33 + punycode: ^2.1.1 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc + languageName: node + linkType: hard + +"tr46@npm:^4.1.1": + version: 4.1.1 + resolution: "tr46@npm:4.1.1" + dependencies: + punycode: ^2.3.0 + checksum: aeeb821ac2cd792e63ec84888b4fd6598ac6ed75d861579e21a5cf9d4ee78b2c6b94e7d45036f2ca2088bc85b9b46560ad23c4482979421063b24137349dbd96 + languageName: node + linkType: hard + +"tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tslib@npm:^2.1.0": + version: 2.6.0 + resolution: "tslib@npm:2.6.0" + checksum: c01066038f950016a18106ddeca4649b4d76caa76ec5a31e2a26e10586a59fceb4ee45e96719bf6c715648e7c14085a81fee5c62f7e9ebee68e77a5396e5538f + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 + languageName: node + linkType: hard + +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: ^5.0.1 + checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711 + languageName: node + linkType: hard + +"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": + version: 0.14.5 + resolution: "tweetnacl@npm:0.14.5" + checksum: 6061daba1724f59473d99a7bb82e13f211cdf6e31315510ae9656fefd4779851cb927adad90f3b488c8ed77c106adc0421ea8055f6f976ff21b27c5c4e918487 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + +"typescript@npm:~5.0.4": + version: 5.0.4 + resolution: "typescript@npm:5.0.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 82b94da3f4604a8946da585f7d6c3025fff8410779e5bde2855ab130d05e4fd08938b9e593b6ebed165bda6ad9292b230984f10952cf82f0a0ca07bbeaa08172 + languageName: node + linkType: hard + +"typescript@patch:typescript@~5.0.4#~builtin": + version: 5.0.4 + resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: bb309d320c59a26565fb3793dba550576ab861018ff3fd1b7fccabbe46ae4a35546bc45f342c0a0b6f265c801ccdf64ffd68f548f117ceb7f0eac4b805cd52a9 + languageName: node + linkType: hard + +"ufo@npm:^1.1.2": + version: 1.1.2 + resolution: "ufo@npm:1.1.2" + checksum: 83c940a6a23b6d4fc0cd116265bb5dcf88ab34a408ad9196e413270ca607a4781c09b547dc518f43caee128a096f20fe80b5a0e62b4bcc0a868619896106d048 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "unbox-primitive@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + has-bigints: ^1.0.2 + has-symbols: ^1.0.3 + which-boxed-primitive: ^1.0.2 + checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + languageName: node + linkType: hard + +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.1": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: ^3.0.0 + spdx-expression-parse: ^3.0.0 + checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: ^1.0.0 + core-util-is: 1.0.2 + extsprintf: ^1.2.0 + checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea + languageName: node + linkType: hard + +"vite-node@npm:0.32.2": + version: 0.32.2 + resolution: "vite-node@npm:0.32.2" + dependencies: + cac: ^6.7.14 + debug: ^4.3.4 + mlly: ^1.2.0 + pathe: ^1.1.0 + picocolors: ^1.0.0 + vite: ^3.0.0 || ^4.0.0 + bin: + vite-node: vite-node.mjs + checksum: 9573fe707d56a0e4d4e1b1f5e23c9e0e7712f86561b63908f42d2fcd6a8097716a722127da7483f8ea12505f61f876e4325fd90505be8f54a1f1330836f9cdc6 + languageName: node + linkType: hard + +"vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.3.9": + version: 4.3.9 + resolution: "vite@npm:4.3.9" + dependencies: + esbuild: ^0.17.5 + fsevents: ~2.3.2 + postcss: ^8.4.23 + rollup: ^3.21.0 + peerDependencies: + "@types/node": ">= 14" + less: "*" + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 8c45a516278d1e0425fac00c0877336790f71484a851a318346a70e0d2aef9f3b9651deb2f9f002c791ceb920eda7d6a3cda753bdefd657321c99f448b02dd25 + languageName: node + linkType: hard + +"vitest@npm:^0.32.0": + version: 0.32.2 + resolution: "vitest@npm:0.32.2" + dependencies: + "@types/chai": ^4.3.5 + "@types/chai-subset": ^1.3.3 + "@types/node": "*" + "@vitest/expect": 0.32.2 + "@vitest/runner": 0.32.2 + "@vitest/snapshot": 0.32.2 + "@vitest/spy": 0.32.2 + "@vitest/utils": 0.32.2 + acorn: ^8.8.2 + acorn-walk: ^8.2.0 + cac: ^6.7.14 + chai: ^4.3.7 + concordance: ^5.0.4 + debug: ^4.3.4 + local-pkg: ^0.4.3 + magic-string: ^0.30.0 + pathe: ^1.1.0 + picocolors: ^1.0.0 + std-env: ^3.3.2 + strip-literal: ^1.0.1 + tinybench: ^2.5.0 + tinypool: ^0.5.0 + vite: ^3.0.0 || ^4.0.0 + vite-node: 0.32.2 + why-is-node-running: ^2.2.2 + peerDependencies: + "@edge-runtime/vm": "*" + "@vitest/browser": "*" + "@vitest/ui": "*" + happy-dom: "*" + jsdom: "*" + playwright: "*" + safaridriver: "*" + webdriverio: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + bin: + vitest: vitest.mjs + checksum: 6679edb1ed29a02d7df9636f1f79b82a11d8fd67507cfaf3b2c1fdf509c6b6f328f64fd9313fc5889d58d839300c5462d6c97f353a0b6404c9e05c2368b3ba9a + languageName: node + linkType: hard + +"vue-chartjs@npm:^5.2.0": + version: 5.2.0 + resolution: "vue-chartjs@npm:5.2.0" + peerDependencies: + chart.js: ^4.1.1 + vue: ^3.0.0-0 || ^2.7.0 + checksum: e707bcbe442d85a3ec23825620f6b1ba4f43eba67c68e1bd845ef5536b754c4447dc9a249f4ec92f8a29a479981b07382bd32b6449686676dd22d5e18f366ffa + languageName: node + linkType: hard + +"vue-component-type-helpers@npm:1.6.5": + version: 1.6.5 + resolution: "vue-component-type-helpers@npm:1.6.5" + checksum: a7926ade20c31c6b8196b69124e676ec57cd2ec3cfb81eb5ea49efe115f7d679dcf43e2ff8a982b2fc5e16436098b42043301a30898e44d5ad073255bd821d46 + languageName: node + linkType: hard + +"vue-demi@npm:>=0.14.5": + version: 0.14.5 + resolution: "vue-demi@npm:0.14.5" + peerDependencies: + "@vue/composition-api": ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + "@vue/composition-api": + optional: true + bin: + vue-demi-fix: bin/vue-demi-fix.js + vue-demi-switch: bin/vue-demi-switch.js + checksum: ff44b9372b8224590514252a2f73363cced6062205f9628a6b130dccb80e2023d55cd9d1da94aeb68d5539b7ea9eedcecf88ab281a3a9ff48b8db4c5366b9643 + languageName: node + linkType: hard + +"vue-eslint-parser@npm:^9.1.1, vue-eslint-parser@npm:^9.3.0": + version: 9.3.1 + resolution: "vue-eslint-parser@npm:9.3.1" + dependencies: + debug: ^4.3.4 + eslint-scope: ^7.1.1 + eslint-visitor-keys: ^3.3.0 + espree: ^9.3.1 + esquery: ^1.4.0 + lodash: ^4.17.21 + semver: ^7.3.6 + peerDependencies: + eslint: ">=6.0.0" + checksum: 6d1476b45fcc5b456a1e5c0f33ec695cf1d392ca6113250d5e3441e6cf3b2a0ec28a9455699363641dfb7c48358f215db07856c98385a31ace9bc58196f4156e + languageName: node + linkType: hard + +"vue-matomo@npm:^4.2.0": + version: 4.2.0 + resolution: "vue-matomo@npm:4.2.0" + checksum: 78707b15ecdbc2c9163be7979e5a38499902091c5c2f7f3fe8b11ffff20ca52464b313341563d3005f9f134c479d1667119912083952a0f4ab93a6bef3062ecf + languageName: node + linkType: hard + +"vue-resize@npm:^2.0.0-alpha.1": + version: 2.0.0-alpha.1 + resolution: "vue-resize@npm:2.0.0-alpha.1" + peerDependencies: + vue: ^3.0.0 + checksum: 574321cc4792a393fe8f698a840cd6f11c8524da7869cffa8dc17a342521ee17579e14c243510bba96ef197f9a99ef8c57c22e9320c1486f62150f01f7a17ebe + languageName: node + linkType: hard + +"vue-router@npm:^4.2.2": + version: 4.2.2 + resolution: "vue-router@npm:4.2.2" + dependencies: + "@vue/devtools-api": ^6.5.0 + peerDependencies: + vue: ^3.2.0 + checksum: 4181b3776a57e51060490b7bcd82f48891d5023587e5ffb54cf47c1f6b03dd2d20f5392b99c9e659821fb7b3fee84da2dc532022dae92d8545e67fe96a168d64 + languageName: node + linkType: hard + +"vue-select@npm:^4.0.0-beta.6": + version: 4.0.0-beta.6 + resolution: "vue-select@npm:4.0.0-beta.6" + peerDependencies: + vue: 3.x + checksum: 712ba1f1ecf0891225a7108cbe5bc493c8c24b44335d7298d57c9ed9719cf49a5fc7ee53c376085438dd437f36c092933b6cd5b2e617ba28de2d85ab3eaa3e05 + languageName: node + linkType: hard + +"vue-template-compiler@npm:^2.7.14": + version: 2.7.14 + resolution: "vue-template-compiler@npm:2.7.14" + dependencies: + de-indent: ^1.0.2 + he: ^1.2.0 + checksum: eba9d2eed6b7110c963bc356b47bdd11d4023d25148abb7e5f7826db2fefe7ad8a575787ee0d8fa47701d44a6f54bde475279b1319f44e1049271eb2419f93a7 + languageName: node + linkType: hard + +"vue-tsc@npm:^1.6.5": + version: 1.8.3 + resolution: "vue-tsc@npm:1.8.3" + dependencies: + "@vue/language-core": 1.8.3 + "@vue/typescript": 1.8.3 + semver: ^7.3.8 + peerDependencies: + typescript: "*" + bin: + vue-tsc: bin/vue-tsc.js + checksum: 52abb9684959a3757ab9e4411c2213afa62a05e6caddaf78568b74502195ce6b9e9442f0f311b28a7be1a1f6cb8178db17ef398f44c5b27e915bae018b765859 + languageName: node + linkType: hard + +"vue3-client@workspace:.": + version: 0.0.0-use.local + resolution: "vue3-client@workspace:." + dependencies: + "@fortawesome/fontawesome-svg-core": ^6.4.0 + "@fortawesome/free-brands-svg-icons": ^6.4.0 + "@fortawesome/free-regular-svg-icons": ^6.4.0 + "@fortawesome/free-solid-svg-icons": ^6.4.0 + "@fortawesome/vue-fontawesome": ^3.0.3 + "@rushstack/eslint-patch": ^1.2.0 + "@tsconfig/node18": ^2.0.1 + "@types/jsdom": ^21.1.1 + "@types/node": ^18.16.17 + "@vitejs/plugin-vue": ^4.2.3 + "@vue/eslint-config-prettier": ^7.1.0 + "@vue/eslint-config-typescript": ^11.0.3 + "@vue/test-utils": ^2.3.2 + "@vue/tsconfig": ^0.4.0 + "@web3-storage/parse-link-header": ^3.1.0 + autosize: ^6.0.1 + chart.js: ^4.3.0 + chartjs-plugin-deferred: ^2.0.0 + cypress: ^13.2.0 + dayjs: ^1.11.8 + eslint: ^8.39.0 + eslint-plugin-cypress: ^2.14.0 + eslint-plugin-vue: ^9.11.0 + floating-vue: ^2.0.0-beta.24 + jsdom: ^22.1.0 + normalize.css: ^8.0.1 + npm-run-all: ^4.1.5 + pinia: ^2.1.3 + prettier: ^2.8.8 + sass: ^1.63.6 + start-server-and-test: ^2.0.0 + typescript: ~5.0.4 + vite: ^4.3.9 + vitest: ^0.32.0 + vue: ^3.3.4 + vue-chartjs: ^5.2.0 + vue-matomo: ^4.2.0 + vue-router: ^4.2.2 + vue-select: ^4.0.0-beta.6 + vue-tsc: ^1.6.5 + whatwg-fetch: ^3.6.2 + languageName: unknown + linkType: soft + +"vue@npm:^3.3.4": + version: 3.3.4 + resolution: "vue@npm:3.3.4" + dependencies: + "@vue/compiler-dom": 3.3.4 + "@vue/compiler-sfc": 3.3.4 + "@vue/runtime-dom": 3.3.4 + "@vue/server-renderer": 3.3.4 + "@vue/shared": 3.3.4 + checksum: 58b6c62a66a375ce5df460fcb7ba41b37c8637c635faf06ef472ae4197f412cf9ad83586cd8e3f66c486404fbe8550e694f90ff724a571d1ba78830791099c59 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: ^4.0.0 + checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 + languageName: node + linkType: hard + +"wait-on@npm:7.0.1": + version: 7.0.1 + resolution: "wait-on@npm:7.0.1" + dependencies: + axios: ^0.27.2 + joi: ^17.7.0 + lodash: ^4.17.21 + minimist: ^1.2.7 + rxjs: ^7.8.0 + bin: + wait-on: bin/wait-on + checksum: 1e8a17d8ee6436f71d3ab82781ce31267481fcd7bbccde49b0f8124871e6e40a1acac3401f04f775ba6203853a5813352fa131620fc139914351f3b2894d573f + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + +"well-known-symbols@npm:^2.0.0": + version: 2.0.0 + resolution: "well-known-symbols@npm:2.0.0" + checksum: 4f54bbc3012371cb4d228f436891b8e7536d34ac61a57541890257e96788608e096231e0121ac24d08ef2f908b3eb2dc0adba35023eaeb2a7df655da91415402 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: 0.6.3 + checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 + languageName: node + linkType: hard + +"whatwg-fetch@npm:^3.6.2": + version: 3.6.2 + resolution: "whatwg-fetch@npm:3.6.2" + checksum: ee976b7249e7791edb0d0a62cd806b29006ad7ec3a3d89145921ad8c00a3a67e4be8f3fb3ec6bc7b58498724fd568d11aeeeea1f7827e7e1e5eae6c8a275afed + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 + languageName: node + linkType: hard + +"whatwg-url@npm:^12.0.0, whatwg-url@npm:^12.0.1": + version: 12.0.1 + resolution: "whatwg-url@npm:12.0.1" + dependencies: + tr46: ^4.1.1 + webidl-conversions: ^7.0.0 + checksum: 8698993b763c1e7eda5ed16c31dab24bca6489626aca7caf8b5a2b64684dda6578194786f10ec42ceb1c175feea16d0a915096e6419e08d154ce551c43176972 + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + dependencies: + is-bigint: ^1.0.1 + is-boolean-object: ^1.1.0 + is-number-object: ^1.0.4 + is-string: ^1.0.5 + is-symbol: ^1.0.3 + checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + is-typed-array: ^1.1.10 + checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + languageName: node + linkType: hard + +"which@npm:^1.2.9": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"why-is-node-running@npm:^2.2.2": + version: 2.2.2 + resolution: "why-is-node-running@npm:2.2.2" + dependencies: + siginfo: ^2.0.0 + stackback: 0.0.2 + bin: + why-is-node-running: cli.js + checksum: 50820428f6a82dfc3cbce661570bcae9b658723217359b6037b67e495255409b4c8bc7931745f5c175df71210450464517cab32b2f7458ac9c40b4925065200a + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"ws@npm:^8.13.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 + languageName: node + linkType: hard + +"yallist@npm:^2.1.2": + version: 2.1.2 + resolution: "yallist@npm:2.1.2" + checksum: 9ba99409209f485b6fcb970330908a6d41fa1c933f75e08250316cce19383179a6b70a7e0721b89672ebb6199cc377bf3e432f55100da6a7d6e11902b0a642cb + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: ~0.2.3 + fd-slicer: ~1.1.0 + checksum: 7f21fe0bbad6e2cb130044a5d1d0d5a0e5bf3d8d4f8c4e6ee12163ce798fee3de7388d22a7a0907f563ac5f9d40f8699a223d3d5c1718da90b0156da6904022b + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard + +"yocto-queue@npm:^1.0.0": + version: 1.0.0 + resolution: "yocto-queue@npm:1.0.0" + checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 + languageName: node + linkType: hard