From edcacee1e3b9acc09a7852cd22df783764c25691 Mon Sep 17 00:00:00 2001 From: Jessy Metaxas Date: Wed, 29 May 2024 12:08:01 +0200 Subject: [PATCH] clean pages --- .gitignore | 15 - README.md | 141 - demo/index.html | 132 - package-lock.json | 7149 ------------------------------- package.json | 54 - rollup.config.js | 19 - screenshot.png | Bin 71123 -> 0 bytes src/index.ts | 2 - src/lib/components/shadowUI.ts | 248 -- src/lib/events/event-handler.ts | 260 -- src/lib/events/modal-handler.ts | 86 - src/lib/styles/style.css | 391 -- src/lib/utils/color.ts | 143 - src/lib/utils/doms.ts | 31 - src/lib/utils/validators.ts | 15 - src/picker.ts | 81 - src/types/colors.d.ts | 24 - src/types/eyedropper.d.ts | 12 - src/types/module.d.ts | 9 - src/types/ui.d.ts | 38 - tests/color.test.ts | 209 - tests/picker.test.ts | 222 - tests/validators.test.ts | 35 - tsconfig.json | 16 - web-dev-server.config.js | 14 - web-test-runner.config.js | 16 - 26 files changed, 9362 deletions(-) delete mode 100644 .gitignore delete mode 100644 README.md delete mode 100644 demo/index.html delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 rollup.config.js delete mode 100644 screenshot.png delete mode 100644 src/index.ts delete mode 100644 src/lib/components/shadowUI.ts delete mode 100644 src/lib/events/event-handler.ts delete mode 100644 src/lib/events/modal-handler.ts delete mode 100644 src/lib/styles/style.css delete mode 100644 src/lib/utils/color.ts delete mode 100644 src/lib/utils/doms.ts delete mode 100644 src/lib/utils/validators.ts delete mode 100644 src/picker.ts delete mode 100644 src/types/colors.d.ts delete mode 100644 src/types/eyedropper.d.ts delete mode 100644 src/types/module.d.ts delete mode 100644 src/types/ui.d.ts delete mode 100644 tests/color.test.ts delete mode 100644 tests/picker.test.ts delete mode 100644 tests/validators.test.ts delete mode 100644 tsconfig.json delete mode 100644 web-dev-server.config.js delete mode 100644 web-test-runner.config.js diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 539d464..0000000 --- a/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# NPM -node_modules/ - -# Tests -/coverage - -# IDE -.vscode/ - -# Bundler -dist/ - -# OSX -.DS_Store -.LSOverride \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 93b7a9e..0000000 --- a/README.md +++ /dev/null @@ -1,141 +0,0 @@ -
- - Screenshot of the color dialog box - -
- -
- -[![Version](https://badgen.net/npm/v/color-dialog-box)](https://npmjs.org/package/color-dialog-box) -[![Size](https://badgen.net/bundlephobia/minzip/color-dialog-box)](https://bundlephobia.com/result?p=color-dialog-box) -[![Size](https://badgen.net/bundlephobia/dependency-count/color-dialog-box)](https://npmjs.org/package/color-dialog-box) - -
- -
- -A simple and lightweight vanilla JS (no dependencies) color dialog box with alpha selection. - -## User Features - -- **HSLA** Sliders for precise color adjustments -- **Hex** input supporting #rrggbbaa notation -- Integrated **color picker** -- **EyeDropper** tool (only for Chromium-based browsers) -- Quick access to **[ColorHexa](https://www.colorhexa.com/)**, the color encyclopedia - -## Features - -- 🗜 **Lightweight**: Only 5.9 KB (minified and gzipped). -- ⚡ **Fast**: Built with standards based [Custom Elements](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements). -- 😎 **Framework-agnostic**: Can be used with [any framework](https://custom-elements-everywhere.com/). -- 🛡 **Bulletproof**: Written in strict TypeScript with 100% test coverage. -- 📱 **Mobile-friendly**: Works well on mobile devices. -- 🧩 **No dependencies** - -## Install - -``` -npm install color-dialog-box --save -``` - -You can also use one the following CDN: - -[unpkg](https://unpkg.com/color-dialog-box): - -```html - -``` - -[ESM](https://esm.sh/color-dialog-box): - -```html - -``` - - -## Basic Usage - -```html - - - -``` - -> **Note** -> -> You'll probably only want to add a single instance of ``, even if you need to change the color of different parts of the document. See an advanced example for more details. -> - -## Customization - -### Default Color - -To set a default color, you can add a `hex` attribute to the `` element. For example: - -```html - -``` - -### Open on Load - -By default, the color dialog box is hidden. To open it when the page loads, use the `open` attribute set to `true`: -```html - -``` - -### Styling - -color-dialog-box supports [CSS Shadow Parts](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_shadow_parts) and CSS Variables for custom styling. - -Supported part names: -`dialog`, `header`, `wrapper`, `hex`, `preview`, `area`, `sliders` - -Example (of a dark theme) : - -```css -color-picker { - --bg-primary: #212031; - --bg-secondary: #343445; - --border-color-primary: #494b6f; - --border-color-secondary: #6d7bff; - --bg-header: #15161b; - --txt-color-primary: #fff; -} - -color-picker::part(cancel), -color-picker::part(eyedropper), -color-picker::part(info) { - filter: invert(1); -} -``` - -### Labels - -You can change the labels by using the following attributes: - -`label-title`, `label-hue`, `label-saturation`, `label-lightness`, `label-opacity`, `label-ok` - -```html - -``` - - -## Project using color-dialog-box - -* [ColorBeta](https://colorbeta.com/): Advanced CSS Gradient Generator - - diff --git a/demo/index.html b/demo/index.html deleted file mode 100644 index 0bbdfb9..0000000 --- a/demo/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - Color Dialog Box (Demo) - - - -
-
-

Color Dialog Box

-

A framework-agnostic color dialog box.

-
- -
-
#264653ff
-
#2a9d8fff
-
#f7eacaff
-
#f4a261ff
-
#e76f51ff
-
- - -
- - - - - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index cddc79f..0000000 --- a/package-lock.json +++ /dev/null @@ -1,7149 +0,0 @@ -{ - "name": "color-dialog-box", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "color-dialog-box", - "version": "1.0.0", - "license": "ISC", - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing-helpers": "^3.0.1", - "@rollup/plugin-terser": "^0.4.4", - "@types/mocha": "^10.0.6", - "@types/sinon": "^17.0.3", - "@web/dev-server": "^0.4.5", - "@web/dev-server-esbuild": "^1.0.2", - "@web/test-runner": "^0.18.2", - "rollup": "^4.18.0", - "rollup-plugin-import-css": "^3.5.0", - "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-typescript2": "^0.36.0", - "sinon": "^18.0.0", - "typescript": "^5.4.5" - } - }, - "node_modules/@75lb/deep-merge": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", - "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.assignwith": "^4.2.0", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/@75lb/deep-merge/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esm-bundle/chai": { - "version": "4.3.4-fix.0", - "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", - "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "^4.2.12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@lit/reactive-element": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", - "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0" - } - }, - "node_modules/@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@open-wc/dedupe-mixin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@open-wc/dedupe-mixin/-/dedupe-mixin-1.4.0.tgz", - "integrity": "sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@open-wc/scoped-elements": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-3.0.5.tgz", - "integrity": "sha512-q4U+hFTQQRyorJILOpmBm6PY2hgjCnQe214nXJNjbJMQ9EvT55oyZ7C8BY5aFYJkytUyBoawlMpZt4F2xjdzHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@open-wc/dedupe-mixin": "^1.4.0", - "lit": "^3.0.0" - } - }, - "node_modules/@open-wc/testing-helpers": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-3.0.1.tgz", - "integrity": "sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@open-wc/scoped-elements": "^3.0.2", - "lit": "^2.0.0 || ^3.0.0", - "lit-html": "^2.0.0 || ^3.0.0" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.2.3.tgz", - "integrity": "sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.4.0", - "semver": "7.6.0", - "tar-fs": "3.0.5", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", - "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.2.1", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", - "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true, - "license": "(Unlicense OR Apache-2.0)" - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/babel__code-frame": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.6.tgz", - "integrity": "sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.16", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz", - "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/co-body": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.3.tgz", - "integrity": "sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*" - } - }, - "node_modules/@types/command-line-args": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", - "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/content-disposition": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", - "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/convert-source-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.3.tgz", - "integrity": "sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cookies": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", - "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debounce": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz", - "integrity": "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.1.tgz", - "integrity": "sha512-ej0phymbFLoCB26dbbq5PGScsf2JAJ4IJHjG10LalgUV36XKTmA4GdA+PVllKvRk0sEKt64X8975qFnkSi0hqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.5.tgz", - "integrity": "sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/keygrip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", - "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/koa": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", - "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", - "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sinon": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", - "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", - "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@web/browser-logs": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", - "integrity": "sha512-/EBiDAUCJ2DzZhaFxTPRIznEPeafdLbXShIL6aTu7x73x7ZoxSDv7DGuTsh2rWNMUa4+AKli4UORrpyv6QBOiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/config-loader": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.1.tgz", - "integrity": "sha512-IYjHXUgSGGNpO3YJQ9foLcazbJlAWDdJGRe9be7aOhon0Nd6Na5JIOJAej7jsMu76fKHr4b4w2LfIdNQ4fJ8pA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.5.tgz", - "integrity": "sha512-R11sODOLFcm51f2uir51KE4QXRSYakDaeBeJdrUutPCmYUDEk86GjYBR3R1wslimnwGPIjhFDsXNMfASxYfgAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/command-line-args": "^5.0.0", - "@web/config-loader": "^0.3.0", - "@web/dev-server-core": "^0.7.2", - "@web/dev-server-rollup": "^0.6.1", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "debounce": "^1.2.0", - "deepmerge": "^4.2.2", - "ip": "^2.0.1", - "nanocolors": "^0.2.1", - "open": "^8.0.2", - "portfinder": "^1.0.32" - }, - "bin": { - "wds": "dist/bin.js", - "web-dev-server": "dist/bin.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server-core": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.2.tgz", - "integrity": "sha512-Q/0jpF13Ipk+qGGQ+Yx/FW1TQBYazpkfgYHHo96HBE7qv4V4KKHqHglZcSUxti/zd4bToxX1cFTz8dmbTlb8JA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^2.1.0", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^8.0.4", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server-esbuild": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-1.0.2.tgz", - "integrity": "sha512-ak5mKt7L0H/Fa470Ku7p9A1eI32DNyFGM83jDkJviBO8r3lM00O5hVFW1K+UIYNC5EyanLyPxTqgtIuQEyMYcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^4.0.0", - "@web/dev-server-core": "^0.7.0", - "esbuild": "^0.19.11", - "get-tsconfig": "^4.7.2", - "parse5": "^6.0.1", - "ua-parser-js": "^1.0.33" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@web/dev-server-esbuild/node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "node_modules/@web/dev-server-rollup": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.3.tgz", - "integrity": "sha512-dzMwQRBk9Rhpfoo7vvQGvRP18sDELejJCwxsMdt509aLouIB6fviv0i87DJQWbXH24hBeq6+jSILI3JTtVaPZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/plugin-node-resolve": "^15.0.1", - "@web/dev-server-core": "^0.7.2", - "nanocolors": "^0.2.1", - "parse5": "^6.0.1", - "rollup": "^4.4.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/parse5-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", - "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.18.2.tgz", - "integrity": "sha512-jA+957ic31aG/f1mr1b+HYzf/uTu4QsvFhyVgTKi2s5YQYGBbtfzx9PnYi47MVC9K9OHRbW8cq2Urds9qwSU3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@web/browser-logs": "^0.4.0", - "@web/config-loader": "^0.3.0", - "@web/dev-server": "^0.4.0", - "@web/test-runner-chrome": "^0.16.0", - "@web/test-runner-commands": "^0.9.0", - "@web/test-runner-core": "^0.13.0", - "@web/test-runner-mocha": "^0.9.0", - "camelcase": "^6.2.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^7.0.1", - "convert-source-map": "^2.0.0", - "diff": "^5.0.0", - "globby": "^11.0.1", - "nanocolors": "^0.2.1", - "portfinder": "^1.0.32", - "source-map": "^0.7.3" - }, - "bin": { - "web-test-runner": "dist/bin.js", - "wtr": "dist/bin.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-chrome": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.16.0.tgz", - "integrity": "sha512-Edc6Y49aVB6k18S5IOj9OCX3rEf8F3jptIu0p95+imqxmcutFEh1GNmlAk2bQGnXS0U6uVY7Xbf61fiaXUQqhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.13.0", - "@web/test-runner-coverage-v8": "^0.8.0", - "async-mutex": "0.4.0", - "chrome-launcher": "^0.15.0", - "puppeteer-core": "^22.0.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-commands": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", - "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.13.0", - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-commands/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@web/test-runner-core": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.2.tgz", - "integrity": "sha512-G0D3mv9jvR+5xILENchPP9v1ZjBf3QVlzarMLR5jedCNbgntzcayF0LeW5wh5uyafGZJH28cYm9jGrJvGipoPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.2", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^2.0.1", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-coverage-v8": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", - "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.13.0", - "istanbul-lib-coverage": "^3.0.0", - "lru-cache": "^8.0.4", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-mocha": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", - "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.13.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-mutex": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", - "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/bare-events": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", - "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true - }, - "node_modules/bare-fs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", - "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.0.0", - "bare-path": "^2.0.0", - "bare-stream": "^1.0.0" - } - }, - "node_modules/bare-os": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", - "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", - "dev": true, - "license": "Apache-2.0", - "optional": true - }, - "node_modules/bare-path": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", - "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^2.1.0" - } - }, - "node_modules/bare-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", - "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.16.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001621", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", - "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/chalk-template?sponsor=1" - } - }, - "node_modules/chalk-template/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk-template/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk-template/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk-template/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/chalk-template/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk-template/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chrome-launcher/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chromium-bidi": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.19.tgz", - "integrity": "sha512-UA6zL77b7RYCjJkZBsZ0wlvCTD+jTjllZ8f6wdO4buevXgTZYjV+XLB9CiEa2OuuTGGTLnI7eN9I60YxuALGQg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "3.0.1", - "urlpattern-polyfill": "10.0.0", - "zod": "3.22.4" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/co-body": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "license": "ISC", - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/concat-with-sourcemaps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookies": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", - "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1286932", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1286932.tgz", - "integrity": "sha512-wu58HMQll9voDjR4NlPyoDEw1syfzaBNHymMMZ/QOXiHRNluOnDgu9hp1yHOKYoMlxCh4lSSiugLITe6Fvu1eA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.782", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.782.tgz", - "integrity": "sha512-JUfU61e8tr+i5Y1FKXcKs+Xe+rJ+CEqm4cgv1kMihPE2EvYHmYyVr3Im/+1+Z5B29Be2EEGCZCwAc6Tazdl1Yg==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errorstacks": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.1.tgz", - "integrity": "sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", - "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", - "dev": true, - "license": "MIT" - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generic-names": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", - "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^3.2.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", - "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/get-uri": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4", - "fs-extra": "^11.2.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-equal": "~1.0.1", - "http-errors": "~1.8.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", - "dev": true, - "license": "ISC" - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-from": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflation": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", - "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", - "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/just-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", - "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tsscmp": "1.0.6" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/koa": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", - "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.9.0", - "debug": "^4.3.2", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^2.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - }, - "engines": { - "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" - } - }, - "node_modules/koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true, - "license": "MIT" - }, - "node_modules/koa-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", - "dev": true, - "license": "MIT", - "dependencies": { - "co": "^4.6.0", - "koa-compose": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/koa-etag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", - "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "etag": "^1.8.1" - } - }, - "node_modules/koa-send": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", - "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "resolve-path": "^1.4.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/koa-static": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", - "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.1.0", - "koa-send": "^5.0.0" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/koa-static/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lit": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.3.tgz", - "integrity": "sha512-l4slfspEsnCcHVRTvaP7YnkTZEZggNFywLEIhQaGhYDczG+tu/vlgm/KaWIEjIp+ZyV20r2JnZctMb8LeLCG7Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit/reactive-element": "^2.0.4", - "lit-element": "^4.0.4", - "lit-html": "^3.1.2" - } - }, - "node_modules/lit-element": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.5.tgz", - "integrity": "sha512-iTWskWZEtn9SyEf4aBG6rKT8GABZMrTWop1+jopsEOgEcugcXJGKuX5bEbkq9qfzY+XB4MAgCaSPwnNpdsNQ3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.2.0", - "@lit/reactive-element": "^2.0.4", - "lit-html": "^3.1.2" - } - }, - "node_modules/lit-html": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.3.tgz", - "integrity": "sha512-FwIbqDD8O/8lM4vUZ4KvQZjPPNx7V1VhT7vmRB8RBAO0AU6wuTVdoXiu2CivVjEGdugvcbPNBLtPE1y0ifplHA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@types/trusted-types": "^2.0.2" - } - }, - "node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.assignwith": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16.14" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanocolors": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nise": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-6.0.0.tgz", - "integrity": "sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/text-encoding": "^0.7.2", - "just-extend": "^6.2.0", - "path-to-regexp": "^6.2.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", - "dev": true - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", - "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.1.tgz", - "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "generic-names": "^4.0.0", - "icss-replace-symbols": "^1.1.0", - "lodash.camelcase": "^4.3.0", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "string-hash": "^1.1.1" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", - "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", - "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "license": "MIT", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise.series": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz", - "integrity": "sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/proxy-agent": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", - "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/puppeteer-core": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.9.0.tgz", - "integrity": "sha512-Q2SYVZ1SIE7jCd/Pp+1/mNLFtdJfGvAF+CqOTDG8HcCNCiBvoXfopXfOfMHQ/FueXhGfJW/I6DartWv6QzpNGg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.2.3", - "chromium-bidi": "0.5.19", - "debug": "4.3.4", - "devtools-protocol": "0.0.1286932", - "ws": "8.17.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true, - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-path": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "http-errors": "~1.6.2", - "path-is-absolute": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/resolve-path/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/resolve-path/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/resolve-path/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, - "node_modules/resolve-path/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-import-css": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-import-css/-/rollup-plugin-import-css-3.5.0.tgz", - "integrity": "sha512-JOVow6n00qt2C/NnsqPmIjFOfxIAudwWqC5SaC84CodMGiMFaP1gPAdgnJ8g8hcG+P85TCYp2kI98grYCEt5pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.4" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "rollup": "^2.x.x || ^3.x.x || ^4.x.x" - } - }, - "node_modules/rollup-plugin-postcss": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz", - "integrity": "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "concat-with-sourcemaps": "^1.1.0", - "cssnano": "^5.0.1", - "import-cwd": "^3.0.0", - "p-queue": "^6.6.2", - "pify": "^5.0.0", - "postcss-load-config": "^3.0.0", - "postcss-modules": "^4.0.0", - "promise.series": "^0.2.0", - "resolve": "^1.19.0", - "rollup-pluginutils": "^2.8.2", - "safe-identifier": "^0.4.2", - "style-inject": "^0.3.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "8.x" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup-plugin-postcss/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-postcss/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz", - "integrity": "sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^4.1.2", - "find-cache-dir": "^3.3.2", - "fs-extra": "^10.0.0", - "semver": "^7.5.4", - "tslib": "^2.6.2" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", - "dev": true, - "license": "ISC" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/sinon": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.0.tgz", - "integrity": "sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.2.0", - "nise": "^6.0.0", - "supports-color": "^7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sinon/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/smob": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", - "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "dev": true, - "license": "MIT" - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true, - "license": "MIT" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-read-all": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", - "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, - "node_modules/string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/style-inject": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz", - "integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==", - "dev": true, - "license": "MIT" - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "bin": { - "table-layout": "bin/cli.js" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/terser": { - "version": "5.31.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", - "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.x" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/urlpattern-polyfill": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", - "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", - "dev": true, - "license": "MIT" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/wordwrapjs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/ylru": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", - "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 52e0f1b..0000000 --- a/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "color-dialog-box", - "version": "1.0.0", - "description": "A modern and lightweight color dialog box in vanilla js.", - "repository": { - "type": "git", - "url": "https://github.com/jmetaxas/color-dialog-box.git" - }, - "author": "Jessy Metaxas", - "license": "ISC", - "main": "dist/index.js", - "module": "dist/index.js", - "type": "module", - "scripts": { - "dev": "web-dev-server --config web-dev-server.config.js", - "build": "rollup -c", - "test": "web-test-runner \"tests/**/*.test.ts\" --node-resolve --coverage" - }, - "keywords": [ - "hex", - "hsl", - "hsv", - "alpha", - "color", - "color picker", - "colorpicker", - "picker", - "vanilla", - "color dialog box", - "color box", - "color dialog", - "eyedropper", - "web component", - "webcomponent", - "custom element", - "customelement" - ], - "devDependencies": { - "@esm-bundle/chai": "^4.3.4-fix.0", - "@open-wc/testing-helpers": "^3.0.1", - "@rollup/plugin-terser": "^0.4.4", - "@types/mocha": "^10.0.6", - "@types/sinon": "^17.0.3", - "@web/dev-server": "^0.4.5", - "@web/dev-server-esbuild": "^1.0.2", - "@web/test-runner": "^0.18.2", - "rollup": "^4.18.0", - "rollup-plugin-import-css": "^3.5.0", - "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-typescript2": "^0.36.0", - "sinon": "^18.0.0", - "typescript": "^5.4.5" - } -} diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 575fe70..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,19 +0,0 @@ -import typescript from 'rollup-plugin-typescript2'; -import terser from '@rollup/plugin-terser'; -import importCss from 'rollup-plugin-import-css'; - -export default { - input: 'src/index.ts', - output: { - file: 'dist/index.js', - format: 'es' - }, - plugins: [ - typescript({ tsconfig: './tsconfig.json' }), - importCss({ - minify: true, - modules: true - }), - terser() - ] -}; diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index f77c4c881349be6c9c85050c3f63c6b3842edb15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71123 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 Ef*ESNr2qf` diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index ed8b619..0000000 --- a/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Picker } from './picker'; -customElements.define('color-picker', Picker); \ No newline at end of file diff --git a/src/lib/components/shadowUI.ts b/src/lib/components/shadowUI.ts deleted file mode 100644 index 6aed329..0000000 --- a/src/lib/components/shadowUI.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { sliderLabel, sliderOutput, sliderRange } from '../utils/doms'; -import css from '../styles/style.css' with { type: 'css' }; - -export class ShadowUI { - #labelTitle: string = 'Color Picker'; - #labelHue: string = 'Hue'; - #labelSaturation: string = 'Saturation'; - #labelLightness: string = 'Lightness'; - #labelOpacity: string = 'Opacity'; - #labelOK: string = 'OK'; - - set labelTitle(label: string) { - this.#labelTitle = label; - } - - set labelHue(label: string) { - this.#labelHue = label; - } - - set labelSaturation(label: string) { - this.#labelSaturation = label; - } - - set labelLightness(label: string) { - this.#labelLightness = label; - } - - set labelOpacity(label: string) { - this.#labelOpacity = label; - } - - set labelOK(label: string) { - this.#labelOK = label; - } - - - build = (element: HTMLElement) => { - const shadow = element.attachShadow({mode: 'open'}); - shadow.adoptedStyleSheets = [css]; - - const wrapper = this.#buildDialog(); - shadow.appendChild(wrapper); - - return this.#instanciateUI(shadow); - }; - - #instanciateUI = (shadow: ShadowRoot) => { - const UISlider = { - hue: { - range: shadow.querySelector('[name="hue-range"]') as HTMLInputElement, - output: shadow.querySelector('[name="hue-output"]') as HTMLInputElement, - }, - lightness: { - range: shadow.querySelector('[name="lightness-range"]') as HTMLInputElement, - output: shadow.querySelector('[name="lightness-output"]') as HTMLInputElement, - }, - saturation: { - range: shadow.querySelector('[name="saturation-range"]') as HTMLInputElement, - output: shadow.querySelector('[name="saturation-output"]') as HTMLInputElement, - }, - opacity: { - range: shadow.querySelector('[name="opacity-range"]') as HTMLInputElement, - output: shadow.querySelector('[name="opacity-output"]') as HTMLInputElement, - }, - }; - - return { - dialog: shadow.querySelector('dialog') as HTMLDialogElement, - header: shadow.querySelector('header') as HTMLElement, - wrapper: shadow.querySelector('[part="wrapper"]') as HTMLDivElement, - sliders: { - wrapper: shadow.querySelector('[part="sliders"]') as HTMLInputElement, - slider: UISlider, - }, - hex: { - input: shadow.querySelector('[part="hex"] input[name="hex"]') as HTMLInputElement, - info: shadow.querySelector('[part="hex"] a') as HTMLAnchorElement, - eyedropper: shadow.querySelector('[part="hex"] button[value="eyedropper"]') as HTMLButtonElement, - }, - preview: { - new: shadow.querySelector('[part="preview"] [data-id="new"]') as HTMLSpanElement, - current: shadow.querySelector('[part="preview"] [data-id="current"]') as HTMLSpanElement, - }, - area: { - wrapper: shadow.querySelector('[part="area"]') as HTMLDivElement, - cursor: shadow.querySelector('[part="area-cursor"]') as HTMLSpanElement, - } - }; - }; - - - #buildSlider = (params: SliderParams): HTMLDivElement => { - const slider = document.createElement('div'); - slider.setAttribute('class', `${params.name}`); - slider.setAttribute('part', `slider`); - - const label = sliderLabel(params); - const output = sliderOutput(params); - const range = sliderRange(params); - - slider.appendChild(label); - slider.appendChild(output); - slider.appendChild(range); - - return slider; - }; - - #buildSliders = (): HTMLDivElement => { - const sliders = document.createElement('div'); - sliders.setAttribute('part', 'sliders'); - - const elements: SliderParams[] = [ - {label: this.#labelHue, name: 'hue', values: {min:0, max:360}}, - {label: this.#labelSaturation, name: 'saturation', values: {min:0, max:100}}, - {label: this.#labelLightness, name: 'lightness', values: {min:0, max:100}}, - {label: this.#labelOpacity, name: 'opacity', values: {min:0, max:100}}, - ]; - - elements.forEach(element => { - sliders.appendChild( - this.#buildSlider(element) - ); - }); - - return sliders; - }; - - #buildPreviewBlock = (): HTMLDivElement => { - const wrapper = document.createElement('div'); - wrapper.setAttribute('part', 'preview'); - - const newColor = document.createElement('span'); - newColor.setAttribute('data-id', 'new'); - - const currentColor = document.createElement('span'); - currentColor.setAttribute('data-id', 'current'); - - const preview = document.createElement('div'); - preview.appendChild(newColor); - preview.appendChild(currentColor); - - const confirmButton = document.createElement('button'); - confirmButton.setAttribute('part', 'confirm'); - confirmButton.setAttribute('value', 'ok'); - confirmButton.appendChild(document.createTextNode(this.#labelOK)); - - wrapper.appendChild(preview); - wrapper.appendChild(confirmButton); - - return wrapper; - }; - - #buildHexBlock = (): HTMLDivElement => { - const wrapper = document.createElement('div'); - wrapper.setAttribute('part', 'hex'); - - const input = document.createElement('input'); - input.setAttribute('aria-label', 'Hex'); - input.setAttribute('type', 'text'); - input.setAttribute('name', 'hex'); - input.setAttribute('part', 'hex-input'); - - wrapper.appendChild(input); - - if ('EyeDropper' in window) { - const eyedropper = document.createElement('button'); - eyedropper.setAttribute('aria-label', 'EyeDropper'); - eyedropper.setAttribute('value', 'eyedropper'); - eyedropper.setAttribute('part', 'eyedropper'); - eyedropper.appendChild(document.createTextNode('EyeDropper')); - - wrapper.appendChild(eyedropper); - } - - const info = document.createElement('a'); - info.setAttribute('href', '#'); - info.setAttribute('target', '_blank'); - info.setAttribute('part', 'info'); - info.appendChild(document.createTextNode('Info')); - - wrapper.appendChild(info); - - return wrapper; - }; - - #buildArea = (): HTMLDivElement => { - const area = document.createElement('div'); - const cursor = document.createElement('span'); - - area.setAttribute('part', 'area'); - area.setAttribute('tabindex', '0'); - - cursor.setAttribute('data-id', 'cursor'); - cursor.setAttribute('part', 'area-cursor'); - - area.appendChild(cursor); - - return area; - }; - - #buildWrapper = (): HTMLDivElement => { - const wrapper = document.createElement('div'); - wrapper.setAttribute('part', 'wrapper'); - - const hex = this.#buildHexBlock(); - const preview = this.#buildPreviewBlock(); - const area = this.#buildArea(); - const sliders = this.#buildSliders(); - - wrapper.appendChild(hex); - wrapper.appendChild(preview); - wrapper.appendChild(area); - wrapper.appendChild(sliders); - - return wrapper; - }; - - #buildHeaderDialog = (): HTMLElement => { - const header = document.createElement('header'); - header.setAttribute('part', 'header'); - - const h = document.createElement('h3'); - h.appendChild(document.createTextNode(this.#labelTitle)); - - const button = document.createElement('button'); - button.setAttribute('part', 'cancel'); - button.setAttribute('value', 'cancel'); - button.appendChild(document.createTextNode('Cancel')); - - header.appendChild(h); - header.appendChild(button); - - return header; - }; - - #buildDialog = (): HTMLDialogElement => { - const dialog = document.createElement('dialog'); - dialog.setAttribute('part', 'dialog'); - - const header = this.#buildHeaderDialog(); - const wrapper = this.#buildWrapper(); - - dialog.appendChild(header); - dialog.appendChild(wrapper); - - return dialog; - }; -} \ No newline at end of file diff --git a/src/lib/events/event-handler.ts b/src/lib/events/event-handler.ts deleted file mode 100644 index c139362..0000000 --- a/src/lib/events/event-handler.ts +++ /dev/null @@ -1,260 +0,0 @@ -import { ColorUtils } from "../utils/color"; -import { clampValue, validateHex } from "../utils/validators"; - -export class EventHandler { - #element: HTMLElement; - #UI: UI; - #hex: string = '#000000ff'; - #hexOrigin: string = '#ffffffff'; - #hsl: HslColor = { - h: 0, - s: 0, - l: 0, - }; - #hsv: HsvColor = { - h: 0, - s: 0, - v: 0, - }; - #opacity = 100; - - constructor(element: HTMLElement, UI: UI) { - this.#element = element; - this.#UI = UI; - } - - open = (): void => { - this.#UI.dialog.showModal(); - this.#updateUIArea(); - }; - - close = (): void => { - this.#UI.dialog.close(); - this.#dispatch(); - }; - - handlePointerDown = (e: Event): void => { - const target = e.target as HTMLElement; - - if ( - target.matches('[part="area"]') || - target.matches('[part="area-cursor"]') - ) { - document.addEventListener('pointermove', this.#handleDragCursor); - e.preventDefault(); - - if (!target.matches('[part="area-cursor"]')) { - this.#handleDragCursor(e as MouseEvent); - } - } - }; - - handlePointerUp = (e: Event): void => { - document.removeEventListener('pointermove', this.#handleDragCursor); - }; - - handleClick = async (e: Event): Promise => { - const target = e.target as HTMLElement; - const button = target.closest('button'); - - if(button) { - switch (button.value) { - case 'cancel': - this.#hex = this.#hexOrigin; - this.close(); - return; - case 'ok': - this.close(); - return; - case 'eyedropper': - await this.#handleEyeDropper(e); - return; - } - } - }; - - handleSliders = (e: Event): void => { - const target = e.target as HTMLInputElement; - - const [name, type] = target.name.split("-"); - - if (this.#UI.sliders.slider && this.#UI.sliders.slider[name]) { - let value = target.value ? parseFloat(target.value) : 0; - - if(target.hasAttribute('min') && target.hasAttribute('max')) { - value = clampValue( - value, - parseInt(target.getAttribute('min') as string), - parseInt(target.getAttribute('max') as string) - ); - } - - this.#UI.sliders.slider[name].range.value = `${value}`; - this.#UI.sliders.slider[name].output.value = `${value}`; - - this.#hsl.h = parseFloat(this.#UI.sliders.slider.hue.range.value); - this.#hsl.s = parseFloat(this.#UI.sliders.slider.saturation.range.value); - this.#hsl.l = parseFloat(this.#UI.sliders.slider.lightness.range.value); - this.#opacity = parseFloat(this.#UI.sliders.slider.opacity.output.value); - - this.#updateFromSliders(); - } - }; - - handleHex = (e: Event): void => { - const target = e.target as HTMLInputElement; - - const value = validateHex(target.value); - - if (e.type === 'focusout') { - target.value = value; - } - - this.#hex = value; - this.#updateFromHex(); - }; - - #handleDragCursor = (e: MouseEvent): void => { - e.preventDefault(); - - const rect = this.#UI.area.wrapper.getBoundingClientRect(); - - const x = Math.min(rect.width, Math.max(0, e.clientX - rect.left)); - const y = Math.min(rect.height, Math.max(0, e.clientY - rect.top)); - - this.#UI.area.cursor.style.transform = `translate3D(${x}px, ${y}px, 0)`; - - this.#hsv.h = parseFloat(this.#UI.sliders.slider.hue.range.value); - this.#hsv.s = x / rect.width * 100; - this.#hsv.v = (1 - y / rect.height) * 100; - - this.#updateFromArea(); - }; - - #handleEyeDropper = async (e:Event): Promise => { - if ('EyeDropper' in window) { - const eyeDropper = new EyeDropper(); - - try { - const value = await eyeDropper.open(); - this.#hex = `${value.sRGBHex}ff`; - this.#updateFromHex(true); - } catch (err) { - this.#hex = `000000ff`; - } - } - }; - - updateFromPicker = (hex: string): void => { - const colorUtils = new ColorUtils(); - colorUtils.fromHex(hex); - - this.#hex = colorUtils.toHex(); - this.#hsl = colorUtils.toHsl(); - this.#hsv = colorUtils.toHsv(); - this.#opacity = colorUtils.toOpacity(); - - this.#updateUISliders(); - this.#updateUIHex(); - this.#updateUIArea(); - this.#updateUIPreview(); - - if(this.#UI) { - this.#hexOrigin = this.#hex; - this.#UI.preview.current.style.setProperty('--c', `${this.#hexOrigin}`); - } - - // this.#dispatch(); - }; - - #updateFromArea = (): void => { - const colorUtils = new ColorUtils(); - colorUtils.fromHsv(this.#hsv); - colorUtils.setOpacity(this.#opacity); - - this.#hex = colorUtils.toHex(); - const hsl = colorUtils.toHsl(); - this.#hsl.h = this.#hsv.h; - this.#hsl.s = hsl.s; - this.#hsl.l = hsl.l; - - this.#updateUIHex(); - this.#updateUISliders(); - this.#updateUIPreview(); - this.#dispatch(); - }; - - #updateFromSliders = (): void => { - const colorUtils = new ColorUtils(); - colorUtils.fromHsl(this.#hsl); - colorUtils.setOpacity(this.#opacity); - - this.#hex = colorUtils.toHex(); - this.#hsv = colorUtils.toHsv(); - - this.#updateUIHex(); - this.#updateUIArea(); - this.#updateUIPreview(); - this.#dispatch(); - }; - - #updateFromHex = (updateHexInput: boolean = false): void => { - const colorUtils = new ColorUtils(); - colorUtils.fromHex(this.#hex); - this.#hsl = colorUtils.toHsl(); - this.#hsv = colorUtils.toHsv(); - this.#opacity = colorUtils.toOpacity(); - - if(updateHexInput) { - this.#updateUIHex(); - } - - this.#updateUISliders(); - this.#updateUIArea(); - this.#updateUIPreview(); - this.#dispatch(); - }; - - #updateUIHex = (): void => { - this.#UI.hex.input.value = this.#hex; - }; - - #updateUISliders = (): void => { - this.#UI.sliders.slider.hue.output.value = `${this.#hsl.h}`; - this.#UI.sliders.slider.hue.range.value = `${this.#hsl.h}`; - - this.#UI.sliders.slider.saturation.output.value = `${this.#hsl.s}`; - this.#UI.sliders.slider.saturation.range.value = `${this.#hsl.s}`; - - this.#UI.sliders.slider.lightness.output.value = `${this.#hsl.l}`; - this.#UI.sliders.slider.lightness.range.value = `${this.#hsl.l}`; - - this.#UI.sliders.slider.opacity.output.value = `${this.#opacity}`; - this.#UI.sliders.slider.opacity.range.value = `${this.#opacity}`; - }; - - #updateUIArea = (): void => { - const rect = this.#UI.area.wrapper.getBoundingClientRect(); - - const x = this.#hsv.s / 100 * rect.width, - y = (1 - (this.#hsv.v / 100)) * rect.height; - - this.#UI.area.cursor.style.transform = `translate3D(${x}px, ${y}px, 0)`; - }; - - #updateUIPreview = (): void => { - this.#UI.hex.info.setAttribute('href', `https://www.colorhexa.com/${this.#hex.slice(1, 7)}`); - this.#UI.preview.new.style.setProperty('--c', `${this.#hex}`); - this.#UI.wrapper.style.setProperty('--hue', `${this.#hsl.h}deg`); - this.#UI.wrapper.style.setProperty('--saturation', `${this.#hsl.s}%`); - this.#UI.wrapper.style.setProperty('--lightness', `${this.#hsl.l}%`); - this.#UI.wrapper.style.setProperty('--opacity', `${this.#opacity}%`); - }; - - #dispatch = (): void => { - this.#element.dispatchEvent(new CustomEvent('update-color', { - detail: { hex: this.#hex }, - bubbles: true - })); - }; -} \ No newline at end of file diff --git a/src/lib/events/modal-handler.ts b/src/lib/events/modal-handler.ts deleted file mode 100644 index 653ec63..0000000 --- a/src/lib/events/modal-handler.ts +++ /dev/null @@ -1,86 +0,0 @@ -export class Modal { - #dialog?: HTMLDialogElement; - #isDragging = false; - #rectDomElement?: DOMRect; - #clickOrigin = { - x: 0, - y: 0, - }; - #transformPosition = { - x: 0, - y: 0, - } - - handleStartDrag = (e: MouseEvent) => { - const target = e.target as HTMLElement; - const header = target.closest('header'); - - if (header) { - this.#dialog = header.closest('dialog') as HTMLDialogElement; - this.#initDragModal(e); - } - }; - - handleStopDrag = (e: Event) => { - this.#isDragging = false; - this.#initPosition(); - document.removeEventListener('pointermove', this.#handleDragDialog); - }; - - handleOptions = (e: Event) => { - const target = e.target as HTMLElement; - const button = target.closest('button[part="cancel"]'); - - if (button) { - const dialog = button.closest('dialog'); - if (dialog) { - dialog.close(); - } - } - }; - - #initDragModal = (e: MouseEvent) => { - const target = e.target as HTMLElement; - const button = target.closest('button'); - - if(button) { - return; - } - - this.#isDragging = true; - this.#clickOrigin.x = e.clientX; - this.#clickOrigin.y = e.clientY; - - if(this.#dialog) { - this.#rectDomElement = this.#dialog.getBoundingClientRect(); - this.#initPosition(); - document.addEventListener('pointermove', this.#handleDragDialog); - e.preventDefault(); - } - }; - - #handleDragDialog = (e: MouseEvent) => { - if (this.#isDragging && this.#rectDomElement && this.#dialog) { - // Make sure that the modal cannot go beyond the top browser window - const minY = this.#transformPosition.y - this.#rectDomElement.top; - - const cssX = this.#transformPosition.x+(this.#clickOrigin.x - e.clientX)*-1; - const cssY = Math.max(this.#transformPosition.y+(this.#clickOrigin.y - e.clientY)*-1, minY); - - this.#dialog.style.transform = `translate3D( - ${cssX}px, - ${cssY}px, - 0 - )`; - } - }; - - #initPosition = () => { - if(this.#dialog) { - const style = window.getComputedStyle(this.#dialog); - const matrix = new DOMMatrixReadOnly(style.transform); - this.#transformPosition.x = matrix.m41; - this.#transformPosition.y = matrix.m42; - } - }; -} \ No newline at end of file diff --git a/src/lib/styles/style.css b/src/lib/styles/style.css deleted file mode 100644 index 9fb1c83..0000000 --- a/src/lib/styles/style.css +++ /dev/null @@ -1,391 +0,0 @@ -* { - box-sizing: border-box; -} - -input[type=number]::-webkit-outer-spin-button, -input[type=number]::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - -input[type=number] { - appearance: textfield; -} - -:host { - --font: -apple-system, BlinkMacSystemFont, - “Segoe UI”, “Roboto”, “Oxygen”, “Ubuntu”, “Cantarell”, - “Fira Sans”, “Droid Sans”, “Helvetica Neue”, - sans-serif; - --modal-shadow: 0 3px 5px #00000020; - - --bg-primary: #fff; - --bg-secondary: #fff; - --border-color-primary: #d0d1e4; - --border-color-secondary: #6d7bff; - - --bg-header: #f7f8ff; - - --txt-color-primary: #000; - - --bg-transparent: repeating-conic-gradient(from 0,#fff 0% 25%,#eee 25% 50%) 0 0 /1rem 1rem; - - - --area-shadow: 0 0 0 1px rgba(0,0,0,0.1) inset; - /* --picker-border-color: #fff; */ - /* --picker-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 3px 10px 0 rgb(0 0 0 / 15%); */ - - --thumb-shadow: 0 0 0 1px rgb(0 0 0 / 5%), 0 3px 10px 0 rgb(0 0 0 / 15%); - --thumb-border: 0.5rem solid #fff; - - --hue: 0; -} - -[part=dialog] { - font-family: var(--font); - font-size: 1rem; - padding: 0; - - border: 0; - border-radius: 3px; - box-shadow: var(--modal-shadow); - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - &::backdrop { - opacity: 0; - } -} - -[part=header] { - background: var(--bg-header); - cursor: move; - margin: 0; - padding: .5rem; - touch-action: none; - align-items: center; - display: flex; - justify-content: space-between; - - & h3 { - color: var(--txt-color-primary); - padding: 0; - margin: 0; - font-weight: 700; - font-size: 1rem; - } -} - -[part=wrapper] { - padding: 1rem; - background: var(--bg-primary); - position: relative; - display: grid; - gap: 1rem; - grid-template-columns: 4fr 3fr; - color: var(--txt-color-primary); - width: 31rem; -} - -[part=hex] { - border: 1px solid var(--border-color-primary); - border-radius: 3px; - display: flex; - gap: 0.75rem; - background: var(--bg-secondary); - padding: 0.5rem; - align-items: center; - - &:has([part=hex-input]:focus) { - border-color: var(--border-color-secondary); - } -} - -[part=hex-input] { - background: transparent; - font-family: inherit; - font-size: 1rem; - width: 100%; - border: 0; - margin: 0; - outline: 0; - padding: 0; - display: flex; - flex: 1; - color: var(--txt-color-primary); -} - -[part=cancel], -[part=eyedropper], -[part=info] { - background-repeat: no-repeat; - background-position: center; - background-color: unset; - border: none; - text-indent: -9999vh; - width: 1rem; - background-size: 1rem 1rem; - height: 1rem; - cursor: pointer; - display: flex; -} - -[part=eyedropper] { - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXBpcGV0dGUiPjxwYXRoIGQ9Im0yIDIyIDEtMWgzbDktOSIvPjxwYXRoIGQ9Ik0zIDIxdi0zbDktOSIvPjxwYXRoIGQ9Im0xNSA2IDMuNC0zLjRhMi4xIDIuMSAwIDEgMSAzIDNMMTggOWwuNC40YTIuMSAyLjEgMCAxIDEtMyAzbC0zLjgtMy44YTIuMSAyLjEgMCAxIDEgMy0zbC40LjRaIi8+PC9zdmc+'); -} - -[part=info] { - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+'); -} - -[part=cancel] { - background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXgiPjxwYXRoIGQ9Ik0xOCA2IDYgMTgiLz48cGF0aCBkPSJtNiA2IDEyIDEyIi8+PC9zdmc+'); - - background-size: 1.25rem; - padding: 0.25rem; - box-sizing: content-box; -} - - -[part=preview] { - display: flex; - gap: 1rem; - - & div { - border-radius: 3px; - display: flex; - flex: 1; - overflow: hidden; - } - - & span { - background: linear-gradient(var(--c) 0 100%), var(--bg-transparent); - display: flex; - flex: 1; - } -} - -[part=area] { - background: linear-gradient(to bottom, transparent, #000), linear-gradient(to left, hsla(0, 0%, 100%, 0), #fff), hsl(var(--hue), 100%, 50%); - border-radius: 3px; - box-shadow: var(--area-shadow); - height: 16rem; - position: relative; - touch-action: none; - width: 100%; -} - -[part=area-cursor] { - background: hsl(var(--hue), var(--saturation), var(--lightness), 1); - border: var(--thumb-border); - border-radius: 50%; - box-shadow: var(--thumb-shadow); - cursor: pointer; - display: block; - height: 1.5rem; - margin-left: -.75rem; - margin-top: -.75rem; - width: 1.5rem; -} - -[part=sliders] { - align-self: center; - display: flex; - flex-direction: column; - gap: 1rem; - width: 100%; -} - -[part=confirm] { - display: flex; - padding: 0.5rem 0.75rem; - gap: 0.5rem; - margin: 0; - background: var(--bg-secondary); - border: 1px solid var(--border-color-primary); - color: var(--txt-tertiary); - font-size: 1rem; - font-family: inherit; - border-radius: 3px; - align-items: center; - cursor: pointer; - position: relative; - - &:hover { - border: 1px solid var(--border-color-secondary); - } -} - -[part=slider] { - display: grid; - grid-template-areas: - "s n" - "r r"; - grid-template-columns: 1fr 1fr; - gap: 0.5rem; - align-items: center; - - & span { - grid-area: s; - text-transform: capitalize; - } - - & input[type=number] { - grid-area: n; - padding: 0.25rem 0.5rem; - border: 0; - text-align: right; - font-size: 1rem; - font-family: inherit; - background: transparent; - border-radius: 3px; - width: 3.125rem; - outline: 0; - justify-self: right; - color: var(--txt-color-primary); - - &:hover { - box-shadow: 0 0 0 1px var(--border-color-primary) inset; - } - - &:focus { - box-shadow: 0 0 0 1px var(--border-color-secondary) inset; - } - } - - & input[type=range] { - grid-area: r; - appearance: none; - border-radius: 30px; - cursor: pointer; - margin: 0; - height: 0.5rem; - width: 100%; - background: transparent; - --track-shadow: 0 0 0 1px rgba(0,0,0,0.1) inset; - - &::-webkit-slider-runnable-track { - border-radius: 30px; - border: none; - height: 0.5rem; - box-shadow: var(--track-shadow); - } - - &::-webkit-slider-thumb { - appearance: none; - background: hsl(var(--hue), var(--saturation), var(--lightness)); - border-radius: 50%; - height: 1rem; - width: 1rem; - border: var(--thumb-border); - padding: 0.25rem; - box-shadow: var(--thumb-shadow); - margin-top: -0.5rem; - box-sizing: border-box; - } - - &::-moz-range-track { - border-radius: 30px; - border: none; - height: 0.5rem; - margin: 0; - box-shadow: var(--track-shadow); - } - - &::-moz-range-thumb { - appearance: none; - background: hsl(var(--hue), var(--saturation), var(--lightness)); - border-radius: 50%; - height: 1rem; - width: 1rem; - border: var(--thumb-border); - padding: 0.25rem; - box-shadow: var(--thumb-shadow); - margin-top: -0.5rem; - box-sizing: border-box; - } - } - - & input[type=text] { - border: 0; - border-radius: 3px; - padding: 0.5rem 0 0.5rem 0.5rem; - display: flex; - font-size: 1rem; - gap: 0.5rem; - align-items: baseline; - width: 100%; - } -} - -.hue [type=range] { - --hue-colors: #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%; - - &::-webkit-slider-thumb{ - background: hsl(var(--hue), 100%, 50%); - } - - &::-webkit-slider-runnable-track { - background: linear-gradient(to right, var(--hue-colors)); - } - - &::-moz-range-track { - background: linear-gradient(to right, var(--hue-colors)); - } - - &::-moz-range-thumb { - background: hsl(var(--hue), 100%, 50%); - } -} - -.saturation [type=range] { - &::-webkit-slider-runnable-track{ - background: linear-gradient(to right, hsl(var(--hue), 0%, var(--lightness)), hsl(var(--hue), 100%, var(--lightness))); - } - - &::-moz-range-track { - background: linear-gradient(to right, hsl(var(--hue), 0%, var(--lightness)), hsl(var(--hue), 100%, var(--lightness))); - } -} - -.lightness [type=range] { - &::-webkit-slider-runnable-track{ - background: linear-gradient(to right, hsl(var(--hue), var(--saturation), 0%), hsl(var(--hue), var(--saturation), 50%), hsl(var(--hue), var(--saturation), 100%)); - } - - &::-moz-range-track { - background: linear-gradient(to right, hsl(var(--hue), var(--saturation), 0%), hsl(var(--hue), var(--saturation), 50%), hsl(var(--hue), var(--saturation), 100%)); - } -} - -.opacity [type=range] { - &::-webkit-slider-thumb{ - --color: hsl(var(--hue), var(--saturation), var(--lightness), var(--opacity)); - background: linear-gradient(var(--color) 0 100%), var(--bg-transparent-mini); - } - - &::-webkit-slider-runnable-track{ - background: linear-gradient(to right, hsl(var(--hue), var(--saturation), var(--lightness), 0%), hsl(var(--hue), var(--saturation), var(--lightness), 100%)), var(--bg-transparent); - } - - &::-moz-range-thumb { - --color: hsl(var(--hue), var(--saturation), var(--lightness), var(--opacity)); - background: linear-gradient(var(--color) 0 100%), var(--bg-transparent-mini); - } - - &::-moz-range-track { - background: linear-gradient(to right, hsl(var(--hue), var(--saturation), var(--lightness), 0%), hsl(var(--hue), var(--saturation), var(--lightness), 100%)), var(--bg-transparent); - } -} - -@media screen and (max-width: 600px) { - [part=wrapper] { - grid-template-columns: unset; - width: 16rem; - } - - [part=area] { - height: 8rem; - } -} \ No newline at end of file diff --git a/src/lib/utils/color.ts b/src/lib/utils/color.ts deleted file mode 100644 index 545ff95..0000000 --- a/src/lib/utils/color.ts +++ /dev/null @@ -1,143 +0,0 @@ -export class ColorUtils { - #hex?: string; - #hexInt: number = 0; - #opacity: number = 100; - - #rgb?: RgbColor; - #hsl?: HslColor; - #hsv?: HsvColor; - - fromHex(hex: string) { - this.#hexInt = this.#hexToHexInt(hex); - }; - - fromHsl(hsl: HslColor) { - this.#hexInt = this.#rgbToHexInt(this.#hslToRgb(hsl)); - }; - - fromHsv(hsv: HsvColor) { - this.#hexInt = this.#rgbToHexInt(this.#hslToRgb(this.#hsvToHsl(hsv))); - }; - - setOpacity(opacity: number) { - this.#opacity = opacity; - }; - - toHex(): string { - return this.#hex = - this.#hex ? this.#hex : this.#hexIntToStr(this.#hexInt); - }; - - toOpacity(): number { - return this.#opacityHexToInt(this.toHex().slice(7, 9)); - }; - - toRgb(): RgbColor { - return this.#rgb = - this.#rgb ? this.#rgb : this.#hexToRgb(this.#hexInt); - } - - toHsv(): HsvColor { - return this.#hsv = - this.#hsv ? this.#hsv : this.#rgbToHsv(this.toRgb()); - } - - toHsl(): HslColor { - return this.#hsl = - this.#hsl ? this.#hsl : this.#hsvToHsl(this.toHsv()); - } - - // ***** From Hex ***** // - - #hexToHexInt = (hex: string): number => { - if(hex.charAt(0) === "#") { - hex = hex.substring(1); - } - - if (hex.length === 8) { - this.#opacity = this.#opacityHexToInt(hex.slice(6, 8)); - hex = hex.slice(0, 6); - } - - return parseInt(hex, 16); - }; - - #hexToRgb = (hexInt: number): RgbColor => { - return { - r: 0xff & (hexInt >> 16), - g: 0xff & (hexInt >> 8), - b: 0xff & hexInt - }; - }; - - #hexIntToStr = (hex: number): string => { - const hexStr = "#"+hex.toString(16).padStart(6, "0"); - return `${hexStr}${this.#opacityIntToHex(this.#opacity)}`; - } - - - // ***** From RGB ***** // - - #rgbToHexInt = (rgb: RgbColor): number => { - return (rgb.r << 16) | (rgb.g << 8) | rgb.b; - } - - - #rgbToHsv = (rgb: RgbColor): HsvColor => { - const {r, g, b} = {r: rgb.r / 0xff, g: rgb.g / 0xff, b: rgb.b / 0xff}; - - let v= Math.max(r, g, b), - c= v-Math.min(r, g, b); - let h= c && ( - (v === r) ? (g-b)/c : ( - (v === g) ? 2+(b-r)/c : 4+(r-g)/c - ) - ); - - return { - h: Math.round(60*(h<0?h+6:h)), - s: Math.round(v&&c/v*100), - v: Math.round(v*100) - }; - }; - - // ***** From HSV ***** // - - #hsvToHsl = (hsv: HsvColor): HslColor => { - return this.#normalizedHsvToHsl(hsv.h, hsv.s/100, hsv.v/100); - } - - #normalizedHsvToHsl = (h: number, s: number, v: number, l = v-v*s/2, m = Math.min(l, 1-l)): HslColor => { - return { - h: h, - s: m ? Math.round((v-l)/m*100) : 0, - l: Math.round(l*100) - }; - }; - - - - // ***** From HSL ***** // - - #hslToRgb = (hsl: HslColor): RgbColor => { - return this.#normalizedHslToRgb(hsl.h, hsl.s/100, hsl.l/100); - }; - - #normalizedHslToRgb = (h: number, s: number, l: number, a = s * Math.min(l, 1-l)): RgbColor => { - const f = (n: number, k=(n+h/30)%12) => - l - a * Math.max(Math.min(k-3, 9-k, 1), -1); - - return { - r: Math.round(f(0)*255), - g: Math.round(f(8)*255), - b: Math.round(f(4)*255) - } - }; - - // **** Opacity **** // - #opacityIntToHex = (a: number): string => - Math.round(a/100 * 0xff).toString(16).padStart(2, "0"); - - #opacityHexToInt = (a: string): number => - Math.round(parseInt(a, 16) / 0xff * 100); -} \ No newline at end of file diff --git a/src/lib/utils/doms.ts b/src/lib/utils/doms.ts deleted file mode 100644 index d3a3f80..0000000 --- a/src/lib/utils/doms.ts +++ /dev/null @@ -1,31 +0,0 @@ -export const sliderLabel = (params: SliderParams): HTMLSpanElement => { - const label = document.createElement('span'); - label.appendChild(document.createTextNode(params.label)); - - return label; -}; - -export const sliderOutput = (params: SliderParams): HTMLInputElement => { - const input = document.createElement('input'); - input.setAttribute('aria-label', `${params.label} output`); - input.setAttribute('type', 'number'); - input.setAttribute('name', `${params.name}-output`); - input.setAttribute('min', `${params.values.min}`); - input.setAttribute('max', `${params.values.max}`); - input.setAttribute('steps', '1'); - input.setAttribute('value', '0'); - - return input; -}; - -export const sliderRange = (params: SliderParams): HTMLInputElement => { - const input = document.createElement('input'); - input.setAttribute('aria-label', `${params.label} slider`); - input.setAttribute('type', 'range'); - input.setAttribute('name', `${params.name}-range`); - input.setAttribute('min', `${params.values.min}`); - input.setAttribute('max', `${params.values.max}`); - input.setAttribute('value', '0'); - - return input; -}; \ No newline at end of file diff --git a/src/lib/utils/validators.ts b/src/lib/utils/validators.ts deleted file mode 100644 index da6ae40..0000000 --- a/src/lib/utils/validators.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const validateHex = (hex: string) => { - let value = hex.replace(/[^a-fA-F0-9]+/g, ''); - - if(value.length === 3) { - value = `${value[0]}${value[0]}${value[1]}${value[1]}${value[2]}${value[2]}ff`; - } - - value = value.padStart(6, "0").padEnd(8, 'f'); - - return `#${value.slice(0, 8)}`; -}; - -export const clampValue = (value: number, min: number, max: number) => { - return Math.min(Math.max(value, min), max); -}; \ No newline at end of file diff --git a/src/picker.ts b/src/picker.ts deleted file mode 100644 index 0d53fc6..0000000 --- a/src/picker.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { EventHandler } from "./lib/events/event-handler"; -import { ShadowUI } from "./lib/components/shadowUI"; -import { Modal } from "./lib/events/modal-handler"; - -export class Picker extends HTMLElement { - static observedAttributes = ["hex", "open"]; - #eventHandler?: EventHandler; - - constructor() { - super(); - - const shadowUI = new ShadowUI(); - - this.#setAttributes(shadowUI, { - labelTitle: this.getAttribute('label-title'), - labelHue: this.getAttribute('label-hue'), - labelSaturation: this.getAttribute('label-saturation'), - labelLightness: this.getAttribute('label-lightness'), - labelOpacity: this.getAttribute('label-opacity'), - labelOK: this.getAttribute('label-ok'), - }); - - const UI = shadowUI.build(this); - - if(UI) { - this.#eventHandler = new EventHandler(this, UI); - UI.dialog.addEventListener('click', this.#eventHandler.handleClick); - UI.sliders.wrapper.addEventListener('input', this.#eventHandler.handleSliders); - UI.hex.input.addEventListener('input', this.#eventHandler.handleHex); - UI.hex.input.addEventListener('focusout', this.#eventHandler.handleHex); - UI.wrapper.addEventListener('pointerdown', this.#eventHandler.handlePointerDown); - document.addEventListener('pointerup', this.#eventHandler.handlePointerUp); - - const modal = new Modal(); - UI.header.addEventListener('click', modal.handleOptions); - UI.header.addEventListener('pointerdown', modal.handleStartDrag); - document.addEventListener('pointerup', modal.handleStopDrag); - } - } - - // connectedCallback() { - // console.log("Custom element added to page."); - // } - - // disconnectedCallback() { - // console.log("Custom element removed from page."); - // } - - // adoptedCallback() { - // console.log("Custom element moved to new page."); - // } - - attributeChangedCallback( - name: string, oldValue: string, newValue: string - ) { - if(name === 'open' && this.#eventHandler) { - if(newValue === 'true') { - this.#eventHandler.open(); - } - } - - if(name === 'hex' && this.#eventHandler) { - newValue = newValue ? newValue : '#000000ff'; - this.#eventHandler.updateFromPicker(newValue); - } - } - - // open() { - // if(this.#eventHandler) { - // this.#eventHandler.open(); - // } - // } - - #setAttributes(target: T, attributes: Partial>) { - Object.entries(attributes).forEach(([key, value]) => { - if (value !== null) { - (target as any)[key] = value; - } - }); - } -} \ No newline at end of file diff --git a/src/types/colors.d.ts b/src/types/colors.d.ts deleted file mode 100644 index 56e24e4..0000000 --- a/src/types/colors.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -interface RgbColor { - r: number; - g: number; - b: number; -} - -interface HslColor { - h: number; - s: number; - l: number; -} - -interface HsvColor { - h: number; - s: number; - v: number; -} - -interface MaxHslaColor { - h: number; - s: number; - l: number; - a: number; -} \ No newline at end of file diff --git a/src/types/eyedropper.d.ts b/src/types/eyedropper.d.ts deleted file mode 100644 index c8ec47c..0000000 --- a/src/types/eyedropper.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -interface EyeDropper { - open: () => Promise; -} - -interface EyeDropperResult { - sRGBHex: string; -} - -declare const EyeDropper: { - prototype: EyeDropper; - new(): EyeDropper; -}; \ No newline at end of file diff --git a/src/types/module.d.ts b/src/types/module.d.ts deleted file mode 100644 index 12dc92e..0000000 --- a/src/types/module.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module '*.css' { - const stylesheet: CSSStyleSheet; - export default stylesheet; -} - -declare module '*?raw' { - const content: string; - export default content; -} \ No newline at end of file diff --git a/src/types/ui.d.ts b/src/types/ui.d.ts deleted file mode 100644 index 8e9508e..0000000 --- a/src/types/ui.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -interface SliderParams { - label: string, - name: string; - values: { - min: number; - max: number; - }; -} - -interface UISliders { - [key: string]: { - range: HTMLInputElement; - output: HTMLInputElement; - }; -} - -interface UI { - dialog: HTMLDialogElement; - header: HTMLElement; - wrapper: HTMLDivElement; - sliders: { - wrapper: HTMLDivElement; - slider: UISliders; - } - hex: { - input: HTMLInputElement; - info: HTMLAnchorElement; - eyedropper: HTMLButtonElement; - }, - preview: { - new: HTMLSpanElement; - current: HTMLSpanElement; - }; - area: { - wrapper: HTMLDivElement; - cursor: HTMLSpanElement; - }; -} \ No newline at end of file diff --git a/tests/color.test.ts b/tests/color.test.ts deleted file mode 100644 index 2632c2d..0000000 --- a/tests/color.test.ts +++ /dev/null @@ -1,209 +0,0 @@ -import { expect } from '@esm-bundle/chai'; -import { ColorUtils } from "../src/lib/utils/color"; - -describe('ColorUtils Conversions', () => { - let colorUtils: ColorUtils; - - beforeEach(() => { - colorUtils = new ColorUtils(); - }); - - describe('from HSL', () => { - beforeEach(() => { - colorUtils.fromHsl({h: 0, s: 100, l: 50}); - colorUtils.setOpacity(70); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 0, s: 100, l: 50}); - expect(colorUtils.toHsl()).to.deep.equal({h: 0, s: 100, l: 50}); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 0, s: 100, v: 100}); - expect(colorUtils.toHsv()).to.deep.equal({h: 0, s: 100, v: 100}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 255, g: 0, b: 0}); - expect(colorUtils.toRgb()).to.deep.equal({r: 255, g: 0, b: 0}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#ff0000b3"); - expect(colorUtils.toHex()).to.equal("#ff0000b3"); - }); - - it('converts to Opacity', () => { - expect(colorUtils.toOpacity()).to.equal(70); - }); - }); - - describe('from HSL (0, 0, 0)', () => { - beforeEach(() => { - colorUtils.fromHsl({h: 0, s: 0, l: 0}); - colorUtils.setOpacity(0); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 0, s: 0, v: 0}); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 0, s: 0, l: 0}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 0, g: 0, b: 0}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#00000000"); - }); - - it('converts to Opacity', () => { - expect(colorUtils.toOpacity()).to.equal(0); - }); - }); - - describe('from 0000ff', () => { - beforeEach(() => { - colorUtils.fromHex('0000ff'); - }); - - it('converts to HSV (when v -> max(rgb) = b)', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 240, s: 100, v: 100}); - }); - }); - - describe('from Hex (with alpha)', () => { - beforeEach(() => { - colorUtils.fromHex("ff060975"); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 359, s: 98, v: 100}); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 359, s: 100, l: 51}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 255, g: 6, b: 9}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#ff060975"); - }); - - it('converts to Opacity', () => { - expect(colorUtils.toOpacity()).to.equal(46); - }); - }); - - describe('from #Hex (with alpha)', () => { - beforeEach(() => { - colorUtils.fromHex("#ff060975"); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 359, s: 98, v: 100}); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 359, s: 100, l: 51}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 255, g: 6, b: 9}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#ff060975"); - }); - - it('converts to Opacity', () => { - expect(colorUtils.toOpacity()).to.equal(46); - }); - }); - - describe('from Hex (no alpha)', () => { - beforeEach(() => { - colorUtils.fromHex("00ff00"); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 120, s: 100, v: 100}); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 120, s: 100, l: 50}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 0, g: 255, b: 0}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#00ff00ff"); - }); - - it('converts to Opacity', () => { - expect(colorUtils.toOpacity()).to.equal(100); - }); - }); - - describe('from #Hex (no alpha)', () => { - beforeEach(() => { - colorUtils.fromHex("#ff00ff"); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 300, s: 100, v: 100}); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 300, s: 100, l: 50}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 255, g: 0, b: 255}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#ff00ffff"); - }); - - it('converts to Opacity', () => { - expect(colorUtils.toOpacity()).to.equal(100); - }); - }); - - describe('from HSV', () => { - beforeEach(() => { - colorUtils.fromHsv({h: 45, s: 75, v: 69}); - colorUtils.setOpacity(55); - }); - - it('converts to HSV', () => { - expect(colorUtils.toHsv()).to.deep.equal({h: 45, s: 75, v: 69}); - }); - - it('converts to HSL', () => { - expect(colorUtils.toHsl()).to.deep.equal({h: 45, s: 60, l: 43}); - }); - - it('converts to RGB', () => { - expect(colorUtils.toRgb()).to.deep.equal({r: 175, g: 143, b: 44}); - }); - - it('converts to Hex', () => { - expect(colorUtils.toHex()).to.equal("#af8f2c8c"); - }); - - // it('converts to Opacity', () => { - // expect(colorUtils.toOpacity()).to.equal(55); - // }); - }); -}); \ No newline at end of file diff --git a/tests/picker.test.ts b/tests/picker.test.ts deleted file mode 100644 index b897c37..0000000 --- a/tests/picker.test.ts +++ /dev/null @@ -1,222 +0,0 @@ -import { expect } from '@esm-bundle/chai'; -import { fixture, html } from '@open-wc/testing-helpers'; -import sinon from 'sinon'; - -import '../src/index.ts'; -import type { Picker } from 'src/picker'; - -describe('color-picker', () => { - let picker: Picker; - - describe('default', () => { - beforeEach(async () => { - picker = await fixture(html``); - }); - - it('should render correctly', () => { - const shadowRoot = picker.shadowRoot; - expect(shadowRoot).to.exist; - const dialog = shadowRoot?.querySelector('dialog'); - expect(dialog).to.exist; - }); - }); - - describe('attributeChangedCallback', () => { - it('should display the correct hex color when the "hex" attribute is set', async () => { - picker = await fixture(html``); - picker.setAttribute('hex', '#ff0000ff'); - - const colorPreview = picker.shadowRoot?.querySelector('[part="preview"] [data-id="current"]') as HTMLElement; - expect(colorPreview?.style.getPropertyValue('--c')).to.equal('#ff0000ff'); - }); - - it('should display a default #000000ff hex color', async () => { - picker = await fixture(html``); - picker.setAttribute('hex', ''); - - const colorPreview = picker.shadowRoot?.querySelector('[part="preview"] [data-id="current"]') as HTMLElement; - expect(colorPreview?.style.getPropertyValue('--c')).to.equal('#000000ff'); - }); - - it('should display the custom labels', async () => { - picker = await fixture(html``); - - const shadow = picker.shadowRoot; - const title = shadow?.querySelector('[part="header"] h3') as HTMLElement; - const ok = shadow?.querySelector('[part="confirm"]') as HTMLElement; - const h = shadow?.querySelector('[part="sliders"] .hue > span') as HTMLElement; - const s = shadow?.querySelector('[part="sliders"] .saturation > span') as HTMLElement; - const l = shadow?.querySelector('[part="sliders"] .lightness > span') as HTMLElement; - const o = shadow?.querySelector('[part="sliders"] .opacity > span') as HTMLElement; - - expect(title.innerText).to.equal('title'); - expect(ok.innerText).to.equal('v'); - expect(h.innerText).to.equal('h'); - expect(s.innerText).to.equal('s'); - expect(l.innerText).to.equal('l'); - expect(o.innerText).to.equal('o'); - }); - - it('should display the dialog when the "open" attribute is set', async () => { - picker = await fixture(html``); - picker.setAttribute('open', 'true'); - - const dialog = picker.shadowRoot?.querySelector('dialog') as HTMLDialogElement; - expect(dialog.open).to.equal(true); - }); - }); - - - describe('Buttons', () => { - beforeEach(async () => { - picker = await fixture(html``); - picker.setAttribute('open', 'true'); - }); - - it('should close the dialog when the close button is clicked', async () => { - const button = picker.shadowRoot?.querySelector('[part="cancel"]') as HTMLButtonElement; - const dialog = picker.shadowRoot?.querySelector('dialog') as HTMLDialogElement; - - button.click(); - expect(dialog.open).to.be.false; - }); - - it('should close the dialog when the ok button is clicked', async () => { - const button = picker.shadowRoot?.querySelector('[part="confirm"]') as HTMLButtonElement; - const dialog = picker.shadowRoot?.querySelector('dialog') as HTMLDialogElement; - - button.click(); - expect(dialog.open).to.be.false; - }); - - it('should open the eyedropper', async () => { - const button = picker.shadowRoot?.querySelector('[part="eyedropper"]') as HTMLButtonElement; - - const openStub = sinon.stub().resolves({ sRGBHex: '#ff5733' }); - const eyeDropperStub = sinon.stub(window as any, 'EyeDropper').returns({ open: openStub }); - - button.click(); - - expect(eyeDropperStub.calledOnce).to.be.true; - expect(openStub.calledOnce).to.be.true; - - eyeDropperStub.restore(); - }); - - it('should not open the eyedropper', async () => { - const button = picker.shadowRoot?.querySelector('[part="eyedropper"]') as HTMLButtonElement; - - const openStub = sinon.stub().rejects(new Error('EyeDropper failed')); - const eyeDropperStub = sinon.stub(window as any, 'EyeDropper').returns({ open: openStub }); - - const spy = sinon.spy(); - picker.addEventListener('update-color', spy); - button.click(); - expect(spy.calledOnce).to.be.false; - eyeDropperStub.restore(); - }); - }); - - - describe('Update Color', () => { - beforeEach(async () => { - picker = await fixture(html``); - picker.setAttribute('open', 'true'); - }); - - it('should dispatch update-color (from input)', async () => { - const hexInput = picker.shadowRoot?.querySelector('[part="hex-input"]') as HTMLInputElement; - hexInput.value = '#ff5733'; - - const spy = sinon.spy(); - picker.addEventListener('update-color', spy); - - hexInput.dispatchEvent(new Event('input', { bubbles: true })); - expect(spy.callCount).to.equal(1); - - hexInput.dispatchEvent(new Event('focusout', { bubbles: true })); - expect(spy.callCount).to.equal(2); - - - const hueRange = picker.shadowRoot?.querySelector('[part="sliders"] [name="hue-range"]') as HTMLInputElement; - - expect(hueRange.value).to.equal('11'); - }); - - it('should dispatch update-color (from sliders)', async () => { - const sliders = picker.shadowRoot?.querySelector('[part="sliders"]') as HTMLInputElement; - const hueRange = sliders.querySelector('[name="hue-range"]') as HTMLInputElement; - const hueOutput = sliders.querySelector('[name="hue-output"]') as HTMLInputElement; - hueRange.value = '200'; - hueOutput.value = '50'; - - const spy = sinon.spy(); - picker.addEventListener('update-color', spy); - - hueRange.dispatchEvent(new Event('input', { bubbles: true })); - expect(spy.callCount).to.equal(1); - - hueOutput.dispatchEvent(new Event('input', { bubbles: true })); - expect(spy.callCount).to.equal(2); - }); - - it('should dispatch update-color (from sliders, no value)', async () => { - const sliders = picker.shadowRoot?.querySelector('[part="sliders"]') as HTMLInputElement; - const hueOutput = sliders.querySelector('[name="hue-output"]') as HTMLInputElement; - hueOutput.value = ''; - - const spy = sinon.spy(); - picker.addEventListener('update-color', spy); - - hueOutput.dispatchEvent(new Event('input', { bubbles: true })); - expect(spy.callCount).to.equal(1); - }); - - it('should dispatch update-color (from area)', async () => { - const area = picker.shadowRoot?.querySelector('[part="area"]') as HTMLDivElement; - const cursor = picker.shadowRoot?.querySelector('[part="area-cursor"]') as HTMLSpanElement; - - const spy = sinon.spy(); - picker.addEventListener('update-color', spy); - - area.dispatchEvent(new Event('pointerdown', { bubbles: true })); - expect(spy.callCount).to.equal(1); - - cursor.dispatchEvent(new Event('pointerdown', { bubbles: true })); - expect(spy.callCount).to.equal(1); - }); - }); - - describe('dialog dragging', () => { - beforeEach(async () => { - picker = await fixture(html``); - picker.setAttribute('open', 'true'); - }); - - it('should move the dialog when dragging the header', async () => { - const header = picker.shadowRoot?.querySelector('header') as HTMLElement; - const dialog = picker.shadowRoot?.querySelector('dialog') as HTMLDialogElement; - - header.dispatchEvent(new MouseEvent('pointerdown', { bubbles: true, clientX: 0, clientY: 0 })); - - document.dispatchEvent(new MouseEvent('pointermove', { bubbles: true, clientX: 50, clientY: 50 })); - expect(dialog.style.transform).to.match(/translate3d\(50px, 50px, 0px\)/); - - document.dispatchEvent(new MouseEvent('pointerup', { bubbles: true })); - expect(dialog.style.transform).to.match(/translate3d\(50px, 50px, 0px\)/); - }); - - it('should not move the dialog when clicking a button in the header', async () => { - const header = picker.shadowRoot?.querySelector('header') as HTMLElement; - const dialog = picker.shadowRoot?.querySelector('dialog') as HTMLDialogElement; - const button = header.querySelector('button') as HTMLButtonElement; - - button.dispatchEvent(new PointerEvent('pointerdown', { bubbles: true, clientX: 0, clientY: 0 })); - document.dispatchEvent(new PointerEvent('pointermove', { bubbles: true, clientX: 50, clientY: 50 })); - - expect(dialog.style.transform).to.be.empty; - - document.dispatchEvent(new PointerEvent('pointerup', { bubbles: true })); - }); - }); -}); \ No newline at end of file diff --git a/tests/validators.test.ts b/tests/validators.test.ts deleted file mode 100644 index a93abf3..0000000 --- a/tests/validators.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { expect } from '@esm-bundle/chai'; -import { clampValue, validateHex } from "../src/lib/utils/validators"; - -describe('Validate Hex', () => { - it('validates #00ff00', () => { - expect(validateHex("#00ff00")).to.equal("#00ff00ff"); - }); - - it('validates 00ff00', () => { - expect(validateHex("00ff00")).to.equal("#00ff00ff"); - }); - - it('validates 0f0', () => { - expect(validateHex("0f0")).to.equal("#00ff00ff"); - }); - - it('validates razrt41è=dbx', () => { - expect(validateHex("razrt41è=dbx")).to.equal("#0a41dbff"); - }); -}); - - -describe('Clamp Values', () => { - it('clamps 500 to 360 (min: 0, max : 360)', () => { - expect(clampValue(500, 0, 360)).to.equal(360); - }); - - it('returns 180 (min: 0, max : 360)', () => { - expect(clampValue(180, 0, 360)).to.equal(180); - }); - - it('clamps -300 to 0 (min: 0, max : 360)', () => { - expect(clampValue(-300, 0, 360)).to.equal(0); - }); -}); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 8f008d5..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "baseUrl": "./", - "checkJs": true, - "outDir": "./dist", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true - }, - "include": ["src/**/*.ts"], - "exclude": [] -} diff --git a/web-dev-server.config.js b/web-dev-server.config.js deleted file mode 100644 index 149886e..0000000 --- a/web-dev-server.config.js +++ /dev/null @@ -1,14 +0,0 @@ -import { esbuildPlugin } from '@web/dev-server-esbuild'; - -export default { - watch: true, - nodeResolve: true, - open: true, - appIndex: 'demo/index.html', - plugins: [ - esbuildPlugin({ - ts: true, - tsx: true - }) - ], -}; \ No newline at end of file diff --git a/web-test-runner.config.js b/web-test-runner.config.js deleted file mode 100644 index bcfecb6..0000000 --- a/web-test-runner.config.js +++ /dev/null @@ -1,16 +0,0 @@ -import { esbuildPlugin } from '@web/dev-server-esbuild'; - -export default { - nodeResolve: true, - plugins: [ - esbuildPlugin({ ts: true }), - ], - coverageConfig: { - threshold: { - statements: 100, - branches: 100, - functions: 100, - lines: 100 - } - }, -}; \ No newline at end of file